Autor Tema: Rutina LCD 4 Bits  (Leído 34434 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
Rutina LCD 4 Bits
« en: 14 de Abril de 2005, 17:15:00 »
Buenas poseo la rutina para el control del LCD con 4 bits. Es la que todos conoceis del libro de ra-ma. Pero tengo un problema, primero mi LCD es un 4x20, con lo que la modifique cono viene en la faqs del libro.

Luego la duda esta aquí, en mi entrenador uso para el control (RS,RW,E) el puerto D (d0,d1,d2) y para datos el puerto D tb (d4,d5,d6,d6). Queria sabes si esto interfiere en el buen funcionamiento ya que inicialmente esta estaba para puertos distintos y e visto que "juega" con el puerto D y por ello kizás es por lo que no me anda.

Si alguien posee una rutina que funcione con la distribución que tengo lo agradeceria mucho.
Si juegas contra el mejor, pierdes como los demás.

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: Rutina LCD 4 Bits
« Respuesta #1 en: 16 de Abril de 2005, 20:14:00 »
Buenas.

Efectivamente tendrás que cambiar los pines RS, RW y E a otro puerto. Si no te es posible, vas a tener que revisar todas las subrrutinas de envío de datos al LCD y ver que no afecte a las señales de control, lo cual te costará más quizás, que hacerlas de nuevo tu mismo.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Rutina LCD 4 Bits
« Respuesta #2 en: 23 de Abril de 2005, 15:53:00 »
Gracias por el interes, al final ya pude comandar el LCD, gracias a la rutina del libro de Ra-Ma (Pic 16f84a) y va de escandalo.
Si juegas contra el mejor, pierdes como los demás.

Desconectado pentax30

  • PIC10
  • *
  • Mensajes: 11
RE: Rutina LCD 4 Bits
« Respuesta #3 en: 15 de Agosto de 2005, 13:40:00 »
Buenas des de Cataluña

LLevo mucho tiempo en busca de una rutina para controlar mi LCD atrabes de un bus de datos de 4 bit. Utilizo una placa micropic Trainer de microsystem, i me interesaria poder seguir utilizando la misma placa de pruebas. He probado de programar con Lenguage C i si es mas facil pero, el programa que pretendo realizar no me cabe en la memoria del pic. Mas que personalmente me gusta poder conseguir un mayor control del pic i esto solo lo permite el Asambler
Gracias por vuestra atención.


Desconectado mario_pastor

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 101
RE: Rutina LCD 4 Bits
« Respuesta #4 en: 07 de Diciembre de 2005, 17:44:00 »
Pentax30, si aún necesitas la rutinas en ASM puedes mirar este link
Saludos,
Mario.

Lima - Perú

Desconectado picto

  • PIC16
  • ***
  • Mensajes: 106
Re: Rutina LCD 4 Bits
« Respuesta #5 en: 21 de Junio de 2006, 06:10:13 »
Estoy intentando gobernar un LCD 16x2 con un Pic 16f877. Y como solo tengo libre el puerto D (8 salidas) me han recomendado usar el LCD en modo 4 pins.

Espero poder ponerlo en marcha...
Saludos

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: Rutina LCD 4 Bits
« Respuesta #6 en: 21 de Junio de 2006, 14:41:47 »
debes enviar primero el nible alto (cuatro bits de mayor peso) del dato y luego enviar el nible de menor peso del dato a visualizar. para mandar el nible mayor y el nible manor dede repetirse el mismo juego de instrucciones.


dato movwf  dato     aqui ya llega el dato a visualizar ya sea de tabla o un dato cualquiera.
       bsf  portb,e     
       movlw  0fh
       andwf   portb
       movf    dato,0
       andlw   0f0h
       iorwf    portb
       call      retardo
       bsf       portb,e
       call      retardo
       bsf       portb,e
       movlw  0fh
       andwf   portb,1
       swapf   dato,w
       andlw   0f0h
       iorwf    portb,1
       call      retardo
       bcf       portb,1
       call      retardo.
      return

bueno

 

Desconectado picto

  • PIC16
  • ***
  • Mensajes: 106
Re: Rutina LCD 4 Bits
« Respuesta #7 en: 22 de Junio de 2006, 04:37:56 »
Hola.
A ver... me estoy liando... tengo la libreria del LCD 4 bit, pero necesito tambien la librería RETARDOS.INC de donde la saco?

Gracias

Desconectado picto

  • PIC16
  • ***
  • Mensajes: 106
Re: Rutina LCD 4 Bits
« Respuesta #8 en: 22 de Junio de 2006, 09:50:57 »
Estoy de los nervios...

Tengo 2 archivos, uno el RETARDOS.INC y P876ALCD_4B.INC. A ver ya digo que soy novato, pero en el programa he puesto abajo del todo:

include <P876ALCD_4B.INC>
include <RETARDOS.INC>

Ok?

Bien pues en el programa principal le pongo LCD_Inicializa (que supongo irá a la rutina que está dentro de P876ALCD_4B.INC)  y tambien el siguiente código:

   call   LCD_Borra   ;borramos pantalla LCD
   movlw   mensaje1   ;movemos a W el valor que contiene Mensaje1 (Probador I/O)
   call   LCD_Mensaje   ;mostramos en el lcd el mensaje PROBADOR I/O
   call   LCD_Linea2   ;escribimos en la línea 2 del LCD
   movlw   mensaje2   ;movelos el valor de mensaje2 a w
   call   LCD_Mensaje   ;mostramos mensaje.

Pues al intentar compilar al HEX me dá todo el rato el mismo error y estoy desesperado... :x

Error[113]   C:\LCD\1\PROGRAMA_FORO_LCD.ASM 35 : Symbol not previously defined (LCD_Inicializa)
Error[113]   C:\LCD\1\PROGRAMA_FORO_LCD.ASM 56 : Symbol not previously defined (LCD_Borra)
Error[113]   C:\LCD\1\PROGRAMA_FORO_LCD.ASM 58 : Symbol not previously defined (LCD_Mensaje)
Error[113]   C:\LCD\1\PROGRAMA_FORO_LCD.ASM 59 : Symbol not previously defined (LCD_Linea2)
Error[113]   C:\LCD\1\PROGRAMA_FORO_LCD.ASM 61 : Symbol not previously defined (LCD_Mensaje)

Que está pasando?

Con el MPlab en HEADER FILES he añadido las librerias RETARDOS.INC y la del LCD.

Help
Gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Rutina LCD 4 Bits
« Respuesta #9 en: 22 de Junio de 2006, 11:52:57 »
picto el MPASM te está diciendo que no conoce las rutinas LCD_borrar, LCD_ Borra, LCD_Mensaje, LCD_Linea2

Si haces un include de la forma que lo has hecho, creo que te debiera dar error.  Hasta donde recuerdo la directiva include necesita un # adelante , aunque tal vez me esté confundiendo con otro lenguaje.

Si usas <> para enmarcar el nombre de archivo, el mpasm asumirá que están en la misma carpeta o subdirectorio en donde está tu archivo PROGRAMA_FORO_LCD.ASM.asm es decir c:\LCD\1 ó bien en los paths del sistema operativo (aunque el mplab cuando se instala agrega paths a los subdirectorios donde se instala).  Por eso si hacemos un include de los archivos .inc que definen a los pics, no hay problemas y siempre los encuentra.

Si están en otra carpeta debes usar las comillas así:

Código: ASM
  1. #include "c:\micarpeta\RETARDOS.INC"
  2.         #include "c:\micarpeta\P876ALCD_4B.INC"


Leyendo los errores, creo que no has posteado todo el código, pero bueno, tal vez con esto ya te sirve para continuar.

Te aconsejo además usar los marcos [ code = asm ]  y [ / code] para enmarcar tu código así se hace más legible.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado picto

  • PIC16
  • ***
  • Mensajes: 106
Re: Rutina LCD 4 Bits
« Respuesta #10 en: 22 de Junio de 2006, 12:54:36 »
Llevo todo el santo día y no consigo hacer que salga ni una letra por el puerto D de un pic16f877.

Alguien puede aunque sea ayudarme a mostrar 1 sola letra? Una vez consiga  eso creo qyue podré ir paso a paso... :-)



El LCD lo tengo conectado de la siguiente manera, interface 4 bits.

Tenía mi programa hecho y he querido implementarlo con un LCD, pero ya primero quiero hacer un mini programa que me muestre un mensaje y cuando me funcione, aplicarlo al programa verdader.

Tengo unas rutinas que me han pasado, pero no sé ni si funcionan o que hago mal.

GRACIAS!

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Rutina LCD 4 Bits
« Respuesta #11 en: 22 de Junio de 2006, 13:16:32 »
picto los pines 7 a 10 de la LCD deben ir a 5 V entanto que los pines 1, 2 y  3 controlan el contraste de la LCD.

Te dejo una imagen de lo que menciono.

Saludos LabPIC.

PD: no hagas caso a al PIC16F84, pues las conexiones son las mismas para cualquier otro PIC que se utilize, fijate que aqui se utiliza el puerto B y A del micro (unicamente se utilizan 7 pines) puedes modificarlo para que se adecue al puerto D que tienes aun libre.
« Última modificación: 22 de Junio de 2006, 13:20:31 por LabPIC »
¡¡¡Viva México cabrones!!!

Desconectado picto

  • PIC16
  • ***
  • Mensajes: 106
Re: Rutina LCD 4 Bits
« Respuesta #12 en: 22 de Junio de 2006, 14:41:00 »
picto los pines 7 a 10 de la LCD deben ir a 5 V entanto que los pines 1, 2 y  3 controlan el contraste de la LCD.

Te dejo una imagen de lo que menciono.

Saludos LabPIC.

PD: no hagas caso a al PIC16F84, pues las conexiones son las mismas para cualquier otro PIC que se utilize, fijate que aqui se utiliza el puerto B y A del micro (unicamente se utilizan 7 pines) puedes modificarlo para que se adecue al puerto D que tienes aun libre.

Sí sí, Labpic, si el circuito lo he montado en placa y he coenctado la alimentación y demás. La foto de arriba era para que se viera má que nada los bits que iba a utilizar del Puerto D.

Esque no he podido ni mostrar una sola letra!!! Y me fastidia estar todo el día y no conseguir ni una simple letra... esque veo ejemplos pereo todos a medias o les falta algo.

Por cierto cuando simulaba en proteus se me quedaba al 100% y no hacía nada y en la placa se me veía la primera línea oscura.

Saludos
Y si teneis un ejemplo de los más simple ya me ayudaría... :-/


Gracias Labpic

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Rutina LCD 4 Bits
« Respuesta #13 en: 22 de Junio de 2006, 14:52:59 »
picto, te he respondido tu duda sobre los errores al ensamblar y no me has respondido.

Si te sigue dando errores, el software NO FUNCIONARA ya que el archivo .HEX pudiera tener cualquier cosa.


Saludos


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado picto

  • PIC16
  • ***
  • Mensajes: 106
Re: Rutina LCD 4 Bits
« Respuesta #14 en: 22 de Junio de 2006, 15:22:29 »
picto, te he respondido tu duda sobre los errores al ensamblar y no me has respondido.

Si te sigue dando errores, el software NO FUNCIONARA ya que el archivo .HEX pudiera tener cualquier cosa.


Saludos




Perdona, esque ahora estoy en el ordenador de casa tengo que buscar el post. Ahora te digo.

Saludos


 

anything