START: ;初值 LCALL ZJ SETB EA
MOV SCON,#00H ; 串行输出,方式0 MOV TMOD,#10H ;计数器1,方式1 MOV TL1,#00H MOV TH1,#00H MOV 32H,#8EH
MOV 31H,#00H ;允许写1302 LCALL WRITE MOV 32H,#90H
MOV 31H,#0A6H ;1302充电,充电电流1.1MA LCALL WRITE
;主程序~~~~~~~~~~~~~~~~~~~~~ MAIN1:
MOV 32H,#8DH ;读出年 LCALL READ MOV year,31H
MOV 32H,#8BH ;读出星期 LCALL READ MOV week,31H
MOV 32H,#89H ;读出月 LCALL READ MOV month,31H MOV 32H,#87H ;读出日
LCALL READ MOV day,31H
MOV 32H,#85H ;读出小时 LCALL READ MOV hour,31H
MOV 32H,#83H ;读出分钟 LCALL READ MOV mintue,31H MOV 32H,#81H ;读出秒 LCALL READ MOV second,31H
;~~~~~~~~~~~~分离缓存~~~~~~~~ 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 MOV 76H,R1 MOV 46H,R1 MOV 77H,R2 MOV 47H,R2
MOV R0,hour ;小时分离,送显示缓存 LCALL DIVIDE MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2
MOV R0,mintue ;分钟分离,送显示缓存 LCALL DIVIDE MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2
MOV R0,second ;秒分离,送显示缓存 LCALL DIVIDE MOV 70H,R1 MOV 40H,R1 MOV 71H,R2 MOV 41H,R2
CLR EA LCALL TOUTOU SETB EA LCALL DISPLAY
LCALL GENGXIAN ;更新农历程序 JNB P0.1,SETG111 JNB F0,SSS
setb P0.4 ;非闰月,则p0.4清零,指示灯亮 LJMP MAIN1 SETG111: LJMP SETG SSS:
clr P0.4 ;闰月,则p0.4置位,指示灯不亮 LJMP MAIN1
;~~~~~~~~~~~~~~ 温度 TOUTOU: LCALL CHUSHI LCALL RDTEMP MOV A,TEMPL ANL A,# B MOV TEMPL,A MOV A,TEMPH ANL A,# B ORL A,TEMPL SWAP A