hola amigos, saoy nuevo en esto de los pic y resulta que tengo un proyecto pequeño, que consiste en presionar un pulsador y que este marque el numero 1, otro pusador que al presioanrlo marque el numero 2 y por ultimo un pulsador que al presioanrlo marque el numero 3. el problema es el siguiente:
he realizado una sintaxis para hacer esto, pero al momento de presionar el boton los led quedan parpadeando y no se quedan iliminados permanentemente mientras esta presionado el boton. la idea es que tengo que formar el numero con un conjunto de led a la salida del pic, esto lo realizo formando unos segmento con led en serie, en total formo 7 segmento con 4 led en serie cada segmento. la logica para sacar los numeros debe estar bien, puesto que mmuestra los datos, pero quedan parpadenando.
la sintaxis es:
#byte puerto_b = 06 esto no se muy bien para que se usa
#byte puerto a= 06
void main (void){ comienza el programa
set_tris_b(0x00); se declara puerto b como salida
puerto_b=0; se pone puerto b en cero
set_tris_a(0xff); se declara puerto a como entrada
puerto_a=0; se pone a cero el puerto a
dc{
if(!input (pin_a0)){ pregunta si esta presioado la entrada a0
bit_set (puerto_b, 3); si es correcto saque por la puerta b dos segmento la idea es
bit_set (puerto_b, 6); formar el uno
else{ de lo contrario deje la salida en cero
bit_clear(puerto_b, 3);
bit_clear(puerto_b, 6);
}
if(!input (pin_a1)){ pregunta si esta presioado la entrada a1
bit_set (puerto_b, 1); si es correcto saque por la puerta b cinco segmento la idea
bit_set (puerto_b, 3); es formar el dos
bit_set (puerto_b, 4);
bit_set (puerto_b, 5);
bit_set (puerto_b, 7);
}
else{
bit_clear(puerto_b, 1);
bit_clear(puerto_b, 3);
bit_clear(puerto_b, 4);
bit_clear(puerto_b, 5);
bit_clear(puerto_b, 7);
}
if(!input (pin_a2)){ pregunta si esta presioado la entrada a1
bit_set (puerto_b, 1); si es correcto saque por la puerta b cinco segmento la idea
bit_set (puerto_b, 3); formar el 3
bit_set (puerto_b, 4);
bit_set (puerto_b, 6);
bit_set (puerto_b, 7);
}
else{
bit_clear(puerto_b, 1);
bit_clear(puerto_b, 3);
bit_clear(puerto_b, 4);
bit_clear(puerto_b, 6);
bit_clear(puerto_b, 7);
}
}
while (true);
}
aparentemente esta muy carretero, y la idea es hacer una sintaxis que inicialmente pregunte que boton esta presionado y uina ves identifiacdo que boton es realizar el sacado de datos, para mi que esto no esta bien..
se agradese su ayuda
he realizado una sintaxis para hacer esto, pero al momento de presionar el boton los led quedan parpadeando y no se quedan iliminados permanentemente mientras esta presionado el boton. la idea es que tengo que formar el numero con un conjunto de led a la salida del pic, esto lo realizo formando unos segmento con led en serie, en total formo 7 segmento con 4 led en serie cada segmento. la logica para sacar los numeros debe estar bien, puesto que mmuestra los datos, pero quedan parpadenando.
la sintaxis es:
#byte puerto_b = 06 esto no se muy bien para que se usa
#byte puerto a= 06
void main (void){ comienza el programa
set_tris_b(0x00); se declara puerto b como salida
puerto_b=0; se pone puerto b en cero
set_tris_a(0xff); se declara puerto a como entrada
puerto_a=0; se pone a cero el puerto a
dc{
if(!input (pin_a0)){ pregunta si esta presioado la entrada a0
bit_set (puerto_b, 3); si es correcto saque por la puerta b dos segmento la idea es
bit_set (puerto_b, 6); formar el uno
else{ de lo contrario deje la salida en cero
bit_clear(puerto_b, 3);
bit_clear(puerto_b, 6);
}
if(!input (pin_a1)){ pregunta si esta presioado la entrada a1
bit_set (puerto_b, 1); si es correcto saque por la puerta b cinco segmento la idea
bit_set (puerto_b, 3); es formar el dos
bit_set (puerto_b, 4);
bit_set (puerto_b, 5);
bit_set (puerto_b, 7);
}
else{
bit_clear(puerto_b, 1);
bit_clear(puerto_b, 3);
bit_clear(puerto_b, 4);
bit_clear(puerto_b, 5);
bit_clear(puerto_b, 7);
}
if(!input (pin_a2)){ pregunta si esta presioado la entrada a1
bit_set (puerto_b, 1); si es correcto saque por la puerta b cinco segmento la idea
bit_set (puerto_b, 3); formar el 3
bit_set (puerto_b, 4);
bit_set (puerto_b, 6);
bit_set (puerto_b, 7);
}
else{
bit_clear(puerto_b, 1);
bit_clear(puerto_b, 3);
bit_clear(puerto_b, 4);
bit_clear(puerto_b, 6);
bit_clear(puerto_b, 7);
}
}
while (true);
}
aparentemente esta muy carretero, y la idea es hacer una sintaxis que inicialmente pregunte que boton esta presionado y uina ves identifiacdo que boton es realizar el sacado de datos, para mi que esto no esta bien..
se agradese su ayuda