单片机电子时钟课程设计说明书Word格式文档下载.docx
- 文档编号:17624982
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:19
- 大小:98.03KB
单片机电子时钟课程设计说明书Word格式文档下载.docx
《单片机电子时钟课程设计说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机电子时钟课程设计说明书Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 时钟 课程设计 说明书