TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: carlos6904817 en 08 de Julio de 2005, 15:34:00
-
Saludos a todos.
si me pudieran ayudar con un ejemplo con el comando button
La pregunta mia es:
necesito un ejemplo en pbp o proton para encender uno a uno 3 o 5 leds con un solo boton y al llegar al final del ultimo led pasar al primero.
Agradeceria la ayuda de uds ya que estoy aprendiendo.
Gracias.
-
Te refieres a q se encienda cada led uno a uno, osea se enciende el uno luego el dos luego el tres, luego se apagan todos y vuele a hacer lo mismo?.
-
MIRA EL COMANDO BUTTON SE CREO BASICAMENTE PARA LA ELIMINACION DE REBOTES PERO PARA QUE HACERSE PROBLEMAS SI RECIEN ESTAS APRENDIENDO USA TU INTUICION CON LAS COSAS BASICAS , MATA UNA MOSCA CON UN MATAMOSCA NO CON UNA GRANADA TE DARE UN EJEMPLO DE ELIMINADOR DE REBOTES DE REPENTE CON TU INGENIO LO USAS PAR TU COMETIDO
SUPON Q QUIERES PASAR A ALGUN PUNTO (ETIQUETA ) CUANDO SE ACTIVE UN PULSADOR PERO SOLO CUANDO PASE ESO
ASI ESE PEQUEñO BUCLE TE AYUDARA A PEDIR UNA BUENA SEñAL TE OBLIGARA A QUE EL UNO QUE ENTRE EN PULSADOR SEA UN UNO PERO BIEN DEFINIDO
COSA QUE NO OCURRE CON LOS REBOTES Y HAY CEROS QUE SE DISFRAZAN DE UNO Y PASAN ASI TODO CAMPANTES EVITA ESO Y SIGUE PRACTICANDO
COMIENZO:
IF PULSADOR =1 THEN ETIQUETA
PAUSE 20
GOTO COMIENZO
ETIQUETA:
.....
.....
....
....
IF PULSADOR ........ASI SUCESIVAMENTE
SE ACOSTUMBRA PONER RETARDOS DE 20MS PARA ELIMINAR REBOTES POR SOFTWARE VAMOS NO TE HAGAS BOLAS ...
-
me disculpan por no haber respondido antes...estaba un poco enfermo.
con respecto a mi pregunta es que con un solo pulsador poder activar cada leds ejemp:
pulsar activa led1
pulsar desactiva led1 y activa led2
pulsar desactiva led2 y activa led3
pulsar desactiva led3 y activa led4
pulsar desactiva led4 y activa led5
pero el problema que tengo con mi programa es que para que pueda activar los otros leds hay que dejar activado el pulsador , porque al soltarlo solo activa el primer led...dejo el programa que hice para que lo analizen y me digan cual es el error:
device = 16f84a
dim i as byte
dim TECLA as PORTb.0
dim VARIABLE1 as BYTE
dim led1 as portb.1
dim led2 as portb.2
dim led3 as portb.3
dim led4 as portb.4
dim led5 as portb.5
portb = %00000001
trisb = %00000001
Main:
clear
for i = 0 to 5
input tecla
If tecla=1 then
variable1=variable1+1
if variable1=1 then leds1
if variable1=2 then leds2
if variable1=3 then leds3
if variable1=4 then leds4
if variable1=5 then leds5
leds1:
led1=1
delayms 100
goto fin
leds2:
led2=1
delayms 100
goto fin
leds3:
led3=1
delayms 100
goto fin
leds4:
led4=1
delayms 100
goto fin
leds5:
led5=1
delayms 100
goto fin
fin:
endif
next i
goto main
end
-
carlos6904817 pruba con esto:
TRISB=0
TRISA.0=1
i var byte
cont var word
cont=1
PORTB=0
loop:
if PORTA.0=0 then
PORTB=cont
cont=cont*2
pause 200
endif
if cont=256 then
cont=1
endif
goto loop
end
Esto es lo que tu necesitas, lo acabo de simular en proteus y funciona ok...
El pulsante tienes que conectarlo al RA0 cuando lo pulsas te da una señal logica=0,
cada ves que pulses se ira encendiendo un led que estan conectados al puerto B...
Suerte...
Un Abrazo...
-
Gracias LordLafebre ....lo probe y funciona OK... es exactamente lo que estaba buscando.....ahora como buen principiante voy a estudiarlo.
-
Que bien me alegra que te haya funcionado, y no me des las gracias porque para eso estamos aqui para ayudarnos entre todos...
Un Abrazo...
-
Hola ......
Me parece que el unico problema de tu programa es que no tomaste ningun recaudo para que cuando tecla=0...entonces por eso te salta a el primer led ya que no se cumle con ninguna condcion del IF.....tendrias que agregarle una etiqueta de salto a input tecla y un if tecla=0 then etiqueta.
Saludos.
Ric.