Control de Display LCD con microcontrolador PIC

hola a todos

Pues me encontré este tema de como comenzar a trabajar con los LCD y los PIC.

Recién empiezo también a familiarizarme con esto del LCD, pues pongo en este mensaje mi primer código que me funciona, escrito en lenguaje C con sourceboost IDE, bastantes lineas de código ops: , pero solo así le entendí, para comenzar a trabajar con el LCD; pero seguro se puede reducir las lineas de código empleando funciones, pues casi todo se repite.

espero le sirva a alguien mas

El pic es el 16F73(aunque puede ser aplicado para otro; como el 16f877), y el LCD es estándar de 2x16 caracteres, frecuencia de trabajo del PIC 4MHZ

los pines del LCD correspondiente al PIC son:
RS = RA0,
R/W = RA1,
E = RA2
y
[DB0...DB7]=[RB0..RB7], respectivamente

saludos
 

Adjuntos

  • lcd_y_pic__715.txt
    2.6 KB · Visitas: 677
  • lcd_y_pic_101.jpg
    lcd_y_pic_101.jpg
    58.6 KB · Visitas: 1,595
Hola:

Lo de Hola Mundo que has puesto así...

Código:
DATO_1 ADDWF PCL,1
RETLW 'H'
RETLW 'O'
RETLW 'L'
RETLW 'A'
RETLW ' '
RETLW 'M'
RETLW 'U'
RETLW 'N'
RETLW 'D'
RETLW 'O'
RETLW 0x00

También vale así.

Código:
     DT     "HOLA MUNDO", 0x00

Por cierto, normalmente los LCD del Hitachi 44780A00 es el estandar pero no se usa las tildes, lo del 44780A02 es lo mejor.

Estas cosas hay que tenerlas en cuenta.
 
para elvic

a que te refieres con una lcd estandar me podrias decir si puedo usar cualquier referencia siempre y cuando sea alfanumerica de 16x2

gracias de antemano.
 
hola scapc
pues prácticamente si el hecho de ser estándar no solo me refería al LCD 16x2, a lo que me refiero es que todos los LCD basado en el chip hitachi44780 tienen el mismo clase de conexionado (terminales), así que puedes utilizar cualquier LCD que se base en ese chip.

ahora lo que menciona Meta es muy cierto me puse ha buscarle poquito en google y encontré esto:
http://www2.ate.uniovi.es/fernando/Doc2004/SED/Presentaciones/LCD.pdf

El hecho de A00 o A02 es la versión del Firmware, para la interpretación de los códigos que envíes al LCD; mira la diapositiva del enlace y hay explica las diferencias que existe entre A00 y A02

suerT

PD. no se si la palabra Firmware este bien aplicada par este caso.
 
Elvic dijo:
hola scapc
pues prácticamente si el escho de ser estándar no solo me refería al LCD 16x2, a lo que me refiero es que todos los LCD basado en el chip hitachi44780 tienen el mismo clase de conexionado (terminales), asi que puedes utilizar cualquier LCD que se base en ese chip

ahora lo que menciona Meta es muy cierto me puse ha buscarle poquito en google y encontré esto:
http://www2.ate.uniovi.es/fernando/Doc2004/SED/Presentaciones/LCD.pdf

El echo de A00 o A02 es la versión del Firmware para la interpretación de los códigos que envíes al LCD mira la diapositiva dele enlace y hay explica las diferencias sobre que existe de una a otra

suerte

PD. no se si la palabra Firmware este bien aplicada par este caso.

Muy buena información y en español.
 
Normalmente nunca escribo en foros de nada, pero debido a que despues de intentar echar a andar mi PIC (El cual no coincide con el de este foro con un lcd que tampoco coincide con este foro) les dar{e unos tips para todos aquellos a los que no les funciona porque no tiene el mismo pic que el que postio la rutina tiene.

Primero, deben recordar que la variable DIGITO, DATO_A y DATO_B deben caer en una direccion libre para escribir en su PIC ya que si las dejan asi puede caer en otro registro de control de algo del micro porque no es de diferente modelo.

Segundo, incrementen uno poco el delay que tiene esta rutina (ya que el que lo postio asegura que su Hitachi es rapido y si tu tienes uno mas lento los tiempos de delay no coincidiran asi que incrementa un poco tu delay al cabo si te pasas no hay problema solo escribe mas lento)

Tercero, SUPER IMPORTANTE, asegurate que tus PINS DE I/O son digitales y están configurados como digitales modificado los regsitros ANSEL y ANSELH ya que si no lo haces jamas podrás hacer nada correctamente digitalmente con esos pins.

Todo lo demás está correcto.

Si por alguna razón no jala, intenta hacer una llamada a la funcion DELAY_5MS en la funcion ENABLE netre la activacino y su desactivación. pero deberia funcionar con el puro NOP.

Si nos les jala pidanme el codigo!

saludos,
 
Para comprender mejor el funcionamiento de una pantalla LCD os aconsejo el circuito de la figura en donde con unos simples interruptores y un pulsador enviais al LCD la información deseada.
Despues de jugar un poco con este circuito, resulta mucho mas facil comprender que tipo de señales tiene que mandarle un microcontrolador para su control.
 

Adjuntos

  • entrenador_lcd_125.jpg
    entrenador_lcd_125.jpg
    30.8 KB · Visitas: 1,595
Tengo las librerias de control de un display LCD de 2 x 16 caracteres en CCS por control sincronico , con lo cual reducimos las lineas de control a solamente 3 DATOS,CLOCK y STROBE el unico incoveniente es que la representacion grafica es un poco lenta debido a que los datos se transmiten de forma serial.
 
Hola! soy Bernardo y soy nuevo en este foro y la verdad es q ando un poco perdido con mi proyecto, tengo que programar el pic 18f4550 y estoy empezando por intentar controlar un lcd, el programa que uso para el codigo en C es el CCS y luego pretendo simularlo en Proteus, alguien tiene un ejemplo que me pueda enviar para ver como la la asignacion de los pines y como configurarlos y todas esas cosillas

Muchas gracias sois la caña!
 
Hola a todos, espero me podáis echar una mano, tengo una lcd 16x2 conexionada con 4bits, el problema es que solo visualizo la primera línea, en la segunda no consigo que salga nada, he probado ha cambiar la librería pero nada..
Adjunto la librería que estoy utilizando, muchas gracias por todo.
Un saludo.
 

Adjuntos

  • flex_lcd_cc_278.c
    4.4 KB · Visitas: 258
Salú la barra! ya que estamos en esto de los LCD, me obsequiaron un LCD que está conectado a un PIC 16F628A, me dicen que funciona a travez de tramas por el puerto COM, el pic esta en blanco por lo que solo se ve una linea negra en el lcd (las matrices de puntos) Mi pregunta es aalguno tendra un programita para cargarle al pic? Como funciona esto a travez del COM? Si puedo despues subo fotos.

Gracias!
 
Como estan amigos, necesito una ayuda, tengo un lcd 2x16 controlado con un pic 16f877a, dispongo de un cable de datos de 3 metros y una fuente de 12 V, pero OJO miren lo que me pasa: conecto el pic al lcd con el cable de datos de 3 metros, si conecto la placa del lcd con un cable de energia de 1 metro desde la fuente en el lcd visualizo el texto, ahora si coloco un cable de energia de 3 metros desde la fuente a la placa del lcd ya no visualizo el texto, me parece extrano que variando el cable de energia afecte la parte de datos, en el lcd recibo los mismos 12 voltios y la misma corriente con los 2 cables, ya no se que puede ser, agradesco mucho si alguien sabe que puede ser... saludos
 
Hola! tengo un LCD 16X2 un JM162A; y como lo recupere de un equipo viejo; no se si funcione; entonces la pregunta es:
Como saber que un LCD ya no funciona(manualmente)?
no puedo inicializarlo; ya he usado algun codigo de aqui mismo pero no logro hecharlo a funcionar
 
como hago para visualizar en lcd lm016l, cuando un motor dc esta girando a la derecha, girando a la izquierda y parado, trabajando con un pic16f84a, fusionando el programa de funcionamiento del motor y el lcd.
ya yo tengo el programa del motor en asm pero no logro visualizar su funcionamiento en el lcd, seria de mucha ayuda su colaboracion....
 
Atrás
Arriba