Autor Tema: LCD y PcBasic PLUS  (Leído 2191 veces)

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

Desconectado juanelete

  • PIC12
  • **
  • Mensajes: 74
LCD y PcBasic PLUS
« en: 02 de Octubre de 2004, 05:15:00 »
Hola a todos:

Soy nuevo en la programacion de PICs, empece con PicBasic Pro, pero mi proyecto requiere la utilizacion de funciones
trigonometricas y operaciones con coma flotante. Buscando la solucion encontre PicBasic Plus, que si hace lo que yo quiero.

Tengo un pequeño circuito de pruebas con un 16F876 y un LCD (16x2),...etc.

Las primera pruebas las hice con PBPro y todo bien...

He adaptado el programa para PBPlus, pero el LCD no funciona...


Ejemplo  de programa en PicBasic Pro (SI FUNCIONA)

" Conexion LCD con PIC 16f876:
"
"       LCD              PIC
"      -------         -----------
"      11- DB4     2- PortA.0
"      12- DB5     3- PortA.1
"      13- DB6     4- PortA.2
"      14- DB7     5- PortA.3
"        4- RS       6- PortA.4
"        6- E       24- PortB.3
"        5- RW      Masa  
"        2- Vdd     5 volts
"        1- Vss     Masa  
"        3- Vo       Masa con una resistecia de 5k


DEFINE LCD_DREG PORTA    "LCD data port
DEFINE LCD_DBIT 0    "LCD data starting bit 0 or 4
DEFINE LCD_RSREG PORTA    "LCD register select port
DEFINE LCD_RSBIT 4    "LCD register select bit
DEFINE LCD_EREG PORTB    "LCD enable port
DEFINE LCD_EBIT 3    "LCD enable bit
DEFINE LCD_RWREG PORTE    "LCD read/write port
DEFINE LCD_RWBIT 2    "LCD read/write bit
DEFINE LCD_BITS 4    "LCD bus size 4 or 8
DEFINE LCD_LINES 2    "Number lines on LCD


   
Lcdout $fe, 1   " Clear LCD screen
pause 50
       
LcdOut $FE, 2   "Principio Primera linea

LcdOut "HOLA"  

LcdOut $FE, $C0 "Principio segunda linea
   
LcdOut "ADIOS"
       
pause 5000
END      

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

Ejemplo en PicBasic Plus (NO FUNCIONA)


DEVICE 16F876   
                
DECLARE LCD_TYPE 0       "LCD tipo 0=Alfanumerico
DECLARE LCD_DTPIN PORTA.4     "LCD comienza en bit 4 del portA
DECLARE LCD_DTPORT PORTA     "LCD data port
DECLARE LCD_RWPIN PORTE.2    "LCD read/write port and pin
DECLARE LCD_ENPIN PORTB.3        "Activacion LCD
DECLARE LCD_RSPIN PORTA.4        "Seleccion registro de control
DECLARE LCD_INTERFACE 4        "Interface de 4 u 8 lineas
DECLARE LCD_LINES 2         "Number lines on LCD


CLS
       
PRINT $FE, 2   "Principio Primera linea

PRINT "HOLA"  

PRINT $FE, $C0 "Principio segunda linea
   
PRINT "ADIOS"
       
DELAYMS 5000
END      

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

Podeis decirme que hago mal ....


Saludos

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: LCD y PcBasic PLUS
« Respuesta #1 en: 02 de Octubre de 2004, 08:46:00 »
Hola:

          DEVICE = 16F877
                XTAL = 20


   LCD_DTPIN = PORTD.4   
   LCD_RSPIN = PORTE.0
   LCD_ENPIN = PORTE.1
   LCD_INTERFACE = 4   " 4-bit Interface
   LCD_LINES = 2
   LCD_TYPE = 0

                DELAYMS   500

                CLS

Print at 1,1, "Hola"

Print at  2,1, "ADIOS"

asi tal cual funciona,no te olvides que RW va a masa (pata 5) y que la declaracion dtpin implica conectar portd.4  ,5  6  y 7 a las entradas correspondientes del display marcadas como d4,d5,d6,d7

estimo que uno de tus problemas es en la declaracion del print......

saludos
khasistos


Desconectado risanti13

  • PIC12
  • **
  • Mensajes: 66
RE: LCD y PcBasic PLUS
« Respuesta #2 en: 04 de Octubre de 2004, 11:16:00 »
Hola Compañero mira segun las siguiente expecificaciones  dada por ti

 Conexion LCD con PIC 16f876:
"
" LCD PIC
" ------- -----------
" 11- DB4 2- PortA.0
" 12- DB5 3- PortA.1
" 13- DB6 4- PortA.2
" 14- DB7 5- PortA.3
" 4- RS 6- PortA.4
" 6- E 24- PortB.3
" 5- RW Masa
" 2- Vdd 5 volts
" 1- Vss Masa
" 3- Vo Masa con una resistecia de 5k

el programa debe ser de la siguiente manera.. y recuerda el porta.4 es colector abierto debes colocar  una Pull up.



Device 16f876
Xtal 4


"definicion LCD
DECLARE LCD_TYPE        0             "Tipo alafanumerico
DECLARE LCD_DTPORT  PORTA      "LCD puerto de datos esta porta
Declare   LCD_DTPIN  PORTA.0    
Declare   LCD_RSPIN      PORTA.6    
Declare   LCD_ENPIN      PORTB.3
Declare LCD_LINES        2
Declare LCD_INTERFACE    4        " el puerto dato es de 4 hilos
      
CLS
PRINT $FE, 2,"HOLA"
PRINT $FE, $C0,"ADIOS"
DELAYMS 5000
END




el error estaba en la declaracion del puerto de lcd...

adios espero que te sea util lo probre en proteus y resulto...

RIsanti   

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: LCD y PcBasic PLUS
« Respuesta #3 en: 04 de Octubre de 2004, 11:55:00 »
Hola Risanti:

Perdon pero no veo en el post que te envie ninguna declaracion de conexion al LCd en la cual interviniese el PortA asi que me alegro quer hayas solucionado tu problema ,pero si vieses con detenimiento mi respuesta veras que no es como tu dices .
Ademas no debo colocar ninguna R de pull up pues insisto NO estoy utilizando el PortA.El prog que te envie esta funcionando en la vida real......
Saludos
khasistos

Desconectado Flugplatz

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 279
    • Mi canal de YouTube
RE: LCD y PcBasic PLUS
« Respuesta #4 en: 05 de Octubre de 2004, 05:24:00 »
Juanelete ...

De hecho, si el amigo khasistos me permite añadir algo, ni siquiera hace falta definir ninguna pata de la conexión LCD/PicBasic, ya que si no ponemos nada tira de un archivo de configuración que se llama DEFAULT.INI en la carpeta Defaults, del que extrae los pines usados para el LCD ...

Si para mayor comodidad te quieres definir tu propio .ini, no tienes nada más que hecerlo a tu gusto, y forzar al programa para que tire de ahí:

Codigo:

SET_DEFAULTS default87
"buscaría un default87.ini
"si no pones Set_Defaults tira automáticamenete de DEFAULT.INI
DEVICE = 16F877
DELAYMS 500
CLS
Print at 1,1, "Hola"
Print at 2,1, "Mundo"
end



Mi canal de YouTube

Un saludo desde Madrid

Desconectado risanti13

  • PIC12
  • **
  • Mensajes: 66
RE: LCD y PcBasic PLUS
« Respuesta #5 en: 05 de Octubre de 2004, 17:32:00 »
[cita title=Escrito originalmente por juanelete]Hola a todos:
Por Favor leer
Soy nuevo en la programacion de PICs, empece con PicBasic Pro, pero mi proyecto requiere la utilizacion de funciones
trigonometricas y operaciones con coma flotante. Buscando la solucion encontre PicBasic Plus, que si hace lo que yo quiero.

Tengo un pequeño circuito de pruebas con un 16F876 y un LCD (16x2),...etc.

Las primera pruebas las hice con PBPro y todo bien...

He adaptado el programa para PBPlus, pero el LCD no funciona...


Ejemplo  de programa en PicBasic Pro (SI FUNCIONA)

" Conexion LCD con PIC 16f876:
"
"       LCD              PIC
"      -------         -----------
"      11- DB4     2- PortA.0
"      12- DB5     3- PortA.1
"      13- DB6     4- PortA.2
"      14- DB7     5- PortA.3
"        4- RS       6- PortA.4
"        6- E       24- PortB.3
"        5- RW      Masa  
"        2- Vdd     5 volts
"        1- Vss     Masa  
"        3- Vo       Masa con una resistecia de 5k



DEFINE LCD_DREG PORTA    "LCD data port
DEFINE LCD_DBIT 0    "LCD data starting bit 0 or 4
DEFINE LCD_RSREG PORTA    "LCD register select port
DEFINE LCD_RSBIT 4    "LCD register select bit
DEFINE LCD_EREG PORTB    "LCD enable port
DEFINE LCD_EBIT 3    "LCD enable bit
DEFINE LCD_RWREG PORTE    "LCD read/write port
DEFINE LCD_RWBIT 2    "LCD read/write bit
DEFINE LCD_BITS 4    "LCD bus size 4 or 8
DEFINE LCD_LINES 2    "Number lines on LCD


   
Lcdout $fe, 1   " Clear LCD screen
pause 50
       
LcdOut $FE, 2   "Principio Primera linea

LcdOut "HOLA"  

LcdOut $FE, $C0 "Principio segunda linea
   
LcdOut "ADIOS"
       
pause 5000
END      

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

Ejemplo en PicBasic Plus (NO FUNCIONA)


DEVICE 16F876   
                
DECLARE LCD_TYPE 0       "LCD tipo 0=Alfanumerico
DECLARE LCD_DTPIN PORTA.4     "LCD comienza en bit 4 del portA
DECLARE LCD_DTPORT PORTA     "LCD data port
DECLARE LCD_RWPIN PORTE.2    "LCD read/write port and pin
DECLARE LCD_ENPIN PORTB.3        "Activacion LCD
DECLARE LCD_RSPIN PORTA.4        "Seleccion registro de control
DECLARE LCD_INTERFACE 4        "Interface de 4 u 8 lineas
DECLARE LCD_LINES 2         "Number lines on LCD


CLS
       
PRINT $FE, 2   "Principio Primera linea

PRINT "HOLA"  

PRINT $FE, $C0 "Principio segunda linea
   
PRINT "ADIOS"
       
DELAYMS 5000
END      

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

Claramente en la declaracion en parte superior donde dice PicBasic Pro (SI FUNCIONA) Sale comentarios  que dicen las forma de es esta conectada el pic al LCd, ademas  el menciona que :Tengo un pequeño circuito de pruebas con un 16F876 y un LCD (16x2),...etc. es por ello que pense que las Conexiones eran las mismas para el circuito en Pic Basic Plus...En otros terminos pense el el circuito era uno y solo cambia la programacion de Pic y pregunta por que no le Funciona...

Desconectado juanelete

  • PIC12
  • **
  • Mensajes: 74
RE: LCD y PcBasic PLUS
« Respuesta #6 en: 11 de Octubre de 2004, 16:46:00 »
Gracias a todos.

Ya solucione el problema.

En algun momento meti la pata al transcribir el programa, y aunque lo tenia delante de las narices no lo veia....

Saludos


 

anything