EDA数字钟设计

上传人:工**** 文档编号:492109891 上传时间:2023-05-28 格式:DOC 页数:14 大小:146.50KB
返回 下载 相关 举报
EDA数字钟设计_第1页
第1页 / 共14页
EDA数字钟设计_第2页
第2页 / 共14页
EDA数字钟设计_第3页
第3页 / 共14页
EDA数字钟设计_第4页
第4页 / 共14页
EDA数字钟设计_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《EDA数字钟设计》由会员分享,可在线阅读,更多相关《EDA数字钟设计(14页珍藏版)》请在金锄头文库上搜索。

1、数 字 钟 ED课程设计姓 名: 专 业:班 级: 指导教师: 一、数字钟的设计要求(1)具有正确的时、分、秒计时功能.(2)计时结果要用6个数码管分别显示时、分、秒的十位和个位。(3)有校时功能。当键MIUTE按下时,分计数器以秒脉冲的速度递增,并按60mi循环,即计数到5m后再回00。当HOU键按下时,时计数器以秒脉冲的速度递增,并按4循环,即计数到23h后再回0.二、数字钟顶层结构根据数字钟的功能要求,就可以对数字钟按照功能进行模块划分.图2是它的顶层电路原理图.在图21中,外界通过CLK端输入Hz的脉冲信号.1H信号作为秒脉冲信号送入SECOND(60进制)计数器进行秒计时,满60s产

2、生一个进位信号CARRY,经过或门被送入MIUT(0进制)计数器进行分计数.当按下SECON键后,1H秒脉冲信号通过或门被送入MINUTE(60进制)计数器进行分计数,从而实现快速校分功能。HOR(24进制)计数器也是经过同样的过程实现计数和校时功能。时、分、秒计数器的输出均是十位和个位分开显示的8421CD码,将这六组B码通过一个六选一数据选择器X1CAN选出一组BD码.由外界输入的LKN信号作为MUX_1SCAN的选择控制信号,然后再将选出的一组BD码送至七段译码显示器进行译码。译码每输出结果同时送至个LED数码管的a、c、d、e、f 7个段,至于哪个数码管能够显示,取决于扫描控制信号SE

3、L的输出结果,即SE选择哪个数码管,那个数码管就点亮.用多个(个)数码管显示数据时有并行显示和动态扫描显示两种方式。所谓并行显示,是个数码管同时被驱动,它需要同时对6组BCD码数据进行编译,并输出6组LE7段驱动信号去驱动6个数码管的7个显示段,共需要42个I/管脚,另外还需要个C/段译码器。本设计采用动态扫描显示,每次仅仅点亮个数码管,各个数码管轮流被扫描点亮,如果扫描的速度足够快,由于人眼存在视觉暂留现象,就看不出闪烁。开始工作时,先从组CD数据中选出一组,通过段译码器译码后输出,然后选出下一组数据译码输出。数据选择的时序和顺序由个进制计数器SEL控制,与此同时,MX61SCAN产生选通信

4、号。这种显示方式需要的资源少,而且节能。.图21 数字钟的顶层原理图三、数字钟各模块的VHDL源程序设计以下是数字钟各模块的VHDL程序及部分主要模块的仿真波形。整体模块VHDL代码:BRRY IE;USE IEEE.LOGIC_116AL;US IEEESTD_LGC_USIGNED.L;ENITY_clok_signal I PORT(,rese:IN STD_OIC;c,ca2,3:out std_logic; seli :ot td_logc_vecr( ownto0); se : oustd_logi_vector(7dowto 0); sg_s_l,segs_h,sgml,s_m_

5、,sg_h_l,sg_h_h:uffer integ ran to);EN ENTI s_l_signal;ARHETURE mzm OF _ock_snal I SGNL sec1_,sec2_t, in_t,it,hor_,hour2_t:intee rge to9; NA cary,carr,carr3: STD_LOIC; INAL ct: sd_lgiveto(2 donto 0); IGNA cn_rq : teger nge 0to999; SNALse : std_logic_vo(2 ownto 0); SIGALlk1H:td_logic; funtioiseg(i : i

6、nineger nge t9)retrn td_logi_t iarabl s7 :sd_lo_vto(7 dwnto 0);beginas isn 0 =seg7 := x”3f”;-diital tubes display 0 to 9hen 1s7 := 06;hn2 seg := ”;whe 3=seg7 : x4F”;hen 4 seg: x”66;whe 5 eg7:=x6D;when6=eg := x”D;when 7 =se7:= x0;whe 8 =seg : x”7F;whn =se7 :=x6;whenoters seg7 : (thers 0);edcase;reur

7、seg7;end functon se7;BGI p1:PROCSS(lk_1Hz,rst,sect,ec2_t) BEIN Irset= THEN set0; se2_t=0; LSIF risng_dge(l_1Hz)THEN I s_t=THN sec1_t0; IF sec2t=5EN se2t=0; ELSE ec_=e21; END; ELSE s1_=sc+; ND I; IF (s1_t=9AND se_=5) TEN arry=1; ELS ay10; EN I; END IF; s_s_l=sc_t; seg_h=sec2_; ENDPROS p1; p2:PROCESS(

8、reet,min1_t,mi_t,cy1) BEGIN IF rese=1 THN in_t=; min2_t=0; ELIF rsng_edge(carry1) THEN IFmi1_t=9 TEN mi1_t=; IF i2t=5THN mi2=0; ELSE min_t=min2_t+1; ENDIF; ELSE min1_t=min_t+; END IF; IF(1t=9 AND min2_t=) THEN carr21; E carry20; E; ENDIF; seg_ml=mn1_t; segm_h=n2t; ND PRCESS 2; p3:OS(est,ho1_t,hour2_

9、t,ay2,crry3) BEGIN IF ee= THEN our1_t=0; hour2_0; ELIFisng_ege(ry2)THN F (hur1_t=3 AD hour=2)THEN hu_t0; hor_=0; ESE IF hu1_=9HEN hour_=0; I hour2_2HEN hr2_=0; ELSE hour_hour2_t1; EN IF; ELS hour1_t=hur_t1; END IF; ED IF; (our_t= NDor2_t=0)THEN crry3=1; EE cry3=0; END F; N IF; e_h_l=hur_t; eg_h_=our2_t; NDPROCESp3;1=cary1;ca2=cary;a3=cary3;p4:rocs(clk,se,sl) bei reset = 1 tenct = (others 0);c_freq =0;clk1Hz=0;elsifrisiege() henifcnt 7the -6conte to scadtal tuet 0);elsecnt nt + 1;ed f;fcntfreq = 99 then1 dividcnt_feq =0;cl_1z = not clk_1Hz;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号