Hola buen dia tenga todo el que lea este tema, es mi primer mensaje en este foro y acudo a ustedes por que tengo cerca de 1 mes intentando un proyecto para la facultad de ingenieria, se trata de un PÎC16f627a conectado a un Bluetooth el cual envia y recibe informacion de imperterminal, necesito que el pic al momento de recibir un dato ejemplo un "1" me encienda un led en el pin b3 o cualquier pin la verdad no importa, tengo un mes intentandolo pero no lo logro, lo raro es que en proteus si hace bien la simulacion, el bluetooth funciona bien es especial para microcontroladores es un Bluesmirf se consigue en la pagina de sparkfun.com, hago la conexion de la computadora al bluetooth por hyperterminal y si se conecta al pic correctamente pero al enviar un dato nisiquiera me aparece en la pantalla lo que escribo ni enciende ningun led el pic, espero me puedan ayudar y dejo aqui el codigo en C, lo compilo en PIC C, muchas gracias de nuevo.
#include <16F627A.h>
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#byte trisb = 0x86
#byte portb = 0x06
void main()
{
char valor;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator( OSC_4MHZ );
trisb=0x0F;
printf("presiona una tecla: \r");
while(1)
{
valor=getch();
if(valor=='1') //si el valor es uno enciende o apaga el led
{
if(bit_test(portb,4)!=1) //prueba si esta apagado o encendido el led
{
printf("Foco enpuerto B4 encendido\r");
bit_set(portb,4); //enciende
}
else
{
printf("Foco enpuerto B4 Apagado\r");
bit_clear(portb,4); //apaga
}
}
}
}
#include <16F627A.h>
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8)
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES PUT //Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#byte trisb = 0x86
#byte portb = 0x06
void main()
{
char valor;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator( OSC_4MHZ );
trisb=0x0F;
printf("presiona una tecla: \r");
while(1)
{
valor=getch();
if(valor=='1') //si el valor es uno enciende o apaga el led
{
if(bit_test(portb,4)!=1) //prueba si esta apagado o encendido el led
{
printf("Foco enpuerto B4 encendido\r");
bit_set(portb,4); //enciende
}
else
{
printf("Foco enpuerto B4 Apagado\r");
bit_clear(portb,4); //apaga
}
}
}
}