;Realice un programa que almacene en localidades de la memoria de código del microcontrolador ;una tabla mediante las instrucciones retlw, con los siguientes 8 datos hexadecimales: ;AA 20 3C 5E D9 16 0B 9F ;Muestre en los leds, LED7..LED0 en código binario, en forma consecutiva, cada uno de estos ;valores durante 1 segundo. Si los 4 bits menos significativos del dato mostrado en los leds es igual ;al valor de los microswitches SW4..SW1 (n=0…F), los leds deberán permanecer mostrando ese mismo dato. ;Programa termina con instrucción sleep. ;Si ninguno de los datos coincide con el valor de los microswitches, el programa mostrará los 8 datos ;de la tabla y termina mostrando el último dato. processor 18F2550 include include "KEYBOLT2.inc" ;ARCHIVO AUXILIAR CONTIENE MACRO Y DEFINE J equ H'80' K equ H'81' L equ H'82' CLAVE100 equ H'83' CONT equ H'84' DUMMY equ H'85' org 0x800 ;MODIFIQUE A ORG=0 PARA SIMULAR EN MPLAB PUERTOS BOLTSWITCH movlw H'8' movwf PCLATH CLRF PORTB CLRF CONT malla movf CONT,w call tabla movwf PORTB andlw H'0F' subwf CLAVE100,w btfsc STATUS,Z sleep call retrobolt incf CONT,f incf CONT,f movf CONT,w sublw D'16' btfss STATUS,Z goto malla sleep org 0x880 tabla addwf PCL,f retlw H'AA' retlw H'20' retlw H'3C' retlw H'5E' retlw H'D9' retlw H'16' retlw H'0B' retlw H'9F' ;SUBRUTINA DE RETRASO APROX DE 1 SEGUNDO.SE PUEDE MODIFICAR A (16.4 x L) MILISEGUNDOS retrobolt: movlw D'61' ;valor de L. Modifique para cambiar el valor del retraso. movwf L lloop movlw D'255' ; w := 200 decimal movwf J ; J := w jloop: movwf K ; K := w kloop: decfsz K,f ; K = K-1, skip next if zero goto kloop decfsz J,f ; J = J-1, skip next if zero goto jloop decfsz L,f goto lloop return end