#include #include #include #include main (void) { // Değişken tanımlamaları const float lsb=5.0/1024.0; unsigned char gerilim, ust, alt; float sicaklik; unsigned char sonuc[]="SICAKLIK = "; // Port konfigürasyonu TRISB=0; // PORTB çıkış TRISA=1; // RA0 analog giriş // Ön LCD işlemleri DelayMs(250); // 250ms bekle lcd_init(); // LCD’yi hazırla lcd_clear(); // LCD'yi temizle // ADC ayarları ADCON1=0x8E; // AN0 analog giriş ADCON0=0x41; // A/D aktif for(;;){ // A/D çevrimi başlat ADCON0=0x45; // Dönüşümün bitmesini bekle while((ADCON0&4)!=0); // Dönüşüm sonucunu kaydet gerilim=ADRESH; gerilim=256*gerilim+ADRESL; // Sıcaklık bilgisini oluştur sicaklik=gerilim*lsb*100.0; // Tam ve ondalık kısımları ayır ust=(int)sicaklik; alt=(int)(10.0*(sicaklik-ust)); // LCD’ye yazdırma işlemlerini yap sprintf(sonuc+11,"%d.%dC ",ust,alt); // 1. satıra geç ve LCD’ye yaz lcd_goto(0x00); lcd_puts("Bilim ve Teknik"); // 2. satıra geç ve sıcaklık değerini yaz lcd_goto(0x40); lcd_puts(sonuc); // Biraz bekle ve ekranı temizle DelayMs(250); lcd_clear(); } // Ölçümü tekrarla } // Programın sonu