SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

05 respuesta en el tiempo de un sistema de control
05   respuesta en el tiempo de un sistema de control05   respuesta en el tiempo de un sistema de control
05 respuesta en el tiempo de un sistema de control
reneej748999
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
Luis Zurita
 
Seaparat elect pote
Seaparat elect poteSeaparat elect pote
Seaparat elect pote
Luis Sanchez
 
Circuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosCircuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronos
Alexa Ramirez
 
Clase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGRClase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGR
guest21fbd4
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fet
Velmuz Buzz
 
Criterio de estabilidad de Routh
Criterio de estabilidad de RouthCriterio de estabilidad de Routh
Criterio de estabilidad de Routh
Luis Jimenez Rivera
 
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
Luis Zurita
 

La actualidad más candente (20)

Modelado en espacio de estados
Modelado en espacio de estadosModelado en espacio de estados
Modelado en espacio de estados
 
05 respuesta en el tiempo de un sistema de control
05   respuesta en el tiempo de un sistema de control05   respuesta en el tiempo de un sistema de control
05 respuesta en el tiempo de un sistema de control
 
1.2 control pid INGENIERIA DEL CONTROL
1.2 control pid INGENIERIA DEL CONTROL1.2 control pid INGENIERIA DEL CONTROL
1.2 control pid INGENIERIA DEL CONTROL
 
Problemas tema1 sy_c
Problemas tema1 sy_cProblemas tema1 sy_c
Problemas tema1 sy_c
 
MARLON
MARLONMARLON
MARLON
 
50824079 datasheet-pic18f4550-espanol
50824079 datasheet-pic18f4550-espanol50824079 datasheet-pic18f4550-espanol
50824079 datasheet-pic18f4550-espanol
 
Diagramas de bode
Diagramas de bodeDiagramas de bode
Diagramas de bode
 
Sección 2.6: Sistemas descritos mediante ecuaciones en diferencias
Sección 2.6: Sistemas descritos mediante ecuaciones en diferenciasSección 2.6: Sistemas descritos mediante ecuaciones en diferencias
Sección 2.6: Sistemas descritos mediante ecuaciones en diferencias
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
 
Sección 2.7 Correlación de señales discretas en el tiempo
Sección 2.7 Correlación de señales discretas en el tiempoSección 2.7 Correlación de señales discretas en el tiempo
Sección 2.7 Correlación de señales discretas en el tiempo
 
Seaparat elect pote
Seaparat elect poteSeaparat elect pote
Seaparat elect pote
 
Circuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronosCircuitos secuenciales sincronos y asincronos
Circuitos secuenciales sincronos y asincronos
 
Clase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGRClase 5 - Diseño de controladores por LGR
Clase 5 - Diseño de controladores por LGR
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fet
 
Criterio de estabilidad en los s.de control automatico
Criterio de estabilidad en los s.de control automaticoCriterio de estabilidad en los s.de control automatico
Criterio de estabilidad en los s.de control automatico
 
Conversión de flip flops
Conversión de flip flopsConversión de flip flops
Conversión de flip flops
 
Criterio de estabilidad de Routh
Criterio de estabilidad de RouthCriterio de estabilidad de Routh
Criterio de estabilidad de Routh
 
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
RESPUESTA EN FRECUENCIA (Métodos del Diagrama de Bode y del Diagrama Polar)
 
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
 
3 2 circuitos-disparo
3 2 circuitos-disparo3 2 circuitos-disparo
3 2 circuitos-disparo
 

Similar a Guía rápidalcd y teclado

Manejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladoreManejo de perifericos para microcontroladore
Manejo de perifericos para microcontroladore
Luis Zurita
 
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
Luis Zurita
 
Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553Dialnet programando microcontroladorespicenlenguajec-4587553
Dialnet programando microcontroladorespicenlenguajec-4587553
RoxanneLamas2
 
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
Gabriel Bravo Rojas
 
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
Jose 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 f87xx
freddymadriz
 
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
Jose Manuel Mansilla Carrasco
 
Informe grupo cronos
Informe grupo cronosInforme grupo cronos
Informe grupo cronos
raulernesto28
 

Similar a 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
 

Más de Luis Zurita

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

Más de 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
 

Último

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
NadiaMartnez11
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Último (20)

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
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
 
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIASISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
SISTEMA RESPIRATORIO PARA NIÑOS PRIMARIA
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docxTALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
TALLER DE DEMOCRACIA Y GOBIERNO ESCOLAR-COMPETENCIAS N°3.docx
 
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
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 

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