TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: GONZALOSEBASTIAN_LOPEZ en 10 de Diciembre de 2010, 11:58:24
-
HOLA soy novato con los pic y siguiendo ej de un libro con CCS. no puedo hacer que cuando presiono una tecla el lcd la muestre. El diagrama tiene en paralelo al lcd con el teclado como detallo a continuacion:
RB0=E(lcd)
RB1= RS y row A
RB2= RW y row B
RB3= row C
RB4= row D y D4
RB5= col 1 y D5
RB6= col 2 y D6
RB7= col 3 y D7
#include <16F876.h>
#device adc=8
#FUSES NOWDT //No Watch Dog Timer
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#FUSES NOWRT //Program memory not write protected
#FUSES NODEBUG //No Debug mode for ICD
#use delay(clock=4000000)
#define LCD_TYPE 2
#define use_portb_lcd TRUE
#define use_portb_kbd TRUE
#include <lcd.c>
#include <kbd.c>
void main()
{
char k;
int x;
lcd_init();
kbd_init();
port_b_pullups(TRUE);
lcd_putc("\fEscriba...\n");
while (TRUE)
{
k=kbd_getc();//lcd envia caracteres en ASCII a k
x=k-48;// se resta 48d=(0Ascii)=30hex
if(k!=0)
{
if(k=='*')
lcd_putc('\f');
else
lcd_putc(k);//imprime cararter
delay_ms(500);
printf(lcd_putc,"\f Car=%c",k);//imprime cararter
delay_ms(500);
printf(lcd_putc,"\f Car=%u",k);//imprime valor ASCII
delay_ms(500);
printf(lcd_putc,"\f Num=%u",x);//imprime valor numerico del caracter
delay_ms(500);
lcd_putc("\fListo...\n");
}
}
}
(http://)
-
Creo que no funciona asi, hay que editar las librerias del teclado y el lcd, ambas utilizan el puerto b, y la libreria lcd.c utiliza el puerto D, como este pic no tiene ese puerto se debe editar la libreria y hacerla que trabaje con el peurto b, lo malo es q el teclado tambien trabaja en el mismo puerto, eso ya se lo dejamos a los que saen, pero hi te doy una idea quizas puedas resolverlo.
-
C=Collage de cosas
Mucho espacio, poca eficiencia.
Es como te dicen.