#include <16f877.h> //
/
#device ADC=10 // 10 bitlik ADC kullanılacağız
// ayarlar
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000) //Kullandığımız Osilatörün Clock frekansı
#use fast_io(a)
#define use_portb_lcd TRUE // LCD B portunda
#include <lcd.c>
unsigned long int ad1; // ADC den ölçülecek değer
float voltaj,sicaklik;
void main ( )
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
setup_adc(adc_clock_div_32);
// ADC clock frekansı Clock/32
setup_adc_ports(AN0); //AN0 dan ölçüm yapacağız.
//RA0/AN0 girişi analog
lcd_init();
set_adc_channel(0);
// RA0/AN0 ucundaki sinyal A/D işlemine tabi tutulacak
delay_us(20);
printf(lcd_putc,"Sicaklik "); // LCD'ye yazı yazdırılıyor
while(1)
// sonsuz döngü
{
delay_ms(50);
ad1=read_adc();
voltaj=(0.0048828125*ad1)*1000; //Dijitale çevrilmiş değerin mV değerini hesaplıyoruz.
delay_ms(500);
sicaklik=(voltaj/2);
printf(lcd_putc,"%5.1f'C",sicaklik); // LCD'ye sıcaklık değeri yazdırılıyor
}