Autor Tema: caminata de 8 leds  (Leído 1869 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado raptor200

  • PIC10
  • *
  • Mensajes: 39
caminata de 8 leds
« en: 30 de Mayo de 2005, 06:49:00 »
Hola nuevamente soy yo, perdón por las molestias pero tengo un problea estoy iniciando en esto de los pics y estoy haciendo como práctica una caminata de leds conectados al puerto b la rutina la tome de internet que era el encender 4 leds del puerto b a continuación pongo la rutina para 4 led y tambien la midificación para 8 pero no trabaja bien porque cuenta sólo hasta el 5 led pero no retorna al inicio y tampoco encienden los ledsdepués del 5o. led, espero alguien me ayude:





;Este programa maneja una secuencia de 4 LED"s.

list    p=16c84
;----------------------------------------------------------------------
ptob    equ     06      ;el puerto b est  en la direcci¢n 06 de la memoria RAM

rota    equ     0a
reg1    equ     0b      ;se asignan nombres a algunos registros de prop¢sito general
reg2    equ     0c
reg3    equ     0d

valor1  equ     30      ;se asignan nombres a algunas constantes
valor2  equ     40
valor3  equ     50
;-----------------------------------------------------------------------

reset   org     0       ;el vector de reset es la direccion 00
        goto    inicio  ;se salta al inicio del programa
        org     7       ;el programa empieza e la direccion de memoria 7

inicio  movlw   00      ;se carga el registro W con 0
        tris    ptob    ;se programan los pines del puerto b como salidas

otra    movlw   01      ;se carga el registro W con el valor 01
        movwf   rota    ;se dispone el dato para la rotacion
hol     movf    rota,0  ;mueve el contenido del registro rota a W
        movwf   ptob    ;enciende el LED correspondiente

        call    retardo ;se mantiene el LED encendido por un momento

        rlf     rota    ;desplaza el contenido del registro un bit a la izquierda
        btfss   rota,4  ;probar si el quinto bit se enciende
        goto    hol     ;si no ha llegado al quinto bit enciende el LED que sigue
       
        goto    otra    ;si ya encendio el ultimo LED se inicia nuevamente la secuencia

retardo movlw   valor1  ;se carga el registro W con el numero valor1, es decir
                        ;con el numero 30 que se asigno al principio a valor1
        movwf   reg1    ;se traslada ese numero al registro reg1
tres    movlw   valor2  ;se carga W con el numero valor2 (40)
        movwf   reg2    ;se traslada ese numero al registro reg2
dos     movlw   valor3  ;se carga W con valor3
        movwf   reg3    ;se carga reg3 con 50

uno     decfsz  reg3    ;se decrementa el registro reg3 y si el valor es cero
        goto    uno     ;se salta a la siguiente instruccion, sino, se continua
                        ;decrementandolo
        decfsz  reg2    ;igual que el anterior
        goto    dos
        decfsz  reg1    ;igual al anterior
        goto    tres
        retlw   00      ;termina la subrutina retardo y vuelve al programa principal

        end
;------------------------------------------------------------------------
;       Fusibles de programacion

;       Osc             XT
;       Watchdog        OFF
;       Code protect    OFF
;       Power-Up-Timer  ON

;       Micro.          PIC16C84
;=========================================================================

esta es la modificación que le hice para los 8 leds del puerto b pero no sale

;Este programa maneja una secuencia de 4 LED"s.

list    p=16c84
;----------------------------------------------------------------------
ptob    equ     06      ;el puerto b est  en la direcci¢n 06 de la memoria RAM

rota    equ     0a
reg1    equ     0b      ;se asignan nombres a algunos registros de prop¢sito general
reg2    equ     0c
reg3    equ     0d

valor1  equ     30      ;se asignan nombres a algunas constantes
valor2  equ     40
valor3  equ     50
;-----------------------------------------------------------------------

reset   org     0       ;el vector de reset es la direccion 00
        goto    inicio  ;se salta al inicio del programa
        org     7       ;el programa empieza e la direccion de memoria 7

inicio  movlw   00      ;se carga el registro W con 0
        tris    ptob    ;se programan los pines del puerto b como salidas

otra    movlw   01      ;se carga el registro W con el valor 01
        movwf   rota    ;se dispone el dato para la rotacion
hol     movf    rota,0  ;mueve el contenido del registro rota a W
        movwf   ptob    ;enciende el LED correspondiente

        call    retardo ;se mantiene el LED encendido por un momento

        rlf     rota    ;desplaza el contenido del registro un bit a la izquierda
        btfss   rota,7  ;probar si el quinto bit se enciende
        goto    hol     ;si no ha llegado al quinto bit enciende el LED que sigue
       
        goto    otra    ;si ya encendio el ultimo LED se inicia nuevamente la secuencia

retardo movlw   valor1  ;se carga el registro W con el numero valor1, es decir
                        ;con el numero 30 que se asigno al principio a valor1
        movwf   reg1    ;se traslada ese numero al registro reg1
tres    movlw   valor2  ;se carga W con el numero valor2 (40)
        movwf   reg2    ;se traslada ese numero al registro reg2
dos     movlw   valor3  ;se carga W con valor3
        movwf   reg3    ;se carga reg3 con 50

uno     decfsz  reg3    ;se decrementa el registro reg3 y si el valor es cero
        goto    uno     ;se salta a la siguiente instruccion, sino, se continua
                        ;decrementandolo
        decfsz  reg2    ;igual que el anterior
        goto    dos
        decfsz  reg1    ;igual al anterior
        goto    tres
        retlw   00      ;termina la subrutina retardo y vuelve al programa principal

        end
;------------------------------------------------------------------------
;       Fusibles de programacion

;       Osc             XT
;       Watchdog        OFF
;       Code protect    OFF
;       Power-Up-Timer  ON

;       Micro.          PIC16C84
;=========================================================================



de antemano gracias y espero ayuda

Desconectado raptor200

  • PIC10
  • *
  • Mensajes: 39
RE: caminata de 8 leds
« Respuesta #1 en: 30 de Mayo de 2005, 07:03:00 »
Escrito originalmente por raptor200
Hola nuevamente soy yo, perdón por las molestias pero tengo un problea estoy iniciando en esto de los pics y estoy haciendo como práctica una caminata de leds conectados al puerto b la rutina la tome de internet que era el encender 4 leds del puerto b a continuación pongo la rutina para 4 led y tambien la midificación para 8 pero no trabaja bien porque cuenta sólo hasta el 5 led pero no retorna al inicio y tampoco encienden los ledsdepués del 5o. led, espero alguien me ayude:





;Este programa maneja una secuencia de 4 LED"s.

list    p=16c84
;----------------------------------------------------------------------
ptob    equ     06      ;el puerto b est  en la direcci¢n 06 de la memoria RAM

rota    equ     0a
reg1    equ     0b      ;se asignan nombres a algunos registros de prop¢sito general
reg2    equ     0c
reg3    equ     0d

valor1  equ     30      ;se asignan nombres a algunas constantes
valor2  equ     40
valor3  equ     50
;-----------------------------------------------------------------------

reset   org     0       ;el vector de reset es la direccion 00
        goto    inicio  ;se salta al inicio del programa
        org     7       ;el programa empieza e la direccion de memoria 7

inicio  movlw   00      ;se carga el registro W con 0
        tris    ptob    ;se programan los pines del puerto b como salidas

otra    movlw   01      ;se carga el registro W con el valor 01
        movwf   rota    ;se dispone el dato para la rotacion
hol     movf    rota,0  ;mueve el contenido del registro rota a W
        movwf   ptob    ;enciende el LED correspondiente

        call    retardo ;se mantiene el LED encendido por un momento

        rlf     rota    ;desplaza el contenido del registro un bit a la izquierda
        btfss   rota,4  ;probar si el quinto bit se enciende
        goto    hol     ;si no ha llegado al quinto bit enciende el LED que sigue
       
        goto    otra    ;si ya encendio el ultimo LED se inicia nuevamente la secuencia

retardo movlw   valor1  ;se carga el registro W con el numero valor1, es decir
                        ;con el numero 30 que se asigno al principio a valor1
        movwf   reg1    ;se traslada ese numero al registro reg1
tres    movlw   valor2  ;se carga W con el numero valor2 (40)
        movwf   reg2    ;se traslada ese numero al registro reg2
dos     movlw   valor3  ;se carga W con valor3
        movwf   reg3    ;se carga reg3 con 50

uno     decfsz  reg3    ;se decrementa el registro reg3 y si el valor es cero
        goto    uno     ;se salta a la siguiente instruccion, sino, se continua
                        ;decrementandolo
        decfsz  reg2    ;igual que el anterior
        goto    dos
        decfsz  reg1    ;igual al anterior
        goto    tres
        retlw   00      ;termina la subrutina retardo y vuelve al programa principal

        end
;------------------------------------------------------------------------
;       Fusibles de programacion

;       Osc             XT
;       Watchdog        OFF
;       Code protect    OFF
;       Power-Up-Timer  ON

;       Micro.          PIC16C84
;=========================================================================

esta es la modificación que le hice para los 8 leds del puerto b pero no sale

;Este programa maneja una secuencia de 4 LED"s.

list    p=16c84
;----------------------------------------------------------------------
ptob    equ     06      ;el puerto b est  en la direcci¢n 06 de la memoria RAM

rota    equ     0a
reg1    equ     0b      ;se asignan nombres a algunos registros de prop¢sito general
reg2    equ     0c
reg3    equ     0d

valor1  equ     30      ;se asignan nombres a algunas constantes
valor2  equ     40
valor3  equ     50
;-----------------------------------------------------------------------

reset   org     0       ;el vector de reset es la direccion 00
        goto    inicio  ;se salta al inicio del programa
        org     7       ;el programa empieza e la direccion de memoria 7

inicio  movlw   00      ;se carga el registro W con 0
        tris    ptob    ;se programan los pines del puerto b como salidas

otra    movlw   01      ;se carga el registro W con el valor 01
        movwf   rota    ;se dispone el dato para la rotacion
hol     movf    rota,0  ;mueve el contenido del registro rota a W
        movwf   ptob    ;enciende el LED correspondiente

        call    retardo ;se mantiene el LED encendido por un momento

        rlf     rota    ;desplaza el contenido del registro un bit a la izquierda
        btfss   rota,7  ;probar si el quinto bit se enciende
        goto    hol     ;si no ha llegado al quinto bit enciende el LED que sigue
       
        goto    otra    ;si ya encendio el ultimo LED se inicia nuevamente la secuencia

retardo movlw   valor1  ;se carga el registro W con el numero valor1, es decir
                        ;con el numero 30 que se asigno al principio a valor1
        movwf   reg1    ;se traslada ese numero al registro reg1
tres    movlw   valor2  ;se carga W con el numero valor2 (40)
        movwf   reg2    ;se traslada ese numero al registro reg2
dos     movlw   valor3  ;se carga W con valor3
        movwf   reg3    ;se carga reg3 con 50

uno     decfsz  reg3    ;se decrementa el registro reg3 y si el valor es cero
        goto    uno     ;se salta a la siguiente instruccion, sino, se continua
                        ;decrementandolo
        decfsz  reg2    ;igual que el anterior
        goto    dos
        decfsz  reg1    ;igual al anterior
        goto    tres
        retlw   00      ;termina la subrutina retardo y vuelve al programa principal

        end
;------------------------------------------------------------------------
;       Fusibles de programacion

;       Osc             XT
;       Watchdog        OFF
;       Code protect    OFF
;       Power-Up-Timer  ON

;       Micro.          PIC16C84
;=========================================================================



de antemano gracias y espero ayuda


Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: caminata de 8 leds
« Respuesta #2 en: 30 de Mayo de 2005, 12:22:00 »
No pongas varias veces el mismo tema en varios subforos. Esta pregunta está contestada en el subforo de PIC.