TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: marcovalencia123 en 28 de Julio de 2011, 15:17:17
-
Hola: Estoy tratando de utilizar el teclado y lcd en el mismo puerto B usando el 16f883. Tenía un programa para el 16f876 y funcionaba bien pero al momento de usarlo en el 16f883 no pude. Una solución fue ponerlos en puertos diferentes pero me gustaría saber si se puede usar únicamente un puerto. ¿que me falta en mi codiigo?. Agradezco su ayuda. Buen día.
#include <16f876.h>
#fuses XT, NOWDT, NOPROTECT, NOLVP
#use delay (clock=4000000)
#include <lcd.c>
#include <kbd.c>
void main(){
char k;
int x;
lcd_init();
kbd_init();
port_b_pullups(TRUE);
lcd_putc("\fListo...\n");
while (TRUE) {
k=kbd_getc();
x=k-48;
if(k!=0) {
if(k=='*')
lcd_putc('\f');
else
lcd_putc(k);
delay_ms(500);
printf(lcd_putc,"\f Car=%c", k);
delay_ms(500);
printf(lcd_putc,"\f Car=%u", k);
delay_ms(500);
printf(lcd_putc,"\f Num=%c", x);
delay_ms(500);
lcd_putc("\fListo....\n");
}
}
}
-
Obviamente si hice el cambio en la primera linea #include<16f883.h> pero no se que más hacer. :?
-
¿No habrá diferencias entre el manejo del puerto en el F876 y en F833?
-
saludo,
Una opción seria utilizar el conversor análogo a digital para leer el teclado, y el resto de pines para el lcd. Aquí Lectura de un Teclado Matricial 4x4 con un solo pin del PIC (http://www.todopic.com.ar/foros/index.php?topic=18911.0) puedes ver la teoría para leer el teclado por ADC que nos facilita Redpic Adjunto un ejemplo que he echo con el 16f883.
-
habria q revisar la hoja de datos, puede ser que por defecto el puerto tenga configurado algo, algunos tienen el puerto b como entrada analoga
-
Podrías poner el diagrama esquemático (Isis) y el código adjunto?
Saludos