TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: PABLOHAAA en 13 de Junio de 2006, 21:03:41

Título: AYUDA CON ACUMULADOR PALPITANTE¡¡
Publicado por: PABLOHAAA en 13 de Junio de 2006, 21:03:41
HOLA QUE TAL¡ KISIERA VER SI ALGUIEN ME PUEDE AYUDAR CON UN PROGRAMA SE TRATA DE HACER UN ACUMULADOR USANDO EL PORTB   KE EMPIESE RRECORRIENDO DE RB0 Y LLEGUE A RB7 Y SE KEDE PRENDIDO ASI SUCESIVAMENTE HASTA KE SE PRENDAN TODOS(HASTA KE AKUMULE)  Y DESPUES KE PALPITEN TODOS LEDS INTERMITENTEMENTE POR ALGNOS SEGUNDOS Y  LUEGO APLIKANDO RESET KE VUELVA ACUMULAR¡  TENGO ESHO SOLO EL EFECTO ACUMULATIVO ...
      ;====PROGRAMA PRINCIPAL==================
INICIO      BSF      PORTB,RB0
      CALL      RETARDO
      BCF      PORTB,RB0
      BSF      PORTB,RB1
      CALL      RETARDO
      BCF      PORTB,RB1
      BSF      PORTB,RB2
      CALL      RETARDO
      BCF      PORTB,RB2
      BSF      PORTB,RB3
      CALL      RETARDO
      BCF      PORTB,RB3
      BSF      PORTB,RB4
      CALL      RETARDO
      BCF      PORTB,RB4
      BSF      PORTB,RB5
      CALL      RETARDO
      BCF      PORTB,RB5
      BSF      PORTB,RB6
      CALL      RETARDO
      BCF      PORTB,RB6
      BSF      PORTB,RB7
      CALL      RETARDO
      BSF      PORTB,RB0
      CALL      RETARDO
      BCF      PORTB,RB0
      BSF      PORTB,RB1
      CALL      RETARDO
      BCF      PORTB,RB1
      BSF      PORTB,RB2
      CALL      RETARDO
      BCF      PORTB,RB2
      BSF      PORTB,RB3
      CALL      RETARDO
      BCF      PORTB,RB3
      BSF      PORTB,RB4
      CALL      RETARDO
      BCF      PORTB,RB4
      BSF      PORTB,RB5
      CALL      RETARDO
      BCF      PORTB,RB5
      BSF      PORTB,RB6
      CALL      RETARDO
      BSF      PORTB,RB0
      CALL      RETARDO
      BCF      PORTB,RB0
      BSF      PORTB,RB1
      CALL      RETARDO
      BCF      PORTB,RB1
      BSF      PORTB,RB2
      CALL      RETARDO
      BCF      PORTB,RB2
      BSF      PORTB,RB3
      CALL      RETARDO
      BCF      PORTB,RB3
      BSF      PORTB,RB4
      CALL      RETARDO
      BCF      PORTB,RB4
      BSF      PORTB,RB5
      CALL      RETARDO
      BSF      PORTB,RB0
      CALL      RETARDO
      BCF      PORTB,RB0
      BSF      PORTB,RB1
      CALL      RETARDO
      BCF      PORTB,RB1
      BSF      PORTB,RB2
      CALL      RETARDO
      BCF      PORTB,RB2
      BSF      PORTB,RB3
      CALL      RETARDO
      BCF      PORTB,RB3
      BSF      PORTB,RB4
      CALL      RETARDO
      BSF      PORTB,RB0
      CALL      RETARDO
      BCF      PORTB,RB0
      BSF      PORTB,RB1
      CALL      RETARDO
      BCF      PORTB,RB1
      BSF      PORTB,RB2
      CALL      RETARDO
      BCF      PORTB,RB2
      BSF      PORTB,RB3
      CALL      RETARDO
      BSF      PORTB,RB0
      CALL      RETARDO
      BCF      PORTB,RB0
      BSF      PORTB,RB1
      CALL      RETARDO
      BCF      PORTB,RB1
      BSF      PORTB,RB2
      CALL      RETARDO
      BSF      PORTB,RB0
      CALL      RETARDO
      BCF      PORTB,RB0
      BSF      PORTB,RB1
      CALL      RETARDO   
      BSF      PORTB,RB0
      SLEEP


PERO KISIERA SABER KE ME HACE FALTA PARA KE PRENDAN Y APAGUEN UNA VES KE SE COMPLETO LA ACUMULACION..¡¡
Título: Re: AYUDA CON ACUMULADOR PALPITANTE¡¡
Publicado por: BrunoF en 14 de Junio de 2006, 01:58:50
Hola.
Hay muchas alternativas:

Te doy una:

Despues de esa secuencia de acumulacion pone:

COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
COMF   PORTB,1
CALL     RETARDO
SLEEP

Y, ya optimizandolo un poco al ejemplo anterior, podrias optar por poner:

movlw   .10            ;Cantidad de veces que vamos a apagar/encender. En este caso serian 5 apagadas y 5 encendidas
movwf   INVERTIR  ;(declará previamente este registro)
Cambio
call       RETARDO   ;Dar tiempo para poder notar el cambio
comf    PORTB,1    ;Invertir el valor del puertoB
decfsz   INVERTIR,1
goto      Cambio

sleep

Saludos.