• Tidak ada hasil yang ditemukan

Makalah Dan Tentang Interrupt Processor

N/A
N/A
Protected

Academic year: 2018

Membagikan "Makalah Dan Tentang Interrupt Processor"

Copied!
23
0
0

Teks penuh

(1)

Interupsi Procesor

2014

Created By

(2)

Daftar isi

Kata pengantar ... i

Daftar isi ... 1

BAB I PENDAHULUAN A. Latar Belakang ... 2

B. Rumusan Masalah ... 2

C. Tujuan ... 2

a. Tujuan Umum ... 2

b. Tujuan Khusus ... 2

D. Manfaat ... 3

BAB II PEMBAHASAN 1. Pengertian Interrupt ... 4

2. Vektor Interupsi ... 5

a. Maskable Interupt ... 8

b. Non-Maskable Interupt ... 8

c. Interupt Pada 8086 ... 9

d. Pemakaian Interupt ... 10

1. Pencegahan Interupt Pada Processor ... 13

2. Contoh Penerapan ... 14

2.1Pengendali Tungku Otomatis ... 14

2.2Sistem Alarm ... 16

3. Siklus Intruksi ... 18

4. Sinyal Interupsi ... 19

5. Mekanisme Interupsi ... 19

6. Interupsi Ditangguhkan ... 20

(3)

KATA PENGANTAR

Dengan mengucapkan puji syukur Alhamdulillah kepada Allah SWT, yang telah

melimpahkan segala rahmat dan hidayah-Nya, sehingga kami dapat mengerjakan makalah

interupsi processor ini dengan baik dan lancar. Kami berharap makalah ini dapat memberikan

motivasi kepada para mahasiswa-mahasiswi STMIK NURDIN HAMZAH untuk lebih giat

mempelajari dengan dalam hakekat yang terkandung dalam interupsi processor ini.

Kami juga meminta maaf yang sebesar-besarnya apabila ada kekurangan, kesalahan bahkan

kata-kata yang tidak berkenan di hati dan disisi lain kami sangat mengharapkan ada masukan

baik kritik maupun saran dari saudara. Sehingga penyusun dapat memperbaiki apa yang jadi

kekurangan kami karena tidak ada manusia yang sempurna kecuali Allah SWT.

Akhir kata kami mengharapkan makalah ini banyak manfaatnya bagi kami sendiri khususnya

maupun semua pihak pada umumnya.

(4)

BAB I

Pendahuluan

A. Latar Belakang

Interrupt bisa diibaratkan dalam kehidupan sehari-hari sebagai suatu proses berjalan,

namun belum selesai proses tersebut melakukan tugasnya, sudah dilaksanakan lagi proses

lainnya. Ibaratnya, ketika anda sedang melakukan suatu pekerjaan, katakanlah membaca

sebuah buku, belum selesai buku tersebut anda tamatkan, lalu telepon anda berbunyi,

sehingga anda melakukan percakapan terlebih dahulu melalui telepon tersebut. Setelah

pembicaraan selesai, anda melanjutkan membaca buku tadi. Menerima telepon di dalam

kejadian tersebut disebut dengan menyela. Begitu juga dengan proses yang terjadi pada

komputer, dan akan dibahas lebih lanjut di dalam makalah ini.

B. Rumusan Masalah

Adapun beberapa pokok materi yang akan dibahas di dalam makalah ini, yaitu :

- Pengertian Interrupt

- Software Interrupt

- Pencegahan Interrupt pada processor

C. Tujuan

Adapun tujuan dan manfaat dari pembuatan makalah ini, yaitu agar kita lebih

memahami dan mendalami apa itu interrupt. Dan Agar kita dapat mengetahui maupun

mendeteksi terjadinya interrupt pada processor, sehingga dapat mengendalikan terjadinya

interrupt pada processor tersebut.

a. Tujuan Umum

Dengan di adakannya pembuatan makalah pengantar teknologi informasi ini supaya kami

dapat memperoleh pengetahuan dan keterempilan tentang ilmu pengantar teknologi informasi.

Dengan makalah ini, kami juga dapat meningkatkan pemahaman tentang teori

(5)

b. Tujuan Khusus

Ø Menambah pengetahuan dalam bidang Pengantar Teknologi Informasi

Ø Menerapkan materi yang di peroleh dari kampus melalui kegiatan membuat makalah.

Ø Menambah wawasan dalam bidang pengantar teknologi ionformasi.

E. Manfaat

Pembuatan makalah Pengantar Teknologi Informasi ini memberikan mamfaat kepada

Mahasiswa – Mahasiswi STMIK NURDIN HAMZAH, khususnya antara lain yaitu :

Ø Sebagai penunjang dalam pembelajaran Pengantar Teknologi Informasi

Ø Dapat mempermudah dan lebih memperdalam lagi materi Pengantar Teknologi

(6)

BAB II

Pembahasan

1. Pengertian Interrupt

Interrupt atau interupsi adalah proses dalam komputer untuk meminta dilayani oleh

microprocessor sesuai dengan tingkat prioritasnya yang telah diatur sedemikian rupa oleh

sistem hardware computer.

CPU banyak melaksanakan routin untuk melakukan pelayanan pemrosesan ataupun

koordinasi kepada IC penunjang atau chipset dan peripherals pada saat diperlukan. Sehingga

CPU dapat melakukan operasi dengan 2 cara yaitu :

1. Operasi dengan polling

Operasi dengan polling berarti CPU selalu terus menerus menanyakan/ memantau ke

tiap-tiap komponen penunjang satu persatu meskipun komponen itu sedang tidak memerlukan

pelayanan.

2. Operasi dengan interrupt langsung

Operasi interrupt atau interupsi dilakukan oleh tiap-tiap komponen kepada CPU

bilamana memerlukan pelayanan pemrosesan, sehingga CPU tidak terus-menerus

menanyakan / memantau komponen itu. Setiap interupsi yang datang di kontrol oleh interrupt

controller di luar CPU.

Dalam keadaan CPU terkena interupsi, maka CPU untuk sesaat menghentikan

kegiatan pelayanan utama dan beralih melayani komponen yang menginterupsinya. Setelah

selesai dilayani CPU kembali melakukan pelayanan utamanya. Cara interupsi sangat

meningkatkan effisiensi operasi CPU dan melakukan tugasnya dengan cepat.

Di dalam pemrograman dengan bahasa assembler kita akan banyak sekali

menggunakan Interupsi untuk menyelesaikan suatu tugas.

Kadang-kadang proses dalam CPU mengalami interupsi untuk kejadian-kejadian yang

perlu segera mendapat respon, seperti pengetikan pada keyboard, proses I/O lainnya dan clock

(7)

1. Eksternal

Pada proses Eksternal, interrupt di bangkitkan oleh proses di luar program seperti proses

I/O dan clock. Seperti Software, interrupt jenis ini juga disebut System call. Contoh suatu

program ingin mencetak hasil dengan printer.

2. Internal

Pada proses Internal, interrupt dibangkitkan oleh proses program seperti devide for zero

error (Trapsinterrupt) dan software interrupt (dibangkitkan dengan perintah INT). Seperti

Hardware, terjadi karena adanya aksi pada perangkat keras, seperti penekanan tombol

keyboard atau menggerakkan mouse.

Ketika suatu interrupt terjadi, processor akan menyelesaikan siklus memori saat

ini,dan bercabang kepada routin khusus menangani interrupt tersebut, status dari program

saat ini akan disimpan dan routin interrupt handle umumnya akan mengembalikan kendali

program termasuk semua nilai register seakan-akan tidak pernah terjadi sesuatu (hanya

kehilangan beberapa siklus CPU), sedangkan traps interrupt tidak akan kembali ke

program dan menghentikan program tersebut. Pada bagian ini lebih memfokuskan pada

software interrupt.

Pada IBM PC dan kompatibelnya disediakan 256 buah interupsi yang diberi nomor 0

sampai 255. Nomor interupsi 0 sampai 1Fh disediakan oleh ROM BIOS, yaitu suatu IC

didalam komputer yang mengatur operasi dasar komputer. Jadi bila terjadi interupsi dengan

nomor 0-1Fh, maka secara default komputer akan beralih menuju ROM BIOS dan

melaksanakan program yang terdapat disana. Program yang melayani suatu interupsi

dinamakan Interrupt Handler.

2. VEKTOR INTERUPSI

Setiap interrupt akan mengeksekusi interrupt handlernya masing-masing berdasarkan

nomornya. Sedangkan alamat dari masing- masing interupt handler tercatat di memori dalam

bentuk array yang besar elemennya masing-masing 4 byte. Keempat byte ini dibagi lagi yaitu

2 byte pertama berisi kode offset sedangkan 2 byte berikutnya berisi kode segmen dari alamat

interupt handler yang bersangkutan. Jadi besarnya array itu adalah 256 elemen dengan ukuran

(8)

byte (256 x 4 = 1024) atau 1 KB dan disimpan dalam lokasi memori absolut 0000h sampai

3FFh. Array sebesar 1 KB ini disebut Interupt Vector Table (Table Vektor Interupsi).

Nilai-nilai yang terkandung pada Interupt Vector Table ini tidak akan sama di satu komputer

dengan yang lainnya.

Interupt yang berjumlah 256 buah ini dibagi lagi ke dalam 2 macam yaitu:

- Interupt 00h - 1Fh (0 - 31) adalah interrupt BIOS dan standar di semua komputer baik yang

menggunakan sistem operasi DOS atau bukan. Lokasi Interupt Vector Table-nya ada di

alamat absolut 0000h-007Fh.

- Interupt 20h - FFh (32 - 255) adalah interrupt DOS. Interrupt ini hanya ada pada komputer

yang menggunakan sistem operasi DOS dan Interupt Handler-nya diload ke memori oleh

DOS pada saat DOS digunakan. Lokasi Interupt Vector Tablenya ada di alamat absolut

07Fh-3FFh.

*00h Divide By Zero 10h Video Service

(9)

0Ah I/O Channel Action 1Ah BIOS time & date

0Bh COM 1 (serial 1) 1Bh Control Break

0Ch COM 2 (serial 2) 1Ch Timer Tick

0Dh Fixed Disk 1Dh Video Initialization

0Eh Diskette 1Eh Disk Parameters

0Fh LPT 1 (Parallel 1) 1Fh Graphics Char

Gambar 3.1. BIOS Interrupt

Interrupt ini telah dipastikan kegunaannya oleh sistem untuk keperluan yang khusus , tidak

boleh dirubah oleh pemrogram seperti yang lainnya.

 DEVIDE BY ZERO : Jika terjadi pembagian dengan nol maka proses akan segera dihentikan.

 SINGLE STEP : Untuk melaksanakan / mengeksekusi intruksi satu persatu.

 NMI : Pelayanan terhadap NMI (Non Maskable Interrupt) yaitu interupsi yang tak dapat dicegah.

 BREAK POINT : Jika suatu program menyebabkan overflow flag menjadi 1 maka interrupt ini akan melayani pencegahannya dan memberi tanda error.

Nomor

Interrupt

Nama

Interrupt

20h Terminate Program

21h DOS Function Services

22h Terminate Code

23h Ctrl-Break Code

(10)

25h Absolute Disk Read

26h Absolute Disk Write

27h Terminate But Stay Resident

Gambar 3.2. DOS Interrupt

Didalam pemrograman dengan bahasa assembler kita akan banyak sekali

menggunakan interupsi untuk menyelesaikan suatu tugas.

Kadang-kadang proses dalam CPU mengalami interrupsi untuk kejadian-kejadian

yang perlu segera mendapat respon, seperti pengetikan pada keyboard, proses I/O lainnya, dan

clock tick untuk mengupdate waktu system. Pada prinsipnya interrupt terbagi atas eksternal,

dan internal. Eksternal interrupt dibangkitkan oleh proses diluar program seperti proses I/O,

dan clock, sedangkan proses Internal interrupt dibangkitkan oleh proses program seperti

devide for zero error (Traps interrupt) dan Software interrupt (dibangkitkan dengan perintah

INT).

Ketika suatu interrupt terjadi, processor akan menyelesaikan siklus memori saat ini,

dan bercabang kepada rutin khusus menanggani interrupt tersebut, status dari program saat ini

akan disimpan dan rutin interrupt handle umumnya akan mengembalikan kendali ke program

termasuk semua nilai register seakan-akan tidak pernah terjadi sesuatu (hanya kehilangan

beberapa siklus CPU), sedangkan Traps interrupt tidak akan kembali ke program dan

menghentikan program tersebut.

Catatan : Pada bagian ini kita akan lebih memfokuskan diri pada Software interrupt

a. Maskable Interrupt

Processor dapat mencegah interrupt dengan menggunakan mask bit khusus interrupt.

Mask bit ini adalah bagian dari flag register pada microprocessor 8086 yang dikenal sebagai

interrupt flag (IF), jika bit ini clear (IF=0), dan terjadi permintaan interrupt pada pin Interrupt

Request, maka permintaan tersebut akan diabaikan.

(11)

Ada beberapa interrupt yang mana tidak dapat di mask atau diabaikan oleh processor,

hal ini terkait dengan tugas-tugas prioritas tinggi yang tidak boleh diabaikan (seperti terjadi

pariti pada memori atau kegagalan BUS). NMI memiliki prioritas yang absolut, dan ketika itu

terjadi, processor menyelesaikan siklus memori saat ini, dan kemudian bercabang ke rutin

khusus yang ditulis untuk menangani permintaan interrupt.

c. Interrupt pada 8086

Adapun urutan dari proses interrupt pada microprocessor 8086 dapat dijelaskan sebagai

berikut:

1. Interface eksternal mengirim suatu sinyal interrupt ke pin Interrupt Request (INTR), atau

suatu internal interrupt terjadi.

2. CPU menyelesaikan instruksi yang berlangsung dan mengirim (untuk suatu hardware

interrupt) dan mengirim Interrupt Acknowledge (INTA) ke interface hardware.

Hendra, MT. & Hartono, M.Kom. 19 Pemrograman Bahasa Rakitan

3. Interrupt jenis N (masing-masing interrupt memiliki nomor) dikirim ke Central Processing

Unit (CPU) melalui data bus dari interface hardware.

4. Isi dari register flag didorong ke stack.

5. Flag interrupt (IF) dan trap (TF) di clear, hal ini akan mencegah pin INTR dan kemampuan

single-step untuk proses debugging (trap)

6. Isi dari register CS didorong ke Stack

7. Isi dari register IP didorong ke Stack

8. Isi dari vektor interrupt diambil, dari (4 x N) dan kemudian ditempatkan ke IP dan dari (4 x

N + 2) ke CS, sehingga instruksi berikutnya yang akan dijalankan adalah procedure dari

(12)

9. Ketika kembali dari rutin interrupt-service oleh instruksi Interrupt Return (IRET),

nilai IP, CS dan register Flag akan ditarik dari Stack dan kembali ke kondisi

sebelum terjadinya interrupt.

Fungsi yang tersedia dalam interrupt dapat terdiri dari layanan hardware seperti

screen, diskdrive, printer, serial port dan keyboard, maupun layanan secara software seperti

directory dan file.

Untuk melakukan panggilan terhadap rutin interrupt menggunakan perintah INT N

Dimana N merupakan nomor interrupt yang dapat bernilai 0 s/d 255, yang umumnya ditulis

secara hexadecimal 0 s/d FF Pada kenyataannya masing-masing interrupt terbagi lagi sub-sub

layanan, yang ditentukan pada nilai register AH, sebelum interrupt tersebut dipanggil,

sehingga kita dapat memiliki 256 x 256 = 65536 fungsi layanan. Hendra, MT. & Hartono,

M.Kom. 20 Pemrograman Bahasa Rakitan

d. Pemakaian Interrupt

Seperti yang telah dijelaskan sebelumnya, salah satu parameter layanan fungsi

interrupt adalah sub layanan yang ditentukan oleh nilai register AH, selain nilai register AH,

kita juga perlu mengisi nilai-nilai register lainnya sesuai dengan kebutuhan layanan interrupt

tersebut.

Contoh:

INT 21,9 - Print String

AH = 09

DS:DX = menunjuk alat suatu striung yang diakhir dengan "$"

returns nothing

- outputs character string to STDOUT up to "$"

- backspace is treated as non-destructive

- if Ctrl-Break is detected, INT 23 is executed

Berdasarkan data tersebut diatas, maka untuk pemakaian interrupt $21, sub layanan

(13)

review kembali program hello world sebelumnya. Dimana kita menggunakan INT $21 sub

layanan AH=$9 untuk mencetak tulisan yang berada dioffset DX=$102. Jadi dalam hal ini

AH dan DX merupakan parameter bagi INT $21.

0B11:0100 jmp 112

0B11:0102 db 'hello world !',0d,0a,'$'

0B11:0112 mov ah,9

jenis COM, nilai DS, ES, dan SS adalah sama dengan CS.

Pada contoh sebelumnya kita bekerja dengan rutin interrupt yang tidak

mengembalikan hasil, tetapi hanya proses mencetak string ke layar, berikut ini kita akan

membahas rutin interrupt yang mengembalikan hasil.

INT 21,8 - Console Input Without Echo

AH = 08

Hendra, MT. & Hartono, M.Kom. 21

Pemrograman Bahasa Rakitan

on return:

AL = character from STDIN

- returns 0 for extended keystroke, then function must be

called again to return scan code

- waits for character from STDIN and returns data in AL

- if Ctrl-Break is detected, INT 23 is executed

Berdasarkan data tersebut diatas, maka untuk menjalankan fungsi Int $21 “Console Input Without Echo”, kita perlu ditentukan nilai register AH=$8, dan interrupt rutin akan menunggu karakter dari STDIN, jika ada karakter yang diketik, maka akan disimpan di

(14)

Untuk kongkritnya mari kita lihat contoh berikut ini, dimana setelah mencetak pesan

“Ketik huruf A untuk selesai”, program akan menanti input dari keyboard dengan

menggunakan INT $21 sub layanan AH=$8, dan nilai ASCII dari input keyboard akan

dikembalikan di register AL. Selanjutnya program dapat membandingkan nilai register AL

dengan $41 (65 desimal).

0B11:0100 mov ah,9

0B11:0102 mov dx,113

0B11:0105 int 21

0B11:0107 mov ah,8 ;baca dari STDIN tanpa echo

0B11:0109 int 21 ;karakter dikembalikan ke AL

0B11:010B cmp al,41

0B11:010D jnz 100

0B11:010F mov ah,4c

0B11:0111 int 21

0B11:0113 db „Ketik huruf A untuk selesai‟,0d,0a,‟$‟

0B11:0131

INT 21,3B - Change Current Directory (chdir)

AH = $3B

DS:DX = pointer to ASCIIZ path name

on return:

CF = 0 if successful

= 1 if error

AX = error code if CF set (see DOS ERROR CODES)

- changes the current directory to the directory specified

by pointer DS:DX

1 Fungsi yang tersedia dalam interrupt

Fungsi yang tersedia dalam interrupt dapat terdiri dari layanan hardware seperti

screen, diskdrive, printer, serial port dan keyboard, maupun layanan secara software seperti

(15)

Untuk melakukan panggilan terhadap routin interrupt menggunakan perintah INT N.

Dimana N merupakan nomor interrupt yang dapat bernilai 0 s/d 255, umumnya ditulis secara

hexadecimal 0 s/d FF. Pada kenyataannya masing-masing interrupt terbagi lagi sub-sub

layanan, yang ditentukan pada nilai register AH, sebelum interrupt tersebut dipanggil.

Sehingga kita dapat memiliki 256 × 256 = 65536 fungsi layanan.

2 Penyebab terjadinya Interrupt:

a. Program, terjadi akibat eksekusi suatu instruksi

b. Timmer, disebabkan oleh timmer prosessor

c. I/O, disebabkan oleh I/O controller baik sebagai tanda bahwa operasi

telah selesai maupun memberi tanda eror.

d. Kegagalan hardware, disebabkan oleh kesalahan hardware seperti

power failure dan memori parity eror.

3 Ada dua aksi yang diberikan saat terjadi interrupt:

a. Syncronous I/O. I/O dijalankan, I/O selesai digunakan, kontrol

menginformasikan kembali ke user proses. Untuk menunggu selesai

digunakannya I/O, digunakan perintah wait.

b.Asyncronous I/O. Kembali ke user program tanpa harus menunggu I/O.

1. Pencegahan interrupt pada processor :

Interrupt ini terbagi lagi menjadi dua,yaitu: Maskable Interrupt(terjadi

karena aksi luar) dan NonMaskable Interrupt(terjadi karena memori atau

kesalahan parity pada program) :

- Maskable Interrupt

Processor dapat mencegah interrupt dengan menggunakan mask bit khusus interrupt.

Mask bit ini adalah bagian dari flag register pada microprocessor 8086 yang dikenal

sebagai interrupt flag (IF), jika bit ini clear (IF=0), dan terjadi permintaan interrupt

pada pin interrupt requaest, maka permintaan tersebut akan diabaikan.

- Non-maskable interrupt

Ada beberapa interrupt yang mana tidak dapat di mask atau diabaikan oleh processor.

(16)

terjadi pariti pada memori atau kegagalan BUS). NMI memiliki prioritas yang absolut,

dan ketika itu terjadi, processor menyelesaikan siklus memori saat ini, dan kemudian

bercabang ke routin khusus yang di tulis untuk menangani permintaan interrupt.

Tindak lanjut Pencegahan Interrupt :

1. Interrupt Handler

Jika terjadi interupsi, maka kendali processor diserahkan ke bagian penata interupsi

pada sistem operasi, maka penata interupsi inilah yang melaksanakan interupsi.

a. Instruksi yang sedang diolah oleh processor dibiarkan sampai selesai program.

b. Penata interupsi merekam semua informasi proses ke dalam blok kendali proses.

c. Penata interupsi mengidentifikasi jenis dan asal interupsi.

d. Penata interupsi mengambil tindakan sesuai dengan yang dimaksud interupsi.

e. Penata interupsi mempersiapkan segala sesuatu untuk pelanjutan proses yang

diinterupsi.

2. Error handler

Yaitu interupsi karena kekeliruan pada pengolahan proses dan bagian pada sistem

operasi yang menata kegiatan akibat kekeliruan.

a. Pemulihan, komputer telah dilengkapi dengan sandi penemuan dan pemulihan

kekeliruan. Sehingga ketika menemukan kekeliruan sandi akan mengoreksi kekeliruan

itu, dan proses pulih kembali ke bentuk semula sebelum terjadi kekeliruan.

b. Pengulangan, mengatur agar proses yang membangkitkan interupsi keliru dikerjakan

ulang. Jika kekeliruan dapat diatasi maka proses akan berlangsung seperti biasa, jika

tidak teratasi maka interupsi akan menempuh tindak lanjut keluar dari proses.

c. Keluar dari proses, penata keliru menyiapkan tampilan berita keliru pada monitor,

setelah itu processor keluar dari proses , ini adalah tindakan terakhir jika tidak dapat

menolong proses yang keliru tersebut.

2. Contoh Penerapan Interrupt

Ada banyak contoh penerapan sistem interupsi mikroprosesor, tetapi pada modul ini hanya akan diberikan 2 contoh saja, yaitu aplikasi pada mesin pengendali tungku otomatis dan sistem alarm.

(17)

Pada Gambar 11.1 ditunjukkan rangkaian dasar pengendali tungku otomatis agar suhu tungku tetap terjaga pada jangkauan 80±5 derajat Celcius. P1.7 digunakan untuk menghidupkan dan mematikan pemanas sesuai dengan logika aktif tinggi (1 = ON dan 0 = OFF). Sensor temparatur dihubungkan ke INT0 dan INT1 dengan ketentuan:

PANAS = 0, jika T > 850C

DINGIN = 0, jika T < 750C

Gambar 11.1 Rangkaian Dasar Pengendali Tungku

Dengan demikian program harus mampu menghidupkan tungku saat suhu kurang dari

750C dan mematikannya saat suhu lebih dari 850C. Diagram pewaktuan sistem ini

diperlihatkan pada Gambar 11.2 di bawah ini.

Gambar 11.2 Diagram Pewaktuan Pengendali Tungku AT8951

DINGIN

INT0

INT1

P1.7 Kendali

Tungku PANAS

T = 85oC

T = 80oC

T = 75oC

PANAS

DINGIN

(18)

Pada program diatas, tiga instruksi pertama pada program utama (baris 13 hingga

ke-15) digunakan untuk mengaktifkan interupsi dan menjadikan INT0 dan INT1 jenis interupsi

tepian sisi negatif (negative edge trigerred). Karena kondisi masukan-masukan PANAS

(P3.3) dan DINGIN (P3.2) saat itu belum diketahui, maka tiga instruksi berikutnya (baris

ke-16 hingga ke-18) dibutuhkan untuk menghidupkan atau mematikan tungku. Sedangkan pada

baris ke-19, pengendali akan diam untuk menunggu sampai ada interupsi terjadi.

Secara keseluruhan, pertama tungku dihidupkan (SETB P1.7 pada baris ke-16).

Kemudian, masukan dari PANAS diperikasa (baris ke-17). Jika tidak panas, atau suhunya

kurang dari 75oC, tungku dibiarkan menyala, ON, dan program menunggu. Namun, bila suhunya telah melebihi 85oC tungku akan dipadamkan, OFF, dengan cara memberikan instruksi CLR P1.7 pada baris ke-18. Setelah itu, program akan menunggu.

Pada masa menunggu inilah, interupsi dipersilakan oleh program. Jika terjadi interupsi

dari EXT0, berarti sensor mendeteksi bahwa suhu tungku telah melebihi 85oC, sehingga tungku harus dipadamkan (instruksi ini terdapat pada baris ke-6). Demikian pula sebaliknya,

jika terdapat interupsi EXT1, berarti sensor mendeteksi bahwa suhu tungku lebih rendah dari

75oC, sehingga tungku harus dinyalakan (instruksi ini terdapat pada baris ke-9).

2.2. Sistem Alarm

Akan dirancang suatu sistem alarm yang diaktifkan melalui interupsi. Sistem ini akan

menghasilkan alarm 400 Hz selama 1 detik. Rangkaian dasar sistem alarm ditampilkan pada

Gambar 11.3, dimana speaker dihubungkan dengan P1.0 akan aktif jika dideteksi pintu

terbuka melalui saluran INT0 dengan sistem pemicuan tepi transisi 1 ke 0.

(19)

Untuk menghasilkan alarm dengan frekuensi 400 Hz selama 1 detik, maka perlu

dirancang diagram pewaktuannya, seperti yang tampak pada Gambar 11.4 di bawah ini.

Gambar 11.4. Diagram Pewaktuan Sistem Alarm

Dalam kasus ini, digunakan tiga buah interupsi, yaitu: interupsi eksternal 0 (INT0)

untuk sensor pintu, interupsi timer 1 (ET1) untuk menghasilkan alarm atau nada 400 Hz dan

interupsi timer 0 (ET0) untuk memberikan tundaah 1 detik.

Program utama, diawali pada alamat 30H, hanya mengandung 4 (empat) buah

instruksi saja. Instruksi pertama (baris ke-12) menjadikan pemicu interupsi (berasal dari

sensor pintu) diaktifkan secara transisi dari 1 ke 0 (negative edge trigerred). Kemudian,

diikuti konfigurasi untuk Timer0 dan Timer1 sebagai pewaktu 16 bit (baris ke-13). Setelah

itu, pengaturan interupsi pada baris ke-14 dimana hanya interupsi eksternal saja yang

diaktifkan. Program utama ini diakhiri pada baris ke-15 dengan menunggu interupsi yang

akan terjadi.

Saat sensor pintu mendeteksi pintu terbuka (ditandai dengan transisi 1 ke 0 pada

INT0), sebuah interupsi eksternal EX0RL1 diaktifkan. Subrutin interupsi EX0RL1 diawali

dengan menyimpan konstanta 20 ke Register R7 (baris ke-25). Kemudian, tanda limpahan

untuk kedua Timer disiapkan untuk mengaktifkan interupsi Timer0 dan Timer1 (baris ke-18

1 detik

1.25 ms

2.5 ms P1.0

P1.0

(20)

dan ke-19). Interupsi Timer tersebut hanya akan aktif, jika bit-bit yang terkait dalam register

Interrupt, yaitu ET0 dan ET1 juga aktif (baris ke-20 dan ke-21).

Timer0 digunakan untuk memberikan tundaan selama 1 detik, sedangkan Timer1

dimanfaatkan untuk membangkitkan frekuensi 400 Hz yang dihubungkan ke buzzer atau

speaker melalui port P1.0 Setelah EX0RL1 selesai dikerjakan, segera terjadi interupsi timer,

baik Timer0 maupun Timer1. Karena adanya polling, maka interupsi Timer0 yang dikerjakan

terlebih dahulu. Tundaan selama 1 detik dihasilkan dengan cara mengulang 20 kali tundaa

50000 us (dalam hal ini, R7 dijadikan sebagai penghitung, seperti tercantum pada baris ke-17

dan ke-25). Pada saat penundaan selama 1 s berlangsung, yang terjadi adalah sebagai berikut:

Pertama, Timer0 akan dinonaktifkan (baris ke-24) dan register R7 diturunkan 1 nilainya,

kemudian, TL0 dan TH0 diisi-ulang dengan -50000 (baris ke-30 dan ke-31). Timer0

kemudian dihidupkan kembali (baris ke-32) dan selesai. Saat terakhir kali pengulangan

(looping), nilai register R7 diturunkan sehingga berharga 0. Kedua Timer dimatikan (baris

ke-26 dan ke-27) dan selesai. Tidak ada interupsi Timer lagi hingga dideteksi interupsi eksternal

(dari pintu) berikutnya.

Timer1 digunakan untuk menghasilkan nada 400 Hz. Dalam hal ini frekuensi 400 Hz

membutuhkan periode gelombang sebesar 2500 us atau masing-masing 1250 us untuh sinyal

HIGH dan LOW, seperti yang tampak pada Gambar 11.4.

3. Siklus Instruksi

v Instruction Addess Calculation (IAC), yaitu mengkalkulasi atau menentukan alamat instruksi berikutnya yang akan dieksekusi. Biasanya melibatkan penambahan bilangan tetap ke alamat instruksi sebelumnya

v Instruction Fetch (IF), yaitu membaca atau pengambil instruksi dari lokasi memorinya ke CPU

v Instruction Operation Decoding (IOD), yaitu menganalisa instruksi untuk menentukan jenis operasi yang akan dibentuk dan operand yang akan digunakan

v Operand Address Calculation (OAC),yaitu menentukan alamat operand, hal ini dilakukan apabila melibatkan referensi operand pada memori

v Operand Fetch (OF),adalah mengambil operand dari memori atau dari modul 1/0

(21)

v Operand store (OS),yaitu menyimpan hasil eksekusi ke dalam memori

-Fungsi Interrupt

v Fungsi interupsi adalah mekanisme penghentian atau pengalihan pengolahan instruksi

dalam CPU kepada routine interupsi. Hampir semua modul (memori dan I/0) memiliki

mekanisme yang dapat menginterupsi kerja CPU

v Tujuan interupsi secara umum untuk menejemen pengeksekusian routine instruksi agar

efektif dan efisien antar CPU dan modul - modul I/0 maupun memori

v Setiap komponen komputer dapat menjalankan tugasnya secara bersamaan, tetapi kendali

terletak pada CPU disamping itu kecepatan eksekusi masing - masing modul berbeda

sehingga dengan adanya fungsi interupsi ini dapat sebagai sinkronisasi kerja antar modul

4. Sinyal Interupsi

v Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi yang terjadi pada

hasil eksekusi program. Contohnya: arimatika overflow, pembagian nol, oparasi ilegal

v Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor. Sinyal ini

memungkinkan sistem operasi menjalankan fungsi tertentu secara reguler

v //0, sinyal interupsi yang dibangkitkan oleh modul I/0 sehubungan pemberitahuan kondisi

error dan penyelesaian suatu operasi

v Hardware failure, adalah interupsi yang dibangkitkan oleh kegagalan daya atau kesalahan

paritas memori

5. Mekanisme Interupsi

v Saat suatu modul telah selesai menjalankan tugasnya dan siap menerima tugas berikutnya

maka modul ini akan mengirimkan permintaan interupsi ke prosesor

v Prosesor akan menghentikan eksekusi yang dijalankannya untuk menghandel routine

interupsi

v Setelah program interupsi selesai maka prosesor akan melanjutkan eksekusi programnya

(22)

v Saat sinyal interupsi diterima prosesor ada dua kemungkinan tindakan, yaitu interupsi

diterima/ditangguhkan dan interupsi ditolak

6. Iterupsi Ditangguhkan

v Prosesor menangguhkan eksekusi program yang dijalankan dan menyimpan konteksnya.

Tindakan ini adalah menyimpan alamat instruksi berikutnya yang akan dieksekusi dan data

lain yang relevan

(23)

BAB III

Penutup

1. Kesimpulan

Interrupsi atau bisa disebut Interrupt memiliki pengertian suatu permintaan khusus

kepada mikroprosessor untuk melakukan sesuatu. Bila terjadi interupsi, mikroprosesor akan

menghentikan dahulu apa yang sedang dikerjakannya dan mengerjakan permintaan khusus

tersebut. Atau secara harfiah, Interrupt dalam bahasa Indonesianya diartikan sebagai selaan,

menyela, atau menjegal.

Apabila sebuah komputer melakukan prosesnya tanda ada gangguan, tentu komputer

tersebut dapat menyelesaikan pekerjaannya dengan serius khusus untuk satu pekerjaan yang

sedang dikerjakannya. Dalam kondisi demikian, komputer anda melakukan tugasnya yang

disebut dengan primitive batch processing. Pekerjaan seperti ini digunakan oleh komputer

pada komputer zaman awal-awal ditemukannya. Dimana komputer tidak bisa mengerjakan

beberapa program sekaligus dalam waktu bersamaan, sampai satu pekerjaan selesai

dikerjakan, maka baru dia bisa berpindah ke pekerjaan lainnya.

Dan pada saat ini, komputer terkini memiliki kemampuan interrupt ini. Penulis

melakukan pengetikkan naskah ini sambil mendengarkan musik yang terpasang pada

notebook yang digunakan, tidak jarang komputer ini juga sambil terhubung dengan Internet

Gambar

Gambar 3.1. BIOS Interrupt
Gambar 3.2. DOS Interrupt
Gambar 11.1 Rangkaian Dasar Pengendali Tungku
Gambar 11.3 Rangkaian Dasar Sistem Alarm
+2

Referensi

Dokumen terkait

untuk mengetahui kesalahan siswa dalam mengerjakan soal operasi hitung pecahan. Peneliti menemukan tipe kesalahan yang dilakukan siswa dalam menyelesaikan soal

Sistem kendali open loop adalah suatu sistem yang output-nya tidak akan memiliki pengaruh terhadap input-nya kembali sehingga hasil pada output tidak dapat

Kondisi ini dapat terlihat dalam perwilayahan komoditas, aktivitas pertanian kurang mendapat sorotan yang lebih mendetail mengenai jenis pertanian pada tataran Rencana Tata Ruang

VNC adalah sebuah software remote control, dimana dengan melalui software ini suatu komputer dapat melakukan akses untuk bekerja di suatu komputer lain yang

Selain berkomunikasi dengan antar pengguna jalan lain menggunakan isyarat lampu dan isyarat suara para awak bus seperti asisten pengemudi (kernet),dan kondektur pun

Dalam konteks kajian keragaman (multikultural) pandangan ini sangat superficial (Summer, 2010,). Pada tahap ini paling sering orang menganggap sebagai multikultural misalnya

sehingga dibutuhkan suatu media informasi tentang bagaimana belajar tentang teknik dasar dari bermain futsal yang dapat diajadikan sebagai suatu metode pembelajaran untuk

1.2.3 Bagaimana hasil penelitian tentang pengaruh penambahan jus tomat pada media Vacin &amp; Went (VW) terhadap pertumbuhan planlet anggrek Dendrobium