PIC 8259 (Programmable Interrup Controller)
berikut ini adalah gambar IC PIC 8259 :
Ada 2 cara melayani sinyal trigger dari piranti luar :
- Interrupsi : Subrutin dijalankan jika ada trigger dari luar piranti
- Polling : mikroprosesor menyatakan pada piranti-piranti luar secara bergilir apakah ada tugas.
Request
|
Interrupt
|
Prioritas
|
|
IRQ 0
|
Type 8
|
Timer
|
Tertinggi
|
IRQ 1
|
Type 9
|
Keyboard
|
Ke-2
|
IRQ 2
|
Type A
|
Kosong
|
Cadang AT
|
IRQ 3
|
Type B
|
Komunikasi serial ke-2
|
Ke-4
|
IRQ 4
|
Type C
|
Komunikasi serial ke-1
|
Ke-5
|
IRQ 5
|
Type D
|
Fixed Disk
|
Ke-6
|
IRQ 6
|
Type E
|
Disk Drive
|
Ke-7
|
IRQ 7
|
Type F
|
Printer
|
Terendah
|
PIC 8259 mempunyai 4 register :
1. Interup Request Register (IRR) :
→ 8-bit data internal yang setiap bitnya mewakili masing-masing IRQ#.
2. Priority Resolver (ISR) :
→ Menentukan prioritas bagi setiap bit IRQ yang ada
3. In Service Register (ISR) :
→ Menyimpan data IRQ# yang sedang dilayani permintaannya.
4. Interrupt Mask Register (IMR) :
→ Menyimpan data IRQ# yang di-mask (nonaktif) dan unmask (aktif)
Fungsi pin-pin PIC 8259 :
1. D7-D0 : Data bus
2. RD : Proses pembacaan, aktif low
3. WR : Proses penulisan, aktif low
4. AO : A0=0 → Address 20h
A0=1 → Address 21h
5. CS : Chip select
6. CAS0-CAS2 : Penulisan PIC
2. Operational Control Word (OCW)
terdiri dari 3 jenis yaitu OCW 1 sampai OCW 3. OCW 1 berfungsi untuk mengatur data yang disimpan dalam IMR (Interrupt Mask Register) atau yang berfungsi menentukan IRQ# yang akan kita mask (disable) dan unmask (enable)
→ Menyimpan data IRQ# yang di-mask (nonaktif) dan unmask (aktif)
Fungsi pin-pin PIC 8259 :
1. D7-D0 : Data bus
2. RD : Proses pembacaan, aktif low
3. WR : Proses penulisan, aktif low
4. AO : A0=0 → Address 20h
A0=1 → Address 21h
5. CS : Chip select
6. CAS0-CAS2 : Penulisan PIC
Inisialisasi:
Ada 2 data inisialisasi yaitu ICW dan OCW.
Ada 2 data inisialisasi yaitu ICW dan OCW.
1. Initialization Control Word (ICW):
menyiapkan piranti agar dapat
menerima satu interrupt atau lebih.
a. ICW1 :
A0
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
0
|
A7
|
A6
|
A5
|
1
|
LTIM
|
ADI
|
SNGL
|
IC4
|
1. A0 : alamat internal tujuan
pengiriman ICW1
2.
D7-D5: untuk sistem µP 8085
3.
D4: harus diberi logika 1
4.
D3 = 0, melayani permintaan interrupt jika IRQ#
berubah dari 0 ke 1.
5.
D2 = 0, karena tidak dipakai di µP 8088
6.
D1 : 0 bila beroperai dalam perluasan
7.
D1 = 1 karena µP 8088 perlu ICW4
b. ICW2 :
Nomor tipe
interupsi, misalkan. ICW2 diberi nomor tipe 8h maka IRQ0 = 8h dan lalu IRQ1=9h
dan seterusnya.
A0
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
1
|
T7
|
T6
|
T5
|
T4
|
T3
|
T2
|
T1
|
T0
|
1). A0 =1, alamat ICW2.
2). D7 – D0 : diisi data tipe
interupsi IRQ0.
c. ICW3 :
Mode
kaskade, kalau PIC dalam operasi single, ICW3 ini tidak digunakan.
d. ICW4 :
A0
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
1
|
0
|
0
|
0
|
SFNM
|
BUF
|
M/S
|
AEOI
|
μPM
|
2. Operational Control Word (OCW)
terdiri dari 3 jenis yaitu OCW 1 sampai OCW 3. OCW 1 berfungsi untuk mengatur data yang disimpan dalam IMR (Interrupt Mask Register) atau yang berfungsi menentukan IRQ# yang akan kita mask (disable) dan unmask (enable)
Contoh
Dengan ICW diatas maka program
inisialisasinya yaitu:
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
Tidak ada komentar:
Posting Komentar