TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: bruno134 en 10 de Julio de 2012, 19:08:24
-
Ola manes, muy buena la pagina me ah ayudado bastante en mis trabajos, quisiera por favor nuevamente una ayuda. He hecho un contador ascendente y descendente que se muestra en una pantalla LCD, estoy utilizando el pic 16f628a y el compilador ccs, todo corre bien pero quiero agregarle al proyecto que el numero que sale en el LCD sea el valor de tiempo que un led deba estar encendido por supuesto al apretar un tercer boton, el led debe de prenderse el tiempo que uno pone en el LCD, quisiera saber que sentencia debo usa o como hacerlo muchas gracias espero nuevamente me ayuden.
este es el programa:
#include <16F628A.h>
#fuses INTRC_IO,NOCPD,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOMCLR
#use delay (INTERNAL=4000000) //Fosc=4Mhz
#define use_portb_lcd TRUE
#include <lcd.c>
char tabNum[10]={'0','1','2','3','4','5','6','7','8','9'},i=0,j=0;
void visualizar()
{
lcd_gotoxy(8,1);
printf(lcd_putc, "%c",tabNum);
printf(lcd_putc, "\b");
lcd_gotoxy(7,1);
printf(lcd_putc, ".");
lcd_gotoxy(10,1);
printf(lcd_putc, "XXX");
lcd_gotoxy(6,1);
printf(lcd_putc, "%c",tabNum[j]);
printf(lcd_putc, "\b");
}
void cuenta()
{
if(!input(PIN_A0))
{
do
{
}while(!input(PIN_A0));
i++;
if(i==10)
{
i=0; j++;
if(j==3)
{
j=3;
if(i==0);(j==3);
{i=0;
}
}
}
}
if(!input(PIN_A1))
{
do
{
}while(!input(PIN_A1));
i--;
if(i==-1)
{
i=9;j--;
if(j==-1)
{
j=0;
if(i==-1);(j==-1);
{i=0;
}
}
}
}
}
void main(void)
{
lcd_init();
printf(lcd_putc, " XXXXXXXXXXXX\n ");
delay_ms(3000);
printf(lcd_putc, "\f");
printf(lcd_putc, " \nXXXXXXXXXX");
lcd_gotoxy(8,1);
do
{
visualizar();
cuenta();
}while(TRUE);
}
-
Hola bruno134,
Te esta funcionando bien lo del LCD?
Dentro del MAIN, deverias agregar algo como esto:
do
{
visualizar();
cuenta();
if(!input(BOTON_DISPARO))
{
delay_ms(tu_tiempo);
}
}while(TRUE);
Saludos!
-
...