51单片机用数码管计算中断次数,数码管数字一直不变,求解
P0口接八位数码管
P2.2 P2.3 P2.4作译码器作位选
运行的时候,八位数码管一直显示八个零,求解
ORG 0000H
JMP MAIN
ORG 0030H
MAIN:
COUNT0 EQU 30H ;外部中断0的次数
COUNT1 EQU 31H ;外部中断1的次数
STR0 EQU 78H
STR1 EQU 79H
STR4 EQU 7AH
STR5 EQU 7BH
MOV STR0,#00H
MOV STR1,#00H
MOV STR4,#00H
MOV STR5,#00H
MOV COUNT0,#00H
MOV COUNT1,#00H
MOV R0,#STR0
MOV R5,#COUNT0
MOV R6,#COUNT1
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
SETB IT0 ;
SETB IT1
SETB EX0
SETB EX1
SETB EA
LOOP1:
JNB P3.2,INT_0
JNB P3.3,INT_1
MOV A,COUNT0
MOV B,#10
DIV AB
MOV @R0,B
INC R0
MOV A,COUNT0
MOV B,#100
DIV AB
MOV B,#10
DIV AB
MOV @R0,A
INC R0
MOV A,COUNT1
MOV B,#10
DIV AB
MOV @R0,B
INC R0
MOV A,COUNT1
MOV B,#100
DIV AB
MOV B,#10
DIV AB
MOV @R0,A
LCALL DISPLAY
LOOP2:
MOV R0,#STR0
JMP LOOP1
INT_0:
CLR EX0
INC COUNT0
SETB EX0
RET
INT_1:
CLR EX1
INC COUNT1
SETB EX1
RET
DISPLAY:
MOV DPTR,#TAB
CLR P2.4
CLR P2.3
CLR P2.2
MOV P0,#3FH
CLR P2.4
CLR P2.3
SETB P2.2
MOV P0,#3FH
CLR P2.4
SETB P2.3
CLR P2.2
MOV A,STR1
MOVC A,@A+DPTR
MOV P0,A
CLR P2.4
SETB P2.3
SETB P2.2
MOV A,STR0
MOVC A,@A+DPTR
MOV P0,A
SETB P2.4
CLR P2.3
CLR P2.2
MOV P0,#3FH
SETB P2.4
CLR P2.3
SETB P2.2
MOV P0,#3FH
SETB P2.4
SETB P2.3
CLR P2.2
MOV A,#STR5
MOVC A,@A+DPTR
MOV P0,A
SETB P2.4
SETB P2.3
SETB P2.2
MOV A,STR4
MOVC A,@A+DPTR
MOV P0,A
JMP LOOP2
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH