1、定时器设计课程设计题 目: 定时器设计 班 级:姓 名:学 号:指导教师:成 绩: 电子与信息工程学院信息与通信工程系 定时器设计1 概述 人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。起初每周上一次发条,1918年使用电钟计时后,就不用上发条了。定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多。人们甚至将定时器用在了军事方面,制成了定时炸弹,定时雷管。现在的不少家用电器都
2、安装了定时器来控制开关或工 作时间。2 设计要求 2.1 功能:实现2位数(单位是秒)的倒数输入信号:置数(为二进制数),开始计数信号(高电平有效),时钟信号clk 为1kHz输出信号:计数信号的LED数码管(共阴极)显示码(动态显示方式),段选信号(选择当前显示码对应的LED)(高电平有效),计数结束信号(高电平有效)2.2 要求:系统由分频器(将1kHz时钟变为1Hz)、减法计数器(秒的倒计时)、LED刷新时钟(刷新时间为10毫秒)、显示码译码器(将时间的BCD码转换成LED显示码)。要求给出系统总体组成框图,设计思路,完成以上模块的VHDL实现及功能仿真,顶层文件及整体仿真。3 系统总体
3、组成框图4 减法计数器模块4.1 减法计数器功能:从输入数值减1直到0为止。4.2 模块的源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SUBB IS PORT( CLKS: IN STD_LOGIC; RETS: IN STD_LOGIC; EN: IN STD_LOGIC; A: IN STD_LOGIC_VECTOR(6 DOWNTO 0); Q: OUT STD_LOGIC_VECTOR(6 DOWNTO 0) );END ENTITY;ARCHITECTURE O
4、NE OF SUBB ISSIGNAL QI: STD_LOGIC_VECTOR(6 DOWNTO 0); BEGINPROCESS(CLKS,RETS) BEGIN IF RETS=0 THEN QI=A; ELSIF EN=1 THEN IF CLKSEVENT AND CLKS=1 THEN IF QI=0000000THEN QI=0000000; ELSE QI=QI-1; END IF; END IF; END IF; END PROCESS; Q=QI;END ARCHITECTURE; 4.3 仿真波形周期设置为10纳秒 仿真波形输出4.4 RTL电路5 译码器模块5.1 译码
5、器功能:译码器模块的显示方式为动态显示,刷新时间为10ms。5.2 译码器源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY yimaqi IS PORT( CLOCK: IN STD_LOGIC; RET: IN STD_LOGIC; input: IN STD_LOGIC_VECTOR(7 DOWNTO 0);-输入显示数据 DIV10FLAG: OUT STD_LOGIC;-10ms方波数码管扫描周期 LEDDIPLY:OUT STD_LOGIC_VECTOR(6 DOWN
6、TO 0);-数码管段选 SELECCT:OUT STD_LOGIC_VECTOR(1 DOWNTO 0)-数码管位选 );END ENTITY;ARCHITECTURE ONE OF yimaqi ISSIGNAL CNT2: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL DIV10: STD_LOGIC;SIGNAL WX: STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN PROCESS(CLOCK,RET) BEGIN IF RET=0THEN CNT2=000; ELSIF CLOCKEVENT AND CLOCK=1THEN IF CN
7、T2=101 THEN CNT2=000; DIV10=NOT DIV10; ELSE CNT2=CNT2+1; END IF; END IF; END PROCESS; DIV10FLAG=DIV10; PROCESS(DIV10,RET) BEGIN IF RET=0 THEN WX=01; ELSIF DIV10EVENT AND DIV10=1 THEN IF WX=10 THEN WX=01; ELSE WX=10; END IF; END IF; END PROCESS; SELECCT=WX; PROCESS(WX,RET) BEGIN IF RET=0 THEN LEDDIPL
8、Y CASE input (3 DOWNTO 0) IS WHEN 0000= LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY CASE input (7 DOWNTO 4) IS WHEN 0000= LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY LEDDIPLY NULL; END CASE; END IF;
9、END PROCESS;END ARCHITECTURE;5.3 仿真波形周期设置为1微秒 仿真波形输出5.4 RTL电路6 分频器模块6.1 分频器功能:把1kHZ的频率分为1HZ的频率6.2 分频器源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY FENPIN IS PORT(CLKF:IN STD_LOGIC; RSTF:IN STD_LOGIC; DIVOUT:OUT STD_LOGIC);END ENTITY;ARCHITECTURE ONE OF FENPIN ISS
10、IGNAL DIV: STD_LOGIC;BEGIN PROCESS(CLKF,RSTF) VARIABLE CNT1: STD_LOGIC_VECTOR( 0 TO 8); BEGIN IF RSTF=1 THEN CNT1:=000000000; DIV=0; ELSIF CLKFEVENT AND CLKF=1 THEN IF CNT1=111110100 THEN CNT1:=000000000; DIV=NOT DIV; ELSE CNT1:=CNT1+1; END IF; END IF; END PROCESS; DIVOUTCLK,RETF=RST,DIVOUT=HF1);U2:
11、 SUBB PORT MAP(CLKS=HF1,RETS=RST,EN=REN,A=INTEMP,Q=DATADA);U3: yimaqi PORT MAP(CLOCK=CLK,RET=RST,input=DATADA,DIV10FLAG=HX,LEDDIPLY=OUTDADA,SELECCT=SELETOUT); FLAGHZ=HX; FLAG=HF1; REN=START; END ARCHITECTURE;7.2 总体电路图7.3 总体电路仿真结果8 设计总结通过这次课程设计,我了解到了进行课程设计的方法,有关定时器的结构和基本原理。本设计通过了仿真软件的测试,或者说就是基于仿真软件设计的。这也让我们学会了一种解决问题的方法。本方案之前也讨论更改过很多方案。特别是在进制问题和参数设置问题上研究了很久,但是基本的思维是不变的。本次课程设计还使我们熟悉了quartus2软件的操作使用,这是我们最大的受益所在。参考文献 1 潘松,黄继业.EDA技术与VHDL2 EDA实验指导书
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1