电子闹钟说明书.docx
- 文档编号:30237884
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:42
- 大小:649.36KB
电子闹钟说明书.docx
《电子闹钟说明书.docx》由会员分享,可在线阅读,更多相关《电子闹钟说明书.docx(42页珍藏版)》请在冰豆网上搜索。
电子闹钟说明书
本电子闹钟的设计是以单片机技术为核心,采用了小规模集成度的单片机制作的功能相对完善的电子闹钟。
硬件设计应用了成熟的数字钟电路的基本设计方法,并详细介绍了系统的工作原理。
硬件电路中除了使用AT89C51外,另外还有晶振、电阻、电容、发光二极管、开关、喇叭等元件。
在硬件电路的基础上,软件设计按照系统设计功能的要求,运用所学的汇编语言,实现的功能包括‘时时-分分-秒秒’显示,设定和修改定时时间的小时和分钟、校正时钟时间的小时、分钟和秒、定时时间到能发出一分钟的报警声。
一芯片介绍
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,外形及引脚排列如图1-1所示。
图1-1AT89C51引脚图
74LS573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O通道,双向总线驱动器和工作寄存器。
外形及引脚排列如图1-2所示。
图1-274LS573引脚图
二硬件电路设计
1时钟电路设计
AT89C51系列的单片机的时钟方式分为内部方式和外部方式。
内部方式就是在单片机的XTAL1和XTAL2的两引脚外接晶振,就构成了自己振荡器在单片机内部产生时钟脉冲信号。
外部时钟方式是把外部已经有的时钟信号引入到单片机内部。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:
一是指为保障系统正常工作的基准震荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。
其电路图如图2-1所示。
图2-1时钟电路图
2复位电路设计
复位操作完成单片机内电路的初始化,使单片机从一种确定的状态开始运行。
当AT89C51单片机的复位引脚RST出现5ms以上的高电平时,单片机就完成了复位操作。
如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。
因此要求单片机复位后能脱离复位状态复位操作通常有2种基本形式:
上电复位、开关复位。
上电复位要求接通电源后,自动实现复位操作。
开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。
其电路图如图2-2所示。
图2-2复位电路图
3键盘电路设计
本次电子闹钟的设计共使用了4个按键,各个按键的功能如表1所示。
表1各按键的接法和功能
按键名称
连线方法
按键功能
K1
K2
K3
K4
一端接P1.0,一端接地
一端接P1.1,一端接地
一端接P1.2,一端接地
一端接P1.3,一端接地
控制调整当前时间;同时使闹钟的分加1
控制闹钟时间
定时闹钟时小时加1;时间显示时分加1
刷新当前显示时间
4显示电路设计
数码显示有静态显示方式与动态显示方式两种。
工作在静态显示方式时,数码管的位线与电源一直相联,每个数码管均处在通电状态,电路的待显示信号经译码驱动电路后分别传输给显示电路,每个数码管同时收到并显示各自接受到的信号。
静态显示时每个数码管均联接有7段线,即每个数码管都需要7个联接端口,这样显示电路在输出端需要的联接端口数等于7,数字电路的待显示信号位数越多,显示电路需要的联接端口就越多。
工作在动态显示方式时,数码管的位线在扫描控制电路的控制下按设定顺序导通,即电路中的数码管是逐个接通电源,数码管的段线以并联的方式与译码电路联接,扫描控制电路按照设定顺序将数字电路的待显示信号逐个传输给数码管,数码管也按照扫描控制电路设定的显示顺序逐个进行字符显示。
动态显示时,数码管的位线数增加,每个数码管均有一个位线控制其是否通电,但是数码管的段线却大幅减少,不论待显示信号的个有多少,数码管的段线都是根。
比较两种显示方式可以看出,采用静态显示方式时显示电路需要占用比较多的联接端口,即数字电路的输出端占用了比较多的管脚资源,较多的输出联接端使得电路的布线复杂,焊点增加,电路板制作成本上升,同时,一直通电的数码管功率损耗数值也较大;而采用动态显示方式时显示电路所需要的输出端口数比较少,间断通电的数码管功率损耗也比较小。
由于显示电路的上述特点,因此,此次电子闹钟的设计采用了动态数码显示。
三软件实现
软件设计的重点在于秒脉冲信号的产生、显示的实现、以及按键的处理等方面。
基于软件的秒脉冲信号通常有延时法和定时中断法。
延时法一般采用查询方式,在延时子程序前后必然需要查询和处理的程序,导致误差的产生,因此其秒脉冲的精度不高;中断法的原理是,利用单片机内部的定时器溢出中断来实现。
1主模块的设计
主模块是系统软件的主框架。
结构化程序设计一般有“自上而下”和“自下而上”两种方式,“自上而下”法的核心就是主框架的构建。
它的合理与否关系到程序最终的功能的多少和性能的好坏。
本系统的主模块的程序框图如图3-1所示。
图3-1主程序流程图
2基本显示模块设计
基本显示模块设计的重点是由显示代码取得相应的段码,显示段码数据的并行发送,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
程序流程如图3-2所示。
图3-2基本显示流程图
3时间设定模块设计
时间设定模块的设计要点是按键的去抖处理与“一键多态”的处理。
即只涉及4个键完成了6位时间参数的设定。
软件法去抖动的实质是软件延时,即检测到某一键状态变化后延时一段时间,再检测该按键的状态是否还保持着,如是则作为按键处理,否则,视为抖动,不予理睬。
去抖中的延时时间一般参考资料多描述为10ms左右,实际应用中,应大于20ms,否则,会导致按一次作多次处理,影响程序正常执行。
“一键多态”即多功能键的实现思想是,根据按键时刻的系统状态,决定按键采取何种动作,即何种功能,其流程图如图3-3所示。
图3-3时间设定流程图
4闹钟功能实现模块设计
闹铃功能的实现涉及到两个方面:
闹铃时间设定和是否闹铃判别与相应处理。
闹铃时间设定模块的设计可参照时间设定模块,这里着重阐述闹铃判别与处理模块的设计问题。
闹铃判别与闹铃处理的关键在于判别何时要进行闹铃。
当时十位、时个位、分十位、分个位中任一位发生改变(进位)时,就必须进行闹铃判别。
译码显示电路将“时”、“分”、“秒”计数器的输出送到七段显示译码驱动器译码驱动,通过六个七段LED显示器显示出来。
闹铃电路根据计时系统的输出状态产生一脉冲信号,然后加上一个高频或低频信号送到放大电路驱动蜂鸣器发声实现报时。
校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整,其流程图如图3-4所示。
图3-4闹钟功能实现流程图
四调试
1硬件调试
在电路板焊接好后,经硬件调试未能实现预期的实验结果,经过仔细检查发现两个故障:
有一个引脚的导线和地线短路;MAX232的R1in和T1out与串口下载器件的2,3引脚接反了,导致实验结果不正确。
2软件调试
在硬件调试无误的基础上,将程序烧入到AT89C51芯片中,实现了在Proteus中仿真的结果。
3综合调试
经过硬件调试和软件调试,各个程序模块的功能都能正确的运行,电子闹钟正确的实现了设计的结果。
五结论
通过这次课程设计,使我对单片机这门功课有了更深刻的认识和了解。
首先对于硬件电路的工作原理有了进一步系统的学习,同样就有了进一步的认识,使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。
其次,也培养了我在面对问题的时候能够独立思考的能力。
但是在这次课程设计中也有不足之处,比如闹钟并不能整点报时,还有在对电子闹钟设定定时时间时只能对时、分依次加1,不能对其减1操作,这是本次课程设计的不足之处。
因此还需要在以后的学习中,拓宽自己的知识面,解决设计的不足。
总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写科研报告的能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。
参考文献
[1]李群芳,肖看.单片机原理、接口及应用----嵌入式系统技术基础[M],北京:
清华大学出版社,2005.
[2]杨金泉.单片机原理及应用实验指导手册[M]
附录
源程序代码:
K1EQUP1.0;在程序开始前定义变量
K2EQUP1.1
K3EQUP1.2
K4EQUP1.3
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIME
ORG0100H
MAIN:
MOVSP,#50H
MOV20H,#00H;时间BINSECOND
MOV21H,#00H;BINMINUTE
MOV22H,#00H;BINHOUR
MOV23H,#01H;闹钟BINMINUTE
MOV24H,#01H;BINHOUR
MOV25H,#00H;定义一个标志位
MOV30H,#00H;时间BCDSECOND
MOV31H,#00H;
MOV32H,#00H;BCDMINUTE
MOV33H,#00H;
MOV34H,#00H;BINHOUR
MOV35H,#00H;
MOV36H,#01H;闹铃BCDMINUTE
MOV37H,#00H;
MOV38H,#01H;BCDHOUR
MOV39H,#00H;
MOVTMOD,#01H;16位计数器T0,方式1
MOVTH0,#03CH;赋初值
MOVTL0,#0B0H
MOVIE,#10000111B;开中断T0,EA=1
SETBTR0;T0启动计数
MOVR2,#14H;计数器
MOVP2,#0FFH
LOOP:
LCALLTIMEPRO;调用现在时间与闹铃时间比较程序
LCALLDISPLAY1;调用现在时间显示子程序
JBK1,M1;判断按键是否按下
LCALLXIAOZHEN1;调用消抖程序
MOVC,25H.0
JCA1
A1:
CLR25H.0
LCALLSETTIME;调用设置现在时间子程序
LJMPLOOP
M1:
JBK2,M2
LCALLXIAOZHEN2
MOVC,25H.0
JCA2
A2:
CLR25H.0
LCALLSETATIME;调用设置闹钟的程序
LJMPLOOP
M2:
JBK4,M3
A3:
LCALLXIAOZHEN3
MOVC,25H.0
JCA4
A4:
CLR25H.0
M3:
LJMPLOOP
SETTIME:
L0:
LCALLDISPLAY1
JBK2,L1
LCALLXIAOZHEN4
MOVC,25H.0
JCA5
A5:
CLR25H.0
INC22H
MOVA,22H
CJNEA,#18H,GO12
MOV22H,#00H
MOV34H,#00H
MOV35H,#00H
LJMPL0
L1:
JBK3,L2
LCALLXIAOZHEN5
MOVC,25H.0
JCA6
A6:
CLR25H.0
INC21H
MOVA,21H
CJNEA,#3CH,GO11
MOV21H,#00H
MOV32H,#00H
MOV33H,#00H
LJMPL0
GO11:
MOVB,#0AH
DIVAB
MOV32H,B
MOV33H,A
LJMPL0
GO12:
MOVB,#0AH
DIVAB
MOV34H,B
MOV35H,A
LJMPL0
L2:
JBK4,L0
LCALLXIAOZHEN3
MOVC,25H.0
JCAX
AX:
CLR25H.0
RET
SETATIME:
LCALLDISPLAY2;调用闹钟设置,闹铃响时的显示程序
N0:
LCALLDISPLAY2
JBK3,N1
LCALLXIAOZHEN6
MOVC,25H.0
JCA7
A7:
CLR25H.0
INC24H
MOVA,24H
CJNEA,#24,GO22
MOV24H,#00H
MOV38H,#00H
MOV39H,#00H
LJMPN0
N1:
JBK1,N2
LCALLXIAOZHEN7
MOVC,25H.0
JCA8
A8:
CLR25H.0
INC23H
MOVA,23H
CJNEA,#60,GO21
MOV23H,#00H
MOV36H,#00H
MOV37H,#00H
LJMPN0
GO21:
MOVB,#0AH
DIVAB
MOV36H,B
MOV37H,A
LJMPN0
GO22:
MOVB,#0AH
DIVAB
MOV38H,B
MOV39H,A
LJMPN0
N2:
JBK4,N0
LCALLXIAOZHEN3
MOVC,25H.0
JCA9
A9:
CLR25H.0
RET
TIMEPRO:
MOVA,21H
MOVB,23H
CJNEA,B,BK
MOVA,22H
MOVB,24H
CJNEA,B,BK
SETB25H.0
MOVC,25H.0
JCXX
XX:
LCALLTIMEOUT
BK:
RET
TIMEOUT:
X1:
LCALLBZ
LCALLDISPLAY2
CLR25H.0
JBK4,X1
RET
BZ:
CLRP3.7
MOVR7,#250
T2:
MOVR6,#124
T3:
DJNZR6,T3
DJNZR7,T2
SETBP3.7
JBK4,XY
LCALLXIAOZHEN3
MOVC,25H.0
JCXY1
XY:
RET
XY1:
LJMPLOOP
XIAOZHEN1:
LCALLDISPLAY1
JBK1,XIAOZHEN1
MOVC,K1
JCXIAOZHEN1
LCALLDELAY
MOVC,K1
JCXIAOZHEN1
STOP1:
MOVC,K1
JNCSTOP1
LCALLDELAY
MOVC,K1
JNCSTOP1
SETB25H.0
RET
XIAOZHEN2:
LCALLDISPLAY2
JBK2,XIAOZHEN2
MOVC,K2
JCXIAOZHEN2
LCALLDELAY
MOVC,K2
JCXIAOZHEN2
STOP2:
MOVC,K2
JNCSTOP2
LCALLDELAY
MOVC,K2
JNCSTOP2
SETB25H.0
RET
XIAOZHEN3:
LCALLDISPLAY1
JBK4,XIAOZHEN3
MOVC,K4
JCXIAOZHEN3
LCALLDELAY
MOVC,K4
JCXIAOZHEN3
STOP3:
MOVC,K4
JNCSTOP3
LCALLDELAY
MOVC,K4
JNCSTOP3
SETB25H.0
RET
XIAOZHEN4:
LCALLDISPLAY1
JBK2,XIAOZHEN4
MOVC,K2
JCXIAOZHEN4
LCALLDELAY
MOVC,K2
JCXIAOZHEN3
STOP4:
MOVC,K2
JNCSTOP4
LCALLDELAY
MOVC,K2
JNCSTOP4
SETB25H.0
RET
XIAOZHEN5:
LCALLDISPLAY1
JBK3,XIAOZHEN5
MOVC,K3
JCXIAOZHEN5
LCALLDELAY
MOVC,K3
JCXIAOZHEN5
STOP5:
MOVC,K3
JNCSTOP5
LCALLDELAY
MOVC,K3
JNCSTOP5
SETB25H.0
RET
XIAOZHEN6:
LCALLDISPLAY2
JBK3,XIAOZHEN6
MOVC,K3
JCXIAOZHEN6
LCALLDELAY
MOVC,K3
JCXIAOZHEN6
STOP6:
MOVC,K3
JNCSTOP6
LCALLDELAY
MOVC,K3
JNCSTOP6
SETB25H.0
RET
XIAOZHEN7:
LCALLDISPLAY2
JBK1,XIAOZHEN7
MOVC,K1
JCXIAOZHEN7
LCALLDELAY
MOVC,K1
JCXIAOZHEN7
STOP7:
MOVC,K1
JNCSTOP7
LCALLDELAY
MOVC,K1
JNCSTOP7
SETB25H.0
RET
DELAY:
MOVR4,#14H
DL00:
MOVR5,#0FFH
DL11:
DJNZR5,DL11
DJNZR4,DL00
RET
TIME:
PUSHACC
PUSHPSW
MOVTH0,#03CH
MOVTL0,#0B0H
DJNZR2,RET0
MOVR2,#14H
MOVA,20H
CLRC
INCA
CJNEA,#3CH,GO1
MOV20H,#0
MOV30H,#0
MOV31H,#0
MOVA,21H
INCA
CJNEA,#3CH,GO2
MOV21H,#0H
MOV32H,#0
MOV33H,#0
MOVA,22H
INCA
CJNEA,#18H,GO3
MOV22H,#00H
MOV34H,#0
MOV35H,#0
AJMPRET0
GO1:
MOV20H,A
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
AJMPRET0
GO2:
MOV21H,A
MOVB,#0AH
DIVAB
MOV33H,A
MOV32H,B
AJMPRET0
GO3:
MOV22H,A
MOVB,#0AH
DIVAB
MOV35H,A
MOV34H,B
AJMPRET0
RET0:
POPPSW
POPACC
RETI
DISPLAY1:
MOVR0,#30H
MOVR3,#0FEH
MOVA,R3
PLAY1:
MOVP2,A
MOVA,@R0
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
MOVP2,#0FFH
MOVA,R3
RLA
JNBACC.6,LD1
INCR0
MOVR3,A
LJMPPLAY1
LD1:
RET
DISPLAY2:
PUSHACC
PUSHPSW
MOVR0,#36H
MOVR3,#0FBH
MOVA,R3
PLAY2:
MOVP2,A
MOVA,@R0
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
MOVP2,#0FFH
MOVA,R3
RLA
JNBACC.6,LD2
INCR0
MOVR3,A
LJMPPLAY2
LD2:
POPPSW
POPACC
RET
DL1:
MOVR7,#05H
DL:
MOVR6,#0FFH
DL6:
DJNZR6,$
DJNZR7,DL
RET
DSEG1:
DB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END
实物截图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 闹钟 说明书