Que tal estoy haciendo un proyecto con un pic 16f887 y la verdad no se como hacer un menu implementando el teclado matricial de 4x4 esto es algo de lo que llevo pero todavia no puedo hacer que funcione el teclado
#include <16f887.h>
#fuses xt,nowdt,noprotect,nolvp,put
#use delay(clock=4000000)
#include<lcd.c>
#use fast_io(a)
#use fast_io(b)
#use fast_io(d)
#byte puertoa=0x05 // declaracion del puerto a ( direccion de memeoria en que se encuentra)
#byte puertob=0x06 // identificador asociado al registro de direccion 6
#byte puertod=0x08
//configuracion del teclado
#define KBD_ROW1 PIN_B7
#define KBD_ROW2 PIN_B6
#define KBD_ROW3 PIN_B5
#define KBD_ROW4 PIN_B4
#define KBD_COL1 PIN_B3
#define KBD_COL2 PIN_B2
#define KBD_COL3 PIN_B1
#define KBD_COL4 PIN_D3
#define KBD_USES_PULLUPS
#include<kbd4.c>
char k;
void main()
{
port_b_pullups (0xFF);
lcd_init();
kbd_init();
while(true){
printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"Bienvido elija una opción");
lcd_gotoxy(1,2);
printf(lcd_putc,"1)Servir Alimento/Agua");
lcd_gotoxy(21,1);
printf(lcd_putc,"2)Programar Alimento");
lcd_gotoxy(21,2);
printf(lcd_putc,"3)Nivel de agua/comida");
delay_ms(2000);
//Primera opcion del Menu
k=kbd_getc();
if(K!=0)
switch (k){
case 1:
printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"1)Agua");
lcd_gotoxy(1,2);
printf(lcd_putc,"1)Alimento");
lcd_gotoxy(21,1);
printf(lcd_putc,"2)Regresar");
delay_ms(2000);
break;
}
}
}
#include <16f887.h>
#fuses xt,nowdt,noprotect,nolvp,put
#use delay(clock=4000000)
#include<lcd.c>
#use fast_io(a)
#use fast_io(b)
#use fast_io(d)
#byte puertoa=0x05 // declaracion del puerto a ( direccion de memeoria en que se encuentra)
#byte puertob=0x06 // identificador asociado al registro de direccion 6
#byte puertod=0x08
//configuracion del teclado
#define KBD_ROW1 PIN_B7
#define KBD_ROW2 PIN_B6
#define KBD_ROW3 PIN_B5
#define KBD_ROW4 PIN_B4
#define KBD_COL1 PIN_B3
#define KBD_COL2 PIN_B2
#define KBD_COL3 PIN_B1
#define KBD_COL4 PIN_D3
#define KBD_USES_PULLUPS
#include<kbd4.c>
char k;
void main()
{
port_b_pullups (0xFF);
lcd_init();
kbd_init();
while(true){
printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"Bienvido elija una opción");
lcd_gotoxy(1,2);
printf(lcd_putc,"1)Servir Alimento/Agua");
lcd_gotoxy(21,1);
printf(lcd_putc,"2)Programar Alimento");
lcd_gotoxy(21,2);
printf(lcd_putc,"3)Nivel de agua/comida");
delay_ms(2000);
//Primera opcion del Menu
k=kbd_getc();
if(K!=0)
switch (k){
case 1:
printf(lcd_putc,"\f");
lcd_gotoxy(1,1);
printf(lcd_putc,"1)Agua");
lcd_gotoxy(1,2);
printf(lcd_putc,"1)Alimento");
lcd_gotoxy(21,1);
printf(lcd_putc,"2)Regresar");
delay_ms(2000);
break;
}
}
}
Última edición: