• Tidak ada hasil yang ditemukan

SISTEM INTERUPSI PADA AT89C51

N/A
N/A
Protected

Academic year: 2018

Membagikan "SISTEM INTERUPSI PADA AT89C51"

Copied!
39
0
0

Teks penuh

(1)

SISTEM INTERUPSI

PADA AT89C51

Sukarman, ST

Kepala Lab Sistem Kendali

Jurusan Teknofsika Prodi Elins

Sekolah Tinggi Teknologi Nuklir

(2)

Sistem Interupsi

 ‘Sistem Interupsi (Interrupt System)’

membahas tentang penyelaan

(interupsi) dari program yang sedang berjalan :

 karena adanya permintaan pelayanan

interupsi baik dari luar maupun dari bagian-bagian di dalam sistem

(3)

Interupsi

 Dibahas tentang sumber-sumber

interupsi baik dari dalam maupun di luar sistem,

 struktur level prioritas interupsi, dan

 proses yang terjadi jika terdapat suatu

permintaan interupsi (penanganan

(4)

Interupsi

 Mengetahui sumber interupsi yang

terdapat dalam mikrokontroler Atmel AT89C51.

 Mengetahui struktur level prioritas dalam

mikrokontroler.

 Mengetahui proses penanganan interupsi

(5)
(6)

Int Vect 0 prioritas tinggi

(7)

Aktifkan sumber interupsi

Register IE (Interupt Enable) $A8

- - PT2 PS PT1 PX1 PT0 PX0

Register IP (Interupt Priority) $B8

EA : Untuk menghidupkan (1) / mematikan (0) seluruh interupsi secara serentak ES : bit aktivasi interupsi Port serial

ET1 : bit aktivasi interupsi Timer 1 EX1 : bit aktivasi interupsi external 1 ET0 : bit aktivasi Timer 0

(8)

Sumber interupsi

 MOV IP, #00010000b  MOV IE, #10010000b

 atau

 MOV IP, #10h  MOV IE, #90h

 atau

 SETB PS  SETB ES  SETB EA

EA - - ES ET1 EX1 ET0 EX0 - - PT2 PS PT1 PX1 PT0 PX0

komunikasi serial digunakan sebagai sumber

(9)

Sumber interupsi

 Interupsi eksternal INT0 dan INT1

masing-masing dapat diaktifkan dengan aktivasi

transisi (0) maupun level (1), tergantung pada bit IT0 dan IT1 pada register TCON.

Flag yang mengakibatkan interupsi yang

sebenarnya adalah bit IE0 dan IE1 pada

TCON. Jika rutin pelayanan (service

routine) interupsi divektorkan, perangkat

keras menghapus flag sehingga interupsi

(10)

Sumber interupsi

 Jika interupsi diaktifkan oleh level, maka

sumber luar yang meminta interupsi

(11)

Sumber interupsi

 Interupsi Timer 0 dan Timer 1 dihasilkan

oleh TF0 dan TF1, yang akan di-set oleh

overflow dari register Timer/Counter

yang bersangkutan (kecuali untuk Timer

0 pada Mode 3)

 Ketika interupsi timer terjadi, perangkat

keras dalam chip menghapus flag yang

(12)

Sumber interupsi

 Interupsi port serial dihasilkan oleh

gabungan logika OR dari RI dan TI. Kedua fag ini tidak dihapus oleh

perangkat keras jika rutin pelayanan

divektorkan ke keduanya. Bahkan rutin pelayanan harus menentukan apakan RI atau TI yang menghasilkan interupsi,

(13)

Sumber interupsi

 Semua bit yang mengakibatkan interupsi

dapat di-set dan dihapus melalui

perangkat lunak dengan hasil yang sama seperti dilakukan melalui perangkat

keras. Sehingga perangkat lunak dapat menghasilkan interupsi dan dapat

(14)

Sumber interupsi

 Masing-masing sumber interupsi ini dapat

dibuat enabled atau disabled secara

terpisah dengan men-set atau menghapus bit pada Special Function Register IE

(interrupt enable) pada alamat 0A8H. Sumber interupsi dapat pula dibuat

enable/disable secara keseluruhan dengan

menghapus bit global enable/disable

(15)

Stuktur Level Prioritas

 Setiap sumber interupsi dapat diprogram

secara terpisah ke satu atau dua level prioritas dengan men-set atau

menghapus bit pada Special Function

Register IP (Interrupt Priority) pada alamat 0B8H.

 IP dihapus setelah sistem direset

(16)

Stuktur Level Prioritas

 Interupsi prioritas rendah dapat

diinterupsi oleh interupsi prioritas tinggi tetapi tidak dapat diinterupsi oleh

interupsi prioritas rendah yang lain.

 Interupsi prioritas tinggi tidak dapat

(17)

Stuktur Level Prioritas

 Bagaimana Jika terdapat dua permintaan

interupsi yang berbeda level prioritas secara bersamaan…?

 permintaan dari level prioritas yang lebih

tinggi yang dilayani.

 Jika permintaan tersebut mempunyai level

prioritas yang sama, maka urutan polling

(18)

Stuktur Level Prioritas

 Di dalam setiap level prioritas terdapat

struktur prioritas kedua yang ditentukan oleh urutan polling internal, yaitu sebagai berikut: Vektor

interupsi InterupsiSumber

Prioritas dalam Level

1. 0003h IE0 Tertinggi 2. 000Bh TF0

3. 00013h IE1 4. 001Bh TF1 5. 0023H RI + TI

6 002Bh EXF2 atau

(19)

Stuktur Level Prioritas

 Struktur “prioritas dalam level” hanya

digunakan untuk mengatasi

(20)

Penanganan Interupsi

Flag interupsi diambil sebagai sampel pada

state ke 5 phase ke 2 (S5P2) dari setiap siklus mesin.

 Sampel-sampel tersebut kemudian

di-polling pada siklus mesin selanjutnya.

 Jika salah satu flag dalam keadaan set

pada S5P2 pada siklus sebelumnya, siklus polling akan mengetahuinya dan sistem interupsi akan menghasilkan LCALL

(21)

Penanganan Interupsi

dengan anggapan perangkat keras penghasil LCALL tidak dihalangi oleh salah satu dari kondisi berikut ini:

 Interupsi dari level prioritas yang sama atau

yang lebih tinggi yang sedang berlangsung

 Siklus polling pada saat itu tidak pada siklus

terakhir dalam eksekusi instruksi yang sedang berlangsung.

 Instruksi yang sedang berlangsung adalah RETI

(22)

Penanganan Interupsi

 Setiap kondisi tersebut di atas dapat

menghalangi terjadinya LCALL ke rutin pelayanan interupsi.

 Kondisi ke 2 memastikan bahwa instruksi yang

sedang dikerjakan harus selesai sebelum pemvektoran ke suatu rutin pelayanan.

 Kondisi 3 memastikan bahwa jika instruksi

yang sedang dikerjakan adalah RETI atau suatu perintah yang mempunyai akses ke IE atau IP, maka paling tidak satu atau lebih instruksi

(23)

Penanganan Interupsi

 Siklus polling diulangi pada setiap siklus

mesin, dan nilai yang di-polling adalah

nilai yang muncul pada S5P2 dari siklus mesin sebelumnya.

 Jika flag interupsi yang aktif tidak

terlayani karena salah satu kondisi di atas dan tidak aktif lagi ketika kondisi penghalang telah tidak ada, maka

(24)

Penanganan Interupsi

 Dengan perkataan lain, flag interupsi

yang pernah aktif tetapi tidak terlayani

tidak akan diingat. Setiap siklus polling

adalah baru. Urutan siklus polling / LCALL

digambarkan pada gambar 2

(25)

Penanganan Interupsi

 Prosesor meng-acknowledge permintaan

interupsi dengan mengeksekusi perangkat keras yang menghasilkan LCALL ke rutin pelayanan.

 Dalam beberapa kasus, perangkat keras

juga menghapus flag yang menyebabkan interupsi, sedangkan pada kasus yang lain

(26)

Penanganan Interupsi

 Prosesor menghapus falg interupsi

eksternal (IE0 atau IE1) hanya jika pada aktivasi transisi. Perangkat keras

penghasil LCALL menyimpan isi Program

Counter (PC) ke dalam stack (namun isi PSW tidak disimpan) dan mengisi

(27)
(28)

Penanganan Interupsi

 Eksekusi diproses dari lokasi tersebut

sampai dijumpai instruksi RETI.

 Instruksi RETI menginformasikan prosesor

bahwa rutin interupsi sudah berakhir, kemudian mengembalikan 2 byte dari

stack dan mengisi kembali Program Counter.

 Eksekusi program yang terinterupsi

(29)

Penanganan Interupsi

 instruksi RET juga dapat melanjutkan

eksekusi dari program yang terinterupsi, tetapi instruksi ini membiarkan sistem

kendali interupsi (interrupt control

(30)

Penanganan Interupsi

 Setelah interupsi diterima, maka terjadi

peristiwa berikut ini:

 Instruksi yang sedang berlangsung tetap

diselesaikan operasinya

 Isi Program Counter (PC) disimpan dalam stack

 Status interupsi yang sedang berlangsung

disimpan secara internal

 Interupsi di tahan pada level interupsi

 PC diisi dengan alamat vektor dari rutin

pelayanan interupsi (Interrupts Service Routine – ISR)

(31)

Penanganan Interupsi

 ISR dieksekusi dan tetap tanggap terhadap

adanya interupsi. ISR diakhiri dengan instruksi RETI (RETurn from Interrupt).

 Kemudian nilai PC sebelumnya yang

tersimpan dalam stack diisi kembali ke dalam PC dan megembalikan status

interupsi yang lama.

 Eksekusi program utama dilanjutkan

(32)
(33)

 Kerangka Program Interupsi

ORG 0h

LJMP main

. ;letak RLI (request Latency Interrupt/layanan interupsi)

. org 30h

 Main:….

 Jika ukuran RLI kurang dari 8 byte (tidak

(34)

Org 0h

EX1_RLI: ; LAYANAN INTERUPSI INT1 setB p1.5;; NYALAKAN LED

RETI

Org 30h Main:

Mov IE,#85h ; AKTIFKAN INTERUPSI EKTERNAL 0 DAN 1 Setb IT0 ; INTERUPSI NEGATIF EDGE UNTUK INT0 Setb IT1 ; UNTUK INT1

(35)

BANYAK INTERUPSI

(36)

Interupsi Eksternal

 Sumber eksternal dapat diprogram menjadi

diaktivasi secara level maupun transisi dengan men-set atau menghapus bit IT1 atau IT0 pad register

TCON.

 Jika Tx=0, interupsi eksternal x dipicu oleh adanya level rendah pada pin INTx.

 Jika Tx=1, interupsi eksternal x dipicu sisi ( edge-triggered).

 Pada mode ini jika pada pin INT x menunjukan tinggi pada satu siklus dan rendah pada siklus selanjutnya, flag permintaan interupsi IEx pada TCON akan

(37)

Interupsi Eksternal

 Bit flag IEx menandakan permintaan

interupsi. Karena pin interupsi eksternal

diperiksa sekali dalam setiap siklus mesin, masukan tinggi atau rendah harus tetap demikian selama paling sedikit 12 osilator perioda untuk

(38)

Interupsi Eksternal

 Jika interupsi eksternal adalah aktif transisi,:

 sumber eksternal harus menahan pin

permintaan menjadi tinggi untuk paling tidak satu siklus mesin,

 kemudian menahan menjadi rendah untuk

paling tidak satu siklus mesin untuk

memastikan transisi dapat dideteksi sehingga

flag permintaan interupsi IEx akan di-set.

 IEx secara otomatis akan dihapus oleh CPU

(39)

Interupsi Eksternal

 Jika interupsi eksternal adalah aktif level,

:

 sumber eksternal harus mempertahankan

permintaan hingga interupsi betul-betul diterima.

 Kemudian sumber eksternal harus tidak

diaktifkan sebelum rutin pelayanan

Gambar

tabel berikut ;

Referensi

Dokumen terkait

mempengaruhi kesetimbangan yaitu apabila tekanan diperbesar (volum diperkecil), kesetimbangan akan bergeser ke arah yang jumlah koefisiennya paling kecil..

[r]

01 terkhususnya dalam pengajaran PAK tidak ada buku pegangan murid. Hal ini juga dirasakan di SD Ngajaran 03 yang mana buku tidak lengkap dan harus usaha sendiri.

Hal ini ditemukan berdasarkan kajian teori yang dilakukan oleh penulis yang terakomodir dalam prosedur penelitian Research and Development secara terbatas dengan

Hasil analisis SWOT terhadap evaluasi pembelajaran berada pada strategi pengembangan SO (1.3 ; 1.0), strategi pengembangan yang digunakan adalah: (1) Lembar observasi penilaian

berpengaruh positif pada burnout , memiliki arti jika semakin tinggi role ambiguity yang dialami auditor di KAP Provinsi Bali dalam menjalankan profesinya

Jumlah Penduduk, Luas Wilayah dan Jumlah Kendaraan Bermotor menurut Provinsi Tahun 2013 .... Panjang Jalan menurut Provinsi dan Kewenangannya Tahun

Studi ini memperlihatkan realitas sosial dalam hubungan sosial antar etnis di Kelurahan Nyamplungan dalam membangun dan menjaga integrasi sosial. Adapun subyek