




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
黄凯 0807390126 多功能数字时钟的设计 摘要:本文是基于QuartusII软件以及相应的实验平台完成的多功能数字计时器实验,使我们清楚地了解到我们身边的数字表的功能是怎样实现的。设计时采用了层次设计思想,功能逐级递加。实验主要包含两个主体-时钟基本功能电路、闹钟电路。主体一:主要涉及模60与模24计数器、动态显示控制电路、分频器主要整点报时电路,这些电路都是以模块封装好的,以便其他电路调用。以计数器构成计时部件,通过分频器分出的1HZ脉冲计时,调用动态显示电路显示,通过整点报时电路控制蜂鸣器。在计数器级联时采用内部同步外部异步的方式,但通过简单的改变达到了同步的效果而且比同步还可靠。显示控制时为了节约资源采用动态原理。主体二:主要涉及模60与模24计数器、显示控制电路、比较器。以模60与模24计数器构成定时与存储电路,调用动态显示控制电路显示。通过比较器对闹钟时刻与实际时间进行比较,同时控制蜂鸣器鸣叫。关键字:层次设计 多功能数字时钟 同步 整点报时 闹钟 VHDL语言 目录I、 正文4一、设计要求说明4二、方案论证4三、各模块设计原理6 1、分频器的设计6 2、计时器的设计8 3、校时(校分)模块9 4、消颤电路模块10 5、整点报时模块11 6、动态显示模块12 7、具有基本要求的数字钟的组装15 8、闹钟模块16四、具有闹钟功能的数字钟总装图20五、编程下载21II、结论22III、参考文献22IV、实验感想23I、正文一、 设计要求说明:1、 设计一个具有校时、校分,清零,保持和整点报时功能的数字钟。2、 对数字钟采用层次化的方法进行设计,要求设计层次清晰、合理;构成整个设计的功能模块既可采用原理图输入法实现,也可采用文本输入法实现。3、 数字钟的具体设计要求具有如下功能:1)、数字钟最大计显示23时59分59秒;2)在数字钟正常工作进可以对数字钟进行快速校时和校分,即拨动开关K1可对小时进行校正,拨动开关K2对分进行校正;3)在数字钟正常工作情况下,可以对其进行不断复位,即拨动开关K3可以使时、分、秒显示回零;4)保持功能是要求在数字钟正常工作情况下,拨动开关K4可以使数字钟保持原有显示,停止计时;5)整点报时是要求数字钟在每小时整点到来前进行鸣叫,鸣叫频率在59分53秒、55秒、57秒时为1KHz,59分59秒时为2KHz;6)要求所有的控制开关具有去抖动功能。4、 对设计电路进行功能仿真。5、 将仿真双月刊的逻辑电路下载到EDA实验系统,对其功能进行验证。二、 方案论证:1、实现数字钟的计时功能:通过分析数字钟的功能,知道该设计需要一个模为24的计数器构成小时的计数,两个模为60的计数器实现分和秒的计数,三个计数器之间构成进位关系,即计数器为分计数器提供计数脉冲信号,分计数器为时计数器提供脉冲信号。从全局设计考虑计数器应具有使能端和异步清零端。可以考虑用文本输入法实现这两种不同模的计数器。无论是用原理图法输入还是用文本输入法实现的设计,当文件编译通过之后,均可以生成一个与其文件名相同的逻辑符号。在以后的原理图设计中,可将该文件以一个器的形式被调用。2、实现控制开关支抖动功能:EDA实验系统提供的开关是机械开关,机械开关在接通或断开过程中,通常会产生一串脉冲式的振动,在电路中会相应产生一串电脉冲,若不采取措施,往往会使逻辑电路发生误动作,为了消除这种误动作,需要设计一个去抖动电路。该模块的设计可采用原理图输入法,也可采用文本输入法。3、实现数字钟的校时、校分功能:数字钟的校时和校分功能的原理相同,设计中可加入一选择模块,该模块既可采用原理图法也可采用文本输入法实现。下面以校分为例说明:分计数器计数脉冲有两个不同的来源,一个是秒的进位信号,还有一个是快速校分信号(可以是1Hz或2Hz脉冲),根据分开关的不同状态决定关入分计数器脉冲来源,以完成正常工作或快速校分功能。4、实现数字钟的清零、保持功能:数字钟的这两种功能,可利用已经双月刊去抖动处理的开关去控制实现计时功能的计数器本身所带的使能端和清零端来实现。5、实现数字钟的报时功能数字钟的报时功能由两部分组成,一部分的作用的选择报时的时间,一部分的作用是选择报时的频率。根据设计要求,数字钟在59分53秒、59分55秒、59分57秒的报时鸣叫频率是1KHz,在59分59秒的鸣叫频率是2KHz。报时所需的鸣叫信号可由2KHz的信号源提供,然后利用一个二分频的分频器得到1KHz的信号。6、考虑如何将闹时设置显示出来,即当选定闹时设置时,数码管将显示闹时时间。7、将数字钟的名功能模块级联,生成顶层电路,实现总体设计要求。三、各模块设计原理:1、分频器的设计:系统提供的频率为48MHz。而我们需要1Hz(时钟频率)、2Hz(校时和校分频率)、1KHz(53秒、55秒、57秒报时频率)、2KHz(59秒报时频率)。所以需要分别对其进行48M分频,24M分频,48K分频及24K分频。主要的设计思想是,在程序中设置具有某范围(根据分频数确定)的变量随时钟计数,前一半计数范围内使输出为0,后一半为1即可。占空比为50%。该分频器用VHDL语言描述如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpin1 isport(clk_in,reset : in std_logic;clk_out0,clk_out1,clk_out2,clk_out3 :out std_logic);end fenpin1;architecture structure of fenpin1 isconstant count0:integer:=24000;constant count1:integer:=48000;constant count2:integer:=24000000;constant count3:integer:=48000000;begindivide_clk:process(clk_in,reset)variable n0:integer range 0 to 23999; variable n1:integer range 0 to 47999;variable n2:integer range 0 to 23999999;variable n3:integer range 0 to 47999999;8beginif (reset=1)thenn0:=0; n1:=0; n2:=0; n3:=0;clk_out0=0; clk_out1=0; clk_out2=0; clk_out3=0;elsif falling_edge(clk_in)thenif(n0(count0/2)thenclk_out0=0;n0:=n0+1;elsif(n0count0)thenclk_out0=1;n0:=n0+1;elsen0:=0;end if; -2KHzif(n1(count1/2)thenclk_out1=0;n1:=n1+1;elsif(n1count1)thenclk_out1=1;n1:=n1+1;elsen1:=0;end if; -1KHz黄凯 0807390126if(n2(count2/2)thenclk_out2=0;n2:=n2+1;elsif(n2count2)thenclk_out2=1;n2:=n2+1;elsen2:=0;end if; -2Hzif(n3(count3/2)thenclk_out3=0;n3:=n3+1;elsif(n3count3)thenclk_out3=1;n3:=n3+1;elsen3:=0;end if; -1Hzend if;end process divide_clk;end architecture structure;分频器集成模块图为:6黄凯 080739012626分频器仿真图为:2、计时器的设计:计时器分为小时计时器,分计时器和秒计时器。其中小时计时器为模24计数器,分和秒计时器为模60计数器。两计数器均具有异步清零,同步置数的功能。该计数器用VHDL语言描述如下:-模60计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY cntm60 ISPORT(ci :in std_logic; -进位信号,输入 nreset :in std_logic; -清零信号(异步清零,低位有效),输入 load :in std_logic; -置数使能端(同步置数,高位有效),输入 d :in std_logic_vector(7 downto 0); -置数位,输入 clk :in std_logic; -时钟信号(下降沿触发),输入 co :out std_logic; -进位信号,输出 qh :buffer std_logic_vector(3 downto 0); -高位,输出 ql :buffer std_logic_vector(3 downto 0) -低位,输出);END cntm60;ARCHITECTURE behave OF cntm60 ISBEGINco=1 when (qh=0101 and ql=1001 and ci=1) else 0;PROCESS(clk, nreset) BEGIN IF(nreset=0)THEN qh=0000; ql=0000; ELSIF(clk EVENT AND clk=0)THEN if(load=1) then qh=d(7 downto 4); ql=d(3 downto 0); elsif(ci=1) then if(ql=9) then -将处条件更改为 “if(ql=9 or (qh=2 and ql=3) then” 即可将该计数器变成模24计数器 ql=0000; if(qh=5) then qh=0000; else qh=qh+1; end if; else ql=ql+1; end if; end if; -end if_load END IF; -END IF_resetEND PROCESS;END behave;模60集成模块为:模60仿真图形为:3、校时(校分)模块:校时(校分)模块相当于一个单刀双掷开关,当开关为“1”的时候由下一级的进位作为时钟信号输入上一级的时钟输入端,当开关为“0”的时候直接输入2Hz的频率作为上一级的时钟信号进行校时(校分)。校时电路用VHDL语言描述如下:-校时电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jiaoshi IS PORT(f1 :IN STD_LOGIC; -进位频率输入 f2 :IN STD_LOGIC; -校时频率输入 key :IN STD_LOGIC; -控制键(低电平校时) cout :OUT STD_LOGIC -输出端(接后一级时钟端) );END jiaoshi;ARCHITECTURE behave OF jiaoshi IS BEGIN PROCESS(f1,f2,key) BEGIN IF (key=0) THEN cout=f2; ELSE cout=f1; END IF; END PROCESS;END behave;校时电路集成模块为:校时电路仿真图为:4、消颤电路模块:消颤电路由一个D触发器构成,其时钟信号输入1KHz即可达到消颤的功能。消颤电路组装如下图:消颤电路集成后模块为:5、整点报时模块:整点报时模块由VHDL语言实现,其设计的基本思想是将分位、秒位、1KHz和2KHz的频率输入。数字钟在59分53秒、59分55秒、59分57秒将1KHz的频率输出,在59分59秒时将2KHz的频率输出。用VHDL语言描述如下:-报时电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY baoshi IS PORT(mh :IN STD_LOGIC_VECTOR(3 DOWNTO 0); -分高位输入 ml :IN STD_LOGIC_VECTOR(3 DOWNTO 0); -分低位输入 sh :IN STD_LOGIC_VECTOR(3 DOWNTO 0); -秒高位输入 sl :IN STD_LOGIC_VECTOR(3 DOWNTO 0); -秒低位输入 f1 :IN STD_LOGIC; -1KHz频率输入 f2 :IN STD_LOGIC; -2KHz频率输入 cout :OUT STD_LOGIC -输出端,接蜂鸣器 );END baoshi;ARCHITECTURE behave OF baoshi IS BEGIN PROCESS(mh,ml,sh,sl) BEGIN IF(mh=0101 AND ml=1001 AND sh=0101) THEN IF(sl=0011 OR sl=0101 OR sl=0111) THEN cout=f1; ELSIF(sl=1001) THEN cout=f2; ELSE cout=0; END IF; END IF; END PROCESS;END behave;整点报时集成模块为:整点报时仿真图为:6、动态显示模块:动太显示模块由两部分构成,一是六选一控制电路,二是七段数码管显示译码器7447。理论上给七选一控制电路一个大于50Hz的频率(此处我们给1KHz),由于人眼的视觉暂留效应,我们仍然可以看到所有数码管均显示。六选一控制电路由VHDL代码实现,通进修改代码,最高可实现八路同时显示。用VHDL语言描述如下:-六选一的控制电路LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY SEL ISPORT(CLK : IN STD_LOGIC; RST : IN STD_LOGIC; QIN1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN3 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN5 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN6 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEL : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END SEL;ARCHITECTURE BEHAVE OF SEL ISBEGIN PROCESS(CLK,RST) VARIABLE CNT:INTEGER RANGE 0 TO 5; BEGIN IF(RST=0) THEN CNT:=0; SEL=00000000; QOUTQOUT=QIN1; SEL QOUT=QIN2; SEL QOUT=QIN3; SEL QOUT=QIN4; SEL QOUT=QIN5; SEL QOUT=QIN6; SEL QOUT=QIN1; SEL =11111111; END CASE; END IF; END PROCESS;END BEHAVE;六选一集成模块为:动态显示模块组装图为:动态显示仿真图为(对QIN1=2时进行动显译码):7、具有基本要求的数字钟的组装:利用上术模块已经可以组装出一个具有计时、校时、校分、开关消颤、整点报时及显示功能的数字钟。其组装图如下:基本数字钟集成模块图为:8、闹钟模块:闹钟模块的设计与基本计时模块类似。唯一不同的是将秒、分、时位是否计时全部改为用开头控制,即调节闹钟时刻。另外再加上一个比较器与实际时间相比较,闹钟时刻与实际时间相等时,闹钟启动。由于仅有8位数码管,而总共需要显示12位,所以还要加一个显示控制器,对时钟显示和闹钟时刻显示进行切换。1)比较器的设计由VHDL语言实现,将时钟时间各闹钟时刻输入进行比较,当两者相等时,将1KHz频率间隔输出,驱动蜂鸣器。比较器用VHDL语言描述如下:-比较器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY bijiao ISPORT( QIN1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN3 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN5 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN6 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN13 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN14 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN15 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); QIN16 : IN STD_LOGIC_VECTOR(3 DOWNTO 0); F1 : IN STD_LOGIC; FOUT : OUT STD_LOGIC);END bijiao;ARCHITECTURE BEHAVE OF bijiao ISBEGIN PROCESS(F1) VARIABLE CNT:INTEGER RANGE 0 TO 6; BEGIN IF(QIN16=QIN6 AND QIN15=QIN5 AND QIN14=QIN4 AND QIN13=QIN3) THEN IF(QIN2=0000 OR QIN2=0001 OR QIN2=0010) THEN IF(QIN1=0000 OR QIN1=0001 OR QIN1=0011 OR QIN1=0100 OR QIN1=0110 OR QIN1=0111 OR QIN1=1001) THEN FOUT=F1; ELSE FOUT=0; END IF; ELSE FOUT=0; END IF; ELSE FOUT=0; END IF; END PROCESS;END BEHAVE;比较器集成模块为:比较器仿真图为:2)本设计中显示控制模块依然由VHDL语言实现,设计思想大体等同于设计一个单刀双掷开关。当开关为1时输出一路,当开关为0时输出另外一路。用VHDL语言描述如下:-显示控制LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xiankong IS PORT(DIG1 :IN STD_LOGIC_VECTOR(7 DOWNTO 0); SEG1 :IN STD_LOGIC_VECTOR(7 DOWNTO 0); DIG2 :IN STD_LOGIC_VECTOR(7 DOWNTO 0); SEG2 :IN STD_LOGIC_VECTOR(7 DOWNTO 0); key :IN STD_LOGIC; DIG :OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SEG :OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END xiankong;ARCHITECTURE behave OF xiankong IS BEGIN PROCESS(key) BEGIN IF (key=0) THEN DIG=DIG2; SEG=SEG2; ELSE DIG=DIG1; SEG=SEG1; END IF; END PROCESS;END behave;显示控制集成模块为:显示控制仿真图为:闹钟组装图为:闹钟集成模块图为:四、具有闹钟功能的数字钟总装图:五、编程下载:1、分配管脚在打开的Quartus II 7.0窗口中,选择“Assignments-Pins”,在Location下拉选择相应的管脚或直接输入相应的管脚号。管脚分配图如下:2、安全设置选择“Assignments-Setting”,在Device&Pin Options中点击Unused Pins标签页,设置不用的管脚为三态。3、全程编译选择“Processing”,在其下拉菜单中选择“Start Compilation”进行全程编译。4、下载点击工具栏上的 按钮,在Hardware Setup中点击Add Hardware按钮,选定OK,将Hardware Setup改为ByteBlasterLPT1。在Program/configure列下的复选框中打勾后,点击 按钮,将电路下载至EDA实验系统的PLD器件中。下载结束后,实际操作,检查是否达到设计要求。II、 结论软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然;软件内部提供有丰富的元件库 故障率低,出错时,有错误提示,明显提高了效率,可以通过模块来实现设计者在逻辑上需要的个性模块,方便其他电路中使用相同模块,节约设计时间。 本次试验就利用QuartusII软件设计一个电子数字钟,并下载到CPLD实验系统中。初步了解并体验利用软件设计电路功能硬件实现设计思想的过程及其优点,通过QuartusII软件设计好硬件功能,然后下载到可编程逻辑器件中完成实验。本实验最终,时钟运行正常,整点报时功能正常。并且实现了闹钟时刻与正常时间的分时显示。闹钟也可以正常运行。III、 参考文献 EDA技术及应用 主编:王广君 杨志方 华中科技大学出版社 数字电路EDA设计与应用 主编:聂小燕 鲁才 人民邮电出版社 EDA技术及VHDL 主编:蒋小燕 东南大学出版社 EDA技术 主编:刘俊逸 华中科技大学出版社 EDA技术与VHDL电路开发应用实践 主编:刘语晓 电子工业出版社 EDA设计实验指导书 主编:南京理工大学电子技术中心 数字逻辑电路与系统设计 主编:蒋立平 电子工业出版社IV、 实验感想通过本周的实验,每天从早上8:00到晚上10:00,为了实现自己的设计反复翻阅资料,和同学讨论,调试、修改程序,而不知疲倦。本次实验,我收获了很多。不仅是知识上的东西,还有很多人生奋
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无菌加湿吸氧装置创新创业项目商业计划书
- 坚果果仁果酱蜜饯创新创业项目商业计划书
- 智能门禁控制创新创业项目商业计划书
- 小朋友故事教学课件
- 鲜花代售合同(标准版)
- 渣油热加工工国庆节后复工安全考核试卷含答案
- 注射剂工国庆节后复工安全考核试卷含答案
- 净化购销合同(标准版)
- 殡葬礼仪师中秋节后复工安全考核试卷含答案
- 防雷技术检测合同(标准版)
- 干式气柜检修施工方案
- 佳能-EOSM-相机说明书
- 2024年食品生产企业食品安全管理人员监督抽查考试题库(含答案)
- 《无机化学》课件-第6章 分子结构和晶体结构
- 货运代理运输服务合同范本2024年
- 预防高处坠落安全监理细则
- 5.2 氮及其化合物 课件高一下学期化学人教版(2019)必修第二册
- 经典脑筋急转弯400则
- 2024-2030年中国移动DR产业发展动态及未来趋势预测报告
- (正式版)QBT 5998-2024 宠物尿垫(裤)
- 创伤性急性硬膜下出血
评论
0/150
提交评论