Microcontrolador 8051 Teclado Matricial

#1
Buenas sabes tengo una duda con respecto a teclado matricial, quiero colocar los led para qUE a medida del numero que coloque encienda el led correspondiente ejemplo pulso en el display 5 debe encender el led 5 que configuracion debo usar y en donde deben ir los led?


; Control de un teclado matricial 4x4 con lenguaje assembler

org 0000h
inicio:
mov p2,#11111110b
mov b,#11111110b
mov a,p2
cjne a,b,press_key

mov p2,#11111101b
mov b,#11111101b
mov a,p2
cjne a,b,press_key

mov p2,#11111011b
mov b,#11111011b
mov a,p2
cjne a,b,press_key

mov p2,#11110111b
mov b,#11110111b
mov a,p2
cjne a,b,press_key

ajmp inicio

press_key:
mov b,a
mov dptr,#teclas
mov r6,#0ffh
seguir:
inc r6
cjne r6,#16d,pasa
ajmp inicio
pasa:
mov a,r6
movc a,@a+dptr
cjne a,b,seguir
mov a,r6
mov dptr,#display
movc a,@a+dptr
cpl a
mov p3,a
ajmp inicio

teclas:
db 11101110b ;7
db 11011110b ;8
db 10111110b ;9
db 01111110b ;/

db 11101101b ;4
db 11011101b ;5
db 10111101b ;6
db 01111101b ;*

db 11101011b ;1
db 11011011b ;2
db 10111011b ;3
db 01111011b ;-

db 11100111b ;on
db 11010111b ;0
db 10110111b ;=
db 01110111b ;+

display:
db 07h ; 7
db 7fh ; 8
db 6fh ; 9
db 0h ;

db 66h ; 4
db 6dh ; 5
db 7dh ; 6
db 0h ;

db 06h ; 1
db 5Bh ; 2
db 4fh ; 3
db 0h ;

db 0h ;
db 3fh ; 0
db 0h ;
db 0h ;


delay:
mov r7,#0ffh
bucle: djnz r7,bucle
ret
end
 

Adjuntos

#2
Así sin un mísero comentario en el código no lo entiendes ni tu, por eso preguntas que es lo que estás haciendo.

Pon comentarios de lo que hace el código.

Faltan los condensadores del cristal.
Pides demasiada corriente a los puertos de tu micro, no dan tanta.
Falta ver cómo has configurado el reset, por defecto me parece que te faltan cosas si no lo configuras internamente. Creo recordar.
 
#3
crees que pueda haber una forma mas facil de hacerlo, lo siento aun estoy aprendiendo un poco de esto y la verdad es porque tengo que hacer una simulacion que permita visualizar el encendido de un LED, en un arreglo de 8 led
conectados al microcontrolador, de tal manera que presionando un numero en el teclado matricial, se encienda el leds correspondiente en dicho arreglo
 
#4
Como no sé que has hecho porque el código no está comentado y solo lo entiendes tú, no sé si es mejorable.
Aunque siempre* es mejorable el código .
Si no comentas tu código ni tu mismo serás capaz de entenderlo a la que pase un poco de tiempo. Te lo digo porque me ha pasado, lo que hoy me parecía avidente luego no lo era ni para mí.

*A no ser que esté re re re repasado para la máxima optimización.
 
#5
¿Te parecería si te mando el código con todo y lo revisas?
Los led me encienden pero en código binario los numeros.
Esquema.jpg
Lo que quiero es que si pulso el 1 en el teclado me encienda el led 1 y de verdad no sé qué código agregarle.
Espero puedas ayudarme. :D
 

Adjuntos

#6
Me parecería absurdo que me mandes nada. Eso rompe el espíritu de los foros.
Publica lo que quieras.
Tienes que comentar el código si o si. Si no lo haces ni tu lo entenderás.
No sé por qué dices led yo no veo ninguno en el esquema.
 

Temas similares


Arriba