Está en la página 1de 4

;

; teclado_clase.asm
;
; Created: 29/11/2019 8:06:58
; Author : Jazmin Torres
;

; Replace with your application code

//definir registros
.def aux1 = r16
.def aux = r17
.def tempo = r18
.def tempo1 = r19

//Puertos B
ldi aux, 0b0000_1111 ;7-4 in 3-0 out
out ddrb,aux
COM aux
out portb,aux
nop

//puertos A
ldi aux, 0b1111_1111
out DDRA,aux
COM aux
out PORTA,aux
nop

rjmp lazo

lazo:
ldi aux, 0b1111_1110 //barrido teclado fila 4
out portb, aux
rcall fila4

ldi aux, 0b1111_1101 //barrido teclado fila 3


out portb, aux
rcall fila3

ldi aux, 0b1111_1011 //barrido teclado fila 2


out portb, aux
rcall fila2

ldi aux, 0b1111_0111 //barrido teclado fila 1


out portb, aux
rcall fila1

rjmp lazo

fila4:
sbis pinb,4
rcall uno
sbis pinb,5
rcall dos
sbis pinb,6
rcall tres
sbis pinb,7
rcall cuatro
ret

fila3:
sbis pinb,4
rcall cinco
sbis pinb,5
rcall seis
sbis pinb,6
rcall siete
sbis pinb,7
rcall ocho
ret

fila2:
sbis pinb,4
rcall nueve
sbis pinb,5
rcall diez
sbis pinb,6
rcall once
sbis pinb,7
rcall doce
ret

fila1:
sbis pinb,4
rcall trece
sbis pinb,5
rcall catorce
sbis pinb,6
rcall quince
sbis pinb,7
rcall dieciseis
ret

uno:
ldi aux1,1
rcall mostrar
ret
dos:
ldi aux1,2
rcall mostrar
ret
tres:
ldi aux1,3
rcall mostrar
ret
cuatro:
ldi aux1,4
rcall mostrar
ret

cinco:
ldi aux1,5
rcall mostrar
ret

seis:
ldi aux1,6
rcall mostrar
ret
siete:
ldi aux1,7
rcall mostrar
ret

ocho:
ldi aux1,8
rcall mostrar
ret

nueve:
ldi aux1,9
rcall mostrar
ret

diez:
ldi aux1,10
rcall mostrar
ret

once:
ldi aux1,11
rcall mostrar
ret

doce:
ldi aux1,12
rcall mostrar
ret

trece:
ldi aux1,13
rcall mostrar
ret

catorce:
ldi aux1,14
rcall mostrar
ret

quince:
ldi aux1,15
rcall mostrar
ret

dieciseis:
ldi aux1,16
rcall mostrar
ret

//Mostrar numeros en el display


mostrar:
ldi zh,high(tabla<<1)
ldi zl,low(tabla<<1)
add zl, aux1
lpm aux1, z
out porta,aux1
ret

tabla:
.db $40, $79, $24, $30, $19, $12, $2, $78, $0, $18, $8, $3, $46, $21, $6, $E

También podría gustarte