Autor Tema: ayuda con lcd  (Leído 3797 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado adrianrs86

  • PIC10
  • *
  • Mensajes: 24
ayuda con lcd
« en: 28 de Agosto de 2008, 13:37:10 »
Hola amigos, resulta que soy nuevo utilizando el picc y ps la verdad quiero manejar un lcd con las librerias para eso he hecho un pequeño programita de prueba pero resuslta que no me muestra nada y ps quiero que me ayuden aqui les dejo el programa


#include "C:\Documents and Settings\Administrador\Mis documentos\prueba lcd\main.h"


#define LCD_ENABLE_PIN PIN_B0
#define LCD_RS_PIN PIN_B1
#define LCD_RW_PIN PIN_B2
#define LCD_DATA_PORT PORTC
#define LCD_TYPE 2
#define LCD_TRIS_LOCATION TRISC
#include <lcd2.c>

void main()
{

 setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   // TODO: USER CODE!!

   lcd_init();// ‘inicializo el LCD sin cursor.



   printf(lcd_putc("\fReady...\n"));

     
}


ahhh se me olvidaba decirles que estoy manejando un lcd de 8 bits

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ayuda con lcd
« Respuesta #1 en: 28 de Agosto de 2008, 14:16:48 »
Hola

Viendolo a primera vista tienes un error en el printf, quita los parentesis
Código: [Seleccionar]
printf(lcd_putc, "\fReady...\n");

Recuerdo esa libreria que estas utlizando de otro post anterior, usa el buscador.

Saludos
El papel lo aguanta todo

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: ayuda con lcd
« Respuesta #2 en: 28 de Agosto de 2008, 18:50:42 »
por q no lo usas a 4 bits, y la libreria q viene con el ccs?
Aca hay un hilo q trata al respecto, cualquier duda avisa
http://www.todopic.com.ar/foros/index.php?topic=21348.0

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: ayuda con lcd
« Respuesta #3 en: 28 de Agosto de 2008, 19:01:18 »
De acuerdo con gera... a 4 bits es mejor... te ahorras cuatro pines del micro que te pueden ser muy útiles para otra cosa.
Como te dijo MLO, ya se ha tratado este tema bastante, usa el buscador y seguro encuentras lo que buscas.
Saludos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado adrianrs86

  • PIC10
  • *
  • Mensajes: 24
Re: ayuda con lcd
« Respuesta #4 en: 30 de Agosto de 2008, 23:25:59 »
Hola amigos ya solucione el problemita que tenia,  solo era cuestion de conexiones pues no sabia como venian por defecto por la libreria lcd2.c, pero ahora me surgio otro problema y es que los bits de control (rs,rw y e) para el lcd vienen para A0,A1 y A2 y yo estos pines los necesito para la conversion A/D pues necesariamente tengo que poner uno de estos analogico por las configuraciones que permite el micro 16f877a, sera que alguien me dice como puedo cambiar esos bits de control del lcd a otro puerto????

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ayuda con lcd
« Respuesta #5 en: 30 de Agosto de 2008, 23:35:21 »
Hola.

Firepic te sugirio usar la libreria flexlcd.c esta libreria permite asignar los pines como desees. Claro que a 4 bits, pero mejor, ya que usas menos pines

Saludos
El papel lo aguanta todo

Desconectado adrianrs86

  • PIC10
  • *
  • Mensajes: 24
Re: ayuda con lcd
« Respuesta #6 en: 01 de Septiembre de 2008, 09:28:48 »
Hola amigos que pena yo molestar tanto jejeje,pues si ya me resigne voy a trabajar con el lcd de 4 bits :), ahora el problema es que yo necesito mostrar el resultado de dos conversiones a/d lo cual las estoy leyendo por los pines A0 y A1 y pues si muestralos valore pero el problema es que cuando vario una una señal analoga (con un potenciometro) se varian las dos señales y yo necesito que varien independientemente aqui dejo el codigo por si hay un error.

#include <16F877A.h>
#device adc=10               ///   libreria para el manejo del pic16f877a
#use delay(clock=4000000)          ///   declara  la frecuencia del cristal
#fuses HS,NOWDT,NOPUT,NOLVP,NOBROWNOUT,NOWRT,NOPROTECT
#include <lcd.c> 
void main(void)
{
float b,v,r,t;
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
b=read_adc();
set_adc_channel(0);
delay_us(10);
r=read_adc();
set_adc_channel(1);

lcd_init();
lcd_gotoxy(4,1);
lcd_putc("CONTROL DE \n");
lcd_gotoxy(4,20);
lcd_putc("TEMPERATURA");
delay_ms(2000);
lcd_putc("\f");
while(1)
{
b=read_adc();
v=0.004887585*b;
delay_ms(10);
r=read_adc();
t=(-0.05454*r)+80;
delay_ms(10);
lcd_gotoxy(1,1);
printf(LCD_PUTC,"Set Point=%4.2f V",v);
lcd_gotoxy(1,5);
printf(LCD_PUTC,"Temperat=%4.2f C",t);
}


}   // fin de programa

ahhh y otra cosita, como pueden ver estoy haciendo operaciones con decimales , me pueden decir hasta con cuantos decimales puedo trabajar

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ayuda con lcd
« Respuesta #7 en: 01 de Septiembre de 2008, 10:26:53 »
Hola.

El problema esta en que no asignas el canal antes de la conversion. Deberia ser algo asi:

Código: C#
  1. ...
  2. while(1)
  3. {
  4. set_adc_channel(0);
  5. delay_us(10);
  6. b=read_adc();
  7. v=0.004887585*b;
  8. set_adc_channel(1);
  9. delay_ms(10);
  10. r=read_adc();
  11. t=(-0.05454*r)+80;
  12. delay_ms(10);
  13. lcd_gotoxy(1,1);
  14. printf(LCD_PUTC,"Set Point=%4.2f V",v);
  15. lcd_gotoxy(1,5);
  16. printf(LCD_PUTC,"Temperat=%4.2f C",t);
  17. }

Saludos
El papel lo aguanta todo

Desconectado adrianrs86

  • PIC10
  • *
  • Mensajes: 24
Re: ayuda con lcd
« Respuesta #8 en: 02 de Septiembre de 2008, 10:56:30 »
oye si tenias razon, muchas gracias ya me funciono :-/

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ayuda con lcd
« Respuesta #9 en: 02 de Septiembre de 2008, 12:53:44 »
Hola.

Me alegro que te funcionara, con respecto a los decimales, tu puedes escoger cuantos quieres visualizar en la asignacion del printf, tal como esta posteado sacas 2 decimales (%4.2f), si quieres mas, cambia el numero a mas. Hay otro formato de visualizacion que es el exponencial y se coloca %e.

Saludos
El papel lo aguanta todo