Anda di halaman 1dari 7

PRAKTIKUM 6

APLIKASI ADC PADA ATmega 8535

6.1 TujuanInstruksionalKhusus
 Dapat mengetahui cara mengakses ADCpadamikrokontroler AVR
 Dapat melakukan pemrogramanmikrokontroleruntukfungsiakses ADC
padamikrokontroler AVR

6.2 Dasar Teori


Pada mikrokontroler AVR terdapat fitur ADC yang dapat digunakan untuk
melakukan pembacaan tegangan analog ke dalam bentuk digital sehingga ADC
banyak digunakan dalam perancangan alat ukur digital. Secara umum, proses
inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, format
output data, dan mode pembacaan.

Register ADMUX
Register yang perlu diset nilainya adalah ADMUX (ADC Multiplexer
Selection Register), ADCSRA (ADC Control and Status Register), dan SFIOR
(Special Function IO Register). ADMUX merupakan register 8 bit yang berfungsi
menentukan tegangan referensi ADC, format data output, dan saluran ADC yang
digunakan.

Untuk memilih channel ADC yang digunakan (single ended atau


diferensial), dilakukan dengan mengatur nilai MUX4 :0. Misalnya channel ADC0
sebagai input ADC, maka MUX4 :0 diberi nilai 00000B. Informasi lebih
lengkapdapat dilihat pada datasheet mikrokontroler yang dipakai.

44
Konfigurasi ADC
Tegangan referensi ADC dapat ditentukan antara lain dari pin AREF, pin
AVCC atau menggunakan tegangan referensi internal mikrokontroler sebesar
2.56V. Agar fitur ADC mikrokontroler dapat digunakan maka ADEN (ADC
Enable, dalam I/O register ADCSRA) harus diberi nilai 1. Setelah konversi selesai
(ADIF high), hasil konversi dapat diperoleh pada register hasil (ADCL,
ADCH).Untuk konversi single ended, hasilnya ialah :

VIN ialah tegangan pada input yang dipilih dan VREF merupakan
tegangan referensi. Jika hasil ADC =000H, maka menunjukkan tegangan input
sebesar 0V, jika hasil ADC=3FFH menunjukkan tegangan input sebesar tegangan
referensi dikurangi 1 LSB. Sebagai contoh, jika diberikan VIN sebesar 0.2V
dengan VREF 5V, maka hasil konversi ADC ialah 41. Jika menggunakan
differensial channel, hasilnya ialah 40.96, yang bila digenapkan bisa sekitar
39,40,41 karena ketelitian ADC ATmega 16 sebesar +- 2LSB. Jika yang
digunakan saluran diferensial, maka hasilnya ialah :

VPOS ialah tegangan pada input pin positif, VNEG ialah tegangan input
pada pin negatif, GAIN ialah faktor penguatan dan VREF ialah tegangan referensi
yang digunakan.

6.3 Daftaralatdanbahan
1. Software Proteus 7
2. Software CV AVR
3. Modul DI-Smart AVR
3. Unit Komputer

45
6.4 Keselamatan Kerja
1. Menggunakanpakaianpraktikumdenganbaikdanrapi
2. Sambungkanperangkat-perangkat yang
digunakansesuaidenganpetunjukpembimbingpraktikum
3. Jalankansistemsetelahmendapatizindaripembimbingpraktikum.

6.5. Gambar Kerja

Gambar 6.1RangkaianMikrokontroler

46
Gambar 6.2. Setting ADC dan LCD

Tabel 6.1 pengaturan nilai reristansi pada potensio meter


Pot 1 Pot 2 Pot 3 Pot 4 Pot 5 Pot 6 Pot 7
15 % 20% 40% 50% 60% 80% 100%

6.6 Program Mikrokontroler

Program 1.

#include <mega8535.h>
#include <stdio.h>

// Alphanumeric LCD Module functions


#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#include <delay.h>

47
#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


unsigned char temp[30];

void main(void)
{
// Declare your local variables here

// ADC initialization
// ADC Clock frequency: 1000.000 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;
ADCSRA=0x83;
SFIOR&=0xEF;

// LCD module initialization


lcd_init(16);

while (1)
{
// Place your code here
lcd_gotoxy(0,0);
sprintf(temp,"Data ADC0 = %d ",read_adc(0));
lcd_puts(temp);
delay_ms(1000);
lcd_gotoxy(0,0);
sprintf(temp,"Data ADC1 = %d ",read_adc(1))
lcd_puts(temp);
delay_ms(1000);
lcd_gotoxy(0,0);
sprintf(temp,"Data ADC2 = %d ",read_adc(2));
lcd_puts(temp);
delay_ms(1000);
lcd_gotoxy(0,0);
sprintf(temp,"Data ADC3 = %d ",read_adc(3));

48
lcd_puts(temp);
delay_ms(1000);
lcd_gotoxy(0,0);
sprintf(temp,"Data ADC4 = %d ",read_adc(4));
lcd_puts(temp);
delay_ms(1000);
lcd_gotoxy(0,0);
sprintf(temp,"Data ADC5 = %d ",read_adc(5));
lcd_puts(temp);
delay_ms(1000);
lcd_gotoxy(0,0);
sprintf(temp,"Data ADC6 = %d ",read_adc(6));
lcd_puts(temp);
delay_ms(1000);
lcd_gotoxy(0,0);
sprintf(temp,"Data ADC7 = %d ",read_adc(7));
lcd_puts(temp);
delay_ms(1000);
};
};

6.7 LangkahPercobaan

a. BukaAplikasi Proteus
b. Buatlahdesainsepertipadagambar6.1 dansimpanlahdesaintersebut
c. Buka program Code Vision AVR
d. Buatlah project baru. Padasaatmengeset chip, clock, ADC, set jugaLCD
menggunakan PORTC, sepertipadagambar6.2
e. Kemudiansimpanlah file tersebut.
f. Perhatikan program C yang dihasilkanpada CV AVR,
lengkapiprogramnyadenganperintah-perintah yang
bercetaktebalsepertipada program 1.
g. Lakukancompilasidan build Allterhadap program yang telahdibuat,
periksadanperbaiki error bilaada.
h. Download program hasilkompilasi .HEX kedalam chip
mikrokontrolerpadaaplikasi Proteus
i. Start proteusdanatur potensio meter 1 hingga 7 sesuai dengan tabel 6.1
j. Perhatikantampilan LCD dancatatpada table 6.2
k. Lakukan analisis data dan buatlah kesimpulan-kesimpulan yang
diperoleh

49
6.8 Data
Tabel 6.2 Data Percobaan ADC

Satuanwaktu Baris Tampilan LCD (kolom)


0 1 2 3 4 5 6 7 8 9 A B C D E F
Baris 1 D a t a A D C 0 = 2 5 5
1
Baris 2
Baris 1 D a t a A D C 1 = 2 0 4
2
Baris 2
Baris 1 D a t a A D C 2 = 1 5 3
3
Baris 2
Baris 1 D a t a A D C 3 = 1 2 8
4
Baris 2
Baris 1 D a t a A D C 4 = 1 0 2
5
Baris 2
Baris 1 D a t a A D C 5 = 5 1
6
Baris 2
Baris 1 D a t a A D C 6 = 3 8
7
Baris 2
Baris 1 D a t a A D C 7 = 0
8
Baris 2
Baris 1 D a t a A D C 0 = 2 5 5
9
Baris 2

6.9 Pertanyaan
a. Lakukan analisis terhadap hasil percobaan
b. Buatlah kesimpulan terhadap hasil analisis yang telah dilakukan

50

Anda mungkin juga menyukai