日历时钟程序设计 单片机课程设计Word格式文档下载.docx
- 文档编号:20863455
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:11
- 大小:19.28KB
日历时钟程序设计 单片机课程设计Word格式文档下载.docx
《日历时钟程序设计 单片机课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《日历时钟程序设计 单片机课程设计Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
L2
72H
L3
73H
L4
74H
L5
75H
VD
BIT
05H
存放日期显示标志
FD
06H
存放闪烁日或月标志
FM
07H
存放闪烁年标志
LY
41H
存放闰年标志
中断入口程序
ORG0000H
程序执行开始地址
LJMP
START
跳到标号START执行
ORG0003H
外中断0中断程序入口
RETI
外中断0中断返回
ORG000BH
定时器T0中断程序入口
INTT0
跳至INTTO执行
ORG0013H
外中断1中断程序入口
外中断1中断返回
ORG001BH
定时器T1中断程序入口
LJMP
INTT1
跳至INTT1执行
ORG0023H
串行中断程序入口地址
串行中断程序返回
主程序
START:
MOV
SP,#08H
R1,#60H
R0,#70H
清70H-7AH共11个内存单元,
R7,#0BH
60-6A共11个内存单元
CLEARDISP:
MOV
@R0,#00H
@R1,#00H
INC
R1
R0
DJNZ
R7,CLEARDISP
20H,#00H
清20H(标志用)
7AH,#0AH
放入"
熄灭符"
数据
40H,#00H
清40H(日期处理相关标志)
60H,#01H
初始日期03年01月01日
62H,#01H
64H,#03H
67H,#30H
初始月天数
68H,#02H
69H,#06H
6AH,#03H
判闰年,(6AH)=4时为闰年
TMOD,#11H
设T0、T1为16位定时器
TL0,#0B0H
50MS定时初值(T0计时用)
TH0,#3CH
50MS定时初值
TL1,#0B0H
50MS定时初值(T1闪烁定时用)
TH1,#3CH
SETB
EA
总中断开放
ET0
允许T0中断
TR0
开启T0定时器
R4,#14H
1秒定时用初值(50MS×
20)
START1:
LCALLDISPLAY
调用显示子程序
JNB
P3.7,SETMM1
P3.7口为0时转时间调整程序
SJMP
START1
P3.7口为1时跳回START1
SETMM1:
LJMPSETMM
转到时间调整程序SETMM
T0中断服务程序
INTT0:
PUSH
ACC
累加器入栈保护
PSW
状态字入栈保护
CLR
关T0中断允许
关闭定时器T0
A,#0B7H
中断响应时间同步修正
ADD
A,TL0
低8位初值修正
TL0,A
重装初值(低8位修正值)
A,#3CH
高8位初值修正
ADDC
A,TH0
TH0,A
重装初值(高8位修正值)
开启定时器T0
R4,OUTT0
20次中断未到中断退出;
ADDSS:
20次中断到(1秒)重赋初值
R0,#71H
指向秒计时单元(70H-71H)
ACALLADD1
调用加1程序(加1秒操作)
A,R3
秒数据放入A(R3为2位十进制数组合)
C
清进位标志
CJNE
A,#60H,ADDMM
ADDMM:
JC
OUTT0
小于60秒时中断退出
ACALLCLR0
大于或等于60秒时对秒计时单元清0
R0,#77H
指向分计时单元(76H-77H)
分计时单元加1分钟
分数据放入A
A,#60H,ADDHH
ADDHH:
JC
OUTT0
小于60分时中断退出
大于或等于60分时分计时单元清0
R0,#79H
指向小时计时单元(78H-79H)
小时计时单元加1小时
时数据放入A
A,#24H,DAY
DAY:
JCOUTT0
ACALLCLR0
MOVR0,#61H
ACALLADD1
MOVA,R3
CLRC
CJNEA,67H,MONTH
MONTH:
MOVR0,#63H
MOV67H,#31H
DJNZ68H,MON2
MOV68H,#02H
MOV67H,#32H
MOVA,69H
MON2:
CJNEA,#05H,MON3
67H,#29H
JNB41H,MON3
MOV67H,#30H
MON3:
DJNZ69H,MON4
MOV69H,#06H
MOV68H,#01H
MON4:
CJNEA,#13H,YEAR
YEAR:
JCOUTT0
MOVR0,#65H
DJNZ6AH,YEAR0
MOV6AH,#04H
SETB41H
YEAR0:
CJNEA,#99H,HOUR
HOUR:
小于24小时中断退出
大于或等于24小时小时计时单元清0
OUTT0:
72H,76H
中断退出时将分、时计时单元数据移
73H,77H
入对应显示单元
74H,78H
75H,79H
POP
恢复状态字(出栈)
恢复累加器
开放T0中断
RETI
中断返回
闪动调时程序
T1中断服务程序,用作时间调整时调整单元闪烁指示
INTT1:
ACC
中断现场保护
PSW
TL1,
#0B0H
装定时器T1定时初值
TH1,
#3CH
R2,INTT1OUT
0.3秒未到退出中断(50MS中断6次)
R2,#06H
重装0.3秒定时用初值
CPL
02H
0.3秒定时到对闪烁标志取反
JB
02H,FLASH1
02H位为1时显示单元"
熄灭"
02H位为0时正常显示
75H,79H
05H,INTT1OUT
70H,60H
71H,61H
72H,62H
73H,63H
74H,64H
75H,65H
INTT1OUT:
恢复现场
中断退出
FLASH1:
JB
05H,VIEWD
01H,FLASH2
01H位为1时,转小时熄灭控制
72H,7AH
01H位为0时,"
数据放入分
73H,7AH
显示单元(72H-73H),将不显示分数据
AJMP
INTT1OUT
转中断退出
FLASH2:
01H位为1时,"
数据放入小时
显示单元(74H-75H),小时数据将不显示
74H,7AH
75H,7AH
INTT1OUT
VIEWD:
06H,MFALS
07H,YFALS
70H,7AH
关日
71H,7AH
MFALS:
72H,7AH
73H,7AH
INTT1OUT
YFALS:
74H,7AH
75H,7AH
加1子程序
ADD1:
A,@R0
取当前计时单元数据到A
DEC
指向前一地址
SWAP
A
A中数据高四位与低四位交换
ORL
前一地址中数据放入A中低四位
A,#01H
A加1操作
DA
十进制调整
R3,A
移入R3寄存器
ANL
A,#0FH
高四位变0
@R0,A
放回前一地址单元
取回R3中暂存数据
指向当前地址单元
数据放入当削地址单元中
RET
子程序返回
清零程序
对计时单元复零用
CLR0:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 日历时钟程序设计 单片机课程设计 日历 时钟 程序设计 单片机 课程设计