#include<16F877A.h>
#device ADC=10 //ตั้งการใช้งาน module ADC 10 bits
#define CLOCK_SP 20000000 // ความเร็วสัญญาณนาฬิกา
#fuses HS // โหมดการทำงานแบบ High Speed
#fuses NOLVP,NOWDT // No Low Voltage Program, No Watchdog timer
#fuses NOPROTECT // Code no protection
#use delay (clock=CLOCK_SP) // ใช้งานฟังก์ชัน delay_ms() & delay_us()
#use rs232(baud=9600,xmit= PIN_C6,rcv= PIN_C7 ) // ใช้งาน module RS232
void main(void){
int16 A; //ประกาศตัวแปร A เป็น integer 16 bits
float Volts; //ประกาศตัวแปร Volts เป็น floating point number
SETUP_ADC(ADC_CLOCK_INTERNAL); //กำหนดสัญญาณนาฬิกาในการแปลงA/D
SETUP_ADC_PORTS(ALL_ANALOG); //กำหนด port การใช้งาน A/D
while(true){
set_adc_channel(1); //กำหนดช่องการแปลง A/D
A = read_adc(); //เก็บค่าการแปลงไว้ตัวแปร A (0-1023)
Volts = ((float)A * 5)/1023; //แปลงค่าจำนวนบิต เป็น โวลต์
printf("%lu %.3f\r\n",A,Volts); //แสดงค่าผ่าน RS232 (จำนวนบิต โวลต์)
}
}