仿广播电台整点报时数字钟设计Word下载.docx
- 文档编号:16652196
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:26
- 大小:227.72KB
仿广播电台整点报时数字钟设计Word下载.docx
《仿广播电台整点报时数字钟设计Word下载.docx》由会员分享,可在线阅读,更多相关《仿广播电台整点报时数字钟设计Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
方案一:
采用由石英晶体与逻辑门及RC组成的多谐振荡电路,以产生符合要求的振荡脉冲。
方案二:
采用由555集成电路与RC组成多谐振荡器,以产生符合要求的振荡脉冲。
方案一采用石英晶体振荡器产生的脉冲频率稳定度高且精度很高,适宜于作为要求高精度的时钟基准脉冲,作为振荡器电路。
方案二产生的脉冲频率稳定度相对不高,但在要求不是很高的情况,可以采用方案二。
考虑到经济方面的原因,石英晶体震荡不宜采用,所以本实验采用方案二。
原理图如图2
图2振荡器原理图
这里选用由555构成多谐振荡器,振荡频率为fo=1KHZ
由
f=
;
假定C1=0.1uf,
得到R1=2K;
R2=5.1K;
为了能使得到的频率更精确,再加一个阻值为10K的可调电阻。
1.2分频器的设计方案
分频器的主要功能有两个:
一是产生标准秒脉冲信号,二是提供扩展电路所需信号,仿广播电台报时用的1KHz的高音频信号和500Hz的低音频信号等。
选用3片中规模集成电路,计数器74LS90可以完成上述功能。
因每片为1/10分频,3片级联则可获得所需要的频率信号,即第一片的Q0输出频率为500Hz,第二片的Q3端输出为10Hz,第三片的Q3端输出为1Hz。
74LS90是二——五——十进制计数器,它有两个时钟输入端CP0和CP1。
其中CP0和Q0组成一位二进制计数器,CP1和Q3Q2Q1组成五进制计数器。
若将Q0和CP1相连接,时钟脉冲从CP0输入,则构成十进制计数器,74LS90有两个清零端Ro
(1),Ro
(2)和两个置9端R9
(1),R9
(2),它的功能表和管脚示意图如表1所示。
Ro
(1)
Ro
(2)
R9
(1)
R9
(2)
Q3
Q2
Q1
Q0
1
*
计数
表174LS90功能表
原理图如图3所示,仿真波形如图4所示
图3分频器原理图
图4分频器仿真图
1.3校时电路的设计方案
当数字钟接通电源或者计时出现误差时,需要校正时间。
校时是数字钟应具备的基本功能。
这里只进行分和小时校时。
对校时电路的要求是,在小时校正时不影响分和秒的正常计数;
在分校正时不影响秒和小时的正常计数。
通过门电路实现对进位和校时信号的选择,用RS触发器做开关,可以通过控制RS触发器开关来选择是正常计时模式或是校时模式。
校时电路是由门电路构成的组合逻辑电路,可以完全使校时电路能稳定地工作。
图4所示校“时”、校“分”电路。
其中S1为校“时”用的控制开关,S2为校“分”用的控制开,他们的控制功能表如表2.3.1所示。
校时脉冲采用采用分频器输出的1Hz脉冲。
校时电路原理图如图5所示,仿真图如图6所示。
S1
R1
S2
R2
功能
×
校分
校时
表2
图5校时电路原理图
图6校时电路仿真图
1.4时分秒计数器的设计方案
由于考虑到采用各种计数器集成块组成时序逻辑电路,虽然原理简单,但连线繁多,占用芯片非常多的I/O口,电路稳定性较差,而采用VHDL语言构建的模块稳定性好,而且连线少,节省了芯片的I/O口,因此采用VHDL语言构建模块的方法。
1.4.1小时计数模块VHDL源程序(HOUR)
LIBRARYieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
ENTITYhourIS
PORT(
clk,reset:
INSTD_LOGIC;
daout:
outstd_logic_vector(5downto0));
ENDentityhour;
ARCHITECTUREfunOFhourIS
SIGNALcount:
STD_LOGIC_VECTOR(5downto0);
BEGIN
daout<
=count;
process(clk,reset)
begin
if(reset='
0'
)then
count<
="
000000"
;
elsif(clk'
eventandclk='
1'
if(count(3downto0)="
1001"
if(count<
16#24#)then
count<
=count+7;
else
="
endif;
elsif(count<
16#24#)then
=count+1;
count<
endprocess;
ENDfun;
小时计数原理图如图7所示,仿真图如图8所示
图7小时计数器原理图
图8小时计数器仿真图
1.4.2分计数模块VHDL源程序(MINUTE)
ENTITYminuteIS
clk,clk1,reset,sethour:
enhour:
OUTSTD_LOGIC;
outstd_logic_vector(6downto0));
ENDentityminute;
ARCHITECTUREfunOFminuteIS
STD_LOGIC_VECTOR(6downto0);
process(clk,reset,sethour)
0000000"
elsif(sethour='
enhour<
=clk1;
16#60#)then
if(count="
1011001"
enhour<
='
count<
ELSE
count<
=count+7;
endif;
else
16#60#)then
enhour<
after100ns;
else
分计数原理图如图9所示,仿真图如图10所示
图9分计数器原理图
图10分计数器仿真图
1.4.3秒计数模块VHDL源程序(SECOND)
ENTITYsecondIS
clk,reset,setmin:
enmin:
ENDentitysecond;
ARCHITECTUREfunOFsecondIS
process(clk,reset,setmin)
--enmin<
=k;
if(reset='
elsif(setmin='
enmin<
=clk;
elsif(clk'
eventandclk='
enmin<
ELSE
elsif(count<
16#60#)then
=count+1;
enmin<
秒计数原理图如图11所示,仿真图如图12所示
图11秒计数器原理图
图12秒计器数仿真图
1.5扫描显示模块的设计方案
在这里我们采用动态扫描显示方法。
通过信号选通器选通计数器的某一位经译码器到相应的那个数码管显示出来,其他各位不显示,在下一选通脉冲到来时选择下一位到数码管显示,如此循环。
当这个选通脉冲频率足够大时人眼就感觉不出六个数码管的交替亮灭,从而实现六位数的显示。
我们选用的七段译码驱动器(74LS48)和数码管(LED)是共阴极接法(需要输出高电平有效的译码器驱动)。
译码显示电路如图13所示。
图13译码显示电路
时间设置模块VHDL源程序(SELTIME)
useieee.std_logic_arith.all;
ENTITYseltimeIS
clk1,reset:
sec,min:
INSTD_LOGIC_VECTOR(6downto0);
hour:
instd_logic_vector(5downto0);
daout:
OUTSTD_LOGIC_vector(3downto0);
sel:
outstd_logic_vector(2downto0));
ENDseltime;
ARCHITECTUREfunOFseltimeIS
STD_LOGIC_vector(2downto0);
sel<
process(clk1,reset)
if(reset='
000"
elsif(clk1'
eventandclk1='
if(count>
101"
casecountis
when"
=>
=sec(3downto0);
001"
daout(3)<
='
daout(2downto0)<
=sec(6downto4);
010"
=min(3downto0);
011"
=min(6downto4);
100"
=hour(3downto0);
whenothers=>
daout(3downto2)<
00"
daout(1downto0)<
=hour(5downto4);
endcase;
endfun;
扫描信号电路原理图如图14,仿真图如图15
图14扫描信号电路原理图
图15扫描信号电路仿真图
1.6译码驱动模块的设计方案
译码驱动模块AHDL源程序(DELED)
SUBDESIGNdeled
(
num[3..0]:
INPUT;
a,b,c,d,e,f,g:
OUTPUT;
)
TABLE
num[3..0]=>
a,b,c,d,e,f,g;
H"
0"
1,1,1,1,1,1,0;
1"
0,1,1,0,0,0,0;
2"
1,1,0,1,1,0,1;
3"
1,1,1,1,0,0,1;
4"
0,1,1,0,0,1,1;
5"
1,0,1,1,0,1,1;
6"
1,0,1,1,1,1,1;
7"
1,1,1,0,0,0,0;
8"
1,1,1,1,1,1,1;
9"
1,1,1,1,0,1,1;
A"
1,1,1,0,1,1,1;
B"
0,0,1,1,1,1,1;
C"
1,0,0,1,1,1,0;
D"
0,1,1,1,1,0,1;
E"
1,0,0,1,1,1,1;
F"
1,0,0,0,1,1,1;
ENDTABLE;
END;
译码驱动电路原理图如图16,仿真图如图17
图16译码驱动电路原理图
图17译码驱动电路仿真图
1.7整点报时及LED花样显示模块的设计方案
整点报时及LED花样显示模块VHDL源程序(ALERT)
ENTITYalertIS
clk:
dain:
INSTD_LOGIC_VECTOR(6DOWNTO0);
speak:
lamp:
OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDalert;
ARCHITECTUREfunOFalertIS
signalcount:
std_logic_vector(1downto0);
signalcount1:
speaker:
process(clk)
begin
speak<
=count1
(1);
if(clk'
eventandclk='
if(dain="
if(count1>
10"
)then
count1<
else
count1<
=count1+1;
endif;
endif;
endif;
endprocessspeaker;
lamper:
process(clk)
begin
if(rising_edge(clk))then
if(count<
if(count="
lamp<
;
elsif(count="
01"
elsif(count="
count<
else
count<
endprocesslamper;
ENDfun;
整点报时及LED灯花样显示模块原理图如图18,仿真图如图19所示。
图18整点报时及LED灯花样显示电路原理图
图19整点报时及LED灯花样显示电路仿真图
1.8总原理图
各模块设计确定后,得数字钟总原理图如图20
图20数字钟总原理图
数字钟总原理仿真图如图21
图21数字钟总原理仿真图
二、系统安装与调试
2.1输入与输出端接口
(1)SETMIN,SETHOUR、RESET分别接按键开关;
(2)A、B、C、D、E、F、G分别与数码管的a,b,c,d,e,f,g输入端相连;
(3)LAMP0,LAMP1,LAMP2分别和LED相接;
(4)时钟信号CLK接1HZ,扫描信号CLKDSP接32HZ以上频率信号(含32HZ);
(5)扫描片地址信号SEL0,SEL1,SEL2分别和字符点阵显示模块的四位扫描驱动地址SEL0~SEL3的低三位相连,最高位地址接“0”,也可以悬空;
(6)接口SPEAKER同实验箱的SPEAKER相接;
2.2性能测试与分析
电路编译完成后下载到Altera公司的EPM7128SLC84-15芯片中.数码显示管显示正常,说明扫描显示模块正确。
数码管显示数字从000000开始,秒、分、时显示正确,在输入为1Hz的时钟脉冲下经与标准表对照,秒计时的周期为1秒钟。
为了在短时间内测试秒、分、时进位是否正确,加大输入脉冲频率。
显示管显示秒、分、时进位正确。
数字从000000一直进位到235959后回到0000000,在每小时的59分的51、53、55、57、秒蜂鸣器鸣低音,59秒鸣高音,同时LED灯循环显示,完全符合设计要求中的“仿广播电台整点报时”这一要求。
按动SETMIN,SETHOUR分别实现对分和时的调整,手动校时功能正确,两者不相影响。
按下RESET键,时间回归到000000,说明计时清零功能正常。
2.3结论心得与体会
起初设计的时候是考虑用硬件实现,但是真正等到电路设计好准备焊接的时候就发现,这个电路过于复杂,光芯片就多达20多快,还有6个数码管,考虑到大量芯片集成于一块电路板,电路内部易产生干扰;
电路过于复杂,在焊接的过程中难免会产生虚焊等焊接错误,所以最终决定软件实现。
由于课时还没有学到这种语言,对于初步接触并用设计电路有很大的困难。
为了设计的需要,学习了VHDL语言,参考了很多资料,经过对VHDL语言的学习后,有了一定的知识就开始对电路进行设计。
毕竟都是自学自用刚开始还是感到很难,经过一段时间的磨合后就越来越熟悉了,在设计中遇到的问题也更容易解决了。
经过认真的编写与调式最终在仿真软件上成功运行仿真。
本次课程设计中主要用到的是24进制和60进制。
计数器需要我们能充分掌握同步和异步之间的区别,以及置数和清零的区别。
对它们有了透彻的了解才能够正确地实现所需要的进制。
通过这次数字钟的设计,让我深深感受到了数字电路的重要性和实用性,也加深了对数字钟内部电路的认识,大大提高了逻辑思维能力,在逻辑电路的分析与设计上有了很大的进步。
同时也让我充分的了解的扫描显示电路的用法,及具体的实现过程。
。
由于本数字钟有6位数字需要显示,如果用普通的一个输出对应一个译码驱动器和一个数码管的静态显示方法,那么仅七端码输出就需要多达42个I/O口和数码管连线,显然这将占据大量I/O口,连线也很麻烦。
而采用动态扫描显示的方法仅需7根数码管连线就能实现多位显示需求,通过本设计深刻感受到动态扫描显示方法的优越性。
在设计电路的连接图中出错的主要原因都是接线和芯片的接触不良以及接线的错误所引起的.总的来说,通过这次的课程设计,不仅加深了对组合逻辑电路和时序逻辑电路的应用,对数字钟知识的认识,还加深了对EDA技术的应用,让我体会到了构建模块对于数字电路分析带来的方便。
虽然在设计的过程中出现了许许多多的挫折麻烦,但是经过独立思考,查阅资料和跟同学讨论研究后,总能解决问题并提出最佳方案,或对原有方案最优化。
参考文献:
[1]阎石主编《数字电子技术》第4版北京:
高等教育出版社,1998年
[2]谢自美主编电子线路设计●实验●测试第3版,武汉:
华中科技大学出版社,2006年
[3]赣南师范学院物理与电子信息学院编《数字电路实验指导书》
[4]曹昕燕周风原聂春
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 广播电台 整点 报时 数字 设计