Está en la página 1de 20

Teclado Matricial

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Driver <kbd.c>

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Conexiones

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Funciones para el manejo del Teclado

kbd_init();
Inicializa el driver para el manejo del teclado. Se
debe llamar una sola vez al inicio.

kbd_getc();
Retorna un dato tipo char que corresponde con la
tecla presionada (‘0’, ’1’, ’2’, …, ‘9’, ‘*’, ‘#’). Si no se
presiona tecla alguna, la función retorna el caracter
‘\0’, que corresponde con el valor decimal 0.

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Relación ASCII - char

char ASCII
0 48
1 49
Los datos tipo char
2 50
pueden ser tratados
3 51
como enteros, a
4 52
cada carácter le
5 53
corresponde su
6 54
número ASCII
7 55
respectivo:
8 56
9 57
* 42
# 35
Ejemplo Teclado
Introducir datos por el teclado y visualizarlos
en el LCD. Cuando se pulsa la tecla ' * '
borrar el LCD.

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Código

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Simulación en Proteus

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Memoria EEPROM
EEPROM: Electrically-Erasable Programmable Read-Only
Memory. Es un tipo de memoria ROM que puede ser
programada, borrada y reprogramada eléctricamente. Es
un tipo de memoria no volátil.

PIC16F877 256 bytes de memoria EEPROM,


desde la posición 0x2100 hasta
la posición 0x21FF
Funciones para el manejo de la EEPROM
write_eeprom(posición,dato);
Escribe el entero “dato” en la “posición” especificada (0-255) de la memoria
EEPROM.
read_eeprom(posición);
Lee el entero almacenado en la “posición” especificada (0-255) de la memoria
EEPROM.

Forma alternativa de escribir en la EEPROM:

#rom 0x2100 = {d1, d2, d3, d4,...}


La dirección donde se va a comenzar a escribir puede ser cualquier valor
desde 0x2100 hasta 0x21FF. Los datos son bytes, por lo tanto pueden ser
de tipo char, int, int8 o signed int8.
Ejemplo EEPROM
Diseñar un sistema para el control de acceso;
a través de un teclado de 3x4 introducir una
clave de 3 dígitos que cuando sea correcta
abra una puerta (con un pulso a un relé) y lo
indique a una pantalla LCD. Guardar la clave
de acceso en la memoria EEPROM.

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Código

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Simulación en Proteus

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


PWM (Pulse Width Modulation)

Es una técnica en la que se modifica el ciclo


de trabajo de una señal periódica (una
sinusoidal o una cuadrada, por ejemplo), ya
sea para transmitir información a través de
un canal de comunicaciones o para controlar
la cantidad de energía que se envía a una
carga.
Ejemplo PWM
A través de un teclado, introducir los datos
de velocidad de un motor y generar una señal
modulada en ancho de pulso proporcional al
dato de la velocidad.
PWMH

PWML

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


9 Velocidades
889𝜇𝑠 111𝜇𝑠 556𝜇𝑠 444𝜇𝑠 223𝜇𝑠 777𝜇𝑠

1𝑚𝑠 1𝑚𝑠 1𝑚𝑠


778𝜇𝑠 222𝜇𝑠 445𝜇𝑠 555𝜇𝑠 112𝜇𝑠 888𝜇𝑠

1𝑚𝑠 1𝑚𝑠 1𝑚𝑠


667𝜇𝑠 333𝜇𝑠 334𝜇𝑠 666𝜇𝑠 1𝜇𝑠 999𝜇𝑠

1𝑚𝑠 1𝑚𝑠 1𝑚𝑠


Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores
Código

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Simulación en Proteus

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores


Ejercicio
Realice una aplicación con un teclado matricial y un
LCD de doble línea que permita escribir texto en el LCD
de la misma forma como se escribía texto en los
celulares de segunda generación (también debe tener la
opción de escribir números). Cuando se escriba “clc” se
debe borra el display. Cuando llegue al final de la
primera línea, debe seguir escribiendo en la segunda
línea. Cuando llegue al final de la segunda línea debe
sobreescribir lo que esté en la primera línea.

Prof. Sergio Sepúlveda (sergio.sepulveda@ufps.edu.co) Microcontroladores

También podría gustarte