基于VHDL的多功能数字钟设计报告.doc
《基于VHDL的多功能数字钟设计报告.doc》由会员分享,可在线阅读,更多相关《基于VHDL的多功能数字钟设计报告.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .基于VHDL的多功能数字钟设计报告021215班卫时章02121451一、设计要求1、具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。2、设计精度要求为1秒。二、设计环境:Quartus II 三、系统功能描述1、系统输入:时钟信号clk采用50MHz;系统状态及较时、定时转换的控制信号为k、set,校时复位信号为reset,均由按键信号产生。2、系统输出:LED显示输出;蜂鸣器声音信号输出。3、多功能数字电子钟系统功能的具体描述如下:一计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。二校时:在计时显示状态下,按下“k键,进入“小时待校准状态,假
2、设此时按下“set键,小时开场校准;之后按下“k键那么进入“分待校准状态;继续按下“k键那么进入“秒待复零状态;再次按下“k键数码管显示闹钟时间,并进入闹钟“小时待校准状态;再次按下“k键那么进入闹钟“分待校准状态;假设再按下“k键恢复到正常计时显示状态。假设校时过程中按下“reset键,那么系统恢复到正常计数状态。1“小时校准状态:在“小时校准状态下,显示“小时的数码管以2Hz闪烁,并按下“set键时以2Hz的频率递增计数。2“分校准状态:在“分校准状态下,显示“分的数码管以2Hz闪烁,并按下“set键时以2Hz的频率递增计数。3“秒校准状态:在“秒复零状态下,显示“秒的数码管以2Hz闪烁,
3、并以1Hz的频率递增计数。4闹钟“小时校准状态:在闹钟“小时校准状态下,显示“小时的数码管以2Hz闪烁,并按下“set键时以2Hz的频率递增计数。5闹钟“分校准状态:在闹钟“分校准状态下,显示“分的数码管以2Hz闪烁,并按下“set键时以2Hz的频率递增计数。三整点报时:蜂鸣器在“59分钟的第“51、“53、“55、“57秒发频率为500Hz的低音,在“59分钟的第“59秒发频率为1000Hz的高音,完毕时为整点。四显示:采用扫描显示方式驱动4个LED数码管显示小时、分,秒由两组led灯以4位BCD 码显示。五闹钟:闹钟定时时间到,蜂鸣器发出频率为1000Hz的高音,持续时间为60秒。四、各个
4、模块分析说明1、分频器模块(freq.vhd)1模块说明:输入一个频率为50MHz的CLK,利用计数器分出1KHz的q1KHz,500Hz的q500Hz,2Hz的q2Hz和1Hz的q1Hz。(2) 源程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity freq is port (CLK: in std_logic ; -输入时钟信号 q1KHz: buffer std_logic; q500Hz: buffer std_logic; q2Hz: buffer std_logic
5、; q1Hz: out std_logic);end freq; architecture bhv of freq is beginP1KHZ:process(CLK)variable cout:integer:=0;begin if CLKevent and CLK=1 then cout:=cout+1; -每来个时钟上升沿时cout开场计数if cout=25000 then q1KHz=0; -当cout=25000时,q1KHz输出“0 elsif cout50000 then q1KHz=1; -当25000cout=50000时,q1KHz else cout:=0; -输出“1
6、,完成1KHz频率输出end if; end if; end process;P500HZ:process(q1KHz) -q1KHz作为输入信号,分出q500Hzvariable cout:integer:=0;beginif q1KHzevent and q1KHz=1 thencout:=cout+1;if cout=1 then q500Hz=0; -二分频 elsif cout=2 then cout:=0;q500Hz=1;end if; end if; end process;P2HZ:process(q500Hz)variable cout:integer:=0;beginif
7、 q500Hzevent and q500Hz=1 thencout:=cout+1;if cout=125 then q2Hz=0; elsif cout250 then q2Hz=1; else cout:=0;end if; end if; end process;P1HZ:process(q2Hz)variable cout:integer:=0;beginif q2Hzevent and q2Hz=1 thencout:=cout+1;if cout=1 then q1Hz=0; elsif cout=2 then cout:=0;q1Hz=1;end if; end if; end
8、 process;end bhv;3模块图:2、控制器模块(contral.vhd)1模块说明:输入端口k,set键来控制6个状态,这六个状态分别是:显示计时时间状态,调计时的时、分、秒的3个状态,调闹铃的时、分的3个状态,reset键是复位键,用来回到显示计时时间的状态。(2) 波形仿真图:(3) 模块图:3、 二选一模块(mux21a.vhd)1源程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity mux21a isport(a,b,s:in bit; y:out bit)
9、;end entity mux21a;architecture one of mux21a isbegin process(a,b,s)beginif s=0 then y=a; -假设s=0,y输出a,反之输出b。else y=b;end if;end process;end architecture one;2仿真波形图:(3) 模块图:4、 计时模块a. 秒计时(second.vhd)1仿真波形图:2模块图:b.分计时(minute.vhd)1仿真波形图:2模块图:c.小时计时(hour.vhd)1仿真波形图:2模块图:d.闹钟分计时(tm60b.vhd)1仿真波形图:2模块图:e.闹钟
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 VHDL 多功能 数字 设计 报告
限制150内