Rabu, 30 November 2011

Fungsi dan Interface Interrupt pada mikroprosessor 8051


Interrupt Pada MCS-51

a.      Mengenal interrupt

Interrupt membuat banyak hal bisa dikerjakan dalam satu waktu dan dalam keteraturan. Secara mudah, interrupt diartikan sebagai mekanisme di mana suatu perangkat keras komputer mengirimkan sinyal kepada prosesor untuk menghentikan sejenak aktivitasnya, untuk menanggapi dan menyediakan layanan yang diminta oleh perangkat keras tersebut. Sebagai analogi misalnya ketika kita menekan suatu tombol di keyboard. Setelah layanan direspon, maka prosesor akan kembali melakukan aktivitas semula. Contoh pertama ini disebut sebagai hardware interrupt request (IRQ).
Umumnya, setiap perangkat keras memiliki angka-angka tersendiri dalam IRQ, dimulai dari 0 sampai dengan 15. Semakin rendah indeksnya, semakin tinggi prioritasnya untuk ditangani oleh prosesor. Dengan adanya pengalamatan IRQ ini, maka prosesor jadi tahu, suatu request/interrupt berasal dari mana dan respon dikirim ke mana. Pengalamatan (assignment) IRQ dilakukan saat komputer booting.
8051 mempunyai 5 buah sumber interupsi. 2 buah interupsi eksternal, 2 buah interupsi timer dan 1 interupsi port serial. Meskipun memerlukan pengertian yang lebih mendalam, pengetahuan mengenai interupsi sangat membantu mengatasi masalah pemrograman mikroprosesor/mikrokontroler dalam hal menangani banyak peralatan input/output. Pengetahuan mengenai interupsi tidak cukup hanya dibahas secara teori saja, diperlukan contoh program yang konkrit untuk memahami.
Saat kaki RESET pada IC mikroprosesor/mikrokontroler menerima sinyal reset (pada MCS51 sinyal tersebut berupa sinyal ‘1’ sesaat, pada prosesor lain umumnya merupakan sinyal ‘0’ sesaat), Program Counter diisi dengan sebuah nilai. Nilai tersebut dinamakan sebagai vektor reset (reset vector), merupakan nomor awal memori-program yang menampung program yang harus dijalankan.
Pembahasan di atas memberi gambaran bahwa proses reset merupakan peristiwa perangkat keras (sinyal reset diumpankan ke kaki Reset) yang dipakai untuk mengatur kerja dari perangkat lunak, yakni menentukan aliran program prosesor (mengisi Program Counter dengan vektor reset).
Program yang dijalankan dengan cara reset, merupakan program utama bagi prosesor.
Peristiwa perangkat keras yang dipakai untuk mengatur kerja dari perangkat lunak, tidak hanya terjadi pada proses reset, tapi terjadi pula dalam proses interupsi.
Dalam proses interupsi, terjadinya sesuatu pada perangkat keras tertentu dicatat dalam flip-flop khusus, flip-flop tersebut sering disebut sebagai ‘petanda’ (flag), catatan dalam petanda tersebut diatur sedemikian rupa sehingga bisa merupakan sinyal permintaan interupsi pada prosesor. Jika permintaan interupsi ini dilayani prosesor, Program Counter akan diisi dengan sebuah nilai. Nilai tersebut dinamakan sebagai vektor interupsi (interrupt vector), yang merupakan nomor awal memori-program yang menampung program yang dipakai untuk melayani permintaan interupsi tersebut.
Program yang dijalankan dengan cara interupsi, dinamakan sebagai program layanan interupsi (ISR - Interrupt Service Routine). Saat prosesor menjalankan ISR, pekerjaan yang sedang dikerjakan pada program utama sementara ditinggalkan, selesai menjalankan ISR prosesor kembali menjalankan program utama, seperti yang digambarkan dalam Gambar 1.

Gambar 1 Bagan kerja prosesor melayani interupsi