Escuela Politécnica Nacional Sistema Microprocesados Nombre: Correa Defaz Lenin Andrés Fecha: 18/08/2020 Escribir el programa de barrido de teclado modificado .def tempo=r16 .def tecla=r17 .def ante=r18 .def columna=r19 .def fila=r20 .def aux=r21 .cseg ldi out ldi out out .org 0x00 tempo,0b0001_1111 ; salida leds PA0 a PA4 ddra,tempo tempo,0b0000_0000; nada ddrc,tempo ddrd,tempo ldi tempo,0b1110_0000 out porta,tempo ldi tempo,0b1111_1111 out portc,tempo out portd,tempo in tempo,mcucr andi tempo,0b11101111 out mcucr,tempo ldi aux,4 ldi ante,16 ldi out ldi out Lazo_barrido: tempo,0b1111_0000 ;F salida, C:entradas 0B_C3_C2_C1_C0_F3_F2_F1_F0 ddrb,tempo tempo,0b0000_1111; F:Salidas 0L C:1L portb,tempo ldi columna,16 ldi tempo,0b0000_1111 ; Leo las columnas out portb,tempo sbis pinb,0 ldi columna,0 sbis pinb,1 ldi columna,1 sbis pinb,2 ldi columna,2 sbis pinb,3 ldi columna,3 cpi columna,16 ;ninguna tecla presionada breq tecla_soltada ldi tempo,0b0000_1111 ;Filas:entrada, Columnas:salida out ddrb,tempo ldi tempo, 0b1111_0000 ;pull up out portb,tempo sbis pinb,4;leo las Filas ldi fila,0 sbis pinb,5 ldi fila,1 sbis pinb,6 ldi fila,2 sbis pinb,7 ldi fila,3 mul fila,aux ;Filas =4*Filas add columna,R0; Columna= 4F+C clr R0 cp columna,ante ;compara con la tecla anterior breq lazo_barrido mov ante,columna tecla_presionada: ori columna,0b1111_0000 out porta,columna rjmp lazo_barrido tecla_soltada: ;si no presionada nada ldi tempo,0b1110_0000 ; me manda OL a la salida out porta,tempo rjmp lazo_barrido SIMULACIO N: TECLA CERO: TECLA UNO: TECLA NUEVE: TECLA 15: TECLADO IMPLEMENTANDO NUMERO = 4* #FILA + #COLUMNA EJEMPLO: (CUANDO SE LEE COMO ENTRADAS) SI PB0= 0L, ENTONCES #COLUMNA=0 Y PB6=OL, ENTONCES #FILA= 2 NUMERO = 4*2+0 = 8