hola
compañaeros del foro
acudo a ustedes para ver si me hechan una manito con este pequeño secueciandor de luces de 6 canales usando pic 16F84a, pero no lo he podido hacerlo funcionar, adjunto la imagen del error.
con este mismo programa hacerlo funcionar con Pic 16F628a, lo que no es como hacerlo, una ayuda compañeros del foro, soy un aprendiz es programacion de pics.
gracias
jose
include"p16f84a.inc" ;En esta linea se especifica la biblioteca que incluye los registros definidos
radix hex ; Esta linea indica litelares(constantes) expresados en formato hexadecimal
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; igualdades de la CPU y el mapa de memoria;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
reg equ 0x0c
con1 equ 0x0d
con2 equ 0x0e
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;; inicio del programa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0
goto inicio
inicio bsf STATUS,RP0 ; cambio al banco 1 para configurar el pic
movlw 0xff ;puerto A como entrada
movwf TRISA; puerto A como entrada
movlw 0x00 ;puerto B como salida
movwf TRISB;puerto B como salida
bcf STATUS,RP0 ;cambio al banco 0
clrf TRISA ;apago los leds a la salida
clrf con1;valor inicial de contador 1 igual a 0x00
clrf con1;valor inicial de contador 2 igual a 0x00
;;;;;;;;;;;;;;;;;;;;;; Lectura del puerto A;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
leer movf PORTA,w
sublw 0x00 ;si el valor del puerto A es 0x00 implemento efecto_uno
btfsc STATUS,Z
goto efecto_uno
movf PORTA,w
sublw 0x01 ;si el valor del puerto A es 0x01 implemento efecto_dos
btfsc STATUS,Z
goto efecto_dos
movf PORTA,w
sublw 0x02 ;si el valor del puerto A es 0x02 implemento efecto_tres
btfsc STATUS,Z
goto efecto_tres
movf PORTA,w
sublw 0x03 ;si el valor del puerto A es 0x03 implemento efecto_cuatro
btfsc STATUS,Z
goto efecto_cuatro
movf PORTA,w
sublw 0x04 ;si el valor del puerto A es 0x04 implemento efecto_cinco
btfsc STATUS,Z
goto efecto_cinco
movf PORTA,w
sublw 0x05 ;si el valor del puerto A es 0x05 implemento efecto_seis
btfsc STATUS,Z
goto efecto_seis
movf PORTA,w
sublw 0x06 ;si el valor del puerto A es 0x06 implemento efecto_siete
btfsc STATUS,Z
goto efecto_siete
movf PORTA,w
sublw 0x07 ;si el valor del puerto A es 0x07 implemento efecto_ocho
btfsc STATUS,Z
goto efecto_ocho
goto leer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; BLOQUE DE EFECTOS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
efecto_uno movlw 0x09;se coloca literal 9 porque cada efecto tiene 8 secuencias
movwf reg
leo_uno decfsz reg,f
goto fx_uno
goto leer
fx_uno movf reg,w
call tabla_uno
movwf PORTB
call retardo
goto leo_uno
tabla_uno addwf PCL,f ;;; tabla de secuencia de efecto_uno
return
retlw b'01111111'
retlw b'10111111'
retlw b'11011111'
retlw b'11101111'
retlw b'11110111'
retlw b'11111011'
retlw b'11111101'
retlw b'11111110'
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ACA DEBERIAN IR LOS DEMAS BLOQUES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DE LOS EFECTOS RESTANTES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
retardo decfsz con1,f ;; bloque retardo
goto retardo
decfsz con2,f
goto retardo
return
end