Procesadores de Propósito General SEGUNDO CURSO DE INGENIERO TÉCNICO EN INFORMÁTICA DE SISTEMAS PRACTICA 3. Control de un LCD Curso 2001/2002 Procesadores de Propósito General (Curso 01-02) Práctica 3 Objetivos • Manejo de la documentación de los fabricantes de microcontroladores (µC). • Programación de microcontroladores en lenguaje de alto nivel. • Iniciación en el uso de la tarjeta de emulación EB-51. • Manejo de los puertos del microcontrolador. • Uso de las interrupciones internas y externas. • Configuración y control de los timers. • Control de la unidad LCD paralelo. Introducción En la presente práctica se va a hacer uso de una tarjeta de aplicación para el microcontrolador 8052 cuyo esquema se representa en la figura. +5V S1 + C1 10 uF 31 9 29 30 19 R1 8K2 12 MHz C2 30 pF S2 S3 Y1 18 U1 EA/VP RESET PSEN ALE/P X1 X2 C3 30 pF 12 13 39 38 37 36 35 34 33 32 INT0 INT1 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P1.0/T2 P1.1/T2X P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 RD WR T1 T0 TXD RXD 1 2 3 4 5 6 7 8 E R/W RS 21 22 23 24 25 26 27 28 D0 D1 D2 D3 D4 D5 D6 D7 LCD 17 16 15 14 11 10 8052 Figura 1 Tarjeta de aplicación utilizada en la práctica 3. Como puede observarse en la figura, se han conectado las ocho líneas de datos de la unidad LCD al puerto P2 del microcontrolador, mientras que las líneas de control E, R/W y RS lo están a los tres bits de menor peso del puerto P1. Mediante ambos grupos de líneas se realizará el control del LCD, tomando como base la información que se adjunta sobre el mismo. 1 Procesadores de Propósito General (Curso 01-02) Práctica 3 Especificaciones I.- Elaborar una librería de funciones que facilite el acceso software a la unidad LCD paralelo. Dicha librería se almacenará en un fichero con el nombre LCD.lib y constará de las siguientes funciones: void enviar_comando(char comando).- Envía un byte de control al Display. void configurar(void).- Configura el Display de la siguiente manera: • Visualizador encendido. • Cursor activo y parpadeante. • Las direcciones de RAM se incrementarán automáticamente con cada carácter escrito, sin desplazar la visualización. • Interface del bus de datos de 8 bits. • Visualización en dos líneas. • Fuentes de caracteres de 5 x 8 puntos. void borrar(void).- Borra el contenido del Display, llevando el cursor a la posición inicial. char putchar(char dato).- Envía un carácter ASCII al Display. void posicionar(char fila, char columna).- Posiciona el cursor en la fila y columna indicadas como parámetros. II.- Elaborar un programa (P_3.c) que haciendo uso de la librería anteriormente implementada, realice las siguientes funciones: • Configurar el visualizador. • Borrar el visualizador de la manera indicada anteriormente. • Presentar el texto “Active INT0 o INT1” en modo parpadeante (medio segundo visible y medio segundo no visible) comenzando en la columna 2 de la fila 1. • Al activar INT0 se borrará el LCD y se visualizará el texto “Interrupcion 0” comenzando en la columna 1 de la fila 1. • Al activar INT1 se borrará el LCD y se visualizará el texto “Interrupcion 1” terminando en columna 20 de la fila 2. Proceso operativo: 1.- Crear el proyecto que contendrá la práctica al que se dará del nombre de P_3.uv2, usando el entorno Keilv6. 2.- Crear un archivo al que se dará el nombre LCD.c donde se implementarán las distintas funciones a incluir en la librería y se comprobará su correcto funcionamiento. 3.- Generar el archivo LCD.lib a partir del módulo LCD.c. 2 Procesadores de Propósito General (Curso 01-02) Práctica 3 4.- Escribir un archivo de cabecera LCD.h que contenga el prototipado de todas las funciones incluidas en LCD.lib. 5.- Escribir el módulo P_3.c que ejecute las acciones indicadas en las especificaciones haciendo uso de las funciones de la librería creada. 6.- Procesar y simular el proyecto mediante el entorno KeilV6. 7.- Una vez corregidos todos los errores posibles mediante la simulación emular el programa en la tarjeta de aplicación haciendo uso de la herramienta “Ceibo Windows Debugger”. 3