6.1 TujuanInstruksionalKhusus
Dapat mengetahui cara mengakses ADCpadamikrokontroler AVR
Dapat melakukan pemrogramanmikrokontroleruntukfungsiakses ADC
padamikrokontroler AVR
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.
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.
Gambar 6.1RangkaianMikrokontroler
46
Gambar 6.2. Setting ADC dan LCD
Program 1.
#include <mega8535.h>
#include <stdio.h>
47
#define ADC_VREF_TYPE 0x60
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;
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
6.9 Pertanyaan
a. Lakukan analisis terhadap hasil percobaan
b. Buatlah kesimpulan terhadap hasil analisis yang telah dilakukan
50