ADC (Analog to Digital Converter) adalah fitur paling populer dari ATmega 8535. Dengan adanya fitur ini kita tidak perlu menggunakan ADC0804 untuk membaca sinyal analog. ATmega 8535 memiliki 8 channel input ADC. Hasil pembacaan ADC beresolusi maksimum 10 bit (hmmm... cukup presisi. Biasanya saya hanya menggunakan 8 bit biar gak bingung ngitungnya.. He3...)
Register-Register yang mempengaruhi ADC:
Berikut adalah daftar register untuk menentukan setting ADC
Register ADMUX
Register ADMUX digunakan untuk:
menentukan tegangan referensi dari ADC
menentukan format data hasil konversi ADC
menentukan channel ADC yg akan digunakan (Ingat!! ATmega 8535 memiliki 8 channel ADC )
Berikut isi dari register ADMUX:
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 REFS1 REFS0 ADLAR - MUX3 MUX2 MUX1 MUX0
Bit 7 (REFS1) dan bit 6(REFS0) digunakan untuk menentukan tegangan referensi ADC.
Bit 7 Bit 6 Tegangan Referensi 0 0 pin AREF, internal Vref di matikan (off)
0 1 pin AVCC, dengan kapasitor eksternal pada pin AREF
1 0 tidak digunakan
1
1tegangan referensi internal 2,56 V dengan kapasitor eksternal pada pin AREF
Bit 5 (ADLAR) digunakan untuk menentukan format data hasil konversi.
Isi bit ini dengan 1 (ADLAR=1)jika menggunakan resolusi 8 bit
Bit 3..0 (MUX3..0) digunakan untuk menentukan channel ADC
Bit 3 Bit 2 Bit 1 Bit 0 Channel ADC 0 0 0 0 0 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7
Contoh:
tegangan referensi ADC menggunakan AVCC, mode 10 bit, membaca channel 1
maka programnya:
ADMUX=0x41;
Register ADCSRA
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0
Bit 7 (ADEN) untuk mengaktifkan ADC. ADEN=0 disable / ADEN=1 enable
Bit 6 (ADSC) untuk memulai (start) pembacaan ADC.
Bit 5 (ADFR) jika ADFR=1 free running mode , ADFR=0 single conversion
Bit 4 (ADIF) bit penanda interupsi. Bernilai 1 saat konversi ADC selesai.
Bit 3 (ADIE) berfungsi untuk mengaktifkan interupsi ADC. ADIE=1 enable / ADIE=0 disable
Bit 2..0(ADPS2..0) menentukan clock ADC
Bit 2 Bit 1 Bit 0 Clock 0 0 0 XTAL / 2 0 0 1 XTAL / 2 0 1 0 XTAL / 4 0 1 1 XTAL / 8 1 0 0 XTAL /16 1 0 1 XTAL / 32 1 1 0 XTAL / 64 1 1 1 XTAL / 128
Register ADCL dan ADCH
merupakan 2 register tempat menampung hasil pembacaan ADC
untuk mengambil nilai nya gunakan ADCW(mode 10 bit) dan ADCH (mode 8 bit)
misal:
adc_data=ADCH; //memasukkan nilai ADC mode 8bit ke variable adc_data
Saat akan menggunakan ADC, hal yang pertama harus di lakukan adalah ADC initialization / inisialisasi ADC (menentukan mode ADC).
contoh inisialisasi ADC:
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=0x40;
ADCSRA=0x85;
SFIOR&=0xEF;
nyampe sini dulu ya kenalan ma ADCnya,,, ntar dismbung lagi ... ngantuk berat nwech.....^_^
any questions?? post comment on this blog: http:\\avrku.blogspot.com
or send email to: zigan@ymail.com
CodeVisionAVR C Compiler is copyright by Pavel Haiduc, HP InfoTech s.r.l.
AVR is a registered trademark of Atmel Corporation
No comments:
Post a Comment