hola Gracias por responder, este es el codigo, esta comentado lo de la lcd y trabaja perfecto, pero si dejo lo de la lcd en simulacion sirve pero en real no,,,,,
#include <18F2550.h>
#DEVICE ADC=10
#fuses XTPLL,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN,NOPBADEN
#use delay(clock=48000000)
#define use_portb_lcd TRUE
//#define USB_CON_SENSE_PIN PIN_A4
#include <lcd.c>
#include "usb_cdc.h"
float luxsd;
long temper,luxs;
unsigned int temp,lux[2],recib,modo=0,hini=0,hini1=0,warning=0x0f;
signed int enc=0xff;
void usb_com()
{
if(usb_cdc_connected())
{
output_high(pin_c6);
output_low(pin_c7);
if (usb_enumerated())
{ warning=0;
if(usb_cdc_kbhit())
{
recib=usb_cdc_getc();
if(recib==0x31)
{
usb_cdc_putc(temp);
usb_cdc_putc(lux[0]);
usb_cdc_putc(lux[1]);
}
if(recib==0x32)
{
output_HIGH(pin_A3);
//lcd_putc("\fInt Luz");
//lcd_putc("\n Temp: C lux");
enc=1;
}
if(recib==0x33)
{
output_low(pin_A3);
lcd_putc("\f");
enc=0xff;
}
if(recib==0x34)
{
usb_cdc_putc(0x0f);
usb_cdc_putc(0x0f);
usb_cdc_putc(0x0f);
}
if(recib==0x35)
{
output_high(pin_c7);
output_low(pin_c6);
}
if(recib==0x36)
{
/*lcd_putc("\f Inicio de Insp");
lcd_putc("\nen Base de Datos");
delay_ms(200);
lcd_putc("\fInt Luz");
lcd_putc("\n Temp: C lux");*/
}
if(recib==0x37)
{
/*lcd_putc("\f Termino Insp");
lcd_putc("\nen Base de Datos");
delay_ms(2000);
lcd_putc("\fInt Luz");
lcd_putc("\n Temp: C lux");*/
}
}
}
}
}
void adquisicion()
{
set_adc_channel(0);
delay_us(10);
luxs = read_adc();
delay_us(60);
set_adc_channel(1);
delay_us(10);
temper = read_adc();
delay_us(60);
luxsd = (((0.00000000000006) * (luxs ^ 6)) - ((0.0000000002) * (luxs ^ 5)) + ((0.0000004) * (luxs ^ 4)) - ((0.0003) * (luxs ^ 3)) + ((0.119) * (luxs ^ 2)) - (26.409 * luxs) + 2632);
temp= temper*0.48828125;
lux[0]=make8(luxs,0);
lux[1]=make8(luxs,1);
/*
if (temp>=100)
{
lcd_gotoxy(7,2);
printf(lcd_putc,"%d",temp);
}
if (temp>=10)
{
lcd_gotoxy(7,2);
printf(lcd_putc," %d ",temp);
}
else
{
lcd_gotoxy(7,2);
printf(lcd_putc," %d ",temp);
}
//if (luxs>=100000)
// {lcd_gotoxy(9,1);
//printf(lcd_putc,"%ld",luxs);}
if (luxs>=10000)
{
lcd_gotoxy(9,1);
printf(lcd_putc," %f",luxsd);
}
if (luxs>=1000)
{
lcd_gotoxy(9,1);
printf(lcd_putc," %f ",luxsd);
}
if (luxs>=100)
{
lcd_gotoxy(9,1);
printf(lcd_putc," %f ",luxsd);
}
if (luxs>=10)
{
lcd_gotoxy(9,1);
printf(lcd_putc," %f ",luxsd);
}
else
{
lcd_gotoxy(9,1);
printf(lcd_putc," %f ",luxsd);
} */
}
void main()
{
set_tris_a(0x03);
setup_adc_ports(AN0_TO_AN1);
setup_adc(ADC_CLOCK_INTERNAL );
output_high(pin_c7);
output_low(pin_c6);
output_low(pin_A3);
/*lcd_init();//inicializamos el USB
lcd_putc("\fLuxometroDigital");
lcd_putc("\n Mesalud Ltda");*/
while(true)
{
if (input(pin_c0) == 1)
{
if (input(pin_c1) == 1)
{
if(warning==0 && hini1==1)
{
usb_cdc_putc(0xff);
usb_cdc_putc(0x36);
usb_cdc_putc(0x36);
warning=1;
}
/*lcd_putc("\f Desconecte USB");
lcd_putc("\n o La Bateria");*/
delay_ms(2000);
/*lcd_putc("\fEl Equipo Puede");
lcd_putc("\n Sufrir Danos");*/
delay_ms(2000);
hini=0;
enc=0xff;
}
else
{
warning=0;
if(hini==0)
{
//lcd_putc("\fLuxometroDigital");
//lcd_putc("\n Mesalud Ltda");
}
hini=1;
modo=0x0f;
}
}
else
{
modo=0xf0;
warning=0;
output_low(pin_a2);
if(hini==0)
{
//lcd_putc("\fLuxometroDigital");
//lcd_putc("\n Mesalud Ltda");
}
hini=1;
if(hini1==0)
{
usb_cdc_init();
usb_init_cs();
hini1=1;
}
}
if (hini==1)
{
if(input(pin_c2))
{
delay_ms(200);
enc=enc*-1;
if(enc==1)
{
output_HIGH(pin_A3);
//lcd_putc("\fInt Luz");
//lcd_putc("\n Temp: C lux");
usb_cdc_putc(0xff);
usb_cdc_putc(0x32);
usb_cdc_putc(11);
}
else
{output_LOW(pin_A3);
usb_cdc_putc(0xff);
usb_cdc_putc(0x33);
usb_cdc_putc(11);
//lcd_putc("\f");
}
}
}
if(enc==1)
{
if (modo==0x0f)
{
output_high(pin_a2);
adquisicion();
}
if(modo==0xf0)
{
usb_task();
adquisicion();
usb_com();
}
}
else
{
output_low(pin_a2);
if(modo==0xf0)
{
usb_task();
usb_com();
}
}
}
}
con solo lcd_init() ya se bloquea....
gracias y espero su ayuda............