Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu...

18
PERTEMUAN INTERUPSI MIKROKONTROLER 89C51

Transcript of Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu...

Page 1: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

PERTEMUAN

INTERUPSI MIKROKONTROLER 89C51

Page 2: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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

INTERUPT MIKROKONTROLER 89C51

Pengertian Interupsi

Subrutin/intrupt handler di proses oleh mikrokontroler jika ada event/kejadian tertentu.

Setelah selesai mengerjakan ISR mikrokontroler kembali melajutkan untuk mejalankan intruksi-instruksi pada program utama yang tertunda.

Page 3: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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

Yang memerintahkan mikrokontroler untuk mejalankan subrutin adalah sinyal interupt. Sinyal-sinyal interupt bisa datang melaui software atau melalui hardware.

perintah CALL dan ACALL adalah perintah yang memeintahkan mikrokontroler untuk mejalankan subrutin.

Page 4: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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.

Contoh kasus:

Kejadian yang membangkitkan interupt

a. Timer overflow 1b. Timer overflow 0c. Keluar/masuk data secara seriald. Sinyal eksternal 1e. Sinyal eksternal 0

Page 5: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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 0003hSinyal eksternal 0 IE0 0003h

Timer 0 TF0 000Bh

Sinyal eksternal 1 IE1 0013h

Timer 1 TF1 001Bh

Serial R1/T1 0023h

Page 6: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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

Page 7: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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.

Page 8: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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 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 lebihtinggi yang didulukan.

Page 9: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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. polling mana yang telebih dahulu di prioritaskan.

Dari gambar diatas dapat dilihat urutan polling, sbb:

Page 10: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

1 IE0 Eksternal 0 Prioritas pertaman

2 TF0 Timer 0 Prioritas kedua

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 interupsi mikrokontroler denganteknik polling:

1. Instruksi yang sedang dikerjakan diselesaikan terlebih dahulu.

6 TF2 atau EXF2 Timer 2 Prioritas keenam

Pemrosesan Interupsi

Saat terjadi interupsi program utama akan dihentikan oleh mikrokontroler, kemudian CPU didalam mikrokontroler menjalankan langkah-langkah penanganan interupsi sbb:

Page 11: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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

Page 12: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

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

Port Serial R1 atau T1 0023H

Pada saat mengalamati interupsi, tanda yang menghasilkan interpsi dinolkan melalui hardware, kecuali pada R1 atau T1dan TF2 atau EXF2 karena interupsi ini mempunyai dua sumber.Bit-bit tersebut diperiksa dalam RLI untuk menentukan sumber interupsi kemudian dinolkan dengan program.

Port Serial R1 atau T1 0023H

Timer 2 TF2 atau EXF2 002BH

Page 13: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

SOAL-SOALSOAL-SOAL

Page 14: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

1. Suatu kondisi CPU di dalam mikrokontroler berhenti memproses program utama dan menjalankan rutin program dikenal dengan:

a. Timer c. Interuptb. Counter d. Program counterb. Counter d. Program counter

2. Interupt bisa terjadi jika ada peistiwa, kecuali ….:a. Overflow pada timerb. Error pada program utamac. Mengirim data melalui port seriald. Mengirim data melalui port serial

Page 15: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

2. Interupt bisa terjadi jika ada peistiwa, kecuali ….:a. Overflow pada timerb. Error pada program utamac. Mengirim data melalui port seriald. Mengirim data melalui port serial

3. Perintah/interuksi untuk menjalankan Interupsi adalah:a. MOVb. INTc. CALLd. ADD

Page 16: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

3. Perintah/interuksi untuk menjalankan Interupsi adalah:a. MOVb. INTc. CALLd. ADD

4. Sumber sinyal Interupsi bisa dari …….. adalah: a. Eksternalb. Memoryc. Softwared. A dan C benar

Page 17: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

4. Sumber sinyal Interupsi bisa dari …….. adalah: a. Eksternalb. Memoryc. Softwared. A dan B benar

5. Jika interupsi mempunyai level yang sama, maka dapat diatur dengan teknik:

a. Acakb. Interupt prioritasc. Pollingd. Semua jawaban salah

Page 18: Pertemuan 13 - Interupt Mikrokontroller 89C51 · PDF fileInterupt atau selaan adalah suatu proses dimana pada saat mikrokontroler harus menghentikan sementara waktu intruksi-instruksi

5. Jika interupsi mempunyai level yang sama, maka dapat diatur dengan teknik:

a. Acakb. Interupt prioritasc. Pollingd. Semua jawaban salahd. Semua jawaban salah

1. Suatu kondisi CPU di dalam mikrokontroler berhenti memproses program utama dan menjalankan rutin program dikenal dengan:

a. Timer c. Interuptb. Counter d. Program counter