PERTEMUAN
INTERUPSI MIKROKONTROLER 89C51
INTERUPT MIKROKONTROLER 89C51
Pengertian Interupsi Interupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi pada program utama dan mengerjakan program tertentu (subrutin) yang disebut ISR (interupt service routin). Setelah selesai mengerjakan ISR mikrokontroler kembali melajutkan untuk mejalankan intruksi-instruksi pada program utama yang tertunda. Subrutin/intrupt handler di proses oleh mikrokontroler jika ada event/kejadian tertentu.
Subrutin/intrupt handler tersebut bisa berupa: Timmer yang mengalami overflow. Menerima karakter melaui port serial. Pengiriman karakter melalui port serial. Jika dilihat pada listing program bahasa assembler perintah CALL dan ACALL adalah perintah yang memeintahkan mikrokontroler untuk mejalankan subrutin. Yang memerintahkan mikrokontroler untuk mejalankan subrutin adalah sinyal interupt. Sinyal-sinyal interupt bisa datang melaui software atau melalui hardware.
Contoh kasus: Pengisian tangki dengan pompa yang dikendalikan dengan mikrokontroler. Agar pompa berhenti pada saat pompa penuh maka dapat dipasang sensor. Perangkat sensor akan menghentikan sistem sampai level fluida pada tengki berada pada level tertentu. Kejadian yang membangkitkan interupt a. Timer overflow 1 b. Timer overflow 0 c. Keluar/masuk data secara serial d. Sinyal eksternal 1 e. Sinyal eksternal 0
Karena banyaknya hal yang akan membangkitkan intrupsi pada mikrokontroler maka perlu diberikan alamat/address untuk sebuah rutin interupsi. Tabel alamat/address rutin interupsi
Interupsi
Flag
Alamat
Sinyal eksternal 0
IE0
0003h
Timer 0
TF0
000Bh
Sinyal eksternal 1
IE1
0013h
Timer 1
TF1
001Bh
Serial
R1/T1
0023h
Pengaturan interupsi Pada saat power suply di hidupkan semua interupt tidak berfungsi. Perhatiakan gambar dan tabel di bawah. Dengan mengatur bit-bit di dalam register IE maka sumber interupt dapat diaktifkan atau dinonaktifkan di alamat A8h.
Pioritas interupsi Setiap intrupsi dapat di program tingkat prioritasnya dengan mengatur bit-bit di dalam IP pada alamat B8h.
Jika register IP berisikan data nol pada reset maka semua interupsi ditempatkan pada prioritas rendah.
Aturan Prioritas Interupsi Aturan prioritas interupsi mikrokontroler: a. interupsi dengan prioritas rendah dapat diinterupsi oleh interupsi prioritas tinggi, tidak berlaku sebaliknya. b. interupsi dengan prioritas rendah dapat berlangsung jika tidak ada interupsi lain yang sedang berlangsung. c. Jika ada intrupsi terjadi bersamaan, maka interupsi yang mempunyai prioritas yang lebih tinggi yang didulukan.
Teknik polling Bisa saja pada saat yang bersamaan terjadi interupsi dengan prioritas/ level yang sama. Dalam aturan intrupsi bisa bergantian jika prioritas/ level interupsi berbeda. Untuk mengatasi semua ini maka dilakukan teknik polling mana yang telebih dahulu di prioritaskan.
Dari gambar diatas dapat dilihat urutan polling, sbb:
Prioritas interupsi mikrokontroler denganteknik polling: 1
IE0
Eksternal 0 Prioritas pertaman
2
TF0
Timer 0
3
IE1
Eksternal 1 Prioritas ketiga
4
TF1
Timer
Prioritas keempat
5
R1 atau T1
Port Serial
Prioritas kelima
6
TF2 atau EXF2
Timer 2
Prioritas keenam
Prioritas kedua
Pemrosesan Interupsi Saat terjadi interupsi program utama akan dihentikan oleh mikrokontroler, kemudian CPU didalam mikrokontroler menjalankan langkah-langkah penanganan interupsi sbb: 1. Instruksi yang sedang dikerjakan diselesaikan terlebih dahulu.
2. Isi PC (pencacah counter) disimpan kedalam stack. 3. Status interupsi yg bersangkutan disimpan kedalam stack. 4. Interupsi-interupsi dengan level yang sama di block. 5. Vektor kemudian diisi alamat vektor rutin layanan interupsi (RLI). 6. RLI dijalankan.
Vektor-vektor Interupsi Vektor Interupsi nilai yang disimpan kedalam PC sebagai alamat RLI Pada saat suatu interupsi diterima. Nilai ini menjadi alamat awal RLI yang bersangkutan.
Tabel Vektor-vektor Interupsi mikrokontroler 59C51
Interupsi
Flag
Alamat Vektor
Reset Sistem
RST
0000H
Eksternal 0
IE0
0003H
Timer 0
TF0
000BH
Eksternal 1
IE1
0013H
Timer 1
TF1
001BH
R1 atau T1
0023H
TF2 atau EXF2
002BH
Port Serial Timer 2
Pada saat mengalamati interupsi, tanda yang menghasilkan interpsi dinolkan melalui hardware, kecuali pada R1 atau T1 dan TF2 atau EXF2 karena interupsi ini mempunyai dua sumber. Bit-bit tersebut diperiksa dalam RLI untuk menentukan sumber interupsi kemudian dinolkan dengan program.
SOAL-SOAL
1. Suatu kondisi CPU di dalam mikrokontroler berhenti memproses program utama dan menjalankan rutin program dikenal dengan: a. Timer c. Interupt b. Counter d. Program counter 2. Interupt bisa terjadi jika ada peistiwa, kecuali ….: a. Overflow pada timer b. Error pada program utama c. Mengirim data melalui port serial d. Mengirim data melalui port serial
2. Interupt bisa terjadi jika ada peistiwa, kecuali ….: a. Overflow pada timer b. Error pada program utama c. Mengirim data melalui port serial d. Mengirim data melalui port serial 3. Perintah/interuksi untuk menjalankan Interupsi adalah: a. MOV b. INT c. CALL d. ADD
3. Perintah/interuksi untuk menjalankan Interupsi adalah: a. MOV b. INT c. CALL d. ADD 4. Sumber sinyal Interupsi bisa dari …….. adalah: a. Eksternal b. Memory c. Software d. A dan C benar
4. Sumber sinyal Interupsi bisa dari …….. adalah: a. Eksternal b. Memory c. Software d. A dan B benar 5. Jika interupsi mempunyai level yang sama, maka dapat diatur dengan teknik: a. Acak b. Interupt prioritas c. Polling d. Semua jawaban salah
5. Jika interupsi mempunyai level yang sama, maka dapat diatur dengan teknik: a. Acak b. Interupt prioritas c. Polling d. Semua jawaban salah 1. Suatu kondisi CPU di dalam mikrokontroler berhenti memproses program utama dan menjalankan rutin program dikenal dengan: a. Timer c. Interupt b. Counter d. Program counter