单片机电子时钟课程设计说明书Word格式文档下载.docx

上传人:b****6 文档编号:17624982 上传时间:2022-12-07 格式:DOCX 页数:19 大小:98.03KB
下载 相关 举报
单片机电子时钟课程设计说明书Word格式文档下载.docx_第1页
第1页 / 共19页
单片机电子时钟课程设计说明书Word格式文档下载.docx_第2页
第2页 / 共19页
单片机电子时钟课程设计说明书Word格式文档下载.docx_第3页
第3页 / 共19页
单片机电子时钟课程设计说明书Word格式文档下载.docx_第4页
第4页 / 共19页
单片机电子时钟课程设计说明书Word格式文档下载.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

单片机电子时钟课程设计说明书Word格式文档下载.docx

《单片机电子时钟课程设计说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机电子时钟课程设计说明书Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。

单片机电子时钟课程设计说明书Word格式文档下载.docx

3.键盘

键盘采用4×

4矩阵键盘,由P2.0~P2.3为行线、P1.4~P1.7为列线而组成4×

4的方阵,用软件扫描的方法可以确定每个键的键值。

在设计中,每个键可以用来数据及命令的输入。

4.电源

控制电源可以由单放机DC12V稳压电源提供,该电源可以用于步进电机的驱动,同时通过线性三端稳压器7805为其它电路提供电源;

如果不需要使用步进电机,整个控制系统的DC5V电源可以从普通计算机的USB接口采集,使用时只要把USB接线一头接微机USB端口,另一头接控制器上的2芯电源接口即可。

5.编程接口

微处理器采用AT89S51,AT89S51具有ISP在线编程功能,P1.5~P1.7为编程接口,软件编译和调试包括两个过程:

1.打开Medwin仿真编译软件,选择模拟仿真即可进入编译环境,新建一个文件(后缀为asm),在文本输入框输入源程序,然后进行编译直至没有语法错误,使用编译命令(Ctrl+F7)生成16进制文件(后缀hex)。

2.连接好电源线和编程线后,启动USBASP编程软件,在芯片选择中选择微处理器型号AT89S51,打开装入Flash,装入16进制文件,用擦除命令将芯片内的原程序擦除,用编程命令将新程序写入AT89S51,完毕后,重新复位使程序运行,观察结果。

如有错误应重新打开Medwin修改源程序,重新生成16进制文件,重复以上操作,直至满足设计要求。

3.设计过程中碰到的问题及解决方法

硬件方面:

(1)焊接三极管时,由于三个引脚间的距离太近,自己过于急躁,弄了很多锡在上面,造成短路;

最后用吸锡器弄干净,重新焊接,有些锡粘在板上,必须用小刀把两引脚间的锡削掉。

这里花费了大量时间。

(2)LED显示器有一排显示不出来,查明是接口虚焊问题。

重新补焊接显示器接口。

软件方面:

(1)程序编写开始有点混乱,最后重新构思,确定各个按键功能,再根据各个功能编写,这样一步步来,思路比较清晰。

(2)程序编写时感觉最难的是按键切换,开始感觉无法下手。

最后找了一些按键方面的程序,慢慢看,慢慢了解;

然后根据自己设计的特点编写程序。

4.总结

数字电子钟基本功能都已实现,可以通过按键进行模式切换,并对其数值进行调节。

在这基础上还添加了年月日的移动显示,还有秒表,闹铃功能。

存在不足是设计的电子钟存在一定的误差,不能在实际中运用。

通过本次课程设计,对单片机AT89S51有更深入的了解,同时在对单片机进行软件编程的过程中,学会了单片机编程的流程控制,熟悉了单片机显示按键系统的编程实现。

5.程序模块框图

6.程序清单

****************************************

;

主程序开始;

ORG0000H

LJMPSTART

ORG000BH;

定时器0的中断向量地址

LJMPTIME0;

转到定时中断

START:

显示缓冲区

DISP_SBUF1EQU40H

DISP_SBUF2EQU41H

DISP_SBUF3EQU42H

DISP_SBUF4EQU43H

复位程序;

MOVR0,#20H

MOVR7,#60H

S1:

MOV@R0,#00H

INCR0

DJNZR7,S1

定时程序;

MOV30H,#02H;

赋初值

MOV31H,#01H

MOV32H,#06H;

开机显示时间12:

00

MOV33H,#00H

MOV34H,#00H;

闹钟时间为7:

MOV35H,#01H

MOV36H,#00H

MOV37H,#02H;

起始日期:

2010-6-2

MOVTMOD,#01H;

定时/计数器0工作于方式1

MOVTH0,#3CH

MOVTL0,#0B0H;

定时50ms(f=11.05MHz)

MOV70H,#20

SETB12H

SETBEA;

开总中断允许

SETBET0;

开定时/计数器0允许

SETBTR0;

定时/计数器0开始运行

显示子程序;

KEY:

JB16H,XUNHUAN

LCALLDSHBJ

JB04H,SFXS

JB05H,MXS

JB06H,DXS

JB10H,NXS

JB11H,YRXS

LJMPWORD1

XUNHUAN:

JB17H,XUNH

LJMPNXS

XUNH:

LJMPYRXS

DSHBJ:

JB12H,DSHBJ1

JB14H,DSHBJ1

MOVA,55H

CJNEA,63H,DSHBJ1

MOVA,54H

CJNEA,62H,DSHBJ1

MOVA,53H

CJNEA,61H,DSHBJ1

MOVA,52H

CJNEA,60H,DSHBJ1

CLRP1.3

SETB13H

DSHBJ1:

RET

NXS:

MOV40H,34H

MOV41H,35H

MOV42H,36H

MOV43H,37H

YRXS:

MOV40H,30H

MOV41H,31H

MOV42H,32H

MOV43H,33H

SFXS:

MOV40H,52H

MOV41H,53H

MOV42H,54H

MOV43H,55H

MXS:

MOV40H,50H

MOV41H,51H

MOV42H,#00H

MOV43H,#00H

DXS:

MOV40H,60H

MOV41H,61H

MOV42H,62H

MOV43H,63H

LJMPWORD1

****************************************

显示程序;

第1个字

WORD1:

MOVDPTR,#TAB

JB00H,WORD2

SETB00H

CLRP2.4

MOVA,DISP_SBUF4

MOVCA,@A+DPTR

JB15H,WORD11

DECA

WORD11:

MOVP0,A

SETBP2.7

AJMPINT_T0_OUT

第2个字

WORD2:

JB01H,WORD3

SETB01H

CLRP2.7

MOVA,DISP_SBUF3

JB15H,WORD21

WORD21:

SETBP2.6

AJMPINT_T0_OUT

第3个字

WORD3:

JB02H,WORD4

SETB02H

CLRP2.6

MOVA,DISP_SBUF2

JB15H,WORD31

WORD31:

SETBP2.5

第4个字

WORD4:

JB03H,WORD5

SETB03H

CLRP2.5

MOVA,DISP_SBUF1

JB15H,WORD41

WORD41:

SETBP2.4

WORD5:

CLR00H

CLR01H

CLR02H

CLR03H

AJMPWORD1

键盘程序;

INT_T0_OUT:

ANLP1,#0FH;

保护P1的低四位,高四位置低电平

ORLP2,#0FH;

保护P2的高四位,低四位置高电平

JNBP2.0,KEY1

JNBP2.1,KEY2

JNBP2.2,KEY3

JNBP2.3,KEY4

AJMPKEY

KEY1:

LCALLT10MS

SETBP2.0

JNBP2.0,KEY11

KEY2:

SETBP2.1

JNBP2.1,KEY21

KEY3:

SETBP2.2

JNBP2.2,KEY31

KEY4:

SETBP2.3

JNBP2.3,KEY41

KEY11:

MOVR5,#0;

行值

MOVR6,#0;

列值

MOVR7,#70H

MOVR3,#4

AA:

MOVA,R7

ANLP1,#0FH

ORLP1,A

JNBP2.0,TRK

INCR6

SETBC

RRCA

ANLA,#0F0H

MOVR7,A

DJNZR3,AA

KEY21:

MOVR5,#4;

BB:

JNBP2.1,TRK

SETBC;

?

DJNZR3,BB

AJMPKEY

KEY31:

MOVR5,#8;

MOVR6,#0;

CC:

JNBP2.2,TRK

SETBC

DJNZR3,CC

KEY41:

MOVR5,#12;

DD:

MOVA,R7

SETBP2.3

JNBP2.3,TRK

DJNZR3,DD

TRK:

MOVA,R5

ADDA,R6

MOVB,#3

MULAB;

MOVDPTR,#KT

JMP@A+DPTR

KT:

LJMPPR0

LJMPPR1

LJMPPR2

LJMPPR3

LJMPPR4

LJMPPR5

LJMPPR6

LJMPPR7

LJMPPR8

LJMPPR9

LJMPPR10

LJMPPR11

LJMPPR12

LJMPPR13

LJMPPR14

LJMPPR15

PR0:

SETB10H

CLR04H

CLR05H

CLR06H

CLR11H

CLR16H

LJMPKEY

PR1:

SETB11H

CLR10H

PR2:

SETB04H

LJMPKEYA

PR3:

SETB05H

PR4:

SETB06H

CLR14H

PR5:

JNB06H,PR52

INC62H

MOVA,63H

CJNEA,#02H,PR51

MOVA,62H

CJNEA,#04H,PR52

MOV62H,#00H

MOV63H,#00H

LJMPPR52

PR51:

CJNEA,#0AH,PR52

INC63H

PR52:

LJMPKEYA

PR6:

JNB06H,PR61

INC60H

MOVA,60H

CJNEA,#0AH,PR61

MOV60H,#00H

INC61H

MOVA,61H

CJNEA,#06H,PR61

MOV61H,#00H

PR61:

PR7:

JNB13H,PR71

SETBP1.3

SETB14H

PR71:

LJMPKEYA

PR8:

SETB07H

CLR08H

PR9:

JNB07H,PR92

INC54H

CJNEA,#02H,PR91

CJNEA,#04H,PR92

MOV54H,#00H

MOV55H,#00H

LJMPPR92

PR91:

CJNEA,#0AH,PR92

INC55H

PR92:

PR10:

JNB07H,PR101

INC52H

CJNEA,#0AH,PR101

MOV52H,#00H

INC53H

CJNEA,#06H,PR101

MOV53H,#00H

PR101:

PR11:

CLR07H

CLR12H

PR12:

SETB16H

PR13:

PR14:

PR15:

KEYA:

LCALLT1S

LJMPKEY

中断程序;

TIME0:

PUSHACC

PUSHPSW

MOVTL0,#0B0H

DJNZ70H,L1

CPL17H

CPL15H

INC50H;

秒个位加一

MOVA,50H

CJNEA,#0AH,L1;

到了,清0往下加一

MOV50H,#00

INC51H;

秒十位加一

MOVA,51H

CJNEA,#06H,L1;

到了,清0往下加一

MOV51H,#00

INC52H;

分个位加一

MOVA,52H

MOV52H,#00

INC53H;

分十位加一

MOVA,53H

CJNEA,#06H,L1;

MOV53H,#00

INC54H;

时个位加一

MOVA,55H

CJNEA,#02H,L2;

MOVA,54H

CJNEA,#04H,L1;

MOV54H,#00

MOV55H,#00

LJMPL1

L2:

CJNEA,#0AH,L1;

INC55H;

时个位加一

L1:

POPPSW

POPACC

RETI

T10MS:

MOVR7,#0AH

DLA0:

MOVR6,#0FFH

DLA1:

DJNZR6,DLA1

DJNZR7,DLA0

RET

T1S:

MOVR5,#50

KK:

DJNZR5,KK

数码管笔画表

TAB:

DB81H,0EDH,43H,49H,02DH,19H

DB11H,0CDH,01H,09H,05H,31H,73H,61H,13H,17H,0FFH

END

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

当前位置:首页 > PPT模板 > 其它模板

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

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