Autor Tema: Problemas con pines del LCD  (Leído 2874 veces)

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

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Problemas con pines del LCD
« en: 19 de Noviembre de 2007, 17:55:27 »
actualmente estoy realizando un probrama y lo monte en mi pic junto con la tarjeta que ya fabrique estoy usando un pic16F876 el problema es que creo que cuando se usa la instruccion lcdout con un 4 bit's de datos este escoje el puerto que uno le asigame mediante
 DEFINE  LCD_DREG        PORTB
DEFINE  LCD_DBIT        4
pero los bit no los escoge uno sino que el programa asigna desde portb.4 hasta portb.7
mi problema fue que en las conexiones yo escogi desde el bit 0 hasta el bit3 como haria yo para cambiar y decirle que los bit de datos estan desde el bit 4 hasta el 7 y no del 0 hasta el 3 como el los coge. no quiero volver a rediseñar la pcb que me costo trabajo y me quedo muy bien.

agradeceria su colaboracin este es parte de mi programa


'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2007 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 06/06/2007                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Define OSC 4


' Configuracion de Display LCD
DEFINE  LCD_DREG        PORTB
DEFINE  LCD_DBIT        4
DEFINE  LCD_RSREG       PORTB
DEFINE  LCD_RSBIT       1
DEFINE  LCD_EREG        PORTB
DEFINE  LCD_EBIT        2

 
DEFINE ADC_CLOCK      3
DEFINE ADC_BITS      10
DEFINE ADC_SAMPLEUS  50
 

TRISA = %11111111      ' Set PORTA to all input

TRISC=%00001111
TRISB=$00
ADCON1 = %10001110      ' Set PORTA analog and right justify result
 
 
TERMO VAR PORTA.0
HTEMP VAR PORTC.1
LTEMP VAR PORTC.0
ENTER VAR PORTC.2
EXIT  VAR PORTC.3
HEAT  VAR PORTC.4


'Set temperatura inferior

LED     VAR PORTB.3

 
 
SENSOR  VAR WORD
MAXTEMP VAR WORD
RANGO   VAR WORD
REF     VAR WORD
ADVAL   VAR WORD
RL      VAR BYTE
TL      VAR BYTE
I       VAR BYTE
 
INICIO:
HIGH LED
  MAXTEMP=0
  RANGO=0
  PORTC=0
 LCDOUT$FE,1,"  INGRESE  "
 LCDOUT$FE,$C0,"TEMPERATURA"
 GOSUB PAUSA
 
www.microfull.com
Desarrollo de proyectos microcontrolados

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problemas con pines del LCD
« Respuesta #1 en: 19 de Noviembre de 2007, 18:13:39 »
Hola:

No entiendo bien lo que quieres decir, pero cuando trabajas a 4 bits, se usan los bits D4,D5,D6 y D7 del LCD, en tanto que para el pic puedes seleccionarlo tu,  esta parte:

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0

DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4

Indica que la conexión de los bits del bus de datos sería así:

PIC     LCD
B0       D4
B1       D5
B2       D6
B3       D7

Si lo tienes así:

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4

DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4

Entonces las conexiones quedan así:

PIC     LCD
B4       D4
B5       D5
B6       D6
B7       D7

No puedes elegir los pines del LCD para los datos, eso lo puedes hacer solo con el pic
« Última modificación: 19 de Noviembre de 2007, 18:15:48 por LordLafebre »

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Problemas con pines del LCD
« Respuesta #2 en: 19 de Noviembre de 2007, 18:31:03 »
Que tal amigo!
Mira en el manual del pic basic pro aparese como se utiliza de todas formas yo te coloco la informacion aqui:
   
    ' Set LCD Data port
   DEFINE LCD_DREG   PORTB                            'con esta instruccion seleccionas el puerto al
                                                                          'cual vas a colocar el bus de datos                           
   ' Set starting Data bit (0 or 4) if 4-bit bus
   DEFINE LCD_DBIT   4                                     ' con esta seleccionas si el bus es de 4 u 8 bits

   ' Set LCD Register Select port
   DEFINE LCD_RSREG   PORTB                   'aqui defines el puerto donde vas a conectar el
                                                                          'RS
   ' Set LCD Register Select bit
   DEFINE LCD_RSBIT   1                             'Con esta asignas el pin del puerto que             
                                                                                                                                                                                                                                              'que seleccionaste arriba
   ' Set LCD Enable port
   DEFINE LCD_EREG   PORTB                              'es lo mismo que con RS
   ' Set LCD Enable bit
   DEFINE LCD_EBIT   0
   ' Set LCD bus size (4 or 8 bits)

   un ejemplo aqui esta:

        DEFINE LCD_DREG   PORTB
        DEFINE LCD_DBIT   4                       'desde potb4 a portb7 si colocas cero ira asi portb.0 a
                                                            'portb.3
        DEFINE LCD_RSREG PORTB            'el puerto donde va el bit RS
        DEFINE LCD_RSBIT   1               'aqui seria el portb.1 donde va RS
        DEFINE LCD_EREG   PORTB               'el puerto donde vas a colocar el bit E (portb)
       DEFINE LCD_EBIT   0                        'aqui colocas el bit del puerto que seleccionas (portb.0)

Por defecto el programa opera con bus a 4 lineas si quieres que sea a 8 lineas debes colocar el siguiete Define.

        DEFINE LCD_BITS   4           '4 para bus de 4 lineas y 8 para bus de 8 lineas

Espero haberte servido de ayuda

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problemas con pines del LCD
« Respuesta #3 en: 19 de Noviembre de 2007, 19:06:04 »
Que tal amigo!
Mira en el manual del pic basic pro aparese como se utiliza de todas formas yo te coloco la informacion aqui:
   
    ' Set LCD Data port
   DEFINE LCD_DREG   PORTB                            'con esta instruccion seleccionas el puerto al
                                                                          'cual vas a colocar el bus de datos                           
   ' Set starting Data bit (0 or 4) if 4-bit bus
   DEFINE LCD_DBIT   4                                     ' con esta seleccionas si el bus es de 4 u 8 bits


   ' Set LCD Register Select port
   DEFINE LCD_RSREG   PORTB                   'aqui defines el puerto donde vas a conectar el
                                                                          'RS
   ' Set LCD Register Select bit
   DEFINE LCD_RSBIT   1                             'Con esta asignas el pin del puerto que             
                                                                                                                                                                                                                                              'que seleccionaste arriba
   ' Set LCD Enable port
   DEFINE LCD_EREG   PORTB                              'es lo mismo que con RS
   ' Set LCD Enable bit
   DEFINE LCD_EBIT   0
   ' Set LCD bus size (4 or 8 bits)

   un ejemplo aqui esta:

        DEFINE LCD_DREG   PORTB
        DEFINE LCD_DBIT   4                       'desde potb4 a portb7 si colocas cero ira asi portb.0 a
                                                            'portb.3
        DEFINE LCD_RSREG PORTB            'el puerto donde va el bit RS
        DEFINE LCD_RSBIT   1               'aqui seria el portb.1 donde va RS
        DEFINE LCD_EREG   PORTB               'el puerto donde vas a colocar el bit E (portb)
       DEFINE LCD_EBIT   0                        'aqui colocas el bit del puerto que seleccionas (portb.0)

Por defecto el programa opera con bus a 4 lineas si quieres que sea a 8 lineas debes colocar el siguiete Define.

       DEFINE LCD_BITS   4           '4 para bus de 4 lineas y 8 para bus de 8 lineas[/b]

Espero haberte servido de ayuda

Hola, la parte de rojo no selecciona si el bus es de 4 u 8, indica el bit de inicio para el bus de datos, puede ser 0 o 4 como lo indica en el comentario en inglés, la parte de azul si es para definir si el bus es de 4 u 8 bits.

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Re: Problemas con pines del LCD
« Respuesta #4 en: 20 de Noviembre de 2007, 01:25:16 »
Quiero darle las gracias a todos los que me ayudaron y felicitar al grupo de este foro por su pronta ayuda les cuento que ya aprendi algo nuevo y con su ayyuda puede resolver el problemita que tenia. gracias pronto colocare parte del programa y fotos del circuito terminado.
 :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/  :-/
www.microfull.com
Desarrollo de proyectos microcontrolados

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problemas con pines del LCD
« Respuesta #5 en: 20 de Noviembre de 2007, 01:30:46 »
Hola:

Y como lo has solucionado?
« Última modificación: 20 de Noviembre de 2007, 01:38:08 por LordLafebre »

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Problemas con pines del LCD
« Respuesta #6 en: 20 de Noviembre de 2007, 16:57:53 »
Tienes razon,  lordlafebre se me escapo, lo correcto es:
define lcd_bits 4  ' es 4 para un bus de 4 bits y 8 para un bus de 8 bits de datos.
Pic basic pro toma por defecto la configuracion para 4 bits, asi que este comando lo debes utilizar solo si trabajas con un bus de datos de 8 bits.

Si necesitas algun ejemplo en el foro hay varios sino de seguro te podemos enviar varios  :mrgreen:

Saludos
« Última modificación: 20 de Noviembre de 2007, 17:01:28 por RALF2 »

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Re: Problemas con pines del LCD
« Respuesta #7 en: 21 de Noviembre de 2007, 00:42:24 »
Este fue el comentario que me ayudo mucho y fue el que mas dio en el problema que tenia que era que tenia conectado al pic en los 4 bit menos significativos(b0-b3) el bus de datos de 4 bit de la lcd donde por lo general se conectan a los bit's mas significativos(b4-b7)

Hola:

No entiendo bien lo que quieres decir, pero cuando trabajas a 4 bits, se usan los bits D4,D5,D6 y D7 del LCD, en tanto que para el pic puedes seleccionarlo tu,  esta parte:

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0                      aqui fue donde lo tenia con valor de 4 y lo coloque con valor de 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4

el comando que define si la lcd trabaja con 8 o con 4 es DEFINE LDC_DBITS
Indica que la conexión de los bits del bus de datos sería así:

PIC     LCD
B0       D4
B1       D5
B2       D6
B3       D7

Si lo tienes así:

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 5
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 4

Entonces las conexiones quedan así:

PIC     LCD
B4       D4
B5       D5
B6       D6
B7       D7

No puedes elegir los pines del LCD para los datos, eso lo puedes hacer solo con el pic
www.microfull.com
Desarrollo de proyectos microcontrolados

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problemas con pines del LCD
« Respuesta #8 en: 21 de Noviembre de 2007, 09:51:38 »
Hola:

Bueno, me alegro que ya lo tengas todo solucionado.  :mrgreen:

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Re: Problemas con pines del LCD
« Respuesta #9 en: 22 de Noviembre de 2007, 19:22:40 »
Imagenes del circuito



www.microfull.com
Desarrollo de proyectos microcontrolados

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Problemas con pines del LCD
« Respuesta #10 en: 23 de Noviembre de 2007, 12:11:08 »
Hola:

Se ve muy bien, felicidades, que es lo que hará esa plaquita?

Desconectado microfull

  • PIC10
  • *
  • Mensajes: 26
    • microfull
Re: Problemas con pines del LCD
« Respuesta #11 en: 26 de Noviembre de 2007, 09:10:54 »
Es un termostato electronico
www.microfull.com
Desarrollo de proyectos microcontrolados