Вы находитесь на странице: 1из 12

Manual de Prácticas

Microprocesadores y Microcontroladores

Puertos de entrada/salida en “C”

N.° de práctica: 7
Primera Parte

Nombre completo del alumno Aparicio Caamaño Omar Firma

N.° de brigada: Fecha de elaboración: 7/10/2019 Grupo:


Introducción:
¿Qué es un LCD?

El LCD (Liquid Crystal Display) o pantalla de cristal líquido es un dispositivo empleado para la
visualización de contenidos o información de una forma gráfica, mediante caracteres, símbolos o
pequeños dibujos dependiendo del modelo. Está gobernado por un microcontrolador el cual dirige
todo su funcionamiento.
En este caso vamos a emplear un LCD de 16x2, esto quiere decir que dispone de 2 filas de 16
caracteres cada una. Los píxeles de cada símbolo o carácter, varían en función de cada modelo.

¿Cómo es su conexionado?

En la siguiente imagen de Proteus se puede observar la estructura de sus pines.


Lo podemos dividir en los Pines de alimentación, pines de control y los pines del bus de datos
bidireccional. Por lo general podemos encontrar además en su estructura los pines de Ánodo de led
back light y cátodo de led back light.
Pines de alimentación:

Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potenciómetro de 10K conectado a Vdd.
La librería del LCD:

Para poder visualizar los caracteres o símbolos en el LCD es necesario que en el programa
de código fuente a emplear, incluyamos la librería de este.
En este caso empleamos la librería "lcd.c", la cual hemos modificado. Siempre que utilicemos una
librería de este tipo tendremos que analizarla para saber cuáles son los pines de control y los pines
para el Bus de datos, en este caso podemos observar que están definidos al comienzo de la misma.

#define LCD_ENABLE_PIN PIN_D0


#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
El Teclado matricial de botones plásticos formado por 4 filas y 4 columnas para un total de 16 teclas
permite agregar una entrada de usuario a tus proyectos. El teclado es de tipo membrana, por lo que
entre sus ventajas se encuentra el poco espacio que requiere para ser instalado. Posee una cubierta
adhesiva y un cable flexible de conexión. Puede ser conectado a cualquier microcontrolador o tarjetas
de desarrollo como Arruino.

El teclado matricial 4x4 está formado por una matriz de pulsadores dispuestos en filas (L1, L2, L3, L4)
y columnas (C1, C2, C3, C4), con la intención de reducir el número de pines necesarios para su
conexión. Las 16 teclas necesitan sólo 8 pines del microcontrolador en lugar de los 16 pines que se
requerirían para la conexión de 16 teclas independientes. Para poder leer que tecla ha sido pulsada
se debe de utilizar una técnica de barrido y no solo leer un pin de microcontrolador.
Objetivos de aprendizaje:
Que el estudiante configure los puertos de entrada/salida (GPIO) del microcontrolador utilizando
lenguaje C y conectarlos a dispositivos externos. El estudiante analizará, diseñará e implementará
una interfaz de entrada/salida utilizando ‘C’, para resolver un problema específico por medio de
interrupciones.
Material y equipo:
Documentos: Hoja de datos LCD 16x2 genérico
Programas proporcionados.
Sistema de desarrollo.
Display LCD 16x2. Teclado Matricial 4x4. Cables jumper. Headers macho o hembra de dos líneas
para soldar a la tarjeta de desarrollo y acceder a los pines que no dispone de terminales de
conexión.
LEDs y resistencias para desplegar datos de salida.
Presentar el teclado y LCD ya conectados al sistema de desarrollo.
Desarrollo:
Teclado Matricial 4x4. a) Con el Programa fuente proporcionado, estudie su funcionamiento y
agregue configuración de los puertos que se emplean para el escaneo del teclado
Use el puerto M (bits 3:0) como el controlador de los renglones y el puerto H (bits 3:0) para leer las
columnas.
Use el puerto N (3:0) para desplegar en LEDs el valor de la tecla presionada.
Para esta parte se usaron los puertos F para utilizar los leds y se modificó el led mask y se dividió en
2 partes uno para el puerto N Y el otro para el puerto F y para esto se tiene que modificar las
inicializaciones de los puertos.

Esto permite asignar un 1 al pin donde esté conectado el LED.


b) Visualice en la sesión de Debug todas las variables que pueden cambiar durante la ejecución
normal del programa. Note que la variable Key_pressed corresponde al carácter mapeado en el
arreglo Keyboardtable, por lo que en la sesión de Debug, podrá apreciar esta variable como un
variable tipo char y codificada como ASCII.
Display LCD de 16 caracteres x 2 líneas.
a) Con el programa fuente proporcionado, estudie su funcionamiento y agregue la configuración
de los puertos que se emplean para el manejo del LCD.
Use el puerto K (bits 7:0) para el bus de datos del LCD y el puerto L (bits 3:0) para las líneas
de control.
Se proporcionan las rutinas para escribir un comando al LCD y para escribir caracteres.

b) En el programa no se lee el Bit de BUSY del LCD, por lo que se considera un retardo después
de cada escritura que asegure su funcionamiento.
Mejore el programa escribiendo una rutina que lea este Bit. Considere que se tiene que
reconfigurar el puerto de datos como de entrada para leer este bit y regresarlo a puerto de
salida cuando ya no se requiera leer el bit BUSY.

c) Defina como mensajes a mostrar su nombre completo y despliéguelo en el LCD empleando


desplazamiento de la pantalla a la izquierda.
d) Visualice en la sesión de Debug todas las variables que pueden cambiar durante la ejecución
normal del programa.
Conclusiones:
En donde no se necesitó ningún delay para poder leer los datos de salida del teclado, mientras que
para la pantalla LCD, se necesitaron 2 tipos de delay, uno para modo comando de la pantalla donde
su tiempo de respuesta es de 1.26 [ms], y para modo carácter su tiempo de respuesta es de 50 [µs],
por lo que, fue necesario colocar cada tipo de delay de acuerdo al modo.
Bibliografía:
ARM Assembly Language Tools v15.12.0.LTS – User´s Guide. Literature Number: SPNU118O January 2016.

Вам также может понравиться