Banner publicitario de PCBWay
desktop

Problema en barra de led

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:
Un saludo

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

Espero te ayude
 

Adjuntos

  • sec.txt
    1.6 KB · Visitas: 10
Última edición:
Atrás
Arriba