Este es el codigo, como podeis ver es muy simple, esta hecho para CCS:
#include <16F886.h>
#device adc=10
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPUT //No Power Up Timer
#FUSES MCLR //Master Clear pin enabled
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES NOBROWNOUT //No brownout reset
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOWRT //Program memory not write protected
#FUSES BORV40 //Brownout reset at 4.0V
#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#define delay 25
void main()
{
int8 a=0;
unsigned int16 recbuf[11];
unsigned int16 recbuf_ant[11];
setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
while(TRUE)
{
set_adc_channel(0);
delay_us(delay);
recbuf[0]=read_adc();
set_adc_channel(1);
delay_us(delay);
recbuf[1]=read_adc();
set_adc_channel(2);
delay_us(delay);
recbuf[2]=read_adc();
set_adc_channel(3);
delay_us(delay);
recbuf[3]=read_adc();
set_adc_channel(4);
delay_us(delay);
recbuf[4]=read_adc();
set_adc_channel(
;
delay_us(delay);
recbuf[5]=read_adc();
set_adc_channel(9);
delay_us(delay);
recbuf[6]=read_adc();
set_adc_channel(10);
delay_us(delay);
recbuf[7]=read_adc();
set_adc_channel(11);
delay_us(delay);
recbuf[8]=read_adc();
set_adc_channel(12);
delay_us(delay);
recbuf[9]=read_adc();
set_adc_channel(13);
delay_us(delay);
recbuf[10]=read_adc();
for(a=0;a<=10;a++)
{
if(recbuf[a]!=recbuf_ant[a])
{
printf("recbuf[%d]=%Lu\r\n",a,recbuf[a]);
recbuf_ant[a]=recbuf[a];
}
}
}
}
Saludos