Problema en barra de led

#1
Hola, tengo un programa en MPLAB creado para el pic 16f84A, el caso es que pretendo encender una barra de led secuencialmente con el ISIS.

EDITO-->Bueno, al final he echo otro código que vi por ahi y me funciona bien, si no fuera por que no se me encienden el primer diodo y el último XDDD

Ahí os dejo el código echo ¿ideas?

LIST P=16F84A

INCLUDE<P16F84A.INC>


__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

CBLOCK 0x0C ;Comienzo de los registros de propósito general.
GuardaDato
Contador1
ENDC


ORG 0

bsf STATUS,5
movlW 0x00 ;PORTA y PORTB como salidas.
movwf PORTA
movwf PORTB
bcf STATUS,5

et1
movlw d'6' ;Nº de posiciones que hay en la tabla
movwf Contador1


inicio
movf Contador1,W ;Cargamos el acumulador con el valor
;que tenga Contador1.
call tabla ;Y saltamos a 'tabla'.

movwf PORTB ;Cargamos la PORTB con el valor
;devuelto por la tabla.

call Retardo_500ms ;Hacemos un retardo de 500ms.

decfsz Contador1 ;Decrementamos Contador1 y:

goto inicio ;Si no es '0' vuelve a 'inicio'

goto et1 ;Si es '0' va a 'et1' y vuelve a
;a empezar el proceso.


tabla ;Sumamos al contador de programa
addwf PCL,F ;el valor de Contador1.

retlw b'10000000' ;Contador de programa+0
retlw b'01000000' ;Contador de programa+1
retlw b'00100000' ;Contador de programa+2
retlw b'00010000' ;Contador de programa+3
retlw b'00001000' ;Contador de programa+4
retlw b'00000100' ;Contador de programa+5
retlw b'00000010'
retlw b'00000001'





INCLUDE <RETARDOS.INC>

END
 
Última edición:
#2
Un saludo

Prueba cargando 8 en contador1 y poniendo orta linea en tabla
te adjunto el programa

Espero te ayude
 

Adjuntos

Última edición:

Temas similares

Arriba