INTERUPT
( Laporan
Praktikum Mikrokontroler)
ABSTRAK
Telah dilakukan
percobaan Interupt dengan
mikrokontroler Atmega 16. Percobaan ini bertujuan agar mahasiswa dapat
mengetahui dan memahami suatu komponen elektronika dalam hal ini
Mikrokontroler. Mahasiswa dapat merancang sebuah rangkaian elektronika
menggunkan Mikrokontroler. Mahasiswa mampu membangun ranbgkaian Mikrokontroler
menggunakan simulasi berbasis program pada Proteus.7
dan CVAVR. Mahasiswa dapat merancang
sebuah rangkain Mikrokontroler menggunakan LED dengan interupt. Interrupt atau
interupsi adalah proses dalam komputer untuk meminta dilayani oleh
mikroprosesor sesuai dengan tingkat prioritasnya yang telah diatur sedemikian
rupa oleh sistem hardware computer. Mikrokontroler
merupakan suatu komponen elektronika yang didalamnya terdapat rangkaian
mikroprosesor, memori (RAM/ROM) dan I/O, rangkaian tersebut terdapat dalam
level chip atau biasa disebut single chip microcomputer. Pada mikrokontroler
sudah terdapat komponen-komponen mikroprosesor dengan bus-bus internal yang
saling berhubungan. Komponen–komponen tersebut adalah RAM, ROM, Timer, komponen
I/O paralel dan serial, dan interrupt controller. Dalam percobaan ini dapat
diambil kesimpulan bahwa dalam percobaan ini mikrokontroler
mampu mengontrol LED berjalan dengan interupt, dan dalam percobaan ini interupt
berhasil dimanfaat sesuai dengan program yang dibuat seperti led off dan led blink.
DAFTAR ISI
Halaman
LEMBAR
PENGESAHAN ......................................................................... i
ABSTRAK
....................................................................................................
ii
DAFTAR
ISI
................................................................................................. iii
DAFTAR GAMBAR
.................................................................................... iv
I.
PENDAHALUAN
A. Latar
Belakang .................................................................................... 1
B.
Tujuan
.................................................................................................. 2
II. TINJAUAN PUSTAKA
A.
Mikrokontroler ...................................................................................... 3
B. ATMEGA8535
...................................................................................... 4
C. Dioda ...................................................................................................... 4
D. Bilangan
Biner
....................................................................................... 5
E.
Pengertian Interupt .................................................................................. 7
III. PROSEDUR PERCOBAAN
A. Alat dan Bahan
....................................................................................... 9
B. Prosedur Percobaan
................................................................................. 9
IV. HASIL DAN PEMBAHASAN
V. KESIMPULAN
DAFTAR
PUSTAKA
LAMPIRAN
DAFTAR GAMBAR
Gambar Halaman
1.
Laptop
............................................................................................. 9
2.
Proteus 7 .......................................................................................... 9
3.
Program CVAVR
............................................................................ 9
4.
Mikrokontroler dengan Interupt ......................................................
12
5.
Program dengan
Interupt .................................................................
12
6.
MCUCR .......................................................................................... 13
7.
Bit MCUCR .................................................................................... 14
8.
MCUCSR ........................................................................................
14
9.
GICR .............................................................................................. 15
10. Rangkaian Mikrokontroler dengan Interupt ....................................
16
11. Led Walk .........................................................................................
18
12. Led Off ............................................................................................
18
13. Led Blink .........................................................................................
19
I.
PENDAHULUAN
A.
Latar Belakang
Pada umunya dalam dunia
elektronika dan instrumentasi hanya ada 2 macam mikrokontroller yang dikenal.
Pembagian mikrokontroler ini didasarkan
pada kompleksitas instruksi-instruksi yang dapat diterapkan pada mikrokontroler
tersebut. Adapun dua jenis dari mikrokontroler itu adalah RISC dan CISC. RISC
merupakan kepanjangan dari Reduced
Instruction Set Computer. Instruksi yang dimiliki terbatas, tetapi memiliki
fasilitas yang lebih banyak Sebaliknya, CISC kepanjangan dari Complex Instruction Set Computer. Pada
jenis mikrokontroler ini Instruksi bisa dikatakan lebih lengkap dibandingkan
dengan RISC tapi CISC memiliki fasilitas secukupnya. Masing-masing dari jenis
mikrokontroler ini mempunyai keturunan atau keluarga sendiri-sendiri.
Dalam dunia elektronika,
penggunaan mikrokontroler dalam pembuatan rangkaian-rangkaian elektronika
tidaklah sulit dalam pengaplikasiannya karna dalam perancangan suatu rangkaian
elektronika tidak langsung dibuat dalam bentuk hardwere melainkan dapat dibuat
simulasi terlebih dahulu. Proses pembuatan simulasi ini dilakukan bertujuan
untuk mengecek kondisi dari rangkaian yang akan dibuat. Pada pembuatan simulasi
suatu rangkaian elektronika ini dapat digunakan suatu program yang dapat
memberikan fasilitas dalam perancangan suatu rangkaian yaitu program proteus.7 dan CVAVR untuk pembuatan program yang dibutuhkan oleh rangkaian yang
kita buat.
Mikrokontroler dapat
diaplikasikan pada LED. Light Emiting Diode (Dioda
Emisi Cahaya) atau yang sering disingkat LED ini merupakan
salah satu piranti elektronik yang menggabungkan dua unsur yaitu optik dan
elektronik yang disebut juga sebagai
Opteolotronic,dengan masing-masing elektrodanya berupa anoda (+) dan katroda
(-), dioda jenis ini dikategorikan berdasarkan arah bias dan diameter cahaya
yang dihasilkan, serta warna nya.
Interrupt adalah suatu
kejadian atau peristiwa yang menyebabkan mikrokontroler berhenti sejenak untuk
melayani interrupt tersebut. Yang
harus diperhatikan untuk menguanakan interupsi adalah, kita harus tau
sumber-sumber interupsi, vektor layanan interupsi dan yang terpenting rutin
lyanan interupsi, yaitu subrutin yang akan dikerjakan bila terjadi interupsi .
Interrupt Service Routine.
Interrupt Service Routine.
B.
Tujuan Percobaan
Adapun tujuan dari percobaan
ini adalah sebagai berikut
1. Mahasiswa dapat mengetahui dan memahami suatu komponen
elektronika dalam hal ini Mikrokontroler.
2. Mahasiswa dapat merancang sebuah rangkaian elektronika
menggunkan Mikrokontroler.
3. Mahasiswa mampu membangun rangkaian Mikrokontroler
menggunakan simulasi berbasis program pada Proteus.7
dan CVAVR.
4. Mahasiswa dapat merancang sebuah rangkain
Mikrokontroler menggunakan interupt.
II.
TINJAUAN PUSTAKA
A.
Mikrokontroler
Mikrokontroler AVR 8535 (Alf and
Vegard’s Risc prosesor) adalah mikrokontroler yang memiliki arsitektur RISC 8
bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan
sebagian besar instruksi dieksekusi dalam 1 siklus clock (Gambar 1),
berbeda dengan instruksi MCS 51 yang membutuhkan 12 siklus clock (Budiharto,
dkk. 2007).
Mikrokontroler
merupakan suatu komponen elektronika yang didalamnya terdapat rangkaian
mikroprosesor, memori (RAM/ROM) dan I/O, rangkaian tersebut terdapat dalam
level chip atau biasa disebut single chip microcomputer. Pada mikrokontroler
sudah terdapat komponen-komponen mikroprosesor dengan bus-bus internal yang
saling berhubungan. Komponen–komponen tersebut adalah RAM, ROM, Timer, komponen
I/O paralel dan serial, dan interrupt controller. Dengan harga yang terjangkau
memungkinkan mikrokontroler digunakan pada berbagai sistem elektronis, seperti
pada robot, sistem alarm, peralatan telekomunikasi, hingga sistem automasi
industri.
Mikrokontroler
sebagai sebuah one chip solution pada dasarnya adalah rangkaian terintregrasi
(Integrated Circuit-IC) yang telah mengandung secara lengkap berbagai komponen
pembentuk sebuah komputer. Berbeda dengan penggunaan mikroprosesor yang masih
memerlukan komponen luar tambahan seperti RAM, ROM, Timer, dan sebagainya untuk
sistem mikrokontroler, tambahan komponen diatas secara praktis hampir tidak
dibutuhkan lagi. Hal ini disebabkan semua komponen penting tersebut telah ditanam
bersama dengan sistem prosesor ke dalam IC tunggal mikrokontroler bersangkutan.
Dengan alasan itu sistem mikrokontroler dikenal juga dengan
istilah populer the
real Computer On a Chip (komputer utuh dalam keping tunggal), sedangkan sistem
mikroprosesor dikenal dengan istilah yang lebih terbatas yaitu Computer On a
Chip (komputer dalam keping tunggal).
Mikrokontroler
AVR memliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode
16-bit (16-bits word) dan sebagian besar instruksi dieksekusi 1 (satu) siklus
clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Tentu
saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur
yang berbeda. AVR berteknologi RISC (Reduced Instruction Set Computing),
sedangkan seri MCS51 berteknologi CISC (Complex Instruction Set Computing).
Secara umum, AVR dapat dikelompokkan menjadi empat kelas, yaitu keluarga
ATtiny, keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada dasarnya yang
membedakan masing-masing kelas adalah memori, peripheral dan fungsinya. Dari
segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama
(Yurizal, 2013).
B. ATMEGA 8535
Atmel,
salah satu vendor yang bergerak di bidang mikroelektronika, telah mengembangkan
AVR (Alf and Vegard’s Risc processor) sekitar tahun 1997. Berbeda dengan
mikrokontroler MCS51, AVR menggunakan arsitektur RISC (Reduce Instruction Set
Computer) yang mempunyai lebar bus data 8 bit. Perbedaan ini bisa dilihat dari
frekuensi kerjanya. MCS51 memiliki frekuensi kerja seperduabelas kali frekuensi
osilator. Jadi dengan frekuensi osilator yang sama, kecepatan AVR dua belas
kali lebih cepat dibanding kecepatan MCS51. Secara umum AVR dibagi menjadi 4
kelas, yaitu ATtiny, AT90Sxx, ATMega dan AT86RFxx. Perbedaan antartipe AVR
terletak pada fitur-fitur yang ditawarkan, sementara dari segi arsitektur dan
set instruksi yang digunakan hampir sama (Heryanto dan Adi, 2008).
C.
Dioda
Dioda adalah
komponen elektro yang memiliki dua saluran aktif, anoda dan katoda, tapi
terkadang memiliki tiga saluran dimana saluran yang satunya hanya
berfungsi sebagai pemanas, dimana arus listrik dapat mengalir di dalamnya dan
biasanya digunakan karena sifatnya yang memungkinkan arus mengalir hanya satu
arah, melawan arus yang lain.
Sebuah
tegangan yang diberikan dapat menyebabkan elektron mengalir hanya satu arah,
dari katoda ke anoda, dan kemudian kembali ke katoda melalui sebuah sirkuit
eksternal. Dioda yang paling dikenal adalah tabung vakum
dan dioda semikonduktor. Semikonduktor dioda, yang paling sederhana dari
perangkat semikonduktor, terdiri dari dua elektroda dan dua zat semikonduktor
yang berbeda. Dioda tersebut membentuk dasar untuk peralatan semikonduktor yang
lebih kompleks (termasuk transistor) yang digunakan dalam komputer dan peralatan
elektronik lainnya. Dioda semikonduktor termasuk diode pemancar cahaya dan
dioda laser, yang terakhir memancarkan sinar laser, berguna untuk
telekomunikasi melalui serat optik dan untuk membaca CD.
Secara
fisik dioda ini berbentuk tabung vakum yang digunakan dalam rangkaian
elektronik sebagai penyearah atau detektor frekuensi radio. Aplikasi modern
dari dioda tabung umumnya terbatas pada rectifier dalam high-end amplifier
audio dan lainnya khusus tegangan tinggi sirkuit. Dioda tabung menggunakan tiga
elemen saluran, dua elemen aktif dan satu elemen pasif (yang berfungsi sebagai
pemanas). Dalam pengoperasian yang khusus, katoda dipanaskan oleh
filamen, dan tegangan AC diterapkan pada katoda. Katoda panas melepaskan
elektron yang deras mengalir ke plat (anoda) dan menjadi arus yang diperbaiki.
Dalam hal ini, dioda ini memungkinkan aliran arus menjadi satu arah (Anonim A, 2012).
D.
Bilangan Biner
Biner adalah sistem nomor yang digunakan oleh
perangkat digital seperti komputer. Bilangan Biner berbasis 2, tidak seperti
menghitung sistem desimal yang Basis 10 (desimal). Dengan kata lain, Biner
hanya memiliki 2 angka yang berbeda (0 dan 1) untuk menunjukkan nilai, tidak
seperti Desimal yang memiliki 10 angka (0,1,2,3,4,5,6,7,8 dan 9).
Contoh dari bilangan biner: 10011100
Seperti
yang dilihat itu hanya sekelompok nol dan satu, ada 8 angka dan angka-angka
tersebut adalah bilangan biner 8 bit. Bit adalah singkatan dari Binary Digit,
dan angka masing-masing digolongkan sebagai bit.
· Bit di paling kanan, angka 0, dikenal sebagai Least
Significant Bit (LSB).
· Bit di paling kiri, angka 1, dikenal sebagai bit
paling signifikan (Most significant bit = MSB)
notasi yang digunakan dalam sistem digital:
· 4 bits = Nibble
· 8 bits = Byte
· 16 bits = Word
· 32 bits = Double word
· 64 bits = Quad Word (or paragraph)
Saat menulis bilangan biner Anda perlu menandakan bahwa nomor biner (basis
2), misalnya, kita mengambil nilai 101, akan sulit untuk menentukan apakah itu
suatu nilai biner atau desimal (desimal). Untuk menyiasati masalah ini adalah secara
umum untuk menunjukkan dasar yang dimiliki nomor, dengan menulis nilai dasar
dengan nomor, misalnya:
1012 adalah angka biner dan 10110 i adalah nilai decimal (denary.
Setelah kita mengetahui dasar maka mudah untuk bekerja keluar nilai,
misalnya:
1012 = 1*22 + 0*21 + 1*20 = 5 (Lima)
10110 = 1*102 + 0*101 + 1*100 = 101
(seratus satu)
Satu hal lain tentang bilangan biner adalah bahwa adalah umum untuk
menandai nilai biner negatif dengan menempatkan 1 (satu) di sisi kiri (bit yang
paling signifikan) dari nilai. Hal ini disebut tanda bit, kita akan membahas
hal ini secara lebih rinci pada bagian selanjutnya dari tutorial.
Nomor elektronik biner disimpan / diproses menggunakan off atau pulsa
elektrik, sistem digital akan menafsirkan Off dan On di setiap proses
sebagai 0 dan 1. Dengan kata lain jika tegangan rendah maka akan mewakili 0
(off), dan jika tegangan yang tinggi akan mewakili 1 (On) (Anonim B, 2013).
E.
Pengertian Interupt
Interrupt atau interupsi adalah proses
dalam komputer untuk meminta dilayani oleh mikroprosesor sesuai dengan
tingkat prioritasnya yang telah diatur sedemikian rupa oleh sistem hardware
computer.
Sehingga
CPU dapat melakukan operasi dengan 2 cara yaitu :
1.
Operasi dengan polling
CPU
selalu terus menerus menanyakan/ memantau ke tiap-tiap komponen penunjang satu
persatu meskipun komponen itu sedang tidak memerlukan pelayanan.
2.
Operasi dengan interrupt
dilakukan
oleh tiap-tiap komponen kepada CPU bilamana memerlukan pelayanan pemrosesan,
sehingga CPU tidak terus-menerus menanyakan /memantau komponen itu.
CPU dapat menerima 3
macam interupsi antara lain :
1. Interupsi software (instruksi INT nH n= bilangan 00H
s/d FFH)
Interupsi
software terdiri dari 256 dan diberi nomor 00H hingga FFH. Alamat awal
masingmasing program pelayanan terdiri dari 4 byte, 2 byte untuk Code Segment
dan 2 byte untuk Instruction Pointer. Dalam pemrograman assembler kita dapat
melakukan interupsi secara software dengan perintah INT yang dapat dilihat
dalam tabel interupsi. Interrupt Software dalam PC terbagi dua yaitu :
a.
Interrupt BIOS (Basic Input Output
Sistem)
diwujudkan
dalam bentuk interupsi software berjumlah 32 dan akses pelayanannya tinggal
memerintahkan dengan instruksi INT nH asal parameternya diwajibkan telah
terpenuhi dahulu. INT nH terdiri dari 00H sampai 1FH yang disusun berurutan dan
diberi servis number (nomor pelayanan) tersendiri.
b.
Interrupt DOS (Disk Operating Sistem)
Interrupt
DOS merupakan interupsi dari software Sistem Operasi terdiri dari INT 20H untuk
kembali ke DOS dan INT 21H untuk operasi Input/Output.
Program yang melayani suatu interupsi dinamakan
Interrupt Handler.
2. Non Maskable Interrupt (Interupsi hardware)
dimana
interupsi ini mutlak tidak dapat dicegah karena berasal dari sistem board atau
IC.
3. Maskable Interrupt
(berasal
dari hardware melalui pin INTR) yang dapat ditutup atau dicegah dengan
instruksi CLI berasal dari interupsi perangkat lunak.
VEKTOR
INTERUPSI
Setiap interrupt akan mengeksekusi
interrupt handlernya masing-masing berdasarkan nomornya. Sedangkan alamat dari
masing- masing interupt handler tercatat di memori dalam bentuk array yang
besar elemennya masing-masing 4 byte. Keempat byte ini dibagi lagi yaitu 2 byte
pertama berisi kode offset sedangkan 2 byte berikutnya berisi kode segmen dari
alamat interupt handler yang bersangkutan.
Jadi besarnya array itu adalah 256
elemen dengan ukuran elemen masing-masing 4 byte. Total keseluruhan memori yang
dipakai adalah sebesar 1024 byte (256 x 4 = 1024) atau 1 KB dan disimpan dalam
lokasi memori absolut 0000h sampai 3FFh. Array sebesar 1 KB ini disebut Interupt Vector Table (Table Vektor Interupsi).
Nilai-nilai yang terkandung pada
Interupt Vector Table ini tidak akan sama di satu komputer dengan yang lainnya.
Interupt yang berjumlah 256 buah ini dibagi lagi ke dalam 2 macam yaitu:
1.
Interupt 00h –
1Fh (0 – 31) adalah interrupt BIOS.
dan standar di semua komputer baik yang menggunakan
sistem operasi DOS atau bukan. Lokasi Interupt Vector Table-nya ada di alamat
absolut 0000h-007Fh.
2.
Interupt 20h –
FFh (32 – 255) adalah interrupt DOS.
Interrupt ini hanya ada pada komputer yang menggunakan
sistem operasi DOS dan Interupt Handler-nya di-load ke memori oleh DOS pada
saat DOS digunakan. Lokasi Interupt Vector Table-nya ada di alamat absolut
07Fh-3FFh. 13 (Syahrin, 2013).
III. PROSEDUR PERCOBAAN
A. Alat dan Bahan
Adapun alat
dan bahan yang digunakan dalam percobaan ini adalah sebagai berikut ini.
Gambar 1. Laptop
Gambar 2.
Proteus 7
Gambar 3.
Program CVAVR
B.
Prosedur Percobaan
Adapun
prosedur yang dilakukan pada percobaan ini adalah sebagai berikut.
3. Membuat simulasi
rangkaian pada proteus 7 dengan komponen yang terdiri dari 1 buah
mikrokontroler Atmega16 dan 8 buah LED serta 2 buah push button.
4.
Membuat program
pada CVAVR.
5.
Mendonload
program CVAVR pada simulasi proteus dan merunningnya.
IV. HASIL PENGAMATAN DAN PEMBAHASAN
Percobaan yang telah dilakukan ini adalah percobaan
menggunakan interupt pada mikrokontroler. Percobaan ini bertujuan agar
mahasiswa dapat mengetahui dan memahami suatu komponen elektronika dalam hal
ini Mikrokontroler. Mahasiswa dapat merancang sebuah rangkaian elektronika
menggunkan Mikrokontroler. Mahasiswa mampu membangun ranbgkaian Mikrokontroler
menggunakan simulasi berbasis program pada Proteus.7
dan CVAVR. Mahasiswa dapat merancang
sebuah rangkain Mikrokontroler menggunakan interupt. Light Emiting Diode (Dioda Emisi Cahaya)
atau yang sering disingkat LED ini merupakan salah satu piranti elektronik yang
menggabungkan dua unsur yaitu optik dan elektronik yang disebut juga sebagai
Opteolotronic,dengan masing-masing elektrodanya berupa anoda (+) dan katroda
(-), dioda jenis ini dikategorikan berdasarkan arah bias dan diameter cahaya
yang dihasilkan, serta warna nya. Mikrokontroler merupakan suatu komponen
elektronika yang didalamnya terdapat rangkaian mikroprosesor, memori (RAM/ROM)
dan I/O, rangkaian tersebut terdapat dalam level chip atau biasa disebut single
chip microcomputer. Pada mikrokontroler sudah terdapat komponen-komponen
mikroprosesor dengan bus-bus internal yang saling berhubungan.
Komponen–komponen tersebut adalah RAM, ROM, Timer, komponen I/O paralel dan
serial, dan interrupt controller. Dengan harga yang terjangkau memungkinkan
mikrokontroler digunakan pada berbagai sistem elektronis, seperti pada robot,
sistem alarm, peralatan telekomunikasi, hingga sistem automasi industri.
Percobaan ini disimulasikan dengan program proteus 7 untuk membuat rangkaian mikrokontroler
dengan interupt.
Interrupt adalah suatu kejadian atau peristiwa yang
menyebabkan mikrokontroler berhenti sejenak untuk melayani interrupt tersebut. Yang harus diperhatikan untuk
menguanakan interupsi adalah, kita harus tau sumber-sumber
interupsi, vektor layanan interupsi dan yang
terpenting rutin lyanan interupsi, yaitu subrutin yang akan dikerjakan bila
terjadi interupsi . Interrupt Service Routine.
Analoginya adalah sebagai berikut, seseorang sedang
mengetik laporan, mendadak telephone berdering dan menginterrupsi orang
tersebut sehingga menghentikan pekerjaan mengetik dan mengangkat telephone.
Setelah pembicaraan telephone yang dalam hal ini adalah merupakan analogi dari
Interrupt Service Routine selesai maka orang tersebut kembali meneruskan
pekerjaanya mengetik. Demikian pula pada sistem mikrokontroler yang sedang
menjalankan programnya, saat terjadi interrupt, program akan berhenti sesaat,
melayani interrupt tersebut dengan menjalankan program yang berada pada alamat
yang ditunjuk oleh vektor dari interrupt yang terjadi hingga selesai dan
kembali meneruskan program yang terhenti oleh interrupt tadi.
Seperti yang terlihat Gambar 2 di bawah, sebuah
program yang seharusnya berjalan terus lurus, tiba-tiba terjadi interrupt dan
harus melayani interrupt tersebut terlebih dahulu hingga selesai sebelum ia
kembali meneruskan pekerjaannya.
AVR menyediakan beberapa sumber interupsi yang
berbeda. Tiap-tiap interupsi dan reset memiliki vektor program yang berbeda.
Semua interupsi didasari satu bit tunggal yang harus diberi logika tinggi
sebagai Global Interrupt Enable pada Status Register untuk mengaktifkan
interupsi. Atmega8535 menyediakan 21 macam sumber interupsi yang masing-masing
memiliki alamat vektor interupsi. Setiap interupsi yang aktif akan dilayani
segera setelah terjadi permintaan interupsi, tapi jika dalam waktu bersamaan
terjadi lebih dari satu interupsi maka perioritas yang akan diselesaikan
terlebih dahulu adalah interupsi yang memiliki urut lebih kecil.
Gambar 4. Mikrokontroler dengan Interupt
Gambar
5. Program dengan Interupt
Proses yang dilakukan oleh mikrokontroler saat
melayani interrupt adalah sebagai berikut:
§
Instruksi
terakhir yang sedang dijalankan diselesaikan terlebih dahulu
§
Program Counter
(alamat dari instruksi yang sedang berjalan) disimpan ke stack.
§
Interrupt Status
disimpan secara internal.
§
Interrupt
dilayani sesuai peringkat dari interrupt (lihat Interrupt Priority).
§
Program Counter
terisi dengan alamat dari vector interrupt (lihat Interrupt Vector) sehingga
mikrokontroler langsung menjalankan program yang terletak pada vector
interrupt.
§
Program pada
vector interrupt biasanya diakhiri dengan instruksi RETI di mana pada saat ini
proses yang terjadi pada mikrokontroler adalah sebagai berikut:
§ Program Counter diisi dengan alamat yang tersimpan
dalam stack pada saat interrupt terjadi sehingga mikrokontroler kembali
meneruskan
§ program di lokasi saat interrupt terjadi
§ Interrupt Status dikembalikan ke kondisi terakhir
sebelum terjadi i
Pada AVR terdapat 3 pin interupsi eksternal, yaitu
INT0,INT1,dan INT2. Interupsi eksternal dapat dibangkitkan apabila ada
perubahan logika baik transisi naik (rising edge) maupun transisi turun
(falling edge) pada pin interupsi. Pengaturan kondisi keadaan yang menyebabkan
terjadinya interupsi eksternal diatur oleh 2 buah register I/O yaitu MCUCR dan
register MCUCSR
MCUCR ( MCU Control Register), mengatur
pemicu interupsi dan fungsi MCU secara umum.
Gambar 6. MCUCR
Bit penyusunnya:
Bit ISC11 dan ISC10 bersama-sama
menentukan kondisi yang dapat menyebakan interupsi eksternal pada pin INT1. Dan
Bit ISC01 dan ISC00 bersama-sama menentukan kodisi yang dapat menyebakan
interupsi eksternal pada pin INT0. keadaan selengkapnya terlihat pada
gambar berikut :
Gambar 7.
Bit MCUCR
MCUCSR ( MCU Control and Status Register)
Gambar 8. MCUCSR
Bit 6 – ISC2 : interrupt sense control INT2
Untuk interupsi INT2 hanya memiliki
satu bit ISC, sehingga hanya memiliki 2 kondisi pemicu interupsi yaitu:
‘0’ = interupsi terjadi jika terjadi
transisi turun pada pin INT2
‘1’= interupsi terjadi jika terjadi
transisi naik pada pin INT2
Untuk sumber interupsi INT2,
perubahan/transisi sinyal yang dapat membangkitkan intrupsi harus memiliki
lebar pulsa minimal sekitar 50 ns.
GICR
Pemilihan
pengaktifan interupsi eksternal diatur oleh register GICR ( General Interrupt
Control Register ) yang terlihat pada gambar berikut :
Gambar 9. GICR
Bit penyusunnya dapat dijelaskan sebagai berikut:
·
Bit INT1 adalah bit untuk
mengaktifkan interupsi eksternal 1. Apabila bit tersebut diberi logika 1 dan
bit I pada SREG (status register) juga satu , maka interupsi eksternal 1 akan
aktif.
·
Bit INT0 adalah bit untuk
mengaktifkan interupsi eksternal 0. Apabila bit tersebut diberi logika 1 dan
bit I pada SREG (status register) juga satu , maka interupsi eksternal 0 akan
aktif.
·
Bit INT2 adalah bit untuk mengaktifkan
interupsi eksternal 2. Apabila bit tersebut diberi logika 1 dan bit I pada SREG
(status register) juga satu , maka interupsi eksternal 2 akan aktif.
SREG (Status Register)
Digunakan untuk menyimpan informasi dan hasil operasi
aritmatika terakhir. Data SREG selalu berubah setiap instruksi atau operasi pad
ALU dan datanya tidak otomatis tersimpan apabila terjadi instruksi percabangan
baik karena interupsi maupun lompatan.
Bit 7 – I : Global interrupt enable
Bit I digunakan untuk mengaktifkan
interupsi secara umum (interupsi global). Jika bit I bernilai ‘1’ maka
interupsi secara umum aktif, tetapi jika ‘0’ maka tidak satupun interupsi yang
aktif.
Dalam percobaan
mikrokontroler dengan interupt ini menggunakan simulasi dengan program proteus,
dalam program ini menggunakan 1 buah mikrokontroler ATMega 16, 8 buah led, dan
2 buah push button. Skema rangkaian dapat dilihat pada gambar dibawah ini.
Gambar 10.
Rangkaian Mikrokontroler dengan Interupt
Dalam percobaan ini kita menjalankan
8 buah led berjalan yang akan menyala secara bergilir dari atas hingga bawah,
kemudian pada interupt 0 kita buat untuk menghidupkan 4 buah led 2 hidup 2 mati
dan 2 hidup 2 mati atau dalam bilangan binernya 00110011 atau CC, sedangkan
untuk interupt 1 dibuat untuk menghidupkan 6 buah lampu yangmenyala secara
bergiliran 3 hidup 3 mati dan sebaliknya, atau pada bilangan biner 11011101
atau B0 dan 0B. Program ni dibuat dengan program CVAVR, sebelum program dibuat
mengatur terlebih dahulu pengaturan program yang akan kita buat seperti memilih
mikrokontroler ATMega 16 dengan frekuensi 16.000000 MHz dan mengubah PORTB
menjadi Output, kemudian pada External
IRQ menconteng INT 0 Enabled dan INT1 Enabled dan mengubah mode INT1 menjadi
Falling Edge cara terakhir mengubah
pullup pin 2 dan pin 3 PORTD menjadi P. Selanjutnya membuat program seperti
berikut.
#include <mega16.h>
#include <stdio.h>
#include <delay.h>
unsigned char led;
void led_off() {
PORTB=0xCC; }
void led_blink() {
unsigned char i=0;
for (i=0;i<5;i++){
PORTB=0xB0;
delay_ms(100);
PORTB=0x0B;
delay_ms(100); }}
void led_walk(){
PORTB=led;
if(led!=0x00){
led=led<<1;
delay_ms(100);}
else{
led=0x01; }}
interrupt [EXT_INT0] void
ext_int0_isr(void)
{ led_off(); }
interrupt [EXT_INT1] void
ext_int1_isr(void)
{ led_blink(); }
void main(void)
{ #asm("sei")
led = 0x01;
while (1)
{
led_walk();
};
}
Ketika program ini di running program
akan menjalankan led Walk atau led menyala berjalan satu persatu, dan ketika interyp
0 yang ditekan maka led off yang akan menyala yaitu 2 hidup 2 mati dan 2 hidup
2 mati, sedangkan ketika interupt1 yang ditekan maka program akan menjalankan
led blink 3 hidup 3 mati, setelah interupt selesai maka program akan
menjalankan program semula yaitu program led walk.
Gambar 11. Led Walk
Gambar 11 adalah rangkaian
mikrokontroler setelah dirunning, pada saat ini maka led akan menyala berjalan
satu persatu.
Gambar 12. Led Off
Gambar 12 adalah rangkaian
mikrokontroler ketika interupt 0 ditekan, maka program akan menjalankan led of
seperti gambar.
Gambar 13. Led Blink
Gambar 13 adalah rangkaian
mikrokontroler ketika interupt1 ditekan, maka program akan menjalankan led
blink, yaitu led akan menyala secara bergantian 3 led hidup dan 3 led mati.
V.
KESIMPULAN
Dari percobaan yang telah dilakukan tentang
perancangan LED berjalan pada mikrokontroler maka dapat diambil kesimpulan
sebagai berikut.
1.
Mikrokontroler merupakan suatu komponen
elektronika yang didalamnya terdapat rangkaian mikroprosesor, dan berfungsi
sebagai sistem kontrol maupun pengendali.
2.
Light Emiting Diode (Dioda Emisi Cahaya)
atau yang sering disingkat LED ini merupakan salah satu piranti elektronik yang
menggabungkan dua unsur yaitu optik dan elektronik yang disebut juga sebagai
Opteolotronic,dengan masing-masing elektrodanya berupa anoda (+) dan katroda
(-).
3.
Dalam percobaan ini
mikrokontroler mampu mengontrol LED berjalan sesuai dengan interupt yang dibuat.
4.
Dalam percobaan
ini interupt berhasil dimanfaat sesuai dengan program yang dibuat seperti led
off dan led blink.
DAFTAR
PUSTAKA
Anonim
A. 2012. LED (Light Emiting Diode) dot matrik M1632.
http://elektronika-dasar.web.id/komponen/lcd-liquid-cristal-display-dot-matrix-2x16-m1632/. Diunduh pada Sabtu, 15 November 2014.
Anonim
B.2013. Bilangan Biner, Oktal, dan
Heksadesimal.
http//bilanganbineroktaldanheksadesimal-multimedia.htm.
diunduh pada
tanggal 29 November
2014.
Budiharto, Widodo. 2006. Membuat Robot Cerdas. Gramedia: Jakarta.
Heryanto,
M. Ary dan Adi, Wisnu.2008.Pemrograman
Bahasa C untuk
Mikrokontroler
Atmega 8535.Yogyakarta:Andi.
Syahrin,
Yusnia Alfi. 2013. Sekilas Tentang
Interupsi pada Mikrokontroler. https://yusniaalfisyahrin.wordpress.com/2013/01/08/sekilas-tentang-interupsi-pada-mikrokontroler/.
Diunduh pada tanggal 6 desember 2014 pukul 00.25 Wib.
Yurizal.
2013. Mikrokontroler.
https://yusrizalandeslubs.wordpress.com. Diunduh pada Sabtu, 15 November 2014.
Post a Comment