Autor Tema: Ayuda con LCD  (Leído 3800 veces)

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

Desconectado sr_kzt

  • PIC10
  • *
  • Mensajes: 6
Ayuda con LCD
« en: 10 de Octubre de 2006, 18:49:39 »
Es la primera vez que voy a usar un LCD con el pic16f877, solo quiero saber si basta con la libreria lcd.inc, que instrucciones necesito para mandar algun mensaje, cambiar de linea, etc.
Lo mas seguro es que maneje un lcd de 2*16 y cuantos pines debo utilizar para mandar la informacion a ella.
De antemano gracias.

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: Ayuda con LCD
« Respuesta #1 en: 10 de Octubre de 2006, 21:37:04 »
la informacion la puedes enviar con a 4 bits o a 8bits

los mensajes que mandes puden ser instruccion o datos a visualizar.


LCDINI   MOVLW   B'00111000'     ;INTERFACE DE 8BITS 2 LINEAS
   CALL   INSTRUC
   MOVLW   B'00000110'     ;DIRECCION A LA DERECHA
   CALL   INSTRUC
   MOVLW   B'00001101'     ;PRENDE PANTALLA
   CALL   INSTRUC
   MOVLW   B'00000001'     ;LIMPIA PANTALLA
   CALL   INSTRUC
INSTRUC   
   BCF   PORTA,RS        ;COLOCA EN CERO RAO
   BSF   PORTA,E
   MOVWF   PORTD   
   CALL   RETARD
   BCF   PORTA,E
   RETURN

DATOS   
   BSF   PORTA,RS
   BSF   PORTA,E
   MOVWF   PORTD
   CALL   RETARDO
   BCF   PORTA,E
   RETURN


MOVLW   B'11000000'     ;EL PUNTERO SE UBICA EN LA SEGUNDA LINEA
CALL    INSTRUC2   


Desconectado Dancrazy

  • PIC16
  • ***
  • Mensajes: 134
Re: Ayuda con LCD
« Respuesta #2 en: 11 de Octubre de 2006, 11:53:47 »
Casualmente lo estoy haciendo....

Pero lo hice en el PIC C compiler...  en lenguaje C

fijate...

El LCD que mencionas, 16x2, generalmente (no siempre) tiene un controlador SAMSUNG KS00066U o uno compatible Hitashi...
primero...  si lo quieres hacer a pie, ya sea en asembler o en C tienes que tomar en cuenta lo siguiente...

Pin 1  --> Tierra (Referencia) 0V
Pin 2  --> Fuente TTL +5
Pin 3 -->  Ajuste de contraste
Pin 4 -->  RS (selector de registro)
Pin 5 -->  RW (leer/escribir)
Pin 6 -->  Enable
Pin 7 -->  DB0 (Data bit menos significativo  Bit 0)
...
Pin 14--> DB7 (Data bit mas significativo bit 7)
Pin 15--> A ( +tension (5V) para backlight o iluminacion de fondo (opcional))
Pin 16--> K  (referencia o tierra para backlight )

YO, lo hice asi conecté DB0 con Pin RB0 (puerto B pin 0 del PIC 16F877A) y asi hasta DB7 con RB7. luego Enable con RD7, RW con RD6 y RS con RD5.
1 y 2 con los pines de alimentacion respectivos y en mi caso A con RD3 y K con tierra de la alimentacion.

para Contraste (pin 3) seria asi

+5                                                Donde el valor del potenciometro
<----/\/\/\/\/\------|||  GND             daría el contraste de la pantalla
             |
             |
           (Pin 3)

una vez hechas las conecciones, la cosa funciona así
-->Si es un comando (escribir)
     colocar RW=0 (escribir)  RS=1 (Comando) y en el puerto Bel valor del comando tomado de la tabla de fabricante....
     (lo iba a anexar, pero pesa 700Kbytes y no cabe, busca en www.alldatasheet.com el  "KS0066U" que es el chip que controla la
      pantalla. no le pares al pinout de él, sino a la programacion)
     por ejemplo, limpiar pantalla es 01h =(00000001). una vez que esta todo establecido, subes y bajas la sñal de enable...  esto 
     representa el "ejecútese" para la pantalla.
-->Si es un caracter a escribir RW=0 (escribir) RS=0 (caracter) y en el puerto B el codigo ascii del caracter (por ejemplo
    "A"=41h=0x41=(01000001). una vez establecido, Enable sube y baja y se ejecuta
-->Si es leer la bandera de ocupado y leer la posicion a la que apunta el puntero que indica en donde se escribira
    el siguiente comando RW=1 (leer) RS=0 (comando) el codigo indicado en el puerto B (esta en la tabla) y subir y bajar Enable

OJO! la pantalla debe seguir un procedimiento para inicializarse
Esta indicado en el datasheet, pero es algo asi como
   1.- Esperas 30mseg
   2.- enviar comando de fijado de funciones
   3.- esperar 39useg
   4.- enviar comando de Modo de inicio del display
   5.- espera 39useg
   6.- enviar comando de Limpieza de la pantalla
   7.- esperar 1,6mseg
   8.- enviar comando de Modo de comportamiento al escribir
 Listo!!

¿por que conecte el backlight a un puerto? para poder encenderlo por programa desde el pic

En cuanto la conexion, yo conecte el bus de datos en 8 bits, pero podrias ahorrar puerto del pic conectando solo 4 bits del bus e indicandolo al LCD en el paso 2 de la inicializacion, entonces enviarias primero 1/2 comando (o medio caracter) y luego la otra mitad, al completar el comando (o caracter) es que el LCD lo ejecuta)...

de alli en adelante, el limite es la imaginacion...
crea tu propio archivo de cabecera, o en el mismo programa, procedimientos de inicializacion y de escritura en el LCD...
por ejemplo: en el TXT que te anexo,(en lenguaje C) luego de inicializar, espera caracteres recibidos via serial, y si no es un caracter especial [enter] [backspace] o [Escape] lo envia directo al LCD. como puedes ver, si identifica el codigo ASCII de alguno de los tres, envio un comando en vez de un caracter...

Espero haber ayudado...
« Última modificación: 11 de Octubre de 2006, 11:59:03 por Dancrazy »
Daniel 
Caracas, Venezuela 

-----------------

Desconectado sr_kzt

  • PIC10
  • *
  • Mensajes: 6
Re: Ayuda con LCD
« Respuesta #3 en: 11 de Octubre de 2006, 17:15:38 »
Muchisimas gracias, su ayuda me sera de mucha utilidad, ya solo me queda trabajarle y les comentarde de mis resultados

Desconectado Diego Eduardo

  • PIC10
  • *
  • Mensajes: 9
    • Pic y chistes
Re: Ayuda con LCD
« Respuesta #4 en: 12 de Octubre de 2006, 15:12:21 »
 :)en a sigiente direccion hay varios ejemplos en español y tambien el manejo del LCD a 8 y 4 bits :-/
El Zorro

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Ayuda con LCD
« Respuesta #5 en: 12 de Octubre de 2006, 16:36:53 »
cual?????
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

AABHGA

  • Visitante
Re: Ayuda con LCD
« Respuesta #6 en: 13 de Octubre de 2006, 07:18:49 »
cual?????

Jajajaja

--------------------------------------

Ahora con respecto a la pregunta, mira en este enlace, está como conectar un lcd con un controlador hitachi o compatible, tiene el ejemplo en Basic de como hacerlo, y una explicación completa, ya con eso puedes conectar tu lcd al 877.

Nos vemos.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Ayuda con LCD
« Respuesta #7 en: 13 de Octubre de 2006, 12:15:03 »
Creo que no estan poniendo los Links OJO con eso
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."


 

anything