单片机 用汇编语言怎么编写两个按键控制一个LED自加自减的程序

2025-03-22 22:39:39
推荐回答(2个)
回答1:

;共阳数码管  

 

 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

回答2:

要实现这个功能,只要将两个按键接入到外部中断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