TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: spaceluis en 14 de Junio de 2012, 01:24:50
-
hola que tal tengo el siguiente codigo:
#include <16F877A.H>
#use delay (clock= 4000000)
#fuses HS,NOWDT
#use standard_IO (A)
#include <flex_lcd.c>
VOID MAIN ()
{
SET_TRIS_A(0x01);
lcd_init();
if(input(pin_A0)==1)
{
printf(lcd_putc,"hola mundo");
WHILE(input(pin_A0)==1);
}
}
lo unico que tiene que hacer el que cuando reciba un 1 en el puerto A0 imprima el mensaje..pero no lo hace alguien sabe si falta algo??.. o cual podria ser el motivo del error.
-
Tu programa comprueba una sóla vez si el pin es 1 y luego termina. Esa condición será cierta sólo si al arrancar el PIC el pulsador está cerrado.
Mete el IF dentro de un bucle infinito y debería funcionar.
-
Asi: ;-)
hola que tal tengo el siguiente codigo:
#include <16F877A.H>
#use delay (clock= 4000000)
#fuses HS,NOWDT
#use standard_IO (A)
#include <flex_lcd.c>
VOID MAIN ()
{
SET_TRIS_A(0x01);
lcd_init();
while(true)
{
if(input(pin_A0)==1)
{
printf(lcd_putc,"hola mundo");
}
}
}
lo unico que tiene que hacer el que cuando reciba un 1 en el puerto A0 imprima el mensaje..pero no lo hace alguien sabe si falta algo??.. o cual podria ser el motivo del error.
-
Si mas que estas mal en tus fusibles
#include <16F877A.H>
#use delay (clock= 4000000)
#fuses XT,NOWDT
#use standard_IO (A)
#include <flex_lcd.c>
VOID MAIN ()
{
SET_TRIS_A(0x01);
lcd_init();
for(;;)
{
if(input(pin_A0)==1)
printf(lcd_putc,"hola mundo");
else
lcd_putc("\f");
}
}
Otra es que no se ve pero posiblemente ya modificaste o declaraste donde van los pines de la Flex LCD?
-
Asi: ;-)
hola que tal tengo el siguiente codigo:
#include <16F877A.H>
#use delay (clock= 4000000)
#fuses HS,NOWDT
#use standard_IO (A)
#include <flex_lcd.c>
VOID MAIN ()
{
SET_TRIS_A(0x01);
lcd_init();
while(true)
{
if(input(pin_A0)==1)
{
printf(lcd_putc,"hola mundo");
}
}
}
lo unico que tiene que hacer el que cuando reciba un 1 en el puerto A0 imprima el mensaje..pero no lo hace alguien sabe si falta algo??.. o cual podria ser el motivo del error.
HEY GRACIAS POR LA AYUDA...FUE ERROR DE PRINCIPIANTE
-
Asi: ;-)
hola que tal tengo el siguiente codigo:
#include <16F877A.H>
#use delay (clock= 4000000)
#fuses HS,NOWDT
#use standard_IO (A)
#include <flex_lcd.c>
VOID MAIN ()
{
SET_TRIS_A(0x01);
lcd_init();
while(true)
{
if(input(pin_A0)==1)
{
printf(lcd_putc,"hola mundo");
}
}
}
lo unico que tiene que hacer el que cuando reciba un 1 en el puerto A0 imprima el mensaje..pero no lo hace alguien sabe si falta algo??.. o cual podria ser el motivo del error.
HEY GRACIAS POR LA AYUDA...FUE ERROR DE PRINCIPIANTE
aun asi es recomendable que quites el hs y pongas el xt