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. 


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.
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

 
Top