Problemas con Display LCD en CCS

#61
Hola mario1577

Armé el circuito en el ISIS de Proteus y compilé el código que adjuntaste en formato .TXT.
Curiosamente funciona el circuito y el programa.

Si el nombre del archivo de tu código es LCD.C probablemente ese sea el problema por lo que no funciona.

saludos
a sus ordenes
 

Adjuntos

#62
mmm que raro me descargue sus archivos y si jala, pero lo hago con el circuito que hice y ya no jala con el mismo codigo que escribieron.
 
#63
Hola mario1577

Si, verdaderamente es curioso.
Me gustaría tener ese archivo .DSN para analizarlo. Me refiero al que no funciona.

Tal vez quieras comprimirlo con WinZip o WinRar y adjuntarlo aquí.

saludos
a sus ordenes
 
#65
Pues a mi si me funciona, aún teniendo el PIC la frecuencia de trabajo a 1MHz.
Cosa que tienes que corregir, y es importante que uses la frecuencia de trabajo del programa.

Me supongo que a MrCarlos también le funciona.
Quizás tengas que reinstalar el programa, o actualizarlo.
 
Última edición:
#66
Hola mario1577

Creo que no vamos a descubrir qué está pasando.
Probé el circuito que adjuntaste pero no tengo el archivo LCD.COF que le asignas al PIC. El que tu realizaste.

Si le asigno el que se generó con el código que adjuntaste en tu mensaje original si funciona.

Qué te parece si lo dejamos de ese tamaño ??

La diferencia que tenemos es que yo los nombré TheCode.xxx y Tú LCD.xxx; es por eso que creo que falla en la simulación.

En el código que adjuntaste haces referencia en la 4Ta línea: #include <lcd.c>
Así que como tu Código tiene el mismo nombre es ahí, creo, donde falla. Se confunde el ISIS de Proteus.

saludos
a sus ordenes
 
#67
No MrCarlos, ese no es el problema.
El programa asume cual es el código fuente, y cuales son las librerías.
El programa se puede llamar igual que alguna librería, incluso tener la misma extensión.
Y ésto se logra ya que código fuente y librería no residen en la misma carpeta.
Es bien sabido que dos archivos con el mismo nombre y extensión, no se pueden tener en la misma carpeta.

Los archivos *.cof solo son para hacer debug al programa, pero genéricamente hacen lo mismo que el *.hex.

Debe ser otro problema.
 
Última edición:
#68
Hola D@rkbytes

Efectivamente así es.

Hablé (Escribí) si haber estudiado antes el manual que tengo.
Vi también que es diferente cuando se hace un #include con <. . .> que con “. . . ”
En fin yo lo dejo de ese tamaño no sé que estará pasando.

saludos
a sus ordenes
 
#70
Hola D@rkbytes

Efectivamente así es.

Hablé (Escribí) si haber estudiado antes el manual que tengo.
Vi también que es diferente cuando se hace un #include con <. . .> que con “. . . ”
En fin yo lo dejo de ese tamaño no sé que estará pasando.

saludos
a sus ordenes
Pues si, se supone que al escribir #include "mi_lib.h" se refiere a cuando la librería está en la carpeta del proyecto.
Y cuando se escribe #include <mi_lib.h> se refiere a archivos en las carpetas destinadas a las librerías.
Sin embargo en el PCWHD Compiler también se puede escribir #include "mi_lib.h"
y hacer referencia a un archivo de una carpeta remota. (Por default Devices/Drivers) ó las que definamos.
Así con esto, se puede ver que el programa hace mucho por nosotros, ya que busca los archivos.

Saludos.
 
Última edición:
#71
Creo que es el compilador porque me instale el proteus 8, ya que tenia el 7.7 y puse el programa que me mandaste Hola D@rkbytes y si jalo ya, pero copie ese mismo programa e hice uno nuevo y lo simule en proteus y no jala, que podra ser??



lo extraño es que en protoboard si fi funciona el programa que me enviaste D@rkbytes y tambien el mio
 
Última edición:
#72
Creo que es el compilador porque me instale el proteus 8, ya que tenia el 7.7 y puse el programa que me mandaste Hola D@rkbytes y si jalo ya, pero copie ese mismo programa e hice uno nuevo y lo simule en proteus y no jala, que podra ser??



lo extraño es que en protoboard si fi funciona el programa que me enviaste D@rkbytes y tambien el mio
Existía un problema anteriormente con respecto a la librería LCD.C en alguna versión del PCWHD
No recuerdo cual, motivo por el cual me olvide de programar en C con ese compilador.
Luego un día por ahí leí, que se corregía actualizando el programa. Fue lo que hice y funciono.
Sin embargo aún sigue teniendo problemas en otras cosas, y por eso no lo considero muy bueno.
Tiene muchas cosas que no me agradan con respecto a otros programas, que en varios aspectos lo superan.

Pero también recuerdo que el error no solo era en simulación, también era físicamente.
No se mostraba nada en la pantalla. Y se soluciono hasta que actualice la versión del PCWHD.

PD:
Proteus no se queda atrás, y también tiene muchas malas historias que contar.

Saludos.
 
#73
Tambien lo mas extraño esque comenzo a fallar desde ayer, porque en la mañan si me simulaba ese programa, despues empece a simular con lcd y teclado pero no funcionaba, habia investigado que era un bug del proteus pero pues apartir de ahi ya no me funciono nada
 
#74
Usa el Revo Uninstaller y le das a Advanced, seleccionando todos los registros que te muestre, y los borras.
Así te dejará el sistema libre de rastros de la instalación de proteus. (No es muy confiable, pero suele serlo)
Yo en esos casos de desinstalar programas sin dejar rastro, lo hago manualmente, pero se requiere conocimiento.
Luego reinicias y vuelves a instalar, por lo regular funciona todo otra vez.
 
#75
ya funciono toda ya hice un programa de hola mundo (ya que ni ese mostraba) y el programa que hice anteriormente y ya los muestra el lcd, lo que hice fue volver a instalar el compilador la version 4.13 y ya jalo, gracias por la ayuda
 
#76
Lo ves, ahora que ya resolviste tu problema, tienes más por aprender, y verás que existen muchas cosas nuevas.
Así es esto, y siempre se aprende algo nuevo.

Te deseo mucha suerte.
 
#77
Buen día para todos. tengo un problema en la visualización de la LCD 2X16 mediante micro 16f877A.
resulta que el programa que esta echo en PCW funciona a la perfección en el simulador Proteus. pero cuando pruebo físicamente en la protoboard con todos los elementos del montaje en la visualización aparecen saltos y los valores no se ven estables, parece como si la visualización estuviera alocada.

despliego el programa.

Código:
#include <16f877a.h> 
#device adc=10                    // Set ADC resolution a 10Bit
#fuses NOWDT,HS
#use delay(clock=20M) 
#include <lcd.c>
#include <math.h>

void main (void){
int16 q;
float h,HR,x,d;

   setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
   setup_adc(ADC_CLOCK_INTERNAL);       // Inicialización ADC con una rate de Crystal/20MHz  
   delay_us(10);                  // El modulo ADC es lento, necesita algo de tiempopara el ajuste.    
   lcd_init();                            // Enciende LCD
   delay_ms(100);

for(;;){  
      set_adc_channel(0);              // Activa canal ADC 0
      delay_us(20);                    // Espera 20 milisegundos
      q = read_adc();                  // Captura la corriente y la lee ADC
      h = 5.0*q/1024.0;                // Valor en tención del ADC
      x = h-3.05;                      // Resta el valor de tención al 100% establecido
      d = (100*x)/0.55;          // Se multiplica la resta*100 y se divide por 0.55 que es el 100%
      HR = 100-d;  

printf(lcd_putc,"\fVol = %2.3f",h); 
printf(lcd_putc,"\nHR = %01.2f%%     ",HR); // Imprime el valor en LCD
      delay_ms(100);
  }         
}
 
Última edición por un moderador:
#78
Prueba quitando el "\f" para evitar que la pantalla se esté limpiando cada 100Ms.
Deja la instrucción así...
printf(lcd_putc,"Vol = %2.3f",h);

Suerte.
 
#79
hola, había tenido muchos problemas para utilizar mi display con un pic16f628a hasta el momento, me ah ayudado el archivo de prueba que adjunto D@rkbytes es el único archivo el cual me a funcionado a la perfeccion y pude descartar que no sirvieran mis display, el problema es que cuando utilizo mi librería LCD.C aun que habilite el puerto b no puedo lograr alguna visualización agradecería su ayuda eh bajado librerías actualizadas como la flex420 sin resultados
 
#80
hola, había tenido muchos problemas para utilizar mi display con un pic16f628a hasta el momento, me ah ayudado el archivo de prueba que adjunto D@rkbytes es el único archivo el cual me a funcionado a la perfeccion y pude descartar que no sirvieran mis display, el problema es que cuando utilizo mi librería LCD.C aun que habilite el puerto b no puedo lograr alguna visualización agradecería su ayuda eh bajado librerías actualizadas como la flex420 sin resultados
Sube dentro de un archivo comprimido el programa que no te funciona, incluyendo tu librería.

Saludos.
 
Arriba