pertemuan 13 - interupt mikrokontroller 89c51 · pdf fileinterupt atau selaan adalah suatu...

Post on 15-Feb-2018

223 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

PERTEMUAN

INTERUPSI MIKROKONTROLER 89C51

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.

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.

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

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

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.

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

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:

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:

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.

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

SOAL-SOALSOAL-SOAL

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

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

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

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

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

top related