好文档 - 专业文书写作范文服务资料分享网站

基于51,52单片机的电子万年历设计(经典)

天下 分享 时间: 加入收藏 我要投稿 点赞

MOV DS1302_ADDR,#89H ;READ OUT MONTH

LCALL READ

MOV MONTH,DS1302_DATA

MOV DS1302_ADDR,#87H ;READ OUT DAY LCALL READ

MOV DAY,DS1302_DATA

MOV DS1302_ADDR,#85H ;READ OUT HOUR

LCALL READ

MOV 76H,R1

MOV 46H,R1 MOV 77H,R2

MOV 47H,R2

MOV R0,HOUR ;小时分离,送显示缓存 LCALL DIVIDE MOV 74H,R1 MOV 44H,R1

MOV HOUR,DS1302_DATA

MOV DS1302_ADDR,#83H ;READ OUT MINTUE

LCALL READ

MOV MINTUE,DS1302_DATA

MOV DS1302_ADDR,#81H ;READ OUT SECOND

LCALL READ

MOV SECOND,DS1302_DATA

MOV R0,YEAR ;年分离,送显示缓存 LCALL DIVIDE MOV 7BH,R1 MOV 4BH,R1

MOV 7CH,R2 MOV 4CH,R2

MOV 78H,WEEK MOV 48H,WEEK

MOV R0,MONTH ;月分离,送显示缓存

LCALL DIVIDE

MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2

MOV 4AH,R2

MOV R0,DAY ;日分离,送显示缓存 LCALL DIVIDE

;******************************** 《 公历设置程序 》

;********************************

SETG: SETB TR1 SETB ET1 CLR 08H CLR 09H CLR 0AH CLR 0BH CLR 0CH CLR 0DH

25

MOV 75H,R2

分分离,送显示缓存 MOV 42H,R1 MOV 73H,R2

秒分离,送显示缓存

LCALL DIVIDE MOV 70H,R1 MOV 40H,R1 MOV 71H,R2

LCALL GENGXIN ;更新农历程序

闰月,则p1.3清0,指示灯亮

LJMP MAIN1

SSS: SETB P1.3 ;非闰月,则p1.3置位,指示灯灭LJMP MAIN1

CLR 0EH CLR 0FH

MOV DS1302_ADDR,#8EH

MOV DS1302_DATA,#00H ;允许写1302 LCALL WRITE

MOV DS1302_ADDR,#80H

MOV DS1302_DATA,#80H ;1302停止振荡 LCALL WRITE

MOV 45H,R2

MOV R0,MINTUE ; LCALL DIVIDE MOV 72H,R1

MOV 43H,R2

MOV R0,SECOND ; MOV 41H,R2 LCALL DISPLAY

JNB P1.1,SETG JNB F0,SSS

CLR P1.3 ;

GWAIT: LCALL DISPLAY JNB P1.1,GWAIT SETG1: LCALL DISPLAY JNB P1.1,SETG2 JNB P1.2,GADDYEAR AJMP SETG1

GADDYEAR: MOV R7,66H ;年加1 LCALL ADD1 MOV 66H,A

CJNE A,#51H,GADDYEAR1 MOV 66H,#01H

GADDYEAR1: MOV DS1302_ADDR,#8CH ;年值送1302 MOV DS1302_DATA,66H LCALL WRITE MOV R0,66H

LCALL DIVIDE ;年分离送显示缓冲 MOV 4BH,R1 MOV 7BH,R1 MOV 4CH,R2 MOV 7CH,R2 WAITT1: LCALL DISPLAY JNB P1.2,WAITT1 AJMP SETG1

SETG2: SETB 0AH ;调月时闪标志 GWAIT2: LCALL DISPLAY JNB P1.1,GWAIT2 SETG3: LCALL DISPLAY JNB P1.1,SETG4 JNB P1.2,GADDMONTH AJMP SETG3

GADDMONTH: MOV R7,65H ;月加1 LCALL ADD1 MOV 65H,A

CJNE A,#13H,GADDMONTH1 MOV 65H,#01H

GADDMONTH1:MOV DS1302_ADDR,#88H ;月值送1302 MOV DS1302_DATA,65H LCALL WRITE MOV R0,65H

LCALL DIVIDE ;月分离送显示缓冲 MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2

WAITT2: LCALL DISPLAY JNB P1.2,WAITT2 AJMP SETG3

SETG4: SETB 0BH ;调日时闪标志 GWAIT4: LCALL DISPLAY JNB P1.1,GWAIT4 SETG5: LCALL DISPLAY JNB P1.1,SETG6 JNB P1.2,GADDDAY AJMP SETG5

GADDDAY: MOV R7,63H ;日加1 LCALL ADD1 MOV 63H,A

CJNE A,#32H,GADDDAY1 MOV 63H,#01H

GADDDAY1: MOV DS1302_ADDR,#86H ;日值送1302 MOV DS1302_DATA,63H LCALL WRITE MOV R0,63H

LCALL DIVIDE ;日分离送显示缓冲 MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2 WAITT3: LCALL DISPLAY JNB P1.2,WAITT3 AJMP SETG5

SETG6: SETB 0CH ;调星期时闪标志 GWAIT6: LCALL DISPLAY JNB P1.1,GWAIT6 SETG7: LCALL DISPLAY JNB P1.1,SETG8 JNB P1.2,GADDWEEK AJMP SETG7

GADDWEEK: MOV R7,64H ;星期加1 LCALL ADD1 MOV 64H,A

CJNE A,#08H,GADDWEEK1 MOV 64H,#01H

GADDWEEK1: MOV DS1302_ADDR,#8AH ;星期值送1302 MOV DS1302_DATA,64H LCALL WRITE MOV R0,64H

LCALL DIVIDE ;星期分离送显示缓冲

26

MOV 48H,R1 MOV 78H,R1 WAITT4: LCALL DISPLAY JNB P1.2,WAITT4 AJMP SETG7

SETG8: SETB 0DH ;调小时时闪标志 GWAIT8: LCALL DISPLAY JNB P1.1,GWAIT8 SETG9: LCALL DISPLAY AJMP SETG11

GADDMINTUE:MOV R7,61H ;分加1 LCALL ADD1 MOV 61H,A

CJNE A,#60H,GADDMINTUE1 MOV 61H,#00H

GADDMINTUE1: MOV DS1302_ADDR,#82H ;分值送1302 MOV DS1302_DATA,61H LCALL WRITE JNB P1.1,SETG10 JNB P1.2,GADDHOUR AJMP SETG9

GADDHOUR: MOV R7,62H ;小时加1 LCALL ADD1 MOV 62H,A

CJNE A,#24H,GADDHOUR1 MOV 62H,#00H

GADDHOUR1: MOV DS1302_ADDR,#84H ;小时值送1302 MOV DS1302_DATA,62H LCALL WRITE MOV R0,62H

LCALL DIVIDE ;小时分离送显示缓冲 MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2 WAITT5: LCALL DISPLAY JNB P1.2,WAITT5 AJMP SETG9

SETG10: SETB 0EH ;调分时闪标志 GWAIT10: LCALL DISPLAY JNB P1.1,GWAIT10 SETG11: LCALL DISPLAY JNB P1.1,SETGOUT JNB P1.2,GADDMINTUE

MOV R0,61H

LCALL DIVIDE ; MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2 WAITT6: LCALL DISPLAY JNB P1.2,WAITT6 AJMP SETG11 SETGOUT: LCALL DISPLAY JNB P1.1,SETGOUT LCALL GENGXIN MOV DS1302_ADDR,#80H MOV DS1302_DATA,#00H

LCALL WRITE

MOV DS1302_ADDR,#8EH

MOV LCALL WRITE CLR 08H CLR 09H CLR 0AH CLR 0BH CLR 0CH CLR 0D

27

分分离送显示缓冲 ;1302晶振开始振荡

DS1302_DATA,#80H ;禁止写入1302

基于51,52单片机的电子万年历设计(经典)

MOVDS1302_ADDR,#89H;READOUTMONTHLCALLREADMOVMONTH,DS1302_DATAMOVDS1302_ADDR,#87H;READOUTDAYLCALLREAD<
推荐度:
点击下载文档文档为doc格式
9yswb9xkwe9ersa9r17v
领取福利

微信扫码领取福利

微信扫码分享