Está en la página 1de 3

Circuito de Control

Programa de Control

; Practica 06: Teclado Matricial


; 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

También podría gustarte