Diseo con microcontroladores PIC en lenguajes MikroBasic, MikroC y MikroPascal Docente: Ing.
Roger Guachalla Narvez
xoroger@yahoo.es
PRACTICA 06: Programacin en MikroPascal del display LCD y el Teclado matricial
1. Objetivos: A travs de las libreras de MikroPascal, Mikrobasic Pro y MikroC Pro: Keypad Library y LCD Library, realizar la interface entre el PIC16F877A, un teclado matricial de 4 filas por 4 columnas (keypad 4x4) y una pantalla de cristal lquido ASCII de 2 filas por 16 columnas (LCD 2x16).
2. Teora :
MIKRO PASCAL
TECLADO MATRICIAL Un teclado (keypad) es un arreglo de pulsadores conectados por filas y columnas.
RUTINAS DE LA LIBRERIA KEYPAD
MikroPascal, MikroBasicPro y MikroC for PIC proveen una librera para trabajar con un teclado matricial de 4x4. Las rutinas tambin pueden ser usadas para teclados de 4x1, 4x2 o 4x3.
Keypad_Init: Inicializa el puerto del microcontrolador para trabajar con el teclado
Keypad_Key_Press: Funcin que devuelve el cdigo de tecla del keypad cuando la tecla es presionada. Si no hay tecla presionada, la funcin devuelve Cero (0).
Keypad_Key_Click: Funcin que devuelve el cdigo de tecla del keypad cuando la tecla es presionada y liberada. Si no hay tecla presionada, la funcin devuelve Cero (0).
Cdigos de Tecla devueltos por las funciones Keypad_Key_Press y Keypad_Key_Click:
Filas
Columnas
1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
DISPLAY DE CRISTAL LQUIDO LCD
MikroPascal, MikroBasic y MikroC PRO for PIC proveen la librera LCD para trabajar con pantallas de cristal lquido capaces de desplegar caracteres ASCII alfanumricos. En el modo de conexin de 4-bit, se requieren 6 lneas de conexin entre el microcontrolador PIC y el LCD: 2 lneas de Control (RS: Register Select, EN:Enable) y 4 lneas de Datos (D4,D5,D6,D7) Para especificar la conexin fsica entre el microcontrolador PIC y el LCD, en el programa se dimensionan (crean) variables que indican los bits de los puertos del PIC correspondientes a cada una de las 6 lneas de conexin del LCD. Estos bits pueden modificarse de acuerdo a las necesidades del diseo. Previo al uso del LCD, se debe inicializar (una sola vez) con la instruccin: LCD_Init() Se pueden enviar mensajes al LCD indicando la fila (1 al 4), columna (1 al 16) y el texto (ASCII entre comillas) con la instruccin: LCD_Out(fila,columna,Texto) Si se requiere enviar Variables (byte, integer, float, etc.) al LCD, se deben utilizar funciones de conversin de la librera de conversiones (Conversions Library). Por ejemplo para mostrar un dato tipo byte llamado Temperatura, se debe crear una variable adicional de tipo cadena (string) que contenga el dato en formato ASCII:
dim Temperatura as byte dim Temperatura_Txt as string[3] ... Temperatura=24 Asignar un valor a la variable ByteToStr(Temperatura,Temperatura_Txt) Convertir la variable a texto LCD_Out(1,1,Temperatura_Txt)
Tambin se pueden enviar comandos al LCD para su control con la instruccin: LCD_Cmd(Comando LCD). La siguiente tabla muestra los comandos disponibles:
Comando LCD Propsito _LCD_FIRST_ROW Mover cursor a la primera fila _LCD_SECOND_ROW Mover cursor a la segunda fila _LCD_THIRD_ROW Mover cursor a la tercera fila _LCD_FOURTH_ROW Mover cursor a la cuarta fila _LCD_CLEAR Limpiar pantalla _LCD_RETURN_HOME Retornar el cursor a la fila 1, columna 1 _LCD_CURSOR_OFF Apagar cursor _LCD_UNDERLINE_ON Activar cursor subrayado _LCD_BLINK_CURSOR_ON Activar cursor parpadeante _LCD_MOVE_CURSOR_LEFT Mover cursor a la izquierda _LCD_MOVE_CURSOR_RIGHT Mover cursor a la derecha _LCD_TURN_ON Encender la pantalla del LCD _LCD_TURN_OFF Apagar la pantalla del LCD _LCD_SHIFT_LEFT Desplazar la pantalla a la izquierda _LCD_SHIFT_RIGHT Desplazar la pantalla a la derecha
Pantalla de cristal lquido LCD de 2 filas y 16 columnas
Se utiliza para visualizar los diferentes mensajes en una pantalla LCD. Est basado en el microcontrolador HD44780 (Hitachi) integrado y puede visualizar mensajes en hasta 4 lneas (filas) con 16 caracteres (columnas) cada una. Puede visualizar todas las letras de alfabeto, letras de alfabeto griego, signos de puntuacin, smbolos matemticos etc. Tambin es posible visualizar smbolos creados por el usuario.
A lo largo de un lado de una placa impresa pequea del visualizador LCD se encuentran los pines que le permiten estar conectado al microcontrolador. Hay 14 pines en total marcados con nmeros (16 si hay retroiluminacin). Su funcin de los pines se muestra en la tabla que sigue:
FUNCI N NMERO NOMBRE ESTADO LGI CO DESCRI PCI N Tierra 1 Vss - 0V Alimentacin 2 Vdd - +5V Contraste 3 Vee - 0 - Vdd Control de funcionamiento 4 RS 0 1 D0 D7 considerados como comandos D0 D7 considerados como datos 5 R/W 0 1 Escribir los datos (del microcontrolador al LCD) Leer los datos (del LCD al microcontrolador) 6 E Transicin de 1 a 0 Acceso al visualizador LCD deshabilitado Funcionamiento normal Datos/comandos se estn transmitiendo al LCD Datos / comandos 7 D0 0/1 Bit 0 LSB 8 D1 0/1 Bit 1 9 D2 0/1 Bit 2 10 D3 0/1 Bit 3 11 D4 0/1 Bit 4 12 D5 0/1 Bit 5 13 D6 0/1 Bit 6 14 D7 0/1 Bit 7 MSB
El contraste del visualizador depende del voltaje de alimentacin y de si los mensajes se visualizan en una o dos lneas. Por esta razn, un voltaje variable 0-Vdd se aplica al pin marcado como Vee. Un potencimetro se utiliza con frecuencia para este propsito. Algunos de los visualizadores LCD tienen retroiluminacin incorporada (diodos LED azules o verdes). Al utilizarlo durante el funcionamiento, se debe de conectar una resistencia en serie a uno de los pines para limitar la corriente (similar a diodos LED). 3. EJEMPLO: Diagrama Esquemtico
Componentes Proteus:
4. EJEMPLO: Cdigo fuente en lenguaje MikroPascal Pro for PIC
5. Procedimiento Experimental en Laboratorio
I. 1era Firma:
Simular y Armar en protoboard el programa de EJEMPLO verificando su funcionamiento.
II. 2da Firma: Usando el lenguaje MikroPascalPro for PIC con el PIC16F877A realizar uno de los siguientes INCISOS: (Ell inciso a realizar ser asignados por el Docente o por el Auxiliar una vez obtenida la 1era Firma)
a) Candado electrnico: Se ingresa un cdigo de apertura del candado de 3 dgitos. Si el cdigo es correcto el LCD debe mostrar el mensaje ABIERTO, caso contrario el mensaje ser CERRADO.
b) Calculadora bsica: Se ingresa dos nmeros de 1 dgito (del 0 al 9), posteriormente ingresa una operacin a realizar: +,-,*,/ Finalmente el LCD muestra el resultado de la operacin.
c) Nmero secreto: Se ingresa un nmero de 2 dgitos, se compara con el nmero secreto. Si el nmero ingresado el mayor se muestra en el LCD Mayor, si es menor se muestra Menor. El proceso se repite hasta encontrar el nmero secreto, en cuyo caso el LCD muestra Numero Secreto.
6. Informe de la Prctica
I. Firmas en la Cartula (0, 1 o 2) que avalen los procedimientos realizados en Laboratorio II. Imprimir el Diagrama Esquemtico y el Cdigo Fuente en MikroBasic usados para realizar el inciso asignado para la obtencin de la 2da Firma del Trabajo en Laboratorio III. TRABAJO DE INVESTIGACION: Cada trabajo de investigacin debe incluir: Resumen escrito a mano (de un mnimo de 3 pginas) Fuentes de Informacin (direcciones web, bibliografa) Copias impresas de la informacin adquirida a travs de las fuentes
Displays LCD Secuencia de pasos y valores requeridos para realizar una inicializacin (INIT) de la pantalla LCD Explicar en detalle los tres bloques de memoria que posee el display LCD: Memoria DDRAM, CGRAM y CGROM. Mostrar en una tabla, el conjunto de caracteres ASCII que puede desplegar un display LCD Display LCD grfico (GLCD): Caractersticas, modos de funcionamiento, protocolo de comunicacin