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

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ngắt và xử lý ngắt trong hệ 8088 Tài liệu Kĩ thuật vi xử lý - Văn Thế Minh

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 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 [...]... âỉåü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. .. 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? 0 1 2 3 4 5 6.7 8 Âëa chè 00E3 : 3072 0600 : 08ED F000 : E2C3... ngàõt tråí lải ; tråí vãư chỉång trçnh chênh 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... 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 mçnh, ngỉåìi sỉí dủng phi cọ thãm cạc mảch phủ âãø âỉa u cáưu ngàõt âãún CPU v âãø âỉa säú hiãûu ngàõt N vo BUS dỉỵ liãûu cho CP âc khi cọ tr låìi cháúp nháûn u cáưu ngàõt INTA 3.2 Ngàõt trong mạy IBM PC/AT Trong cạc mạy IBM PC/AT (våïi cạc CPU tỉì 80286 tråí âi) Cáúu trục ca hãû thäúng cọ mäüt säú thay âäøi so våïi mạy XT L do chênh l åí cạc mạy thãú hãû sau ngỉåìi ta â sỉí dủng 2 mảch PIC 8259A... 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... dnh) IRQ3 ca 8259A (âãø dnh cho COM 2) IRQ4 ca 8259A (âãø dnh cho COM 1) IRQ5 ca 8259A (âãø dnh cho âéa cỉïng) IRQ6 ca 8259A (cho äø âéa mãưm) IRQ7 ca 8259A (cho mạy in LPT1) 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 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ủ... 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 . 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. EF 57 IRQ6 ca 8259A (cho äø âéa mãưm) F 0 070 : 01 47 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. 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

Ngày đăng: 03/04/2014, 21:26

Từ khóa liên quan

Mục lục

  • Hỗnh 7.6. Nọỳi CPU 8088 chóỳ õọỹ MAX vồùi PIC8259A

  • Lỏỷp trỗnh cho PIC 8259A

Tài liệu cùng người dùng

Tài liệu liên quan