数字电子钟.docx
- 文档编号:7583874
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:27
- 大小:387.65KB
数字电子钟.docx
《数字电子钟.docx》由会员分享,可在线阅读,更多相关《数字电子钟.docx(27页珍藏版)》请在冰豆网上搜索。
数字电子钟
湖南工学院
电子线路综合设计
说明书
课题名称数字电子钟
课题组长贺淑红10400130104
课题组成员李惠珍10400130102
匡艳芳10400130101
秦思10400130105
指导教师陈坚
完成时间2012.10.28
电子线路综合设计任务书
课题九数字电子钟
一、任务
设计并制作一个数字显示电子钟
二、基本要求
1.准确计时,一数字形式显示时分秒的时间;
2.小时的计时要求为“23翻0”23:
59:
59->00:
00:
00,分和秒的计时要求为60进制进位。
3.可校正时间
三、提高部分
1.安装自己设计的电路
(1)检查元器件
(2)对电路进行组装:
按照自己设计的电路,在PCB板上插接元器件并焊接。
焊接完毕后,应对照电路图仔细检查,看是否有错接、漏接、虚焊的现象。
2.通电调式
(1)通电测试:
对安装完成的电路板的参数及工作状态进行测量,以便提供调整电路的依据。
(2)通电调试:
经过反复的调整和测量,使电路的性能达到要求。
3.书写调试报告
摘要
电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz晶振与单片机AT89S52相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键S1、S2、S3和S4键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:
电子钟;AT89S52;硬件设计;软件设计
ABSTRACT
Clockiswidelyusedinlife,andasimpledigitalclockismorewelcomedbypeople.Sotodesignasimpledigitalelectronicclockisnecessary.ThesystemuseasinglechipAT89S52ofATMEL’sasitscoretocontrolThecrystaloscillatorclock,usingofE-12MHZisconnectedwiththemicrocontrollerAT89S52,throughthesoftwareprogrammingmethodtoachievea24-hourcycle,andeight7-segmentLEDdigitaltube(twofourinonedigitaltube)displayshours,minutesandsecondsrequirements,andinthetimecourseofatimingfunction,whenthetimearrivedaheadofscheduledtimetobuzzagoodtimekeeping.TheclockhasfourbuttonsS1,S2,S3andS4key,andmaketheappropriateactioncanbeachievedwhentheschool,timing,reset.Withatimedisplay,alarmclocksettings,timerfunction,correctiveaction.Accuratetraveltime,displayandintuitive,precision,stability,andsoon.Withahighapplicationvalue.
显示对应的拉丁字符的拼音
字典-查看字典详细内容
Keywords:
Electronicclock;;AT89S52;HardwareDesign;SoftwareDesign
目录
1设计课题任务、功能要求说明及方案介绍1
1.1设计课题任务1
1.2功能要求说明1
1.3设计课题总体方案介绍及工作原理说明1
2设计课题硬件系统的设计2
2.1设计课题硬件系统各模块功能简要介绍2
2.2硬件电路主要部分的介绍3
3设计课题软件系统的设计5
3.1设计课题使用单片机资源的情况5
3.2设计课题软件系统个模块功能简要介绍5
3.3设计课题软件系统程序流程框图5
3.4设计课题软件系统程序清单9
4设计结论、仿真结果、误差分析、教学建议20
4.1设计课题的设计结论及使用说明20
4.2设计课题的仿真结果20
4.3设计课题的误差分析21
小结22
元器件清单23
致谢24
参考文献25
附录A26
1设计课题任务、功能要求说明及方案介绍
1.1设计课题任务
设计并制作一个数字显示电子钟
1.2功能要求说明
1.准确计时,一数字形式显示时分秒的时间;
2.小时的计时要求为“23翻0”23:
59:
59->00:
00:
00,分和秒的计时要求60进制进位。
3.可校正时间
1.3设计课题总体方案介绍及工作原理说明
本电子钟主要由单片机、4*1独立键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1.1所示:
图1.1总体设计方案图
本电子钟的所有的软件、参数均存放在AT89S52的FlashROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
2设计课题硬件系统的设计
2.1设计课题硬件系统各模块功能简要介绍
本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。
(1)单片机最小系统模块:
包括低功耗、高性能CMOS8位微控制器AT89S52;复位电路;晶振电路。
本本模块AT89S52系统控制核心,单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。
通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。
这样就构成一个稳定的自激振荡器。
(2)输入模块:
本模块共用到了5个按键,1个电源开关,一个复位键,单片机运行期间,利用按键完成复位操作。
3个按键独立式键盘,S1键控制电子钟的启动\调整状态,S2键为加1键,S3键为减1键。
且S1、S2、S3任一键都独自连一个I/O(P1.0、P1.1、P1.2)口线,说明它们可以独立实现相应的电子钟功能。
(3)输出模块:
本次设计显示为8位,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。
数码管用8个PNP三极管驱动。
(4)电源模块:
现在市面上销售的编程器有很多都是由PC机的USB口直接供电为了降低本设计的成本及节省设计时间,没有另外设计编程器,而直接购买了市场上的USB供电及下载器。
2.2硬件电路主要部分的介绍
2.2.1数码管电路
图2.1数码管电路
如图2.1所示,数码管电路采用了两个4位一体共阳数码管,P0口接为段控口,电阻的作用是限流,P2口为位控口控制三极管通和断,当其为低电平时三极管接通,相应的数码管显示。
2.2.2下载口电路
如图2.2下载口电路
如图2.2所示,用PC的USB口供电,通过下载口把程序导入芯片。
2.2.3复位电路
图2.3复位电路
如图2.3所示,复位电路采用手动复位的方式,利用一个电容电压的不可突变性使得复位信号能够维持2个周期的高电平。
2.2.4晶振电路
图2.4晶振电路
如图2.4所示,当MCS-51内部的定时器/计数器被选定为定时器工作模式时,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1,因此定时器/计数器的输入脉冲的周期与机器周期一样,输入脉冲的频率为时钟振荡的1/12。
当采用12MHz频率的晶体时,计数速率为1MHz,输入脉冲的周期间隔为1us。
当定时器/计数器用作计数器时,计数脉冲来自相应的外部输入引脚T0和T1。
当输入信号产生由1至0的负跳变时,计数器的值增1,对外部输入引脚进行采样。
3设计课题软件系统的设计
3.1设计课题使用单片机资源的情况
设计课题使用单片机资源的情况如下:
P0口输出数码管段选信号,P3口输出数码管位选信号;晶振12MHz;调整选择键SET_KEY:
P1.0;通过选择键选择调整位,选中位闪烁;增加键ADD_KEY:
P1.1;按一次使选中位加1;减少键DEC_KEY:
P1.2;按一次使选中位减1;P2.1为蜂鸣器发声报时;50H-5FH;16个寄存器单元作为显示单元;
50H用于控制秒基准时钟源的产生;51H清零秒寄存器;
52H清零分寄存器;53H清零时寄存器;
5FH用于秒个位;5EH用于秒十位;
5DH用于分个位;5CH用于分十位;
5BH用于时个位;5AH用于时十位;
54H用于控制调时闪烁;堆栈栈底:
70H。
3.2设计课题软件系统个模块功能简要介绍
本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、数码管及其驱动模块和延时模块。
主程序:
主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。
中断服务程序:
主要是用于电子钟的准确运行、数据输入过程中的闪烁。
键盘输入程序模块:
主要是用于确定按键并得到特定的键码值。
数码管及其驱动模块:
主要是用于驱动数码管及利用数码管显示时间。
延时模块:
程序中有两种延时子程序,一种是短延时用于判键按下等,一种是长延时。
3.3设计课题软件系统程序流程框图
系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程
序转变成十六进制程序语言,接着使用Proteous进行仿真,读出显示数据。
主程序流程框图如3.1所示;加1子程序如3.2所示;
中断服务程序程序如3.3所示;
键盘扫描子程序框图如3.4所示;
显示子程序框图如3.5所示;
图3.1主程序流程框图
图3.2加1子程序流程框图
图3.3中断子程序
图3.4键盘扫描子程序
图3.5显示子程序
3.4设计课题软件系统程序清单
;-----------------------------------------------------------------------
;本电子钟实现24小时制,8位数码管显示时分秒,可整点报时
;显示格式:
00-00-00(设置小时十位为0时,不显示)
;通过3只按键来调整时间
;调整选择键SET_KEY:
P1.0;通过选择键选择调整位,选中位闪烁
;增加键ADD_KEY:
P1.1;按一次使选中位加1
;减少键DEC_KEY:
P1.2;按一次使选中位减1
;如果长按ADD_KEY或DEC_KEY,可进行调时、调分快进快减,并停止闪烁
;如果选中位是秒,则按增加键或减少键可实现,但无调时快进和快减功能
;P0口输出数码管段选信号,P2口输出数码管位选信号;晶振12MHz
;P3.1为蜂鸣器发声报时
;编程人:
贺淑红编写日期:
2012年10月28日修改日期(最终):
2010年12月31日
;-----------------------------------------------------------------------
;-----------
;程序入口
;-----------
ORG0000H;程序入口地址
LJMPSTART
ORG000BH;定时器0中断入口地址
LJMPTIMET0
ORG1000H
;----------------------------------
;显P.程序
;功能:
可以在8个数码闪烁移位进行屏保
;----------------------------------
START:
MOVR6,#2;闪烁次数
MOVA,#0FEH;位选
TT:
MOVP2,A
MOVP0,#0CH;段码"P."
LCALLDELAY
MOVP2,#0FFH
DJNZR6,TT
LCALLDELAY
LCALLDELAY1
RRA
JBP1.0,TT;键是否按下,没按下则转移
LCALLDELAY;延时去抖
JNBP1.0,KAI;再次判断键是否按下
KAI:
SETBP1.0
CLRA;状态恢复
MOVP0,#0FFH
LCALLDELAY1
SETB48H;用于调时闪烁标志
SETB47H;用于产生脉冲用于调时快进的脉冲
MOVR1,#0;键功能标志:
0计时、1调时、2调分、3调秒
;-------------------------------
;清16位寄存器及初始化
;50H用于控制秒基准时钟源的产生
;51H清零秒寄存器
;52H清零分寄存器
;53H清零时寄存器
;5FH用于秒个位;5EH用于秒十位
;5DH用于分个位;5CH用于分十位
;5BH用于时个位;5AH用于时十位
;54H用于控制调时闪烁
;-------------------------------
MOVR0,#50H;初始化
MOVR6,#10H
CLEARJCQ:
MOV@R0,#00H;清寄存器
INCR0
DJNZR6,CLEARJCQ
MOVIP,#02H
SETBEA
SETBET0
MOVTMOD,#01H;设定定时器0工作方式1
MOVTH0,#3CH
MOVTL0,#0B0H;赋定时初值,定时50ms
SETBTR0;启动定时器0
MOVSP,#70H;堆栈
;--------
;主程序
;--------
MAIN:
LCALLDISPLAY
LCALLKEY_SCAN
JZMAIN
LCALLSET_KEY
JB46H,MAIN;如果已进行调时快进,则不再执行下面的调整
LCALLADD_KEY;调用增加键处理子程序,加一
LCALLDEC_KEY;调用减少键处理子程序,减一
LJMPMAIN;重新循环
;---------------
;显示处理程序
;---------------
DISPLAY:
MOVA,51H
ANLA,#0FH
MOV5FH,A;转换出秒个位,存入5FH
MOVA,51H
ANLA,#0F0H
SWAPA
MOV5EH,A;转换出秒十位,存入5EH
JB46H,MIN;如果调时快进,则跳过闪烁处理程序
CJNER1,#3,MIN;如果R1为3,闪烁秒位待调整
JB48H,MIN
MOV5FH,#0AH;使该位为10,查表得到使该位不显示
MOV5EH,#0AH
MIN:
MOVA,52H
ANLA,#0FH
MOV5DH,A;转换出分个位,存入5DH
MOVA,52H
ANLA,#0F0H
SWAPA
MOV5CH,A;转换出分十位,存入5CH
JB46H,HOUR
CJNER1,#2,HOUR;如果R1为2,闪烁分位待调整
JB48H,HOUR
MOV5DH,#0AH
MOV5CH,#0AH
HOUR:
MOVA,53H
ANLA,#0FH
MOV5BH,A;转换出时个位,存入5BH
MOVA,53H
ANLA,#0F0H
SWAPA
MOV5AH,A;转换出时十位,存入5AH
JB46H,DISP
CJNER1,#1,DISP;如果R1为1,闪烁时位待调整
JB48H,DISP
MOV5BH,#0AH;使该位为10,查表得到使该位不显示
MOV5AH,#0AH
;-------------------
;数码管动态扫描显示
;-------------------
DISP:
MOVDPTR,#TABLE
MOVA,5FH
MOVCA,@A+DPTR
MOVP0,A
CLRP2.0
LCALLDELAY
SETBP2.0;显示秒个位
MOVA,5EH
MOVCA,@A+DPTR
MOVP0,A
CLRP2.1
LCALLDELAY
SETBP2.1;显示秒十位
MOVA,#0BFH
MOVP0,A
CLRP2.5
LCALLDELAY
SETBP2.5;显示“-”
MOVA,5DH
MOVCA,@A+DPTR
MOVP0,A
CLRP2.3
LCALLDELAY
SETBP2.3;显示分个位
MOVA,5CH
MOVCA,@A+DPTR
MOVP0,A
CLRP2.4
LCALLDELAY
SETBP2.4;显示分十位
MOVA,#0BFH
MOVP0,A
CLRP2.2
LCALLDELAY
SETBP2.2;显示“-”
MOVA,5BH
MOVCA,@A+DPTR
MOVP0,A
CLRP2.6
LCALLDELAY
SETBP2.6;显示时个位
MOVDPTR,#TABLE1;该位使用TABLE1以消除时的十位置0
MOVA,5AH
MOVCA,@A+DPTR
MOVP0,A
CLRP2.7
LCALLDELAY
SETBP2.7;显示时十位
RET
;-----------------
;定时器中断1s程序
;-----------------
TIMET0:
PUSHACC;保护现场
PUSHPSW
MOVTH0,#3CH
MOVTL0,#0B0H
CPL47H;产生脉冲用于调时快进
INC54H
MOVA,54H
CJNEA,#10,ADD_TIME;产生0.5秒,用于调时闪烁
CPL48H;取反调时闪烁标志位
MOV54H,#00H
ADD_TIME:
INC50H
MOVA,50H
CJNEA,#10,ZDBACD;整点报时时蜂鸣器响延迟时间
SETBP3.1;关蜂鸣器
ZDBACD:
CJNEA,#20,RETI1;产生1秒时钟
MOV50H,#00H;一秒钟时间到,清零50H
MOVA,51H
ADDA,#01H
DAA;十进制调整
MOV51H,A
CJNEA,#60H,RETI1
MOV51H,#00H;一分钟到
MOVA,52H
ADDA,#01H
DAA
MOV52H,A
CJNEA,#60H,RETI1
CLRP3.1
MOV52H,#00H;一小时到,开蜂鸣器,清分显示
MOVA,53H
ADDA,#01H
DAA
MOV53H,A
CJNEA,#24H,RETI1
MOV53H,#00H;到24点,清零小时
RETI1:
POPPSW
POPACC;恢复现场
RETI;中断返回
;-------------
;键盘扫描程序
;R4设置为00H是为了在进入长按处理前加长延时,以区分长按与短按键
;-------------
KEY_SCAN:
CLR46H;关闭调时快进标志
MOVP1,#0FFH;将P1口设置成输入状态
MOVA,P1
CPLA
ANLA,#07H;1口低3位连接3个按键,只判断该3位
JZEXIT_KEY
LCALLDELAY;延时去抖动
MOVA,P1;重新判断
CPLA
ANLA,#07H
JZEXIT_KEY
MOVR5,A
MOVR4,#00H;用于控制调时快进速度
LOOP:
LCALLDISPLAY;进入长按处理
MOVA,P1
CPLA
ANLA,#07H
JB47H,LOOP1
INCR4;调时快进间隔时间基准加1
LOOP1:
CJNER1,#03H,LOOP2;如果调秒时长按,则不处理
LJMPLOOP3
LOOP2:
CJNER4,#99H,LOOP3
MOVR4,#70H;确认长按后,加快调时快进速度
SETB46H
LCALLADD_KEY
LCALLDEC_KEY
LOOP3:
JNZLOOP;等待键释放
MOVA,R5;输出键值
RET
EXIT_KEY:
RET
;------------
;延时子程序
;------------
DELAY:
MOVR7,#200
DJNZR7,$
RET
DELAY1:
MOVR3,#50
MOVTMOD,#00H
MOVTH1,#63H
MOVTL1,#18H
SETBTR1
LP1:
JBCTF1,LP2
SJMPLP1
LP2:
MOVTH1,#63H
MOVTL1,#18H
DJNZR3,LP1
RET
;-----------------
;选择键处理子程序
;-----------------
SET_KEY:
CJNER5,#01H,EXIT;选择键键值
INCR1;调整选择功能标志加一
CJNER1,#4,EXIT
MOVR1,#0
MOV54H,#00H;调时闪烁清零
RET
;----------
;加1子程序
;----------
ADD_KEY:
CJNER5,#02H,EXIT;加1键值
CJN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子钟
![提示](https://static.bdocx.com/images/bang_tan.gif)