Ki Thuat Vxl

  • Uploaded by: le thanh
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Ki Thuat Vxl as PDF for free.

More details

  • Words: 12,071
  • Pages: 21
CHÆÅNG 7 NGÀÕ T VAÌ XÆÍ LYÏ NGÀÕ T TRONG HÃÛ 8088

1. Sæû cáö n thiãú t phaí i ngàõ t CPU Trong caï ch täø chæï c trao âäø i dæî liãû u thäng qua viãû c thàm doì traû ng thaï i sàô n saì ng cuí a thiãú t bë ngoaû i vi nhæ âaî âæåü c trçnh baì y åí chæång træåï c, træåï c khi tiãú n haì nh báú t kyì mäü t cuäü c trao âäø i dæî liãû u naì o CPU phaí i âãø toaì n bäü thåì i gian vaì o viãû c xaï c âënh traû ng thaï i sàô n saì ng laì m viãû c cuí a thiãú t bë ngoaû i vi. Trong hãû thäú ng vi xæí lyï våï i caï ch laì m viãû c nhæ váû y, thäng thæåì ng CPU âæåü c thiãú t kãú chuí yãú u chè laì âãø phuû c vuû cho viãû c vaì o/ra dæî liãû u vaì thæû c hiãû n caï c xæí lyï liãn quan. Trong thæû c tãú ngæåì i ta ráú t muäú n táû n duû ng khaí nàng cuí a CPU âãø laì m thãm âæåü c nhiãö u cäng viãû c khaï c næî a, chè khi naì o coï yãu cáö u trao âäø i dæî liãû u thç måï i yãu cáö i CPU taû m dæì ng cäng viãû c hiãû n taû i âãø phuû c vuû viãû c trao âäø i dæî liãû u. Sau khi hoaì n thaì nh viãû c trao âäø i dæî liãû u thç CPU laû i phaí i quay vãö âãø laì m tiãú p cäng viãû c hiãû n âang bë giaï n âoaû n. Caï ch laì m viãû c theo kiãø u naì y goü i laì ngàõ t CPU (giaï n âoaû n hoaû t âäü ng cuí a CPU) âãø trao âäø i dæî liãû u. Mäü t hãû thäú ng våï i caï ch hoaû t âäü ng theo kiãø u naì y coï thãø âaï p æï ng ráú t nhanh våï i caï c yãu cáö u trao âäø i dæî liãû u trong khi váù n coï thãø laì m âæåü c caï c cäng viãû c khaï c. Muäú n âaû t âæåü c âiãö u naì y ta phaí i coï caï ch täø chæï c hãû thäú ng ao cho coï thãø táû n duû ng âæåü c khaí nàng thæû c hiãû n caï c chæång trçnh phuû c vuû ngàõ t taû i caï c âëa chè xaï c âënh cuí a CPU. Khi nghiãn cæï u caï c tên hiãû u cuí a CPU 8088, chuï ng ta âaî tháú y vi maû ch naì y coï caï c chán tên hiãû u cho caï c yãu cáö u ngàõ t che âæåü c INTR vaì khäng che âæåü c NMI, chênh caï c chán naì y seî âæåü c sæí duû ng vaì o viãû c âæa caï c yãu cáö u ngàõ t tæì bãn ngoaì i âãú n CPU. 2. Ngàõ t trong hãû vi xæí lyï 8088 2.1. Caï c loaû i ngàõ t trong hãû 8088 Trong hãû vi xæí lyï 8088 coï thãø xãú p caï c nguyãn nhán gáy ra ngàõ t CPU vaì o 3 nhoï m nhæ sau: + Nhoï m caï c ngàõ t cæï ng : âoï laì caï c yãu cáö u ngàõ t CPU do caï c tên hiãû u âãú n tæì caï c chán INTR vaì NMI. Ngàõ t cæï ng INTR laì yãu cáö u ngàõ t che âæåü c. Caï c lãû nh CLI vaì STI coï aí nh hæåí ng træû c tiãú p tåï i traû ng thaï i cuí a cåì IF trong bäü vi xæí lyï , tæï c laì aí nh hæåí ng tåï i viãû c CPU coï nháû n biãú t yãu cáö u ngàõ t taû i chán naì y hay khäng. Yãu cáö u ngàõ t taû i chán INTR coï thãø coï kiãø u ngàõ t N nàò m trong khoaí ng 0-FFH. Kiãø u ngàõ t naì y phaí i âæåü c âæa vaì o bus dæî liãû u âãø CPU coï thãø âoü c âæåü c khi coï xung INTA trong chu kyì traí låì i cháú p nháû n ngàõ t. Biãø u âäö thåì i gian cuí a caï c xung liãn quan âãú n quaï trçnh trãn âæåü c mä taí trãn hçnh 7.1.

+ Nhoï m caï c ngàõ t mãö m: khi CPU thæû c hiãû n caï c lãû nh ngàõ t daû ng INT N, trong âoï N laì säú hiãû u (kiãø u) ngàõ t nàò m trong khoaí ng 00-FFH (0-255). + Nhoï m caï c hiãû n tæåü ng ngoaû i lãû : âoï laì caï c ngàõ t do caï c läù i naí y sinh trong quaï trçnh hoaû t âäü ng cuí a CPU nhæ pheï p chia cho 0, xaí y ra traì n khi tênh toaï n. Yãu cáö u ngàõ t seî âæåü c CPU kiãø m tra thæåì ng xuyãn taû i chu kyì âäö ng häö cuäú i cuì ng cuí a mäù i lãû nh. Trãn hçnh 7.2 trçnh baì y mäü t caï ch âån giaí n âãø âæa âæåü c säú hiãû u ngàõ t N vaì o bus dæî liãû u trong khi cuî ng taû o ra yãu cáö u ngàõ t âæa vaì o chán INTR cuí a bäü vi xæí lyï 8088. Giaí thiãú t trong mäü t thåì i âiãø m nháú t âënh chè coï mäü t yãu cáö u ngàõ t IRi âæåü c taï c âäü ng vaì khi âoï åí âáö u ra cuí a maû ch NAND seî coï xung yãu cáö u ngàõ t âãú n CPU. Tên hiãû u IRi âæåü c âäö ng thåì i âæa qua maû ch khuãú ch âaû i âãû m âãø taû o ra säú hiãû u ngàõ t tæång æï ng, säú hiãû u ngàõ t naì y seî âæåü c CPU âoü c vaì o khi noï âæa ra tên hiãû u traí låì i INTA . Baí ng 7.1. Cho ta quan hãû AD7 IR6 IR5 IR4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1

giæî a IRi vaì säú hiãû u ngàõ t N tæång æï ng. IR3 IR2 IR1 IR0 N 1 1 1 0 FEH (254) 1 1 0 1 FDH (253) 1 0 1 1 FBH (251) 0 1 1 1 F7H (247) 1 1 1 1 EFH (239) 1 1 1 1 DFH (223) 1 1 1 1 BFH (191)

Ta seî coì n âãö cáû p âãú n viãû c xæí lyï træåì ng håü p coï 2 yãu cáö u ngàõ t IRi cuì ng mäü t luï c vaì caï ch âæa caï c giaï trë N cuí a INTN vaì o bus dæî liãû u mäü t caï ch tãû âäü ng bàò ng maû ch âiãö u khiãø n ngàõ t PIC åí pháö n sau. 2.2. Âaï p æï ng cuí a CPU khi coï yãu cáö u ngàõ t Khi coï yãu cáö u ngàõ t kiãø u N âãú n chán CPU vaì nãú u yãu cáö u âoï âæåü c pheï p, CPU thæû c hiãû n caï c cäng viãû c sau: 1. SP ← SP-2, {SP} ← FR, trong âoï {SP} laì ä nhåï do SP chè ra. (chè ra âènh måï i cuí a ngàõ n xãú p, cáú t thanh ghi cåì vaì o âènh ngàn xãú p) 2. IF ← 0, TF ← 0. (cáú m caï c ngàõ t khaï c taï c âäü ng vaì o CPU, cho CPU chaû y åí chãú âäü bçnh thæåì ng) 3. SP ← SP-2, {SP} ← CS. (chè ra âènh måï i cuí a ngàn xãú p, cáú t pháö n âëa chè âoaû n cuí a âëa chè tråí vãö vaì o âènh ngàn xãú p) 4. SP ← SP-2, {SP} ← IP

(chè ra âènh måï i cuí a ngàn xãú p, cáú t pháö n âëa chè lãû ch cuí a âëa chè tråì vãö vaì o âènh ngàn xãú p) 5. {N*4} → IP, {N*4+2} → CS (láú y lãû nh taû i âëa chè måï i cuí a chæång trçnh con phuû c vuû ngàõ t kiãø u N tæång æï ng trong baí ng vectå ngàõ t) 6. Taû i cuäú i chæång trçnh phuû c vuû 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æí lyï quay laû i chæång trçnh chênh taû i âëa chè tråí vãö vaì våï i giaï trë cuî cuí a thanh ghi cåì âæåü c láú y ra tæì ngàn xãú p). Vãö màû t cáú u truï c chæång trçnh, khi coï ngàõ t xaí y ra thç chæång trçnh chênh (CTC) liãn hãû våï i chæång trçnh con phuû c vuû ngàõ t (CTCPVN) nhæ mä taí trãn hçnh 7.3. Trong thæû c tãú caï c ngàõ t mãö m INT N âaî bao truì m caï c loaû i khaï c båí i vç Intel âaî quy âënh mäü t säú kiãø u ngàõ t âàû c biãû t âæåü c xãú p vaì o âáö u daî y ngàõ t mãö m INY N nhæ sau: + INT 0 : Ngàõ t mãö m do pheï p chia cho säú 0 gáy ra, + IN T1 : Ngàõ t mãö m âãø chaû 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 taû i chán NM1 gáy ra, + IN T3 : Ngàõ t mãö m âãø âàû t âiãø m dæì ng cuí a chæång trçnh taû i mäü t âëc chè naì o âoï + IN T4 : (Hoàû c lãû nh INTO) : ngàõ t mãö m æï ng våï i træåì ng håü p cåì traì n OF=1. Caï c kiãø u ngàõ t khaï c coì n laû i thç âæåü c daì nh cho Intel vaì cho ngæåì i sæí duû ng (IBM khäng hoaì n toaì n tuán thuí caï c quy âënh naì y khi chãú taû o caï c maï y PC/XT vaì PC/AT0: + INT 5-INT 1FH; daì nh riãng cho Intel trong caï c bäü vi xæí lyï cao cáú p khaï c, + INT 20H-INT FFH: daì nh cho ngæåì i sæí duû ng. Caï c kiãø u ngàõ t N trong INT N âãö u tæång æï ng våï i caï c âëa chè xaï c âënh cuí a CTCPVN maì ta coï thãø tra âæåü c trong baí ng caï c vectå ngàõ t. Intel quy âënh baí ng naì y nàò m trong RAM bàõ t âáö u tæì âaû ic hè 00000H vaì daì i 1 KB (vç 8088 coï táú t caí 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 âuí cho CS:IP cuí a CTCPVN). Baí ng 7.2. Baí ng vectå ngàõ t cuí a 8088 taû i 1KB RAM âáö u tiãn 03FEH-03FFH CS cuí a CTPVN INT FFH 03FCH-03FDH IP cuí a CTPVN INT FFH 0082H-0083H 0080H-0081H

CS cuí a CTPVN INT 20H IP cuí a CTPVN INT 20H

000AH-000BH 0008H-0009H 0006H-0007H 0004H-0005H 0002H-0003H 0000H-0001H

CS cuí a CTCPVN INT 2 IP cuí a CTCPVN INT 2 CS cuí a CTCPVN INT 1 IP cuí a CTCPVN INT 1 CS cuí a CTCPVN INT 0 IP cuí a CTCPVN INT 0

Trãn baí ng 7.2. giåï i thiãû u mäü t pháö n cuí a baí ng vectå ngàõ t cuí a CPU 8088 2.3. Xæí lyï æu tiãn khi ngàõ t: Coï mäü t váú n âãö ráú t thæû c tãú âàû t ra laì nãú u taû i cuì ng mäü t thåì i âiãø m coï nhiãö u yãu cáö u ngàõ t thuäü c caï c loaû i ngàõ t khaï c nhau cuì ng âoì i hoí i CPU phuû c vuû thç CPU xæí lyï caï c yãu cáö u ngàõ t âoï nhæ thãú naì o? Cáu traí låì i laì CPU xæí lyï caï c yãu cáö u ngàõ t theo thæï tæû æu tiãn våï i nguyãn tàõ c ngàõ t naì o coï mæï c æu tiãn vaì phuû c vuû træåï c. Ngay tæì khi âæåü c chãú taû o (thæåì ng goü i laì ngáö m âënh) CPU 8088 coï khaí nàng phán biãû t caï c mæï c æu tiãn khaï c nhau cho caï c loaû i ngàõ t (theo thæï tæû tæì cao xuäú ng tháú p) nhæ sau: + ngàõ t näü i bäü : INT 0 (pheï p chia cho 0), INT N, INTO ... cao nháú t + ngàõ t khäng che âæåü c NMI + ngàõ t che âæåü c INTR + ngàõ t âãø chaû y tæì ng lãû ng INT 1 ... tháú p nháú t Âãø tháú y roî hoaû t âäü ng cuí a CPU trong cå chãú ngàõ t æu tiãn naì y ta coï thãø láú y mäü t vê duû cuû thãø nhæ sau. Giaí thiãú t taû i mäü t thåì i âiãø m naì o âoï , trong khi CPU (åí traû ng thaï i cho pheï p ngàõ t våï i cæì o IF=1) âang thæû c hiãû n pheï p chia vaì coï läù i xaí y ra do säú bë chia bàò ng 0, âuï ng vaì o luï c âoï CPU cuî ng nháû n âæåü c yãu cáö u tæì âáö u vaì o INTR. CPU seî xæí lyï ra sao trong træåì ng håü p naì y? Theo thæï tæû æu tiãn ngáö m âënh trong viãû c xæí lyï ngàõ t cuí a CPU 8088 thç INT 0 coï mæï c æu tiãn cao hån INTR, vç váû y âáö u tiãn CPU seî thæû c hiãû n chæång trçnh phuû c vuû ngàõ t INT 0 âãø âaï p æï ng våï i läù i âàû c biãû t cho pheï p chua cho 0 gáy ra vaì cåì IF bë xoï a vãö 0. Yãu cáö u ngàõ t INTR seî tæû âäü ng bë cáú m cho tåï i khi chæång trçnh phuû c vuû ngàõ t INT 0 âæåü c hoaì n táú t vaì tråí vãö nhåì IRET, cåì IF cuî âæåü c traí laû i. Tiãú p theo âoï CPU seî âaï p æï ng yãu cáö u ngàõ t INTR bàò ng caï ch thæû c hiãû n chæång trçnh phuû c vuû ngàõ t daì nh cho INTR. 2.4. Maû ch âiãö u khiãø n ngàõ t æu tiãn 8259A Trong træåì ng håü p coï nhiãö u yãu cáö u ngàõ t che âæåü c tæì bãn ngoaì i phaí i phuû c vuû tæ thæåì ng duì ng vi maû ch coï sàô n 8259A âãø giaí i quyãú t váú n âãö æu tiãn. maû ch 8259A âæåü c goü i laì maû ch âiãö u khiãø n ngàõ t æu tiãn (priority interrupt controller, PIC). Âoï laì mäü t vi maû ch cåî låï n láû p trçnh âæåü c, coï thãø xæí lyï træåï c âæåü c 8 yãu cáö u ngàõ t våï i 8 mæï c æu tiãn khaï c nhau âãø taû o ra mäü t yãu cáö u ngàõ t âæa âãú n âáö u vaì o INTR (yãu cáö u

ngàõ t che âæåü c cuí a CPU 8088. Nãú u näú i táö ng 1 maû ch 8259A chuí våï i 8 maû ch 8259A thåü ta coï thãø náng täø ng säú caï c yãu cáö u ngàõ t våï i caï c mæï c æu tiãn khaï c nhau lãn thaì nh 64. Caï c khäú i chæï c nàng chênh cuí a 8259A + Thanh ghi IRR: ghi nhåï caï c yãu cáö u ngàõ t coï taû i âáö u vaì o IRi. + Thanh ghi ISR: ghi nhåï caï c yãu cáö u ngàõ t âang âæåü c phuû c vuû trong säú caï c yãu cáö u ngàõ t IRi. + Thanh ghi IMR: ghi nhåï màû t naû ngàõ t âäú i våï i caï c yãu cáö u ngàõ t IRi. + Logic âiãö u khiãø n: khäú i naì y coï nhiãû m vuû gæí i yãu cáö u ngàõ t tåï i INTR cuí a 8088 khi coï tên hiãû u taû i caï c chán IRi vaì nháû n traí låì i cháú p nháû n yã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: duì ng âãø phäú i gheï p 8259A våï i bus dæî liãû u cuí a CPU + Logic âiãö u khiãø n ghi/âoü c: duì ng cho viãû c ghi caï c tæì âiãö u khiãø n vaì âoü c caï c tæì traû ng thaï i cuí a 8259A. + Khäú i âãû m näú i táö ng vaì so saï nh: ghi nhåï vaì so saï nh säú hiãû u cuí a caï c maû ch 8259A coï màû t trong hãû vi xæí lyï . Caï c tên hiãû u cuí a 8259A: Mäü t säú tên hiãû u trong maû ch 8259 coï tãn giäú ng nhæ caï c tên hiãû u tiãu chuáø n cuí a hãû vi xæí lyï 8080. Ta coï thãø tháú y roî vaì hiãø u âæåü c yï nghéa cuí a chuï ng ngay trãn hçnh 7.4. Ngoaì i caï c tên hiãû u naì y ra, coì n coï mäü t säú tên hiãû u âàû c biãû t khaï c cuí a 8259A cáö n phaí i giåï i thiãû u thãm gäö m: + Cas0-Cas2 [I,O]: laì caï c âáö u vaì o âäú i våï i caï c maû ch 8259A thåü hoàû c caï c âáö u ra cuí a maû ch 8259A chuí duì ng khi cáö n näú i táö ng âãø tàng thãm caï c yãu cáö u ngàõ t cáö n xæí lyï . + SP / EN [I,O]: khi 8259A laì m viãû c åí chãú âäü khäng coï âãû m bus dæî liãû u thç âáy laì tên hiãû u vaì o duì ng láû p trçnh âãø biãú n maû ch 8259A thaì nh maû ch thåü ( SP = 0 ) hoàû c chuí ( SP = 1 ); khi 8259A laì m viãû c trong hãû vi xæí lyï åí chãú âäü coï âãû m bus dæî liãû u thç chán naì y laì tên hiãû u ra EN duì ng måí âãû m bus dæî liãû u âãø 8088 vaì 8259A thäng vaì o bus dæî liãû u hãû thäú ng. Luï c naì y viãû c âënh nghéa maû ch 8259A laì chuí hoàû c thåü phaí i thæû c hiãû n thäng qua tæì âiãö u khiãø n âáö u ICW4. + INT [O]: tên hiãû u yãu cáö u ngàõ t âãú n chán INTR cuí a CPU 8088. + INTA [I]: näú i våï i tên hiãû u baï o cháú p nháû n ngàõ t INTA cuí a CPU. PIC 8259A chuí (åí chãú âäü khäng âãm näú i våï i CPU 8088 åí chãú âäü MIN Trãn hçnh 7.5 laì så âäö näú i maû ch PIC 8259A laì m viãû c âäü c láû p (maû ch chuí ) våï i bus CPU 8088 laì m viãû c åí chãú âäü MIN. PIC 8259A chuí näú i våï i PCU 8088 åí chãú âäü MAX. Nãú u hãû vi xæí lyï 8088 laì m viãû c åí chãú âäü MAX thæåì ng ta phaí i duì ng maû ch âiãö u khiãø n bus 8288 vaì caï c âãû m bus âãø cung cáú p caï c tên hiãû u thêch håü p cho bus hãû thäú ng. Maû ch 8259A phaí i laì m viãû c åí chãú âäü coï âãû m âãø näú i âæåü c våï i bus hãû thäú ng naì y.

Trãn hçnh 7.6 laì vê duû mäü t så âäö CPU 8088 chãú âäü MAX näú i våï i PIC 8259A. Trong maû ch naì y ta nháû n tháú y tên hiãû u âëa chè cho 8259A âæåü c láú y ra tæì bus hãû thäú ng trong khi âoï tên hiãû u dæî liãû u cuí a noï âæåü c näú i våï i bus dæî liãû u cuí a vi xæí lyï vatf âoï âæåü c thäng qua caï c âãû m âãø näú i vaì o bus hãû thäú ng. Hçnh 7.6. Näú i CPU 8088 chãú âäü MAX våï i PIC8259A

Láû p tr çnh cho PIC 8259A

Âãø maû ch PIC 8259A coï thãø hoaû t âäü ng âæåü c theo yãu cáö u, sau khi báû t nguäö n cáú p âiãû n PIC cáö n phaí i âæåü c láû p trçnh bàò ng caï ch ghi vaì o caï c thanh ghi (tæång âæång våï i caï c cäø ng) bãn trong noï caï c tæì âiãö u khiãø n khåí i âáö u (ICW) vaì tiãú p sau âoï laì

caï c tæì âiãö u khiãø n hoaû t âäü ng (OCW).

Caï c tæì âiãö u khiãø n khåí i âáö u duì ng âãø taû o nãn caï c kiãø u laì m viãû c cå baí n cho PIC, coì n caï c tæì âiãö u khiãø n hoaû t âäü ng seî quyãú t âënh caï ch thæï c laì m viãû c cuû thãø cuí a PIC. Tæì âiãö u khiãø n hoaû t âäü ng seî âæåü c ghi khi ta muäú n thay âäø i hoaû t âäü ng cuí a PIC. Caï c tæì âiãö u khiãø n noï i trãn seî âæåü c giåï i thiãû u cuû thãø trogn caï c muû c sau.  Caï c tæì âiãö u khiãø n khåí i âáö u ICW PIC 8259A coï táú t caí 4 tæì âiãö u khiãø n khåí i âáö u laì ICW1 - ICW4. Trong khi láû p trçnh cho PIC khäng phaí i luï c naì o ta cuî ng cáö n duì ng caí 4 tæì âiãö u khiãø n khåí i âáö u nhæî ng coï luï c ta chè cáö n ghi vaì o âoï 2 hay 3 tæì laì âuí (xem hçnh 7.7 âãø tháú y roî thæï tæû ghi vaì âiãö u kiãû n âãø ghi caï c âiãö u khiãø n ICW vaì o 8259A). Daû ng thæï c cuí a caï 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 naì y ta tháú y bãn caû nh caï c bit dæî liãû u cuí a tæì âiãö u khiãø n khåí i âáö u ICW ta coì n ghi roî thãm caí giaï trë cuû thãø cuí a A0 tæång æï ng cho mäù i ICW âoï . Âáö u vaì o âëa chè A0 vaì thæï tæû ghi seî giuï p ta phán biãû t ra caï c thanh ghi khaï c nhau bãn trong PIC âãø ghi dæî liãû u cho caï c tæì âiãö u khiãø n. Vê duû A0 = 0 laì dáú u hiãû u âãø nháû n biãú t ràò ng ICW1 âæåü c âæa vaì o thanh ghi coï âëa chè chàô n trong PIC, coì n khi A0 = 1 thç caï c tæì âiãö u khiãø n khåí i âáö u ICW2, ICW3, ICW4 seî âæåü c âæa vaì o caï c thanh ghi coï âëa chè leí trong maû ch PIC. o ICW1 Bit D0 cuí a ICW1 quyãú t âënh 8259A seî âæåü c näú i våï i hoü vi xæí lyï naì o. Âãø laì m viãû c våï i hãû 16-32bit (8088 hoàû c hoü 80×86) thç ICW nháú t thiãú t phaí i coï IC4 = 0 (vaì nhæ váû y caï c bit cuí a ICW4 seî bë xoï a vãö 0). Caï c bit coì n laû i cuí a ICW1 âënh nghéa caï ch thæï c taï c âäü ng cuí a xung yãu cáö u ngàõ t (taï c âäü ng theo sæåì n hay theo mæï c) taû i caï c chán yãu cáö u ngàõ t IR cuí a maû ch 8259A vaì viãû c bäú trê caï c maû ch 8259A khaï c trong hãû laì m viãû c âån leí hay theo chãú âäü näú i táö ng. Caï c bit âæåü c âaï nh dáú u x laì khäng quan troü ng vaì thæåì ng âæåü c láú y giaï trë 0 âãø láû p trçnh cho caï c æï ng duû ng sau naì y. o ICW2 Tæì âiãö u khiãø n khåí i âáö u naì y cho pheï p choü n kiãø u ngàõ t (säú hiãû u ngàõ t) æï ng våï i caï c bit T3-T7 cho caï c âáö u vaì o yãu cáö u ngàõ t. Caï c bit T0-T2 âæåü c 8259A tæû âäü ng

gaï n giaï trë tuì y theo âáö u vaì o yãu cáö u ngàõ t cuû thãø IRi. Vê duû nãú u ta muäú n caï c âáö u vaì o cuí a maû ch 8259A coï kiãø u ngàõ t laì 40-47H ta chè cáö n ghi 40H vaì o caï c bit T3-T7. Nãú u laì m nhæ váû y thç IR0 seî coï kiãø u ngàõ t laì 40H, IR1 seî coï kiãø u ngàõ t laì 41H... o ICW3 Tæì âiãö u khiãø n khåí i âáö u naì y chè duì ng âãú n khi bit SNGL thuäü c tæì âiãö u khiãø n khåí i âáö u ICW1 coï giaï trë 0, nghéa laì trong hãû coï caï c maû ch 8259A laì m viãû c åí chãú âäü näú i táö ng. Chênh vç váû y täö n taû i 2 loaû i ICW3: 1 cho maû ch 8259A chuí vaì 1 cho maû ch 8259A thåü . ICW3 cho maû ch chuí : duì ng âãø chè ra âáö u vaì o yãu cáö u ngàõ t Iri naì o cuí a noï coï tên hiãû u INT cuí a maû ch thåü näú i vaì o. ICW3 cho maû ch thåü : duì ng laì m phæång tiãû n âãø caï c maû ch naì y âæåü c nháû n biãú t. Vç váû y tæì âiãö u khiãø n khåí i âáuì u naì y phaí i chæï a maî säú i æï ng våï i âáö u vaì o Iri cuí a maû ch chuí maì maû ch thåü âaî cho näú i vaì o. Maû ch thåü seî so saï nh maî säú naì y våï i maî säú nháû n âæåü c åí Cas2-Cas0. Nãú u bàò ng nhau thç säú hiãû u ngàõ t seî âæåü c âæa ra buï khi coï INTA. Vê duû : Trong mäü t hãû vi xæí lyï ta coï mäü t maû ch 8259A chuí vaì 2 maû ch 8259A thåü näú i vaì o chán IR1 cuí a maû ch chuí . Tçm giaï trë phaí i gaï n cho caï c tæì âiãö u khiãø n khåí i âáö u ICW ? Giaí i : Nhæ trãn âaî noï i, âãø caï c maû ch naì y laì m viãû c âæåü c væoï i nhau ta seî phaí i gia caï c tæì âiãö u khiãø n khåí i âáö u nhæ sau: ICW3 = 03H cho maû ch chuí . ICW3 = 00H cho maû ch thæû o thæï nháú t vaì ICW3 = 01H cho maû ch thåü thæï hai. ICW4 Tæì âiãö u khiãø n khåí i âáö u naì y chè duì ng âãú n khi trong æì t âiãö u khãø in ICW1 coï IC4 = 1 (cáö n thãm ICW4) Bit MPM cho ta khaí nàng choü n loaû i vi xæí lyï âãø laì m viãû c våï i 8259A. Bit MPM = 1 cho pheï p caï c bäü vi xæí lyï tæì 8086/88 hoàû c cao hæon laì m viãû c væoï i 8259A. Bit SFNM = 1 cho pheï p choü n chãú âäü æu tiãn cäú âënh âàû c biãû t. Trong chãú âäü naì y yãu cáö u ngàõ t våï i mæï c æu tiãn cao nháú t hiãû n thåì i tæì mäü t maû ch thåü laì m viãû c theo kiãø u näú i táö ng seî âæåü c maû ch chuí nháû n biãú t ngay caí khi maû ch chuí coì n âang phaí i phuû c vuû mäü t yãu cáö u ngàõ t åí maû ch thåü khaï c nhæng våï i mæï c æu tiãn tháú p hån. Sau khi caï c yãu cáö u ngàõ t âæåü c phuû c vuû xong thç chæång trçnh phuû c vuû ngàõ t phaí i coï lãû nh kãú t thuï c yãu cáö u ngàõ t (EOI) âàû t træåï c lãû nh tråí vãö (IRET) âæa âãú n cho maû ch 8259A chuí . Khi bit SFNM = 0 thç chãú âäü æu tiãn cäú âënh âæåü c choü n (IR0: mæï c æu tiãn cao nháú t. IR7: mæï c æu tiãn tháú p nháú t ) thæû c ra âäú i væoï i maû ch 8259A khäng duì ng âãú n ICW1 thç chãú âäü naì y âaî âæåü c choü n nhæ laì ngáö m âënh. Trong chãú âäü æu tiãn cäú âënh taû i mäü t thåì i âiãø m chè coï mäü t yãu cáö u ngàõ t i âæåü c phuû c vuû (bit Iri = 1) luï c naì y áú tt caí

caï c yãu cáö u khaï c væï oi æï mc æu tiãn cao hæon coï thãø ngàõ t yãu cáö u khaï c våï i mæï c æu tiãn tháú p hån . Bit BUF cho pheï p âënh nghéa maû ch 8259A âãø laì m viãû c våï i CPU trong træåì ng håü p coï âãû m hoàû c khäng coï âãû m näú i våï i buï hãû thäú ng. Khi laì m viãû c åí chãú âäü coï âãû m (BUF = 1). Bit M/S = 1/0 cho pheï p ta choü n maû ch 8259A âãø laì m viãû c åí chãú âäü chuí / thåü . SP/EN tråí thaì nh âáö u ra cho pheï p måí âãû m âãø PIC vaì CPU thäng væoï i buï hãû thäú ng. Bit AEOI = 1 cho pheï p choü n caï ch kãú t thcuï yãu cáö u ngàõ t tæû âäü ng. Khi AEOI = 1 thç 8259A tæû âäü ng xoï a ISRi = 0 khi xung INTA cuäú i cuì ng chuyãø n lãn mæï c cao maì khäng laì m thay âäø i thæï tæû æu tiãn. Ngæåü c laû i. Khi ta choü n caï ch kãú t thuï c yãu cáö u ngàõ t thæåì ng (AEOI = 0) thç chæång trçnh phuû c vuû ngàõ t phaí i coï thãm lãû nh EOI âàû t træåï c lãû nh IRET âãø kãú t thuï c cho 8259A. Caï c tæì âiãö u khiãø n hoaû t âäü ng OCW Caï c tæì âãçu khiãø n hoaû t âäü ng OCW seî quyãú t âënh maû ch 8259A seî hoaû t âäü ng nhæ thãú naì o sau khi noï âaî âæåü c khåí i âáö u bàò ng caï c tæì âiãö u khiãø n ICW . Táú t caí caï c tæì âiãö u khiãø n hoaû t âäü ng seî âwowcj ghi vaì o caï c thanh ghi trong PIC khi A0 = 0,træì OCW1 âæåü c ghi khi A0 = 1. Daû ng thæï c cuí a OCW âwocj trinh baì y trãn hçnh 7.9 OCW1 OCW1 duì ng âãø ghi giaï trë cuí a caï c bit màû t naû vaì o thanh ghi màû t naû ngàõ t IMR. Khi mäü t bit màû t naû naì o âoï cuí a âæåü c láû p thç yãu cáö u ngàõ t tæång æï ng våï i màû t naû âoï seî khäng âæåü c 8259A nháû n biãú t næî a (bë che). Tæì âiãö u khiãø n naì y phaí i âæåü c âæa âãú n 8259A ngay sau khi ghi caï c ICW vaì o 8259A . Ta cuî ng coï thãø âoü c laû i IMR âãø xaï c âënh tçnh traû ng màû t naû ngàõ t hiãû n taû i (xem trong thåì i âiãø m hiãû n taû i yãu cáö u ngàõ t naì o bë che) OCW2 Caï c bit R.SL vaì EOI phäú i håü p væoï i nhau cho pheï p choü n ra caï c caï ch thæï c kãú t thuï c yãu cáö u ngàõ t khaï c nhau. Mäü t vaì i caï ch thcuï yãu cáö u ngàõ t coì n taï c âäü ng tåï i caï c yãu cáö u ngàõ t âæåü c chè âêch danh våï i mæï c æu tiãn âæåü c giaí i maî hoï a cuí a 3 bit L2,L1,L0

Træåï c khi noï i vãö caï c caï ch kãú t thuï c yãu cáö u ngàõ t cho caï c chãú âäü ta cáö n måí dáú u ngoàû c åí âáy âãø giåï i thiãû u caï c chãú âäü laì m viãû c cuí a 8259A. a. Chãú âäü æu tiãn cäú âënh : Âáy laì chãú âäü laì m viãû c ngáö m âënh cuí a 8259A sau khi noï âaî âæåü c naû p caï c tæì âiãö u khiãø n khåí i âáö u. Trong chãú âäü naì y, caï c âáö u vaì o IR7-IRO âæåü c gaï n cho caï c mæï c æu tiãn cäú âënh: IRO âæåü c gaï n cho mæï c æu tiãn cao nháú t coì n IR7 mæï c æu tiãn tháú p nháú t. Mæï c æu tiãn naì y âæåü c giæî khäng thay âäø i cho âãú n khi ghi maû ch 8259A bë láû p trçnh khaï c âi do OCW2.

Trong chãú âäü æu tiãn cäú âënh tai 1 thåì i âiãø m chè coï 1 yãu cáö u ngàõ t i âæåü c phuû c vuû (bit ISRi = 1) luï c naì y táú t caí aï c yãu cáö u khaï c våï i mæï c æu tiãn tháú p hån âãö u bë cáú m, táú t caí caï c yãu cáö u khaï c væoï i mæï c æu tiãn tháú p hån âãö u coï thãø ngàõ t yãu cáö u khaï c våï i mæï c æu tiãn tháú p hån.

A0 D7

OCW1 D6 D5 D4 D3 D2 D1 D0 I M7 M6 M5 M4 M3 M2 M1 M0

Màû t naû ngàõ t taû i caï c yãu cáö u ngàõ t 1: Coï màû t naû 0: Khäng coï màû t naû

A0 D7

Kãú t thuï c Ngàõ t (EOI Âäø i mæï c æu tiãn tæû âäü ng Âäø i m.æ.t Âêch danh

0 0 1 1 0 1 1 0

0 1 0 0 0 1 1 1

OCW2 D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0 1 1 1 0 0 1 0 0

Lãû nh EOI thæåì ng Lãû nh EOI chè âêch danh (*)

Maî hoï a mæï c æu tiãn

ngàõ t bë taï c âäü ng

Âäø i mæï c æu tiãn khi coï EOI thæåì ng.

Láû p chãú âäü quay khi coï EOI tæû âäü ng Xoï a chãú âäü quay khi coï EOI tæû âäü ng

000….mæï c 0

Âäø i mæï c æu tiãn khi coï EOI âêch danh (*) Lãû nh láû p tæï c æu tiãn (*) Khäng laì m gç

(*) duì ng täø håü p L2 L1 L0

OCW3

A0 D7

D6

D5

D4 D3 D2

D1

D0

0

0

ESMM SMM

0

1

P

ERIS RIS

10: doü c IRR åí láö n âoü c sau 11: âoü c ISR åí láö n âoü c sau Thàm doì hiãû n traû ng cuí a yãu cáö u ngàõ t 1: âoü c maì mæï c æu tiãn cao nháú t åí láö n âoü c sau Chãú âäü màû t naû âàû c biãû t 10: Xoï a chãú âäü màû t naû âàû c biãû t 11: Láû p chãú âäü màû t naû âàû c biãû t Hçnh 7.9. Daû ng thæï c cuí a caï c tæì âiãö u khiãø n hoaû t âäü ng OCW b.chãú âäü quay mæï c æu tiãn (æu tiãn luán phiãn ) tæû âäü ng : åí chãú âäü naì y sau khi mäü t yãu cáö u ngàõ t âæåü c phuû c vuû xong ,8259A seî xoaï bit tæång æï ng cuí a noï trong thanh ghi ISR vaì gaï n cho âáö u vaì o cuí a noï mæï c æu tiãn tháú p nháú t âãø taû o âiãö u kiãû n cho caï c yãu cáö u ngàõ t khaï c coï thåì i cå âæåü c phuû c vuû . c. chãú âäü quay (âäø i) mæï c æu tiãn chè âêch danh : åí chãú âäü naì y ta cáö n chè roî (âêch danh) âáö u vaì o IRi naì o ,våï i i=L2L1L0,âæåü c gaï n mæï c æu tiãn tháú p nháú t ,âáö u vaì o IRi+1 seî âuåü c tæû âäü ng gaï n mæï c æu tiãn cao nháú t . Báy giåì ta âoï ng dáú u ngoàû c âaî âæåü c ra måí åí trãn vaì tråí laû i caï c váú n âãö liãn quan âãú n OC WC.ta seî noï i roî viãû c caï c bit R,Slvaì SOI phäú i håü p våï i nhau nhæ thãú naì o âãø taû o ra caï c lãû nh quy âënh caï c caï ch thæï c kãú t thuï c yãu caì u ngàõ t cho caï c chãú âäü laì m viãû c khaï c nhau âaî noï i âãú n åí pháö n trãn (xem thãm hinh 7.9) . 1. kãú t thuï c yãu cáö u ngàõ t thæåì ng : chæång trçnh coì n phuû c vuû ngàõ t åphaí i coï lãû nh EOI âàû t træåï c lãû nh tråí vãö IRET cho 8259A .maû ch 8259 A seî xaï c âënh yãu cáö u ngàõ t Iri væì a âæåü c phuû c vuû vaì xoaï bit ISRi tæång æï ng cuí a noï âãø taû o âiãö u kiãû n cho chênh yãu cáö u ngàõ t naì y hoàû c caï c ngàõ t khaï c coï mæï c æu tiãn tháú p hån coï thãø âæåü c taï c âäü ng . 2.kãú t thuï c yãu cáö u ngàõ t thæåì ng : chæång trçnh coì n phuû c vuû ngàõ t phaí i co lãû nh EOI chè âêch danh âàû t træåï c lãû nh tråí vãö IRET cho 8259A . maû ch 8259A xoaï âêch danh bit ISRi ,våï i i=L2L1L0 âãø taû o âiãö u kiãû n cho chênh yãu cáö u ngàõ t naì y hoàû c caï c ngàõ t khaï c coï mæï c æu tiãn tháú p hån coï thãø âæåü c taï c âäü ng. 3. Quay (âäø i) mæï c æu tiãn khi kãú t thuï c yãu cáö u ngàõ t thæåì ng: chæång trçnh con phuû c vuû ngàõ t phaí i coï lãû nh EOI âàû t træåï c lãû nh tråí vãö IRET cho 8259A. Maû ch 8259A seî xaï c âënh yãu cáö u ngàõ t thæï i væì a âæåü c phuû c vuû . Xoï a bit ISRi tæång æï ng vaì gaï n luän mæï c æu tiãn tháú p nháú t cho âáö u vaì o IR, naì y coì n âáö u vaì o IRi+1 seî âwocj gaï 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

Traû ng thaï i cuí a ISR Mæï c æu tiãn

0 7

1 6

0 5

1 4

0 3

0 2

0 1

0 0

Thanh ghi ISR sau khi IR4 âæåü c cháú p nháû n vaì sau khi coï 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

Traû ng thaï i cuí a ISR Mæï c æu tiãn

0 2

1 1

0 0

0 7

0 6

0 5

0 4

0 3

Hçnh 7.10.ISR vaì mæï c æu tiãn våï i lãû nh quay khi kãú t thuï c ngàõ t thæåì ng . Coï thãø theo doî i caï ch tæï hc hoaû t âäü ng cuí a maû ch 8259A trong chãú âäü quay (âäø i) mæï c æu tiãn khi kãú t thuï c yãu cáö u ngàõ t thæåì ng thäng qua vê duû minh hoü a trçnh baì y trãn hçnh 7.10 4. Quay (âäø i) mæï c æu tiãn trong chãú âäü kãú t thuï c yãu cáö u ngàõ t tæû âäü ng: chè cáö n mäü t láö n âæa lãû nh choü n chãú âäü âäø i mæï c æu tiãn khi kãú t thuï c yãu cáö u ngàõ t tæû âäü ng. Coï thãø choü n chãú âäü naì y bàò ng lãû nh láû p “chãú âäü quay khi coï EOI tæû âäü ng” . Tæì âoï tråí âi 8259A seî âäø i mæï c æu tiãn mäù i khi kãú t thuï c ngàõ t tæû âäü ng theo caï ch tæång tæû nhæ åí muû c 3. Muäú n boí chãú âäü naì y ta coï thãø duì ng lãû nh xoï a “chãú âäü quay khi coï EOI tæû âäü ng”. 5. Quay (âäø i) mæï c æu tiãn khi kãú t thuï c yãu cáö u ngàõ t âêch danh: chæång trçnh coì n phuû c vuû ngàõ t phaí i coï lãû nh EOI âêch danh cho 8259A âàû t træåï c lãû nh tråí vãö IRET . Maû ch 8259A seî xoï a bit ISRi cuí a yãu cáö u ngàõ t tæång æï ng vaì gaï n luän mæï c æu tiãn tháú p nháú t cho âáö u vaì o Iri, våï i i = L2 L1 L0. Yãu cáö u ngàõ t IRi+1 seî âæåü c gaï n mæï c æu tiãn cao nháú t. OCW3 Tæì âiãö u khiãø n hoaû t âäü ng sau khi âæåü c ghi vaì o 8259A cho pheï p: + Choü n caï c ra thanh ghi âãø âoü c + Thàm doì traû ng thaï i yãu cáö u ngàõ t bàò ng caï ch traû ng thaï i cuí a âáö u vaì o yãu cáö u ngàõ t Iri våï i mæï c æu tiãn cao náú ht cuì ng maî cuí a âáö u vaì o âoï vaì . + Thao taï c våï i màû t naû âàû c biãû t .

D7 D6 D5 D4 D3 D2 D1 D0 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 a) IRR

Isi = 0: yãu cáö u ngàõ t i khäng âæåü c phuû c vuû ISi = 1: âáö u vaì o i coï yã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: yãu cáö u ngàõ t i khäng âæåü c phuû c vuû Isi = 1: yãu cáö u ngàõ t i âang âæåü c phuû c vuû

Hçnh 7.11. Daû ng thæï c cuí a thanh ghi yãu cáö u ngàõ t vaì thanh ghi phuû c vuû . Caï c thanh ghi IRR vaì ISR coï thãø âoü c âæåü c sau khi naû p vaì o 8259A tæì âiãö u khiãø n OCW3 våï i bit ERIS = 1: bit RIS = 0 seî cho pheï p âoü c IRR. Bit RIS = 1 seî cho pheï p âoü c ISR. Daû ng thæï c cuí a caï c thanh ghi naì y âwocj biãø u diãù n trãn hçnh 7.11a vaì 6.11b Bàò ng viãû c âæa vaì o 8259A tæì âiãö u khiãø n OCW3 våï i bit P = 1 ta coï thãø âoü c âæåü c trãn bus dæî liãû u åí láö n âoü c tiãú p ngay sau âoï tæì thàm doì , trong âoï coï caï c thäng tin vãö yãu cáö u ngàõ t våï i mæï c æu tiãn cao nháú t âang hoaû t âäü ng vaì maî tæång æï ng våï i yãu cáö u ngàõ t áú y theo daû 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 coï yãu cáö u ngàõ t maî säú hoï a cuí a yãu cáö u ngàõ t 0: KHäng coï yãu cáö u ngàõ t (X: khäng âãø yï ) Hçnh 7.12 Daû ng thæï c cuí a tæì thàm doì traû ng thaï i yãu cáö u ngàõ t Coï thãø goü i âáy laì chãú âäü thàm doì yãu cáö u ngàõ t vaì chãú âäü naì y thæåì ng âwocj æï ng duû ng trong træåì ng håü p coï nhiãö u chæång phuû c vuû ngàõ t giäú ng nhau cho mäü t yãu cáö u ngàõ t vaì viãû c choü n chæång trçnh naì o âãø sæí duû ng laì traï ch nhiãû m cuí a ngæåì i láû p trçnh. Toï m laû i, muäú n duì ng chãú âäü thàm doì cuí a 8259A âãø xaï c âënh yãu cáö u ngàõ thiãû n taû i ta cáö n laì m caï c thao taï c láö n læåü t nhæ sau: - Cáú m caï c yãu cáö u ngàõ t bàò ng lãû nh CLI - Ghi tæì lãû nh OCW3 væoï i bit P = 1 - Âoü c tæì thàm doì traû ng thaï i yãu cáö u ngàõ t trãn bus dæî liãû u . Bit ESMM = 1 cho pheï p 8259A thao taï c våï i chãú âäü màû t naû âàû c biãû t. Bit SMM = 1 cho pheï p láû p chãú âäü màû t naû âàû c biãû t. Chãú âäü màû t naû âàû c biãû t âæåü c duì ng âãø thay âäø i thæï tæû æu tiãn ngay bãn trong chæång trçnh con phuû c vuû ngàõ t. Vê duû trong træåì ng håü p coï mäü t yãú u cáö u ngàõ t cáú m (bë che båí i chæång trçnh phuû c vuû ngàõ t våï i tæì lãû nh OCW1 maì ta laû i muäú n cho pheï p caï c yãu cáö u ngàõ t våï i mæï c æu tiãn tháú p hån so våï i yãu cáö u ngàõ t bë cáú m âoï âæåü c taï c âäü ng thç ta seî duì ng chãú âäü màû t naû âàû c biãû t.

Mäü t khi âaî âæåü c láû p, chãú âäü màû t naû âàû c biãû t seî täö n taû i cho tåï i khi bë xoï a bàò ng caï ch ghi vaì o 8259A mäü t tæì lãû nh OCW3 khaï c væï oi bit SMM = 0. Màû t naû âàû c biãû t khäng aí nh hæåí ng tåï i caï c yãu cáö u ngàõ t væoï i mæï c æu tiãn cao hån.) Cuäú i cuì ng âãø coï caï i nhçn mäü t caï ch coï hãû thäú ng vãö hoaû t âäü ng cuí a hãû vi xæí lyï våï i CPU 8088 vaì PIC 8259A khi cso yãu cáö u ngàõ t, ta toï m læåü t hoaû t âäü ng cuí a chuï ng nhæ sau: 1. Khi coï yãu cáö u ngàõ t tæì thiãú t bë ngoaû i vi taï c âäü ng vaì o mäü t trong caï c chán IR cuí a PIC .8259A seî âæa INT = 1 âãú n chán INTR cuí a 8088. 2. 8088 âæa ra xung INTA âáö u âãú n 8259A 3. 8259A duì ng xung INTA âáö u nhæ laì thäng baï o âãø noï hoaì n táú t caï c xæí lyï näü i bäü cáö n thiãú t, kãø caí xæí lyï æu tiãn nãú u nhæ coï nhiãö u yãu cáö u ngàõ t cuì ng xaí y 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 cuí a yãu cáö u ngàõ t væì a âæåü c nháû n biãú t. 6. 8088 duì ng säú hiãû u ngàõ t âãø tênh ra âëa chè ngàõ t cuí a vectå ngàõ t tæång æï ng . 7. 8088 cáú t FR, xoï a caï c cåì Ç vaì TF vaì cáú t âëa chè tråí vãö CS:IP vaì o ngàn xãú p. 8. 8088 láú y âëa chè CS:IP cuí a chæång trçnh phuû c vuû ngàõ t tæì baí ng vectå ngàõ t vaì thæû c hiãû n chæång trçnh âoï . Mäü t säú vê duû láû p trçnh våï i 8259A Vê duû 1: Láû p trçnh cho 8259A âãø laì m viãû c væï oi CPU 8088 åí chãú âäü cuî (âån leí ), trong hãû coï âãû m Bus, chãú âäü æu tiãn cäú âënh vaì våï i EOI thæåì ng, IR kêch theo mæï c, tên hiãû u IR0 âæåü c gaï n säú hiãû u ngàõ t laì 50H. Giaí i Tæì hçnh 7.8 vaì càn cæï theo caï c yãu cáö u cuí a baì i toaï n ta coï thãø tæì û âiãö u khiãø n khåí i âáö u nhæ sau : ICW1 = 00011011 = 1BH D0 = 1 Cáö n thãm ICW4 D1 = 1 Laì m viãû c âån leí , khäng cáö n ICW3 D2 = 0 Laì m viãû c våï i hãû 8086/88 D3 = 1 Âáö u vaì o IR àn theo mæï c D4 = 1 Bàõ t buäü c våï i ICW1 D5 = D6 = D7 =0 gaï n bàò ng 0 cho hãû 8086/88 ICW2 = 01010000 = 50H Vç caï c bit T1 - T3 cuí a ICW2 phaí i maî hoï a trë säú 50H âãø IR0 - IR7 âæåü c

maî hoï a tiãú p båí i caï c Bit T2 - T0 = 000 ICW3 khäng cáö n âãú m

ICW4 = 00001101 = 0DH laì m viãû c våï i hãû säú 8086/88 D0 = 1 D1 = 0 EOI thæåì ng (phaí i coï EOI træåï c IRET) D3 D2 = 11 Laì m viãû c åí chãú âoü chuí trong hãû coï âãû m Bus Chãú âäü æu tiãn cäú âënh D4 = 0 D5 = D6 = D7 = 0 Luän bàò ng 0 cho ICW4 Vê duû 2 : Viãú t chæång trçnh âãø khåí i âáö u cho maû ch 8259A åí vê duû trãn nãú u noï âæåü c näú i væoï i 8088 theo så âäö trãn hçnh 7.6 våï i âëa chè F0H vaì F1H Giaí i Âoaû n chæång trçnh âãø khåí i âáö u cho maû ch naì y coï thãø laì : 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ê duû 3: Giaí thiãú t taû i chán IR3 cuí a maû ch 8259A åí trãn coï tên hiãû u yãu cáö u ngàõ t .Taû i chæång trçnh con phuû c vuû cho yãu cáö u ngàõ t naì y coï cáö n phaí i coï lãû nh kãú t thuï c ngàõ t (EOI) khäng ? nãú u coï thç haî y viãú t ra caï c lãû nh âoï . Giaí i: Giaí thiãú t taû i IR3 coï tên hiãû u yãu cáö u ngàõ t vaì CPU âaî traí låì i cháú p nháû n ngàõ t. 8259A seî láû p Bit ISR3 = 1 âãø ghi nhåï laì yãu cáö u ngàõ t IR3 âang âæåü c phuû c vuû . Vç træåï c âoï ta âaî âënh nghéa chãú âäü kãú t thuï c ngàõ t bçnh thæåì ng cho 8259A, nãn trong chæång trçnh con phuû c vuû ngàõ t cuí a yãu cáö u ngàõ t naì y ta phaí i coï lãû nh kãú t thuï c ngàõ t EOI âæa âãú n 8259A âãø xoï a Bit ISR3 âæpåü c láû p træåï c âoï , taû o âiãö u kiãû n cho caï c yãu cáö u ngàõ t khaï c våï i mæï c æu tiãn tháú p hån hoàû c cho chênh yãu cáö u ngàõ t måï i taû i chán IR3 coï thåì i cå âæåü c phuû c vuû . Daû ng thæåì ng tháú y cuí a 1 chæång trçnh con phuû c vuû ngàõ t kiãø u naì y coï thãø nhæ sau (ta chè chuï yï nháú n maû nh âãú n caï c lãû nh cuäú i liãn quan âãú n EOI): Phuc vu IR3 Proc ; thán cuí a chæång trçnh con phuû c vuû ngàõ t . MOV AL20 ;OCW2 væoï i EOI âãø kãú t thuï c OUT OFOH, AL ; âæa OCW2 âãú n 8259A .

IRET

; tråí vãö chæång trçnh chênh phuc vu IR3Endp

Vê duû 4: Giaí thiãú t váù n sæí duû ng så âäö trãn hçnh 7.6 vaì caï c säú liãû u nhæ åí caï c vê duû træåï c. Hãû naì y bçnh thæåì ng laì m mäü t cäng viãû c gç âoï , nhæng khi coï yãu cáö u ngàõ t åí IR3 ta phaí i âoü c 100 dæî liãû u åí cäø ng 70H, nhán âäi mäù i dæî liãû u âoü c âæåü c räö i âæa ra cäø ng 71H (âãø cho âån giaí n ta coi dæî liãû u khi âoü c vaì caí khi âaî nhán âäi váù n chæï a âæåü c trong 1 Byte) Giaí i Hçnh 7.13 biãø u diãù n læu âäö cuí a chæång trçnh thæû c hiãû n cäng viãû c noï i trãn. Âãø chuáø n bë cho cäng viãû c trãn chæång trçnh chênh phaí i âæåü c bàõ t âáö u bàò ng caï c lãû nh khåí i âáö u cho 8259A nhæ trong caï c vê duû træåï c, tiãú p theo âoï laì cäng viãû c cuû thãø âàû t ra cho chæång trçnh chênh. Trong chæång trçnh con phuû c vuû ngàõ t ta phaí i âoü c caï c giaï trë vaì o vaì nhán âäi räö i âæa ra cäø ng. Træåï c khi kãú t thuï c chæång trçnh con âãø tråí laû i chæång trçnh chênh ta phaí i coï caï c lãû nh kãú t thuï c yãu cáö u ngàõ t (EOI) cho 8259A nhæ åí vê dæuû 3. Giaí thiãú t ràò ng chæång trçnh con phuû c vuû ngàõ t xong sau khi âaî dëch ra maî maï y seî âæåü c naû p vaì o ROM vaì âãø laû i âëa chè C0000H. Khi muäú n cho chaû y chæång trçnh ta phaí i vaì o âëa chè æï ng våï i Vectå ngàõ t 53H vaì thay âäø i näü i dung cuí a Vectå naì y sao cho 2 ä 0014CH, 0014DH chæï a 0000H vaì 2 ä tiãú p theo 0014EH, 0014FH chæï a C000H (âëa chè chæång trçnh con phuû c vuû ngàõ t) . Nhåì váû y mäù i khi coï yãu cáö u ngàõ t tåï i chán IR3 cuí a 8259A thç chæång trçnh con phuû c vuû ngàõ t âæåü c kêch hoaû t. Thán cuí a chæång trçnh chæï a seî chæï a caï c lãû nh nhæ sau: CLI ;cáú m caï 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 ; thaï o màû t naû cho caï c IR OUT OF1H, Al ;OCW1 âæa âãú n 8259A STI ; cho pheï p ngàõ t

; Caï c cäng viãû c cuí a chæång trçnh chênh åí âáy Chæång trçnh con phuû c vuû ngàõ t IR3 coï daû ng sau : Proc Phucvu IR3 PUSH AX PUSH BX PUSH CX IN AL,OF1H MOV BL, AL MOV AL,0F7H OUT OF1H, AL MOV CL,100 TIEP: IN AL, 70H SHL AL, 1 OUT 71H,AL LOOP TIEP MOV AL, BL OUT 0F1H,AL MOV AL, 20 OUT OFOH, AL POP CX POP BX POP AX STI IRET Phucvu IR3 Endp

; Cáú t caï c thanh ghi

; Âoü c màû t naû ngàõ t ; Cáú t màû t naû ; Chè cho pheï p yãu cáö u IR3 ; âæåü c taï c âäü ng ; 100 säú liãû u phaí i thao Taï c ; âoü c vaì o mäü t säú liãû u ; nhán âäi räö i ; âæa ra cäø ng ; Láú y laû i màû t naû cuî ; âæa màû t naû cuî âãú n 8259A ; OCW2 våï i EOI âãø kãú t thuï c ; âæa OCW2 âãú n 8259A ; láú y laû i caï c thanh ghi

; cho pheï p ngàõ t tråí laû i ; tråí vãö chæång trçnh chênh

Trong chæång trçnh con åí trãn ta xæí lyï màû t naû ngàõ t khaï cáø n tháû n. Vç åí trong chæång trçnh chênh, sau khi khåí i âáö u cho maû ch 8259A ta âaî cho pheï p táú t caí caï c ngàõ t coï thãø taï c âäü ng vaì vç chæång trçnh chênh khi hoaû t âäü ng coï thãø thay âäø i caï c màû t naû khaï c cuí a 8259A (træì màû t naû cuí a IR3), nãn taû i chæång trçnh con trong khi phuû c vuû yãu cáö u ngàõ t IR3 ta âaî cáú t giaï trë cuí a caï c màû t naû

ngàõ t hiãû n thåì i räid uì ng lãû nh âãø che caï c yãu cáö u ngàõ t khaï c âi vaì chè âãø yãu cáö u ngàõ t IR3 âæåü c nháû n biãú t. Khi xæí lyï xong caï c cäng viãû c ta phaí i traí laû i giaï trë màû t naû ngàõ t cuî cho 8259A räö i mæoï i tråí vãö chæång trçnh chênh. 3. Ngàõ t trong maï y IBM PC Vç caï c maï y IBM PC âæåü c sæí duû ng ráú t räü ng raî i nãn taû i cuäú i chæång naì y ta seî trçnh baì y så læåü c cáú u truï c ngàõ t trong caï c maï y âoï . 3.1 Ngàõ t trong maï y IBM PC/XT Baí ng 7.3 Caï c ngàõ t chênh cuí a IBM PC/XT

INT N? 0 1 2 3 4 5 6.7 8

Âëa chè 00E3 : 3072 0600 : 08ED F000 : E2C3 0600 : 08E6 0700 : 0174 F000 : FF34

9

F000 : E987

F000 : FEA5

A B C D E F ... 60 - 66

F000 : EF57 0070 : 0147 ...

Daì nh cho Pheï p chia cho 0 Chaû y tæì ng lãû nh NMI Âiãø m dæì ng Traì n khi laì m viãû c våï i säú coï dáú u In maì n hçnh (BIOS) Âãø daì nh IRQ0 cuí a 8259A (ngàõ t BIOS cuí a âäö ng häö ) IRQ1 cuí a 8259A (ngàõ t BIOS cuí a baì n phêm) IRQ2 cuí a 8259A (âãø daì nh) IRQ3 cuí a 8259A (âãø daì nh cho COM 2) IRQ4 cuí a 8259A (âãø daì nh cho COM 1) IRQ5 cuí a 8259A (âãø daì nh cho âéa cæï ng) IRQ6 cuí a 8259A (cho äø âéa mãö m) IRQ7 cuí a 8259A (cho maï y in LPT1) ... Daì nh cho ngæåì i sæí duû ng

Trong maï y IBM PC/XT caï c täø chæï c ngàõ t coï thãø toï m læåü t nhæ åí trãn baí ng 7.3 . Maï y IBM PC/XT coï sæí duû ng 1 maû ch PIC 8259A. Caï c âáö u vaì o IRi cuí a maû ch naì y âæåü c sæí duû ng hãú t âãø gàõ n cho caï c thiãú t bë ngoaû i vi cuû thãø nhæ baì n phêm, maû 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í nàng 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 IRQ0 IRQ1 IRQ2 IRQ3 IRQ4

INT N? INT08H INT09H INT0AH INT0BH INT0CH

Daì nh cho Bäü âãú m 8254 âaû t TC Baì n phêm Yãu cáö u ngàõ t tæì 8259A thåü COM 2 COM 1

IRQ5 IRQ6 IRQ7 IRQ8 IRQ9

INT0DH INT0EH INT0FH INT70H INT71H

IRQ10 IRQ11 IRQ12 IRQ13 IRQ14 IRQ015

INT72H INT73H INT74H INT75H INT76H INT77H

Cäü ng maï y in song song LPT2 Âiãö u khiãø n âéa mãö m Cäü ng maï y in song song LPT1 CMOS cuí a âäö ng häö thåì i gian thæû c Âënh hæåï ng laû i bàò ng chæång trçnh vãö INT0AH Daì nh cho ngæåì i sæí duû ng Daì nh cho ngæåì i sæí duû ng Chuäü t cuí a PS/2 Âäö ng xæí lyï toaï n hoü c ÄØ âéa cæï ng 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 coï âãû m 80 x 86, EOI træåï c IRET. Viãû c sæí duû ng khaí nàng ngàõ t trãn maï y vi tênh IBM PC âãø vaì o/ra dæî liãû u khi coï yãu cáö u theo kiãø u nhæ åí vê duû træåï c cuî ng coï thãø thæû c hiãû n âæåü c nhæng phaí i coï caï c thay âäø i trong chæång trçnh cho phuì håü p våï i cáú u truï c ngàõ t cuû thãø trong mäù i loaû i maï y. Vç näü i dung caï c vectå ngàõ t cuí a caï c maï y coï thãø khaï c nhau chuï t êt do coï sæû khaï c nhau giæî a caï c phiãn baí n DOS vaì BIOS do âoï ta phaí i tham khaí o taì i liãû u cuû thãø cuí a tæì ng maï 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 åí caï c maï y AT vaì XT coï cáú u truï c ngàõ t håi khaï c nhau nãn viãû c täø chæï c vaì o/ ra dæî liãû u bàò ng ngàõ t laû i cuî ng phaí i âæåü c xem xeï t cáø n thán. Vãö màû t chæång trçnh thç chæång trçnh chênh vaì chæång trçnh con phuû c vuû ngàõ t âãö u phaí i âæåü c taí i vaì o bäü nhåï RAM cuí a maï y dæåï i sæû kiãø m soaï t cuí a DOS nãn ta phaí i viãú t chuï ng dæåï i daû ng thêch håü p sao cho trong khi chæång trçnh chênh laì m viãû c maì coï yãu cáö u ngàõ t thç chæång trçnh con phuû c vuû ngàõ t coï thãø âæåü c goü i âãø hoaû t âäü ng. * Vê duû 5 :

Giaí thiãú t ta váù n phaí i thæû c hiãû n cäng viãû c nhæ åí vê duû træåï c næng pháö n cæï ng báy giåì laì maï y IBM PC/XT. Hãû naì y bçnh tæhåì ng laì m 1 cäng viãû c gç âoï , nhæng khi coï yãu cáö u ngàõ t ta phaí i âoü c 100 dæî liãû u åí cäø ng 70H, nhán âäi mäù i dæî liãû u âoü c âæåü c räö i âæa ra cäø ng 71H (Âãø cho âån giaí n ta coi dæî liãû u khi âoü c vaì caí khi âaî nhán âäi âáú ch âæåü c trong 1 Byte) Giaí i Nhæ âaî noï i åí pháö n træåï c, âãø vaì o ra dæî liãû u bàò ng caï ch ngàõ t CPU trong maï y IBM PC/XT . Maì khäng phaí i lo viãû c âæa säú hiãû u ngàõ t N vaì o Bus dæî liãû u trong chu kyì INTA ta coï thãø táû n duû ng tên hiãû u IRQ2 åí khe càõ m måí räü ng vaì duì ng caï c maû ch cäø ng dãø âæa dæî liãû u vaì o Bus dæî liãû u. Trong caï c maï y IBM PC/XT, maû ch 8259A âaî âæåü c khåí i âáö u khi maï y bàõ t âáö u laì m viãû c, do váû y trong chæång trçnh chênh ta chè cáö n âæa vaì o caï c vectå ngàõ t (bàõ t âáö u taû i âëa chè 0000 : (0AH x 4)) tæång æï ng våï i IRQ2 âëa chè cuí a chæång trçnh con phuû c vuû ngàõ t. Trong chæång trçnh con phuû c vuû ngàõ t ta phaí i âoü c caï c giaï trë vaì o räö i nhán âäi vaì âæa ra cäø ng . Træåï c khi kãú t thuï c chæång trçnh con âãø tråí laû i chæång trçnh chênh ta phaí i coï caï c lãû nh kãú t thuï c yãu cáö u ngàõ t (EOI) cho 8259A nhæ åí vê duû træåï c. Chæång trçnh chênh vaì chæång trçnh con coï daû ng nhæ sau: * Model small * Stack 100 * Code Main Proc MOV AX, 0 ; khåí i taû 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 pheï p ngàõ t tråí laû i; cäng viãû c cuí a 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 laû i thanh ghi PUSH CX MOV CL,100 ; 100 säú liãû u phaí i thao taï c TIEP: IN, AL, 70H ; âoü c vaì o 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 thuï c

OUT 20H,AL POP CX POP AX STI IRET PhucvuIRQ2 Endp

END Main

; âæa OCW2 âãú n 8259A ; Láú y laû i caï c thanh ghi ; cho pheï p ngàõ t tråí laû i ; tråí vãö chæång trçnh chênh

Related Documents

Ki Thuat Vxl
November 2019 19
Ki Thuat Vxl
November 2019 18
Ki Thuat Vxl
November 2019 22
Ki Thuat Vxl
November 2019 19
Ki Thuat Vxl
November 2019 16
Ki Thuat Vxl
November 2019 13

More Documents from "le thanh"

Thiet_ke_kcd_ha
November 2019 24
10_truyen Thong Noi Tiep
November 2019 18
Ki Thuat Vxl
November 2019 21
Ki Thuat Vxl
November 2019 28
Ki Thuat Vxl
November 2019 20