日历时钟程序设计 单片机课程设计Word格式文档下载.docx

上传人:b****5 文档编号:20863455 上传时间:2023-01-26 格式:DOCX 页数:11 大小:19.28KB
下载 相关 举报
日历时钟程序设计 单片机课程设计Word格式文档下载.docx_第1页
第1页 / 共11页
日历时钟程序设计 单片机课程设计Word格式文档下载.docx_第2页
第2页 / 共11页
日历时钟程序设计 单片机课程设计Word格式文档下载.docx_第3页
第3页 / 共11页
日历时钟程序设计 单片机课程设计Word格式文档下载.docx_第4页
第4页 / 共11页
日历时钟程序设计 单片机课程设计Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

日历时钟程序设计 单片机课程设计Word格式文档下载.docx

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

日历时钟程序设计 单片机课程设计Word格式文档下载.docx

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位十进制数组合)

清进位标志

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中数据高四位与低四位交换

ORL 

前一地址中数据放入A中低四位

A,#01H 

A加1操作

DA 

十进制调整

R3,A 

移入R3寄存器

ANL 

A,#0FH 

高四位变0

@R0,A 

放回前一地址单元

取回R3中暂存数据

指向当前地址单元

数据放入当削地址单元中

RET 

子程序返回

清零程序 

对计时单元复零用

CLR0:

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

当前位置:首页 > 解决方案 > 其它

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

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