基于stc89c52rc万年历程序.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于stc89c52rc万年历程序

TICK_CNT EQU 40H ;T0溢出计数器 SECOND EQU 41H ;存储数据用真值,未用BCD码 MINUTE EQU 42H HOUR EQU 43H DAY EQU 44H MONTH EQU 45H YEAR EQU 46H YUSHU EQU 47H ;存放余数 FLASH_FLAG EQU 27H ;时间日期调整标志 ;R7: 0-时间;1-日期 ;中断向量表 ORG 0000H LJMP MAIN ORG 0003H LJMP EX0_INT ORG 000BH LJMP T0_INT ORG 0013H LJMP EX1_INT ;主程序 ORG 0030H MAIN: NOP ;初始化堆栈 MOV SP,#60H ;初始化变量 MOV SECOND,#0 MOV MINUTE,#0 MOV HOUR,#0 MOV DAY,#21 MOV MONTH,#1 MOV YEAR,#96 MOV FLASH_FLAG,#00H MOV R7,#00H ; MOV TL0,#0B0H ; 定时50ms MOV TH0,#3CH MOV TICK_CNT,#20 ;装计数初值(1s计数器) MOV TMOD,#01H SETB ET0 SETB EX0 SETB EX1 SETB EA ;开中断 SETB PX0 SETB PX1 ;设置中断优先级 SETB TR0 ; 启动定时器T0 LOPP:LCALL DISPLAY ;调用显示子程序 LJMP LOPP ; ------------------------------------------------- ; 定时器0中断 T0_INT: MOV TL0,#0B0H MOV TH0,#3CH ; 重装载 DJNZ TICK_CNT,NOT_1S ;1秒到? AJMP IS_1S NOT_1S: LJMP T0_RET ; 1秒时间到 IS_1S: PUSH ACC MOV A,SECOND CJNE A,#59,IN3 ; 59s到? AJMP IN4 IN3: LJMP SECOND_INC ; 秒加1 IN4: MOV SECOND,#0 ; 秒进位 MOV A,MINUTE CJNE A,#59,IN5 ; 59分到? AJMP IN6 IN5: LJMP MINUTE_INC IN6: MOV MINUTE,#0 ; 分进位 MOV A,HOUR CJNE A,#23,HOUR_INC ; 23h到? MOV HOUR,#0 ; 时进位 MOV A,MONTH CJNE A,#2,NOT_FEB ; 是否二月? ;2月处理 ;-------------------------- FEB: NOP ACALL DIV4 MOV A,YUSHU CJNE A,#0,NOT_LEAP_Y ;是否闰年? LEAP_Y: MOV A,DAY ;闰年 CJNE A,#29,DAY_INC MOV DAY,#1 MOV MONTH,#3 LJMP RESET_CNT ;非闰年 NOT_LEAP_Y: MOV A,DAY CJNE A,#28,DAY_INC ; MOV DAY,#1 MOV MONTH,#3 LJMP RESET_CNT ;--------------------------- ;非2月处理 ;30/31天? NOT_FEB:NOP CJNE A,#4,Y01 AJMP MON_30D Y01: CJNE A,#6,Y02 ;是否小月? AJMP MON_30D Y02: CJNE A,#9,Y03 AJMP MON_30D Y03: CJNE A,#11,T11 AJMP MON_30D ;31天 T11: MOV A,DAY ;大月 CJNE A,#31,DAY_INC AJMP NEXT_MONTH ;30天 MON_30D:MOV A,DAY ;小月 CJNE A,#30,DAY_INC ;天进位 NEXT_MONTH: MOV DAY,#1 MOV A,MONTH CJNE A

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档