Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

31/08/2006 #1


LCD 16x2 ejemplo CCS para 16F628a
Gracias al foro ahora ya tengo algunas cosas un poco mas claras:

Utilizaré CCS (lenguaje C), mi display es compatible (16x2) y bus de 4 u 8 bits (cualquiera), PIC 16F628A.

Me gustaría que alguien me pasara un ejemplo para hacer funcionar mi lcd,

algo sencillo (por el momento me conformo con un "hola mundo", después evolucionaré en su uso).

He probado cantidad de código (he revisado todo el foro) y no logro un buen resultado.
No encuentro código para el PIC que utilizo y tengo problemas al compilar.

Y recién estos empezando a comprender el uso de las librerías.

(utilizo el PORTA para las señales de control y todo el PORTB para el display, pero no me preocupa cambiar el cableado siempre que sepa como es la nueva opción)

Como verán es la primera vez que intento esto.

Saludos y muchas gracias.
11/09/2006 #2


que mas gastón?,

aqui esta lo que pides, tanto para el 628 como para el 628a, el esquematico por si las moscas, ah!, no lo probe en un protoboard por que no tengo dicho pic, lo probe en proteus(que hay mismo esta el archivo) y algo si se, es que si sirve en proteus, sirve en cualquier montaje real, se lo aseguro, y a mi me sirvio, fijese las funciones y todo, y otra cosa, si no sirve o se ve muy claro, revisa las conexiones que por lo general es lo que fallan, despues si alguien lo pide, publico una libreria mucho mas completa con muchisimas mas opciones, como animaciones y todo eso, por lo pronto, me comenta, cuidese...
16/03/2008 #3


Teclado Hexad ejemplo en CCS para el pic 16f84a (o 16f628)
Saludos amigos, estoy ingresando en este fascinante mundo de los microcontroladores y con la programacion en c con ccs, ya estoy trabajando con el ejemplo de lcd en ccs de Leonardo, tal vez me pudieran enviar un archivo para estudiarlo y aprender para manejar un teclado hexadecimal 4x4. Muchas gracias. (gracias Leonardo)
Palmas.
17/03/2008 #4


hay un ejemplo dentro del compilador, mira en el directorio examples
17/03/2008 #5


Gracias tio, pero si te refieres al ejemplo lcdkb... Pues no lo entiendo bien, tal vez uno más didáctico como para "iniciados".Gracias de todos modos.
Palmas.
17/03/2008 #6


Primero mirate en driver el fichero LCD.C

Un ejemplo podria ser algo como esto


Código PHP:
#include <16F628.h>
#use delay(clock=4000000)
#fuses NOWDT,WDT,NOPROTECT


#include "Lcd.c"
#define use_portb_lcd TRUE

void main()
{
int a=10;
  
lcd_init();
  
lcd_gotoxy(1,1);
  
printf(LCD_PUTC,"proba 2  %u",a);
  while(
TRUE);

No lo he compilado, pero basicamente es lo que tienes que hacer
19/03/2008 #7


Gracias, ya logrè sacar texto por el lcd, ahora quisiera conseguir lo mismo pero usando el teclado; es decir, un progrma minimo que me permita lograr usar el teclado, luego ya estudiando mas poder realziar algo cuendo se aprieta tal o cual tecla. Muchas gracias tiopepe.
Palmas
21/03/2008 #8


Codigo para lcd
Saludos amigos listeros. Hay algo que no entiendo o me estoy confundiendo. El asunto es el siguiente: Leonardo J. da respuesta a un listero y le envia un código para el 16f628 (para usar el lcd) (que lo use con el f84 y funciono bien), pero lo que no entiendo es DONDE esta el "include" para que funcione este lcd. Dentro del comprimido de Leonardo hay un archivo llamado lcd_leo.c pero en el programa no indica su utilización. Osea, tengo entendido que para hacer funcionar un lcd, por ejemplo en ensamblador, se crean una serie de rutinas y para que cada vez no se esté escribiendo estas rutinas, se crea un "include a esta rutina". Alguien podría indicarme (quien si no tu Leonardo) por qué en el programa "...lcd para 16f628...." no se llama al archivo lcd_leo.c? Gracias por las respuestas y disculpen, pero todos creo que tenemos momentos de "bloqueo mental"

Palmas.
11/06/2009 #9


Tienes la inicializacion o el archivo .h
18/02/2010 #10


Respuesta: LCD 16x2 ejemplo CCS para 16F628a
leo_programer dijo: Ver Mensaje
que mas gastón?,

aqui esta lo que pides, tanto para el 628 como para el 628a, el esquematico por si las moscas, ah!, no lo probe en un protoboard por que no tengo dicho pic, lo probe en proteus(que hay mismo esta el archivo) y algo si se, es que si sirve en proteus, sirve en cualquier montaje real, se lo aseguro, y a mi me sirvio, fijese las funciones y todo, y otra cosa, si no sirve o se ve muy claro, revisa las conexiones que por lo general es lo que fallan, despues si alguien lo pide, publico una libreria mucho mas completa con muchisimas mas opciones, como animaciones y todo eso, por lo pronto, me comenta, cuidese...
Hola.

Lo utilice en el pic 16f877a, unicamente cambie la libreria y en el proteus me corre bien y todo, solo que cuando lo hago fisicamente me aparece el mensaje parcial. solo se ve "Mundo", quisiera saber si es cosa de mi hardware o es la programacion que hay que cambiarle algo.

gracias
20/03/2010 #11


Respuesta: LCD 16x2 ejemplo CCS para 16F628a
hola como estan, destripador el problema puede ser tu hadware muchas LCD son echisas que quiero decir con esto que son fabricadas por gente con poca experiencia en ese tema pero lo que pasa es que tienen un corrimiento de 5 letras si utilizas la libreria de LCD. c del CCS esta incluye una funcion que es lal siguinte

lcd_gotoxy(5,1)

que permite poder por coordenadas los mensajes el 5 indica su pocion sobre el eje X y el 1 su pocion sobre el eje Y checalo y ve si eso lo remedia
Archivos Adjuntos
Tipo de Archivo: txt Practica_10.txt (1.014 Bytes, 854 visitas)
29/04/2010 #12

Avatar de sammaael

Respuesta: LCD 16x2 ejemplo CCS para 16F628a
como saber que pantalla lcd debo comprar en que me debo fijar? varia el programa entre un dispaly lcd y otro ?
30/04/2010 #13
Moderador

Avatar de Chico3001

Respuesta: LCD 16x2 ejemplo CCS para 16F628a
No, casi todos los LCDs "inteligentes" traen el mismo controlador (Hitachi 44780), asique la gran mayoria funcionan aunque sean de diferente fabricante... para mas informacion revisa este tema:

Control de Display LCD con microcontrolador PIC
04/05/2010 #14

Avatar de jalva

Respuesta: LCD 16x2 ejemplo CCS para 16F628a
Sres:

En el 16f628 y 648 para usar el puerto A con un lcd primero deben apagar los comparadores que de arranque se activan.

Debes poner CMCON en 0x07 (07 en hexa) para apagar los comparadores y poder usar el port A como I/O.

Alguna vez un moderador dijo ( creo que fué Fogonazo, no lo recuerdo bien):
LEAN LAS HOJAS DE DATOS...!
Un gran consejo que me ayudó mucho...!

Suerte con el LCD.
09/06/2010 #15


Respuesta: LCD 16x2 ejemplo CCS para 16F628a
Como estas...muy interesante tu programa...y gracias por ello...perr quisiera saber si tu sabes como modificar la librería de PICC lcd.c para utilizar el puerto B del PIC16F628A para solo llamar a esa librería y no poner tanto código!

O tal vez sepas de algun problema que pueda existir con este pic y dicha librería...gracias de antemano!!!
15/01/2011 #16


No arranco lcd
hola foreros, que tal?? estoy realizando un proyecto para el instituto, y estoy haciendo un termómetro, y quiero mostrar la temperatura en el lcd. Pues bien, de momento solo veo la linea de arriba, la del contraste, y no se exactamente si le llegan datos al lcd,creo que si... entonces pongo mi programa a continuacion para ver si me podéis echar una mano y lográis ver algo que pueda modificar.
Cuando pruebo el lcd aun no le conecto el sensor de temperatura lm35, y he probado otros programillas en plan mostrar un "hola mundo" y nada. MXAS GRACIAS


#include <18f4550.h>
#device adc =16
#fuses XTPLL,noMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV, PLL3,CPUDIV1,NOVREGEN,INTRC_IO
#use delay(clock=12000000)
#use standard_io(A)
#use standard_io(B)
#use standard_io(C)
#use standard_io(D)
#include <lcd.c>

void main()
{
long vtem=0;
int temp=0; //temperatura a mostrar en grados.

//setup_oscillator(OSC_4MHZ);
lcd_init();
setup_adc_ports(AN0||VSS_VDD); //Se configura el CAD.
setup_adc(ADC_CLOCK_INTERNAL);
//setup_counters(RTCC_INTERNAL,RTCC_DIV_2); //TIMER0: Clock Interno y Preescaler
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator(False);

while (TRUE)
{

set_adc_channel(0); //seleccion de canal cad.
vtem=read_adc(); //Se carga variable con el valor del cad.
temp=(vtem*5)/655.35; //Formula Para pasar de decimal a grados.


//printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"vtem= %ld",vtem);
delay_ms(50);
lcd_gotoxy(1,2);
printf(lcd_putc,"TEMP: %d",temp);
delay_ms(50);
//delay_ms(6000);

}
}
16/01/2011 #17

Avatar de gzaloprgm

Cesiir dijo: Ver Mensaje
hola foreros, que tal?? estoy realizando un proyecto para el instituto, y estoy haciendo un termómetro, y quiero mostrar la temperatura en el lcd. Pues bien, de momento solo veo la linea de arriba, la del contraste, y no se exactamente si le llegan datos al lcd,creo que si... entonces pongo mi programa a continuacion para ver si me podéis echar una mano y lográis ver algo que pueda modificar.
Cuando pruebo el lcd aun no le conecto el sensor de temperatura lm35, y he probado otros programillas en plan mostrar un "hola mundo" y nada. MXAS GRACIAS
Asegurate que estén bien conectadas todas las patas como dice el lcd.c, y antes de lcdInit agregá un delay de 20 milisegundos.

Si no tenés osciloscopio/analizador lógico, podrías usar un simulador como proteus para ver qué está haciendo el código.
16/01/2011 #18


En el proteus lo simulo y me funciona perfectamente, y creo que las patillas están bien, utilizo solo 4 bits y conecto desde la patilla 7 del puerto D hasta la 4,, desd D7 hasta D4, con sus respectivo enable, R/W...
Seguiré intentando cosejas a ver, aunq creo que mi problema puede provenir del tiempo al que funciona el pic, no se exactamente si estoy haciendo funcionar el reloj interno del pic a 4MHZ o no...
27/01/2011 #19


hola disculpame las molestias es q no tengo a quien recurrir q me pueda solucionar mi problema
te comento tengo una placa entrenadora con lcd y no puedo configurar los pines no se como poreso nesesito una mano
estos son los datos q tengo


Configuracion de LCD a 4 BITs

RB0 a RB3 datos
RB4 RS
RB5 rw
RB6 E

Todo el ( Puerto B ) ademas de ser configurado directamente a LCD contiene disponibles
de manera paralela a los LEDs desde RB0 a RB7.

Los leds estan seteados en dos partes RB0 a RB3 y RB4 a RB7 a negativo, por un jumper que puede ser levantado para disponer del HEADER y usar un protoboard externo, como entradas etc, independientemente.

Los pulsadores RA0 a RA3 contienen una resitencia pull up de 4k7 y capacitores de .1 para eliminar ruidos.

Las resistencias de los pulsadores RA0 y RA1 estan eliminadas opcionalemnte de fabrica de manera que al colocar los PRESET analogicos para desarrollar aplicaciones analogicas no compliquen su uso, de manera
que si se requiere tener estos pull up se alojan los presets en el centro, para poder usar digitalmente las entradas, si no fuere asi dispone de RA0 y RA1 normalmente para conversiones analogas en PICs como los 16F818.

El reloj de tiempo real a 32khz esta directamente conectado a la linea de 28 y 40 dip para su uso.

La memoria Serial 24LC256 esta conectada directamente a la linea de 28 y 40 dip por SCK y SDK de esta linea de PIC.

a estoy usando un pic 18f2550
gracias por tu ayuda

El Max232 esta comunicado directamente a las señales RX y TX para la linea 28 y 40 DIP.

El reset es general para todas las lineas desde 18 a 40 dip.

El cristal general des de 4mhz.

El buzzer y o led PWM esta conectado y seteado segun se elija uno u otro por jumper a PWM RC2.

El sensor de temperatura es del tipo TC74 RC4 y RC3

La programacion puede ser via ISCP por RJ o por Header lineal.

La alimentacion puede ser por batteria 9v.

La alimentacion maxima 12v 500 ma.


TODOS LOS ZOCALOS PARA PIC DESDE 18, 28 Y 40 DIP, ESTAN COMUNICADOS DE MANERA PARALELA CON SUS CORRESPONDIENTES PORTS DE MANERA DE PODER USAR Y EMIGRAR DE MICRO SIN PROBLEMAS.
10/08/2011 #20


Hola a todos, yo tengo un problema y no se si es el ccs o proteus pero cuando quiero simular en proteus el pic16f628a con un lcd de 16x2 no me sale el mensaje, solo se enciende la pantalla y eso es todo...he buscado por todos lados he puesto otras librerias de lcd.c y nada...me gustaria saber como puedo solucionar este problema o si a alguien le paso y ya lo soluciono...de ante mano muchas gracias...
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.