You are on page 1of 9

UNIVERSIDAD NACIONAL DE INGENIERA

FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA 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 conexin con el microcontrolador.
o 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. 1 Teclado
3x4

Esta es una conexin tpica entre un


microcontrolador:

Elaborado por Ing. Carlos OrtegaPgina 1

Fig. 2 Teclado
4x4

teclado y un

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA DIGITAL II
DEPARTAMENTO SISTEMAS DIGITALES Y
TELECOMUNICACIONES

Fig. 3 Conexin de Teclado


Matricial

Elaborado por Ing. Carlos OrtegaPgina 2

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA DIGITAL II
DEPARTAMENTO SISTEMAS DIGITALES Y
TELECOMUNICACIONES

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.

Elaborado por Ing. Carlos OrtegaPgina 3

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA DIGITAL II
DEPARTAMENTO SISTEMAS DIGITALES Y
TELECOMUNICACIONES

Fig. 4 Configuracin por defecto del Teclado

Para poder usarMatricial


el Puerto
B se tiene que cambiar la librera
3x4
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.

Elaborado por Ing. Carlos OrtegaPgina 4

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA DIGITAL II
DEPARTAMENTO SISTEMAS DIGITALES Y
TELECOMUNICACIONES

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

LCD1

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREF-/CVREF
RA3/AN3/VREF+
RA4/T0CKI/C1OUT
RA5/AN4/SS/C2OUT
RC0/T1OSO/T1CKI
RE0/AN5/RD
RC1/T1OSI/CCP2
RE1/AN6/WR
RC2/CCP1
RE2/AN7/CS
RC3/SCK/SCL
RC4/SDI/SDA
MCLR/Vpp/THV
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7

8
9
10

OSC1/CLKIN
OSC2/CLKOUT

2
3
4
5
6
7

U1
13
14

C
7 8
Fig. 5 Circuito Cerradura
D
0
Digital

33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26

19
20
21
22
27
28
29
30

PIC16F877A

RL1
12V

BAT1
R1

Q1
BD135

1k

Elaborado por Ing. Carlos OrtegaPgina 5

12V

D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14

RS
RW
E
4
5
6

1
2
3

VSS
VDD
VEE

LM016L

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA DIGITAL II
DEPARTAMENTO SISTEMAS DIGITALES Y
TELECOMUNICACIONES

5. Desarrollando el Cdigo
.

Elaborado por Ing. Carlos OrtegaPgina 6

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA DIGITAL II
DEPARTAMENTO SISTEMAS DIGITALES Y
TELECOMUNICACIONES
#include <16F877A.h>
#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 <lcd.c>
#include <kbd.c>
#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<=2){
k=kbd_getc();
if (k!=0)
{data[i]=k;
i++;
printf(lcd_putc,"\fpulsar tecla %u\n",i+1);
}
}
for (i=0;i<=2;i++) {
clave[i]=read_eeprom(i);
}
if ((data[0]==clave[0])&&(data[1]==clave[1])&&(data[2]==clave[2]))
{ printf(lcd_putc,"\fPuerta Abierta");
output_high(PIN_A0);
delay_ms(500);
output_low(PIN_A0);}
else printf(lcd_putc,"\fPuerta Cerrada");
delay_ms(1000);
}
}

Figura 6. Cdigo Cerradura Electrnica

Elaborado por Ing. Carlos OrtegaPgina 7

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA DIGITAL II
DEPARTAMENTO SISTEMAS DIGITALES Y
TELECOMUNICACIONES

En el cdigo anterior se desarrolla una cerradura simple donde la


contrasea se almacena en la memoria ROM, esta contrasea es de tres
dgitos, los cuales son solicitados al usuario mediante un teclado 3x4 y
almacenados en una variable. Esta variable es comparada con la
contrasea almacenada, si es igual la cerradura dar acceso total en
caso contrario cerrara la puerta.

6. Trabajo a Entregar
a) Modificar el ejercicio #2 de la cerradura para que el usuario pueda
modificar la contrasea por defecto, es decir que pueda sobrescribir
en la memoria EEPROM del Microcontrolador.
b) Enviar las simulaciones al correo con los correspondientes cdigos

fuentes bien comentados.

Elaborado por Ing. Carlos OrtegaPgina 8

UNIVERSIDAD NACIONAL DE INGENIERA


FACULTAD DE ELECTROTECNIA Y
COMPUTACIN
ELECTRNICA DIGITAL II
DEPARTAMENTO SISTEMAS DIGITALES Y
TELECOMUNICACIONES

Elaborado por Ing. Carlos OrtegaPgina 9

You might also like