Pregunta sobre lenguaje ensamblador ¿Cuál es el código fuente para mostrar números (0~9) en el LED del microcontrolador?
Existe un método de búsqueda de tablas para hacer esto:
;;8051
;;Oscilación del cristal F=12Mhz
;;
CLAVE32 REG P3.2
ORG 0000H
AJMP PRINCIPAL
ORG 0003H
RETI
p >RETI
ORG 000BH
RETI
ORG 0013H
RETI
RETI p >
ORG 001BH
RETI
ORG 0023H
RETI
DB C0H ;0 DIRECCIÓN 0024H
DB F9H ;1
DB A4H ;2
DB B0H ;3
DB 99H ;4
DB 92H ;5
DB 82H ;6
DB F8H ;7
DB 80H ;8
DB 90H ;9
PRINCIPAL: MOV R0,#7FH ;
CLR A ;
$CL MOV @R0,A ;
DJNZ R0,$CL ;Inicialización p >
MOV SP,#60H ;Inicialización
MOV 20H,#00H ;Inicialmente configurado en 0
MOV DPTR,#0024H ;Apunta a la primera dirección de los datos tabla
p>;;
$0 JB KEY32,$0
MOV A,20H
INC A
CJNE A,# 10D,$1 ;Si no es equivalente transferir
MOV A,#00H
$1 MOV 20H,A ;Guardar datos
MOVC A ,@A+DPTR
MOV P1,A ;DISPLAY
$2 CALL DLY ;Retraso de llamada esperando que aparezca la LLAVE
JNB KEY32,$2 p>
AJMP $0
;;
DLY: MOV R7,#00 ;DELAY
$A MOV R6,#00 ;
$B DJNZ R6 ,$B
DJNZ R7,$A
RET