0% encontró este documento útil (0 votos)
5 vistas8 páginas

Programas de Teclado y LCD en C

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas8 páginas

Programas de Teclado y LCD en C

Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Programas para práctica de teclado

PROGRAMA 1

unsigned short kp, cnt, oldstate = 0;

char txt[6];

char keypadPort at PORTD; // Conexiones del módulo del teclado

// final de conexiones del módulo del teclado

// Establecer las conexiones del LCD

sbit LCD_RS at LATE0_bit;

sbit LCD_EN at LATE1_bit;

sbit LCD_D4 at LATC0_bit;

sbit LCD_D5 at LATC1_bit;

sbit LCD_D6 at LATC6_bit;

sbit LCD_D7 at LATC7_bit;

sbit LCD_RS_Direction at TRISE0_bit;

sbit LCD_EN_Direction at TRISE1_bit;

sbit LCD_D4_Direction at TRISC0_bit;

sbit LCD_D5_Direction at TRISC1_bit;

sbit LCD_D6_Direction at TRISC6_bit;

sbit LCD_D7_Direction at TRISC7_bit;

// Final de las conexiones del LCD

void main() {

PORTD= 0x00;

Realizo: M. en E. Víctor morales castillo.


TRISD= 0X00;

cnt =0; // Reiniciar el contador

Keypad_init(); // Inicializar el Teclado

Lcd_Init(); // Inicializar LCD

Delay_ms(1);

Lcd_Cmd(_LCD_CLEAR); // Limpiar display

Delay_ms(1);

Lcd_Cmd(_LCD_CURSOR_OFF); // Apagar cursor

Delay_ms(1);

Lcd_Out(1, 1, " ");

Lcd_Out(1, 1, "Tecla :");

Lcd_Out(2, 1, "Tiempo :");

do{

kp =0; // Reiniciar la variable de codigo de tecla

// Esperar que la tecla se presione y suelte

do

//kp = Keypad_Key_Click(); // Almacena el código de la tecla

kp = Keypad_Key_press(); // Almacena el código de la tecla

while (!kp);

// Prepara el valor para la salida, convertir el dato en el código ASCII equivalente

switch (kp){

default:kp +=48;

Realizo: M. en E. Víctor morales castillo.


case 1:kp = 55; break; //'7'

case 2:kp = 56; break; //'8'

case 3:kp = 57; break; //'9'

case 4:kp = 37; break; //'%'

case 5:kp = 52; break; //'4'

case 6:kp = 53; break; //'5'

case 7:kp = 54; break; //'6'

case 8:kp = 42; break; //'*'

case 9:kp = 49; break; //'1'

case 10:kp = 50; break; //'2'

case 11:kp = 51; break; //'3'

case 12:kp = 45; break; //'-'

case 13:kp = 67; break; //'ON'

case 14:kp = 48; break; //'0'

case 15:kp = 61; break; //'='

case 16:kp = 43; break; //'+'

if(kp!= oldstate){ // Tecla presionada es distinta a la anterior

cnt=1;

oldstate = kp;

else{ // Tecla presionada es igual a la anterior

cnt++;

Lcd_Chr(1,10,kp); // Visualizar el valor ASCII del dato en el LCD

if(cnt==255){ // Si la variable del contador esta fuera del rango

cnt=0;

Realizo: M. en E. Víctor morales castillo.


Lcd_Out(2,10," ");

WordToStr(cnt,txt); // convertir el valor del contador en la cadena

Lcd_Out(2,10,txt); // Visualizar el valor del contador en el LCD

} while(1);

PRORAMA 2

//Declaración del puerto para el teclado 4x4

char keypadPort at PORTD;

//Definicion pines para el LCD.

sbit LCD_RS at LATE0_bit;

sbit LCD_EN at LATE1_bit;

sbit LCD_D4 at LATC0_bit;

sbit LCD_D5 at LATC1_bit;

sbit LCD_D6 at LATC6_bit;

sbit LCD_D7 at LATC7_bit;

//Definicion de registros TRIS para el LCD.

sbit LCD_RS_Direction at TRISE0_bit;

sbit LCD_EN_Direction at TRISE1_bit;

sbit LCD_D4_Direction at TRISC0_bit;

sbit LCD_D5_Direction at TRISC1_bit;

sbit LCD_D6_Direction at TRISC6_bit;

sbit LCD_D7_Direction at TRISC7_bit;

//Función para decodificar el teclado.

char LeerTeclado( void )

Realizo: M. en E. Víctor morales castillo.


{

//Estructura switch case para evaluar los valores retornados

//por la librería del teclado.

switch( Keypad_Key_press() )

case 1: return '7';

case 2: return '8';

case 3: return '9';

case 4: return '/';

case 5: return '4';

case 6: return '5';

case 7: return '6';

case 8: return '*';

case 9: return '1';

case 10: return '2';

case 11: return '3';

case 12: return '-';

case 13: return 'c';

case 14: return '0';

case 15: return '=';

case 16: return '+';

default: return 0; //Tecla no pulsada.

void main( void )

//Declaración de variables.

char Tecla;

//Configuración e inicialización del PIC.

Realizo: M. en E. Víctor morales castillo.


Lcd_Init(); //Inicializa el LCD.

Lcd_Cmd(_LCD_CURSOR_OFF); //Se apaga el cursor.

Lcd_Out(1, 1,"Tecla:"); //Se imprime texto.

while(1)//Bucle infinito.

Tecla=LeerTeclado(); //Se lee el teclado y su resultado se guarda en Tecla.

Lcd_Chr(2,1,Tecla); //Visualización el valor retornado por el teclado.

PROGRAMA 3

//Declaración del puerto para el teclado 4x4

char keypadPort at PORTD;

// Establecer las conexiones del LCD

sbit LCD_RS at LATE0_bit;

sbit LCD_EN at LATE1_bit;

sbit LCD_D4 at LATC0_bit;

sbit LCD_D5 at LATC1_bit;

sbit LCD_D6 at LATC6_bit;

sbit LCD_D7 at LATC7_bit;

sbit LCD_RS_Direction at TRISE0_bit;

sbit LCD_EN_Direction at TRISE1_bit;

sbit LCD_D4_Direction at TRISC0_bit;

sbit LCD_D5_Direction at TRISC1_bit;

sbit LCD_D6_Direction at TRISC6_bit;

sbit LCD_D7_Direction at TRISC7_bit;

Realizo: M. en E. Víctor morales castillo.


// Final de las conexiones del LCD

void main( void )

//Declaración de variables.

unsigned short Tecla;

char Text[20];

//Configuración e inicialización del PIC.

Lcd_Init(); //Inicialización del LCD.

Lcd_Cmd(_LCD_CURSOR_OFF); //Se apaga el cursor.

Lcd_Out(1, 1,"Tecla:"); //Se imprime texto.

while(1)//Bucle infinito.

Tecla=Keypad_Key_Press(); //Se lee el teclado y se guarda el resultado en Tecla.

ByteToStr(Tecla, Text); //Conversión de entero a texto.

Lcd_Out(2,1,Text); //Visualización del valor retornado por el teclado.

Realizo: M. en E. Víctor morales castillo.


Realizo: M. en E. Víctor morales castillo.

También podría gustarte