基于AT89S52单片机的数字倒计时器设计.docx
- 文档编号:30149450
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:24
- 大小:123.43KB
基于AT89S52单片机的数字倒计时器设计.docx
《基于AT89S52单片机的数字倒计时器设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的数字倒计时器设计.docx(24页珍藏版)》请在冰豆网上搜索。
基于AT89S52单片机的数字倒计时器设计
单片机课程设计说明书
题目基于AT89S52单片机的LED数字倒计时器设计
系部机械工程系
专业机电一体化
班级309-1
学生姓名颜杰学号200930701041
指导教师安红战
2011年06月16日
目录
1设计任务与要求2
2设计方案2
3硬件电路设计与主要元器件分析3
3.16位LED数码管显示3
3.2LED倒计时器元件清单3
3.3主要元器件分析4
3.3.1单片机AT89S524
3.3.2集成块74LS2454
3.4基本硬件电路分析5
3.4.1复位电路5
3.4.2按键电路5
3.5LED倒计时器原理图6
4软件设计8
4.1程序流程图8
4.2程序清单9
5调试过程20
6结论20
7附录21
1设计任务与要求
近年来随着计算机在社会领域的渗透,单片机的应用正在不断深入人们的生活,同时带动传统控制检测日新月异。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构,针对具体应用特点与软件结合。
本项目讨论了LED数字倒计时器的设计与制作,此方案线路简单,成本低,应用前景广阔。
本次设计的任务与要求是,使基于AT89S52单片机的LED数字倒计时器主要具有如下功能:
(1)LED数码管显示倒计时时间。
(2)倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出约2s的报警声音。
(3)通过按键可以对倒计时设定初值。
倒计时初始值范围在24:
00:
00~00:
00:
60之间,用户可根据需要对其进行设置,设置成功后复位初始值为成功设定值。
2设计方案
LED数字倒计时器以AT89S52单片机为核心,系统包括六位数码管显示电路,按键电路,电源电路,复位电路,晶振电路以及蜂鸣器电路几部分,LED数字倒计时器设计框图如下:
图1LED数字倒计时器设计框图
3硬件电路设计与主要元器件分析
3.16位LED数码管显示
本项目设计采用了6位数码管显示电路,在设计6位LED显示时,为了简化电路,降低成本,采用动态显示方式,6个LED显示器共用一个8位的I/O,6位LED数码管的位选线分别由相应的P2.0~p2.5控制,而将相应的段选线并联在一起,由一个8位的I/O口控制,即p0口。
译码显示电路将“时”、“分”、“秒”显示数字进行校对调整。
3.2LED倒计时器元件清单
表1LED数字倒计时器元件清单
元件名称
型号
数量/个
用途
单片机
AT89S52
1
控制核心
晶振
12MHz
1
晶振电路
电容
30pF
2
晶振电路
电解电容
22μF/10V
1
复位电路
电阻
10kΩ
1
复位电路
按键
5
按键电路
数码管
共阳
6
显示器
集成块
74LS245
3
驱动
三极管
2N5088
1
蜂鸣器
喇叭
8Ω/0.5W
1
蜂鸣器
电阻
1kΩ
2
蜂鸣器
电阻
100Ω
1
蜂鸣器
电阻
2.7kΩ
4
上拉电阻
电阻
330Ω
8
上拉电阻
电源
+5V/0.5A
1
提供+5V
集成块
74LS07
1
驱动
3.3主要元器件分析
3.3.1单片机AT89S52
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
。
3.3.2集成块74LS245
74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收) *DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。
由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。
P0口与74LS245输入端相连,/E端接地,保证数据现畅通。
3.4基本硬件电路分析
3.4.1复位电路
复位是单片机的初始化操作,只需给AT89S52的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位,复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。
除了进入系统的正常初始化之外由于程序运行出错或操作错误而使系统处于死锁状态,为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。
图2复位电路原理图
3.4.2按键电路
按键电路的按键功能说明:
(1)K1用于设置时间和闹钟的小时。
(2)K2用于设置小时以及设置闹钟的开关。
(3)K3用于设置分钟和闹钟的分钟。
(4)K4用于设置完成退出。
3.5LED倒计时器原理图
图3LED数字倒计时器原理图
L
4软件设计
4.1程序流程图
图4LED数字倒计时器程序流程图
4.2程序清单
程序清单如下:
K1EQUp1.0
K2EQUP1.1
K3EQUp1.2
K4EQUP1.3
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIME
ORG0100H
MAIN:
MOVSP,#50H
MOV20H,#3CH;时间BINSECOND
MOV21H,#3CH;BINMINUTE
MOV22H,#18H;BINHOUR
MOV23H,#01H;闹铃BINMINUTE
MOV24H,#01H;BINHOUR
MOV25H,#00H;定义一个标志位
MOV30H,#00H;时间BCDSECOND
MOV31H,#00H
MOV32H,#00H;BCDMINUTE
MOV33H,#00H
MOV34H,#00H;BCDHOUR
MOV35H,#00H
MOV36H,#01H;闹铃BCDMINUTE
MOV37H,#00H
MOV38H,#01H;BCDHOUR
MOV39H,#00H
MOVTMOD,#01H;16位计数器T0,方式1
MOVTHO,#03CH;赋初值
MOVTLO,#0B0H
MOVIE,#10000111B;开中断TO,EA=1
SETBTRO;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
LCALLSETTIME;调用设置闹钟的程序
LJMPLOOP
M2:
JBK4,M3
A3:
LCALLXIAOZHEN3
MOVC,25H.0
JCA4
A4:
CLR25H.0
M3:
LJMPLOOP
SETTIME:
LO:
LCALLDISPLAY1
JBK2,L1
LCALLXIAOZHEN4
MOVC,25H.0
JCA5
A5:
CLR25H.0
DEC22H
MOVA,22H
CJNEA,#18H,G012
MOV22H,#00H
MOV34H,#00H
MOV35H,#00H
LJMPL0
L1:
JBK3,L2
LCALLXIAOZHEN5
MOVC,25H.0
JCA6
A6:
CLR25H.0
DEC21H
MOVA,21H
CJNEA,#3CH,G011
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
NO:
LCALLDISPLAY2
JBK3,N1
LCALLXIAOZHEN6
MOVC,25H.0
JCA7
A7:
CLR25H.0
DEC24H
MOVA,24H
CJNEA,#24,G022
MOV24H,#00H
MOV38H,#00H
MOV39H,#00H
LJMPN0
N1:
JBK1N2
LCALLXIAOZHEN7
MOVC,25H.0
JCA8
A8:
CLR25H.0
DEC23H
MOVA,23H
CJNEA,#60,G021
MOV23H,#00H
MOV36H,#00H
MOV37H,#00H
LJMPN0
G021:
MOVB,#0AH
DIVAB
MOV36H,B
MOV37H,A
LJMPN0
G022:
MOVB,#0AH
DIVAB
MOV38H,B
MOV39H,A
LJMPN0
N2:
JBK4N0
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
JBK4,XY
LCALLXIAOZHEN3
MOVC,25H.0
JCXY1
XY:
RET
XY1:
LJMPLOOP
XIAOZHEN1:
LCALLDISPLAY1
JBK1,XIAOZHEN1
MOVC,K1
LCALLJCXIAOZHEN1
LCALLDELAY
MOVC,K1
JCXIAOZHEN1
STOP1:
MOVC,K1
JNCSTOP1
LCALLDELAY
MOVC,K1
JNCSTOP1
SETB25H.0
RET
XIAOZHEN2:
LCALLDISPLAY2
JBK2,XIAOZHEN2
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
JCXIAOZHEN4
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,#OFFH
DL11:
DJNZR5,DL11
DJNZR4,DL00
RET
TIME:
PUSHACC
PUSHPSW
MOVTH0,#03CH
MOVTL0,#0B0H
DJNZR2,RET0
MOVR2,#14H
MOVA,20H
CLRC
DECA
CJNEA,#0,G01
MOV20H,#3CH
MOV30H,#0
MOV31H,#0
MOVA,21H
DECA
CJNEA,#3CH,G02
MOV21H,#0H
MOV32H,#0
MOV33H,#0
MOVA,22H
DECA
CJNEA,#18H,GO3
MOV22H,#00H
MOV34H,#0
MOV35H,#0
AJMPRETO
GO1:
MOV20H,A
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
AJMPRETO
GO2:
MOV21H,A
MOVB,#0AH
DIVAB
MOV33H,AEEH
MOV32H,B
AJMPRETO
GO3:
MOV22H,A
MOVB,#OAH
DIVAB
MOV35H,A
MOV34H,B
AJMPRETO
RETO:
POPPSW
POPACC
RETI
DISPLAY1:
MOVR0,#30H
MOVR3,#0EEH
MOVA,R3
PLAY1:
MOVP2,A
MOVA,@RO
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1
MOVP2,#0EEH
MOVA,R3
RLA
JNBACC.6,LD1
INCR0
MOVR3,A
LJMPPLAY1
LD1:
RET
DISPLAY2:
PUSHACC
PUSHPSW
MOVRO,#36H
MOVA,R3
PLAY2:
MOVP2,A
MOVA,@R0
MOVDPTR,#DSEG1
MOVCA,@A+DPTR
MOVP0,A
LCALLDLL
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:
DB3F,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
END
5调试过程
应用系统设计完成之后,要进行硬件调试和软件调试。
软件调试可以利用开发及仿真系统进行。
1.硬件调试
硬件的调试主要是把电路各种参数调整到符合设计要求。
具体如下:
(1)先排除硬件电路故障,包括设计性错误和工艺性故障。
一般原则是先静态后动态。
(2)利用万用表或逻辑测试仪器,检查电路中的各个器件以及引脚是否连接正确,是否有短路故障。
(3)先要将单片机AT89S52芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试各电源电压,若这些都没有问题,则接上仿真机进行联机调试观察各接口线路是否正常。
2.软件调试
软件调试是利用仿真工具进行在仿真调试,除发现和解决程序错误以外,也可以发现硬件故障。
6结论
单片机的应用正在不断深入人们的生活,同时带动传统控制检测日新月异。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
通过本次设计,使我们认识并了解了基本的设计开发过程,在这过程中,我的身边的同学们给了我很大的启示和帮助,而且我觉得对以前不了解的单片机只是有了一个更感更深的了解。
我相信我所学的东西在以后的工作学习中会起很大的作用。
在本次设计中得到了指导老师邹老师的大力支持,在此表示感谢!
7附录
利用单片机内部的定时器溢出中断来实现定时,设定某定时器每100ms中断1次,则10次的周期为1s。
这种实现法的特点是精度高,秒脉冲的发生和其他处理
可以并行进行。
.......显示子程序........
DISP:
MOVA,R0
ORLP2,#00001110B
ANLP2,#11111110B
MOVCA,@A+DPTR
MOVP1,A
LCALLDELAY
MOVP1,A
LCALLDELAY
MOVA,R1
ORLP2,#00001110B
ANLP2,#11111110B
MOVCA,@A+DPTR
MOVP1,A
LCALLDELAY
MOVP1,A
LCALLDELAY
MOVA,R2
ORLP2,#00001110B
ANLP2,#11111110B
MOVCA,@A+DPTR
MOVP1,A
LCALLDELAY
MOVP1,A
LCALLDELAY
MOVA,R6
ORLP2,#00001110B
ANLP2,#11111110B
MOVCA,@A+DPTR
MOVP1,A
LCALLDELAY
RET
......延时子程序......
DELAY:
MOVR3,#25
D1:
MOVR4,#25
DJNZR4,$
DJRZR3,D1
指导教师评语:
成绩:
指导教师签字:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89S52 单片机 数字 计时器 设计