多功能数字钟.docx
《多功能数字钟.docx》由会员分享,可在线阅读,更多相关《多功能数字钟.docx(21页珍藏版)》请在冰豆网上搜索。
![多功能数字钟.docx](https://file1.bdocx.com/fileroot1/2023-1/27/1b1a0580-222d-432c-b1cf-0e0044945d3e/1b1a0580-222d-432c-b1cf-0e0044945d3e1.gif)
多功能数字钟
EDA实验
多功能数字钟
姓名:
方超
学号:
0908320112
班级:
09042102
院系:
电子工程与光电技术学院
专业:
电子信息工程
指导老师:
花汉兵
实验时间:
2011年10月24日——11月28日
目录
摘要与关键字----------------------------------------3
实验要求说明----------------------------------------4
实验内容--------------------------------------------4
实验目的--------------------------------------------4
实验要求--------------------------------------------4
整体电路设计原理------------------------------------4
电路原理--------------------------------------------4
整体电路图------------------------------------------5
各子模块设计原理------------------------------------5
分频电路--------------------------------------------5
计时电路--------------------------------------------7
报时电路-----------------------------------------9
校时校分、清零保持电路------------------------------10
译码显示电路----------------------------------------11
闹钟电路--------------------------------------------12
音乐报时电路----------------------------------------16
调试仿真及下载--------------------------------------20
设计感想--------------------------------------------20
问题与解决------------------------------------------21
收获与感受------------------------------------------21
参考文献--------------------------------------------21
摘要
本次实验的主要目的是熟悉QUARTEUS-Ⅱ软件的使用方法,和实现FPGA电路设计的一般流程。
本次试验的主要内容是利用ALTERA公司的QUARTUSⅡ开发平台,对Cyclone系列的EP1C12Q240C8芯片进行开发,以实现一周计时的数字钟。
具体功能有:
计时,保持,校时校分,清零,闹铃,音乐整点报时等。
硬件测试与软件仿真的结果吻合。
这次实验说明了数字电路的优势明显,是现在很多电子线路在设计时的首选。
由于FPGA的集成度高,使得FPGA在现在超大规模集成电路时代应用广泛。
关键字:
FPGAQURATUSⅡ数字钟超大规模集成电路
Abstract
ThemainpurposeofthisexperimentistomakeusbefamiliarwiththeusageofQUARTEUS-ⅡandtheprocedureofrealizingFPGAcircuits.ThereportmainlytalksaboutthedevelopmentofEP1C12Q240C8chipinCycloneseriestoimplementadigitalclock.Itcontainsfollowingfunctions:
timing,keep,hour&minuteadjust,alarm,ringingonthehour.Thehardwaretestingresultcorrespondwiththesoftwaresimulationresult.Thisexperimentprovesthatdigitalcircuitshaveobviousadvantagestobethefirstchoiceinthecircuitdesign.DuetothehighintegrationofFPGA,itiswidelyappliedinVLSI.
Keywords:
FPGAQURATUSⅡdigitalclockVLSI
实验要求说明
1.实验内容
利用QuartusII软件设计一个数字钟,可以完成00:
00:
00到23:
59:
59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时、闹钟等功能,并下载到SmartSOPC实验系统中。
2.实验目的
1.熟悉QUARTUS
软件的使用方法,和实现FPGA电路设计的一般流程。
2.掌握较为复杂的逻辑电路的设计方法。
3.了解verilog语言编程。
3.实验要求
1.设计计时电路,完成0时0分00秒~23时59分59秒的计时功能。
2.清零电路,在任何时候,按动清零开关可以进行计时器清零。
3.保持电路,在任何时候,按动使能控制开关可以控制系统的使能。
4.设计音乐报时电路,使数字计时器从59分53秒开始报时,每隔一秒发一声,共三声低音,一声高音;即59分53秒、59分55秒、59分57秒发低音,59分59秒发高音。
之后持续一段音乐。
5.设计校分电路,在任何时候,拨动校分开关,可以进行快速校分;
设计校时电路,在任何时候,拨动校时开关,可以进行快速校时。
6.闹钟设定功能。
整体电路设计原理
一.电路原理
数字钟说到底就是计数器,只是它的工作频率为1HZ。
时分秒各有两位,周一位。
其中周位为模7计数器,时位为一个模24计数器,分位和秒位为模60计数器。
秒位每秒加一,分位每六十秒加一,时位每60分加一,周位每24时加一。
这就是低位的进位信号可以用来驱动高位,这也就是数字钟的最本质的原理。
至于校时和校分电路则只需要用一个开关来控制即可,开关处于一个状态时正常计数,处于另一个状态时位或分位以另外提供的频率工作。
整点报时即当计时满足一定的条件时驱动扬声器即可。
而闹钟也类似,只是用一个比较器进行比较,只要设定的闹铃时间跟数字钟的时间相等时便驱动扬声器工作,但是闹钟需要一个单独的计数器来设定闹铃时间。
最后就是动显部分,动态显示说到底利用的就是人眼的视觉惰性,在闪烁频率大于48HZ时人眼便感觉不到闪烁。
利用这个原理可以使几个数码管以比较高的频率进行工作,这样就可以实现动态显示。
电子设计框图如下
2.整体电路图
各子模块设计原理
1.分频电路的设计
脉冲发生电路是为计时器提供计时脉冲的,因为设计的是计时器,所以需要产生1Hz的脉冲信号。
EDA实验系统的输入时钟为48MHz,那么要产生1Hz的脉冲信号,则要对输入时钟48MHz进行分频,依次进行24分频、两次1000分频、2分频即可得到1Hz的脉冲信号。
同理可以得到校时校分电路所需的2Hz及报时电路所需的500Hz及1KHz。
分频电路总图:
2分频电路图:
2分频仿真波形:
3分频电路图:
3分频仿真波形:
8分频电路:
8分频仿真波形:
10分频电路:
10分频仿真波形:
2.计时电路的设计
由于分位和秒位都是60进制、时位是24进制、周位是7进制,故可以分别设计模60、模24和模7计数器,完成秒、分、小时、周的计时。
1.模60
1)电路图:
2)仿真波形:
2.模24
1)电路图:
2)仿真波形:
3.模7
1)电路图:
2)仿真波形:
4.计时模块总图:
三.报时电路的设计
电路每小时进行一次报时,从59分53秒开始报时,每隔一秒发一声,共三声低音、一声高音。
即59分53秒、59分55秒、59分57秒为低音,59分59秒为高音。
实际上,需要在某一时刻报时,就将该时刻输出为“1”的信号作为触发信号,选通报时脉冲信号,进行报时即可。
总结得出公式为:
F=59’51’’*(2’*f3+4’*f3+8’*f4),其中F为最后要传到扬声器中的信号,f3为500HZ信号,f4为1KZ的信号。
具体电路图如下:
仿真波形:
四.校分、校时电路及清零、保持电路的设计
K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);
K2是系统的清零开关(K2=0正常工作,K2=1时钟的周、时、分、秒全清零);
K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分);
K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时);
校分可通过K3来选择2hz快速校分脉冲或由秒位来得进位信号作为分位的计时脉冲,校时也是如此。
清零可通过K2控制所有位的清零端,使它们同时清零。
保持可让1hz计时信号通过一个与门,由K1控制与门的通断。
由于拨动开关时会有抖动,这在校分校时时会使时间乱跳,因此必须在开关后加消颤电路。
这里用D触发器消颤,因为D触发器的输出端只在时钟的上升沿变化,而其他时刻保持上一次的电平。
实践表明,D触发器的消颤效果不错。
校分电路:
校时电路:
清零电路:
保持电路:
五.译码显示电路的设计
1.原理:
本次实验中用到七位数码显示即七个数码显示管,为控制七个数码管循环点亮,首先用74161设计一个模八计数器。
后将其输出经过一个三--八译码器74138输出位地址。
再用4个8选1数据选择器设计一个32选4的总线数据选择器(可定制),用三位地址选出7个不同的四位BCD码,并送至7447进行码转换,将BCD码转换成数码管相应的段码。
每个数码显示管同步显示需要显示的数字,由于同一时间至点亮一个数码管,用较高的频率来数码管循环显示,利用人眼的视觉惰性,就实现了动态显示功能。
2.电路图:
六.闹钟电路的设计
首先闹钟要有独立的闹钟时间设定电路。
为了方便随时查看、修改闹钟时间,闹钟的时位和分位的值也要在数码管上显示,而数码管有限,所以需要设计一个选择显示电路来切换时钟时间和闹钟时间。
当时钟时间和闹铃时间重合时,蜂鸣器会响。
此时需要一个比较电路来判断两者是否相等。
闹钟时间设定电路其实是计时电路的简化版。
它只包括校时、校分。
闹钟时间设定电路的原理图如下:
选择显示电路是一个总线型2选1数据选择器,可用一个开关作为地址。
选择显示电路的封装图如下:
原理图如下:
比较电路可用同或门来实现。
比较电路的封装图如下:
比较电路的原理图如下:
七、音乐报时电路的设计
为了让自己的数字钟更加精美,故添加音乐报时功能。
先将所要播放的音乐用verilog语言编写后生成一个模块,然后用整点进位信号驱动此模块即可。
音乐报时电路原理图如下:
音乐模块的verilog源程序如下:
//*********************************************************************//
//《友谊地久天长》乐曲//
//时钟:
48MHz//
//*********************************************************************//
//音高与频率的对应关系
//----------------------------------------------------------------------
//||1|2|3|4|5|6|7|
//|低音|261.6Hz|293.7Hz|329.6Hz|349.2Hz|392Hz|440Hz|493.9Hz|
//|中音|523.3Hz|587.3Hz|659.3Hz|698.5Hz|784Hz|880Hz|987.8Hz|
//|高音|1045.5Hz|1174.7Hz|1318.5Hz|1396.9Hz|1568Hz|1760Hz|1975.5Hz|
//----------------------------------------------------------------------
modulesong(clk,beep);//模块名称song
inputclk;//系统时钟48MHz
outputbeep;//蜂鸣器输出端
regbeep_r;//寄存器
reg[7:
0]state;//乐谱状态机
reg[15:
0]count,count_end;
reg[23:
0]count1;
//乐谱参数:
D=F/2K(D:
参数,F:
时钟频率,K:
音高频率)
parameterL_5=16'd61224,//低音5
L_6=16'd54545,//低音6
M_1=16'd45863,//中音1
M_2=16'd40865,//中音2
M_3=16'd36402,//中音3
M_5=16'd30612,//中音5
M_6=16'd27273,//中音6
H_1=16'd22956;//高音1
parameterTIME=12000000;//控制每一个音的长短(250ms)
assignbeep=beep_r;//输出音乐
always@(posedgeclk)
begin
count<=count+1'b1;//计数器加1
if(count==count_end)
begin
count<=16'h0;//计数器清零
beep_r<=!
beep_r;//输出取反
end
end
always@(posedgeclk)
begin
if(count1