Autor Tema: LCD + 16F88 + Pic Simulator IDE  (Leído 3194 veces)

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

Desconectado Thompson

  • PIC10
  • *
  • Mensajes: 4
LCD + 16F88 + Pic Simulator IDE
« en: 05 de Abril de 2009, 14:12:58 »
Que tal gente, estoy tratando de hacer caminar un LCD de 2x16 (1620CSL de CASIL) en conjunto con un pic 16F88. No consigo que aparezca el texto que le paso al display, vi que en el foro este es un tema recurrente pero no consigo nada que me ayude.
Me pase un buen tiempo analizando el codigo y el tema del constraste (con el potenciometro de 10K) y no consigo que funcione.
Haciendo la simulacion con PIC Simulator IDE funciona perfectamente, pero la magia se termina cuando lo quiero implementar sobre la protoboard.
Cuanto muevo el potenciómetro para verificar el contraste solo se ve el efecto sobre la segunda linea (¿?)

Tendre algun problema con el timing? Si alguien tiene alguna sugerencia se lo voy a agradecer porque la verdad es que se me estan terminando las ideas!

adjunto el codigo comentado, que como se ve es bien simple:

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

'---Definicion de puertos y registros----------------------------
ANSEL = 0x00 'los pin I/O digitales (no analogicos)
OSCCON = 0x7e 'set intrc To 8mhz, se usara reloj interno a 8Mhz
CMCON = 0x07 'comparador a off
'---------------------Inicio-------------------------------------

Define LCD_BITS = 4
Define LCD_DREG = PORTB
Define LCD_DBIT = 4 'uso RB4 a RB7 para los datos
Define LCD_RSREG = PORTB
Define LCD_RSBIT = 3
Define LCD_EREG = PORTB
Define LCD_EBIT = 2
Define LCD_COMMANDUS = 200
Define LCD_DATAUS = 50
Define LCD_INITMS = 5
Lcdinit 0 'inicializo el LCD sin cursor

Lcdcmdout LcdClear 'borro el display

grande:
Lcdout "HOLA" 'escribo en el diaplay
WaitMs 1000
Lcdcmdout LcdClear 'borro el display
WaitMs 1000
Goto grande

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

PD.: Estoy conectando las RB4 a RB7 en los canales de datos DB4 a DB7 del display.

Saludos y gracias por leerme!

Desconectado raul_juarez_chihuahua

  • PIC10
  • *
  • Mensajes: 19
Re: LCD + 16F88 + Pic Simulator IDE
« Respuesta #1 en: 06 de Abril de 2009, 10:59:55 »
Saludos. prueba conectando los bits de datos  desde el bit 0 del puerto B, es decir comunicacion a 4 bits b0,b1,b2,b3.  te aseguro q funcionara.     

Desconectado Thompson

  • PIC10
  • *
  • Mensajes: 4
Re: LCD + 16F88 + Pic Simulator IDE
« Respuesta #2 en: 08 de Abril de 2009, 03:02:55 »
Ante todo gracias por responder!!!

No hay caso... cambie a los 4 bits menos significativos pero no pasa nada...
Aca esta el nuevo codigo, a esto te referias?


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

'---Definicion de puertos y registros----------------------------
ANSEL = 0x00  'los pin I/O digitales (no analogicos)
OSCCON = 0x7e  'set intrc To 8mhz, se usara reloj interno a 8Mhz
CMCON = 0x07  'comparador a off
'---------------------Inicio-------------------------------------
TRISA = 0x00  'Puerto A como salidas
TRISB = 0x00  'puerto B como salidas

Define LCD_BITS = 4
Define LCD_DREG = PORTB
Define LCD_DBIT = 0  'uso RB0 a RB4 para los datos
Define LCD_RSREG = PORTA
Define LCD_RSBIT = 0
Define LCD_EREG = PORTA
Define LCD_EBIT = 2
Define LCD_COMMANDUS = 200
Define LCD_DATAUS = 50
Define LCD_INITMS = 5
Lcdinit 0  'inicializo el LCD sin cursor

Lcdcmdout LcdClear  'borro el display

grande:
Lcdout "HOLA"  'escribo en el diaplay
WaitMs 1000
Lcdcmdout LcdClear  'borro el display
WaitMs 1000
Goto grande

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

SALUDOS!

Desconectado raul_juarez_chihuahua

  • PIC10
  • *
  • Mensajes: 19
Re: LCD + 16F88 + Pic Simulator IDE
« Respuesta #3 en: 08 de Abril de 2009, 13:59:17 »
intenta poner todos los registros (ademas del bus d datos) del lcd en el puerto b

Define LCD_RSREG = PORTB.4    '  yo uso proton y es asi como me quedan los registros  con resultados optimos.

Define LCD_EREG = PORTB.5       ' ya me comentas como te va.

Saludos.


 

anything