基于AT89S52单片机的数字倒计时器设计.docx

上传人:b****8 文档编号:30149450 上传时间:2023-08-05 格式:DOCX 页数:24 大小:123.43KB
下载 相关 举报
基于AT89S52单片机的数字倒计时器设计.docx_第1页
第1页 / 共24页
基于AT89S52单片机的数字倒计时器设计.docx_第2页
第2页 / 共24页
基于AT89S52单片机的数字倒计时器设计.docx_第3页
第3页 / 共24页
基于AT89S52单片机的数字倒计时器设计.docx_第4页
第4页 / 共24页
基于AT89S52单片机的数字倒计时器设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

基于AT89S52单片机的数字倒计时器设计.docx

《基于AT89S52单片机的数字倒计时器设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的数字倒计时器设计.docx(24页珍藏版)》请在冰豆网上搜索。

基于AT89S52单片机的数字倒计时器设计.docx

基于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

指导教师评语:

 

成绩:

指导教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1