36
37
38
INTERUPSI
divide error
INT n, INT0
NMI
INTR
single step
PRIORITAS
tertinggi
terendah
Interupsi hardware berasal dari sinyal yang masuk lewat pin INTR
(untuk maskable interrupt, interupsi yang akan diabaikan uP jika bit 1
39
pada flag prosesor = 0) dan NMI (untuk non maskable interrupt, instruksi
yang tidak akan diabaikan uP).
INTERUPSI
NMI
IRQ0
IRQ1
IRQ2
IRQ3
IRQ4
IRQ5
IRQ6
IRQ7
LEVEL
tertinggi
terendah
40
mengatur transfer data di sini jika PIC diaktifkan dengan membuat pin CS
0. Data bus ini juga memungkinkan PIC mengirimkan interupsi ke uP.
41
-INTA
D0-D7
RD
WR
A0
A1
DATA
BUFFER
CONTROL LOGIC
OUT0
READ/WRITE
LOGIC
CS
ISR
CAS0
CAS1
CAS2
INT
CASCADE
BUFFER
COMPARATOR
PRIO
RITY
RES
OLV
ER
IR0
IRR
OUT2
IR7
INTERRUPT MASK REG
MR
SP/-EN
42
IMR
ISR
Priority resolver
43
44
ICW1
IS ICW
NEEDED
ICW2
ICW4
NO
IN CASCADE
MODE
YES
READY TO
ACCEPT
INTERRUPT
REQUEST
ICW3
Sesuai flowchart,
ICW1 dan ICW2 harus dikirimkan.
Karena kita menggunakan sistem 8086/8088, ICW4 juga dikirimkan.
Jika menggunakan kaskade PIC, maka ICW3 harus dikirimkan.
45
D7
A7
D6
A6
D5
A5
D4
1
D3
LTIM
D2
ADI
D1
SNGL
D0
IC4
46
Dari penjelasan di atas maka ICW 1 untuk PIC 8259 adalah 00010011b
atau 13H. Data ini dikirim ke address terminal A0 = 0.
D7
T7
D6
T6
D5
T5
D4
T4
D3
T3
D2
T2
D1
T1
D0
T0
47
D7
0
D6
0
D5
0
D4
SFNM
D3
BUF
D2
M/S
D1
AEOI
D0
uPM
48
Dari ICW di atas, maka sebelum PIC 8259 siap digunakan untuk menerima
masukan IRQ, ia harus diinisialisasi dengan program sebagai berikut:
mov dx,20H
mov al,13H
out dx,al
; mengirim ICW1
mov dx,21H
mov al,08H
out dx,al
: mengirim ICW2
mov al, 1H
out dx,al
;mengirim ICW4
D7
M7
D6
M6
D5
M5
D4
M4
D3
M3
D2
M2
D1
M1
D0
M0
49
Pada PC, OCW 1 bernilai 10111100, berarti IRQ yang aktif adalah IRQ6
(timer), IRQ1 (keyboard) dan IRQ0 (disk drive).
OCW2 pada umumnya digunakan untuk mereset salah satu bit dalam ISR
yang berhubungan dengan IRQ# yang sedang dilayani permintaannya saat
itu.
mov dx,20H
mov al,20H
out dx,al
; mengirim ICW1
Perintah di atas berarti mengisi OCW2 dengan data 20H dan dikirim ke
address 20H (00100000). Bit D5 berlogika 1 menandakan non specific
EOI Command yang bertujuan agar setelah suatu permintaan interupsi dari
IRQ# selesai dikerjakan, permintaan interupsi yang lain yang lebih rendah
dapat dilayani.
50
equ 08h
equ 09h
equ 00010011b ;8088,edge,;single,ICW4
equ 00001000b
equ 00000001b ;single, normal
equ 00000000b ;semua diaktifkan
; IR0
; IR1
; IR2
; IR3
; IR4
; IR5
; IR6
51
; IR7
mov al,ICW1
mov dx,PICA
out dx,al
;A0=0
mov al,ICW2
mov dx,PICB
out dx,al
;A0=1
;A0=1
mov al,OCW1
out dx,al
;A0=1
52