基于EDA的数字时钟课程设计报告_第1页
基于EDA的数字时钟课程设计报告_第2页
基于EDA的数字时钟课程设计报告_第3页
基于EDA的数字时钟课程设计报告_第4页
基于EDA的数字时钟课程设计报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、中南大学信息院自动化梁雪林设计中南大学eda课程设计报告指导老师:张静秋姓名:梁雪林学号:0909091925专业班级:自动化0905目录一、设计内容简介2二、设计要求2基本要求2提高部分要求3三、方案论证(整体电路设计原理)3四、各个模块设计原理44.1分频电路模块设计54.2秒计时器模块设计74.3分计时器模块设计94.4小时计时器模块设计114.5报时模块设计13五、实验中遇到问题及解决方法20六、结论20七、实验心得21八、参考文献22一、 设计内容简介设计一个数字钟,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时

2、等功能。我设计的电路在具有基本功能的基础上,增加了下列功能:改变分频比、不同整点不同报时等;二、设计要求基本要求1、能进行正常的时、分、秒计时功能;2、分别由六个数码管显示时分秒的计时;3、k1是系统的使能开关(k1=0正常工作,k1=1时钟保持不变);4、k2是系统的校分开关;5、k3是系统的校时开关;提高部分要求1、使时钟具有整点报时功能(当时钟计到5950”时开始报时,四个不同整点发出不同声音);2、分频比可变;三、方案论证(整体电路设计原理)本实验在实现实验基本功能的基础上,加入了整点报时等功能;图1为实验功能方框图: 图1 实验方框图数字计时器基本功能是计时,因此首先需要获得具有精确

3、振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为4khz,通过分频获得所需脉冲频率(1hz,1khz,500hz)。为产生秒位,设计一个模60计数器,对1hz的脉冲进行秒计数,产生秒位;为产生分位,通过秒位的进位产生分计数脉冲,分位也由模60计数器构成;为产生时位,用一个模24计数器对分位的进位脉冲进行计数。整个数字计时器的计数部分共包括六位:时十位、时个位、分十位、分个位、秒十位和秒个位。显示功能是通过数选器、译码器、码转换器和7段显示管实现的。因为实验中只用一个译码显示单元,7个7段码(6个用于显示时分秒,一个显示星期),所以通过4个7选一mux和一个3-8译码

4、器配合,根据计数器的信号进行数码管的动态显示。清零功能是通过控制计数器清零端的电平高低来实现的。只需使清零开关按下时各计数器的清零端均可靠接入有效电平(本实验中是低电平),而清零开关断开时各清零端均接入无效电平即可。校分校时功能由防抖动开关、逻辑门电路实现。其基本原理是通过逻辑门电路控制分计数器的计数脉冲,当校分校时开关断开时,计数脉冲由低位计数器提供;当按下校分校时开通时,既可以手动触发出发式开关给进位脉冲,也可以有恒定的1hz脉冲提供恒定的进位信号,计数器在此脉冲驱动下可快速计数。为实现可靠调时,采用防抖动开关(由d触发器实现)克服开关接通或断开过程中产生的一串脉冲式振动。保持功能是通过逻

5、辑门控制秒计数器输入端的1hz脉冲实现的。正常情况下,开关不影响脉冲输入即秒正常计数,当按下开关后,使脉冲无法进入计数端,从而实现计时保持功能。整点报时功能可以通过组合逻辑电路实现。当计数器的各位呈现特定的电平时,可以选通特定的与门和或门,将指定的频率信号送入蜂鸣器中,实现在规定的时刻以指定频率发音报时。四、各个模块设计原理总体的顶层原理图如下:4.1 分频电路模块设计一、原理图:二、源代码:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity fenp is port( clk :

6、in std_logic; clk1k : out std_logic; clk500: out std_logic; clk1hz:out std_logic );end;architecture one of fenp issignal f1k:std_logic;signal f500:std_logic;signal f1:std_logic; begin p1:process(clk)variable cnt1:std_logic_vector(1 downto 0);variable cnt12:std_logic_vector(2 downto 0);variable cnt13

7、:std_logic_vector(11 downto 0);beginif clk=1 and clkevent then if cnt1=11 then f1k=1;cnt1:=00; -11-00=4 fen ping else cnt1:=cnt1+1;f1k=0;-111-000=8 fen pingend if;-1111 1001 1111-0000 0000 0000=4000 fen pingif cnt12=111 then f500=1;cnt12:=000; -11-00=4 fen ping else cnt12:=cnt12+1;f500=0;-111-000=8

8、fen pingend if;if cnt13=111110011111 then f1=1;cnt13:=000000000000; -11-00=4 fen ping else cnt13:=cnt13+1;f1=0;-111-000=8 fen pingend if;end if;end process;p2:process(f1k,f500,f1)variable cnt2:std_logic;variable cnt22:std_logic;variable cnt23:std_logic;beginif f1kevent and f1k=1 thencnt2:=not cnt2;i

9、f cnt2=1 then clk1k=1;else clk1k=0;end if;end if;if f500event and f500=1 thencnt22:=not cnt22;if cnt22=1 then clk500=1;else clk500=0;end if;end if;if f1event and f1=1 thencnt23:=not cnt23;if cnt23=1 then clk1hz=1;else clk1hz=0;end if;end if;end process;end;三、 时序仿真图:四、功能说明通过对输入时钟上升沿进行计数,以计数的溢出值f1k、f5

10、00、f1的上升沿对计数器输出进行取反操作。从而可以对讲计数频率偶数次分频,且输出方波,占空比50%;4.2秒计时器模块设计一、电路原理:二、源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity second1 isport(clk1s:in std_logic;reset: in std_logic;sec2,sec1:buffer std_logic_vector(3 downto 0);-miao gaodiweise

11、c0:out std_logic- miao jinwei);end second1;architecture a of second1 isbegin process(clk1s,reset)begin if reset=0 then -qing lingsec1=0000;sec2=0000;sec0=0;elsif clk1sevent and clk1s=1 then if (sec1=1001 and sec2=0101) then -jidao 59ssec2=0000;sec1=0000;sec0=1;elsif (sec1=1001) then -jidao 9ssec1=00

12、00;sec2=sec2+1;sec0=0;else sec1=sec1+1; -zhengchangjishu 1s sec0=0;end if;end if;end process;end;三、时序仿真:四、功能说明:对输入1hz的频率进行计数,用reset进行复位清零;只有reset为高时才开始计数;输出2组4位的bcd码,用于数码管显示;达到59s时输出进位信号色sec0;4.3分计时器模块设计一、原理图设计:二、源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_

13、logic_unsigned.all;entity minute1 isport( clkm:in std_logic; -miao jinwei clk1s:in std_logic; -jiao feng xinhaosetm:in std_logic; - jiao feng kongzhimin2,min1:buffer std_logic_vector(3 downto 0); -fengzhong gaodiweiminco: out std_logic -fengzhong jinwei );end;architecture a of minute1 is signal clkx

14、:std_logic; beginpclkm:process(clkm,clk1s,setm)beginif setm=1 then clkx=clk1s;else clkx=clkm;end if;end process;pcontm:process(clkx)begin if clkxevent and clkx=1 thenif(min1=1001 and min2=0101) thenmin1=0000;min2=0000;minco=1;elsif (min1=1001) then min1=0000;min2=min2+1;minco=0;else min1=min1+1;minc

15、o=0;end if;end if;end process;end;、三、时序仿真:四、功能说明:对输入的秒进位进行计数,记满59min时产生进位信号minco,正常分计数值由两组4位bcd码送出,用于数码管显示;setm引入快速计分信号1hz;4.4 小时计时器模块设计一、 原理图:二、源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity hour1 isport(clkh:in std_logic;clk1s: in s

16、td_logic;seth:in std_logic;hou2,hou1:buffer std_logic_vector(3 downto 0);end;architecture a of hour1 issignal clky : std_logic;begin pclkh:process(clkh,clk1s,seth)beginif seth=1 then clky=clk1s;else clky=clkh;end if;end process;pconth:process(clky)beginif clkyevent and clky=1 thenif (hou1=0011and ho

17、u2=0010) then hou1=0000;hou2=0000;elsif (hou1=1001) then hou1=0000;hou2=hou2+1;else hou1 flag500:=1; -when 0011= flag500:=1;when 0100= flag500:=1;-when 0110= flag500:=1;when 1001= flag1k:=1;when others= flag500:=0;flag1k:=0;end case;-else flag500:=0;flag1k:=0;elsif( (hou2=0001 and hou1=0010)and min1

18、=1001 and min2=0101 and sec2=0101) then -12 xiaoshi 59fen 50miaocase sec1 is-mingjiao 2ci 1 gao 1 di 9 4-when 0000= flag1k:=1;-when 0011= flag1k:=1;when 0100= flag1k:=1;-when 0110= flag500:=1;when 1001= flag500:=1;when others= flag500:=0;flag1k:=0; end case;elsif(hou2=0000 and hou1=0011) and min1=10

19、01 and min2=0101 and sec2=0101) then -3 xiaoshi 59fen 50miaocase sec1 is-mingjiao 3ci 2 di 1 gao 14 9 when 0001= flag500:=1; -when 0010= flag500:=1;when 0100= flag500:=1;-when 0110= flag500:=1;when 1001= flag1k:=1;when others= flag500:=0;flag1k:=0;end case;-else flag500:=0;flag1k:=0;elsif( (hou2=000

20、1 and hou1=0101)and min1=1001 and min2=0101 and sec2=0101) then -15 xiaoshi 59fen 50miaocase sec1 is-mingjiao 3ci 2 gao 1 di 14 9when 0001= flag1k:=1;-when 0010= flag1k:=1;when 0100= flag1k:=1;-when 0110= flag1k:=1;when 1001= flag500:=1;when others= flag500:=0;flag1k:=0;end case;elsif( (hou2=0000 an

21、d hou1=0110)and min1=1001 and min2=0101 and sec2=0101) then -6 xiaoshi 59fen 50miaocase sec1 is-mingjiao 4ci 3 di 1 gao 135 9when 0001= flag500:=1;when 0011= flag500:=1;when 0101= flag500:=1;-when 0101= flag1k:=1;-when 0111= flag500:=1;when 1001= flag1k:=1;when others= flag500:=0;flag1k:=0;end case;

22、elsif( (hou2=0001 and hou1=1000)and min1=1001 and min2=0101 and sec2=0101) then -18 xiaoshi 59fen 50miaocase sec1 is-mingjiao 4ci 3gao 1di 135 9when 0001= flag1k:=1;when 0011= flag1k:=1;when 0101= flag1k:=1;-when 0101= flag500:=1;-when 0111= flag1k:=1;when 1001= flag500:=1;when others= flag500:=0;fl

23、ag1k:=0;end case;elsif( (hou2=0000 and hou1=1001)and min1=1001 and min2=0101 and sec2=0101) then -9 xiaoshi 59fen 50miaocase sec1 is-mingjiao 5ci 4di 1gao 1357 9when 0001= flag500:=1;when 0011= flag500:=1;when 0101= flag500:=1;-when 0100= flag1k:=1;-when 0101= flag1k:=1;when 0111= flag500:=1;when 10

24、01= flag1k:=1;when others= flag500:=0;flag1k:=0;end case;elsif( (hou2=0010 and hou1=0001)and min1=1001 and min2=0101 and sec2=0101) then -21 xiaoshi 59fen 50miaocase sec1 is-mingjiao 5ci 4gao 1di 1357 9when 0001= flag1k:=1;when 0011= flag1k:=1;when 0101= flag1k:=1;-when 0100= flag500:=1;-when 0101=

25、flag500:=1;when 0111= flag1k:=1;when 1001= flag500:=1;when others= flag500:=0;flag1k:=0;end case;else flag500:=0;flag1k:=0;end if;end if;if flag500=1 then alarm=clk500;elsif flag1k=1 then alarm=clk1k;else alarm=0;end if;end process;end;三:时序仿真:四、功能说明:以下是报时表和对应的整点对应关系报时时刻报时方式0 点1高声+1低声12 点1低声+1 高声3 点2高声+1低声15点2低声+1 高声5点3高声+1低声18点3低声+1 高声9点4高声+1低声21点4低声+1 高声五、实验中遇到问题及解决方法1.分频电路仿真没有波形。仔细分析发现,该电路的分频比很大。由于我们的仿真时间设置得很小,所以没有什么结果出现;通过修改仿真时间和分频比,我得到了预期的波形;由于分频比较大,所以在时序图上看不出1k和500hz的区别;可用硬件进行测试,用示波器可以观察到所需频率值基本正确。2.试验箱中没有预期的4mhz的时钟信号。解决办法由多种,最常见的一种就是修改分频比;还有就是可以用嵌入式锁相环来得到所需频率。六、结论本实验利用quartu

温馨提示

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

评论

0/150

提交评论