Anda di halaman 1dari 3

Analog-to-Digital Converter

Atmega8535

ATmega8535 menyediakan fasilitas ADC dengan resolusi 10 bit. ADC ini dihubungkan dengan 8
channel Analog Multiplexer yang memungkinkan terbentuk 8 input tegangan single- ended yang
masuk melalui pin pada PortA.

ADC memiliki pin supply tegangan analog yang terpisah yaitu AVCC. Besarnya tegangan AVCC
adalah ±0.3V dari VCC.

Tegangan referensi ADC dapat dipilih menggunakan tegangan referensi internal maupun
eksternal. Jika menggunakan tegangan referensi internal, bisa dipilih on-chip internal reference
voltage yaitu sebesar 2.56V atau sebesar AVCC. Jika menggunakan tegangan referensi
eksternal, dapat dihubungkan melalui pin AREF.

ADC mengkonversi tegangan input analog menjadi data digital 8 bit atau 10 bit. Data digital
tersebut akan disimpan didalam ADC Data Register yaitu ADCH dan ADCL. Sekali ADCL dibaca,
maka akses ke data register tidak bisa dilakukan. Dan ketika ADCH dibaca, maka akses ke data
register kembali enable.

Aplikasi 1. ADC 8 Bit, Tegangan Referensi adalah AVCC.


Pada aplikasi ini mikrokontroler akan membaca tegangan analog pada input ADC0 dan
menampilkan data hasil konversinya ke PORTC. Tegangan referensi ADC sama dengan AVCC.
SPI PORT
+5V MOSI
1 MISO
2 SCK
3 RESET U1
4 VCC 1 40
10K 5 PB.0 (XCK/T0) (ADC0) PA.0 Analog Input 0
GND 2 39
6 PB.1 (T1) (ADC1) PA.1 Analog Input 1
3 38
PB.2 (INT2/AIN0) (ADC2) PA.2 Analog Input 2
4 37
PB.3 (OC0/AIN1) (ADC3) PA.3 Analog Input 3
5 36
PB.4 (SS) (ADC4) PA.4 Analog Input 4
MOSI 6 35
PB.5 (MOSI) (ADC5) PA.5 Analog Input 5
S1 +5V MISO 7 34
PB.6 (MISO) (ADC6) PA.6 Analog Input 6
10uF/16V SCK 8 33
PB.7 (SCK) (ADC7) PA.7 Analog Input 7
9 32
10 RESET AREF 31 +5V
11 VCC GND 30
12 GND AVCC 29
13 XTAL2 (TOSC2) PC.7 28
XTAL 14 XTAL1 (TOSC1) PC.6 27
33pF PD.0 (RXD) PC.5
15 26
16 PD.1 (TXD) PC.4 25
17 PD.2 (INT2) PC.3 24
11.0592 MHz PD.3 (INT1) PC.2
18 23
33pF PD.4 (OC1B) (SDA) PC.1
19 22
20 PD.5 (OC1A) (SCL) PC.0 21
PD.6 (ICP1) (OC2) PD.7 220 LED

ATmega8535

Gambar 1 Rangkaian Aplikasi ADC Dengan Tegangan Referensi AVCC

Jika resolusi dipilih sebesar 8 bit, maka data digital akan disimpan pada ADCH. Berikut adalah
langkah percobaannya :

1. Pastikan pin AVCC terhubung ke VCC yaitu +5V.


2. Lakukan setting codewizard sebagai berikut :

AVR Application Note By Hendawan Soebhakti


Created on 19/11/2008 19:17:00 Page 1 of 3
3. Buat program sebagai berikut :
#include <mega8535.h>
#include <delay.h>
#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;
}

// Declare your global variables here

void main(void)
{
.
.
.
// ADC initialization
// ADC Clock frequency: 691,200 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;

AVR Application Note By Hendawan Soebhakti


Created on 19/11/2008 19:17:00 Page 2 of 3
ADCSRA=0x84;
SFIOR&=0xEF;

while (1)
{
// Place your code here
read_adc(0);
PORTC=ADCH;
};
}
4. Compile, download dan masukkan tegangan analog 0 s/d 5 V ke input ADC0.
5. Perhatikan apa yang terjadi pada LED.

AVR Application Note By Hendawan Soebhakti


Created on 19/11/2008 19:17:00 Page 3 of 3

Anda mungkin juga menyukai