CONFIG12 EQU 7FH TEMPH EQU 21H TEMPL EQU 20H REG2 EQU 22H REG3 EQU 23H REG4 EQU 24H DAT EQU P0.7 SCLK EQU P3.4 IO EQU P3.3 RST EQU P3.2 year DATA 66H month DATA 65H week DATA 64H day DATA 63H hour DATA 62H minute DATA 61H second DATA 60H DS1302_ADDR DATA 32H DS1302_DATA DATA 31H bbbit p3.7 XSOUT BIT P3.6 ORG0000H LJMP START ORG001BH LJMP INTT1 START: ;初值 LCALL ZJ SETB EA MOVTMOD,#10H ;計(jì)數(shù)器1,方式1 MOVTL1,#00H MOVTH1,#00H MOV32H,#8EH MOV31H,#00H ;允許寫1302 LCALL WRITE MOV32H,#90H MOV31H,#0A6H ;1302充電,充電電流1.1MA LCALL WRITE ;主程序~~~~~~~~~~~~~~~~~~~~~ MAIN1: MOV32H,#8DH ;讀出年 LCALL READ MOVyear,31H MOV32H,#8BH ;讀出星期 LCALL READ MOVA,31H DECA MOVweek,A MOV32H,#89H ;讀出月 LCALL READ MOVmonth,31H MOV32H,#87H ;讀出日 LCALL READ MOVday,31H MOV32H,#85H ;讀出小時 LCALL READ MOVhour,31H MOV32H,#83H ;讀出分鐘 LCALL READ MOVminute,31H MOV32H,#81H ;讀出秒 LCALL READ MOVsecond,31H ;~~~~~~~~~~~~分離緩存~~~~~~~~ MOV R0,year ;年分離,送顯示緩存 LCALL DIVIDE MOV7BH,R1 MOV4BH,R1 MOV7CH,R2 MOV4CH,R2 MOV78H,week MOV48H,week MOVR0,month ;月分離,送顯示緩存 LCALL DIVIDE MOV79H,R1 MOV49H,R1 MOV7AH,R2 MOV4AH,R2 MOVR0,day ;日分離,送顯示緩存 LCALL DIVIDE MOV76H,R1 MOV46H,R1 MOV77H,R2 MOV47H,R2 MOVR0,hour ;小時分離,送顯示緩存 LCALL DIVIDE MOV74H,R1 MOV44H,R1 MOV75H,R2 MOV45H,R2 MOVR0,minute ;分鐘分離,送顯示緩存 LCALL DIVIDE MOV72H,R1 MOV42H,R1 MOV73H,R2 MOV43H,R2 MOVR0,second ;秒分離,送顯示緩存 LCALL DIVIDE MOV70H,R1 MOV40H,R1 MOV71H,R2 MOV41H,R2 CLREA LCALL TOUTOU SETB EA LCALL DISPLAY LCALL GENGXIAN ;更新農(nóng)歷程序 JNBP0.1,SETG111 JNBF0,SSS CLRP0.4 ;非閏月,則p0.4清零,指示燈亮 LJMP MAIN1 SETG111: LJMP SETG SSS: SETB P0.4 ;閏月,則p0.4置位,指示燈不亮 LJMP MAIN1 ;~~~~~~~~~~~~~~~~~~~~~~~~~ 溫度 TOUTOU: LCALL CHUSHI LCALL RDTEMP MOVA,TEMPL ANLA,#11110000B MOVTEMPL,A MOVA,TEMPH ANLA,#00000111B ORLA,TEMPL SWAP A MOV25H,A MOVA,25H MOVB,#64H DIVAB MOVA,B MOVB,#0AH DIVAB SWAP A ORLA,B MOV10H,A RET CHUSHI: LCALL RESET MOVA,#0CCH LCALL WRITE111 MOVA,#4EH LCALL WRITE111 MOVA,#CONFIG12 LCALL WRITE111 RET RDTEMP: LCALL RESET MOVA,#0CCH LCALL WRITE111 MOVA,#44H LCALL WRITE111 LCALL DL1MS LCALL RESET MOVA,#0CCH LCALL WRITE111 MOVA,#0BEH LCALL WRITE111 LCALL ERAD111 MOVTEMPL,A LCALL ERAD111 MOVTEMPH,A RET RESET: LA: SETB DAT MOV52H,#200 LB: CLRDAT DJNZ 52H,LB SETB DAT MOV52H,#30 LC: DJNZ 52H,LC CLRC ORLC,DAT JCLB MOV58H,#80 LD: ORLC,DAT JCLP DJNZ 58H,LD SJMP LA LP: MOV52H,#250 LF: DJNZ 52H,LF RET WRITE111: MOV53H,#8 W51HA: SETB DAT MOV54H,#8 RRCA CLRDAT W52HA: DJNZ 54H,W52HA MOVDAT,C MOV54H,#30 W53HA: DJNZ 54H,W53HA DJNZ 53H,W51HA SETB DAT RET ERAD111: CLREA MOV58H,#8 RD1A: CLRDAT MOV54H,#6 NOP SETB DAT RD2A: DJNZ 54H,RD2A MOVC,DAT RRCA MOV55H,#30 RD3A: DJNZ 55H,RD3A DJNZ 58H,RD1A SETB DAT RET ;公歷設(shè)置程序~~~~~~ SETG : SETB TR1 SETB ET1 MOV32H,#8EH MOV31H,#00H ;允許寫1302 LCALL WRITE MOV32H,#80H MOV31H,#80H ;1302停止振蕩 LCALL WRITE GWAIT: ;~ LCALL DISPLAY JNBP0.1,GWAIT SETG1: LCALL DISPLAY JNBP0.1,SETG2 JNBP0.2,GADDYEAR JNBP0.3,JIANYEAR AJMP SETG1 GADDYEAR: MOVR7,66H ;年加一 LCALL ADD1 MOV66H,A CJNE A,#51H,GADDYEAR1 MOV66H,#00H AJMP GADDYEAR1 JIANYEAR: MOVR7,66H ;年減一 LCALL JIAN1 MOV66H,A CJNE A,#00H,GADDYEAR1 MOV66H,#51H GADDYEAR1: MOV32H,#8CH ;年值送人1302 MOV31H,66H LCALL WRITE MOVR0,66H LCALL DIVIDE ;年分離送顯示緩存 MOV4BH,R1 MOV7BH,R1 MOV4CH,R2 MOV7CH,R2 WAITT1: ;~~~~~~~ LCALL DISPLAY JNBP0.2,WAITT1 JNBP0.3,WAITT1 AJMP SETG1 SETG2: SETB 0AH ;調(diào)月時閃標(biāo)志 GWAIT2: LCALL DISPLAY JNBP0.1,GWAIT2 SETG3: LCALL DISPLAY JNBP0.1,SETG4 JNBP0.2,GADDMONTH JNBP0.3,JIANMONTH AJMP SETG3 GADDMONTH: MOVR7,65H ;月加一 LCALL ADD1 MOV65H,A CJNE A,#13H,GADDMONTH1 MOV65H,#01H AJMP GADDMONTH1 JIANMONTH: MOVR7,65H ;月減一 LCALL JIAN1 MOV65H,A CJNE A,#00H,GADDMONTH1 MOV65H,#12H GADDMONTH1: MOV32H,#88H ;月值送人1302 MOV31H,65H LCALL WRITE MOVR0,65H LCALL DIVIDE ;月分離,送顯示緩存 MOV79H,R1 MOV49H,R1 MOV7AH,R2 MOV4AH,R2 WAITT2: LCALL DISPLAY JNBP0.2,WAITT2 JNBP0.3,WAITT2 AJMP SETG3 SETG4: SETB 0BH ;調(diào)日時閃標(biāo)志 GWAIT4: LCALL DISPLAY JNBP0.1,GWAIT4 SETG5: LCALL DISPLAY JNBP0.1,SETG6 JNBP0.2,GADDDAY JNBP0.3,JIANDAY AJMP SETG5 GADDDAY: MOVR7,63H ;日加一 LCALL ADD1 MOV63H,A CJNE A,#32H,GADDDAY1 MOV 63H,#01H JIANDAY: MOVR7,63H ;日減一 LCALL JIAN1 MOV63H,A CJNE A,#00H,GADDDAY1 MOV 63H,#31H GADDDAY1: MOV32H,#86H ;日值送人1302 MOV31H,63H LCALL WRITE MOVR0,63H LCALL DIVIDE ;日分離,送顯示緩存 MOV76H,R1 MOV46H,R1 MOV77H,R2 MOV47H,R2 WAITT3: ;~~~ LCALL DISPLAY JNBP0.2,WAITT3 JNBP0.3,WAITT3 AJMP SETG5 SETG6: SETB 0CH ;調(diào)星期時閃標(biāo)志 GWAIT6: LCALL DISPLAY JNBP0.1,GWAIT6 SETG7: LCALL DISPLAY JNBP0.1,SETG8 JNBP0.2,GADDWEEK JNBP0.3,JIANWEEK AJMP SETG7 GADDWEEK: MOVR7,64H ;星期加一 LCALL ADD1 MOV64H,A CJNE A,#07H,GADDWEEK1 MOV 64H,#00H AJMP GADDWEEK1 JIANWEEK: MOVR7,64H ;星期減一 LCALL JIAN1 MOV64H,A CJNE A,#00H,GADDWEEK1 MOV 64H,#06H GADDWEEK1: MOV32H,#8AH MOV31H,64H ;星期值送人1302 LCALL WRITE MOVR0,64H LCALL DIVIDE ;星期值分離送顯示緩存 MOV48H,R1 MOV78H,R1 WAITT4: ;~~~~ LCALL DISPLAY JNBP0.2,WAITT4 JNBP0.3,WAITT4 AJMP SETG7 SETG8: SETB 0DH ;調(diào)小時時閃標(biāo)志 GWAIT8: LCALL DISPLAY JNBP0.1,GWAIT8 SETG9: LCALL DISPLAY JNBP0.1,SETG10 JNBP0.2,GADDHOUR JNBP0.3,JIANHOUR AJMP SETG9 GADDHOUR: MOVR7,62H ;小時加一 LCALL ADD1 MOV62H,A CJNE A,#24H,GADDHOUR1 MOV62H,#00H AJMP GADDHOUR1 JIANHOUR: MOVR7,62H ;小時減一 LCALL JIAN1 MOV62H,A CJNE A,#00H,GADDHOUR1 MOV62H,#23H GADDHOUR1: MOV32H,#84H ;小時值送人1302 MOV31H,62H LCALL WRITE MOVR0,62H LCALL DIVIDE ;小時值分離送顯示緩存 MOV74H,R1 MOV44H,R1 MOV75H,R2 MOV45H,R2 WAITT5: ;~~~~~ LCALL DISPLAY JNBP0.2,WAITT5 JNBP0.3,WAITT5 AJMP SETG9 SETG10: SETB 0EH ;調(diào)分時候閃標(biāo)志 GWAIT10: LCALL DISPLAY JNBP0.1,GWAIT10 SETG11: LCALL DISPLAY JNBP0.1,SETGOUT JNBP0.2,GADDminute JNBP0.3,JIANminute AJMP SETG11 GADDminute: MOVR7,61H ;分鐘加一 LCALL ADD1 MOV61H,A CJNE A,#60H,GADDminute1 MOV61H,#00H AJMP GADDminute1 JIANminute: MOVR7,61H ;分鐘減一 LCALL JIAN1 MOV61H,A CJNE A,#00H,GADDminute1 MOV61H,#59H GADDminute1: MOV32H,#82H ;分鐘值送人1302 MOV31H,61H LCALL WRITE MOVR0,61H LCALL DIVIDE ;分鐘值分離送顯示緩存 MOV72H,R1 MOV42H,R1 MOV73H,R2 MOV43H,R2 WAITT6: LCALL DISPLAY JNBP0.2,WAITT6 JNBP0.3,WAITT6 AJMP SETG11 SETGOUT: LCALL DISPLAY JNBP0.1,SETGOUT LCALL GENGXIAN MOV32H,#80H MOV31H,#00H ;1302晶振開始振蕩 LCALL WRITE MOV32H,#8EH MOV31H,#80H ;禁止寫入1302 LCALL WRITE CLR08H CLR09H CLR0AH CLR0BH CLR0CH CLR0DH CLR0EH CLR0FH CLRET1 ;關(guān)閃中斷 CLRTR1 LJMP MAIN1 ;;閃動調(diào)時程序~~~~~~~~~~~~~~~~~~~~~~~~~~~ INTT1: PUSH ACC PUSH PSW GFLASH: CPL0FH JB0FH,GFLASH1 MOV7CH,4CH ;全部顯示 MOV7BH,4BH MOV7AH,4AH MOV79H,49H MOV78H,48H MOV77H,47H MOV76H,46H MOV75H,45H MOV74H,44H MOV73H,43H MOV72H,42H MOV71H,41H MOV70H,40H GFLASHOUT: POPPSW POPACC RETI GFLASH1: JB0AH,GFLASH2 ;調(diào)年閃 MOV7CH,#0FH MOV7BH,#0FH AJMP GFLASHOUT GFLASH2: JB0BH,GFLASH3 ;調(diào)月閃 MOV7AH,#0FH MOV79H,#0FH AJMP GFLASHOUT GFLASH3: JB0CH,GFLASH4 ;調(diào)日閃 MOV77H,#0FH MOV76H,#0FH AJMP GFLASHOUT GFLASH4: JB0DH,GFLASH5 ;調(diào)星期閃 MOV78H,#0FH AJMP GFLASHOUT GFLASH5: JB0EH,GFLASH6 ;調(diào)小時閃 MOV75H,#0FH MOV74H,#0FH AJMP GFLASHOUT GFLASH6: MOV73H,#0FH ;調(diào)分鐘閃 MOV72H,#0FH AJMP GFLASHOUT ;加一程序~~~~~~~~~~~~~~~~~~~~~~~~~ ADD1: MOVA,R7 ADDA,#1 DAA RET ;減一程序~~~~~~~~~~~~~~~~~~~~~~~~~ JIAN1: MOVA,R7 DECA CJNE A,#4FH,KK1 MOVA,#49H KK1: CJNE A,#3FH,KK2 MOVA,#39H KK2: CJNE A,#2FH,KK3 MOVA,#29H KK3: CJNE A,#1FH,KK4 MOVA,#19H KK4: CJNE A,#0FH,KK5 MOVA,#09H KK5: RET ;分離程序~~~~~~~~~~~~~~~~~~~~~~~~~ DIVIDE: MOVA,R0 ANLA,#0FH MOVR1,A MOVA,R0 SWAP A ANLA,#0FH MOVR2,A RET ;寫1302程序~~~~~~~ WRITE: CLRSCLK NOP SETB RST NOP MOVA,32H MOVR4,#8 WRITE1: RRCA ;送地址給1302 NOP NOP CLRSCLK NOP NOP NOP MOVIO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE1 CLRSCLK NOP MOVA,31H MOVR4,#8 WRITE2: RRCA NOP ;送數(shù)據(jù)給1302 CLRSCLK NOP NOP MOVIO,C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4,WRITE2 CLRRST RET ;讀1302程序~~~~~~~~~~~~~~~~~~~~~~~~~ READ: CLRSCLK NOP NOP SETB RST NOP MOVA,32H MOVR4,#8 READ1: RRCA ;送地址給1302 NOP MOVIO,C NOP NOP NOP SETB SCLK NOP NOP NOP CLRSCLK NOP NOP DJNZ R4,READ1 MOVR4,#8 READ2: CLRSCLK NOP ;從1302中讀出數(shù)據(jù) NOP NOP MOVC,IO NOP NOP NOP NOP NOP RRCA NOP NOP NOP NOP SETB SCLK NOP DJNZ R4,READ2 MOV31H,A CLRRST RET ;BCD碼轉(zhuǎn)換為10進(jìn)制程序~~~~~ BCD_10: MOVA,R0 ANLA,#0FH MOVR1,A ;高位×10,加低位 MOVA,R0 SWAP A ANLA,#0FH MOVB,#10 MULAB ADDA,R1 MOVR0,A RET ;查一年數(shù)據(jù)程序~~~~~~~~~~~~~~~~ CHECKMONTH: LCALL BCD_10 MOVA,R0 MOVB,#04 MULAB MOVR1,A MOVDPTR,#TAB MOVC A,@A+DPTR MOVR7,A ;第一字節(jié)送R7 INCR1 MOVA,R1 MOVC A,@A+DPTR MOVR6,A ;第二字節(jié)送R6 INCR1 MOVA,R1 MOVC A,@A+DPTR MOVR5,A ;第三字節(jié)送R6 INCR1 MOVA,R1 MOVC A,@A+DPTR MOVR4,A ;第四字節(jié)送R4 RET ;;;;;自動更新農(nóng)歷;;; GENGXIAN:MOV R2,#00H MOV R3,#00H MOV A,month CJNE A,#01H,GM2 MOV R0,day ;當(dāng)前月為一月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制,送R2 MOV A,R0 MOV R2,A AJMP TIAOZHENG1 GM2:CJNE A,#02H,GM3 MOV R0,day ;當(dāng)前月為二月 LCALL BCD_10 ;;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加31,送R2 ADD A,#31 MOV R2,A AJMP TIAOZHENG1 GM3: CJNE A,#03H,GM4 MOV R0,day ;當(dāng)前月為三月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加59,送R2 ADD A,#59 MOV R2,A AJMP TIAOZHENG1 GM4: CJNE A,#04H,GM5 MOV R0,day ;當(dāng)前月為四月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加90,送R2 ADD A,#90 MOV R2,A AJMP TIAOZHENG1 GM5: CJNE A,#05H,GM6 MOV R0,day ;當(dāng)前月為五月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加120,送R2 ADD A,#120 MOV R2,A AJMP TIAOZHENG1 GM6: CJNE A,#06H,GM7 MOV R0,day ;當(dāng)前月為六月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加151,送R2 ADD A,#151 MOV R2,A AJMP TIAOZHENG1 GM7: CJNE A,#07H,GM8 MOV R0,day ;當(dāng)前月位七月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加181,送R2 ADD A,#181 MOV R2,A AJMP TIAOZHENG1 GM8: CJNE A,#08H,GM9 MOV R0,day ;當(dāng)前月為八月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加212,送R2 ADD A,#212 MOV R2,A AJMP TIAOZHENG1 GM9: CJNE A,#09H,GM10 MOV R0,day ;當(dāng)前月為九月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加243 CLR C ADD A,#243 JC GGG MOV R2,A ;A沒有溢出,送R2 AJMP TIAOZHENG1 GGG: MOV R3,#0FFH ;A溢出,A加一送R2 INC A ;R3中送#0ffh MOV R2,A AJMP TIAOZHENG1 GM10: CJNE A,#10H,GM11 MOV R0,day ;當(dāng)前月為10月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加18,送R2 ADD A,#18 ;R3中送#0FFH MOV R2,A MOV R3,#0FFH AJMP TIAOZHENG1 GM11: CJNE A,#11H,GM12 MOV R0,day ;當(dāng)前月為11月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加49,送R2 ADD A,#49 ;R3中送#0FFH MOV R2,A MOV R3,#0FFH AJMP TIAOZHENG1 GM12: MOV R0,day ;當(dāng)前月為12月 LCALL BCD_10 ;當(dāng)前日轉(zhuǎn)換為10進(jìn)制, MOV A,R0 ;再加79,送R2 ADD A,#79 ;R3中送#0FFH MOV R2,A MOV R3,#0FFH AJMP TIAOZHENG1 TIAOZHENG1: MOV A,year MOV B,#04 DIV AB MOV A,B JNZ GGG1 MOV A,65H ;當(dāng)前年為閏年 CJNE A,#01H,AAAA AJMP GGG1 ;當(dāng)前月是1 AAAA: CJNE A,#02H,BBBB AJMP GGG1 ;當(dāng)前月是2 BBBB: CJNE R2,#0FFH,GGG2 MOV R3,#0FFH ;當(dāng)前月不是1和2, MOV R2,#01H ;R1和R2總和加一 AJMP GGG1 GGG2: INC R2 GGG1: MOV R0,year ;查一年數(shù)據(jù) LCALL CHECKMONTH MOV A,R2 CLR C SUBB A,R7 MOV P2.7,C CJNE A,#01H,GGG3 MOV R2,#01H MOV A,R3 CJNE A,#00H,NEW1 MOV 57H,#01H ;R2和R3總和減R7 MOV 56H,#01H ;為0,則為春節(jié) LJMP S_PLAY GGG3: CJNE A,#00H,GGG6 MOV R2,A AJMP OLD GGG6: JNB P2.7,NEW2 MOV A,R7 CLR C SUBB A,R2 MOV R7,A CJNE R3,#0FFH,GGG5 MOV A,R3 CLR C SUBB A,R7 MOV R2,A MOV R3,#00H AJMP NEW GGG5: MOV A,R7 MOV R2,A AJMP OLD NEW1: MOV R2,#0FFH MOV R3,#01H AJMP NEW NEW2: MOV R2,A MOV A,R3 CJNE A,#0FFH,GGG4 MOV A,R2 MOV R3,A MOV R2,#0FFH GGG4: AJMP NEW ;OLD 農(nóng)歷為公歷的前一年 OLD: MOV A,year DEC A MOV R0,A LCALL CHECKMONTH MOV A,R2 CLR C SUBB A,#29 MOV P2.7,C MOV R6,A MOV A,R5 JB ACC.0,AAA ;12月為小月,轉(zhuǎn)到AAA MOV A,R2 CLR C SUBB A,#30 MOV P2.7,C MOV R6,A AAA: MOV A,R6 CJNE A,#00H,BBB MOV 56H,#29H ;為0,則為11月最后一天 MOV A,R5 ;小月為11月29 JB ACC.1,CCC MOV 56H,#30H ;大月為11月30 CCC: MOV 57H,#11H LJMP S_PLAY BBB: JNB P2.7, DDD MOV A,#29 ; CY位置位,位12月 CLR C SUBB A,R2 MOV R4,A MOV A,R5 JB ACC.0,EEE MOV A,#30 CLR C SUBB A,R2 MOV R4,A EEE: MOV A,R4 MOV R0,A LCALL D_BCD MOV 56H,A MOV 57H,#12H LJMP S_PLAY DDD: MOV A,#29 ;CY為0,為11月 CLR C SUBB A,R4 MOV R1,A MOV A,R5 JB ACC.1, FFF MOV A,#30 CLR C SUBB A,R4 MOV R1,A FFF: MOV A,R1 MOV R0,A LCALL D_BCD MOV 56H,A MOV 57H,#11H LJMP S_PLAY ;NEW此時R2中的值為FFH時 ; R3有值,否則為0 NEW: NOP M1: MOVA,R2 ;R2減一月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R6 JBACC.6,SM11 MOVA,R2 CLRC SUBB A,#30 MOVR1,A SM11: JCSM12 MOVA,R1 ;R2減1月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)二月 AJMP M2 SM12: CJNE R3,#00H,M13 ;R2減1月天數(shù) LJMP Y1 ;不夠減,判R3為0否 M13: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓一月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y1 MOVR3,#00H AJMP M1 M2: CLRC ;R2減一月天數(shù),夠減 MOVA,R2 ;轉(zhuǎn)三月 SUBB A,#29 MOVR1,A MOVA,R6 JBACC.5,M21 MOVA,R2 CLRC SUBB A,#30 MOVR1,A M21: JCM22 MOVA,R1 ;R2減2月天數(shù),夠減 MOVR2,A AJMP MM2 M22: CJNE R3,#00H,M23 ;R2減2月天數(shù) LJMP Y2 ;不夠減,判,R3為0否 M23: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓二月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y2 MOVR3,#00H AJMP M2 MM2: LCALL CHECKRE ;查2月,如果不為閏月 CJNE A,#02H,M3 ;轉(zhuǎn)3月 RM2: MOVA,R4 ANLA,#0FH JNZRM21 MOVA,R2 CLRC SUBB A,#30 MOVR1,A AJMP RM22 RM21: MOVA,R2 CLRC SUBB A,#29 MOVR1,A RM22: JCRM23 MOVA,R1 ;R2減閏2月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)3月 AJMP M3 RM23: CJNE R3,#00H,RM24 ;R2減閏2月天數(shù) LJMP RY2 ;不夠減,判,R3為0否 RM24: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓閏2月減 MOVR3,#00H ;還不夠,則轉(zhuǎn)RY2 AJMP RM2 M3: MOVA,R2 ;R2減3月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R6 JBACC.4,M31 CLRC MOVA,R2 SUBB A,#30 MOVR1,A M31: JCM32 MOVA,R1 ;R2減3月天數(shù),夠減 MOVR2,A AJMP MM3 M32: CJNE R3,#00H,M33 ;R2減3月天數(shù) LJMP Y3 ;不夠減,判,R3為0否 M33: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓3月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y3 MOVR3,#00H AJMP M3 MM3: LCALL CHECKRE ;查3月,如果不為閏月 CJNE A,#03H,M4 ;轉(zhuǎn)4月 RM3: MOVA,R4 ANLA,#0FH ;R2減閏3月天數(shù) JNZRM31 MOVA,R2 CLRC SUBB A,#30 MOVR1,A AJMP RM32 RM31: MOVA,R2 CLRC SUBB A,#29 MOVR1,A RM32: JCRM33 MOVA,R1 ;R2減閏3月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)4月 AJMP M4 RM33: CJNE R3,#00H,RM34 ;R2減閏3月天數(shù) LJMP RY3 ;不夠減,判,R3為0否 RM34: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓閏3月減 MOVR2,A ;還不夠,則轉(zhuǎn)RY3 MOVR3,#00H AJMP RM3 M4: MOVA,R2 CLRC ;R2減4月天數(shù) SUBB A,#29 MOVR1,A MOVA,R6 JBACC.2,M41 CLRC MOVA,R2 SUBB A,#30 MOVR1,A M41: JCM42 MOVA,R1 ;R2減4月天數(shù),夠減 MOVR2,A AJMP MM4 M42: CJNE R3,#00H,M43 ;R2減4月天數(shù) LJMP Y4 ;不夠減,判,R3為0否 M43: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓4月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y4 MOVR3,#00H AJMP M4 MM4: LCALL CHECKRE ;查4月,如果不為閏月 CJNE A,#04H,M5 ;轉(zhuǎn)5月 RM4: MOVA,R4 ANLA,#0FH ;R2減閏4月天數(shù) JNZRM41 MOVA,R2 CLRC SUBB A,#30 MOVR1,A AJMP RM42 RM41: MOVA,R2 CLRC SUBB A,#29 MOVR1,A RM42: JCRM43 MOVA,R1 ;R2減閏4月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)5月 AJMP M5 RM43: CJNE R3,#00H,RM44 ;R2減閏4月天數(shù) LJMP RY4 ;不夠減,判,R3為0否 RM44: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓閏4月減 MOVR2,A MOVR3,#00H ;還不夠,則轉(zhuǎn)Y4 AJMP RM4 M5: MOVA,R2 ;R2減5月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R6 JBACC.1,M51 MOVA,R2 CLRC SUBB A,#30 MOVR1,A M51: JCM52 MOVA,R1 ;R2減5月天數(shù),夠減 MOVR2,A AJMP MM5 M52: CJNE R3,#00H,M53 ;R2減5月天數(shù) LJMP Y5 ;不夠減,判,R3為0否 M53: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓5月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y5 MOVR3,#00H LJMP M5 MM5: LCALL CHECKRE ;查5月,如果不為閏月 CJNE A,#05H,M6 ;轉(zhuǎn)6月 RM5: MOVA,R4 ;R2減閏5月天數(shù) ANLA,#0FH JNZRM51 MOVA,R2 CLRC SUBB A,#30 MOVR1,A LJMP RM52 RM51: MOVA,R2 CLRC SUBB A,#29 MOVR1,A RM52: JCRM53 MOVA,R1 ;R2減閏5月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)6月 LJMP M6 RM53: CJNE R3,#00H,RM54 ;R2減閏5月天數(shù) LJMP RY5 ;不夠減,判,R3為0否 RM54: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓5月減 MOVR2,A ;還不夠,則轉(zhuǎn)RY5 MOVR3,#00H LJMP RM5 M6: MOVA,R2 ;R2減6月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R6 JBACC.0,M61 MOVA,R2 CLRC SUBB A,#30 MOVR1,A M61: JCM62 MOVA,R1 ;R2減6月天數(shù),夠減 MOVR2,A LJMP MM6 M62: CJNE R3,#00H,M63 ;R2減6月天數(shù) LJMP Y6 ;不夠減,判,R3為0否 M63: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓6月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y6 MOVR3,#00H LJMP M6 MM6: LCALL CHECKRE ;查6月,如果不為閏月 CJNE A,#06H,M7 ;轉(zhuǎn)7月 RM6: MOVA,R4 ANLA,#0FH ;R2減閏6月天數(shù) JNZRM61 MOVA,R2 CLRC SUBB A,#30 MOVR1,A LJMP RM62 RM61: MOVA,R2 CLRC SUBB A,#29 MOVR1,A RM62: JCRM63 MOVA,R1 ;R2減閏6月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)7月 LJMP M7 RM63: CJNE R3,#00H,RM64 ;R2減閏6月天數(shù) LJMP RY6 ;不夠減,判,R3為0否 RM64: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓閏6月減 MOVR2,A ;還不夠,則轉(zhuǎn)RY6 MOVR3,#00H LJMP RM6 M7: MOVA,R2 ;R2減7月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R5 JBACC.6,M71 MOVA,R2 CLRC SUBB A,#30 MOVR1,A M71: JCM72 MOVA,R1 ;R2減7月天數(shù),夠減 MOVR2,A LJMP MM7 M72: CJNE R3,#00H,M73 ;R2減7月天數(shù) LJMP Y7 ;不夠減,判,R3為0否 M73: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓6月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y7 MOVR3,#00H LJMP M7 MM7: LCALL CHECKRE ;查7月,如果不為閏月 CJNE A,#07H,M8 ;轉(zhuǎn)8月 RM7: MOVA,R4 ANLA,#0FH ;R2減閏7月天數(shù) JNZRM71 MOVA,R2 CLRC SUBB A,#30 MOVR1,A LJMP RM72 RM71: MOVA,R2 CLRC SUBB A,#29 MOVR1,A RM72: JCRM73 MOVA,R1 ;R2減閏7月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)8月 LJMP M8 RM73: CJNE R3,#00H,RM74 ;R2減閏7月天數(shù) LJMP RY7 ;不夠減,判,R3為0否 RM74: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓閏7月減 MOVR2,A ;還不夠,則轉(zhuǎn)RY7 MOVR3,#00H LJMP RM7 M8: MOVA,R2 ;R2減8月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R5 JBACC.5,M81 MOVA,R2 CLRC SUBB A,#30 MOVR1,A M81: JCM82 MOVA,R1 ;R2減8月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)9月 LJMP M9 M82: CJNE R3,#00H,M83 ;R2減8月天數(shù) LJMP Y8 ;不夠減,判,R3為0否 M83: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓8月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y8 MOVR3,#00H LJMPM8 M9: MOVA,R2 ;R2減9月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R5 JBACC.4,M91 MOVA,R2 CLRC SUBB A,#30 MOVR1,A M91: JCM92 MOVA,R1 ;R2減9月天數(shù),夠減 MOVR2,A LJMP MM9 M92: CJNE R3,#00H,M93 ;R2減9月天數(shù) LJMP Y9 ;不夠減,判,R3為0否 M93: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓9月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y9 MOVR3,#00H LJMP M9 MM9: LCALL CHECKRE ;查9月,如果不為閏月 CJNE A,#09H,M10 ;轉(zhuǎn)10月 RM9: MOVA,R4 ;R2減閏9月天數(shù) ANLA,#0FH JNZRM91 MOVA,R2 CLRC SUBB A,#30 MOVR1,A LJMP RM92 RM91: MOVA,R2 CLRC SUBB A,#29 MOVR1,A RM92: JCRM93 MOVA,R1 ;R2減閏9月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)10月 LJMP M10 RM93: CJNE R3,#00H,RM94 ;R2減閏9月天數(shù) LJMP RY9 ;不夠減,判,R3為0否 RM94: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓閏9月減 MOVR2,A ;還不夠,則轉(zhuǎn)RY9 MOVR3,#00H LJMP RM9 M10: MOVA,R2 ;R2減10月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R5 JBACC.2,M101 MOVA,R2 CLRC SUBB A,#30 MOVR1,A M101: JCM102 MOVA,R1 ;R2減10月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)11月 LJMP M11 M102: CJNE R3,#00H,M103 ;R2減10月天數(shù) LJMP Y10 ;不夠減,判,R3為0否 M103: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓10月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y10 MOVR3,#00H LJMP M10 M11: MOVA,R2 ;R2減11月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R5 JBACC.1,M111 MOVA,R2 CLRC SUBB A,#30 MOVR1,A M111: JCM112 MOVA,R1 ;R2減11月天數(shù),夠減 MOVR2,A ;轉(zhuǎn)12月 LJMP M12 M112: CJNE R3,#00H,M113 ;R2減11月天數(shù) LJMP Y11 ;不夠減,判,R3為0否 M113: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓11月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y11 MOVR3,#00H LJMP M11 M12: MOVA,R2 ;R2減12月天數(shù) CLRC SUBB A,#29 MOVR1,A MOVA,R5 JBACC.0,M121 CLRC MOVA,R2 SUBB A,#30 MOVR1,A M121: CJNE R3,#00H,M122 ;R2減12月天數(shù) LJMP Y12 ;不夠減,判,R3為0否 M122: MOVA,R2 ;不為0,R3加到R2中 ADDA,R3 ;再讓12月減 MOVR2,A ;還不夠,則轉(zhuǎn)Y12 MOVR3,#00H LJMP M12 Y1: MOVA,R2 MOVR0,A ;R2中為日的值 LCALL D_BCD MOV56H,A MOV57H,#01H CLRF0 ;非閏月 LJMP S_PLAY Y2: CJNE R2,#00H,Y21 MOVA,R6 ;R2中為0,則為前一個月 MOV56H,#29H ;的的最后一天 JBACC.6,Y22 MOV56H,#30H Y22: MOV57H,#01H CLRF0 LJMP S_PLAY Y21: MOVA,R2 MOVR0,A ;R2中為日的值 LCALL D_BCD MOV56H,A MOV57H,#02H CLRF0 LJMP S_PLAY RY2: CJNE R2,#00H,RY21 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R6 ;的的最后一天 JBACC.5,RY22 MOV56H,#30H RY22: MOV57H,#02H CLRF0 LJMP S_PLAY RY21: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#02H SETB F0 ;閏月 LJMP S_PLAY Y3: CJNE R2,#00H,Y31 LCALL CHECKRE ;查前一個月是否為閏月 CJNE A,#02H,Y32 MOV56H,#29H ;前一個月是閏月 MOVA,R4 ANLA,#0FH ;R2中為0,則為前一個月 JNZY33 ;的的最后一天 MOV56H,#30H MOV57H,#02H SETB F0 LJMP S_PLAY Y33: MOV57H,#02H SETB F0 LJMP S_PLAY Y32: MOV56H,#29H ;前一個月不是閏月 MOVA,R6 JBACC.5,Y34 MOV56H,#30H Y34: MOV57H,#02H CLRF0 LJMP S_PLAY Y31: MOVA,R2 MOVR0,A ;R2中為日的值 LCALL D_BCD MOV56H,A MOV57H,#03H CLRF0 LJMP S_PLAY RY3: CJNE R2,#00H,RY31 MOV56H,#29H MOVA,R6 JBACC.4,RY32 ;R2中為0,則為前一個月 MOV56H,#30H ;的的最后一天 RY32: MOV57H,#03H CLRF0 LJMP S_PLAY RY31: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#03H SETB F0 LJMP S_PLAY Y4: CJNE R2,#00H,Y41 LCALL CHECKRE ;查前一個月是否為閏月 CJNE A,#03H,Y42 MOV56H,#29H ;前一個月是閏月 MOVA,R4 ;R2中為0,則為前一個月 ANLA,#0FH ;的最后一天 JNZY43 MOV56H,#30H MOV57H,#03H SETB F0 LJMP S_PLAY Y43: MOV57H,#03H SETB F0 LJMP S_PLAY Y42: MOV56H,#29H ;前一個月不是閏月 MOVA,R6 JBACC.4,Y44 MOV56H,#30H Y44: MOV57H,#03H CLRF0 LJMP S_PLAY Y41: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#04H CLRF0 LJMP S_PLAY RY4: CJNE R2,#00H,RY41 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R6 ;的的最后一天 JBACC.2,RY42 MOV 56H,#30H RY42: MOV57H,#04H CLRF0 LJMP S_PLAY RY41: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#04H SETB F0 LJMP S_PLAY Y5: CJNE R2,#00H,Y51 LCALL CHECKRE ;查前一個月是否為閏月 CJNE A,#04H,Y52 MOV56H,#29H ;前一個月是閏月 MOVA,R4 ;R2中為0,則為前一個月 ANLA,#0FH ;的最后一天 JNZY53 MOV56H,#30H MOV57H,#04H SETB F0 LJMP S_PLAY Y53: MOV57H,#04H SETB F0 LJMP S_PLAY Y52: MOV56H,#29H ;前一個月不是閏月 MOVA,R6 JBACC.2,Y54 MOV56H,#30H Y54: MOV57H,#04H CLRF0 LJMP S_PLAY Y51: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#05H CLRF0 LJMP S_PLAY RY5: CJNE R2,#00H,RY51 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R6 ;的最后一天 JBACC.1,RY52 MOV56H,#30H RY52: MOV57H,#05H CLRF0 LJMP S_PLAY RY51: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#05H SETB F0 LJMP S_PLAY Y6: CJNE R2,#00H,Y61 LCALL CHECKRE ;查前一個月是否為閏月 CJNE A,#05H,Y62 MOV56H,#29H ;前一個月是閏月 MOVA,R4 ;R2中為0,則為前一個月 ANLA,#0FH ;的最后一天 JNZY63 MOV56H,#30H MOV57H,#05H SETB F0 LJMP S_PLAY Y63: MOV57H,#05H SETB F0 LJMP S_PLAY Y62: MOV56H,#29H ;前一個月不是閏月 MOVA,R6 JBACC.1,Y64 MOV56H,#30H Y64: MOV57H,#05H CLRF0 LJMP S_PLAY Y61: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#06H CLRF0 LJMP S_PLAY RY6: CJNE R2,#00H,RY61 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R6 ;的最后一天 JBACC.0,RY62 MOV56H,#30H RY62: MOV57H,#06H CLRF0 LJMP S_PLAY RY61: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#06H SETB F0 LJMP S_PLAY Y7: CJNE R2,#00H,Y71 LCALL CHECKRE ;查前一個月是否為閏月 CJNE A,#06H,Y72 MOV56H,#29H ;前一個月是閏月 MOVA,R4 ;R2中為0,則為前一個月 ANLA,#0FH ;的最后一天 JNZY73 MOV56H,#30H MOV57H,#06H SETB F0 LJMP S_pLAY Y73: MOV57H,#06H SETB F0 LJMP S_PLAY Y72: MOV56H,#29H ;前一個月不是閏月 MOVA,R6 JBACC.0,Y74 MOV56H,#30H Y74: MOV57H,#06H CLRF0 LJMP S_PLAY Y71: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#07H CLRF0 LJMP S_PLAY RY7: CJNE R2,#00H,RY71 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R5 ;的最后一天 JBACC.6,RY72 MOV56H,#30H RY72: MOV57H,#07H CLRF0 LJMP S_PLAY RY71: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#07H SETB F0 LJMP S_PLAY Y8: CJNE R2,#00H,Y81 LCALL CHECKRE ;查前一個月是否為閏月 CJNE A,#07H,Y82 MOV56H,#29H ;前一個月是閏月 MOVA,R4 ;R2中為0,則為前一個月 ANLA,#0FH ;的最后一天 JNZY83 MOV56H,#30H MOV57H,#07H SETB F0 LJMP S_PLAY Y83: MOV57H,#07H SETB F0 LJMP S_PLAY Y82: MOV56H,#29H ;前一個月不是閏月 MOVA,R5 JBACC.6,Y84 MOV56H,#30H Y84: MOV57H,#07H CLRF0 LJMP S_PLAY Y81: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#08H CLRF0 LJMP S_PLAY Y9: CJNE R2,#00H,Y91 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R5 ;的最后一天 JBACC.5,Y92 MOV56H,#30H Y92: MOV57H,#08H CLRF0 LJMP S_PLAY Y91: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#09H CLRF0 LJMP S_PLAY RY9: CJNE R2,#00H,RY91 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R5 ;的最后一天 JBACC.4,RY92 MOV56H,#30H RY92: MOV57H,#09H CLRF0 LJMP S_PLAY RY91: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#09H SETB F0 LJMP S_PLAY Y10: CJNE R2,#00H,Y101 LCALL CHECKRE ;查前一個月是否為閏月 CJNE A,#09H,Y102 MOV56H,#29H ;前一個月是閏月 MOVA,R4 ;R2中為0,則為前一個月 ANLA,#0FH ;的最后一天 JNZY103 MOV56H,#30H MOV57H,#09H SETB F0 LJMP S_PLAY Y103: MOV57H,#09H SETB F0 LJMP S_PLAY Y102: MOV56H,#29H ;前一個月不是閏月 MOVA,R5 JBACC.4,Y104 MOV56H,#30H Y104: MOV57H,#09H CLRF0 LJMP S_PLAY Y101: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#10H CLRF0 LJMP S_PLAY Y11: CJNE R2,#00H,Y111 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R5 ;的最后一天 JBACC.2,Y112 MOV56H,#30H Y112: MOV57H,#10H CLRF0 LJMP S_PLAY Y111: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#11H CLRF0 LJMP S_PLAY Y12: CJNE R2,#00H,Y121 MOV56H,#29H ;R2中為0,則為前一個月 MOVA,R5 ;的最后一天 JBACC.1,Y122 MOV56H,#30H Y122: MOV57H,#11H CLRF0 LJMP S_PLAY Y121: MOVA,R2 ;R2中為日的值 MOVR0,A LCALL D_BCD MOV56H,A MOV57H,#12H CLRF0 LJMP S_PLAY S_PLAY: MOVR0,57H LCALL DIVIDE ;月分離送顯示緩存 MOV52H,R1 MOV53H,R2 MOVR0,56H LCALL DIVIDE ;日分離送顯示緩存 MOV50H,R1 MOV51H,R2 RET ;查是否閏月程序;; CHECKRE: MOVA,R4 SWAP A ANLA,#0FH RET ;10進(jìn)制轉(zhuǎn)換為BCD碼程序; D_BCD: MOVA,R0 MOVB,#10 DIVAB SWAP A ORLA,B RET ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;顯示程序;;; DISPLAY: MOVA,10H ANLA,#00001111B MOV59H,A MOVA,76H ;第八列LED ANLA,#00001111B SWAP A ADDA,59H MOVP1,A MOVA,70H ANLA,#00001111B ADDA,#01110000B MOVP2,A LCALL DL1MS MOVP1,#0FFH MOVA,10H ANLA,#11110000B SWAP A MOV5AH,A MOVA,77H ;第七列LED ANLA,#00001111B SWAP A ADDA,5AH MOVP1,A MOVA,71H ANLA,#00001111B ADDA,#01100000B MOVP2,A LCALL DL1MS MOVP1,#0FFH MOVA,56H ;第六列LED SWAP A ANLA,#11110000B ADDA,79H SWAP A MOVP1,A MOVA,72H ANLA,#00001111B ADDA,#01010000B MOVP2,A LCALL DL1MS MOVP1,#0FFH MOVA,56H ;第五列LED ANLA,#11110000B ADDA,7AH SWAP A MOVP1,A MOVA,73H ANLA,#00001111B ADDA,#01000000B MOVP2,A LCALL DL1MS MOVP1,#0FFH MOVA,57H ;第四列LED SWAP A ANLA,#11110000B ADDA,7BH SWAP A MOVP1,A MOVA,74H ANLA,#00001111B ADDA,#00110000B MOVP2,A LCALL DL1MS MOVP1,#0FFH MOVA,57H ;第三列LED ANLA,#11110000B ADDA,7CH SWAP A MOVP1,A MOVA,75H ANLA,#00001111B ADDA,#00100000B MOVP2,A LCALL DL1MS MOVP1,#0FFH MOVP1,#00001111B MOVP2,#00011111B ;第二列LED LCALL DL1MS MOVP1,#0FFH MOVA,78H ;第一列LED ANLA,#00001111B ADDA,#00100000B MOVP1,A MOVP2,#00001111B LCALL DL1MS MOVP1,#0FFH RET ZJ: MOV01H,#150 ZZZ1: MOVP2,#00001000B MOVP1,#88H LCALL DL1MS MOVP2,#00011000B MOVP1,#88H LCALL DL1MS MOVP2,#00101000B MOVP1,#88H LCALL DL1MS MOVP2,#00111000B MOVP1,#88H LCALL DL1MS MOVP2,#01001000B MOVP1,#88H LCALL DL1MS MOVP2,#01011000B MOVP1,#88H LCALL DL1MS MOVP2,#01101000B MOVP1,#88H LCALL DL1MS MOVP2,#01111000B MOVP1,#88H LCALL DL1MS DJNZ 01H,ZZZ1 MOVP1,#0FFH RET DL1MS: MOVR6,#14H DL1: MOVR7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET ;數(shù)據(jù)表~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TAB: DB35,15H,51H,00H,23,11H,52H,41H,42,12H,65H,00H DB31,11H,32H,00H,21,42H,52H,21H,39,52H,25H,00H DB28,25H,05H,71H,48,66H,42H,00H,37,33H,22H,00H DB25,15H,24H,51H,44,05H,52H,00H,33,22H,65H,00H DB22,21H,25H,41H,40,24H,52H,00H,30,52H,42H,91H DB49,55H,05H,00H,38,26H,44H,00H,27,53H,50H,60H DB46,53H,24H,00H,35,25H,54H,00H,24,41H,52H,41H DB42,45H,25H,00H,31,24H,52H,00H,21,51H,12H,21H DB40,55H,11H,00H,28,26H,21H,61H,47,26H,61H,00H DB36,13H,31H,00H,25,05H,31H,51H,43,12H,54H,00H DB33,51H,25H,00H,22,42H,25H,31H,41,32H,22H,00H DB30,55H,02H,71H,49,55H,22H,00H,38,26H,62H,00H DB27,13H,64H,60H,45,13H,32H,00H,34,12H,55H,00H DB23,10H,53H,51H,42,22H,45H,00H,31,52H,22H,00H DB21,52H,44H,21H,40,55H,44H,00H,29,26H,50H,71H DB47,26H,64H,00H,36,25H,32H,00H,25,23H,32H,50H DB44,44H,55H,00H,32,24H,45H,00H,22,55H,11H,30H END
|