Autor
|
Tema: ayuda a programar un pic 16f84a (Leído 4,060 veces)
|
dario9669
Desconectado
Mensajes: 2
|
hola quisiera hacer un programita para un pic 16f84a , el proyecto se basa de esta manera , son 3 pulsadores cada uno maneja 3 leds independientemente un pulsador de oto , po ej ; pulsador 1 : 1° pulso prende un led rojo y lo deja prendido 2° pulso prende otro led rojo y queda prendido 3° pulso prende otro led rojo y lo deja prendido 4° pulso apaga todos los led rojos
pulsador 2 : hace lo mismo que el pulsador 1 pero con led verdes , indepemdientemente del pulsador 1
pulsador 3: hace lo mismo que pulsador 1 y 2 tambien independientemente de los otros dos pulsadores . de esta forma se pueden prender los led con su respectivo pulsador de forma independiente sin importar que haga o en que estado este cada conjunto de led basicamente con la distribucion de patas del pic 16f84 seria esta
pulsador 1 =porta,0 --> led =b0,b1,b2
pulsador 2 =porta,1 --> led =b3,b4,b5
pulsador 3 =porta,2 --> led =b6,b7,a3
si alguien me puede dar una mano con esto se los voy a agradecer ya que no manejo el tema de sentencias de programacion , si puedo hacer el tema de grabar el pic con el archivo hex , MUCISIMAS GRACIAS A TODOS UN ABRAZO
|
|
|
En línea
|
|
|
|
xiruko
Desconectado
Mensajes: 438
|
No creo que nadie vaya a hacerte el programa, o bueno al menos hablo por mí y ya te digo que no te lo haré.
Y bueno para darte un poco de ayuda, tienes que saber que los pulsadores padecen de rebotes con lo que para detectar cuando se ha pulsado no basta con leer el pin al que este conectado y ver su estado, ya que así verás que los leds se te encienden y apagan más de una vez cuando hagas solo una pulsación.
En su lugar, deberías tener dos variables, una para detectar el estado anterior del pulsador y una para detectar el estado actual. Si la anterior estaba en 0 y el actual está en 1 significa que ha habido un flanco de subida y tendrías que encender el led. Si quieres hacerlo por flanco de bajada pues sería al revés. Así para evitar los rebotes, solo te bastará con tener un flag que lo pongas a 0 cuando detectes un flanco de subida (o bajada, como quieras) y que lo vuelvas a poner a 1 al cabo de, por ejemplo, 400 o 500 msec. Y claro, para detectar si se ha pulsado habrían dos condiciones: 1. que se detecte un flanco de subida, y 2. que el flag esté a 1.
De esta manera conseguirás detectar la pulsación solo 1 vez sin rebotes y sin que pasen cosas que no quieres que pasen.
Un saludo!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
pic 16F84A
Electrónica
|
niclo
|
1
|
2,966
|
30 Diciembre 2004, 06:38 am
por jon6195
|
|
|
Pasar de 16F84A a 16F627
Electrónica
|
Meta
|
0
|
3,593
|
10 Abril 2009, 12:14 pm
por Meta
|
|
|
En C he encontrado este código. [code]#include<16f84A.h> #fuses XT,NOLVP,NOWDT
Electrónica
|
Meta
|
2
|
6,046
|
20 Enero 2011, 13:50 pm
por Meta
|
|
|
[Peticion] Algun .Hex para probar mi 16f84a
Electrónica
|
andres_5
|
0
|
4,736
|
30 Enero 2011, 21:45 pm
por andres_5
|
|
|
Uso de USART con pic 16f84a
Electrónica
|
andres_5
|
0
|
3,583
|
29 Febrero 2012, 01:53 am
por andres_5
|
|