Buenos Dias a todos,
Tengo problemas al simular un teclado numérico 4x3 en proteus (ver 7.2 SP6) con el PIC18F2550. He tomado como base para el programa, el ejemplo que trae el compilador PICC para lcd y teclado (Ex_lcdkb.c). El código que compilo es el siguiente:
#include <18f2550.h>
#use delay (CLOCK = 20000000)
#fuses HS,NOWDT,NOPROTECT,NOLVP
#define LCD_ENABLE_PIN PIN_C2
#define LCD_RS_PIN PIN_C1
//#define LCD_RW_PIN PIN_B6
#define LCD_DATA4 PIN_C4
#define LCD_DATA5 PIN_C5
#define LCD_DATA6 PIN_C6
#define LCD_DATA7 PIN_C7
//#use fast_io(c)
#define use_portb_kbd TRUE
#include <lcd.c>
#include <kbd.c>
void main() {
char k;
lcd_init();
kbd_init();
port_b_pullups(TRUE);
lcd_putc("\fReady...\n");
while (TRUE) {
k=kbd_getc();
if(k!=0)
if(k=='*')
lcd_putc('\f');
else
lcd_putc(k);
}
}
El teclado se conecta al puertoB y el LCD al puertoC. El detalle para el teclado es: fila1->B1, fila2->B2, fila3->B3, fila4->B4, col1->B5, col2->B6 t col3->B7; y lo del LCD está especificado al inicio del programa.
La parte del LCD funciona bien, pero no logro simular el teclado. Compila correctamente y lo he probado cambiando otros PICS, el PIC16F876A y el PIC18F452; con los que si logra simular. Mi pregunta es, ¿debo configurar algo más para este pic?
¿la libreria KBD.C no funciona para este pic? ¿Proteus tiene algún error con este pic?.
Antes de terminar, quisiera agregar algo que observo al simular. Con los pics que si logra funcionar, el puertob se pone como si todos sus pines estuvieran en estado lógico ALTO menos el pin B0, que se pone en BAJO (creo que al momento de ejecutar kbd_init()
, pero en el caso del 18F2550 se pone como inactivo el PIN B1 (ni alto, ni bajo). Espero puedan ayudarme, no logro encontrar la solución.
y el mal humor me esta invadiendo
Saludos,