SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
GUÍA RÁPIDA PARA TRABAJAR CON
LA LCD Y EL TECLADO
GUÍA RÁPIDA PARA TRABAJAR CON
LA LCD Y EL TECLADO
PROF. LUIS ZURITA
Pantalla LCD
• Conexionado:
El conexionado de la LCD viene dado en el driver respectivo, en
el caso de: ˂LCD.c˃ tenemos:
//// Example of pin access: ////
//// #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 ////
Prof. Luis Zurita Microcontroladores II
Pantalla LCD
Paso 1. Incluir el driver de la LCD en la zona de
declaraciones:
#include <LCD.c>
Si se va a trabajar con teclado y LCD, especificar el
puerto con el cual se trabajará cada periférico
antes de la inclusión del driver:antes de la inclusión del driver:
#define use_PORTD_LCD true
#include <LCD.c>
Paso 2. Después de configurar los puertos como
entradas o salidas con los registros TRIS, se debe
inicializar la LCD=
lcd_init ( );
Prof. Luis Zurita Microcontroladores II
Pantalla LCD
Ejemplo:
#include <16f877.h>
#fuses XT,NOWDT,NOLVP
#use delay (clock=4000000)
#BYTE TRISD=0x88
#BYTE PORTD=0x08#BYTE PORTD=0x08
#define use_PORTD_LCD true
#include <LCD.c>
void main (){
TRISD=0b00000000;
lcd_init();
Prof. Luis Zurita Microcontroladores II
Paso 3. Crear mensaje estático
• Tipo función
void MENSAJE( ) {
lcd_gotoxy (1,1); //Línea 1
printf (lcd_putc, “AQUI COLOCO”);
lcd_gotoxy (1,2); //Línea 2
printf (lcd_putc, “MI MENSAJE”);printf (lcd_putc, “MI MENSAJE”);
}
Luego durante el programa se llama a la función
creada. Ejemplo:
BOMBA=0;
MENSAJE ( );
BOMBA=1;
Nota= los mensajes en cada línea no deben pasar
de la cantidad de caracteres que tiene la lcd, en el
caso de una LCD 16x2, el número de caracteres por
línea es de 16. Si es mayor a este número se
truncará a 16.Prof. Luis Zurita Microcontroladores II
Paso 3. Crear mensaje estático
• Tipo Procedimiento
Se crea el mensaje con instrucciones normales.
Ejemplo:
BOMBA=0;
lcd_gotoxy (1,1); //Línea 1
printf (lcd_putc, “AQUI COLOCO”);
lcd_gotoxy (1,2); //Línea 2
printf (lcd_putc, “MI MENSAJE”);
BOMBA=1;
Prof. Luis Zurita Microcontroladores II
¿Cuándo y cómo limpiar la LCD?
• Se recomienda limpiar la LCD antes de mostrar un
mensaje diferente al que se esté mostrando, para
borrar cualquier carácter residual del mensaje
anterior. Se puede limpiar con f en el nuevo
mensaje de la primera línea. (El símbolo  se
obtiene con Alt+92). Ejemplo:obtiene con Alt+92). Ejemplo:
lcd_gotoxy (1,1); //Línea 1
printf (lcd_putc, “fAQUI COLOCO”);
o enviar sólo el comando (f):
lcd_putc ( f );
Prof. Luis Zurita Microcontroladores II
Paso 3. Crear mensaje dinámico
• Tipo función
void MENSAJE( ) {
lcd_gotoxy (1,1); //Línea 1
printf (lcd_putc, “VISITA=%d”,CONTA1);
lcd_gotoxy (1,2); //Línea 2
printf (lcd_putc, “LOCAL=%Lu”,CONTA2);
Registros a mostrar
printf (lcd_putc, “LOCAL=%Lu”,CONTA2);
}
Define el formato según se haya
declarado el registro a mostrar. Ejemplo:
%d= Registro tipo entero con signo
%Ld= Registro tipo entero largo con signo
Prof. Luis Zurita Microcontroladores II
Paso 3. Crear mensaje dinámico
void mostrar(){
lcd_gotoxy(1,1);
printf(lcd_putc,"%02u : %02u %02u",hr,min,dia);
lcd_gotoxy(1,2);
printf(lcd_putc,"%02u/%02u / %02u",diasem,mes,annio);
Registros a mostrar
printf(lcd_putc,"%02u/%02u / %02u",diasem,mes,annio);
}
Define el formato según se haya
declarado el registro a mostrar. Ejemplo:
%u= Registro tipo entero sin signo
02 indica la cantidad de dígitos que se
van a mostrar.
Prof. Luis Zurita Microcontroladores II
TECLADO MATRICIAL
• Conexionado:
El conexionado del teclado viene dado en el
driver respectivo, en el caso de utilizar un teclado
4x3 con el driver ˂KDB.c˃ tenemos:
#define COL0 (1 << 5)
#define COL1 (1 << 6)
#define COL2 (1 << 7)
#define COL1 (1 << 6)
#define COL2 (1 << 7)
#define ROW0 (1 << 1)
#define ROW1 (1 << 2)
#define ROW2 (1 << 3)
#define ROW3 (1 << 4)
Prof. Luis Zurita Microcontroladores II
TECLADO MATRICIAL
• Conexionado:
El conexionado del teclado viene dado en el driver respectivo, en el caso de
utilizar un teclado 4x4 con el driver ˂KDB4x4d.c˃, facilitado en clases
tenemos:
#define COL0 (1 << 0)
#define COL1 (1 << 1)
#define COL2 (1 << 2)
#define COL3 (1 << 3)
#define ROW0 (1 << 4)
#define ROW1 (1 << 5)
#define ROW2 (1 << 6)
#define ROW3 (1 << 7)
No existe un teclado 4x4 comercial en el simulador Proteus, sin embargo el
componente KEYPAD-SMALLCALC, nos puede ayudar a simular el teclado
4x4. Independientemente de cómo sea colocado, se deben respetar las
conexiones mostradas anteriormente en cuanto al orden de las columnas
(COL) (1,2,3,4) y de las filas (ROW) (A,B,C,D), y las teclas se corresponderán
al orden mostrado en el recuadro azul.Prof. Luis Zurita Microcontroladores II
TECLADO MATRICIAL
Paso 1. Incluir el driver del teclado en la zona de
declaraciones:
#include <KBD.c> // Opción A. Para teclado 4x3 ó
#include <KBD4x4d.c> // Opción B. Para teclado 4x4
Si se va a trabajar con LCD y teclado, especificar el puerto con
el cual se trabajará cada periférico antes de la inclusión del
driver:
#define use_PORTD_LCD true#define use_PORTD_LCD true
#define use_PORTB_KBD true
#include <LCD.c>
#include <KBD4x4d.c> //ó <KBD.c> Para teclado 4x3
Paso 2. Configurar el puerto B, con RB7-RB4 como entradas y
RB3-RB0 como salidas y habilitar las resistencias “Pull-Ups”:
TRISB=0xF0;
port_b_pullups(TRUE);
Prof. Luis Zurita Microcontroladores II
TECLADO MATRICIAL
Paso 3. Después de configurar los puertos como
entradas o salidas con los registros TRIS, y las
resistencias “Pull-Ups”, se debe inicializar el
teclado=
kbd_init ( );
Paso 4. Leer el teclado y obtener la tecla
pulsada.
Con la función kbd_getc ( ); logramos
fácilmente esta tarea:
TECLA= kbd_getc ( );
Prof. Luis Zurita Microcontroladores II
TECLADO MATRICIAL
Paso 4. Leer el teclado y obtener la tecla pulsada.
TECLA= kbd_getc ( );
El registro “TECLA” se debe declarar tipo char al inicio
del programa.
Puede declararse un registro adicional, por ejemplo x
tipo int o byte para obtener la tecla en decimal, previa
conversión:conversión:
x= TECLA – 48, con lo que se convierte el dato del
código ASCII a decimal.
Es importante destacar que esta función kbd_getc(); no
aplica la interrupción RB4-RB7, sino que realiza un
escaneo de las teclas, por lo que se debe estar
llamando cada vez que se desee leer el teclado.
Prof. Luis Zurita Microcontroladores II
#INCLUDE <16F877.h>
#FUSES XT,NOWDT,NOLVP
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE TRISD=0X88
#BYTE PORTB=0X06
#BYTE PORTD=0X08
#define use_PORTD_LCD true //Puerto D controlará la LCD
#define use_PORTB_KBD true //Puerto B controlará el teclado 4x3
Ejemplo 1. Leer Tecla y mostrarla en LCD
#define use_PORTB_KBD true //Puerto B controlará el teclado 4x3
#include <LCD.c> //Driver de la LCD
#include <KBD.c> //Driver del Teclado 4x3
int x; //Variable para guardar la tecla en decimal
Char k; // Variable para guardar la tecla en carácter
void MOSTRAR( ) { //función para visualizar la tecla en LCD
lcd_gotoxy(1,1);
printf(lcd_putc,"TECLADO 4x3=");
lcd_gotoxy(1,2);
printf(lcd_putc," %d ",x); //La tecla se visualizará en formato char
}
Prof. Luis Zurita Microcontroladores II
void main(){
TRISB=0xF0; //Configuración del PORTB
TRISD=0;
port_b_pullups(TRUE); //Activamos las resistencias “Pullups”
lcd_init(); //Inicializamos la LCD
kbd_init(); //Inicializamos el teclado
while (true){
Ejemplo 1. Leer Tecla y mostrarla en LCD
while (true){
k=kbd_getc(); //Escaneamos a ver si se ha pulsado una tecla
x=k-48; //Se lleva k de ASCII a decimal
if ((k!=0)&&(x<=9)){ //Si k es distinto de cero, se ha pulsado una tecla
// Con estas condiciones se visualizará del 0 al 9 únicamente
MOSTRAR(); //Visualizamos la tecla en la LCD
}
}//true //Seguimos escaneando el teclado
}//main
Prof. Luis Zurita Microcontroladores II
Ejemplo 1. Leer Tecla y mostrarla en LCD
Prof. Luis Zurita Microcontroladores II
#INCLUDE <16F877.h>
#FUSES XT,NOWDT,NOLVP
#USE DELAY(CLOCK=4000000)
#BYTE TRISB=0X86
#BYTE TRISD=0X88
#BYTE PORTB=0X06
#BYTE PORTD=0X08
#define use_PORTD_LCD true //Puerto D controlará la LCD
#define use_PORTB_KBD true //Puerto B controlará el teclado 4x4
Ejemplo 2. Leer Tecla y mostrarla en LCD
#define use_PORTB_KBD true //Puerto B controlará el teclado 4x4
#include <LCD.c> //Driver de la LCD
#include <KBD4x4d.c> //Driver del Teclado 4x4
int x; //Variable para guardar la tecla en decimal
Char k; // Variable para guardar la tecla en carácter
void MOSTRAR( ) { //función para visualizar la tecla en LCD
lcd_gotoxy(1,1);
printf(lcd_putc,"TECLADO 4x4=");
lcd_gotoxy(1,2);
printf(lcd_putc," %c ",k); //La tecla se visualizará en formato char
}
Prof. Luis Zurita Microcontroladores II
void main(){
TRISB=0xF0; //Configuración del PORTB
TRISD=0;
port_b_pullups(TRUE); //Activamos las resistencias “Pullups”
lcd_init(); //Inicializamos la LCD
kbd_init(); //Inicializamos el teclado
while (true){
Ejemplo 2. Leer Tecla y mostrarla en LCD
while (true){
k=kbd_getc(); //Escaneamos a ver si se ha pulsado una tecla
x=k-48; //Se lleva k de ASCII a decimal
if (k!=0){ //Si k es distinto de cero, se ha pulsado una tecla
MOSTRAR(); //Visualizamos la tecla en la LCD
}
}//true //Seguimos escaneando el teclado
}//main
Prof. Luis Zurita Microcontroladores II
Ejemplo 2. Leer Tecla y mostrarla en LCD
Nota: El driver KBD4x4d.c lo puedes descargar
en la carpeta de archivos del blog.
Prof. Luis Zurita Microcontroladores II

Weitere ähnliche Inhalte

Was ist angesagt?

Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesLuis Zurita
 
Contadores a y s síncronos
Contadores a y s síncronosContadores a y s síncronos
Contadores a y s síncronosDiego Ayala
 
Amplificador colector común clase 8
Amplificador colector común clase 8Amplificador colector común clase 8
Amplificador colector común clase 8ManuelGmoJaramillo
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fetVelmuz Buzz
 
Clase 2 rectificadores de media onda conceptos básicos
Clase 2 rectificadores de media onda conceptos básicosClase 2 rectificadores de media onda conceptos básicos
Clase 2 rectificadores de media onda conceptos básicosTensor
 
Seaparat elect pote
Seaparat elect poteSeaparat elect pote
Seaparat elect poteLuis Sanchez
 
Contador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DContador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DCristian Rodriguez
 
Mat lab manipulación de señales de audio
Mat lab manipulación de señales de audioMat lab manipulación de señales de audio
Mat lab manipulación de señales de audioRick P
 
Ejercicios formas onda_fourier
Ejercicios formas onda_fourierEjercicios formas onda_fourier
Ejercicios formas onda_fouriercrisvilar
 

Was ist angesagt? (20)

Compensacion de adelanto de fase
Compensacion  de adelanto de faseCompensacion  de adelanto de fase
Compensacion de adelanto de fase
 
Guía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupcionesGuía rápida tmr0 e interrupciones
Guía rápida tmr0 e interrupciones
 
Contadores a y s síncronos
Contadores a y s síncronosContadores a y s síncronos
Contadores a y s síncronos
 
Practica0,1,2,3,4
Practica0,1,2,3,4Practica0,1,2,3,4
Practica0,1,2,3,4
 
Practicas logix-pro-rs500
Practicas logix-pro-rs500Practicas logix-pro-rs500
Practicas logix-pro-rs500
 
Problemas tema1 sy_c
Problemas tema1 sy_cProblemas tema1 sy_c
Problemas tema1 sy_c
 
Amplificador colector común clase 8
Amplificador colector común clase 8Amplificador colector común clase 8
Amplificador colector común clase 8
 
PIC 18F4550... 2021.pdf
PIC 18F4550... 2021.pdfPIC 18F4550... 2021.pdf
PIC 18F4550... 2021.pdf
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fet
 
Practica 7 Flip Flop
Practica 7 Flip FlopPractica 7 Flip Flop
Practica 7 Flip Flop
 
Clase 2 rectificadores de media onda conceptos básicos
Clase 2 rectificadores de media onda conceptos básicosClase 2 rectificadores de media onda conceptos básicos
Clase 2 rectificadores de media onda conceptos básicos
 
Convertidor boost
Convertidor boostConvertidor boost
Convertidor boost
 
Seaparat elect pote
Seaparat elect poteSeaparat elect pote
Seaparat elect pote
 
Señales y sistemas
Señales y sistemasSeñales y sistemas
Señales y sistemas
 
REDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTES
REDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTESREDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTES
REDES DE COMUNICACIÓN INDUSTRIAL MAS IMPORTANTES
 
Contador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo DContador de 0 a 7 flip flop tipo D
Contador de 0 a 7 flip flop tipo D
 
Mat lab manipulación de señales de audio
Mat lab manipulación de señales de audioMat lab manipulación de señales de audio
Mat lab manipulación de señales de audio
 
Scr
ScrScr
Scr
 
Ejercicios formas onda_fourier
Ejercicios formas onda_fourierEjercicios formas onda_fourier
Ejercicios formas onda_fourier
 
Simulacion ac ac
Simulacion ac acSimulacion ac ac
Simulacion ac ac
 

Ähnlich wie Guía rápidalcd y teclado

Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresSANTIAGO PABLO ALBERTO
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreLuis Zurita
 
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagjoaquinin1
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CLuis Zurita
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553RoxanneLamas2
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricialGabriel Bravo Rojas
 
Clase 02 gestion de puertos - directivas
Clase 02   gestion de puertos - directivasClase 02   gestion de puertos - directivas
Clase 02 gestion de puertos - directivasalmidon_pcb
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2Luis Zurita
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxfreddymadriz
 
3.6 texto lcd
3.6 texto lcd3.6 texto lcd
3.6 texto lcdSNPP
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886Victor Asanza
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"Diego Rojas Ruiz
 
Informe grupo cronos
Informe grupo cronosInforme grupo cronos
Informe grupo cronosraulernesto28
 

Ähnlich wie Guía rápidalcd y teclado (20)

Proyecto3
Proyecto3Proyecto3
Proyecto3
 
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladoresMicrocontroladores: Fundamentos de microprocesadores y microcontroladores
Microcontroladores: Fundamentos de microprocesadores y microcontroladores
 
Tarea final
Tarea finalTarea final
Tarea final
 
Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
 
Control lcd 16X2 proton
Control lcd 16X2 protonControl lcd 16X2 proton
Control lcd 16X2 proton
 
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pagAlarma arduino wavecom programa y esquema numeros borrados 48 pag
Alarma arduino wavecom programa y esquema numeros borrados 48 pag
 
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN CMANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
MANEJO DE PERIFERICOS PARA MICROCONTROLADORES EN C
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
 
Clase 02 gestion de puertos - directivas
Clase 02   gestion de puertos - directivasClase 02   gestion de puertos - directivas
Clase 02 gestion de puertos - directivas
 
Curso Micro Tema 3 2
Curso Micro Tema 3 2Curso Micro Tema 3 2
Curso Micro Tema 3 2
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
7 curso
7 curso7 curso
7 curso
 
3.6 texto lcd
3.6 texto lcd3.6 texto lcd
3.6 texto lcd
 
Introducción
IntroducciónIntroducción
Introducción
 
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
⭐⭐⭐⭐⭐ (Práctica 5) DESARROLLO DE APLICACIONES CON #PIC16F886
 
TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"TIMERS&TEMPORIZADORES EN "C"
TIMERS&TEMPORIZADORES EN "C"
 
Informe grupo cronos
Informe grupo cronosInforme grupo cronos
Informe grupo cronos
 

Mehr von Luis Zurita

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APALuis Zurita
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUSLuis Zurita
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13Luis Zurita
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronicaLuis Zurita
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iycLuis Zurita
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013Luis Zurita
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronicaLuis Zurita
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronicaLuis Zurita
 

Mehr von Luis Zurita (20)

TALLER NORMAS APA
TALLER NORMAS APATALLER NORMAS APA
TALLER NORMAS APA
 
PROTOCOLO MODBUS
PROTOCOLO MODBUSPROTOCOLO MODBUS
PROTOCOLO MODBUS
 
Pevmicroi ieo
Pevmicroi ieoPevmicroi ieo
Pevmicroi ieo
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Pev electronica
Pev electronicaPev electronica
Pev electronica
 
Grupos micro2 13
Grupos micro2 13Grupos micro2 13
Grupos micro2 13
 
Pevmicro1 t2 13
Pevmicro1 t2 13Pevmicro1 t2 13
Pevmicro1 t2 13
 
Micro2 tema 5
Micro2 tema 5Micro2 tema 5
Micro2 tema 5
 
Micro2 tema 4
Micro2 tema 4Micro2 tema 4
Micro2 tema 4
 
Micro2 tema 3
Micro2 tema 3Micro2 tema 3
Micro2 tema 3
 
Micro2 tema 2
Micro2 tema 2Micro2 tema 2
Micro2 tema 2
 
Micro2 tema 1
Micro2 tema 1Micro2 tema 1
Micro2 tema 1
 
Pevmicroii13 2
Pevmicroii13 2Pevmicroii13 2
Pevmicroii13 2
 
Notas def electronica
Notas def electronicaNotas def electronica
Notas def electronica
 
Notas proyecto3 iyc
Notas proyecto3 iycNotas proyecto3 iyc
Notas proyecto3 iyc
 
Notas definitivas iyc2013
Notas definitivas iyc2013Notas definitivas iyc2013
Notas definitivas iyc2013
 
Proyecto 2 electronica
Proyecto 2 electronicaProyecto 2 electronica
Proyecto 2 electronica
 
Acumuladas electronica
Acumuladas electronicaAcumuladas electronica
Acumuladas electronica
 
Pevmicro2013
Pevmicro2013Pevmicro2013
Pevmicro2013
 

Kürzlich hochgeladen

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperiomiralbaipiales2016
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 

Kürzlich hochgeladen (20)

Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 

Guía rápidalcd y teclado

  • 1. GUÍA RÁPIDA PARA TRABAJAR CON LA LCD Y EL TECLADO GUÍA RÁPIDA PARA TRABAJAR CON LA LCD Y EL TECLADO PROF. LUIS ZURITA
  • 2. Pantalla LCD • Conexionado: El conexionado de la LCD viene dado en el driver respectivo, en el caso de: ˂LCD.c˃ tenemos: //// Example of pin access: //// //// #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 //// Prof. Luis Zurita Microcontroladores II
  • 3. Pantalla LCD Paso 1. Incluir el driver de la LCD en la zona de declaraciones: #include <LCD.c> Si se va a trabajar con teclado y LCD, especificar el puerto con el cual se trabajará cada periférico antes de la inclusión del driver:antes de la inclusión del driver: #define use_PORTD_LCD true #include <LCD.c> Paso 2. Después de configurar los puertos como entradas o salidas con los registros TRIS, se debe inicializar la LCD= lcd_init ( ); Prof. Luis Zurita Microcontroladores II
  • 4. Pantalla LCD Ejemplo: #include <16f877.h> #fuses XT,NOWDT,NOLVP #use delay (clock=4000000) #BYTE TRISD=0x88 #BYTE PORTD=0x08#BYTE PORTD=0x08 #define use_PORTD_LCD true #include <LCD.c> void main (){ TRISD=0b00000000; lcd_init(); Prof. Luis Zurita Microcontroladores II
  • 5. Paso 3. Crear mensaje estático • Tipo función void MENSAJE( ) { lcd_gotoxy (1,1); //Línea 1 printf (lcd_putc, “AQUI COLOCO”); lcd_gotoxy (1,2); //Línea 2 printf (lcd_putc, “MI MENSAJE”);printf (lcd_putc, “MI MENSAJE”); } Luego durante el programa se llama a la función creada. Ejemplo: BOMBA=0; MENSAJE ( ); BOMBA=1; Nota= los mensajes en cada línea no deben pasar de la cantidad de caracteres que tiene la lcd, en el caso de una LCD 16x2, el número de caracteres por línea es de 16. Si es mayor a este número se truncará a 16.Prof. Luis Zurita Microcontroladores II
  • 6. Paso 3. Crear mensaje estático • Tipo Procedimiento Se crea el mensaje con instrucciones normales. Ejemplo: BOMBA=0; lcd_gotoxy (1,1); //Línea 1 printf (lcd_putc, “AQUI COLOCO”); lcd_gotoxy (1,2); //Línea 2 printf (lcd_putc, “MI MENSAJE”); BOMBA=1; Prof. Luis Zurita Microcontroladores II
  • 7. ¿Cuándo y cómo limpiar la LCD? • Se recomienda limpiar la LCD antes de mostrar un mensaje diferente al que se esté mostrando, para borrar cualquier carácter residual del mensaje anterior. Se puede limpiar con f en el nuevo mensaje de la primera línea. (El símbolo se obtiene con Alt+92). Ejemplo:obtiene con Alt+92). Ejemplo: lcd_gotoxy (1,1); //Línea 1 printf (lcd_putc, “fAQUI COLOCO”); o enviar sólo el comando (f): lcd_putc ( f ); Prof. Luis Zurita Microcontroladores II
  • 8. Paso 3. Crear mensaje dinámico • Tipo función void MENSAJE( ) { lcd_gotoxy (1,1); //Línea 1 printf (lcd_putc, “VISITA=%d”,CONTA1); lcd_gotoxy (1,2); //Línea 2 printf (lcd_putc, “LOCAL=%Lu”,CONTA2); Registros a mostrar printf (lcd_putc, “LOCAL=%Lu”,CONTA2); } Define el formato según se haya declarado el registro a mostrar. Ejemplo: %d= Registro tipo entero con signo %Ld= Registro tipo entero largo con signo Prof. Luis Zurita Microcontroladores II
  • 9. Paso 3. Crear mensaje dinámico void mostrar(){ lcd_gotoxy(1,1); printf(lcd_putc,"%02u : %02u %02u",hr,min,dia); lcd_gotoxy(1,2); printf(lcd_putc,"%02u/%02u / %02u",diasem,mes,annio); Registros a mostrar printf(lcd_putc,"%02u/%02u / %02u",diasem,mes,annio); } Define el formato según se haya declarado el registro a mostrar. Ejemplo: %u= Registro tipo entero sin signo 02 indica la cantidad de dígitos que se van a mostrar. Prof. Luis Zurita Microcontroladores II
  • 10. TECLADO MATRICIAL • Conexionado: El conexionado del teclado viene dado en el driver respectivo, en el caso de utilizar un teclado 4x3 con el driver ˂KDB.c˃ tenemos: #define COL0 (1 << 5) #define COL1 (1 << 6) #define COL2 (1 << 7) #define COL1 (1 << 6) #define COL2 (1 << 7) #define ROW0 (1 << 1) #define ROW1 (1 << 2) #define ROW2 (1 << 3) #define ROW3 (1 << 4) Prof. Luis Zurita Microcontroladores II
  • 11. TECLADO MATRICIAL • Conexionado: El conexionado del teclado viene dado en el driver respectivo, en el caso de utilizar un teclado 4x4 con el driver ˂KDB4x4d.c˃, facilitado en clases tenemos: #define COL0 (1 << 0) #define COL1 (1 << 1) #define COL2 (1 << 2) #define COL3 (1 << 3) #define ROW0 (1 << 4) #define ROW1 (1 << 5) #define ROW2 (1 << 6) #define ROW3 (1 << 7) No existe un teclado 4x4 comercial en el simulador Proteus, sin embargo el componente KEYPAD-SMALLCALC, nos puede ayudar a simular el teclado 4x4. Independientemente de cómo sea colocado, se deben respetar las conexiones mostradas anteriormente en cuanto al orden de las columnas (COL) (1,2,3,4) y de las filas (ROW) (A,B,C,D), y las teclas se corresponderán al orden mostrado en el recuadro azul.Prof. Luis Zurita Microcontroladores II
  • 12. TECLADO MATRICIAL Paso 1. Incluir el driver del teclado en la zona de declaraciones: #include <KBD.c> // Opción A. Para teclado 4x3 ó #include <KBD4x4d.c> // Opción B. Para teclado 4x4 Si se va a trabajar con LCD y teclado, especificar el puerto con el cual se trabajará cada periférico antes de la inclusión del driver: #define use_PORTD_LCD true#define use_PORTD_LCD true #define use_PORTB_KBD true #include <LCD.c> #include <KBD4x4d.c> //ó <KBD.c> Para teclado 4x3 Paso 2. Configurar el puerto B, con RB7-RB4 como entradas y RB3-RB0 como salidas y habilitar las resistencias “Pull-Ups”: TRISB=0xF0; port_b_pullups(TRUE); Prof. Luis Zurita Microcontroladores II
  • 13. TECLADO MATRICIAL Paso 3. Después de configurar los puertos como entradas o salidas con los registros TRIS, y las resistencias “Pull-Ups”, se debe inicializar el teclado= kbd_init ( ); Paso 4. Leer el teclado y obtener la tecla pulsada. Con la función kbd_getc ( ); logramos fácilmente esta tarea: TECLA= kbd_getc ( ); Prof. Luis Zurita Microcontroladores II
  • 14. TECLADO MATRICIAL Paso 4. Leer el teclado y obtener la tecla pulsada. TECLA= kbd_getc ( ); El registro “TECLA” se debe declarar tipo char al inicio del programa. Puede declararse un registro adicional, por ejemplo x tipo int o byte para obtener la tecla en decimal, previa conversión:conversión: x= TECLA – 48, con lo que se convierte el dato del código ASCII a decimal. Es importante destacar que esta función kbd_getc(); no aplica la interrupción RB4-RB7, sino que realiza un escaneo de las teclas, por lo que se debe estar llamando cada vez que se desee leer el teclado. Prof. Luis Zurita Microcontroladores II
  • 15. #INCLUDE <16F877.h> #FUSES XT,NOWDT,NOLVP #USE DELAY(CLOCK=4000000) #BYTE TRISB=0X86 #BYTE TRISD=0X88 #BYTE PORTB=0X06 #BYTE PORTD=0X08 #define use_PORTD_LCD true //Puerto D controlará la LCD #define use_PORTB_KBD true //Puerto B controlará el teclado 4x3 Ejemplo 1. Leer Tecla y mostrarla en LCD #define use_PORTB_KBD true //Puerto B controlará el teclado 4x3 #include <LCD.c> //Driver de la LCD #include <KBD.c> //Driver del Teclado 4x3 int x; //Variable para guardar la tecla en decimal Char k; // Variable para guardar la tecla en carácter void MOSTRAR( ) { //función para visualizar la tecla en LCD lcd_gotoxy(1,1); printf(lcd_putc,"TECLADO 4x3="); lcd_gotoxy(1,2); printf(lcd_putc," %d ",x); //La tecla se visualizará en formato char } Prof. Luis Zurita Microcontroladores II
  • 16. void main(){ TRISB=0xF0; //Configuración del PORTB TRISD=0; port_b_pullups(TRUE); //Activamos las resistencias “Pullups” lcd_init(); //Inicializamos la LCD kbd_init(); //Inicializamos el teclado while (true){ Ejemplo 1. Leer Tecla y mostrarla en LCD while (true){ k=kbd_getc(); //Escaneamos a ver si se ha pulsado una tecla x=k-48; //Se lleva k de ASCII a decimal if ((k!=0)&&(x<=9)){ //Si k es distinto de cero, se ha pulsado una tecla // Con estas condiciones se visualizará del 0 al 9 únicamente MOSTRAR(); //Visualizamos la tecla en la LCD } }//true //Seguimos escaneando el teclado }//main Prof. Luis Zurita Microcontroladores II
  • 17. Ejemplo 1. Leer Tecla y mostrarla en LCD Prof. Luis Zurita Microcontroladores II
  • 18. #INCLUDE <16F877.h> #FUSES XT,NOWDT,NOLVP #USE DELAY(CLOCK=4000000) #BYTE TRISB=0X86 #BYTE TRISD=0X88 #BYTE PORTB=0X06 #BYTE PORTD=0X08 #define use_PORTD_LCD true //Puerto D controlará la LCD #define use_PORTB_KBD true //Puerto B controlará el teclado 4x4 Ejemplo 2. Leer Tecla y mostrarla en LCD #define use_PORTB_KBD true //Puerto B controlará el teclado 4x4 #include <LCD.c> //Driver de la LCD #include <KBD4x4d.c> //Driver del Teclado 4x4 int x; //Variable para guardar la tecla en decimal Char k; // Variable para guardar la tecla en carácter void MOSTRAR( ) { //función para visualizar la tecla en LCD lcd_gotoxy(1,1); printf(lcd_putc,"TECLADO 4x4="); lcd_gotoxy(1,2); printf(lcd_putc," %c ",k); //La tecla se visualizará en formato char } Prof. Luis Zurita Microcontroladores II
  • 19. void main(){ TRISB=0xF0; //Configuración del PORTB TRISD=0; port_b_pullups(TRUE); //Activamos las resistencias “Pullups” lcd_init(); //Inicializamos la LCD kbd_init(); //Inicializamos el teclado while (true){ Ejemplo 2. Leer Tecla y mostrarla en LCD while (true){ k=kbd_getc(); //Escaneamos a ver si se ha pulsado una tecla x=k-48; //Se lleva k de ASCII a decimal if (k!=0){ //Si k es distinto de cero, se ha pulsado una tecla MOSTRAR(); //Visualizamos la tecla en la LCD } }//true //Seguimos escaneando el teclado }//main Prof. Luis Zurita Microcontroladores II
  • 20. Ejemplo 2. Leer Tecla y mostrarla en LCD Nota: El driver KBD4x4d.c lo puedes descargar en la carpeta de archivos del blog. Prof. Luis Zurita Microcontroladores II