欢迎来到天天文库
浏览记录
ID:14823552
大小:364.00 KB
页数:10页
时间:2018-07-30
《数字系统课程设计报告-》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字系统课程设计(数字电子钟)班级:电信081姓名:徐镇江学号:08401200105一、系统设计要求:本设计要求掌握数码管的显示原理、数字钟的VHDL编程方法。具体要求:(1)采用EDA实验箱上的共阴极数码管显示时间,从00:00:00~23:59:59,依此循环。(2)整点报时。二、系统设计思路:根据系统的设计要求可知,本系统设计本设计可分为三个主要部分电路。(1)计时:主要是通过标准秒脉冲的输入,采集秒脉冲的上升沿,从而触发秒计时信号,从而达到秒计时的目的。当到达“59”时,产生分进位脉冲信号,激发计分电路,同理,从而实现计分。整体就实现了计时的功能。(2
2、)显示:通过对计秒、计分、计时电路的BCD码输出,进行译码操作,输出给8段数码显示,并进行动态扫描,即可实现多位数码管的显示。(3)整点报时整点报时电路在该设计当中只是给出了一个整点的信号,该信号是低电平有效,持续时间是1分钟。通过外部的设计电路,该信号对“蜂鸣器”电路起一个控制的作用。1.计时电路的设计主要VHDL程序段如下:process(clk_time)beginif(clk_time'eventandclk_time='1')thenif(sec_1="1001")thensec_1<="0000";if(sec_2="0101")thensec_2<
3、="0000";co1<='1';elsesec_2<=sec_2+'1';co1<='0';endif;elsesec_1<=sec_1+'1';endif;endif;sec<=sec_2&sec_1;endprocess;上面的代码是计秒部分,它为计分电路提供一个分脉冲进位信号,“co1”当co1='1'时,触发计分电路process(co1)beginifco1'eventandco1='1'thenif(min_1="1001")thenmin_1<="0000";if(min_2="0101")thenmin_2<="0000";co2<='1';e
4、lsemin_2<=min_2+'1';co2<='0';endif;elsemin_1<=min_1+1;endif;endif;min<=min_2&min_1;alter<='1';endprocess;同理,底下的代码是计时部分。process(co2)beginifco2'eventandco2='1'thenif(hour_1="0011"andhour_2="0010")thenhour_1<="0000";hour_2<="0000";elsifhour_1="1001"thenhour_2<=hour_2+'1';hour_1<="0000";
5、elsehour_1<=hour_1+'1';endif;endif;hour<=hour_2&hour_1;alter<='0';endprocess;1.显示控制电路的设计本设计显示需要使用的是6个7段数码管,在计时结果显示电路中,6个7段数码管显示部分采用的是动态显示,由时钟信号clk_scan作为扫描信号,每来一次上升沿转换一个数码管显示,并显示对应的信息.显示控制模块的主要VHDL程序段如下:process(clk_scan)beginifclk_scan'eventandclk_scan='1'thenifcnt="101"thencnt<="000
6、";elsecnt<=cnt+'1';endif;endif;endprocess;process(cnt)begincasecntiswhen"000"=>bcd<=sec(3downto0);com<="111110";when"001"=>bcd<=sec(7downto4);com<="111101";when"010"=>bcd<=min(3downto0);com<="111011";when"011"=>bcd<=min(7downto4);com<="110111";when"100"=>bcd<=hour(3downto0);com<="101
7、111";when"101"=>bcd<=hour(7downto4);com<="011111";whenothers=>bcd<="0000";com<="111111";endcase;casebcdiswhen"0000"=>seg7<="00111111";when"0001"=>seg7<="00000110";when"0010"=>seg7<="00011011";when"0011"=>seg7<="01001111";when"0100"=>seg7<="01100110";when"0101"=>seg7<="01101101";when"
8、0110"=>seg7<
此文档下载收益归作者所有