Tải bản đầy đủ (.doc) (14 trang)

Ngắt và xử lý ngắt trong hệ 8088

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (119.06 KB, 14 trang )

CHỈÅNG 7
NGÀÕT V XỈÍ L NGÀÕT TRONG HÃÛ 8088
1. Sỉû cáưn thiãút phi ngàõt CPU
Trong cạch täø chỉïc trao âäøi dỉỵ liãûu thäng qua viãûc thàm d trảng thại sàơn sng
ca thiãút bë ngoải vi nhỉ â âỉåüc trçnh by åí chỉång trỉåïc, trỉåïc khi tiãún hnh báút k
mäüt cüc trao âäøi dỉỵ liãûu no CPU phi âãø ton bäü thåìi gian vo viãûc xạc âënh trảng
thại sàơn sng lm viãûc ca thiãút bë ngoải vi. Trong hãû thäúng vi xỉí l våïi cạch lm viãûc
nhỉ váûy, thäng thỉåìng CPU âỉåüc thiãút kãú ch úu chè l âãø phủc vủ cho viãûc vo/ra dỉỵ
liãûu v thỉûc hiãûn cạc xỉí l liãn quan.
Trong thỉûc tãú ngỉåìi ta ráút mún táûn dủng kh nàng ca CPU âãø lm thãm âỉåüc
nhiãưu cäng viãûc khạc nỉỵa, chè khi no cọ u cáưu trao âäøi dỉỵ liãûu thç måïi u cáưi CPU
tảm dỉìng cäng viãûc hiãûn tải âãø phủc vủ viãûc trao âäøi dỉỵ liãûu. Sau khi hon thnh viãûc
trao âäøi dỉỵliãûu thç CPU lải phi quay vãư âãø lm tiãúp cäng viãûc hiãûn âang bë giạn âoản.
Cạch lm viãûc theo kiãøu ny gi l ngàõt CPU (giạn âoản hoảt âäüng ca CPU) âãø trao
âäøi dỉỵ liãûu. Mäüt hãû thäúng våïi cạch hoảt âäüng theo kiãøu ny cọ thãø âạp ỉïng ráút nhanh
våïi cạc u cáưu trao âäøi dỉỵ liãûu trong khi váùn cọ thãø lm âỉåüc cạc cäng viãûc khạc.
Mún âảt âỉåüc âiãưu ny ta phi cọ cạch täø chỉïc hãû thäúng ao cho cọ thãø táûn dủng âỉåüc
kh nàng thỉûc hiãûn cạc chỉång trçnh phủc vủ ngàõt tải cạc âëa chè xạc âënh ca CPU.
Khi nghiãn cỉïu cạc tên hiãûu ca CPU 8088, chụng ta â tháúy vi mảch ny cọ cạc chán
tên hiãûu cho cạc u cáưu ngàõt che âỉåüc INTR v khäng che âỉåüc NMI, chênh cạc chán
ny s âỉåüc sỉí dủng vo viãûc âỉa cạc u cáưu ngàõt tỉì bãn ngoi âãún CPU.
2. Ngàõt trong hãû vi xỉí l 8088
2.1. Cạc loải ngàõt trong hãû 8088
Trong hãû vi xỉí l 8088 cọ thãø xãúp cạc ngun nhán gáy ra ngàõt CPU vo 3
nhọm nhỉ sau:
+ Nhọm cạc ngàõt cỉïng : âọ l cạc u cáưu ngàõt CPU do cạc tên hiãûu âãún tỉì cạc
chán INTR v NMI.
Ngàõt cỉïng INTR l u cáưu ngàõt che âỉåüc. Cạc lãûnh CLI v STI cọ nh hỉåíng
trỉûc tiãúp tåïi trảng thại ca cåì IF trong bäü vi xỉí l, tỉïc l nh hỉåíng tåïi viãûc CPU cọ
nháûn biãút u cáưu ngàõt tải chán ny hay khäng. u cáưu ngàõt tải chán INTR cọ thãø cọ
kiãøu ngàõt N nàòm trong khong 0-FFH. Kiãøu ngàõt ny phi âỉåüc âỉa vo bus dỉỵ liãûu âãø


CPU cọ thãø âc âỉåüc khi cọ xung
INTA
trong chu k tr låìi cháúp nháûn ngàõt.
Biãøu âäư thåìi gian ca cạc xung liãn quan âãún quạ trçnh trãn âỉåüc mä t trãn
hçnh 7.1.
+ Nhọm cạc ngàõt mãưm: khi CPU thỉûc hiãûn cạc lãûnh ngàõt dảng INT N, trong âọ
N l säú hiãûu (kiãøu) ngàõt nàòm trong khong 00-FFH (0-255).
+ Nhọm cạc hiãûn tỉåüng ngoải lãû: âọ l cạc ngàõt do cạc läùi ny sinh trong quạ
trçnh hoảt âäüng ca CPU nhỉ phẹp chia cho 0, xy ra trn khi tênh toạn.
u cáưu ngàõt s âỉåüc CPU kiãøm tra thỉåìng xun tải chu k âäưng häư cúi cng
ca mäùi lãûnh.
Trãn hçnh 7.2 trçnh by mäüt cạch âån gin âãø âỉa âỉåüc säú hiãûu ngàõt N vo bus
dỉỵ liãûu trong khi cng tảo ra u cáưu ngàõt âỉa vo chán INTR ca bäü vi xỉí l 8088.
Gi thiãút trong mäüt thåìi âiãøm nháút âënh chè cọ mäüt u cáưu ngàõt IRi âỉåüc tạc
âäüng v khi âọ åí âáưu ra ca mảch NAND s cọ xung u cáưu ngàõt âãún CPU. Tên hiãûu
IRi âỉåüc âäưng thåìi âỉa qua mảch khúch âải âãûm âãø tảo ra säú hiãûu ngàõt tỉång ỉïng, säú
hiãûu ngàõt ny s âỉåüc CPU âc vo khi nọ âỉa ra tên hiãûu tr låìi
INTA
.
Bng 7.1. Cho ta quan hãû giỉỵa IRi v säú hiãûu ngàõt N tỉång ỉïng.
AD7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 N
1 1 1 1 1 1 1 0 FEH (254)
1 1 1 1 1 1 0 1 FDH (253)
1 1 1 1 1 0 1 1 FBH (251)
1 1 1 1 0 1 1 1 F7H (247)
1 1 1 0 1 1 1 1 EFH (239)
1 1 0 1 1 1 1 1 DFH (223)
1 0 1 1 1 1 1 1 BFH (191)
Ta s cn âãư cáûp âãún viãûc xỉí l trỉåìng håüp cọ 2 u cáưu ngàõt IRi cng mäüt lục
v cạch âỉa cạc giạ trë N ca INTN vo bus dỉỵ liãûu mäüt cạch tãû âäüng bàòng mảch âiãưu

khiãøn ngàõt PIC åí pháưn sau.
2.2. Âạp ỉïng ca CPU khi cọ u cáưu ngàõt
Khi cọ u cáưu ngàõt kiãøu N âãún chán CPU v nãúu u cáưu âọ âỉåüc phẹp, CPU
thỉûc hiãûn cạc cäng viãûc sau:
1. SP ← SP-2, {SP} ← FR, trong âọ {SP} l ä nhåï do SP chè ra.
(chè ra âènh måïi ca ngàõn xãúp, cáút thanh ghi cåì vo âènh ngàn xãúp)
2. IF ← 0, TF ← 0.
(cáúm cạc ngàõt khạc tạc âäüng vo CPU, cho CPU chảy åí chãú âäü bçnh
thỉåìng)
3. SP ← SP-2, {SP} ← CS.
(chè ra âènh måïi ca ngàn xãúp, cáút pháưn âëa chè âoản ca âëa chè tråí
vãư vo âènh ngàn xãúp)
4. SP ← SP-2, {SP} ← IP
(chè ra âènh måïi ca ngàn xãúp, cáút pháưn âëa chè lãûch ca âëa chè tråì vãư
vo âènh ngàn xãúp)
5. {N*4} → IP, {N*4+2} → CS
(láúy lãûnh tải âëa chè måïi ca chỉång trçnh con phủc vủ ngàõt kiãøu N
tỉång ỉïng trong bng vectå ngàõt)
6. Tải cúi chỉång trçnh phủc vủ ngàõt, khi gàûp lãûnh IRET
{SP} → IP, SP ← SP+2
{SP} → CS, SP ← SP+2
{SP} → FR, SP ← SP+2
(bäü vi xỉí l quay lải chỉång trçnh chênh tải âëa chè tråí vãư v våïi giạ
trë c ca thanh ghi cåì âỉåüc láúy ra tỉì ngàn xãúp).
Vãư màût cáúu trục chỉång trçnh, khi cọ ngàõt xy ra thç chỉång trçnh chênh (CTC)
liãn hãû våïi chỉång trçnh con phủc vủ ngàõt (CTCPVN) nhỉ mä t trãn hçnh 7.3.
Trong thỉûc tãú cạc ngàõt mãưm INT N â bao trm cạc loải khạc båíi vç Intel â
quy âënh mäüt säú kiãøu ngàõt âàûc biãût âỉåüc xãúp vo âáưu dy ngàõt mãưm INY N nhỉ sau:
+ INT 0 : Ngàõt mãưm do phẹp chia cho säú 0 gáy ra,
+ IN T1 : Ngàõt mãưm âãø chảy tỉìng lãûnh ỉïng våïi trỉåìng håüp cåì TF=1,

+ IN T2 : Ngàõt cỉïng do tén hiãûu têch cỉûc tải chán NM1 gáy ra,
+ IN T3 : Ngàõt mãưm âãø âàût âiãøm dỉìng ca chỉång trçnh tải mäüt âëc chè no âọ
+ IN T4 : (Hồûc lãûnh INTO) : ngàõt mãưm ỉïng våïi trỉåìng håüp cåì trn OF=1.
Cạc kiãøu ngàõt khạc cn lải thç âỉåüc dnh cho Intel v cho ngỉåìi sỉí dủng (IBM
khäng hon ton tn th cạc quy âënh ny khi chãú tảo cạc mạy PC/XT v PC/AT0:
+ INT 5-INT 1FH; dnh riãng cho Intel trong cạc bäü vi xỉí l cao cáúp khạc,
+ INT 20H-INT FFH: dnh cho ngỉåìi sỉí dủng.
Cạc kiãøu ngàõt N trong INT N âãưu tỉång ỉïng våïi cạc âëa chè xạc âënh ca
CTCPVN m ta cọ thãø tra âỉåüc trong bng cạc vectå ngàõt. Intel quy âënh bng ny
nàòm trong RAM bàõt âáưu tỉì âảic hè 00000H v di 1 KB (vç 8088 cọ táút c 256 kiãøu
ngàõt, mäùi kiãøu ngàõt ỉïng våïi 1 vectå ngàõt, 1 vectå ngàõt cáưn 4 byte âãø chỉïa âëa chè âáưy
â cho CS:IP ca CTCPVN).
Bng 7.2. Bng vectå ngàõt ca 8088 tải 1KB RAM âáưu tiãn
03FEH-03FFH CS ca CTPVN INT FFH
03FCH-03FDH IP ca CTPVN INT FFH
0082H-0083H CS ca CTPVN INT 20H
0080H-0081H IP ca CTPVN INT 20H
000AH-000BH CS ca CTCPVN INT 2
0008H-0009H IP ca CTCPVN INT 2
0006H-0007H CS ca CTCPVN INT 1
0004H-0005H IP ca CTCPVN INT 1
0002H-0003H CS ca CTCPVN INT 0
0000H-0001H IP ca CTCPVN INT 0
Trãn bng 7.2. giåïi thiãûu mäüt pháưn ca bng vectå ngàõt ca CPU 8088
2.3. Xỉí l ỉu tiãn khi ngàõt:
Cọ mäüt váún âãư ráút thỉûc tãú âàût ra l nãúu tải cng mäüt thåìi âiãøm cọ nhiãưu u cáưu
ngàõt thüc cạc loải ngàõt khạc nhau cng âi hi CPU phủc vủ thç CPU xỉí l cạc u
cáưu ngàõt âọ nhỉ thãú no? Cáu tr låìi l CPU xỉí l cạc u cáưu ngàõt theo thỉï tỉû ỉu tiãn
våïi ngun tàõc ngàõt no cọ mỉïc ỉu tiãn v phủc vủ trỉåïc.
Ngay tỉì khi âỉåüc chãú tảo (thỉåìng gi l ngáưm âënh) CPU 8088 cọ kh nàng

phán biãût cạc mỉïc ỉu tiãn khạc nhau cho cạc loải ngàõt (theo thỉï tỉû tỉì cao xúng tháúp)
nhỉ sau:
+ ngàõt näüi bäü : INT 0 (phẹp chia cho 0), INT N, INTO cao nháút
+ ngàõt khäng che âỉåüc NMI
+ ngàõt che âỉåüc INTR
+ ngàõt âãø chảy tỉìng lãûng INT 1 tháúp nháút
Âãø tháúy r hoảt âäüng ca CPU trong cå chãú ngàõt ỉu tiãn ny ta cọ thãø láúy mäüt vê
dủ củ thãø nhỉ sau.
Gi thiãút tải mäüt thåìi âiãøm no âọ, trong khi CPU (åí trảng thại cho phẹp ngàõt
våïi cỉìo IF=1) âang thỉûc hiãûn phẹp chia v cọ läùi xy ra do säú bë chia bàòng 0, âụng vo
lục âọ CPU cng nháûn âỉåüc u cáưu tỉì âáưu vo INTR. CPU s xỉí l ra sao trong
trỉåìng håüp ny?
Theo thỉï tỉû ỉu tiãn ngáưm âënh trong viãûc xỉí l ngàõt ca CPU 8088 thç INT 0 cọ
mỉïc ỉu tiãn cao hån INTR, vç váûy âáưu tiãn CPU s thỉûc hiãûn chỉång trçnh phủc vủ
ngàõt INT 0 âãø âạp ỉïng våïi läùi âàûc biãût cho phẹp chua cho 0 gáy ra v cåì IF bë xọa vãư 0.
u cáưu ngàõt INTR s tỉû âäüng bë cáúm cho tåïi khi chỉång trçnh phủc vủ ngàõt INT 0
âỉåüc hon táút v tråí vãư nhåì IRET, cåì IF c âỉåüc tr lải. Tiãúp theo âọ CPU s âạp ỉïng
u cáưu ngàõt INTR bàòng cạch thỉûc hiãûn chỉång trçnh phủc vủ ngàõt dnh cho INTR.
2.4. Mảch âiãưu khiãøn ngàõt ỉu tiãn 8259A
Trong trỉåìng håüp cọ nhiãưu u cáưu ngàõt che âỉåüc tỉì bãn ngoi phi phủc vủ tỉ
thỉåìng dng vi mảch cọ sàơn 8259A âãø gii quút váún âãư ỉu tiãn. mảch 8259A âỉåüc gi
l mảch âiãưu khiãøn ngàõt ỉu tiãn (priority interrupt controller, PIC). Âọ l mäüt vi mảch
cåỵ låïn láûp trçnh âỉåüc, cọ thãø xỉí l trỉåïc âỉåüc 8 u cáưu ngàõt våïi 8 mỉïc ỉu tiãn khạc
nhau âãø tảo ra mäüt u cáưu ngàõt âỉa âãún âáưu vo INTR (u cáưu ngàõt che âỉåüc ca
CPU 8088. Nãúu näúi táưng 1 mảch 8259A ch våïi 8 mảch 8259A thåü ta cọ thãø náng täøng
säú cạc u cáưu ngàõt våïi cạc mỉïc ỉu tiãn khạc nhau lãn thnh 64.
Cạc khäúi chỉïc nàng chênh ca 8259A
+ Thanh ghi IRR: ghi nhåï cạc u cáưu ngàõt cọ tải âáưu vo IRi.
+ Thanh ghi ISR: ghi nhåï cạc u cáưu ngàõt âang âỉåüc phủc vủ trong säú cạc u
cáưu ngàõt IRi.

+ Thanh ghi IMR: ghi nhåï màût nả ngàõt âäúi våïi cạc u cáưu ngàõt IRi.
+ Logic âiãưu khiãøn: khäúi ny cọ nhiãûm vủ gỉíi u cáưu ngàõt tåïi INTR ca 8088
khi cọ tên hiãûu tải cạc chán IRi v nháûn tr låìi cháúp nháûn u cáưu ngàõt INTA tỉì CPU
âãø räưi âiãưu khiãøn viãûc âỉa ra kiãøu ngàõt trãn bus dỉỵ liãûu.
+ Âãûm bus dỉỵ liãûu: dng âãø phäúi ghẹp 8259A våïi bus dỉỵ liãûu ca CPU
+ Logic âiãưu khiãøn ghi/âc: dng cho viãûc ghi cạc tỉì âiãưu khiãøn v âc cạc tỉì
trảng thại ca 8259A.
+ Khäúi âãûm näúi táưng v so sạnh: ghi nhåï v so sạnh säú hiãûu ca cạc mảch
8259A cọ màût trong hãû vi xỉí l.
Cạc tên hiãûu ca 8259A:
Mäüt säú tên hiãûu trong mảch 8259 cọ tãn giäúng nhỉ cạc tên hiãûu tiãu chøn ca
hãû vi xỉí l 8080. Ta cọ thãø tháúy r v hiãøu âỉåüc nghéa ca chụng ngay trãn hçnh 7.4.
Ngoi cạc tên hiãûu ny ra, cn cọ mäüt säú tên hiãûu âàûc biãût khạc ca 8259A cáưn phi
giåïi thiãûu thãm gäưm:
+ Cas
0
-Cas
2
[I,O]: l cạc âáưu vo âäúi våïi cạc mảch 8259A thåü hồûc cạc âáưu ra
ca mảch 8259A ch dng khi cáưn näúi táưng âãø tàng thãm cạc u cáưu ngàõt cáưn xỉí l.
+
EN/SP
[I,O]: khi 8259A lm viãûc åí chãú âäü khäng cọ âãûm bus dỉỵ liãûu thç âáy
l tên hiãûu vo dng láûp trçnh âãø biãún mảch 8259A thnh mảch thåü (
0SP =
) hồûc ch (
1SP =
); khi 8259A lm viãûc trong hãû vi xỉí l åí chãú âäü cọ âãûm bus dỉỵ liãûu thç chán
ny l tên hiãûu ra
EN

dng måí âãûm bus dỉỵ liãûu âãø 8088 v 8259A thäng vo bus dỉỵ
liãûu hãû thäúng. Lục ny viãûc âënh nghéa mảch 8259A l ch hồûc thåü phi thỉûc hiãûn
thäng qua tỉì âiãưu khiãøn âáưu ICW4.
+ INT [O]: tên hiãûu u cáưu ngàõt âãún chán INTR ca CPU 8088.
+
INTA
[I]: näúi våïi tên hiãûu bạo cháúp nháûn ngàõt
INTA
ca CPU.
PIC 8259A ch (åí chãú âäü khäng âãm näúi våïi CPU 8088 åí chãú âäü
MIN
Trãn hçnh 7.5 l så âäư näúi mảch PIC 8259A lm viãûc âäüc láûp (mảch ch) våïi
bus CPU 8088 lm viãûc åí chãú âäü MIN.
PIC 8259A ch näúi våïi PCU 8088 åí chãú âäü MAX.
Nãúu hãû vi xỉí l 8088 lm viãûc åí chãú âäü MAX thỉåìng ta phi dng mảch âiãưu
khiãøn bus 8288 v cạc âãûm bus âãø cung cáúp cạc tên hiãûu thêch håüp cho bus hãû thäúng.
Mảch 8259A phi lm viãûc åí chãú âäü cọ âãûm âãø näúi âỉåüc våïi bus hãû thäúng ny.
Trãn hçnh 7.6 l vê dủ mäüt så âäư CPU 8088 chãú âäü MAX näúi våïi PIC 8259A.
Trong mảch ny ta nháûn tháúy tên hiãûu âëa chè cho 8259A âỉåüc láúy ra tỉì bus hãû thäúng
trong khi âọ tên hiãûu dỉỵ liãûu ca nọ âỉåüc näúi våïi bus dỉỵ liãûu ca vi xỉí l vatf âọ âỉåüc
thäng qua cạc âãûm âãø näúi vo bus hãû thäúng.
Hçnh 7.6. Näúi CPU 8088 chãú âäü MAX våïi PIC8259A
Láûp trçnh cho PIC 8259A
Âãø mảch PIC 8259A cọ thãø hoảt âäüng âỉåüc theo u cáưu, sau khi báût ngưn cáúp
âiãûn PIC cáưn phi âỉåüc láûp trçnh bàòng cạch ghi vo cạc thanh ghi (tỉång âỉång våïi cạc
cäøng) bãn trong nọ
cạc tỉì âiãưu khiãøn khåíi âáưu (ICW) v tiãúp sau âọ l cạc tỉì âiãưu
khiãøn hoảt âäüng (OCW).
Cạc tỉì âiãưu khiãøn khåíi âáưu dng âãø tảo nãn cạc kiãøu lm viãûc cå bn cho PIC,
cn cạc tỉì âiãưu khiãøn hoảt âäüng s quút âënh cạch thỉïc lm viãûc củ thãø ca PIC. Tỉì

âiãưu khiãøn hoảt âäüng s âỉåüc ghi khi ta mún thay âäøi hoảt âäüng ca PIC.
Cạc tỉì âiãưu khiãøn nọi trãn s âỉåüc giåïi thiãûu củ thãø trogn cạc mủc sau.
 Cạc tỉì âiãưu khiãøn khåíi âáưu ICW
PIC 8259A cọ táút c 4 tỉì âiãưu khiãøn khåíi âáưu l ICW1 - ICW4. Trong khi láûp
trçnh cho PIC khäng phi lục no ta cng cáưn dng c 4 tỉì âiãưu khiãøn khåíi âáưu nhỉỵng
cọ lục ta chè cáưn ghi vo âọ 2 hay 3 tỉì l â (xem hçnh 7.7 âãø tháúy r thỉï tỉû ghi v âiãưu
kiãûn âãø ghi cạc âiãưu khiãøn ICW vo 8259A).
Dảng thỉïc ca cạc thanh ghi âiãưu khiãøn khåíi âáưu ICW âỉåüc biãøu diãùn trãn hçnh
7.8.
Trãn hçnh ny ta tháúy bãn cảnh cạc bit dỉỵ liãûu ca tỉì âiãưu khiãøn khåíi âáưu ICW
ta cn ghi r thãm c giạ trë củ thãø ca A0 tỉång ỉïng cho mäùi ICW âọ. Âáưu vo âëa chè
A0 v thỉï tỉû ghi s giụp ta phán biãût ra cạc thanh ghi khạc nhau bãn trong PIC âãø ghi
dỉỵ liãûu cho cạc tỉì âiãưu khiãøn. Vê dủ A0 = 0 l dáúu hiãûu âãø nháûn biãút ràòng ICW1 âỉåüc
âỉa vo thanh ghi cọ âëa chè chàơn trong PIC, cn khi A0 = 1 thç cạc tỉì âiãưu khiãøn khåíi
âáưu ICW2, ICW3, ICW4 s âỉåüc âỉa vo cạc thanh ghi cọ âëa chè l trong mảch PIC.
o ICW1
Bit D0 ca ICW1 quút âënh 8259A s âỉåüc näúi våïi h vi xỉí l no. Âãø lm
viãûc våïi hãû 16-32bit (8088 hồûc h 80×86) thç ICW nháút thiãút phi cọ IC4 = 0 (v nhỉ
váûy cạc bit ca ICW4 s bë xọa vãư 0). Cạc bit cn lải ca ICW1 âënh nghéa cạch thỉïc
tạc âäüng ca xung u cáưu ngàõt (tạc âäüng theo sỉåìn hay theo mỉïc) tải cạc chán u
cáưu ngàõt IR ca mảch 8259A v viãûc bäú trê cạc mảch 8259A khạc trong hãû lm viãûc
âån l hay theo chãú âäü näúi táưng.
Cạc bit âỉåüc âạnh dáúu x l khäng quan trng v thỉåìng âỉåüc láúy giạ trë 0 âãø láûp
trçnh cho cạc ỉïng dủng sau ny.
o ICW2
Tỉì âiãưu khiãøn khåíi âáưu ny cho phẹp chn kiãøu ngàõt (säú hiãûu ngàõt) ỉïng våïi cạc
bit T3-T7 cho cạc âáưu vo u cáưu ngàõt. Cạc bit T0-T2 âỉåüc 8259A tỉû âäüng gạn giạ trë
ty theo âáưu vo u cáưu ngàõt củ thãø IRi. Vê dủ nãúu ta mún cạc âáưu vo ca mảch
8259A cọ kiãøu ngàõt l 40-47H ta chè cáưn ghi 40H vo cạc bit T3-T7. Nãúu lm nhỉ váûy
thç IR0 s cọ kiãøu ngàõt l 40H, IR1 s cọ kiãøu ngàõt l 41H

o ICW3
Tỉì âiãưu khiãøn khåíi âáưu ny chè dng âãún khi bit SNGL thüc tỉì âiãưu khiãøn khåíi
âáưu ICW1 cọ giạ trë 0, nghéa l trong hãû cọ cạc mảch 8259A lm viãûc åí chãú âäü näúi
táưng. Chênh vç váûy täưn tải 2 loải ICW3: 1 cho mảch 8259A ch v 1 cho mảch 8259A
thåü.
ICW3 cho mảch ch : dng âãø chè ra âáưu vo u cáưu ngàõt Iri no ca nọ cọ tên hiãûu
INT ca mảch thåü näúi vo.
ICW3 cho mảch thåü : dng lm phỉång tiãûn âãø cạc mảch ny âỉåüc nháûn biãút. Vç
váûy tỉì âiãưu khiãøn khåíi âáu ny phi chỉïa m säú i ỉïng våïi âáưu vo Iri ca mảch ch
m mảch thåü â cho näúi vo. Mảch thåü s so sạnh m säú ny våïi m säú nháûn âỉåüc åí
Cas2-Cas0. Nãúu bàòng nhau thç säú hiãûu ngàõt s âỉåüc âỉa ra bụ khi cọ INTA.
Vê dủ : Trong mäüt hãû vi xỉí l ta cọ mäüt mảch 8259A ch v 2 mảch 8259A thåü
näúi vo chán IR1 ca mảch ch.
Tçm giạ trë phi gạn cho cạc tỉì âiãưu khiãøn khåíi âáưu ICW ?
Gii : Nhỉ trãn â nọi, âãø cạc mảch ny lm viãûc âỉåüc vỉọi nhau ta s phi gia
cạc tỉì âiãưu khiãøn khåíi âáưu nhỉ sau: ICW3 = 03H cho mảch ch. ICW3 = 00H cho
mảch thỉûo thỉï nháút v ICW3 = 01H cho mảch thåü thỉï hai.
ICW4
Tỉì âiãưu khiãøn khåíi âáưu ny chè dng âãún khi trong ỉìt âiãưu khãøin ICW1 cọ IC4 =
1 (cáưn thãm ICW4)
Bit
M
PM cho ta kh nàng chn loải vi xỉí l âãø lm viãûc våïi 8259A. Bit
M
PM = 1
cho phẹp cạc bäü vi xỉí l tỉì 8086/88 hồûc cao hỉon lm viãûc vỉọi 8259A.
Bit SFNM = 1 cho phẹp chn chãú âäü ỉu tiãn cäú âënh âàûc biãût. Trong chãú âäü ny
u cáưu ngàõt våïi mỉïc ỉu tiãn cao nháút hiãûn thåìi tỉì mäüt mảch thåü lm viãûc theo kiãøu näúi
táưng s âỉåüc mảch ch nháûn biãút ngay c khi mảch ch cn âang phi phủc vủ mäüt u
cáưu ngàõt åí mảch thåü khạc nhỉng våïi mỉïc ỉu tiãn tháúp hån. Sau khi cạc u cáưu ngàõt

âỉåüc phủc vủ xong thç chỉång trçnh phủc vủ ngàõt phi cọ lãûnh kãút thục u cáưu ngàõt
(EOI) âàût trỉåïc lãûnh tråí vãư (IRET) âỉa âãún cho mảch 8259A ch.
Khi bit SFNM = 0 thç chãú âäü ỉu tiãn cäú âënh âỉåüc chn (IR0: mỉïc ỉu tiãn cao
nháút. IR7: mỉïc ỉu tiãn tháúp nháút ) thỉûc ra âäúi vỉọi mảch 8259A khäng dng âãún ICW1
thç chãú âäü ny â âỉåüc chn nhỉ l ngáưm âënh. Trong chãú âäü ỉu tiãn cäú âënh tải mäüt
thåìi âiãøm chè cọ mäüt u cáưu ngàõt i âỉåüc phủc vủ (bit Iri = 1) lục ny áútt c cạc u cáưu
khạc vỉïoi ỉïmc ỉu tiãn cao hỉon cọ thãø ngàõt u cáưu khạc våïi mỉïc ỉu tiãn tháúp hån .
Bit BUF cho phẹp âënh nghéa mảch 8259A âãø lm viãûc våïi CPU trong trỉåìng
håüp cọ âãûm hồûc khäng cọ âãûm näúi våïi bụ hãû thäúng. Khi lm viãûc åí chãú âäü cọ âãûm
(BUF = 1). Bit M/S = 1/0 cho phẹp ta chn mảch 8259A âãø lm viãûc åí chãú âäü ch/ thåü.
SP/EN tråí thnh âáưu ra cho phẹp måí âãûm âãø PIC v CPU thäng vỉọi bụ hãû thäúng.
Bit AEOI = 1 cho phẹp chn cạch kãút thcụ u cáưu ngàõt tỉû âäüng. Khi AEOI = 1
thç 8259A tỉû âäüng xọa ISRi = 0 khi xung INTA cúi cng chuøn lãn mỉïc cao m
khäng lm thay âäøi thỉï tỉû ỉu tiãn. Ngỉåüc lải. Khi ta chn cạch kãút thục u cáưu ngàõt
thỉåìng (AEOI = 0) thç chỉång trçnh phủc vủ ngàõt phi cọ thãm lãûnh EOI âàût trỉåïc lãûnh
IRET âãø kãút thục cho 8259A.
Cạc tỉì âiãưu khiãøn hoảt âäüng OCW
Cạc tỉì âãçu khiãøn hoảt âäüng OCW s quút âënh mảch 8259A s hoảt âäüng nhỉ
thãú no sau khi nọ â âỉåüc khåíi âáưu bàòng cạc tỉì âiãưu khiãøn ICW . Táút c cạc tỉì âiãưu
khiãøn hoảt âäüng s âwowcj ghi vo cạc thanh ghi trong PIC khi A0 = 0,trỉì OCW1
âỉåüc ghi khi A0 = 1.
Dảng thỉïc ca OCW âwocj trinh by trãn hçnh 7.9
OCW1
OCW1 dng âãø ghi giạ trë ca cạc bit màût nả vo thanh ghi màût nả ngàõt IMR.
Khi mäüt bit màût nả no âọ ca âỉåüc láûp thç u cáưu ngàõt tỉång ỉïng våïi màût nả âọ s
khäng âỉåüc 8259A nháûn biãút nỉỵa (bë che). Tỉì âiãưu khiãøn ny phi âỉåüc âỉa âãún 8259A
ngay sau khi ghi cạc ICW vo 8259A .
Ta cng cọ thãø âc lải IMR âãø xạc âënh tçnh trảng màût nả ngàõt hiãûn tải (xem
trong thåìi âiãøm hiãûn tải u cáưu ngàõt no bë che)
OCW2

Cạc bit R.SL v EOI phäúi håüp vỉọi nhau cho phẹp chn ra cạc cạch thỉïc kãút
thục u cáưu ngàõt khạc nhau. Mäüt vi cạch thcụ u cáưu ngàõt cn tạc âäüng tåïi cạc u
cáưu ngàõt âỉåüc chè âêch danh våïi mỉïc ỉu tiãn âỉåüc gii m họa ca 3 bit L
2
,L
1
,L
0
Trỉåïc khi nọi vãư cạc cạch kãút thục u cáưu ngàõt cho cạc chãú âäü ta cáưn måí
dáúu ngồûc åí âáy âãø giåïi thiãûu cạc chãú âäü lm viãûc ca 8259A.
a. Chãú âäü ỉu tiãn cäú âënh :
Âáy l chãú âäü lm viãûc ngáưm âënh ca 8259A sau khi nọ â âỉåüc nảp cạc
tỉì âiãưu khiãøn khåíi âáưu.
Trong chãú âäü ny, cạc âáưu vo IR7-IRO âỉåüc gạn cho cạc mỉïc ỉu tiãn cäú
âënh: IRO âỉåüc gạn cho mỉïc ỉu tiãn cao nháút cn IR7 mỉïc ỉu tiãn tháúp nháút.
Mỉïc ỉu tiãn ny âỉåüc giỉỵ khäng thay âäøi cho âãún khi ghi mảch 8259A bë láûp
trçnh khạc âi do OCW2.
Trong chãú âäü ỉu tiãn cäú âënh tai 1 thåìi âiãøm chè cọ 1 u cáưu ngàõt i âỉåüc
phủc vủ (bit ISRi = 1) lục ny táút c ạc u cáưu khạc våïi mỉïc ỉu tiãn tháúp hån
âãưu bë cáúm, táút c cạc u cáưu khạc vỉọi mỉïc ỉu tiãn tháúp hån âãưu cọ thãø ngàõt
u cáưu khạc våïi mỉïc ỉu tiãn tháúp hån.
OCW1
A
0
D7 D6 D5 D4 D3 D2 D1 D0
I M7 M6 M5 M4 M3 M2 M1 M0
Màût nả ngàõt tải cạc u cáưu ngàõt
1: Cọ màût nả
0: Khäng cọ màût nả
OCW2

A
0
D7 D6 D5 D4 D3 D2 D1 D0
0 R SL EOI 0 0 L2 L1 L0
0 0 1
0 1 1
1 0 1
1 0 0
0 0 0
1 1 1
1 1 0
0 1 0
(*) dng täø håüp L
2
L
1
L
0
OCW3
A
0
D7 D6 D5 D4 D3 D2 D1 D0
0 0 ESMM SMM 0 1 P ERIS RIS
10: dc IRR åí láưn âc sau
11: âc ISR åí láưn âc sau
Thàm d hiãûn trảng ca u cáưu ngàõt
1: âc m mỉïc ỉu tiãn cao nháút åí láưn âc sau
Chãú âäü màût nả âàûc biãût
10: Xọa chãú âäü màût nả âàûc biãût
11: Láûp chãú âäü màût nả âàûc biãût

Hçnh 7.9. Dảng thỉïc ca cạc tỉì âiãưu khiãøn hoảt âäüng OCW
b.chãú âäü quay mỉïc ỉu tiãn (ỉu tiãn ln phiãn ) tỉû âäüng :
åí chãú âäü ny sau khi mäüt u cáưu ngàõt âỉåüc phủc vủ xong ,8259A s xoạ bit tỉång ỉïng
ca nọ trong thanh ghi ISR v gạn cho âáưu vo ca nọ mỉïc ỉu tiãn tháúp nháút âãø tảo
âiãưu kiãûn cho cạc u cáưu ngàõt khạc cọ thåìi cå âỉåüc phủc vủ .
Kãút thục
Ngàõt (EOI
Âäøi mỉïc
ỉu tiãn tỉû âäüng
Âäøi m.ỉ.t
Âêch danh
Lãûnh EOI thỉåìng
Lãûnh EOI chè âêch danh (*)
Âäøi mỉïc ỉu tiãn khi cọ EOI thỉåìng.
Láûp chãú âäü quay khi cọ EOI tỉû âäüng
Xọa chãú âäü quay khi cọ EOI tỉû âäüng
Âäøi mỉïc ỉu tiãn khi cọ EOI âêch danh (*)
Lãûnh láûp tỉïc ỉu tiãn (*)
Khäng lm gç
M họa mỉïc ỉu tiãn
ngàõt bë tạc âäüng
000….mỉïc 0
111 mỉïc 7
c. chãú âäü quay (âäøi) mỉïc ỉu tiãn chè âêch danh :
åí chãú âäü ny ta cáưn chè r (âêch danh) âáưu vo IRi no ,våïi i=L
2
L
1
L
0

,âỉåüc gạn mỉïc ỉu
tiãn tháúp nháút ,âáưu vo IR
i+1
s âüc tỉû âäüng gạn mỉïc ỉu tiãn cao nháút .
Báy giåì ta âọng dáúu ngồûc â âỉåüc ra måí åí trãn v tråí lải cạc váún âãư liãn quan âãún OC
WC.ta s nọi r viãûc cạc bit R,Slv SOI phäúi håüp våïi nhau nhỉ thãú no âãø tảo ra cạc
lãûnh quy âënh cạc cạch thỉïc kãút thục u cu ngàõt cho cạc chãú âäü lm viãûc khạc nhau
â nọi âãún åí pháưn trãn (xem thãm hinh 7.9) .
1. kãút thục u cáưu ngàõt thỉåìng : chỉång trçnh cn phủc vủ ngàõt åphi cọ lãûnh
EOI âàût trỉåïc lãûnh tråí vãư IRET cho 8259A .mảch 8259 A s xạc âënh u cáưu ngàõt Iri
vỉìa âỉåüc phủc vủ v xoạ bit ISRi tỉång ỉïng ca nọ âãø tảo âiãưu kiãûn cho chênh u cáưu
ngàõt ny hồûc cạc ngàõt khạc cọ mỉïc ỉu tiãn tháúp hån cọ thãø âỉåüc tạc âäüng .
2.kãút thục u cáưu ngàõt thỉåìng : chỉång trçnh cn phủc vủ ngàõt phi co lãûnh
EOI chè âêch danh âàût trỉåïc lãûnh tråí vãư IRET cho 8259A . mảch 8259A xoạ âêch danh
bit ISRi ,våïi i=L
2
L
1
L
0
âãø tảo âiãưu kiãûn cho chênh u cáưu ngàõt ny hồûc cạc ngàõt khạc
cọ mỉïc ỉu tiãn tháúp hån cọ thãø âỉåüc tạc âäüng.
3. Quay (âäøi) mỉïc ỉu tiãn khi kãút thục u cáưu ngàõt thỉåìng: chỉång trçnh con
phủc vủ ngàõt phi cọ lãûnh EOI âàût trỉåïc lãûnh tråí vãư IRET cho 8259A. Mảch 8259A s
xạc âënh u cáưu ngàõt thỉï i vỉìa âỉåüc phủc vủ. Xọa bit ISRi tỉång ỉïng v gạn ln mỉïc
ỉu tiãn tháúp nháút cho âáưu vo IR, ny cn âáưu vo IR
i+1
s âwocj gạn mỉïc ỉu tiãn cao
nháút.
Thanh ghi ISR trỉåïc khi IR4 âỉåüc cháúp nháûn

(0: mỉïc ỉu tiãn cao nháút, : Mỉïc ỉu tiãn tháúp nháút)
IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0
Trảng thại ca ISR 0 1 0 1 0 0 0 0
Mỉïc ỉu tiãn 7 6 5 4 3 2 1 0
Thanh ghi ISR sau khi IR4 âỉåüc cháúp nháûn v sau khi cọ lãûnh quay:
(o: mỉïc ỉu tiãncao nháút,7: mỉïc ỉu tiãn tháúp nháút)
IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0
Trảng thại ca ISR 0 1 0 0 0 0 0 0
Mỉïc ỉu tiãn 2 1 0 7 6 5 4 3
Hçnh 7.10.ISR v mỉïc ỉu tiãn våïi lãûnh quay khi kãút thục ngàõt thỉåìng .
Cọ thãø theo di cạch tỉïhc hoảt âäüng ca mảch 8259A trong chãú âäü quay (âäøi)
mỉïc ỉu tiãn khi kãút thục u cáưu ngàõt thỉåìng thäng qua vê dủ minh ha trçnh by trãn
hçnh 7.10
4. Quay (âäøi) mỉïc ỉu tiãn trong chãú âäü kãút thục u cáưu ngàõt tỉû âäüng: chè cáưn
mäüt láưn âỉa lãûnh chn chãú âäü âäøi mỉïc ỉu tiãn khi kãút thục u cáưu ngàõt tỉû âäüng. Cọ thãø
chn chãú âäü ny bàòng lãûnh láûp “chãú âäü quay khi cọ EOI tỉû âäüng” . Tỉì âọ tråí âi 8259A
s âäøi mỉïc ỉu tiãn mäùi khi kãút thục ngàõt tỉû âäüng theo cạch tỉång tỉû nhỉ åí mủc 3.
Mún b chãú âäü ny ta cọ thãø dng lãûnh xọa “chãú âäü quay khi cọ EOI tỉû âäüng”.
5. Quay (âäøi) mỉïc ỉu tiãn khi kãút thục u cáưu ngàõt âêch danh: chỉång trçnh cn
phủc vủ ngàõt phi cọ lãûnh EOI âêch danh cho 8259A âàût trỉåïc lãûnh tråí vãư IRET . Mảch
8259A s xọa bit ISRi ca u cáưu ngàõt tỉång ỉïng v gạn ln mỉïc ỉu tiãn tháúp nháút
cho âáưu vo Iri, våïi i = L
2
L
1
L
0
. u cáưu ngàõt IR
i+1
s âỉåüc gạn mỉïc ỉu tiãn cao nháút.

OCW3
Tỉì âiãưu khiãøn hoảt âäüng sau khi âỉåüc ghi vo 8259A cho phẹp:
+ Chn cạc ra thanh ghi âãø âc
+ Thàm d trảng thại u cáưu ngàõt bàòng cạch trảng thại ca âáưu vo u cáưu
ngàõt Iri våïi mỉïc ỉu tiãn cao náúht cng m ca âáưu vo âọ v.
+ Thao tạc våïi màût nả âàûc biãût .


D7 D6 D5 D4 D3 D2 D1 D0
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
a) IRR Isi = 0: u cáưu ngàõt i khäng âỉåüc phủc vủ
ISi = 1: âáưu vo i cọ u cáưu ngàõt


D7 D6 D5 D4 D3 D2 D1 D0
IS7 IS6 IS5 IS4 IS3 IS2 IS1 IS0
b) ISR Isi = 0: u cáưu ngàõt i khäng âỉåüc phủc vủ
Isi = 1: u cáưu ngàõt i âang âỉåüc phủc vủ
Hçnh 7.11. Dảng thỉïc ca thanh ghi u cáưu ngàõt v thanh ghi phủc vủ.
Cạc thanh ghi IRR v ISR cọ thãø âc âỉåüc sau khi nảp vo 8259A tỉì âiãưu khiãøn
OCW3 våïi bit ERIS = 1: bit RIS = 0 s cho phẹp âc IRR. Bit RIS = 1 s cho phẹp âc
ISR. Dảng thỉïc ca cạc thanh ghi ny âwocj biãøu diãùn trãn hçnh 7.11a v 6.11b
Bàòng viãûc âỉa vo 8259A tỉì âiãưu khiãøn OCW3 våïi bit P = 1 ta cọ thãø âc âỉåüc
trãn bus dỉỵ liãûu åí láưn âc tiãúp ngay sau âọ tỉì thàm d, trong âọ cọ cạc thäng tin vãư u
cáưu ngàõt våïi mỉïc ỉu tiãn cao nháút âang hoảt âäüng v m tỉång ỉïng våïi u cáưu ngàõt áúy
theo dảng thỉïc âỉåüc biãøu diãùn trãn hçnh 7.12.


D7 D6 D5 D4 D3 D2 D1 D0
I X X X X W2 W1 W0

1: âang cọ u cáưu ngàõt m säú họa ca u cáưu ngàõt
0: KHäng cọ u cáưu ngàõt
(X: khäng âãø )
Hçnh 7.12 Dảng thỉïc ca tỉì thàm d trảng thại u cáưu ngàõt
Cọ thãø gi âáy l chãú âäü thàm d u cáưu ngàõt v chãú âäü ny thỉåìng âwocj ỉïng
dủng trong trỉåìng håüp cọ nhiãưu chỉång phủc vủ ngàõt giäúng nhau cho mäüt u cáưu ngàõt
v viãûc chn chỉång trçnh no âãø sỉí dủng l trạch nhiãûm ca ngỉåìi láûp trçnh.
Tọm lải, mún dng chãú âäü thàm d ca 8259A âãø xạc âënh u cáưu ngàõthiãûn
tải ta cáưn lm cạc thao tạc láưn lỉåüt nhỉ sau:
- Cáúm cạc u cáưu ngàõt bàòng lãûnh CLI
- Ghi tỉì lãûnh OCW3 vỉọi bit P = 1
- Âc tỉì thàm d trảng thại u cáưu ngàõt trãn bus dỉỵ liãûu .
Bit ESMM = 1 cho phẹp 8259A thao tạc våïi chãú âäü màût nả âàûc biãût. Bit SMM =
1 cho phẹp láûp chãú âäü màût nả âàûc biãût. Chãú âäü màût nả âàûc biãût âỉåüc dng âãø thay âäøi
thỉï tỉû ỉu tiãn ngay bãn trong chỉång trçnh con phủc vủ ngàõt. Vê dủ trong trỉåìng håüp cọ
mäüt úu cáưu ngàõt cáúm (bë che båíi chỉång trçnh phủc vủ ngàõt våïi tỉì lãûnh OCW1 m ta
lải mún cho phẹp cạc u cáưu ngàõt våïi mỉïc ỉu tiãn tháúp hån so våïi u cáưu ngàõt bë
cáúm âọ âỉåüc tạc âäüng thç ta s dng chãú âäü màût nả âàûc biãût. Mäüt khi â âỉåüc láûp, chãú
âäü màût nả âàûc biãût s täưn tải cho tåïi khi bë xọa bàòng cạch ghi vo 8259A mäüt tỉì lãûnh
OCW3 khạc vỉïoi bit SMM = 0. Màût nả âàûc biãût khäng nh hỉåíng tåïi cạc u cáưu ngàõt
vỉọi mỉïc ỉu tiãn cao hån.)
Cúi cng âãø cọ cại nhçn mäüt cạch cọ hãû thäúng vãư hoảt âäüng ca hãû vi xỉí l våïi
CPU 8088 v PIC 8259A khi cso u cáưu ngàõt, ta tọm lỉåüt hoảt âäüng ca chụng nhỉ
sau:
1. Khi cọ u cáưu ngàõt tỉì thiãút bë ngoải vi tạc âäüng vo mäüt trong cạc chán IR
ca PIC .8259A s âỉa INT = 1 âãún chán INTR ca 8088.
2. 8088 âỉa ra xung INTA âáưu âãún 8259A
3. 8259A dng xung INTA âáưu nhỉ l thäng bạo âãø nọ hon táút cạc xỉí l näüi bäü
cáưn thiãút, kãø c xỉí l ỉu tiãn nãúu nhỉ cọ nhiãưu u cáưu ngàõt cng xy ra .
4. 8088 âỉa ra xung INTA thỉï hai âãún 8259A

5. Xung INTA thỉï hai khiãún 8259A âỉa ra bus dỉỵ liãûu 1 byte chỉïa thäng tin vãư
säú hiãûu ngàõt ca u cáưu ngàõt vỉìa âỉåüc nháûn biãút.
6. 8088 dng säú hiãûu ngàõt âãø tênh ra âëa chè ngàõt ca vectå ngàõt tỉång ỉïng .
7. 8088 cáút FR, xọa cạc cåì Ç v TF v cáút âëa chè tråí vãư CS:IP vo ngàn xãúp.
8. 8088 láúy âëa chè CS:IP ca chỉång trçnh phủc vủ ngàõt tỉì bng vectå ngàõt v
thỉûc hiãûn chỉång trçnh âọ .
Mäüt säú vê dủ láûp trçnh våïi 8259A
Vê dủ 1:
Láûp trçnh cho 8259A âãø lm viãûc vỉïoi CPU 8088 åí chãú âäü c (âån l), trong hãû
cọ âãûm Bus, chãú âäü ỉu tiãn cäú âënh v våïi EOI thỉåìng, IR kêch theo mỉïc, tên hiãûu IR
0
âỉåüc gạn säú hiãûu ngàõt l 50H.
Gii
Tỉì hçnh 7.8 v càn cỉï theo cạc u cáưu ca bi toạn ta cọ thãø tỉìû âiãưu khiãøn khåíi
âáưu nhỉ sau :
ICW1 = 00011011 = 1BH
D0 = 1 Cáưn thãm ICW4
D1 = 1 Lm viãûc âån l, khäng cáưn ICW3
D2 = 0 Lm viãûc våïi hãû 8086/88
D3 = 1 Âáưu vo IR àn theo mỉïc
D4 = 1 Bàõt büc våïi ICW1
D5 = D6 = D7 =0 gạn bàòng 0 cho hãû 8086/88
ICW2 = 01010000 = 50H
Vç cạc bit T
1
- T
3
ca ICW2 phi m họa trë säú 50H âãø IR
0
- IR

7
âỉåüc m
họa tiãúp båíi cạc Bit T
2
- T
0
= 000

ICW3 khäng cáưn âãúm
ICW4 = 00001101 = 0DH
D
0
= 1 lm viãûc våïi hãû säú 8086/88
D
1
= 0 EOI thỉåìng (phi cọ EOI trỉåïc IRET)
D
3
D
2
= 11 Lm viãûc åí chãú â ch trong hãû cọ âãûm Bus
D
4
= 0 Chãú âäü ỉu tiãn cäú âënh
D
5
= D
6
= D
7

= 0 Ln bàòng 0 cho ICW4
Vê dủ 2 :
Viãút chỉång trçnh âãø khåíi âáưu cho mảch 8259A åí vê dủ trãn nãúu nọ âỉåüc
näúi vỉọi 8088 theo så âäư trãn hçnh 7.6 våïi âëa chè F
0
H v F
1
H
Gii
Âoản chỉång trçnh âãø khåíi âáưu cho mảch ny cọ thãø l:
MOV AL,1BH ;ICW1
OUT OFOH, AL ;ICW1 âỉa ra cäøng FOH
MOV Al,50H ;ICW2
OUT OF1H,AL ;ICW2 âỉa ra cäøng F1H
MOV AL, ODH ;ICW4
OUT OF1H, AL ;ICW4 âỉa ra cäøng F1H
Vê dủ 3:
Gi thiãút tải chán IR3 ca mảch 8259A åí trãn cọ tên hiãûu u cáưu ngàõt .Tải
chỉång trçnh con phủc vủ cho u cáưu ngàõt ny cọ cáưn phi cọ lãûnh kãút thục ngàõt
(EOI) khäng ? nãúu cọ thç hy viãút ra cạc lãûnh âọ.
Gii:
Gi thiãút tải IR3 cọ tên hiãûu u cáưu ngàõt v CPU â tr låìi cháúp nháûn
ngàõt. 8259A s láûp Bit ISR3 = 1 âãø ghi nhåï l u cáưu ngàõt IR3 âang âỉåüc phủc
vủ. Vç trỉåïc âọ ta â âënh nghéa chãú âäü kãút thục ngàõt bçnh thỉåìng cho 8259A,
nãn trong chỉång trçnh con phủc vủ ngàõt ca u cáưu ngàõt ny ta phi cọ lãûnh kãút
thục ngàõt EOI âỉa âãún 8259A âãø xọa Bit ISR3 âỉpåüc láûp trỉåïc âọ, tảo âiãưu kiãûn
cho cạc u cáưu ngàõt khạc våïi mỉïc ỉu tiãn tháúp hån hồûc cho chênh u cáưu ngàõt
måïi tải chán IR3 cọ thåìi cå âỉåüc phủc vủ.
Dảng thỉåìng tháúy ca 1 chỉång trçnh con phủc vủ ngàõt kiãøu ny cọ thãø
nhỉ sau (ta chè chụ nháún mảnh âãún cạc lãûnh cúi liãn quan âãún EOI):

Phuc vu IR3 Proc
; thán ca chỉång trçnh con phủc vủ ngàõt .
MOV AL20 ;OCW2 vỉọi EOI âãø kãút thục
OUT OFOH, AL ; âỉa OCW2 âãún 8259A .
IRET ; tråí vãư chỉång trçnh chênh phuc vu IR3Endp
Vê dủ 4:
Gi thiãút váùn sỉí dủng så âäư trãn hçnh 7.6 v cạc säú liãûu nhỉ åí cạc vê dủ
trỉåïc. Hãû ny bçnh thỉåìng lm mäüt cäng viãûc gç âọ, nhỉng khi cọ u cáưu ngàõt åí
IR3 ta phi âc 100 dỉỵ liãûu åí cäøng 70H, nhán âäi mäùi dỉỵ liãûu âc âỉåüc räưi âỉa
ra cäøng 71H (âãø cho âån gin ta coi dỉỵ liãûu khi âc v c khi â nhán âäi váùn
chỉïa âỉåüc trong 1 Byte)
Gii
Hçnh 7.13 biãøu diãùn lỉu âäư ca chỉång trçnh thỉûc hiãûn cäng viãûc nọi trãn.
Âãø chøn bë cho cäng viãûc trãn chỉång trçnh chênh phi âỉåüc bàõt âáưu bàòng cạc
lãûnh khåíi âáưu cho 8259A nhỉ trong cạc vê dủ trỉåïc, tiãúp theo âọ l cäng viãûc củ
thãø âàût ra cho chỉång trçnh chênh. Trong chỉång trçnh con phủc vủ ngàõt ta phi
âc cạc giạ trë vo v nhán âäi räưi âỉa ra cäøng. Trỉåïc khi kãút thục chỉång trçnh
con âãø tråí lải chỉång trçnh chênh ta phi cọ cạc lãûnh kãút thục u cáưu ngàõt (EOI)
cho 8259A nhỉ åí vê dỉủ 3.
Gi thiãút ràòng chỉång trçnh con phủc vủ ngàõt xong sau khi â dëch ra m
mạy s âỉåüc nảp vo ROM v âãø lải âëa chè C0000H. Khi mún cho chảy
chỉång trçnh ta phi vo âëa chè ỉïng våïi Vectå ngàõt 53H v thay âäøi näüi dung
ca Vectå ny sao cho 2 ä 0014CH, 0014DH chỉïa 0000H v 2 ä tiãúp theo
0014EH, 0014FH chỉïa C000H (âëa chè chỉång trçnh con phủc vủ ngàõt) . Nhåì
váûy mäùi khi cọ u cáưu ngàõt tåïi chán IR3 ca 8259A thç chỉång trçnh con phủc
vủ ngàõt âỉåüc kêch hoảt.
Thán ca chỉång trçnh chỉïa s chỉïa cạc lãûnh nhỉ sau: CLI
;cáúm cạc ngàõt
MOV AL, 1BH ; ICW1
OUT OFOH,AL ; ICW1 âỉa ra cäøng FOH

MOV AL, 50H ; ICW2
OUT OF1H, AL ; ICW2 âỉa ra cäøng F1H
MOV AL, ODH ;ICW4
OUT OF1H,Al ; ICW4 âỉa ra cäøng F1H
MOV AL, 0 ; thạo màût nả cho cạc IR
OUT OF1H, Al ;OCW1 âỉa âãún 8259A
STI ; cho phẹp ngàõt
; Cạc cäng viãûc ca chỉång trçnh chênh åí âáy
Chỉång trçnh con phủc vủ ngàõt IR
3
cọ dảng sau :
Phucvu IR
3
Proc
PUSH AX ; Cáút cạc thanh ghi
PUSH BX
PUSH CX
IN AL,OF1H ; Âc màût nả ngàõt
MOV BL, AL ; Cáút màût nả
MOV AL,0F7H ; Chè cho phẹp u cáưu
IR3
OUT OF1H, AL ; âỉåüc tạc âäüng
MOV CL,100 ; 100 säú liãûu phi thao
Tạc
TIEP: IN AL, 70H ; âc vo mäüt säú liãûu
SHL AL, 1 ; nhán âäi räưi
OUT 71H,AL ; âỉa ra cäøng
LOOP TIEP
MOV AL, BL ; Láúy lải màût nả c
OUT 0F1H,AL ; âỉa màût nả c âãún

8259A
MOV AL, 20 ; OCW2 våïi EOI âãø kãút
thục
OUT OFOH, AL ; âỉa OCW2 âãún 8259A
POP CX ; láúy lải cạc thanh ghi
POP BX
POP AX
STI ; cho phẹp ngàõt tråí lải
IRET ; tråí vãư chỉång trçnh chênh
Phucvu IR3 Endp
Trong chỉång trçnh con åí trãn ta xỉí l màût nả ngàõt khạ cáøn tháûn. Vç åí
trong chỉång trçnh chênh, sau khi khåíi âáưu cho mảch 8259A ta â cho phẹp táút
c cạc ngàõt cọ thãø tạc âäüng v vç chỉång trçnh chênh khi hoảt âäüng cọ thãø thay
âäøi cạc màût nả khạc ca 8259A (trỉì màût nả ca IR3), nãn tải chỉång trçnh con
trong khi phủc vủ u cáưu ngàõt IR3 ta â cáút giạ trë ca cạc màût nả ngàõt hiãûn thåìi
räid ng lãûnh âãø che cạc u cáưu ngàõt khạc âi v chè âãø u cáưu ngàõt IR3 âỉåüc
nháûn biãút. Khi xỉí l xong cạc cäng viãûc ta phi tr lải giạ trë màût nả ngàõt c cho
8259A räưi mỉọi tråí vãư chỉång trçnh chênh.
3. Ngàõt trong mạy IBM PC
Vç cạc mạy IBM PC âỉåüc sỉí dủng ráút räüng ri nãn tải cúi chỉång ny ta
s trçnh by så lỉåüc cáúu trục ngàõt trong cạc mạy âọ.
3.1 Ngàõt trong mạy IBM PC/XT
Bng 7.3 Cạc ngàõt chênh ca IBM PC/XT
INT N? Âëa chè Dnh cho
0 00E3 : 3072 Phẹp chia cho 0
1 0600 : 08ED Chảy tỉìng lãûnh
2 F000 : E2C3 NMI
3 0600 : 08E6 Âiãøm dỉìng
4 0700 : 0174 Trn khi lm viãûc våïi säú cọ dáúu
5 F000 : FF34 In mn hçnh (BIOS)

6.7 Âãø dnh
8 F000 : FEA5 IRQ0 ca 8259A (ngàõt BIOS ca
âäưng häư)
9 F000 : E987 IRQ1 ca 8259A (ngàõt BIOS ca
bn phêm)
A IRQ2 ca 8259A (âãø dnh)
B IRQ3 ca 8259A (âãø dnh cho
COM 2)
C IRQ4 ca 8259A (âãø dnh cho
COM 1)
D IRQ5 ca 8259A (âãø dnh cho âéa
cỉïng)
E F000 : EF57 IRQ6 ca 8259A (cho äø âéa mãưm)
F 0070 : 0147 IRQ7 ca 8259A (cho mạy in
LPT1)

60 - 66 Dnh cho ngỉåìi sỉí dủng
Trong mạy IBM PC/XT cạc täø chỉïc ngàõt cọ thãø tọm lỉåüt nhỉ åí trãn bng
7.3 .
Mạy IBM PC/XT cọ sỉí dủng 1 mảch PIC 8259A. Cạc âáưu vo IRi ca
mảch ny âỉåüc sỉí dủng hãút âãø gàõn cho cạc thiãút bë ngoải vi củ thãø nhỉ bn phêm, mảch
õọửng họử thồỡi gian thổỷc khi khồới õọỹng, maỷch PIC 8259A cuớa maùy IBM PC/XT õổồỹc
ghi vồùi caùc tổỡ õióửu khióứn khồới õỏửu sau (ghi vaỡo cọứng 20H vaỡ 21 H)
+ ICW1 = 13H ; Kờch sổồỡn, õồn leớ, cỏửn 1 ICW4
+ ICW2 = 08H ; Kióứu ngừt 8
+ ICW3 khọng cỏửn
+ ICW4 = 09H ; Coù õóỷm, 8086, EOI trổồùc IRET
Caùc ngừt daỡnh cho ngổồỡi sổớ duỷng vồùi INT 60H INT66H.Nóỳu sổớ duỷng caùc ngừt
naỡy cho caùc cọng vióỷc cuớa mỗnh, ngổồỡi sổớ duỷng phaới coù thóm caùc maỷch phuỷ õóứ õổa yóu
cỏửu ngừt õóỳn CPU vaỡ õóứ õổa sọỳ hióỷu ngừt N vaỡo BUS dổợ lióỷu cho CP õoỹc khi coù traớ lồỡi

chỏỳp nhỏỷn yóu cỏửu ngừt INTA .
3.2 Ngừt trong maùy IBM PC/AT
Trong caùc maùy IBM PC/AT (vồùi caùc CPU tổỡ 80286 trồớ õi) Cỏỳu truùc cuớa hóỷ
thọỳng coù mọỹt sọỳ thay õọứi so vồùi maùy XT. Lyù do chờnh laỡ ồớ caùc maùy thóỳ hóỷ sau ngổồỡi ta
õaợ sổớ duỷng 2 maỷch PIC 8259A (so vồùi 1 PIC vồùi caùc maùy XT) õóứ mồớ rọỹng khaớ nng
quaớn lyù 1 sọỳ lồùn hồn caùc yóu cỏửu ngừt thọng qua PIC. Sồ õọử nọỳi cuớa caùc maỷch PIC
8259A chuớ vaỡ thồỹ nhổ trón hỗnh 7.14
Vióỷc gaùn cừt yóu cỏửu ngừt IRQ cho caùc ngừt INT N õổồỹc thóứ hióỷn trón abngr
7.4 . Caùc ngừt INT N coỡn laỷi cuợng giọỳng nhổ maùy IBM PC/XT .
Baớng 7.4. Caùc IRQ cuớa caùc maùy PC/AT
IRQ INT N? Daỡnh cho
IRQ0 INT08H Bọỹ õóỳm 8254 õaỷt TC
IRQ1 INT09H Baỡn phờm
IRQ2 INT0AH Yóu cỏửu ngừt tổỡ 8259A thồỹ
IRQ3 INT0BH COM 2
IRQ4 INT0CH COM 1
IRQ5 INT0DH Cọỹng maùy in song song LPT2
IRQ6 INT0EH ióửu khióứn õộa móửm
IRQ7 INT0FH Cọỹng maùy in song song LPT1
IRQ8 INT70H CMOS cuớa õọửng họử thồỡi gian thổỷc
IRQ9 INT71H ởnh hổồùng laỷi bũng chổồng trỗnh vóử
INT0AH
IRQ10 INT72H Daỡnh cho ngổồỡi sổớ duỷng
IRQ11 INT73H Daỡnh cho ngổồỡi sổớ duỷng
IRQ12 INT74H Chuọỹt cuớa PS/2
IRQ13 INT75H ọửng xổớ lyù toaùn hoỹc
IRQ14 INT76H ỉ õộa cổùng
IRQ015 INT77H Daỡnh cho ngổồỡi sổớ duỷng
Sau khi khồới õọỹng CPU ghi caùc tổỡ õióửu khióứn vaỡo PIC nhổ sau:
* PIC chuớ (cọứng 20H vaỡ 21H)

+ ICW1 = 11H ; kờch sổồỡn,chuớ , cỏửn ICW4
+ ICW2 = 8 ; Kióứu ngừt 8
+ ICW3 = 04H ; Chuớ coù thồỹ ồớ mổùc 2
+ ICW4 = 01H ; chuớ khọng coù õóỷm, 80 x 86,EOI trổồùc
IRET.
* PIC thồỹ (cọứng A0H vaỡ A1H)
+ ICW1 = 11H ; Kờch sổồỡn,thồỹ , cỏửn ICW4
+ ICW2 = 70H ; Kióứu ngừt 70H
+ ICW3 = 02H ; Thồỹ coù chuớ ồớ mổùc 2
+ ICW4 = 01H ; Thåü khäng cọ âãûm 80 x 86, EOI trỉåïc
IRET.
Viãûc sỉí dủng kh nàng ngàõt trãn mạy vi tênh IBM PC âãø vo/ra dỉỵ liãûu khi cọ
u cáưu theo kiãøu nhỉ åí vê dủ trỉåïc cng cọ thãø thỉûc hiãûn âỉåüc nhỉng phi cọ cạc thay
âäøi trong chỉång trçnh cho ph håüp våïi cáúu trục ngàõt củ thãø trong mäùi loải mạy. Vç näüi
dung cạc vectå ngàõt ca cạc mạy cọ thãø khạc nhau chụt êt do cọ sỉû khạc nhau giỉỵa cạc
phiãn bn DOS v BIOS do âọ ta phi tham kho ti liãûu củ thãø ca tỉìng mạy âãø thỉûc
hiãûn âỉåüc täút viãûc täø chỉïc chỉång trçnh. Hån nỉỵa vãư pháưn cỉïng åí cạc mạy AT v XT
cọ cáúu trục ngàõt håi khạc nhau nãn viãûc täø chỉïc vo/ ra dỉỵ liãûu bàòng ngàõt lải cng phi
âỉåüc xem xẹt cáøn thán. Vãư màût chỉång trçnh thç chỉång trçnh chênh v chỉång trçnh
con phủc vủ ngàõt âãưu phi âỉåüc ti vo bäü nhåï RAM ca mạy dỉåïi sỉû kiãøm soạt ca
DOS nãn ta phi viãút chụng dỉåïi dảng thêch håüp sao cho trong khi chỉång trçnh chênh
lm viãûc m cọ u cáưu ngàõt thç chỉång trçnh con phủc vủ ngàõt cọ thãø âỉåüc gi âãø hoảt
âäüng.
* Vê dủ 5 :
Gi thiãút ta váùn phi thỉûc hiãûn cäng viãûc nhỉ åí vê dủ trỉåïc nỉng pháưn cỉïng báy
giåì l mạy IBM PC/XT. Hãû ny bçnh tỉhåìng lm 1 cäng viãûc gç âọ, nhỉng khi cọ u
cáưu ngàõt ta phi âc 100 dỉỵ liãûu åí cäøng 70H, nhán âäi mäùi dỉỵ liãûu âc âỉåüc räưi âỉa ra
cäøng 71H (Âãø cho âån gin ta coi dỉỵ liãûu khi âc v c khi â nhán âäi âáúch âỉåüc
trong 1 Byte)
Gii

Nhỉ â nọi åí pháưn trỉåïc, âãø vo ra dỉỵ liãûu bàòng cạch ngàõt CPU trong mạy IBM
PC/XT . M khäng phi lo viãûc âỉa säú hiãûu ngàõt N vo Bus dỉỵ liãûu trong chu k
INTA ta cọ thãø táûn dủng tên hiãûu IRQ2 åí khe càõm måí räüng v dng cạc mảch cäøng dãø
âỉa dỉỵ liãûu vo Bus dỉỵ liãûu. Trong cạc mạy IBM PC/XT, mảch 8259A â âỉåüc khåíi
âáưu khi mạy bàõt âáưu lm viãûc, do váûy trong chỉång trçnh chênh ta chè cáưn âỉa vo cạc
vectå ngàõt (bàõt âáưu tải âëa chè 0000 : (0AH x 4)) tỉång ỉïng våïi IRQ2 âëa chè ca
chỉång trçnh con phủc vủ ngàõt. Trong chỉång trçnh con phủc vủ ngàõt ta phi âc cạc
giạ trë vo räưi nhán âäi v âỉa ra cäøng . Trỉåïc khi kãút thục chỉång trçnh con âãø tråí lải
chỉång trçnh chênh ta phi cọ cạc lãûnh kãút thục u cáưu ngàõt (EOI) cho 8259A nhỉ åí vê
dủ trỉåïc.
Chỉång trçnh chênh v chỉång trçnh con cọ dảng nhỉ sau:
* Model small
* Stack 100
* Code
Main Proc
MOV AX, 0 ; khåíi tảo ES
MOV ES, AX
CLI ; cáúm ngàõt âãø âỉa âëa chè
MOV WORD PTR ES:002AH,SEG phucvu IRQ2
MOV WORD PTR ES:0028H,Offset phucvu IRQ2
STI ; cho phẹp ngàõt tråí lải; cäng viãûc ca chỉång trçnh
chênh bàõt âáưu åí âáy
MOV AH,4CH ; tråí vãư DOS
INT 21H
Main Endp
PhucvuIRQ2 Proc
PUSH AX ; cáút lải thanh ghi
PUSH CX
MOV CL,100 ; 100 säú liãûu phi thao tạc
TIEP: IN, AL, 70H ; âc vo 1 säú liãûu

SHL AL,1 ; nhán âäi räưi
OUT 71H, AL ; Âỉa ra cäøng
LOOP TIEP
MOV AL, 20 ; OCW2 våïi EOI âãø kãút thục
OUT 20H,AL ; âỉa OCW2 âãún 8259A
POP CX ; Láúy lải cạc thanh ghi
POP AX
STI ; cho phẹp ngàõt tråí lải
IRET ; tråí vãư chỉång trçnh chênh
PhucvuIRQ2 Endp
END Main

×