TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: beatAurex1 en 25 de Julio de 2006, 21:12:34

Título: Ayuda conprograma PARA encender LEDS PICBASIC
Publicado por: beatAurex1 en 25 de Julio de 2006, 21:12:34
Hola foreros este es mi segundo post,,bueno soy nuevo en el mundo de los pics, y espero me regalen unos  minutos,bueno quiero encender 3 leds al mismo tiempo al oprimir un boton, y que cada uno dure cierto tiempo encendido, pero  no entiendo  que esta mal al  oprimirlo  solo se enciende uno y despues los demas y no todos al mismo tiempo, tambien si  alguien me puede orientar con alguna instruccion que pueda utilizar para saber si se presiono dos  veces el boton.


device 16F877A
TRISD=%11111111
   TRISB=%00000000

principal:                        'Programa Principal
            if portd.0=1 then
            GOSUB led1
            GOSUB led2
                                                                gosub   led3
            endif
            
            goto principal
            
            
            
   led1:      PORTB.1=1
            delayms 360000
            PORTB.1=0
            return
            
   led2:      PORTB.2=1
            DELAYMS 1500
            PORTB.2=0
            RETURN
            
   led3:                          PORTB.3=1
            DELAYMS 11000
            PORTB.3=0
            RETURN

Gracias
Título: Re: Ayuda conprograma PARA encender LEDS PICBASIC
Publicado por: Marioguillote en 25 de Julio de 2006, 22:17:03
Hola beatAurex1:

No se encienden todos juntos porque, precisamente los envías a encender de a uno con los gosub.

Prueba con esto en el bucle principal:

PRINCIPAL:
                 IF PORTD.0 = 0 THEN  PRINCIPAL          'Si lo mantengo en 0 al PORTD.0 se vuelve manteniendose en espera
                                                                            'Si lo pongo a uno hace la rutina que sigue
                 PORTB.1 = 1                                        'Enciendo los tres leds conectados a
                 PORTB.2 = 1                                        'los pines 1, 2 y 3 del puerto B
                 PORTB.3 = 1
                 DELAYMS 2000                                     'Después de dos segundos que se encendieron los tres
                 PORTB.1 = 0                                        'Apago el del pin 1
                 DELAYMS 2000                                     'Espero dos segundos más
                 PORTB.2 = 0                                        'Apago el del pin 2
                 DELAYMS 2000                                     'Espero dos segundos más
                 PORTB.3 = 0                                        'Apago el del pin 3
                 GOTO PRINCIPAL                                 'Reinicio la secuencia

Otra cosa, DELAYMS acepta como máximo 65535 milisegundos y en un lugar te mandaste 360000 ....

Respecto a lo de presionar dos veces el mismo botón, creo que puedes probar con las instrucciones COUNTER, o PULSIN

Espero haberte ayudado.

Saludos

Mario         
Título: Re: Ayuda conprograma PARA encender LEDS PICBASIC
Publicado por: beatAurex1 en 28 de Julio de 2006, 03:55:41
GRACIAS POR LA RESPUESTA MARIOQUILLOTE,, ME HAS DADO UN POCO DE LUZ PARA EMPEZAR EL PROGRAMA