Problema con PIC16F628A y matriz de LED

En tu programa no has declarado como se comportara el puerto si inputo o output
la variable Var tampoco esta declarada el compilador no sabe de que tipo es ni de donde aparecio
Como te dijeron si utilizas el reloj interno puedes declarar esas dos patillas como salidas
Busca el manual, que incluso se consigue en español o en la misma ayuda del microcode en reverencia del lenguaje
Como se declaran las variables y como se setean los puertos

Una disculpa el archivo que subi no era me equivoque este es el programa. si me pueden en caminar se los agradeceria. gracias

saludos
 

Adjuntos

  • Matriz.rar
    732 bytes · Visitas: 12
Algunas consideraciones sobre el puerto A:

En el PIC16F628A, el pin RA4 es con drenador abierto (Open Drain)
Por lo tanto, cuando a ese pin se le indica que tenga un 1 lógico, se pondrá en estado flotante, o sea, sin referencia de nivel.
Así que no podrás usarlo como un pin E/S estándar.
Para obtener un 1 lógico en ese pin, se debe colocar una resistencia pull-up.

El pin RA5 (MCLR/Vpp) cuando no es usado como reset, puede configurarse como entrada digital.
(Ver página 98 "CONFIGURATION WORD REGISTER" Bit 5 del registro CONFIG)
Ese pin no puede ser salida.

Por eso te vuelvo a sugerir que leas la hoja de datos. :estudiando:
Y eso siempre debes hacerlo cuando empieces a programar un microcontrolador que no conozcas.
¡Ah! Y ante cualquier duda también. :cool:
 
Algunas consideraciones sobre el puerto A:

En el PIC16F628A, el pin RA4 es con drenador abierto (Open Drain)
Por lo tanto, cuando a ese pin se le indica que tenga un 1 lógico, se pondrá en estado flotante, o sea, sin referencia de nivel.
Así que no podrás usarlo como un pin E/S estándar.
Para obtener un 1 lógico en ese pin, se debe colocar una resistencia pull-up.

El pin RA5 (MCLR/Vpp) cuando no es usado como reset, puede configurarse como entrada digital.
(Ver página 98 "CONFIGURATION WORD REGISTER" Bit 5 del registro CONFIG)
Ese pin no puede ser salida.

Por eso te vuelvo a sugerir que leas la hoja de datos. :estudiando:
Y eso siempre debes hacerlo cuando empieces a programar un microcontrolador que no conozcas.
¡Ah! Y ante cualquier duda también. :cool:

hola buenas tardes en el pin RA4 si tengo una resistencias de pull-up y en el RA5 eso lo desconocía como siempre lo utilizo para puro reset. lo que tengo duda es en los pines RA6 y RA7 que son del oscilador no se si puedo utilizarlos como salidas y ahi como puedo configurarlo para que las pueda utilizar. estoy programando en microcode.

saludos
 
Como haces tu simulación? ya no te aparece el error al compilar?
programacion-lenguaje-assembler-25-10-07-55-728.jpg
 
Última edición:
En efecto, pero no puedo usarlos aún.
Ya lo simulé y no hacen nada los pines.
Porque en tu código no estás indicando ningún cambio en esos pines, siempre tienes RA7 y RA6 en 0, salvo en las instrucciones que tienes comentadas.
De hecho, siempre mantienes todo el puerto A en 0.

Si durante todas las rutinas vas a mantener el puerto A en 0, no tiene sentido que lo estés declarando en todas ellas. Eso es redundante.
Bastaría con declararlo una sola vez al inicio del programa: PORTA = 0
Y no importa si RA5 nada más puede ser entrada, la lógica interna descartará las instrucciones de salida.

Por cierto... Todas tus rutinas no sirven de nada, porque dentro de cada bucle siempre realizan lo mismo.

Esto no sirve de nada:
PHP:
    For x = 1 To m
        PORTB = %00000001: GoSub IR
        PORTB = %00000001: GoSub IR
        PORTB = %00000001: GoSub IR
        PORTB = %00000001: GoSub IR
    Next x
Esto tampoco:
PHP:
    i = 1
    While i < 30 
        For x = 1 To 30
            PORTB = %11111111: GoSub IR
            PORTB = %11111111: GoSub IR
            PORTB = %11111111: GoSub IR
            PORTB = %11111111: GoSub IR
            Pause 10
        Next x
        GoTo gts
        i = i + 1
    Wend
Bueno, si sirven de algo... perder tiempo en redundancias. :rolleyes:

Trata de no juntar todas las instrucciones y procura usar el tabulador durante la escritura de tu programa, eso le dará mejor comprensión.
Nota la diferencia que se verá, así como en esos fragmentos de código.
 
Atrás
Arriba