led数码显示电子钟.docx
- 文档编号:17187179
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:13
- 大小:537.53KB
led数码显示电子钟.docx
《led数码显示电子钟.docx》由会员分享,可在线阅读,更多相关《led数码显示电子钟.docx(13页珍藏版)》请在冰豆网上搜索。
led数码显示电子钟
LED数码显示电子钟
一、产品说明
数码显示电子钟电路,采用LM8560、CD4060和四位LED显示屏,通过驱动显示屏便能显示时、分。
振荡部分采用石英晶体振作时基信号源,从而保证了走时的精确。
该电路还供有定时报警功能,它定时调整方便,电路稳定可靠,能耗低。
该产品还具有定时报警功能。
它定时调整方便,电路稳定可靠。
本产品时钟显示采用12小时制,使用四个LED数码管显示时间,本产品由五个操作开关控制S1、S2、S3、S4、K1。
其输入电源为220V交流电源,经由变压器输出6V电压,安全环保。
适应于小型办公场地、书房、卧室的使用。
二、原理框图及程序流程图
1.1原理框图
1.2程序流程图三、原理及参数
该产品由220V交流电直接供电;由集成芯片LM8560与CD4060和四位LED显示屏实现时、分的显示;并具有闹钟功能;由蜂鸣器实现提示报警功能。
1、CD4060芯片工作电压范围宽在3V~15V,输入阻抗高,唯一现在使用的可能就是计数器,CD4060的计数器可以到14级二进制串行计数/分频器。
CD4060内部包含14位二分频器和一个振荡器,电路简洁,30720HZ的信号经分频后,得到50HZ的信号送到LM8560的25脚,并做秒信号经VT2、VT3驱动显示屏内的冒号闪动
2.晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。
晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定。
数字钟的精度主要取决于时间标准信号的频率及其稳定度。
晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。
该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数。
3、LM8560集成电路内含显示译码驱动电路、12/24小时选择电路及以其他各种设置报警等电路。
它具有较宽的工作电压范围(7.5-14V)和工作温度范围(-20℃+70℃);自身功耗很小,输出能直接驱动发光二极管显示屏。
LM8560(IC1)是50/60HZ的时基24小时专用数字钟集成电路,有28只管脚,1-14脚是显示笔划输出,15脚为正电源端,20脚为负电源端,27脚是内部振荡器RC输入端,16脚为报警输出。
4、T1为降压变压器,经桥式整流(VD6-VD9)及滤波(C3、C4)后得到直流电,供主电路和显示屏工作。
当交流电源停电时,备用电池通过VD5向电路供电。
四、安装工艺要求
焊接按一下步骤进行,只有完成上一步才能进行下步,一般先焊装低矮、耐热热元件。
若有需要与印制板紧固的较大型元件,或与面板上孔、槽、嵌装的元件,也须给予特别的注意,具体焊装步骤:
1、清查元器件的数量(见元器件清单)与质量,对不合格元件应及时更换;
2、确定元器件的安装方式、安装高度,一般它由该器件在电路中的作用、印制板与外壳间的距离以及该元件两安装孔之间的距离所决定;
3、进行引脚处理,即对元件的引脚弯曲成形并进行烫锡处理。
成型时不得在引脚根部弯曲,尽量把有字符的元件面至于易观察的位置,字符应从左到右,从上到下;
4、插装:
根据元件位号对号插装,对有极性的元件插装时应注意其正负极性;
5、焊接:
各焊点加热时间及用锡量要适度,对散热性差的元件应使用工具辅助散热。
防止虚焊、错焊,避免因拖锡而造成短路;
6、焊后处理:
剪去多余引脚线,检查所有焊点,对缺陷进行修补,必要时用无水酒精清洗印制板;
7、装外壳:
装外壳前检查所有元件与面板孔嵌装的元件是否正确到位;在壳内放置的元件应放置在其应在的位置。
五、测试与调整
1、软件程序测试:
该程序为VHDL文件,其功能是显示时分,并在整点时指示灯闪烁,该程序中设有时钟输入4096hz,清零信号,暂停信号,控制信号,置数信号,分频技术,十进制数与BCD码之间的转换,用这些输入信号来实现时分控制及整时报时。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitytest60is
port(clk:
instd_logic;----时钟输入4096hz
clr:
instd_logic;----清零信号
en:
instd_logic;-----暂停信号
mode:
instd_logic;---控制信号,用于选择模式
inc:
instd_logic;----置数信号
music:
instd_logic;
speaker:
outstd_logic;
seg7:
outstd_logic_vector(7downto0);----数码管显示信号
scan:
outstd_logic_vector(2downto0));---数码管扫描信号
end;
architectureoneoftest60is
----定义四种状态
signalstate:
std_logic_vector(1downto0);
---小时、分、秒的高位和低位
signalqhh,qhl,qmh,qml,qsh,qsl:
std_logic_vector(3downto0);
signaldata:
std_logic_vector(3downto0);
----扫描数码管的计数器
signalcnt:
integerrange0to5;
----1024hz、1hz、2hz的分频信号
signalclk1khz,clk1hz,clk2hz:
std_logic;----闪烁信号
signalblink:
std_logic_vector(2downto0);signalinc_reg:
std_logic;
signalsec,min:
integerrange0to59;signalhour:
integerrange0to23;
begin
----1024hz分频,用于扫描数码管地址process(clk)
variablecount:
integerrange0to1;
begin
ifclk'eventandclk='1'then
ifcount=1thenclk1khz<=notclk1khz;count:
=0;elsecount:
=count+1;
endif;
endif;
endprocess;
----1Hz分频,用于计时
process(clk1khz)
variablecount:
integerrange0to511;
begin
ifclk1khz'eventandclk1khz='1'then
ifcount=511thenclk1hz<=notclk1hz;count:
=0;elsecount:
=count+1;
endif;
endif;
endprocess;
----2Hz分频,用于数码管闪烁
process(clk1khz)
variablecount:
integerrange0to255;
begin
ifclk1khz'eventandclk1khz='1'then
ifcount=255thenclk2hz<=notclk2hz;count:
=0;elsecount:
=count+1;
endif;
endif;
endprocess;
----模式转换
process(mode,clr)
begin
ifclr='1'then
state<="00";
elsifmode'eventandmode='1'thenstate<=state+1;
endif;
endprocess;
----状态控制
process(clk1hz,state,en,clr,hour,sec,min)begin
ifen='1'then
hour<=hour;min<=min;sec<=sec;
elsifclr='1'then
hour<=0;min<=0;sec<=0;
elsifclk1hz'eventandclk1hz='1'thencasestateis
----模式0,正常计时
when"00"=>ifsec=59thensec<=0;ifmin=59thenmin<=0;ifhour=23thenhour<=0;elsehour<=hour+1;endif;elsemin<=min+1;endif;elsesec<=sec+1;endif;
----模式1,设定小时时间
when"01"=>ifinc='1'then
ifinc_reg='0'theninc_reg<='1';ifhour=23thenhour<=0;elsehour<=hour+1;endif;endif;elseinc_reg<='0';endif;----模式2,设定分钟时间
when"10"=>ifinc='1'thenifinc_reg='0'theninc_reg<='1';ifmin=59thenmin<=0;elsemin<=min+1;endif;endif;elseinc_reg<='0';endif;----模式3,设定秒钟时间
when"11"=>ifinc='1'thenifinc_reg='0'theninc_reg<='1';ifsec=59thensec<=0;elsesec<=sec+1;endif;endif;elseinc_reg<='0';endif;endcase;endif;
endprocess;
----整点报时功能process(min)
begin
ifmin=0thenspeaker<=clk2hz;
elsespeaker<='0';
endif;
endprocess;
----当进行时间设定时,令数码管闪烁process(state,clk2hz)
begin
casestateiswhen"00"=>blink<="000";when"01"=>blink<=(2=>clk2hz,others=>'0');when"10"=>blink<=(1=>clk2hz,others=>'0');when"11"=>blink<=(0=>clk2hz,others=>'0');endcase;
endprocess;
----分计数的十进制转BCD码
process(min)
begin
caseminis
when0|10|20|30|40|50=>qml<="0000";when1|11|21|31|41|51=>qml<="0001";when2|12|22|32|42|52=>qml<="0010";when3|13|23|33|43|53=>qml<="0011";when4|14|24|34|44|54=>qml<="0100";when5|15|25|35|45|55=>qml<="0101";when6|16|26|36|46|56=>qml<="0110";when7|17|27|37|47|57=>qml<="0111";when8|18|28|38|48|58=>qml<="1000";when9|19|29|39|49|59=>qml<="1001";whenothers=>null;
endcase;
caseminis
when0|1|2|3|4|5|6|7|8|9=>qmh<="0000";
when10|11|12|13|14|15|16|17|18|19=>qmh<="0001";when20|21|22|23|24|25|26|27|28|29=>qmh<="0010";when30|31|32|33|34|35|36|37|38|39=>qmh<="0011";when40|41|42|43|44|45|46|47|48|49=>qmh<="0100";
when50|51|52|53|54|55|56|57|58|59=>qmh<="0101";whenothers=>null;
endcase;
endprocess;
----小时计数的十进制转BCD码process(hour)
begin
casehouris
when0|10|20=>qhl<="0000";when1|11|21=>qhl<="0001";when2|12|22=>qhl<="0010";when3|13|23=>qhl<="0011";when4|14=>qhl<="0100";when5|15=>qhl<="0101";when6|16=>qhl<="0110";when7|17=>qhl<="0111";when8|18=>qhl<="1000";when9|19=>qhl<="1001";whenothers=>null;
endcase;
casehouris
when0|1|2|3|4|5|6|7|8|9=>qhh<="0000";
when10|11|12|13|14|15|16|17|18|19=>qhh<="0001";when20|21|22|23=>qhh<="0010";whenothers=>null;
endcase;
endprocess;
----数码管动态扫描计数
process(clk1khz)
begin
ifclk1khz'eventandclk1khz='1'thenifcnt=5thencnt<=0;
elsecnt<=cnt+1;
endif;
endif;
endprocess;
----数码管动态扫描
process(cnt,qhh,qhl,qmh,qml,qsh,qsl,blink)begin
casecntis
when0=>data<=qslor(blink(0)&blink(0)&blink(0)&blink(0));scan<="000";when1=>data<=qshor(blink(0)&blink(0)&blink(0)&blink(0));scan<="001";when2=>data<=qmlor(blink
(1)&blink
(1)&blink
(1)&blink
(1));scan<="010";when3=>data<=qmhor(blink
(1)&blink
(1)&blink
(1)&blink
(1));scan<="011";when4=>data<=qhlor(blink
(2)&blink
(2)&blink
(2)&blink
(2));scan<="100";when5=>data<=qhhor(blink
(2)&blink
(2)&blink
(2)&blink
(2));scan<="101";whenothers=>null;
endcase;
endprocess;
----七段译码
process(data)
begin
casedatais
when"0000"=>seg7<="11111100";
when"0001"=>seg7<="01100000";when"0010"=>seg7<="11011010";when"0011"=>seg7<="11110010";when"0100"=>seg7<="01100110";when"0101"=>seg7<="10110110";when"0110"=>seg7<="10111110";when"0111"=>seg7<="11100000";when"1000"=>seg7<="11111110";when"1001"=>seg7<="11110110";whenothers=>seg7<="00000000";endcase;
endprocess;
end;
2、硬件测试调整:
通电前应认真对照电路原理图、线路板、检查有无错焊、漏焊,特别是观察
电路板上有无短路现象发生,如有故障要一一排除。
只要焊接正确,通电后即可正常工作;时间显示并闪动,调整后就不闪动了。
当调好定时时间后,并按下开关K1(白按钮),到定时时间有驱动信号经R3使VT1工作,即可定时报警输出。
在面板上从左到右,存在五个微动开关,分别是S4、S3、K1、S2、S1,S1调小时,S2调分钟,S3调时钟,S4调定时,K1定时报警开关(即闹铃开关)。
调时钟时,需按下S3的同时按动S1,即可调小时数;按下S3的同时按动S2可调分钟数。
调定时报警时,需按下S4的同时按动S1即可调闹铃的小时数;按下S4的同时按动S2可调事实上时闹铃数。
六、电路原理图
1.3数码显示电子钟原理图
七、印制PCB版图
印制PCB板采用单层布线,在CustomMadeBoard的板卡上印制电路图,采用Through-holecomponents.焊接方式。
在Toplayer布线,PCB布线图(图1)、连线图
(2)、元件图(3)如下:
1.4数码显示电子钟PCB版
1.5数码显示电子钟PCB连线版
1.6数码显示电子钟PCB连线版
八、元件清单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- led 数码 显示 电子钟