02.11.2014 Views

BÖLÜM 4 – KAREKTER LCD ve ADC İŞLEMLERİ - 320Volt

BÖLÜM 4 – KAREKTER LCD ve ADC İŞLEMLERİ - 320Volt

BÖLÜM 4 – KAREKTER LCD ve ADC İŞLEMLERİ - 320Volt

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>ADC</strong> birimi kesmeleri ise ADIE <strong>ve</strong> ADIF bitleri ile kontrol edilir.<br />

<strong>ADC</strong> birimini çalıştırmak için aşağıdaki adımlar izlenir;<br />

- Hangi pin kullanılacaksa o seçilir,<br />

- <strong>ADC</strong> modülü açılır,<br />

- Kesme kullanılacaksa, gerekli birimler ayarlanır,<br />

- Yaklaşık 20us beklenir,<br />

- Çevrim başlatılır (ADGO=1),<br />

- Çevrimin bitmesi beklenir,<br />

- ADRESH <strong>ve</strong> ADRESL, ADFM bitinin durumuna göre okunur.<br />

4.2.1) İlk <strong>ADC</strong> Uygulaması<br />

<strong>ADC</strong> biriminin nasıl çalıştığını öğrendikten sonra ilk uygulamamızda ilk iki analog kanalına<br />

bağlı potlardan okunan 0-5V arasındaki voltajların <strong>LCD</strong>’de görünmesi <strong>ve</strong> kesmeden<br />

faydalanarak her çevrim kesimine gidildiğinde RC5’e bağlı ledin yanıp sönmesi<br />

amaçlanmaktadır. Şimdi şekil-48’deki devremizi çizelim <strong>ve</strong> gerekli hesaplamalarımızı yapalım.<br />

Şekil 48– İlk <strong>ADC</strong> Denemesi<br />

16f877’de <strong>ADC</strong> 10 bitlik derinliğe sahiptir, referans voltajımızın maksimum 5V olduğunu<br />

düşünürsek;<br />

5/1024=0.0048=0.005 yapar. Virgülden sonra iki basamak görmek istiyorsak bu değeri 3 kere<br />

sola ötelediğimizde yani 0.5 yapmalıyız. Böylelikle değerleri sırasıyla 1000’e, 1000’e<br />

bölümden kalanı 100’e, 100’e bölümden kalanı 10’a sonunda da 10’a bölümden kalanı alarak<br />

sağlayabiliriz. Böylelikle ondalıklı sayıları da rahatça görebiliriz. Tüm bunları yapan C kodu ise<br />

aşağıdaki şekilde olacaktır.<br />

FxDev.org Sayfa 16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!