Autor Tema: PIC 16F876 con LCD  (Leído 3047 veces)

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

Desconectado Kitiara

  • PIC10
  • *
  • Mensajes: 5
PIC 16F876 con LCD
« en: 29 de Mayo de 2006, 12:15:17 »
Hola, a ver si podeis echarme una mano porque ya no se que narices hacer...
En fin, tengo ´que conectar un pic 16F876 a una LCD, el programa esta simulado en PROTEUS, donde va a las mil maravillas, el problema surge en el montaje físico de este. He conectado la LCD como indicabais en otros posts pero nada de nada, ya no se en que narices puede pender... :?
Utilizo una lcd Hitachi 44780 con los 8 bits y los puertos B y C.
Gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: PIC 16F876 con LCD
« Respuesta #1 en: 29 de Mayo de 2006, 14:59:47 »
Hola, a ver si podeis echarme una mano porque ya no se que narices hacer...
En fin, tengo ´que conectar un pic 16F876 a una LCD, el programa esta simulado en PROTEUS, donde va a las mil maravillas, el problema surge en el montaje físico de este. He conectado la LCD como indicabais en otros posts pero nada de nada, ya no se en que narices puede pender... :?
Utilizo una lcd Hitachi 44780 con los 8 bits y los puertos B y C.
Gracias

1. El display no hace nada nunca? El display ni siquiera enciende?

2. Has esperado el tiempo de inicializacion necesario? digamos, no se, algunos 100 o 200mseg antes de mandarle algo? Esto sirve para que la electronica del display se inicialice correctamente.

3. Puedes revisar y/o postear el pinout que has utilizado?

4. El display funciona en otro circuito?

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 M.C_Barquin

  • PIC12
  • **
  • Mensajes: 69
Re: PIC 16F876 con LCD
« Respuesta #2 en: 29 de Mayo de 2006, 15:34:17 »
Describe como hiciste todas las conexiones.Acuerdate que RS o E deben ir al menos uno de ellos al puerto donde tienes conectado los datos DB0-DB7.Saludos.
Pensando en Verdiblanco

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: PIC 16F876 con LCD
« Respuesta #3 en: 29 de Mayo de 2006, 15:37:28 »
Citar
Acuerdate que RS o E deben ir al menos uno de ellos al puerto donde tienes conectado los datos DB0-DB7

Me lo puedes explicar por favor.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Kitiara

  • PIC10
  • *
  • Mensajes: 5
Re: PIC 16F876 con LCD
« Respuesta #4 en: 29 de Mayo de 2006, 16:31:24 »
Bueno, en primer lugar gracias por vuestras prontas respuestas, y en segundo os comento...
Como m deciais es necesario darle tiempo para k se inicialice,asi k puse un delay de unos ms. La conexión k he realizado es de todos los pines de datos D0 a D7 al puerto B, mientras que RS, R/W y E los he conectado a los tres primeros pines del puerto C.
La lcd si k funciona o por lo menos eso creo, la backlight si k se enciende y en ocasiones muestra cuadritos negros en las posiciones del cursor, pero no se mantienen, sale a veces...
En fin si teneis alguna ligera idea...  uso la libreria lcd2.c

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: PIC 16F876 con LCD
« Respuesta #5 en: 29 de Mayo de 2006, 16:49:10 »
Podrias poner el código y la libreria para echarle un vistazo, Tambien ayudaria pusieras el esquema electrico tal y como lo tienes montado.

Un saludo.
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: PIC 16F876 con LCD
« Respuesta #6 en: 29 de Mayo de 2006, 16:52:19 »
Hola Kitiara, esos mseg de demora que pones al pricipio del programa, no son algunos, deben ser 15 o más, si le colocas menos es probable que no se inicialice de manera correcta.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado quirogaareal

  • PIC16
  • ***
  • Mensajes: 180
Re: PIC 16F876 con LCD
« Respuesta #7 en: 29 de Mayo de 2006, 21:14:51 »
Que tal .
No te has fijado en los fuses   , mas especificamente  nolvp  .
espero que sea eso  probalo .


Saludos

Desde Cordoba Argentina
Recuerda : Si una mujer te ama de verdad no te pedira ni Matrimonio, Ni concubinato , Ni hijos, No te mentira , ni buscara que cambies de opinion con respecto a las tres primeras opciones.

Saludos

desde Cordoba Argentina

Desconectado M.C_Barquin

  • PIC12
  • **
  • Mensajes: 69
Re: PIC 16F876 con LCD
« Respuesta #8 en: 30 de Mayo de 2006, 11:14:36 »
Escríbenos el programa para poder ayudarte más y mejor.Saludos.
Pensando en Verdiblanco

Desconectado Picavid

  • PIC12
  • **
  • Mensajes: 89
    • www.seguridomo.es
Re: PIC 16F876 con LCD
« Respuesta #9 en: 02 de Junio de 2006, 02:22:27 »
Hola kitiara,


Desconectado Picavid

  • PIC12
  • **
  • Mensajes: 89
    • www.seguridomo.es
Re: PIC 16F876 con LCD
« Respuesta #10 en: 02 de Junio de 2006, 02:33:20 »
Hola kitiara, soy muy novato con el 876, y aunque creo que programas en C, te paso la parte principal de mi libreria en ASM por si te sirviera de algo. Lo uso a 4 bits, y el pin RW a masa. La parte alta del LCD conectada a la parte baja del puerto C (DB4-RC0; DB5-RC1, ... PIN RS-RC4; PIN E-RC5). Mi LCD no tiene iluminacion asi que en eso.... Si necesitas la libreria entera te la paso por email.
   CBLOCK
   LCD_Dato
   LCD_GuardaDato
   LCD_GuardaTRISC
   LCD_Auxiliar1
   LCD_Auxiliar2
   ENDC

LCD_CaracteresPorLinea   EQU   .16   ; Número de caracteres por línea de la pantalla.

#DEFINE  LCD_BusDatos   PORTC

LCD_Inicializa

   bcf   PINE      
   bcf    PINRS      
   call   Retardo_20ms
   movlw   b'00110000'   
   call   LCD_EscribeLCD      
   call   Retardo_5ms   
   movlw   b'00110000'   
   call   LCD_EscribeLCD
   call   Retardo_200micros
   movlw   b'00110000'   
   call   LCD_EscribeLCD
   movlw   b'00100000'      
   call   LCD_EscribeLCD

   call   LCD_2Lineas4Bits5x7   
   call   LCD_Borra      
   call   LCD_CursorOFF   
   call   LCD_CursorIncr      
   return

LCD_EscribeLCD
   andlw   b'11110000'      
   movwf   LCD_Dato      
   swapf   LCD_Dato,F
   movf   LCD_BusDatos,W   
   andlw   b'11110000'      
   iorwf   LCD_Dato,F      
   bsf   STATUS,RP0      
   movf   PORTC,W      
   movwf   LCD_GuardaTRISC
   movlw   b'11110000'      
   andwf   PORTC,F      
   bcf   STATUS,RP0      
   movf   LCD_Dato,W      
   movwf   LCD_BusDatos   
   bsf   PINE      
   bcf   PINE      
   bsf   STATUS,RP0      
   movf   LCD_GuardaTRISC,W   
   movwf   PORTC      
   bcf   STATUS,RP0      
   return

LCD_EnviaComando
   bcf   PINRS   
   goto   LCD_Envia

LCD_Caracter
   bsf   PINRS   
   call   LCD_CodigoCGROM

LCD_Envia
   movwf   LCD_GuardaDato   
   call   LCD_EscribeLCD   
   swapf   LCD_GuardaDato,W   
            
   call   LCD_EscribeLCD   
   btfss   PINRS   
   call   Retardo_2ms      
   call   Retardo_50micros
   return

Un saludo.


 

anything