1 / 8
文档名称:

vhdl实验报告--数字钟.doc

格式:doc   大小:22KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

vhdl实验报告--数字钟.doc

上传人:wxc6688 2019/11/9 文件大小:22 KB

下载得到文件列表

vhdl实验报告--数字钟.doc

文档介绍

文档介绍:VHDL实验报告一、实验目的1、设计一个24小时制数字钟,要求能显示时,分,秒,并且可以手动调整时和分。2、通过复杂实验,进一步加深对VHDL语言的掌握程度。二、实验原理数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分为模60计数器,小时是模24计数器,分别产生3位BCD码。BCD码经译码,驱动后接数码管显示电路。秒模60计数器的进位作为分模60计数器的时钟,分模60计数器的进位作为模24计数器的时钟。为了实现手动调整时间,在外部增加了setm(调整分),seth(调整时)按键,当这两个按键为低电平时,电路正常计时,当为高电平时,分别调整分,时。。三、实验步骤1、单元模块设计部分1)消抖动电路关键部分signalkey_in1,key_in2:std_logic:='0';beginprocess(clk,key_in)beginifclk'eventandclk='1'thenkey_in1<=key_in;key_in2<=key_in1;ifkey_in='1'andkey_in1='1'andkey_in2='1'thenkey_out<='1';elsekey_out<='0';endif;2)模60计数器程序关键部分:signalmd_temp,mg_temp:std_logic_vector(3downto0);beginprocess(clk,clr)beginifclr='1'thenmd_temp<="0000";mg_temp<="0000";elsifset='1'thenmd_temp<=setl;mg_temp<=seth;elsifclk'eventandclk='1'thenifmd_temp="1001"thenmd_temp<="0000";mg_temp<=mg_temp+'1';elsemd_temp<=md_temp+'1';ifmd_temp="1001"andmg_temp="0101"thenmd_temp<="0000";mg_temp<="0000";2、模24计数器程序关键部分signalhd_temp,hg_temp:std_logic_vector(3downto0);beginprocess(clk,clr,set,setl,seth)isbeginifset='1'thenhd_temp<=setl;hg_temp<=seth;elsifclr='1'thenhd_temp<="0000";hg_temp<="0000";elsifclk'eventandclk='1'thenifhg_temp="0010"andhd_temp="0011"thenhd_temp<="0000";hg_temp<="0000";elsifhd_temp="1001"thenhg_temp<=hg_temp+'1'hd_temp<="0000";elsehd_temp<=hd_temp+'1';endif;endif;endprocess;3、清零和调时部分显示部分关键程序process(sd,sg,md,mg,hd,hg)begincasesdiswhen"0000"=>sl<="1111110";when"0001"=>sl<="0110