Anda di halaman 1dari 26

Menggunakan fitur

ANALOG TO DIGITAL
CONVERTER
Fitur ADC dalam ATMega8535

 10-bit Resolution
 ±2 LSB Absolute Accuracy
 65 - 260 µs Conversion Time
 8 Multiplexed Single Ended Input Channels
 Optional Left Adjustment for ADC Result Readout
 0 - VCCADC Input Voltage Range
 Selectable 2.56V ADC Reference Voltage
 Free Running or Single Conversion Mode
 ADC Start Conversion by Auto Triggering on Interrupt
Sources
 Interrupt on ADC Conversion Complete
Blok diagram ADC

 ..\..\Datasheet\atmega8535 lengkap.pdf
Inisialiasi ADC

 Penentuan clock
 Tegangan referensi
 Format data output
 Mode pembacaan
Inisialisasi ini dilakukan pada register-register :
 ADMUX
 ADCSRA
 SFIOR
ADMUX (ADC Multiplexer
Selection Register)
REFS0-1 (Reference Selection Bits)

 REFS0-1 adalah bit-bit pengatur mode tegangan


referensi ADC.
ADLAR (ADC Left Adjust Result)

 ADLAR adalah bit keluaran ADC. Jika ADC telah


selesai konversi, maka data ADC akan diletakkan di
2 register, yaitu ADCH dan ADCL dengan format
sesuai ADLAR
 Format data ADC jika ADLAR=0
ADLAR (ADC Left Adjust Result)
(continued)

 Format data ADC jika ADLAR=1


MUX0-4 (Analog Channel and
Gain Selection Bits)

 MUX0-4 adalah bit-bit pemilih saluran pembacaan


ADC
ADCSRA (ADC Control and Status
Register A)

 ADCSRA adalah register 8 bit yang berfungsi untuk


melakukan manajemen sinyal kontrol dan status
ADC.
 ADEN (ADC Enable)
ADEN merupakan bit pengatur aktivasi ADC. Jika
bernilai 1 maka ADC akan aktif.
 ADCS (ADC Start Conversion)
ADCS merupakan bit penanda dimulainya konversi
ADC. Selama konversi berlogika 1 dan akan
berlogika 0 jika selesai konversi.
 ADATE (ADC Auto Trigger Enable)
ADATE merupakan bit pengatur aktivasi picu
otomatis. Jika bernilai 1 maka konversi ADC akan
dimulai pada saat tepi positif pada sinyal trigger
yang digunakan.
 ADIF (ADC Interrupt Flag)
ADIF merupakan bit penanda akhir konversi ADC.
Jika bernilai 1 konversi ADC pada suatu saluran
telah selesai dan siap diakses
 ADIE (ADC Interrupt Enable)
ADIE merupakan bit pengatur aktivasi interupsi. Jika
bernilai 1 maka interupsi penandaan telah selesai.
Konversi ADC diaktifkan
ADC Auto Trigger Logic
 ADPS0-2 (ADC Prescaler Select Bit)
ADPS0-2 merupakan bit pengatur clock ADC
SFIOR (Special Function IO
Register)

 SFIOR adalah register 8 bit yang mengatur sumber


pemicu ADC. Jika bit ADATE pada register ADCSRA
bernilai 0 maka ADTS0-2 tidak berfungsi.
Rangkaian pembagi
tegangan

 Vout= R2 x Vcc
R1+R2
Program untuk ADC

 Buka program Code Vision AVR


 Buatlah project baru.
 #define ADC_VREF_TYPE 0x60
 // Read the 8 most significant bits
 // of the AD conversion result
 unsigned char read_adc(unsigned char adc_input)
 {
 ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
 // Delay needed for the stabilization of the ADC input voltage
 delay_us(10);
 // Start the AD conversion
 ADCSRA|=0x40;
 // Wait for the AD conversion to complete
 while ((ADCSRA & 0x10)==0);
 ADCSRA|=0x10;
 return ADCH;
 }
 // ADC initialization
 // ADC Clock frequency: 31.250 kHz
 // ADC Voltage Reference: AVCC pin
 // ADC High Speed Mode: Off
 // ADC Auto Trigger Source: Free Running
 // Only the 8 most significant bits of
 // the AD conversion result are used
 ADMUX=ADC_VREF_TYPE & 0xff;
 ADCSRA=0xA7;
 SFIOR&=0x0F;
 Deklarasi variabel hasil konversi ADC.

 // Declare your local variables here


 unsigned char adcdt;
 Tuliskan script berikut dalam program utama:

 while (1)
 {
 // Place your code here
 adcdt=read_adc(0); //mengambil hasil konversi
// PORTA.0
 PORTC=adcdt; //ditampilkan ke LED
 }
 Untuk input satu kaki

 Untuk input diferensial

Anda mungkin juga menyukai