?? 時鐘溫度顯示1114.asm
字號:
lcall dl05s
lcall display28
lcall display30
lcall dl2s
LCALL CLS; 清屏
lcall dl05s
JMP OUTT0B1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; setting calendar 子菜單 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CALENDAR: NOP
CALENDAR1: LCALL CLS
LCALL DISPLAY25
CC2:JNB K2,SETYEAR
JB K1, CC2
LCALL DS20MS
JNB K1,OUTT4
JNB K2,SETYEAR
JMP CC2
SETYEAR: JB K3,$
LCALL DS20MS
CC3: MOV A,#00001110B
LCALL WRITE
MOV A,#10000110B;顯示時間在第一行
CALL WRITE
LCALL DS20MS
LCALL DS200MS
MOV R0,#49H
JNB K2, SETMOON
CC4:JNB K1,OUTT4
JNB K2, SETMOON
JB K3,CC4
LCALL ADD1
LCALL DISPLAY25
MOV A,R2
CLR C
CJNE A,#20H,CLEARYEAR
JMP CC3
CLEARYEAR:JC CC3
LCALL CLR0
CLR C
LCALL DISPLAY25
JMP CC3
OUTT4: LCALL DS200MS
LCALL CLS
LCALL INITIAL;
LJMP OUTF
SETMOON: MOV A,#10001001B
CALL WRITE
LCALL DS200MS
MOV R0,#47H
JNB K1,OUTT4
JNB K2, SETDAY
JB K3,SETMOON
LCALL ADD1
LCALL DISPLAY25
MOV A,R2
CLR C
CJNE A,#12H,CLEARMOON
JMP SETMOON
CLEARMOON: JC SETMOON
LCALL CLR0
CLR C
LCALL DISPLAY25
JMP SETMOON
SETDAY: MOV A,#10001100B
LCALL WRITE
LCALL DS200MS
MOV R0,#45H
JNB K1,OUTT4
JNB K2, JMPSETYEAR
JB K3,SETDAY
LCALL ADD1
LCALL DISPLAY25
MOV A, R2
CLR C
CJNE A,#31H,CLEARDAY
JMP SETDAY
CLEARDAY:JC SETDAY
LCALL CLR0
CLR C
LCALL DISPLAY25
JMP SETDAY
JMPSETYEAR: LJMP cc3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; display mode子菜單 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISMODE: LCALL CLS
DIS0:LCALL DISPLAY5
LCALL DISPLAY6
DIS1:LCALL DS20MS
JNB K1,OUTT2
JNB K3,DIS11
JB K2,DIS1
LCALL DS20MS
JNB K2,$
LCALL CLS
DIS2:LCALL DS20MS
LCALL DISPLAY7
LCALL DISPLAY8
JNB K1,OUTT2
JNB K3,DIS21
JB K2,DIS2
LCALL DS20MS
JNB K2,$
LCALL CLS
DIS3: LCALL DS20MS
LCALL DISPLAY9
JNB K1,OUTT2
JNB K3,DIS31
JB K2,DIS3
LCALL DS20MS
JNB K2,$
LCALL CLS
JMP DIS0
OUTT2: LJMP OUTF
DIS11: CLR 7EH
CLR 7DH
JMP OUTT2
DIS21: SETB 7EH
CLR 7DH
JMP OUTT2
DIS31: CLR 7EH
SETB 7DH
JMP OUTT2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; 定時器0中短服務程序
;; 1秒定時 程 序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTT0: PUSH ACC
PUSH PSW
PUSH 00H
PUSH 02H
CLR ET0
CLR TR0
MOV A, #0B7H ;中斷同步修正
ADD A, TL0
MOV TL0, A
MOV A, #3CH
ADD A, TH0
MOV TH0, A
SETB TR0
DJNZ R4, OUTT0
CLR ADR1
CLR ADR2
CLR ADR3
CLR ADR4
ADDSS: MOV R4, #14H
MOV R0, #31H
LCALL ADD1
MOV A, R2
CLR C
CJNE A, #60H,ADDMM
ADDMM: JC OUTT0
LCALL CLR0
MOV R0,#33H
LCALL ADD1
MOV A,R2
CLR C
CJNE A,#60H,ADDHH
ADDHH: JC OUTT0
LCALL CLR0
MOV R0,#35H
LCALL ADD1
LCALL RECORD
MOV A,R2
CLR C
CJNE A,#24H,day
DAY: JC OUTT0
LCALL CLR0
MOV R0,#45H
LCALL ADD1
MOV A,R2
CLR C
CJNE A,#31H,MOON
MOON: JC OUTT0
LCALL CLR0
MOV R0,#47H
LCALL ADD1
MOV A,R2
CLR C
CJNE A,#12H,YEAR
YEAR: JC OUTT0
CALL CLR0
MOV R0,#49H
lCALL ADD1
MOV A,R2
CLR C
CJNE A,#20H,HOUR
HOUR: JC OUTT0
CALL CLR0
OUTT0: POP 02H
POP 00H
POP PSW
POP ACC
SETB ET0
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 加1程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ADD1: MOV A, @R0
DEC R0
SWAP A
ORL A, @R0
ADD A, #01H
DA A
MOV R2, A
ANL A, #0FH
MOV @R0, A
MOV A, R2
INC R0
SWAP A
ANL A, #0FH
MOV @R0, A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 減1程序 ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DEC1: PUSH ACC
PUSH PSW
MOV A,@R0
DEC R0
SWAP A
ORL A,@R0
ADD A,#99H
DA A
MOV R4,A
ANL A,#0FH
MOV @R0,A
MOV A,R4
INC R0
SWAP A
ANL A,#0FH
MOV @R0,A
POP PSW
POP ACC
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 單元數據清零程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR0: CLR A
MOV @R0,A
DEC R0
MOV @R0,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 各顯示內容
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISPLAY1: MOV A,#11000000B;顯示TEMP
CALL WRITE
MOV DPTR,#LINE1;指向顯示內容
mov R3,#0
LCALL PRSTRING;查顯示內容
MOV A,#10000000B;顯示TEMP
CALL WRITE
MOV DPTR,#LINE3;指向顯示內容
mov R3,#0
LCALL PRSTRING;查顯示內容
RET
DISPLAY2: PUSH ACC
PUSH PSW
PUSH 00H
MOV A,#10000101B;顯示時間在第一行
CALL WRITE
MOV DPTR,#LINE2
MOV R3,35H
LCALL PRSTRING1;查顯示內容
MOV A,#10000110B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,34H
LCALL PRSTRING1;查顯示內容
MOV A,#10000111B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,#13
LCALL PRSTRING1;查顯示內容
MOV A,#10001000B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,33H
LCALL PRSTRING1;查顯示內容
MOV A,#10001001B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,32H
LCALL PRSTRING1;查顯示內容
MOV A,#10001010B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,#13
LCALL PRSTRING1;查顯示內容
MOV A,#10001011B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,31H
LCALL PRSTRING1;查顯示內容
MOV A,#10001100B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,30H
LCALL PRSTRING1;查顯示內容
POP 00H
POP PSW
POP ACC
RET
DISPLAY2A: PUSH ACC
PUSH PSW
PUSH 00H
MOV A,#11000101B;顯示時間在第二行
CALL WRITE
MOV DPTR,#LINE2
MOV R3,35H
LCALL PRSTRING1;查顯示內容
MOV A,#11000110B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,34H
LCALL PRSTRING1;查顯示內容
MOV A,#11000111B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,#13
LCALL PRSTRING1;查顯示內容
MOV A,#11001000B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,33H
LCALL PRSTRING1;查顯示內容
MOV A,#11001001B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,32H
LCALL PRSTRING1;查顯示內容
MOV A,#11001010B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,#13
LCALL PRSTRING1;查顯示內容
MOV A,#11001011B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,31H
LCALL PRSTRING1;查顯示內容
MOV A,#11001100B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,30H
LCALL PRSTRING1;查顯示內容
POP 00H
POP PSW
POP ACC
RET
DISPLAY2B: PUSH ACC
PUSH PSW
PUSH 00H
MOV A,#11001000B;顯示時間在第二行
CALL WRITE
MOV DPTR,#LINE2
MOV R3,35H
LCALL PRSTRING1;查顯示內容
MOV A,#11001001B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,34H
LCALL PRSTRING1;查顯示內容
MOV A,#11001010B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,#13
LCALL PRSTRING1;查顯示內容
MOV A,#11001011B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,33H
LCALL PRSTRING1;查顯示內容
MOV A,#11001100B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,32H
LCALL PRSTRING1;查顯示內容
MOV A,#11001101B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,#13
LCALL PRSTRING1;查顯示內容
MOV A,#11001110B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,31H
LCALL PRSTRING1;查顯示內容
MOV A,#11001111B
CALL WRITE
MOV DPTR,#LINE2
MOV R3,30H
LCALL PRSTRING1;查顯示內容
POP 00H
POP PSW
POP ACC
RET
DISPLAY3: PUSH ACC
PUSH PSW
PUSH 00H
MOV A,#11000101B;顯示溫度在第二行
CALL WRITE
MOV DPTR,#LINE2
MOV R3,4FH
LCALL PRSTRING1;查顯示內容
MOV A,#11000110B
CALL WRITE
MOV DPTR,#LINE2
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -