CeroLab, Zona de pruebas - Inventos Varios de electónica y robótica

Trabajar con un display LCD con Basic Stamp
Volver


OBJETIVO:

Para poder monitorizar los datos de cualquier proyecto mientras el micro está conectado al PC, no existe mayór problema, pues con el comando DEBUG del BS2, podemos enviar la información via serie al PC.

El problema, viene cuando el proyecto es ya autónomo y no está fisicamente conectado... solución, un display LCD con el que poder ver que es lo que está pasando dentro del micro.

Yo me he decidido por uno serie, concretamente un ILM-216, es mucho más sencillo de conectar que uno paralelo, pues solo necesita 3 pins (GND, +5v y datos)

Este LCD, está controlado por un micro... si, un PIC, lo has acertado, concretamente un PIC16F84, al cual le puedes enviar comandos y acceder a la EPROM, donde entre otras cosas puedes almacenar GDU (caracteres gráficos definidos por el usuario), que tan bien nos van para mostrar a nuestra querida "ñ", u otros caracteres gráficos como barras, etc...

La comunicación con el BS2 no puede ser más sencilla, lo mejór es trabajar con constantes, donde definir los valores de control, he ahí la lista:

Función Valor ASCII
Limpiar display 1
cursor en inicio 2
Ocultar cursor 12
Mostrar el cursor underline 14
Mueve el cursor un caracter a la IZQUIERDA 16
Mueve el cursor un caracter a la DERECHA 20
Scroll 1 caracter Izquierda 24
Scroll 1 caracter Derecha 28
Posiciona el cursor en 128 + posición
Mover al primer caracter de la primera línea 128
Mover el cursor al n caracter de la PRIMERA línea 128 + n
Mover el cursor al n caracter de la SEGUNDA línea 192 + n
Declara la dirección del GDU 64 + dirección

Puedes ver todos los valores en http://www.seetron.com


HARDWARE:

  • Laconexión del módulo LCD es muy sencilla, solo al alimentación, desde el Vdd (+5V) del BS2 y un pin de comunicación serie
  • Desde el BS2, enviamos los datos al LCD, según velocidad y protocolo especificado, por defecto 2400bps, 8 bits de datos y sin paridad


SOFTWARE:

'{$STAMP BS2}
' *********************************************************************
' HARD:
' Test de LCD Serie ILM-216
' LCD => BS2
' pin1 => GND(Vss)
' pin2 => +5(Vdd)
' pin3 => Pin0
'**********************************************************************
N2400 CON $418D                 ' Comunicación 2400 Bps. Sin bit de Paridad
LCD_pin CON 0                       ' PIN en el que está conectado el LCD
LCD_Pos CON 16                    ' Acepta posición en LCD
LCD_Car CON 64                    ' Posición del carácter en el LCD
LCD_limpia CON 12                 ' Limpia LCD
LCD_on CON 14                      ' Back light ON
LCD_off CON 15                      ' Back light OFF
x VAR Word                             ' Variable Auxiliar
'**********************************************************************

PAUSE 1000
SEROUT LCD_pin,N2400,[LCD_limpia,LCD_on, "hola mundo"]
FOR x=0 TO 15
SEROUT LCD_pin,N2400,[LCD_Pos,LCD_Car+x,"."]
SEROUT LCD_pin,N2400,[LCD_Pos,LCD_Car+31-x,"."]
PAUSE 100
NEXT
FOR x=0 TO 15
SEROUT LCD_pin,N2400,[LCD_Pos,LCD_Car+x," "]
SEROUT LCD_pin,N2400,[LCD_Pos,LCD_Car+31-x," "]
PAUSE 100
NEXT

SEROUT LCD_pin,N2400,[LCD_limpia]                                        'Limpia pantalla
SEROUT LCD_pin,N2400,["Valor...= "]                                          'Literales
SEROUT LCD_pin,N2400,[LCD_Pos,LCD_car+16,"Caracter= "]  'En la posición 16

FOR x= 28 TO 255
SEROUT LCD_pin,N2400,[LCD_Pos,LCD_car+10,DEC x]              ' Muestra valores en la posición 11
SEROUT LCD_pin,N2400,[LCD_Pos,LCD_car+26, x]                      ' Muestra caracteres en a posición 26
PAUSE 250
NEXT
SEROUT LCD_pin,N2400,[LCD_limpia,LCD_off, "ADIOS!"]


DOWNLOADS:


Saludos, Bruno Barangé.
Contacta conmigo:
Formulario - bruno.akun@gmail.com

IP's