antiworldx
Excluido
Posteate el diagrama que tu conexionaste.
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
#include <18F4550.h> //Libreria del PIC
#fuses XT,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN,NOPBADEN //Configuracion de los fuses:
#use delay (clock=4000000) //Configuramos oscilador a 4Mhz
#include <lcd.c> //Libreria para la lcd
#include <kbd.c> //Libreria para teclado matricial
#use fast_io(A)
#use fast_io(B)
//---------- PROGRAMA PRINCIPAL ----------------
void main ()
{
char tecla;
set_tris_b(0xff);
port_b_pullups(true);
kbd_init();
lcd_init();
lcd_putc("\fPulse una tecla\n");
delay_ms(300);
for(;;)
{
tecla = kbd_getc();
printf(lcd_putc,"Tecla pulsada: %c" tecla);
delay_ms(100);
}
}
Bueno, trate de hacer algo pero no me sale. Tengo problemas con la conexión de teclado creo, o no se si es en la programación. Quiero mostrar en el lcd la tecla que acabo de pulsar. Según mi lógica el programa esta bien pero al simular en el proteus no pasa nada, solo se queda en el primer mensaje el lcd "Pulse una tecla" y cuando pulso la tecla no sale nada en el lcd.
Código:#include <18F4550.h> //Libreria del PIC #fuses XT,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN,NOPBADEN //Configuracion de los fuses: #use delay (clock=4000000) //Configuramos oscilador a 4Mhz #include <lcd.c> //Libreria para la lcd #include <kbd.c> //Libreria para teclado matricial #use fast_io(A) #use fast_io(B) //---------- PROGRAMA PRINCIPAL ---------------- void main () { char tecla; set_tris_b(0xff); port_b_pullups(true); kbd_init(); lcd_init(); lcd_putc("\fPulse una tecla\n"); delay_ms(300); for(;;) { tecla = kbd_getc(); printf(lcd_putc,"Tecla pulsada: %c" tecla); delay_ms(100); } }
El esquema de proteus es el siguiente:
El código lo hice yo, el esquema también. Quiero mostrar lo que se pulsa en el lcd, con el manejo del lcd no tengo mucho problema, incluso ya hasta hice un contador con lcd . Pero este teclado matricial si me esta dando dolores de cabeza.
Por favor que alguien me explique.
Gracias de antemano.
// Un-comment the following define to use port B
#define use_portb_kbd TRUE
#ifdef blue_keypad ///////////////////////////////////// For the blue keypad
#define COL0 (1 << 2)
#define COL1 (1 << 3)
#define COL2 (1 << 6)
#define ROW0 (1 << 4)
#define ROW1 (1 << 7)
#define ROW2 (1 << 1)
#define ROW3 (1 << 5)
#else ////////////////////////////////////////////////// For the black keypad
#define COL0 (1 << 0)
#define COL1 (1 << 1)
#define COL2 (1 << 2)
#define ROW0 (1 << 4)
#define ROW1 (1 << 5)
#define ROW2 (1 << 6)
#define ROW3 (1 << 7)
#include <18f4550.h>
#include <18f4550.h>
#use delay(clock=48000000)
#include <KBD_PTOB.c> //windows 7 no dejó editar la libreria, por eso cree otra idéntica pero para trabajar con el puerto b y la copié en la carpeta "Drivers" del compilador
#include <lcd.c>
#fuses XTPLL,NOMCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG
char k; //caracter que será leido
void main(void)
{
lcd_init();
kbd_init();
port_b_pullups(TRUE);
while(true){
k=kbd_getc();//para cachar lo que se pulse o no se pulse en el teclado
if(k!=0){ //esta instrucción verifica si se ha pulsado una tecla
printf(lcd_putc,"%c",k);
}
}
}