《毕业论文基于Eda的多功能数字钟设计33538.doc》由会员分享,可在线阅读,更多相关《毕业论文基于Eda的多功能数字钟设计33538.doc(34页珍藏版)》请在三一办公上搜索。
1、EDA课程设计报告 名称:多功能数字时钟指导教师:姓 名: 学 号:院 系:时 间: 摘 要本文是基于Altera公司出品QuartusII软件以及相应的实验平台完成的多功能数字计时器实验,使我们清楚地了解到我们身边的数字表的功能是怎样实现的。设计时采用了层次设计思想,功能逐级递加,并在封装时留有很多外围接口,以备增加其他新功能。实验主要包含三个主体-时钟基本功能电路、闹钟电路、万年历电路。主体一:主要涉及模60与模24计数器、动态显示控制电路、分频器主要整点报时电路,这些电路都是以模块封装好的,以便其他电路调用。以计数器构成计时部件,通过分频器分出的1HZ脉冲计时,调用动态显示电路显示,通过
2、整点报时电路控制蜂鸣器。在计数器级联时采用内部同步外部异步的方式,但通过简单的改变达到了同步的效果而且比同步还可靠。显示控制时为了节约资源采用动态原理,自编了VHDL语言的24选4数据选择器。主体二:主要涉及模60与模24计数器、显示控制电路、14-7同或门。以模60与模24计数器构成定时与存储电路,调用动态显示控制电路显示,通过14-7同或门和后续与门控制蜂鸣器。主体三:主要涉及模100、模12与模30计数器、动态显示电路。以计数器构成计时部件,调用动态显示电路显示。 最后由于功能中涉及的开关太多,我们采用了两种复用原理,给出了两种复用思想。 关键字:层次设计 多功能数字时钟 同步 整点报时
3、 闹钟 万年历 VHDL语言 Summary:This text is according to Altera companys QuartusII software and homologous experiment terrace completed multi-function number timer experiment, make us clearly understand the function of number form how carry out.While designing we adopted the layer designs thought, the funct
4、ion pursues class gradually increase, and stay a lot of outer circles to connect while sealing to pack to fully increase other new functions. The experiment mainly includes three corpuses-The clock basic function electric circuit, alarm clock electric circuit, ten thousand calendar electric circuits
5、.Corpus one: Mainly involve a mold 60 with mold 24 count machine, dynamic state to show a control electric circuit, cent repeatedly machine , a little bit whole tell the time electric circuit,These electric circuits are all packed with mold piece okay, for the purpose of other electric circuits adju
6、st to use. With count machine composing to account parts, pass a cent repeatedly the machine divides of when the 1 HZ pulse accounts adjust to show that the electric circuit suggests and passes a little bit whole buzzer that tell the time an electric circuit control with the dynamic state. BE counti
7、ng the way that the machine class adopted synchronously external different step in the inner part while uniting, but came to a synchronous effect through a simple change and than synchronously returned credibility. While showing a control for economizing a resources adoption dynamic state principle,
8、 from wove VHDL language of 24 choose 4 data selectors.Corpus two: Mainly involve a mold 60 with mold 24 count machine, show control electric circuit, 14-7 together or door. With mold 60 with mold 24 count machine composing in fixed time with saving electric circuit, adjust to show control electric
9、circuit to suggest with the dynamic state, pass 14-7 together or door and follow-up and door control buzzer.Corpus three: Mainly involve a mold 100, mold 12 with mold 30 count a machine, dynamic state to show electric circuit. With count the machine composing accounts parts, adjust to show that the
10、electric circuit shows with the dynamic state.Finally because of too many switch involving in the function, we adopted 2 kinds to reply to use principle and gave 2 kinds reply to use thought.Key word: The layer designs、multi-function digital clock、Synchronous、 A little bit whole tell the time, alarm
11、 clock、 ten thousand calendars,、The language of VHDL目 录一 设计说明4I功能说明4II功能简介4III.开关功能介绍(两种方案)4二方案论证 5I.总体方案分析5II. 电路的工作原理 6三 各子模块设计原理 8 I脉冲分频模块 8 II.时钟计时模块(包含校定和清零功能) 10 III显示控制电路14 IV.显示模块和计时模块结合 18V.整点报时模块 18VI.闹钟模块 20VII.万年历模块 24四 调试与仿真 27 I.脉冲发生模块 27 II计时电路 28III.仿真 29五结论29六实验感想 30一 设计说明I功能说明:利用Qu
12、artusII软件设计一个数字钟,对设计电路进行功能仿真,并下载到SmartSOPC实验系统中,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。本电路在原有基础上进行了拓展,具备以下功能:. 能进行正常的时、分、秒计时功能; 锁死功能-锁死状态下时钟保持不变;. 整点报时功能-当时钟计到5953”时开始报时,在5953”, 5955”,5957” 时报时频率为512Hz,5959”时报时频率为1KHz, ;. 清零功能-时钟计时电路和万年历电路; 快速校时,校分功能-校定时其他计时电路保持; 闹表功能-定时精确到分,
13、闹钟设计响一分钟,可关闭; 万年历-可显示XX年XX月XX日,可快速校定到正确的日期;II功能简介 本电路具有三种不同的工作状态(同步工作),可通过模式键进行切换(可通过LED1、LED2观察当前的模式)。a、 正常计时状态(K7、K8都为一):此状态下数码管显示当前的时间,K1为校分开关,K2为校时开关,K4为清零开关,校分、校时都是以2HZ的信号进行快速到位的。b、 闹表状态(K7=1、K8=0):此状态下数码管显示当前闹定的时间,K1为设定分钟的开关,K2为设定小时开关,清零开关无用- K4。c、 万年历状态(K7=X、K8=1):此状态下数码管显示当前的年月日,K1为设定日期开关,K2
14、为设定月开关,K3为设定年开关、K4为清零开关。d、 锁死状态(K5=0):此状态下所有电路都保持原状态(不给电路送脉冲)。III.开关功能介绍(两种方案)a.简单复用(方便,易操作,但开关太多7个)K1K2K3K4K5K7K801010101010101任意各种操作的开关状态1锁死状态2校分状态3校时状态4时钟清零5设定闹钟分6设定闹钟时7设定万年历天8设定万年历月9设定万年历年10万年历清零b带计数器的复用通过上面的介绍我们可以清楚的看到电路总共有10种工作状态,但这里要把锁死状态单独考虑,所以总共我们就可以通过控制一个摸十或摸九的计数器,再把结果输送给一个数据分配器,在不同数值时把开关状
15、态输送到不同的控制口,计数器数值可以通过LED灯观测。这样我们总共使用三个开关就可以控制整个电路-锁死键、模式键、控制键。(具体电路见下面分析)二 方案论证:I.总体方案分析:整个电路有三大主体电路:1. 控制电路,2.脉冲电路,3,功能电路时钟电路首先要有输入脉冲,由于平台提供了脉冲发生器,就省去了脉冲发生器的设计,这里我们只需要设计一个分频器,得到我们需要的频率。时钟的计时范围是00:00:00-23:59:59,所以我们需要设计模六十和模二十四的计数器组成时钟计时电路。为了显示当前时钟时间,我们需要一个显示电路。校分、校时、清零电路只需要输入一些控制信号给时钟计时电路即可,当然这些控制信
16、号是由开关提供的。要实现整点报时功能,一个报时控制电路是必不可少的。这是只含基本功能的时钟电路所包含的子电路。为了实现我们加入的闹钟功能,我们需要一个闹钟时间设定电路;闹钟时间保持电路;比较电路;蜂鸣器控制电路;闹表时间显示电路。因为我们只含有一个数码显示器,一般状态下显示的是时钟,所以我们需要一个显示模式切换电路。万年历电路需要由计时电路提供计时脉冲,脉冲输送给一个由模30、模12、模100级联而成计时电路。同样万年历电路需要一个时间调整电路、显示电路、显示模式切换电路。通过以上分析我们可以得到如下框架图:图1 电路结构图II. 电路的工作原理电路总图如下(电路进行了封装):图2 电路总图首
17、先由分频器把原来的48MHZ的脉冲用进行分频得到1Khz、500hz、2hz、1hz的脉冲。1hz的脉冲送到时钟计时电路秒位的clk输入口;秒位的进位信号和2hz脉冲通过开关的选择输送到分位电路的时钟输入口,前者用于正常计时,后者由于校分时;分位的进位信号和2hz脉冲通过开关的选择输送到时位电路的时钟输入口,前者用于正常计时,后者由于校时。把三个计数器的输出输送给一个24选4的数据选择器,六组分别为秒个位、秒十位、分个位、分十位、时个位、时十位。数据选择器输入信号由一个模八的计数器提供,这个模八的计数器的输出同时送给一74138译码器。数据选择器的输出送入7447段译码器的输入口,74138的
18、的输出由于选择显示器的位,7447的输出用于段的显示,这样就实现了动态显示。至于整点报时电路我们把要蜂鸣器响的时间通过卡诺图化简,得到最简的逻辑函数式,再把逻辑函数式通过电路实现,满足要求才把脉冲信号输送给蜂鸣器。闹钟电路:首先通过选择是否向分位和十位电路送脉冲来设定时间,当两个电路都无脉冲则电路保持当前的数字,输出端上的电平不在改变,把这个电平信号与时钟计时电路中的对应位输送到一个双输入的同或门,再把14个与门的输出与起来,在与1khz的脉冲与其来送入蜂鸣器。闹表各位的动态显示原理与上面相同。万年历电路:其正常状态的脉冲是由时钟计数器时位的进位信号提供的,在调整日期时,时钟信号是通过开关选择
19、一个2hz脉冲输送到各个电路时钟端的。清零开关的输入信号输送到各个计数器的清零端即可。万年历各位的动态显示原理与上面相同。最后由于有三组输出信号要显示,我们通过显示模式控制开关选择要显示的状态信号。以上的各种状态下的控制键通过模式的选择进行了复用。模式状态切换的连个按键的输入同时输送到两个LED灯,通过观察灯的状态我们就可以判断当前的模式。三 各子模块设计原理I脉冲分频模块平台提供给我们的是48Mhz的脉冲,由于电路的需要,我们要把48Mhz的脉冲分频得到1Khz(蜂鸣器、动态显示)、500hz(蜂鸣器)、2hz(快速调整)、1hz(时钟计数)的脉冲。电路结构图如下:图3 分频器电路结构图a.
20、三分频电路图4本电路采用清零的方法把模16的计数器转换为模三的计数器,输出即为三分频后的脉冲。b.48分频电路图5把一个模16计数器和模3的计数器级联(163=48)即可得到模48的计数器,输出即为48分频后的脉冲。c.1000分频电路图 6把三个模10的计数器级联起来(101010=1000),就可以得到一个1000的分频器,由于做的是分频器考虑的主体是脉冲电平变化率的问题,对一个周期里电平什么时候改变要求并不是很严格,所以这里为了避免冒险未采用芯片的进位信号作为下一级芯片的时钟信号,而是采用把的值送到时钟端。分频器的总电路图:图7最终从48MHZ的脉冲我们得到1Khz(蜂鸣器、动态显示)、
21、500hz(蜂鸣器)、2hz(快速调整)、1hz(时钟计数)的脉冲。其芯片封装结果如下:图 8II.时钟计时模块数字钟的计时电路包括秒位、分位、时位三部分。其中秒位与分位均为60进制计时,时位为24进制计时。这样我们只需设计模60和模24两种计数器即可。秒向分进位,分向时进位,这样把两个模60和一个模24计数器级联就可以得到时钟的计时电路。a模60计数器电路图:图9为了防止冒险我们采用同步的方法设计计数器(1、同步时钟;2、同步置数)。把进位信号送入使能端ENT(高电平有效),当第一片计数到1001(9)时,ENT端变成高电平,但74160是上升沿触发的,此时clk无上升沿第二片不计数,当CL
22、K的上升沿到来,第一片回到0000状态,第二片计数器的值增加1。第一片要设计为模10计数器,第二片要设计成模6计数器,因为74160本身就是模10计数器,所以第一片不要加别的控制电路。第二片我们把Qc、Qa与非起来送入同步置数端LDN,当第二片的计数值为0101(5)时,LDN端低电平,但74160是同步置数的而且是上升沿有效,此时无上升沿不置数,当CLK的上升沿到来第一片会到0000状态,第二片置数为0000,这样计数器就实现了00000000-01011001的计数范围。与外部的联系我们设置了6个端口,一个输出端(进位信号),五个输入端(保持、清零、脉冲切换、脉冲一、脉冲二),下面对6个端
23、口一一分析:保持:我们把开关接到ENP端正常状态开关低电平,信号经过非门变成高电平,送入ENP(高电平有效)端,当开关变成高电平时,ENP端变成低电平,使能端无效此时停止计数,从而达到保持的目的。、清零:与保持端相似。脉冲1、脉冲2、脉冲切换开关:当脉冲切换开关为低电平时CLK2与其与后为低电平,其非与CLK1与后还是CLK1,两个与门的结果或起来为CLK1,当脉冲切换开关为高电平时,同样的分析此时选中CLK2 进位端:把Q1a、Q1d、Q2c、Q2a与非后当做进位信号,及计数值为01011001(59)时进位。为什么选用非信号在总时钟电路时在分析。封装后如下:图10b.模24计数器 电路图:
24、图11其基本思路与模60相差无几,差别只是在置数时不同,第一片在020连个阶段不要置数自己回0,但计到23时要置为0,需要外部控制电路。所以我们要把Q1b、Qa1、Q2b(0010001123)与非起来,把此信号作为置数信号。封装后如下:图 12c.时钟计数电路(包含控制电路)图 13计数电路:脉冲由分频器提供,外部的总电路采用的是异步计数法(但达到了同步的效果),把进位信号连接起来。秒位芯片CLC1接1HZ脉冲CLC2不接,分位芯片CLC1接秒位的进位信号脉冲CLC2接2HZ脉冲-用于校分,时位芯片CLC1接分位的进位信号脉冲CLC2接2HZ脉冲-用于校时。由于进位信号是经过非后送出的,所以
25、未到进位数值时为高电平,当达到进位制时低电平。当秒位为058时,SCI为高,当秒位为59时,SCI为低,此时出现下降沿,分的计数器不计数,当秒位由59变为0时,SCI又变为高电平,出现上升沿,触发分位的计数器,分位计数器加1,从而达到与同步计数方法相同的效果,而且不会出现冒险,这也就是为什么把原来的进位信号非后再送出的原因,分向秒进位分析方法相同。控制电路:总共有三个外接开关-清零、校分、校时。由于校分和校时切换的是脉冲开关的颤抖可能被芯片误认为是计数脉冲,从而造成不稳定,所以在这两个开关上加了防抖动装置(D触发器)。图 14时钟端接的是2HZ脉冲,D触发器的功能是输入端是什么输出端便是什么,
26、但需要上升沿去触发,没有上升沿即使输入端改变输出端也不变,当按下开关时发生颤抖(很短暂)这时无上升沿,输出端不改变,当开关稳定后而且上升沿也到来了输出端改变。为了达到消颤的目的同时又不造成开关的延时这里我们引入的脉冲是2HZ。清零:把开关直接接到三个计数器芯片的清零端即可。校分:开关值接到分位的K,为了达到校分时其他的保持这里还要把开关的值接到其他两个芯片的保持信号输入端。校时:同校分的原理一样。由于秒位在校分和校时时都要保持,所以要把两个保持信号或其来。III显示控制电路结构图:图15电路图:图16电路原理:本电路完成的是动态显示,动态显示不同于以往的静态显示,所谓静态显示,即每一个数码管由
27、单独的七段显示译码器驱动,如要显示N位数,必需用N个七段显示译码器。和静态显示不同,动态显示使用数据选择器的分时复用功能,将任意多位数码管的显示驱动,由一个七段显示译码器来完成。这样即节省了器件,又提高了效率。主体是一个24选4的数据选择器,路选信号是由一个模8计数器提供的,这样在一个周期里空余两个路选信号,由于用的是动态原理,信号停留时间很短一个周期1/1000秒,这样人眼根本看不出。24选4的输出送到7447段译码器,以便在数码管上显示相应数值。模8计数器的输出同时送到位选控制电路,由一个74138译码器构成,以便在任意时间只有一个位有效,这样在任意的一个时间段里由7447提供段显信号,7
28、4138提供位显信号,从而达到动态显示的目的。这里只有24选4芯片是自己设计的,其他的软件都提供了。a.24选4数据选择器的设计这里我们是自己依据实验参考书里的mux数据选择器的VHDL语句编写的。语句如下:library ieee;use ieee.std_logic_1164.all;/声明库entity MUX24 is port (SL1,SL2,SL3,SL4:in std_logic; SH1,SH2,SH3,SH4:in std_logic; ML1,ML2,ML3,ML4:in std_logic; MH1,MH2,MH3,MH4:in std_logic; HL1,HL2,H
29、L3,HL4:in std_logic; HH1,HH2,HH3,HH4:in std_logic; A1,A2,A3 :in std_logic; D1,D2,D3,D4 :out std_logic);/定义输入输出端口end MUX24;architecture P of MUX24 is SIGNAL SL:std_logic_vector(3 downto 0); SIGNAL SH:std_logic_vector(3 downto 0); SIGNAL ML:std_logic_vector(3 downto 0); SIGNALMH:std_logic_vector(3 dow
30、nto 0); SIGNALHL:std_logic_vector(3 downto 0); SIGNALHH:std_logic_vector(3 downto 0); SIGNALD:std_logic_vector(3 downto 0);SIGNAL SEL:std_logic_vector(2 downto 0);/定义数组范围 begin SL=SL1&SL2&SL3&SL4;SH=SH1&SH2&SH3&SH4;ML=ML1&ML2&ML3&ML4;MH=MH1&MH2&MH3&MH4;HL=HL1&HL2&HL3&HL4;HH=HH1&HH2&HH3&HH4;SEL=A1&A2
31、&A3; /把相应的数值赋给对应的数组 with SEL select /用SEL的值作为选择信号 D=SL when 000, /SEL(即输入A1、A2、A3)为000时输出秒低位 SH when 100, ML when 010, MH when 110, HL when 001, HH when 101, 0000 when others; D1=D(3) ; /把数组D的值赋给对应的输出端口 D2=D(2); D3=D(1); D4Device”,点击“Device and Pin Option”,选择“Unused Pins”页中“Reserve all unused pins:”
32、选项中的“As input tri-stated”选项,将未用引脚设为三态输入,重新编译。点击工具栏上的 (Programmer)按钮,点击“Hardware Setup”按钮,在“Currently selected hardware”中选择“ByteBlasterLPT1”。最后选择要下载的文件,点击“Start”即可下载程序。下载完毕即可在模拟试验箱上观察结果。五 结论本次实验由于我们不知最后能实现哪些功能,所以在设计思路上我们采用了层次设计思路,每设计一步都留有很多接口以便下面的设计,功能是逐级递加的。但这样弊病是我们不可能把所有的问题都考虑到,在想修改时很麻烦,修改一步下面的都得改变
33、,想要完善前面的功能同样很复杂。这为以后积累了经验,在考虑问题是应全面,采用当前流行的设计思想模块化设计。经过四天的试验时间我们完成了时钟的基本功能,并且附加了闹表和万年历功能。实验感想:试验中由于一开始在计数器级联时用的是同步信号,导致外围辅助电路很多,从而造成了冒险,电路出现计数不稳定现象,后来把外部级联时采用异步控制法,异步时钟信号经过了简单处理,都是经过一个非门才送出的,达到了与同步相同的效果。实验是对耐心的考验,特别是在出错时,进过四天的实验,锻炼了自己的耐力,是对自己的一种提升。希望可以把实验改成开放新实验,老师介绍完实验设备和软件,然后由学生自由发挥。凭自己的创造力设计出自己中意
34、的作品。这样不但会增加学生的积极性而且会照顾到不同层次的学生。参 考 文 献1 蒋立平.数字电路. 北京:兵器工业出版社,2008.72 南京理工大学电子技术中心.EDA设计实验指导书.Employment tribunals sort out disagreements between employers and employees.You may need to make a claim to an employment tribunal if: you dont agree with the disciplinary action your employer has taken agai
35、nst you your employer dismisses you and you think that you have been dismissed unfairly.For more information about dismissal and unfair dismissal, seeDismissal.You can make a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. However, if you win your case, the tribunal may reduce any c