KEY1 BIT P1.0 ;按鍵1 IO口定義--啟動/暫停定時器
KEY2 BIT P1.1 ;按鍵2 IO口定義--定時器停止,清零
ORG 0000H
LJMP MAIN ;跳轉(zhuǎn)至MAIN
ORG 000BH
LJMP T0_INT
ORG 0100H
COUNT EQU 40H
SEC EQU 41H
AX EQU 42H
SEC1 EQU 44H
MAIN:
MOV SP,#60H
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
SETB EA
CLR TR0
MOV SEC,#0
MOV AX,#0
M_LOOP:
JNB KEY1,PK1 ;當(dāng)KEY1按下時,跳轉(zhuǎn)至PK1
JNB KEY2,PK2 ;當(dāng)KEY2按下時,跳轉(zhuǎn)至PK2
ACALL DISPLAY
LJMP M_LOOP
PK1:ACALL DISPLAY
JNB KEY1,PK1
CPL TR0
LJMP M_LOOP
PK2:ACALL DISPLAY
JNB KEY2,PK2
CLR TR0
MOV SEC,#00H
MOV AX,#00H
LJMP M_LOOP
DISPLAY:
MOV A,#01B
MOV P2,A
MOV DPTR,#TAB
MOV A,AX
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P0,#0FFH
MOV A,#10B
MOV P2,A
MOV DPTR,#TAB
MOV A,AX
MOV B,#10
DIV AB
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
MOV P0,#0FFH
MOV A,#100B
MOV P2,A
MOV A,SEC
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P0,#0FFH
MOV A,#1000B
MOV P2,A
MOV DPTR,#TAB
MOV A,SEC
MOV B,#10
DIV AB
MOV A,B
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
MOV P0,#0FFH
RET
T0_INT:
MOV TL0,#0B0H
MOV TH0,#3CH
PUSH PSW
MOV A,COUNT
INC A
MOV COUNT,A
CJNE A,#20,T0RE
MOV A,#00H;
MOV COUNT,A
MOV A,SEC
INC A
MOV SEC,A
CJNE A,#60,T0RE
MOV A,#00H
MOV SEC,A
INC AX
T0RET: POP PSW
RETI
DELAY:
MOV R1,#40
DELAY1:NOP
DJNZ R1,DELAY1
RET
TAB:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,080H,090H
END
|