Laboratorio 3 - Teclado

10
UNIVERSIDAD NACIONAL DE INGENIERÍA FACULTAD DE ELECTROTECNIA Y COMPUTACIÓN ELECTRÓNICA DIGITAL II DEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES Laboratorio 3: Uso del Teclado 1.Objetivos o Implementar un medio de ingreso de datos mediante un teclado matricial 4x3 y su conexión con el microcontrolador. o Modificar la librería kbd.c para el ingreso de datos en un teclado matricial 4x4. 2.Introducción Otro de los periféricos especiales que se utilizan en los proyectos con microcontroladores es el teclado matricial. Vienen generalmente en dos presentaciones: 3x4 y 4x4. Donde el primer número indica las cantidades de columnas y el segundo las cantidades de filas. Por ejemplo 3x4 significa 3 columnas por 4 filas, para un total de 12 teclas. Esta es una conexión típica entre un teclado y un microcontrolador: Elaborado por Ing. Carlos Ortega Página 1 Fig. 1 Teclado 3x4 Fig. 2 Teclado 4x4

description

lab3

Transcript of Laboratorio 3 - Teclado

UNIVERSIDAD NACIONAL DE INGENIERA

FACULTAD DE ELECTROTECNIA Y COMPUTACIN

ELECTRNICA DIGITAL IIDEPARTAMENTO SISTEMAS DIGITALES Y TELECOMUNICACIONES

Laboratorio 3: Uso del Teclado

1. Objetivos

Implementar un medio de ingreso de datos mediante un teclado matricial 4x3 y su conexin con el microcontrolador. Modificar la librera kbd.c para el ingreso de datos en un teclado matricial 4x4.

2. Introduccin

Otro de los perifricos especiales que se utilizan en los proyectos con microcontroladores es el teclado matricial.

Vienen generalmente en dos presentaciones: 3x4 y 4x4. Donde el primer nmero indica las cantidades de columnas y el segundo las cantidades de filas. Por ejemplo 3x4 significa 3 columnas por 4 filas, para un total de 12 teclas.

Fig. 2 Teclado 4x4Fig. 1 Teclado 3x4

Esta es una conexin tpica entre un teclado y un microcontrolador:Fig. 3 Conexin de Teclado Matricial

Sin embargo si se activan las resistencias pull-ups del puerto B no se hace necesario la conexin de las resistencias en el circuito anterior. Los microcontroladores PICs han dispuesto de una interrupcin por cambio de nivel en cualquiera de los pines RB4 a RB7, lo cual resulta ideal para conectarse con un teclado matricial, ya que se puede preparar una funcin (subrutina) de interrupcin por esta causa.

3. CCS

El compilador de C posee el driver KBD.c en la carpeta DRIVERS para manejar un teclado 3x4. Las funciones que incorporan son las siguientes:

kbd_init ( )Inicializa el sistema para manejo del teclado. Debe ser la primera funcin en el programa.

kbd_getc ( )Devuelve el valor de la tecla pulsada en funcin de la tabla que tiene programada. El valor de esta instruccin debe ser almacenada en una variable.

Conexin del Teclado 3x4

El Teclado de 3x4 a implementar en esta gua de laboratorio se conecta al puerto B por defecto segn la librera kbd, debido a las resistencias de pull up. En esta librera existe dos tipos de conexiones: la del teclado azul y la del teclado negro (esta conexin es la que se usara). La conexin por defecto es la que se muestra en la figura.Fig. 4 Configuracin por defecto del Teclado Matricial 3x4

Para poder usar el Puerto B se tiene que cambiar la librera descomentando la siguiente lnea: #define use_portb_kbd TRUE o agregarla al cdigo principal.Una vez que se agrega la lnea anterior se tienen que activar las resistencias de pull up mediante la lnea: port_b_pullups(TRUE); en el cdigo principal. 4. Proteus

Ejercicio #1

El Primer Circuito a Simular corresponde a una cerradura digital donde se utiliza un teclado matricial para el ingreso de la contrasea y una pantalla para la visualizacin de los datos. Como sistema actuador se agrega un transistor y un rel para la apertura de la puerta.Fig. 5 Circuito Cerradura Digital

Ejercicio #2

Modificar la librera kbd.c para trabajar con teclados matriciales 4x4.

5. Desarrollando el Cdigo. #include #fuses XT,NOWDT,NOPROTECT,NOLVP#use delay(clock= 4000000)

#define LCD_ENABLE_PIN PIN_B0#define LCD_RS_PIN PIN_B1 #define LCD_RW_PIN PIN_B2#define LCD_DATA4 PIN_B4 #define LCD_DATA5 PIN_B5 #define LCD_DATA6 PIN_B6 #define LCD_DATA7 PIN_B7#define use_portb_kbd TRUE#include #include #rom 0x2100={'7','2','3'}

void main() { char k; int i; char data[3], clave[3]; lcd_init(); kbd_init(); port_b_pullups(TRUE); while (TRUE) { i=0; printf(lcd_putc,"\fpulsar tecla 1\n"); while(i