Autor Tema: Por qué usando teclado 4x4, la lcd de 16 x2 muestra letras incorrectas  (Leído 2343 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jasper11

  • PIC10
  • *
  • Mensajes: 1
Buenas Noches,
He estado buscando como resolver mi problema pero no he podido así que me dirijo a ustedes en espera de que puedan ayudarme pues ya no sé que más hacer. :(

Arme un circuito que consiste en un teclado de membrana matricial de 4x4 que va conectado a todo el puerto B de un pic16f877a y que también tiene conectada una LCD de 16 x 2 en el puerto D.
El circuito es muy simple: Si yo presiono una tecla, la letra debe de verse en la LCD.
Sin embargo, cuando por ejemplo pulso la letra A, la pantalla muestra el símbolo de * y viceversa.
O sí pulso la tecla 7, se muestra la letra B
Ya intente modificar la librería (KBD1) y declarar el puerto B como entras pero no he tenido éxito.

Les muestro el código de mi programa y el de la librería emplea, ojalá pudieran decirme cuál es la falla.

Por su atención y Comprensión Gracias

//Código de Mi Programa/////////////////////////////////////////////////////////////////////////////////////////////
]#include "C:\\Users\\grc\\Documents\\Proyectos pic C\\LCD_PIC16F877A\\LCD_PIC16F877A.h"
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#define LCD_TYPE 2
#include <lcd.c>
#include <KBD1.c>
void main()
{
char k=0;
lcd_init();
kbd_init();
port_b_pullups(TRUE);

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_CLOCK_DIV_2);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
//set_tris_b(0b00001111);

while(true)
{
k=kbd_getc();
if(k!=0){
lcd_gotoxy(2,2);
printf(lcd_putc,"%c",k);}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//Conexiones predeterminadas en la librería:
//Keypad connection: (for example column 0 is B0)

#define COL0 (1 << 0) // PIN_B0
#define COL1 (1 << 1) // PIN_B1
#define COL2 (1 << 2) // PIN_B2
#define COL3 (1 << 3) // PIN_B3

#define ROW0 (1 << 4) // PIN_B4
#define ROW1 (1 << 5) // PIN_B5
#define ROW2 (1 << 6) // PIN_B6
#define ROW3 (1 << 7) // PIN_B7

#define ALL_ROWS (ROW0|ROW1|ROW2|ROW3)
#define ALL_PINS (ALL_ROWS|COL0|COL1|COL2|COL3)

// Keypad layout:
char const KEYS[4][4] = {{\'1\',\'2\',\'3\',\'A\'},
{\'4\',\'5\',\'6\',\'B\'},
{\'7\',\'8\',\'9\',\'C\'},
{\'*\',\'0\',\'#\',\'D\'}}; ...


 

anything