88428003-Lab-3-Keypad

June 17, 2018 | Author: blancorocha | Category: Microcontroller, Electronic Engineering, Computer Architecture, Areas Of Computer Science, Technology
Report this link


Description

Tarea: Uso del Teclado (Keypad). 3.1 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. Teclado 3x4 Teclado 4x4 Esta es una conexión típica entre un teclado y un microcontrolador: Sin embargo si se activan las resistencias pull-ups del puerto B no se hace necesario la conexión de las resistencias en el circuito anterior. Los microcontroladores PICs han dispuesto de una interrupción 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 función (subrutina) de interrupción por esta causa. El compilador de C posee el driver KBD.c 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 función en el programa. kbd_getc ( ) Devuelve el valor de la tecla pulsada en función de la tabla que tiene programada. "\fPuerta Cerrada").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 #include <lcd. while (TRUE) { i=0. if (k!=0) {data[i]=k.i++) { clave[i]=read_eeprom(i). printf(lcd_putc. i++. delay_ms(500).2 Desarrollo.'2'. output_high(PIN_A0).c> #rom 0x2100={'7'.h> #fuses XT.c> #include <kbd."\fpulsar tecla %u\n".NOWDT. printf(lcd_putc.i+1). delay_ms(1000). a) Realice la siguiente simulación con el código propuesto de una cerradura electrónica. output_low(PIN_A0).} else printf(lcd_putc."\fPuerta Abierta"). } } . lcd_init().i<=2. int i.NOPROTECT. clave[3]. kbd_init().'3'} void main() { char k."\fpulsar tecla 1\n"). #include <16F877A.3. while(i<=2){ k=kbd_getc(). char data[3]. } } for (i=0. } if ((data[0]==clave[0])&&(data[1]==clave[1])&&(data[2]==clave[2])) { printf(lcd_putc. port_b_pullups(TRUE). 3. b) Modificar el código para poder usar un teclado 4x4 y asi poder usar una contraseña mas compleja. es decir que pueda sobreescribir en la memoria EEPROM del Microcontrolador. d) ¿Cuál es la función de la circuitería que se encuentra en la parte inferior? e) Modifique el programa anterior para hacer uso de un teclado 4x4 y cambie la contraseña de acceso.b) Ckto a simular con el código anterior. Nota: Para poder hacer esto tienen que modificar la librería kcd. 3 U1 7 8 9 10 11 12 13 14 D0 D1 D2 D3 D4 D5 D6 D7 . f) Investigue como modificar el teclado 4x4 que viene por defecto en el Proteus para que se parezca a un teclado hexadecimal como se muestra en la figura superior. LCD1 LM016L VSS VDD VEE RS RW E 4 5 6 1 2 3 1 2 13 14 2 3 4 5 6 7 8 9 10 1 OSC1/CLKIN OSC2/CLKOUT 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 PIC16F877A RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 A 1 4 7 2 5 8 0 3 6 9 # B C D RL1 12V BAT1 R1 1k Q1 BD135 12V c) Comente el programa anterior para conocer cómo funciona de acuerdo al circuito.3 Trabajo a Entregar a) Modificar el ejercicio anterior de la cerradura para que el usuario pueda modificar la contraseña por defecto. Enviar las simulaciones al correo con los correspondientes códigos fuentes bien comentados.c que se encuentra ubicada en la carpeta donde se encuentra instalado el CCS.


Comments

Copyright © 2024 UPDOCS Inc.