6
MODUL VII MENGGUNAKAN INTERRUPT DALAM MIKROKONTROLLER ATMEGA8535 Akhmad Insya Ansori (110534406810) Tanggal Percobaan: 29 November 2012 PTE408 - Praktikum Mikroprosesor - I Laboratorium Mikroprosesor S1 Pendidikan Teknik Elektro–Fakultas Abstrak Praktikum menggunakan interrupt yang menggunakan ATMega8535 bertujuan untuk mengetahui dan memahami cara menggunakan interupsi pada mikrokontroler selain itu juga untuk mengetahui dan memahami bagaimana cara memrogram mikrokontroler untuk menjalankan interupsi pada saat program utama dijalankan. Kata kunci : Interrupt, Mikrokontroler. 1. PENDAHULUAN Interrupt adalah suatu kejadian atau peristiwa yang menyebabkan mikrokontroler berhenti sejenak untuk melayani interrupt tersebut. Program yang dijalankan pada saat melayani interrupt disebut 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 4.1, sebuah program yang seharusnya berjalan terus lurus, tiba-tiba terjadi interrupt dan harus melayani interrupt tersebut terlebih dahulu

MODULVII_110534406810_F

Embed Size (px)

Citation preview

Page 1: MODULVII_110534406810_F

MODUL VII MENGGUNAKAN INTERRUPTDALAM MIKROKONTROLLER ATMEGA8535

Akhmad Insya Ansori (110534406810)

Tanggal Percobaan: 29 November 2012PTE408 - Praktikum Mikroprosesor - I

Laboratorium Mikroprosesor S1 Pendidikan Teknik Elektro–Fakultas Teknik Universitas Negeri Malang

Abstrak

Praktikum menggunakan interrupt yang

menggunakan ATMega8535 bertujuan

untuk mengetahui dan memahami cara

menggunakan interupsi pada

mikrokontroler selain itu juga untuk

mengetahui dan memahami bagaimana

cara memrogram mikrokontroler untuk

menjalankan interupsi pada saat

program utama dijalankan.

Kata kunci : Interrupt, Mikrokontroler.

1. PENDAHULUAN

Interrupt adalah suatu kejadian atau

peristiwa yang menyebabkan

mikrokontroler berhenti sejenak untuk

melayani interrupt tersebut. Program

yang dijalankan pada saat melayani

interrupt disebut 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 4.1,

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.

2. STUDI PUSTAKA

Interrupt

Interrupt/Interupsi ialah suatu kondisi

dimana CPU (Central Processing Unit)

mikrokontroler berhenti dari rutinitas

yang sedang dikerjakan dan

mengerjakan rutinitas lain yang ditunjuk

oleh interupsi tersebut. Ketika rutinitas

yang ditunjuk interupsi telah selesai

dieksekusi, maka CPU akan mulai

mengekseskusi rutinitas awal sebelum

adanya interupsi yang terhenti dari

tempat terakhir.

Page 2: MODULVII_110534406810_F

Tabel interrupt pada AVR ATmega8535

Pada bagian ini jenis interrupt

yang akan dibahas ialah external

interrupt. ATmega8535 memiliki tiga

buah eksternal interrupt yaitu INT0,

INT1, dan INT2. Ketiga interrupt ini yaitu

INT0 s.d INT2 akan tertrigger walaupun

portnya dikonfigurasi sebagai output.

Fitur ini memungkinkan interrupt yang

dikondisikan oleh software. Semua

interrupt akan tertrigger jika terdapat

perubahan rising edge atau falling

edge. Mode any change tidak dimiliki

INT2, sedangkan INT0 dan INT1

memilikinya. Mode any change

memungkinkan interrupt terpanggil

baik ketika rising dan falling edge.

Register-register yang harus di

setting untuk mengaktifkan eksternal

interupsi ialah GICR (General Interrupt

Control Register), GIFR (General

Interrupt Flag Register), MCUCR (MCU

Control Register), dan MCUCSR (MCU

Control and Status Register).

GICR (General Interrupt Control

Register)

• Bit 7 – INT1: External Interrupt Request

1 Enable

Untuk meng-enable kan External

Interrupt 1

• Bit 6 – INT0: External Interrupt Request

0 Enable

Untuk meng-enable kan External

Interrupt 0

• Bit 5 – INT2: External Interrupt Request

2 Enable

Untuk meng-enable kan External

Interrupt 2

GIFR (General Interrupt Flag

Register)

• Bit 7 – INTF1: External Interrupt Flag 1

Ketika terjadi eksternal interrupt pada

INT1, maka Flag INTF1 diset 1. Setelah

routine eksternal interrupt selesai di

eksekusi maka Flag INTF1 diset 0.

• Bit 6 – INTF0: External Interrupt Flag 0

Ketika terjadi eksternal interrupt pada

INT0, maka Flag INTF0 diset 1. Setelah

routine eksternal interrupt selesai di

eksekusi maka Flag INTF0 diset 0.

• Bit 5 – INTF2: External Interrupt Flag 2

Ketika terjadi eksternal interrupt pada

INT2, maka Flag INTF2 diset 1. Setelah

routine eksternal interrupt selesai di

eksekusi maka Flag INTF2 diset 0.

Page 3: MODULVII_110534406810_F

MCUCR (MCU Control Register)

• Bit 3, 2 – ISC11, ISC10: Interrupt Sense

Control 1 Bit 1 and Bit 0

Bit ini mengatur sensitifitas yang akan

dimiliki oleh port eksternal interrupt 1.

pilihan sensitifitas dapat dilihat pada

tabel dibawah:

• Bit 1, 0 – ISC01, ISC00: Interrupt Sense

Control 0 Bit 1 and Bit 0

Bit ini mengatur sensitifitas yang akan

dimiliki oleh port eksternal interrupt 0.

pilihan sensitifitas dapat dilihat pada

tabel dibawah:

MCUCSR (MCU Control and Status

Register)

• Bit 6 – ISC2: Interrupt Sense Control 2

Jika ISC2 ditulis 0 maka falling edge pada

INT2 akan mengaktifasi interupsi. Jika

ISC2 ditulis 1, maka rising edge

pada INT2 akan mengaktifasi interupsi.

3. METODE

3.1 Alat dan bahan yang

digunakan

1 set PC/Laptop yang sudah berisi

program Code Vision dan

Khazama

1 buah catu daya DC +5V

1 buah multimeter

1 buah ISP Downloader AVR

1 buah sistem minimum AVR

1 buah I/O

1 buah kabel printer USB

2 buah kabel pita hitam

3.2 Prosedur

1. Menghubungkan PORTC pada

minimum system dengan soket

jumper OUTPUT pada trainer dan

PORTD.2 (INT0) dari minimum

sistem ke soket IS1 pada trainer.

2. Membuka program Code Vision

AVR

3. Membuat project baru. Pada tap

External IRQ centang INT0 lalu

pilih Mode Falling edge dan set

PORTC sebagai OUTPUT

4. Mengetik program interrupt pada

blok Interrupt seperti sintaks

dibawah ini.

#include <mega8535.h>

#include <delay.h>

// External Interrupt 0 service

routine

interrupt [EXT_INT0] void

ext_int0_isr(void)

// disini hanya menggunakan 1

interrup saja

{

Page 4: MODULVII_110534406810_F

// Place your code here

PORTC = 0b10101010;

delay_ms(1000);

PORTC = 0b11111111;

delay_ms(1000);

}

5. Mengetik dalam program utama

(main program)

while (1) // program utama

{

PORTC = 0b11110000;

}

6. Mengamati nyala LED sebelum

dan sesudah anda menekan

tombol interupsi

7. Mengulangi langkah 3-6 untuk

mode interupsi (Interrupt Sense

Control) Rising Edge, Any Change

dan Low Level.

4. Hasil dan Analisa

4.1.Data Hasil Percobaan

Tabel Interupsi

N

o

Mode

Interru

pt

Program yang dijalankan (Interrupt / Main Program) Saat tombol IS1 belum ditekan (Low)

Saat tombol IS1 ditekan dan ditahan (Rising

)

Saat tombol IS1 dilepaskan (Falling)

1. Falling

Edge

11110000

11110000

101010101111111

2. Raising

Edge

11110000

101010101111111

11110000

3. Any

Chang

11110000

1010101011111

10101010111111

e 11 1

4. Low

Level

101010101111111

11110000

101010101111111

Analisa:

Setelah melihat table hasil

praktikum yang telah dilakukan dapat

dianalisa sbb :

a. Rising edge interupt

Terjadi apabila ada perubahan

dari tegangan rendah ke

tegangan yang lebih tinggi,

dengan nyala LED bergantian

dan delay 1000 ms.

b. Any change

LED akan menyala secara

bergantian dengan delay 1000

ms jika terjadi perubahan

tegangan, tanpa memperdulikan

arah perubahan tegangan tsb.

Dikarenakan pada program

utama dideklarasikan apabila int0 maka

akan mejalankan interupsi, maka LED

akan menyala secara bergantian dengan

delay 1000 ms.

Kesimpulan

Berdasarkan percobaan diatas dapat disimpulkan bahwa:

Untuk menggunakan fasalitas interupsi pada ATMega8535 kita harus melakukan inisialisasi pada progam utama, agar dapat dibaca oleh mikrokontroler.

Page 5: MODULVII_110534406810_F

Ketika terjadi perubahan tegangan Any change akan menjalankan interupsi.

Pada ATmega8535 pin yang digunakan untuk interupsi eksternal yaitu : int0, int1, int2.

Daftar Pustaka

Modul VII Menggunakan

Interrupt Dalam Mikrokontroler

ATMega8535.

http://

hendawan.files.wordpress.com

/2008/01/basic-avr-

microcontroller-tutorial_v3.pdf

Diakses pada 5 Desember

2012