Escolar Documentos
Profissional Documentos
Cultura Documentos
Figura A.2. Distribución de pines de conexión de la pantalla LCD 2x16 del iBOARD III.
COMANDOS UTILIZADOS
La información que se envía a la pantalla LCD puede interpretarse de dos
formas: como un comando, cuando se coloca al (pin) denominado RS en nivel
bajo y como un carácter, cuando el (pin) RS está en nivel alto. Un comando es un
dato numérico de 8 bits que le indica al controlador HITACHI 44780 ó compatible,
que deber realizar una operación; entre las cuales, se encuentran las mostradas en
la figura A.3.
Figura A.1. Conexiones de la pantalla LCD 2x16 al sistema de desarrollo iBOARD III.
CONJUNTO (SET) DE CARACTERES
La pantalla LCD deL iBOARD III, incluye un microcontrolador interno como el Aún cuando los comandos mostrados en la tabla de la figura A.3. son suficientes
HITACHI 44780 ó compatible y puede entre otras cosas: para manejar la pantalla LCD, en la mayoría de las aplicaciones, un usuario puede
crear sus propios comandos de control para el manejo de la LCD. Para ello deberá
· Presentar caracteres ASCII y griegos utilizar las especificaciones que suministra fabricante. La totalidad de las pantallas
· Recibir y mostrar caracteres personalizados LCD compatibles con la Hitachi 44780, incluyen un conjunto de caracteres
· Desplazamiento de caracteres (Scroll) tanto a la derecha como a la izquierda precargados en la memoria RAM. Este conjunto de caracteres lo podemos observar
· Cambiar el aspecto y el movimiento del cursor a través de la figura A.4.
· Direccionar de manera simple la posición de visualización de los caracteres
CARACTERES PERSONALIZADOS
La figura A.7. muestra una fotografía del sistema de desarrollo iBOARD III,
ejecutando el programa de demostración de la pantalla LCD. Este ejemplo se
encuentra en el CD entregado a usted, en la carpeta Ejemplos/
CAP_04/iBOARD_III_DEMO.bas. Ya en el capítulo 04, se había descrito como cargar
y ejecutar el programa de demostración. En esta sección explicaremos su
funcionamiento, sin embargo, antes se describirán los comandos en alto nivel que
posee en compilador Basic® PROTON® para el manejo de una pantalla LCD.
El compilador Basic® PROTON® dispone de un comando para el manejo de las DECLARE LCD_ENPIN PORT . PIN
pantallas LCD.
Asigna el Puerto y el pin de conexión que se utilizarán para la conexión de la línea
PRINT Item { , Item... }
de habilitación (EN) de la pantalla LCD. Por defecto se utiliza el pin PORTB<2>.
Item - Es una constante, variable, expresión, modificador de formato y/o un(a)
DECLARE LCD_RSPIN PORT . PIN
string.
Asigna el Puerto y el pin de conexión que se utilizarán para la conexión de la línea
También el comando PRINT acepta modificadores de formato como los de selección (RS) de la pantalla LCD. Por defecto se utiliza el pin PORTB<3>.
mostrados en la siguiente tabla.
DECLARE LCD_INTERFACE 4 or 8
Informa al compilador si la pantalla LCD trabajará en modo 4 bits ó 8 bits. Por
defecto se utiliza el modo 4 bits.
AT ypos,xpos Posiciona el cursor de una pantalla al valor x,y de la LCD
CLS Limpia la Pantalla LCD y crea un retardo de 30ms
BIN{1..32} Envía dígitos en formato binario
DECLARE LCD_LINES 1 , 2 , or 4
DEC{1..10} Envía dígitos en formato decimal Informa al compilador el número de líneas de la pantalla LCD. Por defecto se utiliza
HEX{1..8} Envía dígitos en formato hexadecimal el valor de dos (2) líneas.
SBIN{1..32} Envía dígitos en formato binario con signo
SDEC{1..10} Envía dígitos en formato decimal con signo
SHEX{1..8} Envía dígitos en formato hexadecimal con signo
Ejemplos de utilización pantalla LCD.
IBIN{1..32} Envía dígitos en formato binario precedidos de '%'
IDEC{1..10} Envía dígitos en formato decimal precedidos de '#'
IHEX{1..8} Envía dígitos en formato hexadecimal precedidos de '$' Ya en el capítulo 4, se había cargado y ejecutado el programa
ISBIN{1..32} Envía dígitos en formato binario con signo precedidos de '%' CAP_04_Ejemplo_01.bas, el cual, hace uso de la pantalla LCD para mostrar un
ISDEC{1..10} Envía dígitos en formato decimal con signo precedidos de '#’ mensaje inicial y luego el valor incremental de una variable. La codificación del
ISHEX{1..8} Envía dígitos en formato hexadecimal con signo prec. de '$' programa es mostrada a continuación:
REP c\n Envía el carácter “c” repetido “n” veces
STR array\n Envía todo ó parte de un arreglo ' CAP_04_Ejemplo_01.bas
CSTR cdata Envía datos tipo “string” definidos por el comando CData ' Ejemplo básico de utilización del sistema iBOARD III con LCD
' -------------------------------------------------------------------
Device = 16F876 ' Define el microcontrolador utilizado
ALL_DIGITAL = True ' Config. todos los puertos como dig.
A fin de utilizar la pantalla LCD de caracteres con el sistema de desarrollo XTAL = 20 ' Define la velocidad del resonador
iBOARD III, primero hay que configurarla a través de las directivas del compilador.
Estas directivas son las denominadas “Declares”. Existen seis declaraciones ' Pines de conexión a la pantalla LCD
Declare LCD_DTPIN PORTB.4 ' Pin de Datos LCD conec. al PORTB.4
diferentes para la configuración de una LCD.
Declare LCD_ENPIN PORTB.3 ' Pin de Enable LCD conec. al PORTB.3
Declare LCD_RSPIN PORTB.1 ' Pin de RS LCD conec. al PORTB.1
DECLARE LCD_TYPE 1 or 0 , GRAPHIC or ALPHA TRISB.2 = 0 ' Declara a PORTB.2 como Salida Dig.
Informa al compilador el tipo de pantalla LCD a utilizar. (1) selecciona una pantalla PORTB.2 = 0 ' Coloca en PORTB.2 un cero (0) Lógico
LCD del tipo gráfica. (0) selecciona una pantalla LCD del tipo carácter. Por defecto
Dim Contador As Byte ' Declaración de var. de uso general
se escoge el uso de una pantalla de caracteres. Dim ValorF As Float ' Declaracion de var. de uso general
ValorF = 0 ' Inicializa la variable en cero
DECLARE LCD_DTPIN PORT . PIN TRISA = $FF ' Declara el Puerto A como entrada dig.
Asigna el Puerto y el pin de conexión que se utilizarán para la conexión de la línea TRISC = $00 ' Declara el Puerto C como salida dig.
data de la pantalla LCD. Por defecto se utiliza el pin PORTB<4>.
Declare LCD_DTPIN PORTB.4 ' Pin de Datos LCD conec. al PORTB.4 ' Anexo_A_Ejemplo_02.bas
Declare LCD_ENPIN PORTB.3 ' Pin de Enable LCD conec. al PORTB.3 ' Creación y visualización de un caracter especial en LCD
Declare LCD_RSPIN PORTB.1 ' Pin de RS LCD conec. al PORTB.1 ' -------------------------------------------------------------------
TRISB.2 = 0 ' Declara a PORTB.2 como Salida Dig. Device = 16F876
PORTB.2 = 0 ' Coloca en PORTB.2 un cero (0) Lógico ALL_DIGITAL = True
XTAL = 20
Las primeras tres instrucciones se utilizan para indicarle al compilador cual pin
Declare LCD_DTPIN PORTB.4 ' Pin de Datos LCD conect. al PORTB.4
del microcontrolador será utilizado para manejar las líneas de datos, habilitación y Declare LCD_ENPIN PORTB.3 ' Pin de Enable LCD conect. al PORTB.3
selección de la pantalla LCD. La cuarta línea TRISB.2 = 0, configura al pin Declare LCD_RSPIN PORTB.1 ' Pin de RS LCD conect. al PORTB.1
PORTB<2> como una salida digital. La instrucción cinco: PORTB.2 = 0, coloca un
cero (0) lógico 0 Vdc en el pin PORTB<2>. Este pin está conectado al pin RW de la TRISB.2 = 0 ' Declara a PORTB.2 como Salida Digital
PORTB.2 = 0 ' Coloca en PORTB.2 un Edo. Bajo 0 VDC
pantalla LCD, el cual, deberá estar conectado a tierra para que la pantalla reciba los
datos del microcontrolador. Como el compilador Basic® PROTON® sólo da soporte Symbol CGRAM = $64 ' Apuntador a la Memoria CGRAM del LCD
para la escritura de la LCD y no la lectura, no incluye la definición de este pin Dim I As Byte
dentro de las directivas del compilador. Si RW en la pantalla LCD se coloca a cero
(0) lógico 0 Vdc, la pantalla LCD se habilitara en modo de escritura y estará lista Main:
'CARGANDO EL 1ER. CARACTER PERSONALIZADO EN LA CGRAM
para visualizar la información enviada desde el microcontrolador. Esto es
Print 254,64, 31,04,14,10,10,14,04,31
justamente lo que hace la instrucción cinco: PORTB.2 = 0. Coloca al pin RW de la Print Cls ' Limpia la pantalla LCD
LCD a cero. ' Muestra texto en línea1
Print At 1,1, "CaracterEspecial" ' CaracterEspecial
Las instrucción: Print At 2,7, 0 ' muestra caracter especial
DelayMS 1000 ' segunda línea
Print $FE, 1 ' Comando para limpiar pantalla LCD GoTo Main
End
GoTo Main
Figura A.8. Fotografía de la ejecución del programa Anexo_A_Ejemplo_02.bas End
Creación de un carácter especial en CGRAM de la LCD.
' Anexo_A_Ejemplo_03.bas
' Creación y visualización de 8 caracteres especiales en LCD
' -------------------------------------------------------------------
Device = 16F876
ALL_DIGITAL = True
XTAL = 20
Main:
'CARGANDO EL 1ER. CARACTER PERSONALIZADO EN LA CGRAM
Print 254,64, 31,04,14,10,10,14,04,31
'CARGANDO EL 2DO. CARACTER PERSONALIZADO EN LA CGRAM
Print 254,72, 31,31,31,31,31,31,31,31 Figura A.9. Fotografía de la ejecución del programa Anexo_A_Ejemplo_03.bas
'CARGANDO EL 3RO. CARACTER PERSONALIZADO EN LA CGRAM Creación de ocho caracteres especiales en CGRAM de la LCD.
' Anexo_A_Ejemplo_04.bas
' Efectos especiales con una pantalla LCD
' -------------------------------------------------------------------
Device = 16F876
ALL_DIGITAL = True
XTAL = 20
Main:
Print $FE, 1 ' Limpia la pantalla LCD
Print At 1,1, " Pantalla LCD " ' Visualiza mensaje en la
Print At 2,1, " iBOARD III " ' Línea 1 y Línea 2
DelayMS 2000 Figura A.10. Fotografía de la ejecución del programa Anexo_A_Ejemplo_04.bas
Efectos especiales con una pantalla LCD.
GoSub Scroll_Izquierda 'Desplaza todo el texto a la izquierda
GoSub Scroll_Derecha 'Desplaza todo el texto a la derecha
DelayMS 1000
GoTo Main
'SUB-RUTINAS
'--------------------------------------------------------------------
Scroll_Izquierda:
For Index = 0 To 15
Print $FE, SCRLEFT
DelayMS 300
Next
Return
Scroll_Derecha:
For Index = 0 To 15
Print $FE, SCRRIGHT
DelayMS 300
Next
Return