SISTEM INTERUPSI MIKROKONTROLER ATMEL

dokumen-dokumen yang mirip
TERJADI INTERRUPT MELAYANI INTERRUPT KEMBALI MENERUSKAN PROGRAM YANG TERHENTI PROGRAM YANG SEDANG BERJALAN. Gambar 4.1 Interrupt

PERTEMUAN INTERUPSI MIKROKONTROLER 89C51

TIMER DAN COUNTER MIKROKONTROLER ATMEL

PORT SERIAL MIKROKONTROLER ATMEL AT89C51

REGISTER-REGISTER Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

Tabel Perbandingan ROM dan RAM pada beberapa seri ATMEL

Mikrokontroler 89C51 Bagian II :

Memprogram Interupsi AT89S51

Lab Elektronika Industri Mikrokontroler - 1 AT89C1051

MODE OPERASI TIMER/COUNTER. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

PERTEMUAN TIMER & COUNTER MIKROKONTROLER 89C51

Percobaan 5 PENGENALAN MIKROKONTROLER 8051

Gambar 3.1 Blok Diagram Port Serial RXD (P3.0) D SHIFT REGISTER. Clk. SBUF Receive Buffer Register (read only)

Materi 9: AVR Interrupt

PERTEMUAN MEMORY DAN REGISTER MIKROKONTROLER

AT89S52 8kByte In-System Programmable Mikrokontroler

Gambar 1.1. Diagram blok mikrokontroller 8051

Pengendalian 8 buah Motor oleh DST-51

I. Pendahuluan. Mikroprosesor CPU. Gambar 1. Perbedaan Mikrokontroler dengan Mikroprosesor

APLIKASI MIKROKONTROLER

ORGANISASI MEMORI MIKROKONTROLER MCS-51. Yoyo Somantri dan Erik Haritman Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

BAB II TEORI DASAR 2.1 Pendahuluan 2.2 Sensor Clamp Putaran Mesin

MIKROKONTROLER Arsitektur Mikrokontroler AT89S51

Alarm Pintu, Harap Pintu Tutup Kembali, Jangan Buka Pintu Lama-lama versi 2

ABSTRAK. rumah pelanggan listrik. Fungsi dari alat ini adalah menghitung seberapa besar

4. Port Input/Output Mikrokontroler MCS-51

BAB II LANDASAN TEORI. Definisi PLC menurut National Electrical Manufacturing Association (NEMA)

BAB II TEORI DASAR PENUNJANG

TI2043 Organisasi dan Arsitektur Komputer Tugas 2 Interrupt Driven I/O

PERTEMUAN PERANGKAT KERAS MIKROKONTROLER

Laporan Modul 2, EL3006 Timer/Counter dan Interrupt Jongguran Sondang DN ( )/ Kelompok 48/ Jumat, 14 Maret 2008 Asisten: Virgilius

BAB I PENDAHULUAN 1.1 Latar Belakang 1.2 Rumusan Masalah

Percobaan 8 INTERFACE MIKROKONTROLER DAN KOMPUTER SECARA SERIAL

TAMPILKAN NADA DTMF DAN DERING TELEPHONE OLEH MODUL DF-88 DAN MODUL DST-51 PADA LCD

Wireless Infrared Printer dengan DST-51 (Pengambilan Data dari Standard Parallel Port)

SINYAL INTERUPSI. 1. Latar Belakang

Mikroprosesor dan Antarmuka JNT - ITTELKOM. Interrupt. Oleh: Junartho Halomoan LOGO

Pertemuan 10 Arsitektur Mikrokontroler 8051

JUN - ITTELKOM. Interrupt. Definisi Interrupt [1]

Percobaan 5. TIMER/COUNTER Menggunakan DT-51 MinSys

I/O dan Struktur Memori

Blok sistem mikrokontroler MCS-51 adalah sebagai berikut.

Arsitektur Mikrokontroler

PERANCANGAN DAN PEMBUATAN ALAT PEMANTAU KEADAAN RUANGAN JARAK JAUH BERBASIS MIKROKONTROLER AT89S52 MENGGUNAKAN SMARTPHONE

Rangkuman Materi Presentasi AOK. Input/Output Terprogram, Intterupt Driven dan DMA. (Direct Memory Access)

Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

BAB 3 PERANCANGAN SISTEM

Timer Counter. D3 Telekomunikasi.

ORGANISASI KOMPUTER MATA KULIAH: SISTEM EMBEDDED PERTEMUAN 14

ELEKTRONIKA DIGITAL PIC 8259

BAB II LANDASAN TEORI

Sistem Mikrokontroler FE UDINUS

Organisasi Komputer & Organisiasi Prosesor

Wireless Infrared Printer dengan DST-51 (Komunikasi Infra Merah dengan DST-51)

PERTEMUAN. KOMUNIKASI MIKROKONTROLER 89C51 DENGAN KOMPUTER (Lanjutan)

TKC210 - Teknik Interface dan Peripheral. Eko Didik Widianto

BAB V HASIL DAN PEMBAHASAN Perangkat Keras (Hardware)

Mikrokontroler AVR. Hendawan Soebhakti 2009

JUN - ITTELKOM. INTERRUPT. DEFINISI INTERRUPT [1]

Lampiran 1. Spesifikasi mikrokontroler AT89S51 (Atmel Datasheet) Deskripsi pin

AKSES MEMORI Menggunakan DT-51 MinSys

REGISTER Register-register yang terdapat pada mikroprosesor, antara lain :

Materi 3. Komponen Mikrokomputer SYSTEM HARDWARE DAN SOFTWARE DADANG MULYANA

Bab II. Mobile Robot dan Komponennya

PERCOBAAN 15 I N T E R U P S I

MIKROKONTROLER AT89S52

Tabel 1. Karakteristik IC TTL dan CMOS

PANDUAN DASAR MIKROKONTROLER KELUARGA MCS-51

Register-register MT8888

Pertemuan ke - 12 Unit Masukan dan Keluaran Riyanto Sigit, ST. Nur Rosyid, S.kom Setiawardhana, ST Hero Yudo M, ST

DAFTAR ISI. ABSTRAK... i KATA PENGANTAR... ii DAFTAR ISI... iv DAFTAR GAMBAR... vii DAFTAR TABEL... x DAFTAR LAMPIRAN... xi

AD Channel AD Conversion

KONFIGURASI PIN-PIN MIKROPROSESOR Z 80. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

KOMPONEN INTERFACING. Yoyo somantri Dosen Jurusan Pendidikan Teknik Elektro FPTK Universitas Pendidikan Indonesia

MAKALAH. Timer atau Counter 0 dan 1. Oleh : Rizky Dwi N ( ) Satrio Teguh Yulianto ( ) D3 TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO

ANTAR MUKA DST-51 DENGAN MODUL AD-0809

Percobaan 6. SERIAL INTERFACE Menggunakan DT-51 MinSys

Mikroprosessor & Antarmuka

Memprogram Timer Counter

BAB III PERANCANGAN UIMEGA 8535

Apa itu timer/counter?

ARSITEKTUR MIKROKONTROLER AT89C51/52/55

Pertemuan 2 Organisasi Komputer II. Struktur & Fungsi CPU (I)

MIKROPROSESOR REGISTER-REGISTER MIKROPROSESOR INTEL

BAB III PERENCANAAN DAN REALISASI SISTEM

Pertemuan Ke-8 Unit I/O (Unit Masukan dan Keluaran)

BAB 2 LANDASAN TEORI. Agar kendaraan lebih teratur dan tidak terlalu padat, biasanya tempat perparkiran ini dibagi

BAB II TINJAUAN PUSTAKA

BAB IV HASIL PENGUKURAN DAN PENGUJIAN ALAT SISTEM PENGONTROL BEBAN DAYA LISTRIK

Memprogram Port sebagai Output dan Input Sederhana

BAB III PERANCANGAN SISTEM

P10 Media I/O Universitas Mercu Buana Yogyakarta

BAB II TEORI DASAR 2.1 Suara Ultrasonik 2.2 Mikrokontroler AT89C51

BAB II LANDASAN TEORI

PORT PARALEL MIKROKONTROLER ATMEL AT89C51

BAB III RANCANG BANGUN SISTEM KARAKTERISASI LED. Rancangan sistem karakterisasi LED diperlihatkan pada blok diagram Gambar

Organisasi Sistem Komputer. Port Serial

OPERATION SYSTEM. Jenis - Jenis Register Berdasarkan Mikroprosesor 8086/8088

MIKROPENGENDALI C TEMU 2b AVR ARCHITECTURE. Oleh : Danny Kurnianto,S.T.,M.Eng Sekolah Tinggi Teknologi Telematika Telkom

BAB 2 TINJAUAN TEORITIS

Transkripsi:

Lab Elektronika Industri Mikrokontroler 1 I. INTERUPSI SISTEM INTERUPSI MIKROKONTROLER ATMEL Interupsi adalah pengubahan urutan pelaksanaan program karena adanya suatu kejadian atau instruksi yang perlu dikerjakan lebih dahulu dan setelah itu kembali lagi ke urutan proses di program utama lagi. Sistem interupsi ini sangat berguna dalam proses kerja mikrokontroler karena bisa melakukan pekerjaan lain sementara itu juga memantau apabila ada kejadian yang perlu mendapat penanganan lebih dahulu. Misalnya, mikrokontroler untuk sementara dihentikan beroperasi untuk menghemat baterai (mode power down) dan baru akan mengerjakan instruksi tertentu apabila terdapat interupsi. Ada pula interupsi diperlukan karena ingin mokrokontroler segera menangani instruksi tertentu dan untuk sementara meninggalkan program utama. Urutan proses pengerjaan instruksi adalah mikrokontroler mengerjakan perintah dari atas ke bawah. Jika suatu saat terdeteksi ada interupsi, maka mikrokontroler akan meninggalkan program utama dan mengerjakan instruksi layanan interupsi. Layanan interupsi dimulai dari suatu vektor interupsi. Jika kemudian dijumpai RETI (return from interupt) maka mikrokontroler selesai menangani layanan interupsi dan kembali lagi ke program utama dimana saat dia meninggalkan tadi. II. SUMBER INTERUPSI AT89C51 menyediakan 5 sumber interupsi: 2 sumber interupsi dari luar (eksternal), INT0 dan INT1; 2 dari Timer 0 dan Timer 1 ketika terjadi timer overflow (TF0 dan TF1); dan 1 dari serial port ketika berhasil menerima data serial atau selesai mengirim data serial (RI, receive interupt dan TI, transmit interupt). Sedang untuk AT89C52/55 terdapat satu lagi sumber interupsi yaitu karena adanya Timer 2. Sumber interupsi eksternal berarti mikrontroler bisa diinterupsi dari luar secara hardware yang dimasukkan ke pin P3.2 ( INT0 ) dan pin P3.3 ( INT1). Sumber interupsi eksternal misalnya dari sensor (suhu, tekanan, cahaya, suara dll) yang sudah diubah ke digital. Untuk intrupsi eksternal bisa dipilih akan mendeteksi interusi pada kondisi level rendah atau pada saat transisi negatif. Untuk lebih jelasnya lihat gambar di bawah. Untuk memilih deteksi nterupsi eksternal pada level rendah atau transisi negatif dipakai bit IT0 dan IT1 (interupt transition) di register TCON - Timer Control Register. Jika ITx = 0 mendeteksi interupsi level rendah dan jika ITx = 1 akan mendeteksi interupsi karena transisi negatif.

Lab Elektronika Industri Mikrokontroler 2 Ketika terdeteksi adanya sinyal interupsi, flag IEx akan diset 1 dan interupsi kemudian dilayani. Saat layanan interupsi dikerjakan flag IEx kembali direset ke 0. Sumber interupsi berikutnya adalah adanya oveflow di Timer 0 atau Timer 1. Ketika isi cacahan timer melimpah, bit flag TFx akan diset 1 yang memberikan sinyal interupsi. Ketika kemudian layanan interupsi dikerjakan, flag ini akan direset ke 0 lagi. Sumber interupsi lain yaitu dari serial port. Ketika port serial berhasil merima kiriman data secara seri 1 byte maka bit RI (receive interupt) diset 1 yang menyebabkan terjadi interupsi. Ketika port serial berhasil mengirim data 1 byte secara seri, bit TI (transmit interupt) diset 1 sehingga akan menyebabkan interupsi. Baik kedua bit RI dan TI diset atau salah satu dari kedua bit saja yang diset 1, maka interupsi akan terjadi karena kedua bit dihubungkan dengan gerbang OR. Kedua bit yang diset hardware harus di-clear dengan software dahulu sehingga penerimaan data atau pengiriman data berikutnya bisa dilakukan. Khusus untuk AT89C52/55 karena ada Timer 2, maka ada sumber interupsi karena Timer 2 overflow dan/atau karena adanya transisi negatif ke pin EXF2

Lab Elektronika Industri Mikrokontroler 3 III. REGISTER PENGATUR INTERUPSI Mode interupsi diatur dengan register IE (interrupt enable) seperti gambar di bawah: IE - Interrupt Enable Register Alamat : 0A8H Reset : 00H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 EA - ET2 ES ET1 EX1 ET0 EX0 Bit = 1 akan membolehkan terjadi interupsi, jika bit = 0 tidak membolehkan interupsi. Bit Posisi Keterangan EA IE.7 Bit Enable All yang dipakai untuk mengaktifkan/mematikan semua interupsi. Jika EA = 0 semua interupsi akan dimatikan. Jika EA = 1 interupsi diaktifkan/ dimatikan tergantung dari bit-bit di masing-masing sumber interupsi. ET2 IE.5 Bit Enable Timer 2 interrupt untuk mengaktifkan/mematikan interupsi karena Timer overflow. Jika EA = 1 dan ET2 = 1 maka interupsi Timer 2 aktif. ES IE.4 Bit Enable Serial Interrupt untuk mengaktifkan/mematikan interupsi dari serial port. Jika EA = 1 dan ES = 1 maka interupsi serial port aktif. ET1 IE.3 Bit Enable Timer 1 Interrupt untuk mengaktifkan/mematikan itnerupsi karena Timer 1 overflow. Jika EA = 1 dan ET1 = 1 maka interupsi Timer 1 aktif. EX1 IE.2 Bit Enable External 1 Interrupt ( INT1) untuk mengaktifkan/mematikan interupsi eksternal ke pin INT1. Jika EA = 1 dan EX1 = 1 maka interupsi eksternal 1 aktif. ET0 IE.1 Bit Enable Timer 0 Interrupt untuk mengaktifkan/mematikan interupsi karena Timer 0 overflow. Jika EA = 1 dan ET0 = 1 maka interupsi Timer 0 aktif. EX0 IE.2 Bit Enable External 0 Interrupt ( INT0 ) untuk mengaktifkan/mematikan interupsi eksternal ke pin INT0. Jika EA = 1 dan EX0 = 1 maka interupsi eksternal 1 aktif. Prioritas interupsi dapat diatur dengan register IP seperti gambar di bawah. Prioritas hanya dibedakan dua yaitu prioritas tinggi dan rendah. Untuk mengbah ke prioritas tinggi, bit-bit yang sesuai di register IP harus diset 1. IP - Interrupt Priority Register Alamat : 0B8H Reset : 00H Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 - - PT2 PS PT1 PX1 PT0 PX0 Bit = 1 akan membolehkan terjadi interupsi, jika bit = 0 tidak membolehkan interupsi. Bit Posisi Keterangan PT2 IP.5 Bit Interrupt Priority Timer 2 untuk membuat interupsi prioritas tinggi. Jika PT2 = 1 prioritas tinggi, jika PT2 = 0 menjadi prioritas rendah. PS IP.4 Bit Interrupt Priority Serial Port untuk membuat interupsi prioritas tinggi. Jika PS = 1 prioritas tinggi, jika PS = 0 menjadi prioritas rendah. PT1 IP.3 Bit Interrupt Priority Timer 1 untuk membuat interupsi prioritas tinggi. Jika PT1 = 1 prioritas tinggi, jika PT1 = 0 menjadi prioritas rendah. PX1 IP.2 Bit Interrupt Priority External 1 ( INT1) untuk membuat interupsi prioritas tinggi. Jika PX1 = 1 prioritas tinggi, jika PX1 = 0 menjadi prioritas rendah. PT0 IP.1 Bit Interrupt Priority Timer 0 untuk membuat interupsi prioritas tinggi. Jika PT0 = 1 prioritas tinggi, jika PT0 = 0 menjadi prioritas rendah. PX0 IP.0 Bit Interrupt Priority External 0 ( INT0 ) untuk membuat interupsi prioritas tinggi. Jika PX0 = 1 prioritas tinggi, jika PX0 = 0 menjadi prioritas rendah. Saat reset, isi IP = 0 berarti semua sumber interupsi mempunyai prioritas rendah. Suatu interupsi prioritas rendah ketika sedang melaksanakan layanan interupsi dapat diinterupsi oleh sumber interupsi yang mempunyai prioritas tinggi tetapi tidak sebaliknya. Interupsi dengan prioritas

Lab Elektronika Industri Mikrokontroler 4 sama tidak bisa saling menginterupsi. Jika pada satu saat terdeteksi dua atau lebih interupsi sedang level interupsinya sama, maka dilakukan polling untuk memilih interupsi mana yang akan dilayani dulu. Urutan polling seperti tabel berikut: Interupsi Keterangan Prioritas Level Sama 1 IE0 Interupsi eksternal 0 ( INT0 ) Level tertinggi 2 TF0 Timer 0 overflow 3 IE1 Interupsi eksternal 0 ( INT1) 4 TF1 Timer 1 overflow 5 RI + TI Serial port 6 TF2 + EXF2 Timer 2 dan/atau Interupsi ekstertal 2 Level terrendah Bit-bit di register IE dan IP diatur dengan software dan bisa dialamat bit. IV. PENANGANAN INTERUPSI Jika sumber sumber interupsi mendeteksi adanya sinyal inerupsi maka mikrokontroler akan melaksanan instruksi LCALL (instruksi lompat) ke vektor interupsi yang berangkutan. Instruksi lompat memanggil layanan interupsi LCALL akan dilaksanakan oleh hardware dan hanya dihalangi jika: 1. Ada interupsi yang berlevel sama atau berlevel tinggi juga terjadi. 2. Layanan interupsi yang berlevel sama (dalam polling) atau intrupsi berlevel tinggi sedang dikerjakan dan belum selesai. 3. Melaksanakan instruksi RETI (return from interrupt) atau sedang mengisi register IE atau IP. Jika suatu interupsi terdeteksi tetapi tidak terlayani karena halangan seperti satu dari 3 hal di atas, maka interupsi baru tersebut tidak akan disimpan. Artinya jika halangan interupsi telah tidak ada sedang interupsi baru tidak ada lagi maka interupsi itu akan diabaikan dan dianggap tidak ada interupsi baru. Jika suatu interupsi terdeteksi dan tidak ada halangan, maka mikrokontroler akan memanggil layanan insterupsi yang dimaksud ke suatu alamat vektor intrupsi yang telah ditetapkan sbb: Interupsi Sumber Alamat Vektor Eksternal 0 IE0 0003H Timer 0 TF0 000BH Eksternal 1 IE1 0013H Timer 1 TF1 001BH Serial Port RI + TI 0023H Timer 2 TF2 + EXF2 002BH Reset Sistem RST 0000H Catatan: saat melaksanakan pemanggilan ke alamat vektor bit penyebab interupsi (sumber) akan di-clear ke 0 oleh hardware kecuali bit TI dan RI untuk serial port dan juga bit TF2 dan EXF2 untuk Timer 2 yang harus di-clear dengan software. Layanan interupsi berakhir ketika dalam instruksi interupsi dikerjakan instruksi RETI (return from interupt). Jika ditemukan RETI maka layanan insterupsi selesai dan program kembali ke program dimana tadi ditinggalkan. Instruksi RET (return) juga akan mengembalikan dari eksekusi layanan interupsi ke program utama yang tadi diinterupsi. Tetapi ada perbedaan dengan

Lab Elektronika Industri Mikrokontroler 5 instruksi RETI, jika hanya dengan instruksi RET maka program akan kembali dari layanan interupsi tetapi sistem masih menganggap bahwa interupsi masing aktif. Ketika sebuah interupsi diterima maka aksi berikut akan terjadi: 1. Operasi/instruksi yang sedang dikerjakan diselesaikan 2. Isi Program Counter (PC) disimpan ke stack 3. Status interupsi yang sekarang disimpan secara internal 4. Sumber interupsi yang sama levelnya diblokir 5. Isi Program Counter (PC) diisi dengan alamat vektor layanan interupsi 6. Layanan interupsi dikerjakan Layanan interupsi akan berhenti jika ditemukan instruksi RETI dan isi program counter (PC) dikembalikan dari stack. Instruksi dari program utama akan dilanjutkan dari mana ketika ditinggalkan. V. INTERUPSI DARI EKSTERNAL Interupsi dari luar yang masuk bisa aktif secara level atau aktif pada transisi negatif dengan cara mengatur bit ITx (interrupt transition) di register TCON. Jika ITx = 0, interupsi eksternal x akan terjadi jika dideteksi adanya logika 0 pada pin INTx. Dan jika ITx = 1, interupsi eksternal x akan terjadi jika dideteksi adanya perubahan logika 1 ke 0 (transisi negatif) pada pin INTx. Jika dideteksi adanya interupsi eksternal maka bit permintaan interupsi IEx di register TCON akan diset 1. Flag IEx = 1 untuk mengeluarkan permintaan interupsi. Karena sumber interupsi eksternal hanya akan dilihat sekali setiap satu siklus mesin (12 clock), maka harus dibuat bahwa interupsi eksternal menahan level 0 paling tidak selama 12 clock untuk menjamin interupsi eksternal telah dilihat. Jika interupsi eksternal aktif pada transisi negatif, maka sumber interupsi internal harus menahan level 1 selama 12 clock dan mengubah ke 0 kemudian menahan selama 12 clock untuk menjamin interupsi transisi negatif telah dilihat. Bit flag IEx akan di-clear ke 0 lagi oleh hardware ketika layanan interupsi dipanggil untuk dikerjakan. Jika interupsi eksternal aktif pada level rendah, sumber eksternal tersebut harus menahan level rendah itu sampai permintaan interupsi dihasilkan yang ditandai dengan bit flag IEx diset 1. Setelah IEx = 1, sumber eksternal tersebut harus dibuat ke 1 lagi (menon-aktifkan interupsi) sebelum pengerjaan layanan interupsi diselesaikan atau sebelum interupsi dari sumber lainnya muncul.

Lab Elektronika Industri Mikrokontroler 6 VI. WAKTU RESPON (Response Time)