; CONFIGURA UNA TABLA DE 16 DATOS CON LA INSTRUCCION retlw ; LEE UNO A UNO CADA ELEMENTO DE LA TABLA Y ; LO MUESTRA EN LOS LEDS DEL PUERTO B, CON RETRASOS DE 1 SEGUNDO ; PARA HACER LA SIMULACION EN MPLAB, ORG=0 ; PARA CORRER EL PROGRAMA EN BOLT, ORG=800 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' org 0x800 ;MODIFIQUE A ORG 0 PARA SIMULAR EN MPLAB PUERTOS movlw H'8' ;MODIFIQUE A H'0' PARA SIMULACION EN MPLAB movwf PCLATH ;PARTE ALTA DEL CONTADOR DEL PROGRAMA clrf CLAVE100 UNO movf CLAVE100,w ;PREPARA VALOR DE W PARA DIRECCIONAR LA TABLA call TABLA movwf PORTB ;REGRESA CON ELEMENTO DE LA TABLA call retrobolt incf CLAVE100,f ;INCREMENTA 2 UNIDADES PARA DIRECCIONAR EL SIGUIENTE ELEMENTO incf CLAVE100,f movlw D'32' ;SON 32 BYTES EN LA TABLA DE DATOS subwf CLAVE100,w btfss STATUS,Z goto UNO sleep org 0x860 ;MODIFIQUE A ORG 0X60 PARA SIMULACION EN MPLAB TABLA addwf PCL,f retlw H'0' ;CADA INSTRUCCION OCUPA 2 BYTES retlw H'1' retlw H'2' retlw H'3' retlw H'4' retlw H'5' retlw H'6' retlw H'7' retlw H'8' retlw H'9' retlw H'A' retlw H'B' retlw H'C' retlw H'D' retlw H'E' retlw H'F' ;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 := 255 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