?? 溫度萬年歷_3.asm
字號:
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.1,SETG8
JNB P1.2,GADDWEEK
AJMP SETG7
GADDWEEK: MOV R7,64H
LCALL ADD1
MOV 64H,A
CJNE A,#08H,GADDWEEK1
MOV 64H,#01H
GADDWEEK1: MOV DS1302_ADDR,#8AH
MOV DS1302_DATA,64H
LCALL WRITE
MOV R0,64H
LCALL DIVIDE
MOV 48H,R1
MOV 78H,R1
WAITT4: MOV 186H,76H
MOV 187H,77H
MOV 188H,79H
MOV 189H,7AH
MOV 18AH,7BH
MOV 18BH,7CH
MOV 18CH,#00H
MOV 18DH,#02H
MOV 166H,70H
MOV 167H,71H
MOV 168H,72H
MOV 169H,73H
MOV 16AH,74H
MOV 16BH,75H
MOV 16DH,78H
MOV 146H,59H
MOV 147H,5AH
MOV 148H,5BH
MOV 149H,5CH
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.2,WAITT4
AJMP SETG7
SETG8: SETB 0DH
GWAIT8: MOV 186H,76H
MOV 187H,77H
MOV 188H,79H
MOV 189H,7AH
MOV 18AH,7BH
MOV 18BH,7CH
MOV 18CH,#00H
MOV 18DH,#02H
MOV 166H,70H
MOV 167H,71H
MOV 168H,72H
MOV 169H,73H
MOV 16AH,74H
MOV 16BH,75H
MOV 16DH,78H
MOV 146H,59H
MOV 147H,5AH
MOV 148H,5BH
MOV 149H,5CH
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.1,GWAIT8
SETG9:
MOV 186H,76H
MOV 187H,77H
MOV 188H,79H
MOV 189H,7AH
MOV 18AH,7BH
MOV 18BH,7CH
MOV 18CH,#00H
MOV 18DH,#02H
MOV 166H,70H
MOV 167H,71H
MOV 168H,72H
MOV 169H,73H
MOV 16AH,74H
MOV 16BH,75H
MOV 16DH,78H
MOV 146H,59H
MOV 147H,5AH
MOV 148H,5BH
MOV 149H,5CH
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.1,SETG10
JNB P1.2,GADDHOUR
AJMP SETG9
GADDHOUR: MOV R7,62H
LCALL ADD1
MOV 62H,A
CJNE A,#24H,GADDHOUR1
MOV 62H,#00H
GADDHOUR1: MOV DS1302_ADDR,#84H
MOV DS1302_DATA,62H
LCALL WRITE
MOV R0,62H
LCALL DIVIDE
MOV 44H,R1
MOV 74H,R1
MOV 45H,R2
MOV 75H,R2
WAITT5: MOV 186H,76H
MOV 187H,77H
MOV 188H,79H
MOV 189H,7AH
MOV 18AH,7BH
MOV 18BH,7CH
MOV 18CH,#00H
MOV 18DH,#02H
MOV 166H,70H
MOV 167H,71H
MOV 168H,72H
MOV 169H,73H
MOV 16AH,74H
MOV 16BH,75H
MOV 16DH,78H
MOV 146H,59H
MOV 147H,5AH
MOV 148H,5BH
MOV 149H,5CH
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.2,WAITT5
LJMP SETG9
SETG10: SETB 0EH
GWAIT10: MOV 186H,76H
MOV 187H,77H
MOV 188H,79H
MOV 189H,7AH
MOV 18AH,7BH
MOV 18BH,7CH
MOV 18CH,#00H
MOV 18DH,#02H
MOV 166H,70H
MOV 167H,71H
MOV 168H,72H
MOV 169H,73H
MOV 16AH,74H
MOV 16BH,75H
MOV 16DH,78H
MOV 146H,59H
MOV 147H,5AH
MOV 148H,5BH
MOV 149H,5CH
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.1,GWAIT10
SETG11: MOV 186H,76H
MOV 187H,77H
MOV 188H,79H
MOV 189H,7AH
MOV 18AH,7BH
MOV 18BH,7CH
MOV 18CH,#00H
MOV 18DH,#02H
MOV 166H,70H
MOV 167H,71H
MOV 168H,72H
MOV 169H,73H
MOV 16AH,74H
MOV 16BH,75H
MOV 16DH,78H
MOV 146H,59H
MOV 147H,5AH
MOV 148H,5BH
MOV 149H,5CH
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.1,SETGOUT
JNB P1.2,GADDMINUTE
AJMP SETG11
GADDMINUTE: MOV R7,61H
LCALL ADD1
MOV 61H,A
CJNE A,#60H,GADDMINUTE1
MOV 61H,#00H
GADDMINUTE1: MOV DS1302_ADDR,#82H
MOV DS1302_DATA,61H
LCALL WRITE
MOV R0,61H
LCALL DIVIDE
MOV 42H,R1
MOV 72H,R1
MOV 43H,R2
MOV 73H,R2
WAITT6: MOV 186H,76H
MOV 187H,77H
MOV 188H,79H
MOV 189H,7AH
MOV 18AH,7BH
MOV 18BH,7CH
MOV 18CH,#00H
MOV 18DH,#02H
MOV 166H,70H
MOV 167H,71H
MOV 168H,72H
MOV 169H,73H
MOV 16AH,74H
MOV 16BH,75H
MOV 16DH,78H
MOV 146H,59H
MOV 147H,5AH
MOV 148H,5BH
MOV 149H,5CH
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.2,WAITT6
AJMP SETG11
SETGOUT: MOV 186H,76H
MOV 187H,77H
MOV 188H,79H
MOV 189H,7AH
MOV 18AH,7BH
MOV 18BH,7CH
MOV 18CH,#00H
MOV 18DH,#02H
MOV 166H,70H
MOV 167H,71H
MOV 168H,72H
MOV 169H,73H
MOV 16AH,74H
MOV 16BH,75H
MOV 16DH,78H
MOV 146H,59H
MOV 147H,5AH
MOV 148H,5BH
MOV 149H,5CH
MOV 14AH,10H
MOV 14BH,11H
MOV 14CH,12H
MOV 14DH,13H
LCALL DISPLAY
JNB P1.1,SETGOUT
MOV DS1302_ADDR,#80H
MOV DS1302_DATA,#00H ;允許寫1302
LCALL WRITE
MOV DS1302_ADDR,#8EH
MOV DS1302_DATA,#80H ;允許寫1302
LCALL WRITE
CLR 08H
CLR 09H
CLR 0AH
CLR 0BH
CLR 0CH
CLR 0DH
CLR 0EH
CLR 0FH
CLR ET1
CLR TR1
LJMP MAIN1
;*********************************
;* 散動 *
;*********************************
INTT1: PUSH ACC
PUSH PSW
GFLASH: CPL 0FH
JB 0FH,GFLASH1
MOV 7CH,4CH
MOV 7BH,4BH
MOV 7AH,4AH
MOV 79H,49H
MOV 78H,48H
MOV 77H,47H
MOV 76H,46H
MOV 75H,45H
MOV 74H,44H
MOV 73H,43H
MOV 72H,42H
MOV 71H,41H
MOV 70H,40H
GFLASHOUT: POP PSW
POP ACC
RETI
GFLASH1: JB 0AH,GFLASH2
MOV 7CH,#0AH
MOV 7BH,#0AH
AJMP GFLASHOUT
GFLASH2: JB 0BH,GFLASH3
MOV 7AH,#0AH
MOV 79H,#0AH
AJMP GFLASHOUT
GFLASH3: JB 0CH,GFLASH4
MOV 77H,#0AH
MOV 76H,#0AH
AJMP GFLASHOUT
GFLASH4: JB 0DH,GFLASH5
MOV 78H,#0AH
AJMP GFLASHOUT
GFLASH5: JB 0EH,GFLASH6
MOV 75H,#0AH
MOV 74H,#0AH
AJMP GFLASHOUT
GFLASH6:
MOV 73H,#0AH
MOV 72H,#0AH
AJMP GFLASHOUT
;*********************************
;* 加1 *
;*********************************
ADD1: MOV A,R7
ADD A,#01H
DA A
RET
;*********************************
;* 分離 *
;*********************************
DIVIDE: MOV A,R0
ANL A,#0FH
MOV R1,A
MOV A,R0
SWAP A
ANL A,#0FH
MOV R2,A
RET
;*********************************
;* 寫1302程序 *
;*********************************
WRITE: CLR SCLK
NOP
SETB RST
NOP
MOV A,DS1302_ADDR
MOV R4,#8
WRITE1: RRC A ;送地址給1302
NOP
NOP
CLR SCLK
NOP
NOP
NOP
MOV IO,C
NOP
NOP
NOP
SETB SCLK
NOP
NOP
DJNZ R4,WRITE1
CLR SCLK
NOP
MOV A,DS1302_DATA
MOV R4,#8
WRITE2: RRC A
NOP ;送數據給1302
CLR SCLK
NOP
NOP
MOV IO,C
NOP
NOP
NOP
SETB SCLK
NOP
NOP
DJNZ R4,WRITE2
CLR RST
RET
;*******************************
;* 讀1302程序 *
;*******************************
READ: CLR SCLK
NOP
NOP
SETB RST
NOP
MOV A,DS1302_ADDR
MOV R4,#8
READ1: RRC A
NOP
MOV IO,C
NOP
NOP
NOP
SETB SCLK
NOP
NOP
NOP
CLR SCLK
NOP
NOP
DJNZ R4,READ1
MOV R4,#8
READ2: CLR SCLK
NOP
NOP
SETB IO
MOV C,IO
NOP
NOP
NOP
NOP
NOP
RRC A
NOP
NOP
NOP
NOP
SETB SCLK
NOP
DJNZ R4,READ2
MOV DS1302_DATA,A
CLR RST
RET
;*********************************
;* 顯示 *
;*********************************
DISPLAY:
MOV R0,#186H
MOV R1,#166H
MOV R2,146H
MOV R3,#146H
MOV R5,#0FEH
PLAY1: MOV A,#0FFH
MOV P2,A
MOV A,@R0
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,@R1
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
MOV A,R2
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV SBUF,A
JNB TI,$
CLR TI
INC R0
INC R1
INC R3
MOV A,R3
SETB PSW.4
MOV R0,A
MOV A,@R0
CLR PSW.4
MOV R2,A
MOV A,R0
PLAY2: CJNE A,#54H,PLAY3
PLAY3: MOV A,R5
MOV P2,A
LCALL DL1MS
MOV A,R5
JNB ACC.7,PLAYOUT
RL A
MOV R5,A
LJMP PLAY1
PLAYOUT: SETB P2.7
RET
DL1MS: MOV R6,#14H
DL1: MOV R7,#19H
DL2: DJNZ R7,DL2
DJNZ R6,DL1
RET
TAB1: ;DB 0C0H,0F9H,0A4H,0B0H
; DB 99H,92H,82H,0F8H,80H,90H,0FFH,0BFH
DB 03H,9FH,25H,0DH,99H
DB 49H,41H,1FH,01H,09H,0FFH
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -