数字钟课程设计报告55

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1数字钟课程设计报告学院:计算机学院专业班级:网络1002学号:3100610055姓名:2目录1.设计目的2.设计任务和要求3.设计内容3.1数字电子钟基本原理3.2数字电子钟电路模块设计3.3数字电子钟电路图3.4数字电子钟的调试5.实验心得3设计目的:我们此次设计与制做数字钟就是为了了解数字钟的原理,从而学会制作数字钟.而且通过数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.通过设计数字钟可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法,把理论知识运用到实践当中。并且提高实际操作能力,能学会排查电路错误,布局布线要清晰。要学会灵活使用VHDL语言和直接画图方法的结合使用。设计任务及要求:(1)拥有正常的时、分、秒的计时功能。(2)能利用实验板上的按键实现校时、校分及秒清零功能。(3)能利用实验板上的扬声器做整点报时。(4)闹钟功能。(5)在MAXPLUSII中采用层次化设计方法进行设计。(6)完成全部电路设计后在实验板上下载,验证设计课题的正确性。设计内容:数字钟基本原理图:4模块设计:可分成6个模块实现:计时模块、校时模块、整点报时模块、分频模块、动态显示模块、闹钟模块。(1)计时模块:基准源产生1Hz的脉冲;输入至秒计数器,满六十后产生进位,即脉冲;驱动分计数器;同理,满六十后,产生脉冲驱动时计数器;时计数器到23后,若再来脉冲则置零。两个60进制计数器和一个24进制计数器,分别用2个74160连接。闹时设置清零较分校时1KHZ64HZ4HZ1HZ时十位时个位分十位分个位秒十位秒个位扬声器译码器译码器译码器译码器译码器译码器闹时电路报时电路时计数器分计数器秒计数器MUXMUX分频器HAOJHAOJSCLRSASBSCSD5以上图为60进制计数器连接以及生成的器件6以上图为24进制计数器连接以及生成器件(2)校时模块:按下校时、或校分键都是递增调节到所需的位,按下清零键,秒计数器清零。可以选择实验板上的3个脉冲按键进行锁定。选用D触发器消抖。libraryieee;useieee.std_logic_1164.all;entitydisport(d:instd_logic;clk:instd_logic;q:outstd_logic);endd;architecturebhvofdisbeginprocess(clk)beginif(clk'eventandclk='1')thenq=d;endif;endprocess;endbhv;计时和校时,两种脉冲新号用两路选择器进行选择,选择条件为是否按键。1HZ驱动计数器,高频校时。2路选择器libraryieee;useieee.std_logic_1164.all;entitymux21isport(a,b,s:instd_logic;y:outstd_logic);7endmux21;architecturebhvofmux21isbeginy=awhens='0'elseb;endbhv;(3)分频模块:不同脉冲信号,高音报时以及1HZ几秒脉冲等。设计分频器,VHDLlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfenpisport(clk:instd_logic;hz512,hz64,hz4,hz1:outstd_logic);endfenp;architecturebhvoffenpissignalhz:std_logic_vector(9downto0);beginprocess(clk)beginif(clk'eventandclk='1')thenif(hz=1111111111)thenhz=0000000000;elsehz=hz+1;endif;endif;endprocess;hz512=hz(0);hz64=hz(3);hz4=hz(7);hz1=hz(9);endbhv;8报时模块当计时达到59’50时开始报时,50,52,54,56,58时鸣叫;整点时报时频率与其不同,用分频器得以实现libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitybaoshiisport(m1,m0,s1,s0:instd_logic_vector(3downto0);clk_500,clk_1k:outstd_logic);endbaoshi;architecturebhvofbaoshiisbeginprocess(m0)beginclk_500='0';clk_1k='0';ifm1=0101andm0=1001thenifs1=0101and(s0=0000ors0=0010ors0=0100ors0=0110ors0=1000)thenclk_500='1';elseclk_500='0';endif;endif;ifm1=0000andm0=0000ands1=0000ands0=0000thenclk_1k='1';elseclk_1k='0';endif;endprocess;endbhv;m1,m0,s1,s0分别为分的十位,个位,秒的十位,个位;当达到59’50时开始报时,50s,52s,54s,56s,58s时鸣叫;整点时,即m1,m0,s1,s0均为0,整点报时9生成器件如下图:————动态显示模块动态显示模块由六进制计数器,38译码器,六选一多路选择器和七段译码器组成。通过计数器计数,经过38译码器译码,从而得到地址值,在多路选择器上选取该地址所对应的数据,再经过七段译码器译码,从而显示选取的数值。1)六进制计数器文件名为count6VHDL语言如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitycount6isport(clk:instd_logic;q:outstd_logic_vector(2downto0);co:outstd_logic);endcount6;architecturebhvofcount6issignalcq:std_logic_vector(2downto0);beginprocess(clk)beginif(clk'eventandclk='1')thenif(cq=101)thencq=000;elsecq=cq+1;endif;endif;q=cq;endprocess;process(clk)beginif(clk'eventandclk='1')thenif(cq=101)thenco='1';elseco='0';endif;endif;endprocess;endbhv;说明:clk为时钟脉冲信号;cq为计数信号,当来一个时钟脉冲时即加1,当其为5时,在下一个时钟脉冲作用下变为0;q为cq的输出。10生成器件如下图:2)38译码器文件名为yima38VHDL语言如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityyima38isport(a:instd_logic_vector(2downto0);y:outstd_logic_vector(5downto0));endyima38;architecturebhvofyima38isbeginprocess(a)begincaseaiswhen000=y=000001;when001=y=000010;when010=y=000100;when011=y=001000;when100=y=010000;when101=y=100000;whenothers=y=000000;endcase;endprocess;endbhv;说明:a为上面六进制计数的输出,通过38译码器对其进行译码,生成y。生成器件如下图:3)六选一多路选择器文件名为xuan6VHDL语言如下:libraryieee;11useieee.std_logic_1164.all;entityxuan6isport(no1,no2,no3,no4,no5,no6:instd_logic_vector(3downto0);st:instd_logic_vector(5downto0);yout:outstd_logic_vector(3downto0);sel:outstd_logic_vector(5downto0));endxuan6;architecturebhvofxuan6issignals:std_logic_vector(5downto0);begins=st;process(s)begincasesiswhen100000=yout=no6;sel=100000;when010000=yout=no5;sel=010000;when001000=yout=no4;sel=001000;when000100=yout=no3;sel=000100;when000010=yout=no2;sel=000010;when000001=yout=no1;sel=000001;whenothers=yout=1111;sel=000000;endcase;endprocess;endbhv;说明:no1,no2,no3,no4,no5,no6为数据的输入;sel为选择数据输出的地址值;yout为数据的输出。生成器件如下图:4)七段译码器文件名为yima7VHDL语言如下:libraryieee;useieee.std_logic_1164.all;entityyima7isport(a:inbit_vector(3downto0);dataout:outbit_vector(6downto0));endyima7;architecturebhvofyima7is12beginprocess(a)begincaseaiswhen0000=dataout=1111110;when0001=dataout=0110000;when0010=dataout=1101101;when0011=dataout=1111001;when0100=dataout=0110011;when0101=dataout=1011011;when0110=dataout=1011111;when0111=dataout=1110000;when1000=dataout=1111111;when1001=dataout=1111011;whenothers=dataout=0000000;endcase;endprocess;endbhv;说明:a为输入的数据;dataout为数据的七段译码形式的输出。生成器件如下图:动态显示的连线图为:生成器件如下图(器件名为dx):13————闹时模块由设置时间和比较闹时两部分组成。1)设置时间连线图如下:说明:通过sets,setm,seth设置闹铃时间;clk可接4hz的时钟脉冲,便于调整时间。生成器件如下图(名为set):2)比较闹时文件名为naoVHDL语言如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitynaoisport(clk,en:instd_logic;h1,h0,m1,m0,s1,s0:instd_logic_vector(3downto0);sh1,sh0,sm1,sm0,ss1,ss0:instd_logic_vector(3d

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功