İstanbul escort bayan sivas escort samsun escort bayan sakarya escort Muğla escort Mersin escort Escort malatya Escort konya Kocaeli Escort Kayseri Escort izmir escort bayan hatay bayan escort antep Escort bayan eskişehir escort bayan erzurum escort bayan elazığ escort diyarbakır escort escort bayan Çanakkale Bursa Escort bayan Balıkesir escort aydın Escort Antalya Escort ankara bayan escort Adana Escort bayan

Ana Sayfa Elektronik Öğrenin Programlama genel C ile programlama uygulamaları-15

C ile programlama uygulamaları-15

0

ADC Uygulaması-1

AMAÇ:

Mikrodeneleyicilerin çalışma sistemini öğrenmek, C dili ile program yazabilme ve 16F877A entegresini programlayabilme yeteneğini kazanmak.

YAPILACAK İŞ:

ADC uygulamasının nasıl yapıldığını öğrenmek.

DENEYİN BAĞLANTI ŞEMASI

    PROGRAM KODU:

#include <16f877a.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#device ADC=10 // 10 bitlik ADC kullanılacağı belirtiliyor.

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#use fast_io(c) //Port yönlendirme komutları C portu için geçerli

#use fast_io(e) //Port yönlendirme komutları E portu için geçerli

#define use_portb_lcd TRUE // LCD B portuna bağlı

#include // lcd.c dosyası tanıtılıyor

#INT_AD // ADC çevrimi bitti kesmesi

void ADC_Kesmesi ( )

{

output_high(pin_c5); // RC5 çıkışı 1

delay_ms(200);

output_low(pin_c5); // RC5 çıkışı 0

}

unsigned long int bilgi; // İşaretsiz 16 bitlik tam sayı tipinde değişken tanımlanıyor

float voltaj; // ondalıklı tipte voltaj isminde değişken tanıtılıyor

//********** ANA PROGRAM FONKSİYONU*******

void main ( )

{

setup_psp(PSP_DISABLED); // PSP 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ışı

set_tris_c(0x00); // C portu komple çıkış

set_tris_e(0x0F); // E portu komple giriş

output_c(0x00); // C portu çıkışını sıfırla

setup_adc(adc_clock_div_32); // ADC clock frekansı fosc/32

setup_adc_ports(ALL_ANALOG); // Tüm AN girişleri analog

enable_interrupts(INT_AD); // AD çevrimi bitti kesmesi tanıtılıyor

enable_interrupts(GLOBAL); // Tüm kesmeler aktif

lcd_init(); // LCD hazır hale getiriliyor

printf(lcd_putc,”\f ADC UYGULAMASI “); // LCD’ye yazı yazdırılıyor

delay_ms(1500);

while(1) // sonsuz döngü

{

set_adc_channel(5); // RE0/AN5 ucundaki sinyal A/D işlemine tabi tutulacak

delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir

bilgi=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor

voltaj=0.0048828125*bilgi; // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor

printf(lcd_putc,”\fAN5 Kanali”);

delay_ms(1500);

printf(lcd_putc,”\fDijital=%lu”,bilgi); // AN5 ucundaki sinyalin dijital karşılığı LCD’ye aktarılıyor

printf(lcd_putc,”\nVoltaj=%fV”,voltaj); // AN5 ucundaki sinyalin gerilim değeri LCD’ye aktarılıyor

delay_ms(2500);

set_adc_channel(6); // RE1/AN6 ucundaki sinyal A/D işlemine tabi tutulacak

delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir

bilgi=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor

voltaj=0.0048828125*bilgi; // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor

printf(lcd_putc,”\fAN6 Kanali”);

delay_ms(1500);

printf(lcd_putc,”\fDijital=%lu”,bilgi); // AN6 ucundaki sinyalin dijital karşılığı LCD’ye aktarılıyor

printf(lcd_putc,”\nVoltaj=%fV”,voltaj); // AN6 ucundaki sinyalin gerilim değeri LCD’ye aktarılıyor

delay_ms(2500);

set_adc_channel(7); // RE2/AN7 ucundaki sinyal A/D işlemine tabi tutulacak

delay_us(20); // Kanal seçiminde sonra bu bekleme süresi verilmelidir

bilgi=read_adc(); // ADC sonucu okunuyor ve bilgi değişkenine aktarılıyor

voltaj=0.0048828125*bilgi; // Dijitale çevirme işlemine uğrayan sinyalin gerilimi hesaplanıyor

printf(lcd_putc,”\fAN7 Kanali”);

delay_ms(1500);

printf(lcd_putc,”\fDijital=%lu”,bilgi); // AN7 ucundaki sinyalin dijital karşılığı LCD’ye aktarılıyor

printf(lcd_putc,”\nVoltaj=%fV”,voltaj); // AN7 ucundaki sinyalin gerilim değeri LCD’ye aktarılıyor

delay_ms(2500);

}

}

İŞLEM BASAMAKLARI

1.Devreyi bord üzerine kurunuz.

2. Kodu yazıp derleyiniz.Hex kodunu Pice yükleyiniz.

3.Devrenin çalışmasını inceleyiniz.

 

YORUM YOK

CEVAP VER

Please enter your comment!
Please enter your name here

Exit mobile version