单片机课程设计数字电子钟.docx
- 文档编号:8867983
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:33
- 大小:496.19KB
单片机课程设计数字电子钟.docx
《单片机课程设计数字电子钟.docx》由会员分享,可在线阅读,更多相关《单片机课程设计数字电子钟.docx(33页珍藏版)》请在冰点文库上搜索。
单片机课程设计数字电子钟
单片机技术课程设计说明书
数字电子钟
摘要
电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用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.
显示对应的拉丁字符的拼音
字典-查看字典详细内容
KeywordsElectronicclock;;AT89S52;HardwareDesign;SoftwareDesign
1设计课题任务、功能要求说明及方案介绍……………………………………1
1.1设计课题任务………………………………………………………………1
1.2功能要求说明………………………………………………………………1
1.3设计总体方案介绍及原理说明……………………………………………1
2设计课题硬件系统的设计………………………………………………………2
2.1设计课题硬件系统各模块功能简要介绍…………………………………2
2.2设计课题电路原理图、PCB图、仿真电路图……………………………2
2.3设计课题元器件清单………………………………………………………3
3设计课题软件系统的设计………………………………………………………5
3.1设计课题使用单片机资源的情况…………………………………………5
3.2设计课题软件系统各模块功能简要介绍…………………………………5
3.3设计课题软件系统程序流程框图…………………………………………5
3.4设计课题软件系统程序清单………………………………………………10
4设计结论、仿真结果、误差分析、教学建议…………………………………25
4.1设计课题的设计结论及使用说明…………………………………………25
4.2设计课题的仿真结果………………………………………………………25
4.3设计课题的误差分析………………………………………………………26
4.4设计体会……………………………………………………………………26
4.5教学建议……………………………………………………………………26
参考文献……………………………………………………………………………27
致谢……………………………………………………………………………28
附录……………………………………………………………………………29
1设计课题任务、功能要求说明及方案介绍
1.1设计课题任务
设计一个具有特定功能的电子钟。
具有时间显示,时间设定,时间调整功能。
1.2功能要求说明
设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“P.”,进入时钟准备状态;第一次按电子钟启动/暂停键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/暂停键再次进入时钟运行状态。
退出手动调时系统后,计时系统在调整后的状态下运行。
当计时达到24小时后,系统自动清0,重新进入计时系统。
1.3设计课题总体方案介绍及工作原理说明
本电子钟主要由单片机、4*1独立键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1.1所示:
图1.1总体设计方案图
本电子钟的所有的软件、参数均存放在AT89S52的FlashROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
2设计课题硬件系统的设计
2.1设计课题硬件系统各模块功能简要介绍
本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。
。
(1)时钟电路:
系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
AT89单片机内部有一个用于构成振荡器的高增益反相放大器。
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。
外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。
因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。
在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。
(2)复位电路:
复位是由外部的复位电路来实现的。
片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。
复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路,如图所示。
当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。
(3)键盘电路:
当非编码键盘的按键较少时,采用独立式键盘比较方便,可以随意拿硬件作为预处理,各键盘之间不影响,编程相对矩阵式键盘简单,但占用的I/O口线较多。
(4)显示电路:
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及生产工艺,单片机应用系统中常用的显示器有:
发光二极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一。
LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。
对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如系统原理图。
在动态方式中,逐个地循环地点亮各位显示器。
这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。
(5)电源电路:
现在市面上销售的编程器有很多都是由PC机的USB口直接供电,为了降低本设计的成本及节省设计时间,没有另外设计编程器。
2.2设计课题电路原理图、PCB图、元器件布局图
图2.1电路原理图
图2.2PCB图
图2.3仿真电路
2.3设计课题元器件清单
设计课题元器件清单如表2.1所示。
表2.1设计所用元器件清单
名称
数量
参数
电阻
3个
1KΩ
数码管
2个
4位一体
电阻
1个
200Ω
下载口
1个
普通插座
1个
40PIN
电阻
16个
470Ω
按键
4个
三极管
9个
PNP
USB供电线
1根
晶振
1个
12MHz
电容
2个
30pF
极性电容
1个
22μF
芯片
1块
AT89S52
发光二极管
1个
六角开关
1个
3设计课题软件系统的设计
3.1设计课题使用单片机资源的情况
设计课题使用单片机资源的情况如下:
P0口输出数码管段选信号,P3口输出数码管位选信号;晶振12MHz;开始/暂停键S1;按一次开始计时,再按时间暂停在当前状态:
调整键S2;通过选择键选择调整位,选中位闪烁;增加键S3;按一次使选中位加1;减少键S3;按一次使选中位减1;;P3.1口接蜂鸣器;
78H用于秒个位;79H用于秒十位;
7BH用于分个位;7CH用于分十位;
7EH用于时个位;7FH用于时十位;
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.1;通过选择键选择调整位,选中位闪烁
;增加键ADD_KEY:
P1.2;按一次使选中位加1
;减少键DEC_KEY:
P1.3;按一次使选中位减1
;P0口输出数码管段选信号,P2口输出数码管位选信号;晶振12MHz
;P3.1为蜂鸣器发声报时
;编程人:
刘亚龙编写日期:
2012年12月28日修改日期(最终):
2013年1月2日
;-----------------------------------------------------------------------
;-----------
;程序入口
;-----------
ORG0000H
START:
LJMPMAIN
ORG001BH;定时器1的中断入口地址
LJMPTT
;*********************************************************
;系统监控程序区
ORG0030H
MAIN:
MOVSP,#60H;确立堆栈区
MOVPSW,#00H;初始化PSW,通用寄存器组为第0组
MOVR0,#20H;RAM区首地址
MOVR5,#96;RAM区单元个数
QL:
MOV@R0,#00H
INCR0
DJNZR5,QL
SETBEA;中断初始化
SETBET1
MOVTMOD,#10H;TMOD初始化
MOVTH1,#3CH;计数初值初始化
MOVTL1,#0B0H
XP0:
MOVDPTR,#BG0;提示符“P.”字符代码表首地址
MOVR0,#78H
MOVR2,#08H
XP:
CLRA
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR2,XP
LCALLDIR;调显示子程序显示提示符“P.”
LCALLKEY;调键盘扫描子程序
JB20H.0,K0
LJMPXP0
;***********************************************
;键功能程序;
;电子钟进入启动/调整状态
K0:
MOVDPTR,#BG1;显示0时0分0秒字符代码表首地址
MOVR0,#78H
MOVR1,#08H
XK:
CLRA
MOVCA,@A+DPTR
MOV@R0,A
INCR0
INCDPTR
DJNZR1,XK
MOVR2,#14H
KA:
SETBTR1;开启定时器,电子钟进入启动状态
KA0:
LCALLDIR
LCALLKEY
JB20H.0,K00
LJMPKA0
K00:
CLRTR1;关闭定时器电子钟进入准备调整状态
LCALLDIR
LCALLKEY
JB20H.0,T01;重新进入时钟运行状态
JB20H.1,K1;选择调整时钟的秒针数
LJMPK00
;****************************************************
;选择调整时钟的秒针数
K1:
MOVR5,7EH
MOVR6,7FH
MF3:
MOVR0,78H
MOVR1,79H;保存缓冲区78H,79H中的内容
SM:
MOV7EH,R5
MOV7FH,R6
MOV78H,#0AH
MOV79H,#0AH;给78H,79H中送提示符“灭”字符代码
MOVR2,#16H
CL1:
LCALLDIR
LCALLKEY
JB20H.0,MF0;重新进入时钟运行状态
JB20H.1,K10;选择调整时钟的分针数
JB20H.2,K20;对时钟的秒针数进行加一操作
JB20H.3,T30
DJNZR2,CL1
MOV78H,R0
MOV79H,R1;将78H,79H中原有的内容送回其中
MOVR2,#16H
CL2:
LCALLDIR
LCALLKEY
JB20H.0,T01;重新进入时钟运行状态
JB20H.1,K10;选择调整时钟的分针数
JB20H.2,K20;对时钟的秒针数进行加一操作
JB20H.3,T30
DJNZR2,CL2
LJMPSM
T30:
LJMPK30;对时钟的秒针数进行减一操作
MF0:
MOV78H,R0
MOV79H,R1
T01:
LJMPKA
;**************************************************
;选择调整时钟的分针数
K10:
MOVR3,7BH
MOVR4,7CH;保存缓冲区7BH,7CH中的内容
SF:
MOV78H,R0
MOV79H,R1
MOV7BH,#0AH
MOV7CH,#0AH;给7BH,7CH中送提示符“灭”字符代码
MOVR2,#16H
CL3:
LCALLDIR
LCALLKEY
JB20H.0,MF1;重新进入时钟运行状态
JB20H.1,T11
JB20H.2,T21
JB20H.3,T31
DJNZR2,CL3
MOV7BH,R3
MOV7CH,R4;将7BH,7CH中原有的内容送回其中
MOVR2,#16H
CL4:
LCALLDIR
LCALLKEY
JB20H.0,T01;重新进入时钟运行状态
JB20H.1,T11
JB20H.2,T21
JB20H.3,T31
DJNZR2,CL4
LJMPSF
T11:
LJMPK11;选择调整时钟的时针数
T21:
LJMPK21;对时钟的分针数进行加一操作
T31:
LJMPK31;对时钟的分针数进行减一操作
;*********************************************
;对时钟的秒针数进行加一操作
K20:
MOV78H,R0
MOV79H,R1
K200:
CJNER0,#09H,IMG
MOV78H,#00H
INC79H
MOVR1,79H
CJNER1,#06H,IMG0
MOV79H,#00H
LJMPIMG0
IMG:
INC78H
IMG0:
MOVR0,78H
MOVR1,79H
CL70:
MOVR2,#26H
CL7:
LCALLDIR
LCALLKEY
JB20H.0,T02;重新进入时钟运行状态
JB20H.1,K10;选择调整时钟的分针数
JB20H.2,K200;对时钟的秒针数进行加一操作
JB20H.3,K30;对时钟的秒针数进行减一操作
DJNZR2,CL7
LJMPCL70
MF1:
MOV7BH,R3
MOV7CH,R4
LJMPKA
;****************************************************
;对时钟的秒针数进行减一操作
K30:
MOV78H,R0
MOV79H,R1
K300:
CJNER0,#00H,DMG
MOV78H,#09H
CJNER1,#00H,DMG1
LJMPDMG2
DMG1:
DEC79H
LJMPDMG0
DMG2:
MOV79H,#05H
LJMPDMG0
DMG:
DEC78H
DMG0:
MOVR0,78H
MOVR1,79H
CD70:
MOVR2,#26H
CD7:
LCALLDIR
LCALLKEY
JB20H.0,T02
JB20H.1,T10
JB20H.2,K20;对时钟的秒针数进行加一操作
JB20H.3,K300;对时钟的秒针数进行减一操作
DJNZR2,CD7
LJMPCD70
T10:
LJMPK10;选择调整时钟的分针数
T02:
LJMPKA;重新进入时钟运行状态
;***************************************************
;选择调整时钟的时针数
K11:
MOVR5,7EH
MOVR6,7FH;保存缓冲区7EH,7FH中的内容
SS:
MOV7BH,R3
MOV7CH,R4
MOV7EH,#0AH
MOV7FH,#0AH;给7EH,7FH中送提示符“灭”字符代码
MOVR2,#16H
CL5:
LCALLDIR
LCALLKEY
JB20H.0,MF2;重新进入时钟运行状态
JB20H.1,Y1;选择调整时钟的秒针数
JB20H.2,T22
JB20H.3,T32
DJNZR2,CL5
MOV7EH,R5
MOV7FH,R6;将7EH,7FH中原有的内容送回其中
MOVR2,#16H
CL6:
LCALLDIR
LCALLKEY
JB20H.0,T02;重新进入时钟运行状态
JB20H.1,Y1;选择调整时钟的秒针数
JB20H.2,T22
JB20H.3,T32
DJNZR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 数字 电子钟