数字逻辑研发设计及应用课程研发设计报告自动打铃器_第1页
数字逻辑研发设计及应用课程研发设计报告自动打铃器_第2页
数字逻辑研发设计及应用课程研发设计报告自动打铃器_第3页
数字逻辑研发设计及应用课程研发设计报告自动打铃器_第4页
数字逻辑研发设计及应用课程研发设计报告自动打铃器_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字逻辑设计及应用课程设计报告姓名:学号:选课号: 设计题号:一设计题目自动打铃器二设计要求1有数字钟功能;2 可设置六个时间,定时打铃;3 响铃5秒钟。三.设计过程1 总体方案数字钟系统可以分为以下几大模块:时钟信号发生模块,基本 计时模块,动态显示模块,控制电路模块,报时电路模块 。矚慫润厲钐瘗睞枥庑赖。首先需要将系统时钟进行分频得到1HZ时钟信号进行计时。计 时电路采用了 74LS160二进制BCD码计数器构成了模24和模60的 计数器,进行时分秒的计时。为了避免产生逻辑冒险,计数器尽量采 用了同步计数器。 聞創沟燴鐺險爱氇谴净。译码显示电路采用的是动态显示的方案,动态显示使用数据选择

2、器的分时复用功能,将任意多位数码管的显示驱动,由一个七段显示 译码器来完成 。 残骛楼諍锩瀨濟溆塹籟。闹钟的主要部分是4个7485构成的16位数据比较器。闹钟设定时间 和时钟时间做比较,然后给蜂鸣器信号闹钟 。酽锕极額閉镇桧猪訣锥。2 .各子模块设计原理2.1时钟信号发生模块为了便于实现秒表的计时功能和报时功能,时钟信号发生模块共输出1HZ 100HZ 512HZ 1KHZ的时钟信号,输入只有一个,就是系统时钟48MHZ 48MHZ分频的具体实现为,将48进制计数器和1K进制 计数器级联。通过计数器的最高位产生1HZ信号,由于48不是2的整数次幕,所以分频得到的信号。占空比不为50%。各个模块

3、的进位信号为各个模块的最高位 。彈贸摄尔霁毙攬砖卤庑。19F面为48分频电路:7416174161 x-NAND5XcourrTEftKXUiLDNA8OAcQBDacEKTQO!EHPRCOYCLRNCLKcojrrrtfiLDNAGOAcOBDQCEHTQDEMPRCOCLRNCLK-XX'光XF面为1000分频电路:YLDMABQACOBDQCEffTQDENPRCC-oCLRNCLK7J161*上雷 tCOUNTER* X* MLDNABOACQ8DQCEFiTQDENPRCOCLftNCLK74161COUNTERK* XLDNABQACQBDQCEHTQDENPRCOCLf

4、tNCLK74161COUNTER22秒计数电路用两片74160模10计数器设计一个模60计数器,当计数值为59 时,下一个时钟信号给计数器置数 0。(1) 秒计数的CLK时钟端用分频后的1hz输入。(2) 秒十位的sec6取非后输出用于分计数的进位脉冲。(3) Clear输入用于清零端信号输入。(4) 输出sec7.0作为秒计数器的值。仿真波形如下:dkU 0日“亡KOO-st.H 0-st. rH 0H 0M 0-st.rKO-se.H 0M 0L 5t, KM Q&tnu 1IIr2.3分计数电路用两片74160模10计数器设计一个模60分计数器,当计数值为59时,因为要考虑到秒

5、计时电路,所以还要输入一个当秒为59的信号,这样下一个时钟信号才能给计数器置数0。謀荞抟箧飆鐸怼类蒋薔。电路图如下:LDN74imLDNA6QACosDENT00ENPRCOaRNUKCOUNTER741606QACQ&DQCENTQDENPR00O.RNQ.KCOUNTER仿真波形如下:2.4小时计数电路用两片74160以置数法设计一个模24计数器作为小时计数器电 路。当秒计时为59,分计时为59时且小时计数为23时给置数端- 个低电平信号置数 .厦礴恳蹒骈時盡继價骚。"ibuh4T7 .R:bor4 : -M LWABOACoeQCEMTQDENPTOOCLR1MCLK1

6、 COUNTERihdirj : -J > iwm .? | hgr 甘 I :LDNAeQAcQBDQCENTODENPRCQCLRNCLK疏就COUNTTER亠-滋hT|Zi::仿真波形如下:hoHOM OCMOirLnrLrLjrLrLnLrLrLnLrLruirLrLru-hs.11hoha.ho.,.2.5动态数码显示电路如上模块图,这个大的动态数码显示电路模块又分为 4个小模块,分别为24选4MUX,显示译码器,计数器,译码器 74138。基本原 理如下,由一个模6的计数器产生的3位信号输入到24选4MUX和 译码74138上,分别选出4位BCD码,和8位译码器中的6位。BC

7、D 码通过显示译码器得到7位接到数码管的7段上。因为整个模块为动茕桢广鳓鯡选块网羈泪BR0ON京舷jg蕊密DLINRHNEIN耳:严轉凶: - -M-BTIYJ賦f Pl 汕 i : Js< rki ;丁 -CMT晰创” °l” I ! I II 1"皿迥r_昭Ml.h«F DYONAYINBY2NCV3NG1Y4N点溯Y5NG26N¥6NY7NmniiJBDKOOeR- . .i" IFr"=l l.» . 4." V-訥 1 MIXTIPLCXER> <r fa r "ii n w

8、u v v ii -r. k 苗 br*|5|.IW|0.mint*其74151Ml引ABCadiD2Y(XJwMMD4Pfiii;lA06一07GNmsn multiplexer!?' = = =r = =>r T-f =! ir=n*2.6时钟校分电路通过在计时电路钟添加附加电路来实现校分电路功能K1 = 1,K2=0,K3=1时设定时钟分钟,给时钟分钟模块的低位 使能端一个高电平,同时再通 过非门后给置零端一个信号, 当分钟走到59时候置零,从 而不会出现在校分的时候出现走到60或者之后的数字。 鹅娅尽損鹌惨歷茏鴛賴。K1=0,K2=0,K3=0时设定时钟小时,设计的原理和

9、分钟类似,条件改 变了,当走到23的时候置零。2.7时钟清零电路给计时电路的6个74160的清零端接到 一个开关上控制就行。2.8闹钟模块闹钟模块共有六路闹钟设定和时间比较模块,实现六路定时打铃2.8.1闹钟设定闹钟的设定又一个模60计数器和一个模24计数器构成。K1 = 1,K2=1,K3=0时设定闹钟分钟,原理和时钟校分电路一样。给闹 钟分钟的低位使能端一个高电平,同时再通过非门后给置零端一个信 号,当分钟走到59时候置零,从而不会出现在校分的时候出现走到 60或者之后的数字。K仁0,K2=1,K3=1时设定闹钟小时,设计的原理 和分钟类似,条件改变了,当走到 23的时候置零 。 籟丛妈羥

10、为贍债蛏练淨。COurrrtALDMABQACQSDQ£EHT血ENPSCOCLUJCLK亡 OU-rrTER-TCT::二LOHA6QACQBDacENTQDEHPR£0CLMcm74160 耳;._ _ la.nYLDHABQACQB一DQ£EHTQDENPfiCOOJtftCLK74160LDHAeQAcOSDKEHTQO;ENPR.COclCLKWUMTER282时间比较将时钟的分钟和小时BCD码和闹钟的分钟和小时的 BC码输入 到比较模块中,通过比较器得到信号,输给蜂鸣器,达到闹钟的效果。預頌圣鉉儐歲龈讶骅籴。7485A&自0 ATBtALBOB

11、2A£BOA3 B3ALBI AEBIAG8IAGBO srtQM P A AATORi - hJ ft* f "”rr r-Ty7485AL80AE0OAG60ALBIAEBI2別11460 MPARATQR s:F-I r bim»t51 iiJTPL.* 匚,?id25.剧.U!-.r1-*5-AOBOAlE? 1A2ALBOBZAEBQA3AGHOB3alGiAEBI:AGBI四.设计结论通过仿真,最终证明此设计能正常的工作,实验过程中,大多数问题在自己的仿真调试下都得到了解决,培养了独立思考解决问题 的习惯。学会了电路的故障排查,学会了怎样从问题出发,找

12、到问 题的根源,然后用相应的方法来解决问题。培养了严谨细心认真的 品质。有些问题,看起来特别小,比如闹铃电路中模6计数器设计时误把“与非门”用成了“与门”,导致了无法正常的模6计数。但 这些小的细节直接影响着实验的质量与结果。让我更加深刻地懂得 了做任何事都要注意细节 。渗釤呛俨匀谔鱉调硯錦。附录:VHDL程序library ieee;use ieee.stdo gic_1164.all;use ieee.std_logic_ un sig ned.all;en tity szz isport(clk:in std_logic;clk1:in std_logic;md1:in std_logi

13、c;md2:i n stdo gic_vector(1 dow nto 0);speak:out std_logic;dout:out std_logic_vector(6 dow nto 0);selout:out std_logic_vector(2 dow nto 0);end szz;architecture one of szz is sig nal sel:std_logic_vector(2 dow nto 0);sig nal hou1:std_logic_vector(3 dow nto 0);sig nal hou2:std_logic_vector(3 dow nto 0

14、);sig nal mi n1:std_logic_vector(3 dow nto 0);sig nal min 2:std_logic_vector(3 dow nto 0);sig nal seth1:std_logic_vector(3 dow nto 0);sig nal seth2:std_logic_vector(3 dow nto 0);sig nal setm1:std_logic_vector(3 dow nto 0);sig nal setm2:std_logic_vector(3 dow nto 0);sig nal sec1:std_logic_vector(3 do

15、w nto 0);sig nal sec2:std_logic_vector(3 dow nto 0);sig nal h1:std_logic_vector(3 dow nto 0);sig nal h2:std_logic_vector(3 dow nto 0);sig nal m1:std_logic_vector(3 dow nto 0);sig nal m2:std_logic_vector(3 dow nto 0);sig nal s1:std_logic_vector(3 dow nto 0);sig nal s2:std_logic_vector(3 dow nto 0);be

16、gin 计数choice:process(clk1)beginif clk1'eve nt and clk1='1' the n if sel="101" then sel<="000"elsesel<=sel+1;end if;end if;end process choice; 小时十位铙誅卧泻噦圣骋贶頂廡。h110:process(clk,hou2,mi n1,mi n2,sec1,sec2,md1,md2)beginif clk'eve nt and clk='1' the nif (h

17、ou 仁"0010" and hou2="0011")a nd(mi n1="0101" and min 2="1001") and (sec 仁"0101"and sec2="1001")then擁締凤袜备訊顎轮烂蔷。hou1<="0000"elsif hou1="0010"and hou2="0011"and md1='0' and md2="01" then-当时间为

18、23 点且处于校时状态时贓熱俣阃歲匱阊邺镓騷。hou1<="0000"elsif (hou2="1001"a nd(mi n仁"0101" and min 2="1001") and (sec 仁"0101" andsec2="1001")or (hou2="1001"and md1='0' and md2="01")then 坛搏乡囂忏蒌鍥铃氈淚。hou1<=hou1+1;end if;end if;end

19、 process h110; 小时个位蜡變黲癟報伥铉锚鈰赘。h220:process(clk,mi n1,mi n2,sec1,sec2,md1,md2,hou1)beginif clk'eve nt and clk='1' the nif (hou 仁"0010" and hou2="0011")a nd(mi n1="0101" and min 2="1001") and (sec 仁"0101" and sec2="1001") the n買鯛鴯

20、譖昙膚遙闫撷凄。hou2<="0000"elsif hou2="1001"a nd(mi n仁"0101" and min 2="1001") and (sec 仁"0101" and sec2="1001") then綾镝鯛駕櫬鹕踪韦辚糴。hou2<="0000"elsif (hou2="1001"a nd md1='0' and md2="01")or (hou 仁"0010

21、"a nd hou2="0011") the n驅踬髏彦浃绥譎饴憂锦。hou2<="0000"-md<='1:elsif (mi n仁"0101" and min 2="1001") and (sec 仁"0101" and sec2="1001")or (md1='0' and md2="01") the n猫虿驢绘燈鮒诛髅貺庑。hou2<=hou2+1;-speak<=clk;end if;en

22、d if;end process h220; 分钟十位锹籁饗迳琐筆襖鸥娅薔。m110:process(clk,mi n2,sec1,sec2,md1,md2)beginif clk'eve nt and clk='1' the nif (mi n仁"0101" and min 2="1001") and (sec 仁"0101" and sec2="1001") the n構氽頑黉碩饨荠龈话骛。min 1<="0000"elsif min 1="0101&

23、quot;a nd min 2="1001"a nd (md1='0' and md2="00")the n輒峄陽檉簖疖網儂號泶。min 1<="0000"elsif (min 2="1001"a nd (sec 仁"0101" and sec2="1001") or (mi n2="1001"a nd md1='0' and md2="00")the n 尧侧閆繭絳闕绚勵蜆贅。min 1<=

24、min 1+1;end if;end if;-e nd if;end process m110; 分钟个位m220:process(clk,sec1,sec2,md1,md2)beginif clk'eve nt and clk='1' the nif min 2="1001"a nd (sec 仁"0101" and sec2="1001")the n识饒鎂錕缢灩筧嚌俨淒。min 2<="0000"elsif min 2="1001"a nd (md1='

25、0' and md2="00")the nmin 2<="0000"elseif (sec 仁"0101" and sec2="1001") or(md1='0' and md2="00")the n凍鈹鋨劳臘错痫婦胫籴。min 2<=min 2+1;end if;end if;e nd if;end process m220; 秒十位s110:process(clk)beginif clk'eve nt and clk='1' the

26、 n if (sec 仁"0101" and sec2="1001")then sec1<="0000"else if sec2="1001"the nsec1<=sec1+1;end if;end if;e nd if;end process s110; 秒个位s220:process(clk)beginif clk'eve nt and clk='1' the nif sec2="1001" the nsec2<="0000"el

27、se sec2<=sec2+1;end if;end if;end process s220;恥諤銪灭萦欢煬鞏鹜錦 时间设置小时部分sethour1:process(clk,seth2)beginif clk'eve nt and clk='1' the nif seth 仁"0010"a nd seth2="0011" the nseth1<="0000"elsif seth2="1001"the n seth1<=seth1+1;end if;end if;end pr

28、ocess sethourl;sethour2:process(clk,md1,md2,seth1)beginif clk'eve nt and clk='1' the n鯊腎鑰诎漣鉀沩懼統庫。硕癘鄴颃诌攆檸攜驤蔹。if (seth1="0010"a nd seth2="0011")or seth2="1001"then seth2<="0000"elsif md1='1' and md2="00" the nseth2<=seth2+1;en

29、d if;end if;end process sethour2; 时间设置分钟部分setm in 1:process(clk,setm2)beginif clk'eve nt and clk='1' the nif setm1="0101"a nd setm2="1001"the nsetm1<="0000"elsif setm2="1001"the nsetm1<=setm1+1;end if;end if;end process setm ini;setmi n2:proc

30、ess(clk,md1,md2)beginif clk'eve nt and clk='1'the nif setm2="1001"the nsetm2<="0000"elsif md1='1' and md2="01"then setm2<=setm2+1;end if;end if;end process setm in2; 闹铃speaker:process(clk1,hou1,hou2, min1,min2)begin阌擻輳嬪諫迁择植秘騖。if clk1'eve nt

31、 and clk1='1'the nif seth1=hou1 and seth2=hou2 and setm仁 min1 and setm2=min2 the nspeak<=clk1;else speak<='0'end if;end if;end process speaker;disp:process(sel,md1,hou1,hou2, min1,min 2,sec1,sec2,seth1,seth2,setm1,setm2)贸恳彈濾颔澩。beginif sel="000" the nselout<="0

32、00"case hl iswhen "0000"=>dout<="0111111"whe n "0001"=>dout<="0000110"whe n "0010"=>dout<="1011011"whe n others =>dout<="1000000"end case;elsif sel="001" the nselout<="001"case h

33、2 iswhen "0000"=>dout<="0111111"whe n "0001"=>dout<="0000110"whe n "0010"=>dout<="1011011"whe n "0011"=>dout<="1001111"whe n "0100"=>dout<="1100110"whe n "0101"

34、=>dout<="1101101"whe n "0110"=>dout<="1111101"氬嚕躑竄whe n "0111"=>dout<="0000111"whe n "1001"=>dout<="1101111"when others=>dout<="1000000" end case;elsif sel="010" the nselout<=&q

35、uot;010"case ml iswhe n "0000"=>dout<="0111111"whe n "0001"=>dout<="0000110"whe n "0010"=>dout<="1011011"whe n "0011"=>dout<="1001111"whe n "0100"=>dout<="1100110"wh

36、e n "0101"=>dout<="1101101" when others=>dout<="1000000" end case;elsif sel="011" the nselout<="011"case m2 iswhe n "0000"=>dout<="0111111"whe n "0001"=>dout<="0000110"whe n "001

37、0"=>dout<="1011011"whe n "0011"=>dout<="1001111"whe n "0100"=>dout<="1100110"whe n "0101"=>dout<="1101101" whe n "0110"=>dout<="1111101"21whe n "0111"=>dout<="0000111"whe n "1000"=>dout<="1111111" whe n "1001"=>dout<="1101111" when others=>dout<="1000000" end case;elsif sel="100" the n selout<="100"case si iswhe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论