TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ByR en 20 de Enero de 2010, 10:22:57

Título: Error en simulacion de teclado 4x3 con PIC18F2550 (lib. KBD.C de CCS)
Publicado por: ByR en 20 de Enero de 2010, 10:22:57
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  :5]
Saludos,
Título: Re: Error en simulacion de teclado 4x3 con PIC18F2550 (lib. KBD.C de CCS)
Publicado por: MLO__ en 20 de Enero de 2010, 14:01:57
Hola.

Verifica que esten como I/O digitales, ya que creo que el 18F2550, tiene canales ADC en el PORTB.

Saludos
Título: Re: Error en simulacion de teclado 4x3 con PIC18F2550 (lib. KBD.C de CCS)
Publicado por: Cryn en 20 de Enero de 2010, 21:17:54
Exacto, como dice MLO__ te debe faltar un NOPBADEN en los Fuses.

Saludos desde Cocha.