?? shizhong中斷.txt
字號:
Z0 EQU 30H
Z1 EQU 31H
Z2 EQU 32H
Z3 EQU 33H
Z4 EQU 34H
Z5 EQU 35H
Z6 EQU 36H
Z7 EQU 37H
S1 BIT P2.0
S2 BIT P2.1
M1 BIT P2.2
M2 BIT P2.3
H1 BIT P2.4
H2 BIT P2.5
ORG 0000H ;正確,查表法,中斷
LJMP MAIN
ORG 000BH
LJMP INT_T0
ORG 0100H
MAIN: ; MOV PSW,#00H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#10
MOV 33H,#08H
MOV 34H,#00H
MOV 35H,#10
MOV 36H,#08H
MOV 37H,#00H ;時鐘初始定值
MOV DPTR,#TAB
MOV 10H,#0FEH
MOV R1,#37H
MOV R2,#0
MOV R3,#0
MOV R4,#0
MOV TMOD,#01H
MOV TH0,#0F8H
MOV TL1,#30H
SETB TR0
SETB ET0
SETB EA
LP1:
JB S1,NS2
LCALL DELY10MS ;延時10MS,用于鍵盤消抖
JB S1,NS2 ;再次判斷,是轉(zhuǎn)NK1,不是秒位加一
JNB S1,$
INC Z0
MOV A,Z0
CJNE A,#10,NS2
MOV Z0,#00H
; JMP LP0
NS2:
JB S2,NM1
LCALL DELY10MS ;延時10MS,用于鍵盤消抖
JB S2,NM1 ;再次判斷,是轉(zhuǎn)NK1,不是秒位加一
JNB S2,$
INC Z1
MOV A,Z1
CJNE A,#6,NM1
MOV Z1,#00H
;JMP LP0
NM1:
JB M1,NM2
LCALL DELY10MS ;延時10MS,用于鍵盤消抖
JB M1,NM2 ;再次判斷,是轉(zhuǎn)NK1,不是秒位加一
JNB M1,$
INC Z3
MOV A,Z3
CJNE A,#10,NM2
MOV Z3,#00H
;JMP LP0
NM2:
JB M2,NH1
LCALL DELY10MS ;延時10MS,用于鍵盤消抖
JB M2,NH1 ;再次判斷,是轉(zhuǎn)NK1,不是秒位加一
JNB M2,$
INC Z4
MOV A,Z4
CJNE A,#6,NH1
MOV Z4,#00H
; JMP LP0
NH1:
JB H1,NH2
LCALL DELY10MS ;延時10MS,用于鍵盤消抖
JB H1,NH2 ;再次判斷,是轉(zhuǎn)NK1,不是秒位加一
JNB H1,$
INC Z6
MOV A,Z6
CJNE A,#10,NH2
MOV Z6,#00H
; JMP LP0
NH2:
JB H2,HUI
LCALL DELY10MS ;延時10MS,用于鍵盤消抖
JB H2,HUI ;再次判斷,是轉(zhuǎn)NK1,不是秒位加一
JNB H2,$
INC Z7
MOV A,Z7
CJNE A,#3,HUI
MOV Z7,#00H
HUI: JMP LP1
DELY10MS: ;延時10MS
MOV 13H,#10
D2: MOV 14H,#248
DJNZ 14H,$
DJNZ 13H,D2
RET
INT_T0:MOV TH0,#0F8H
MOV TL0,#30H
INC R2
MOV A,10H
MOV P3,A
MOV A,@R1
MOVC A,@A+DPTR
MOV P1,A
MOV A,10H
RL A
MOV 10H,A
DEC R1
CJNE R2,#8,HUI1
MOV R1,#37H
MOV R2,#00H
HUI1: INC R3 ;T2SCNTA初值為0,遞加1
MOV A,R3
CJNE A,#100,DONE ;掃描100次(內(nèi)循環(huán))
MOV R3,#00H ;為T2SCNTA清零
INC R4
MOV A,R4
CJNE A,#05H,DONE ;掃描500次
MOV R4,#00H ;清零
INC Z0
MOV A,Z0
CJNE A,#10,DONE
MOV Z0,#0
INC Z1
MOV A,Z1
CJNE A,#6,DONE
MOV Z1,#0
INC Z3
MOV A,Z3
CJNE A,#10,DONE
MOV Z3,#0
INC Z4
MOV A,Z4
CJNE A,#6,DONE
MOV Z4,#0 ;數(shù)字逢9或5加一
INC Z6
MOV A,Z7
CJNE A,#2,LOP1
MOV A,Z6
CJNE A,#4,DONE
SJMP LOP3 ;判斷是否到24點
LOP1: MOV A,Z6
CJNE A,#10,DONE
MOV Z6,#0
LOP2: INC Z7
MOV A,Z7
CJNE A,#3,DONE
; DONE: LJMP DONE
LOP3: MOV 30H,#00H
MOV Z1,#00H
MOV Z2,#10
MOV Z3,#00H
MOV Z4,#00H
MOV Z5,#10
MOV Z6,#00H
MOV Z7,#00H ;時鐘歸零,從零時記起
DONE: RETI
TAB: DB 03FH,06H,05BH,04FH,66H,06DH,07DH,07H,07FH,06FH,40H
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -