;共阳数码管
COUNT EQU 30H
SP1 EQU P3.6
SP2 EQU P3.7
ORG 0
AJMP MAIN
ORG 30H
MAIN: MOV COUNT,#0
MAIN1: MOV A,COUNT
MOV B,#10
DIV AB
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P2,A
MOV A,B
MOVC A,@A+DPTR
MOV P1,A
K1: JB SP1,K2
JB SP1,$
LCALL DLY
JNB SP1,$
INC COUNT
MOV A,COUNT
CJNE A,#100,MAIN1
LJMP MAIN
K2: JB SP2,K1
JB SP2,$
LCALL DLY
JNB SP2,$
MOV A,COUNT
CJNE A,#0,DEC1
MOV COUNT,#100
DEC1: DEC COUNT
MOV A,COUNT
CJNE A,#100,MAIN1
LJMP MAIN
DLY: MOV R7,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,$-4
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,092H,82H,0F8H,080H,090H
END
要实现这个功能,只要将两个按键接入到外部中断0和1,采用沿触发方式就可以了。
org
0000h
ljmp
main
org
0003h
ljmp
ext0
org
0013h
ljmp
ext1
org
0030h
main:
mov
sp,#5fh
mov
a,#0feh
setb
ea
setb
ex0
setb
ex1
setb
it0
setb
it1
mov
p0,a
sjmp
$
ext0:
jnb
p3.2,$
rl
a
mov
p0,a
reti
ext1:
jnb
p3.3,$
rr
a
mov
p0,a
reti
end