Encender led con teclado matricial 4x3

#1
Estoy haciendo un programa en CCS compiler de encender un led con teclado matricial en proteus.
El hecho es que no sé si el programa está bien y estoy muy dudoso de como es la conexión en proteus.
Este es el programa y la simulación, mando una foto:

Código:
#include <16F877A.h>
#fuses XT,NOWDT,NOLVP,NOPROTECT
#use delay(clock=4MHz)
#use fast_io(D)
#include <kbd.c>  //ENTRADA KEYPAD TECLADO 3x4

void main(){

char k=0;
kbd_init();  //PARA INICIALIZAR EL KEYPAD
port_b_pullups(true);
set_tris_d(0x00);

while(true){
k=kbd_getc();  //CAPTURA EL VALOR DEL KEYPAD Y LO GUARDA EN LA VARIABLE K

if(k!=0){

if(k=='1')
output_high(PIN_D1);
else
output_low(PIN_D1);
}

}
}
Agradecería muchísimo si al menos me dan una ayuda con el programa y más con la simulación.
 

Adjuntos

Última edición por un moderador:
#2
Si está bien la conexión del teclado, pero por lo que no te funciona el programa es porque el teclado funciona por defecto en el puerto D.
Para que funcione por el puerto B que es dónde lo tienes conectado, debes declararlo.

Antes de #include <kbd.c> agrega esto: #define use_portb_kbd TRUE

También recuerda establecer valores iniciales al puerto D si lo configuras todo como salidas.
Por ejemplo: output_d (0x00); // Todo en 0

Suerte.
 
Arriba