TUJUAN PRAKTIKUM
1. Praktikan dapat memahami proses Interupsi Eksternal dalam program AVR.
2. Praktikan dapat memahami proses ADC Interupsi Eksternal dalam program AVR.
3. Praktikan dapat menggunakan model kit fisik ATMEGA8535 serta program Proteus untuk
simulasi skematik rangkaian ATMEGA8535.
B. LANGKAH PRAKTIKUM
1. Percobaan Interupsi Eksternal
Dimasukan program ke Code Vision AVR dengan kode seperti dibawah :
#include <mega8535.h>
unsigned char led=0;
void main (void)
{
DDRC=0xFF;
PORTC=led;
GICR|=0x40;
MCUCR=0x02;
GIFR=0x80;
#asm("sei")
while (1);
}
interrupt [EXT_INT0] void ext_int0_isr (void)
{
led++;
PORTC=~led;
if (led>>255)
{
led=0;
}
}
Jalankan dan amati hasil keluaran dalam modul kit LED 0-7 ATMEGA8535.
2. Percobaan ADC Interupsi Eksternal Kode (baca_adc)
#include <mega8535.h>
#define mode_ADC 0x20
unsigned char baca_adc (unsigned char pin_adc)
{
ADMUX=pin_adc |mode_ADC;
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
void main(void)
{
DDRC=0xFF;
ADMUX=mode_ADC;
ADCSRA=0x85;
while (1)
{
PORTC=~baca_adc(0);
}
}
Dimasukan program ke Code Vision AVR dengan kode yang dibuat terlebih dahulu, kode yang
digunakan adalah pengembangan dari kedua percobaan sebelumnya. Dari hasil pengembangan
didapatkan kode seperti dibawah :
#include <mega8535.h>
#define mode_ADC 0x20
unsigned char mode=0;
unsigned char mode2=0;
unsigned char baca_adc (unsigned char pin_adc)
{
ADMUX=pin_adc |mode_ADC;
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
void main (void)
{
DDRC=0xFF;
PORTC=0xFF;
DDRB=0xFF;
PORTB=0xFF;
GICR|=0x80;
MCUCR=0x02;
GIFR=0x80;
#asm("sei")
ADMUX=mode_ADC;
ADCSRA=0x85;
while (1)
}
interrupt [EXT_INT1] void ext_int1_isr (void)
{
mode++;
switch(mode)
{
case 0x01 : PORTC=~baca_adc(1) ; break;
case 0x02 : PORTC=~baca_adc(0) ; break;
}
switch(mode)
{
case 0x01 : PORTB=0x80; break;
case 0x02 : PORTB=0x40; break;
}
if(mode==2)
{
mode=0;
}
}
Dengan pengembangan kode seperti diatas dibuat rangkaian skematik dalam program Proteus
seperti dibawah.
Gambar 2. Skematik Proteus Program ADC Interupsi Eksternal Dengan Modus Pilih (ext_int1)
C. Tugas Praktikum
1. Percobaan Interupsi Eksternal
Pada percobaan pertama digunakan model kit AVR ATMEGA8535 sehingga tidak
terdapat penjelasan visual untuk menggambarkan keluaran program maka untuk lebih jelasnya
akan digunakan program Proteus untuk membahas hasil penjalanan program seperti langkah
diatas. Kode yang digunakan adalah seperti pada langkah percobaan 1:
Kode program interupsi eksternal yang digunakan dapat dibaca pada buku “C dan AVR Rahasia
Kemudahan Bahasa C dalam Mikrokontroler ATMega8535” Agus Bejo (217) dengan penjelasan
selengkapnya adalah sebagai berikut:
▪ Baris 7 digunakan untuk mengaktifkan interupsi eksternal 0 dengan cara mengeset bit6
register GICR. Sumber interupt ini berasal dari masukkan pin INT0.
▪ Baris 8 digunakan untuk mengatur mode pemicu terjadinya interupsi eksternal 0. Dengan
mengisi register MCUCR=02 berarti interupsi akan terjadi apabila terdapat transisi turun
pada pin INT0. Jadi apabila ada kondisi LOW (0) pada pin INT0 akan menyebabkan
program program melompat ke subrutin interupsi eksternal 0.
▪ Baris 9 digunakan untuk mereset bendera interupsi eksternal 0dengan cara mengeset bit6
register GIFR. Bendera interupsi eksternal 0 secara otomatis akan direset pada waktu
program melompat ke subrutin interupsi eksternal 0.
▪ Baris 13 sampai dengan baris 21 merupakan subrutin interupsi eksternal 0. Jadi blok
program inilah yang akan dikerjakan jika terjadi permintaan interupsi eksternal 0 (terjadi
perubahan/transisi turun pada pin INT0).
▪ Baris 15 digunakan untuk menaikkan isi variabel led (led=led+1).
▪ Baris 16 digunakan untuk menampilkan data variabel led ke port C.
▪ Baris 17 sampai dengan 20 digunakan untuk membatasi penambahan variabel led. Jika
sudah melebihi 255, variabel led kembali ke kondisi 0.
Dengan sedikit perbedaan yaitu dengan menggunakan interupsi eksternal 0 dan memberikan
pembatasan variabel led 0-255.
Penjalanan kode program menghasilkan keluaran pada skematik seperti gambar dibawah :
Gambar 9. Skematik Proteus Penjalanan Program ADC Interupsi Eksternal Dengan Modus
Pilih (ext_int1) ADC0
Gambar 10. Skematik Proteus Penjalanan Program ADC Interupsi Eksternal Dengan Modus
Pilih (ext_int1) ADC1
D. KESIMPULAN PRAKTIKUM
E. DAFTAR PUSTAKA
Agus Bejo. C dan AVR Rahasia Kemudahan Bahasa C dalam Mikrokontroler
ATMega8535. 2008. Graha Ilmu. Yogyakarta.