G 0000H
LJMP STAR
ORG 0003H
LJMP INT0S
ORG 0013H
LJMP INT1S
ORG 0050H
STAR:MOV SP,#05FH
MOV IE,#85H
MOV TCON,#5
MOV A,#0FEH
MOV P3,#0FFH
SETB PX1
ST0: MOV A,#0
ST1: PUSH ACC
LCALL SEG7
MOV P0,A
LCALL DELAY
POP ACC
INC A
CJNE A,#9,ST1
SJMP ST0
INT0S: PUSH ACC
MOV A,#0
LOOP:INC A
PUSH ACC
LCALL SEG7
MOV P2,A
POP ACC
LCALL DELAY
CJNE A,#8,LOOP
POP ACC
MOV P2,#0FFH
RETI
INT1S:PUSH ACC
MOV A,#0
LOOP1: INC A
PUSH ACC
ACALL SEG7
MOV P1,A
ACALL DELAY
POP ACC
CJNE A,#8,LOOP1
MOV P1,#0FFH
POP ACC
RETI
DELAY:MOV R7,#250
D1:MOV R6,#250
D2:NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R6,D2
DJNZ R7,D1
RET
SEG7:INC A
MOVC A,@A+PC
RET
DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H,80H
END
(1). P2口数码管中断优先级高于P1口数码管; (2). P0口数码管显示范围0~F; (3). P1口、P2口数码管显示范围0~9; (4). P0口、P1口、P2口显示减计数; (5). P1口显示速率比P0口、P2口慢一倍; (6). 将INT1中断服务程序标号INT1S改为INTBS; (7)*. P1口数码管顺向段显示(如3P3段显示)
麻烦大神在回答的时候最好附上步骤详解,方便小弟理解
|