Soy nuevo en el foro y esta es mi primera contribucion
Es una aceleremetro donde use el ADLX345 con el 16F887 programado en PIC C de CCS
#INCLUDE <16F887.H>
#DEVICE ADC=12
#USE DELAY (CLOCK=20000000)
#USE RS 232(BAUD=57600,PARITY=N,XMIT=PIN_C6,RCV=PIN_C7,BITS=9)
#FUSES XT, NOLVP,NOPROTECT,NOPUT,NOBROWNOUT,NOWDT
#DEFINE USE_PORTD_LCD TRUE
#INCLUDE <LCD.C>
#BYTE PORTA=5
#BYTE PORTC=6
#BYTE PORTD=8
LONG X,Y,Z;
VOID MAIN()
{
SET_TRIS_A(255);
SET_TRIS_C(0B10000000);
SET_TRIS_D(0);
SETUP_ADC_PORTS(ALL_ANALOG);
SETUP_ADC(ADC_CLOCK_INTERNAL);
LCD_INIT();
PUTS("INICIA LECTURA");
DELAY_MS(50);
PUTS("DATOS RECIVIDOS");
WHILE(TRUE)
{
SET_ADC_CHANNEL(0);
DELAY_MS(1);
X=READ_ADC();
//Z=READ_ADC()*5.0/1024;
PUTS("");
LCD_PUTC("\f");
LCD_GOTOXY(1,1);
LCD_PUTC("DATO A PC ES:");
LCD_GOTOXY(1,2);
PRINTF(LCD_PUTC,"X=%Lu",X);
PRINTF("X=%Lu",X);
PUTS("");
DELAY_MS(10);
SET_ADC_CHANNEL(1);
DELAY_MS(10);
Y=READ_ADC();
//Y=READ_ADC()*5.0/1024;
LCD_GOTOXY(1,1);
LCD_PUTC("DATO A PC ES:");
LCD_GOTOXY(21,1);
PRINTF(LCD_PUTC,"Y=%Lu",Y);
PRINTF("Y=%Lu",Y);
PUTS("");
DELAY_MS(10);
//DELAY_MS(100);
SET_ADC_CHANNEL(2);
DELAY_MS(10);
Z=READ_ADC();
//Z=READ_ADC()*5.0/1024;
LCD_GOTOXY(1,1);
LCD_PUTC("DATO A PC ES:");
LCD_GOTOXY(21,2);
PRINTF(LCD_PUTC,"Z=%Lu",Z);
PRINTF("Z=%Lu",Z);
PUTS("");
DELAY_MS(500);
}
}
Espero le sirva a alguien