TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: azenus en 19 de Agosto de 2013, 22:27:46
-
bueno compañeros tengo un gran problema con el lcd 16x2 modelo 1602a
tengo un pic 16f877a conectado con un lcd 16x2, he programado el pic y conecte el lcd con los pines D cuando enciendo el circuito solo el lcd me muestra una linea en la parte inferior de cuadros negros y no ocurre nada
gracias por su ayuda
salu2
-
bueno compañeros tengo un gran problema con el lcd 16x2 modelo 1602a
tengo un pic 16f877a conectado con un lcd 16x2, he programado el pic y conecte el lcd con los pines D cuando enciendo el circuito solo el lcd me muestra una linea en la parte inferior de cuadros negros y no ocurre nada
gracias por su ayuda
salu2
La linea de cuadros negros en la parte inferior significa que el lcd funciona , lo cual no quiere decir que ttu programa lo este exitando de buena manera ....deberas revisar el codigo
Saludos
-
pues tal ves sea el micro porque le quite el micro y lo puse a funcionar sin el micro y aun me muestra los cuadros negros
también puse a trabajar solo el micro y no me esta dando los voltage de 5 voltios de los pines de salida
bueno verificare el funcionamiento del micro y si esta bn lo volvere a programar
gracias por tu apoyo
saludos
-
si cuelgas el código sera mas fácil que encuentres una ayuda saludos
-
pues tal ves sea el micro porque le quite el micro y lo puse a funcionar sin el micro y aun me muestra los cuadros negros
también puse a trabajar solo el micro y no me esta dando los voltage de 5 voltios de los pines de salida
bueno verificare el funcionamiento del micro y si esta bn lo volvere a programar
gracias por tu apoyo
saludos
Lo mas facil es verificar el codigo en proteus ....con eso vas a solucionarte muchisimo las cosas
Saludos
-
una pregunta mi codigo esta en ccs y el programa que use para transferir los codigo al micro es winpic se puede usar winpic con programas creados en ccs
lo digo porque no tengo tanta experiencia
PD: el hardware que use es de conexión serial
saludos y grasias por su colaboración
-
una pregunta mi codigo esta en ccs y el programa que use para transferir los codigo al micro es winpic se puede usar winpic con programas creados en ccs
lo digo porque no tengo tanta experiencia
PD: el hardware que use es de conexión serial
saludos y grasias por su colaboración
Independientemente del programa que uses para programar , vos generas un archivo .hex ..que es el que vas a meter dentro del pic ....no importa con que grabador , mientras que lo grabe ya esta ....el winpic es un soft de grabacion y obiamente nesecitas un grabador ....programes en el lenguaje que programes ...el pic solo interpretara 1 y 0
Saludos
-
bueno aqui una imagen para que vean como esta el lcd cuando esta ensendido
le coloque una resistencia de 10k ohm
(http://sia1.subirimagenes.net/img/2013/08/21/130821105025309695.jpg)
saludos
-
Hola azenus, deberias de postear el codigo completo ya que normalmente este error es debido a que no inicializas correctamente el lcd.
Saludos!
-
bueno yo recién inicio en esto de la programación y se que este cogido no es el mas adecuado pero bueno asi se aprender
PD: he quitado el lcd y lo encendí solo sin el pic , y he medido los pines de datos del lcd (D0 al D7) y me ajoran voltajes muy raros que oscilan entre 1 y 5 voltios
PD2: en proteus me simula correctamente
#include <16f877a.h>
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use fast_io(c) // libreria de entrada y salida rapida
#use fast_io(b)
#include <math.h>
#define use_portd_lcd TRUE //definir portd lcd
#include<lcd.c> //libreria manejo lcd
void main(void)
{
ciclo:
set_tris_b(0xff); //todos los puerto b como entradas
set_tris_c(0x00); //todos los puertos c como salida
output_c(0x00); // iniciamos el puerto c apagados
lcd_init(); //iniciamos el lcd
disable_interrupts(GLOBAL);
printf(lcd_putc," \f ITSA SOLEDAD\nLEONARDO BAUTISTA");
delay_ms(1000);
printf(lcd_putc,"\f preparado\n pres.inicio");
float vi,vf,t1,t2,gravedad,distancia,aceleracion;// Coma flotante para las formulas
t1=0;
t2= 0;
gravedad = -9.8;
//////////////////////////////////////////////////
char i=0;
int w1,w2,w3;
int tabla[10]={1,2,3};
tabla=0;
w1=1;
w2=0;
w3=1;
do{
if(input(pin_b1)==1){printf(lcd_putc,"\fen proceso"); output_high(pin_c0);while(w1){t1=t1+0.0015; delay_ms(1);if(input(pin_b3)==1){w1=0;};};do{w1=1,t2=t2+0.0015; delay_ms(1);if(input(pin_b4)==1){printf(lcd_putc,"\fcalculando\nespere.... ");delay_ms(1000);t1=t1;t2=t2+t1;vf=t1+gravedad*t2;vi=vf-gravedad*t2;distancia=(vi*t2+1/2)*(-9.8)*t2*t2;aceleracion=(vf-vi)/t2;i=1;w2=1;w1=0;};}while(w1);}
if(input(pin_b2)==1){w3=0;};
if(input(pin_b0)==1){delay_ms(300);i++;};
if(i==1){printf(lcd_putc,"\fT1= %2.2f s \nT2= %2.2f s",t1,t2);delay_ms(300);};
if(i==2){printf(lcd_putc,"\fVi= %2.2f m/s \nVf= %2.2f m/s",vi,vf);delay_ms(300);};
if(i==3){printf(lcd_putc,"\fDis= %2.2f m \ncele= %2.2fm/s",distancia,aceleracion);delay_ms(300);};
if(i==4){i=1;};
}while(w3);
goto ciclo;
}
aque el proteus
saludos
-
Agrega una resistencia de 10Kohms a la patita de MCLR o agraga el fuse NOMCLR ya que el micro al tener activado el master clear se esta reseteando siempre,yo te recomendara agregar la resistencia. Saludos.
-
si yo le coloque la resistencia al MCLR, bueno ya lo he solucionado
1. tenia un problema de conexión del pic al lcd
gracias a todos
saludos
-
Hola azenus,
fijate en la pata del contraste del lcd, conecta un potenciometro de 10k con un extremo a positivo (5v), el otro a masa y el medio al contraste del lcd
decime si te soluciono el tema del contraste,
saludos