版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、8259A中斷控制器中斷控制器原理及應(yīng)用原理及應(yīng)用(6.3節(jié))節(jié))28259A中斷控制器中斷控制器nIntel 8259A是可編程中斷控制器是可編程中斷控制器PICn可用于管理可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中斷的可屏蔽中斷n8259A的基本功能的基本功能n一片一片8259A可以管理可以管理8級中斷,可擴(kuò)展至級中斷,可擴(kuò)展至64級級n每一級中斷都可單獨被屏蔽或允許每一級中斷都可單獨被屏蔽或允許n在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號n8259A設(shè)計有多種工作方式,可通過編程選擇設(shè)計有多種工作方式,
2、可通過編程選擇38259A的內(nèi)部結(jié)構(gòu)和引腳的內(nèi)部結(jié)構(gòu)和引腳D7D0INTAINT中斷請求寄存器中斷請求寄存器中斷屏蔽寄存器中斷屏蔽寄存器數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器IR0IR7讀讀/寫寫控制控制邏輯邏輯級聯(lián)級聯(lián)緩沖器緩沖器比較器比較器RDWRA0CSCAS0CSA1CAS2SP/EN優(yōu)先權(quán)判別電路優(yōu)先權(quán)判別電路中斷服務(wù)寄存器中斷服務(wù)寄存器控制邏輯控制邏輯41. 中斷控制中斷控制n中斷請求寄存器中斷請求寄存器IRRn保存保存8條外界中斷請求信號條外界中斷請求信號IR0IR7的請求狀態(tài)的請求狀態(tài)nDi位為位為1表示表示IRi引腳有中斷請求;為引腳有中斷請求;為0表示無請求表示無請求n中斷服務(wù)寄存器
3、中斷服務(wù)寄存器ISRn保存正在被保存正在被8259A服務(wù)著的中斷狀態(tài)服務(wù)著的中斷狀態(tài)nDi位為位為1表示表示IRi中斷正在服務(wù)中;為中斷正在服務(wù)中;為0表示沒有被服務(wù)表示沒有被服務(wù)n中斷屏蔽寄存器中斷屏蔽寄存器IMRn保存對中斷請求信號保存對中斷請求信號IR的屏蔽狀態(tài)的屏蔽狀態(tài)nDi位為位為1表示表示IRi中斷被屏蔽(禁止);為中斷被屏蔽(禁止);為0表示允許表示允許(與與IF標(biāo)志位的規(guī)定相反標(biāo)志位的規(guī)定相反)52. 與處理器接口與處理器接口(讀寫控制邏輯部分讀寫控制邏輯部分) A0 RD* WR* CS*功能功能 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1
4、寫入寫入ICW1、OCW2和和OCW3寫入寫入ICW2ICW4和和OCW1讀出讀出IRR、ISR和查詢字和查詢字讀出讀出IMR數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)注:ICW初始化命令字,OCW操作命令字63. 中斷級連中斷級連n單片單片8259A可支持可支持8個中斷源;個中斷源;n采用多片采用多片8259A級連,可最多支持級連,可最多支持64個中斷源。個中斷源。N片片8259A可以支持可以支持8*N-(N-1)個中斷源個中斷源n級連時只能有一片級連時只能有一片8259A為主片,其余的均為從屬片;為主片,其余的均為從屬片;n涉及到的涉及到的8259A引腳包括:引腳包括
5、:nCAS0-CAS2 : 主主8259A的三條級連線的三條級連線CAS0CAS2作為輸出線,作為輸出線,連至每個從連至每個從8259A的的CAS0CAS2nSP*/EN*:在非緩沖方式下,規(guī)定該在非緩沖方式下,規(guī)定該8259A是主片(是主片(SP*1)還是)還是從片(從片(SP*0)nIRi : 每個從每個從8259A的中斷請求信號的中斷請求信號INT,連至主,連至主8259A的一個中斷的一個中斷請求輸入端請求輸入端IRnINT :主主8259A的的INT線連至線連至CPU的中斷請求輸入端的中斷請求輸入端級連電路連接方法級連電路連接方法演示演示8259A的工作過程的工作過程n8259A對中斷
6、請求的處理過程如下:對中斷請求的處理過程如下:n當(dāng)某當(dāng)某IRi有效時,有效時,IRR相應(yīng)位置相應(yīng)位置1n若有效的若有效的IRi未被屏蔽,則未被屏蔽,則向向CPU發(fā)出中斷請求發(fā)出中斷請求n檢測到第檢測到第1個個INTA*信號后,信號后,置置ISRi=1,IRRi=0 n檢測到第檢測到第2個個INTA*信號后,信號后,把把ISRi=1中最高優(yōu)中最高優(yōu)先級的中斷類型碼放到先級的中斷類型碼放到DB上上n若工作在若工作在AEOI方式,在第方式,在第2個個INTA*結(jié)束時,使結(jié)束時,使ISRi復(fù)位;否則由復(fù)位;否則由CPU發(fā)出發(fā)出EOI命令使命令使ISRi復(fù)位復(fù)位動畫動畫9 8259A的工作過程(續(xù))的工
7、作過程(續(xù))CAS0CAS2D0D7SP/ENIR0IR7CPU響應(yīng)周期響應(yīng)周期8259A工作波形工作波形INT第一個周期第一個周期T1 T2 T3 T4ALECLK 第二個周期第二個周期T1 T2 T3 T4第一個前保持為高電平第一個前保持為高電平 INTALOCK108259A的工作方式(理解)的工作方式(理解)普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自動循環(huán)方式自動循環(huán)方式特殊循環(huán)方式特殊循環(huán)方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)循環(huán)方式優(yōu)先權(quán)循環(huán)方式設(shè)置優(yōu)先權(quán)方式設(shè)置優(yōu)先權(quán)方式普通中斷結(jié)束方式普通中斷結(jié)束方式特殊中斷結(jié)束方式特殊中斷結(jié)束方式自動中斷結(jié)束方式自動中斷結(jié)束方
8、式非自動中斷結(jié)束方式非自動中斷結(jié)束方式結(jié)束中斷處理方式結(jié)束中斷處理方式屏蔽中斷源方式屏蔽中斷源方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式中斷觸發(fā)方式中斷觸發(fā)方式邊沿觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式電平觸發(fā)方式數(shù)據(jù)線連接方式數(shù)據(jù)線連接方式緩沖方式緩沖方式非緩沖方式非緩沖方式111. 優(yōu)先權(quán)固定方式優(yōu)先權(quán)固定方式n普通全嵌套方式普通全嵌套方式n8259A的中斷的中斷優(yōu)先權(quán)順序固定不變優(yōu)先權(quán)順序固定不變,從高到低依次為,從高到低依次為IR0、IR1、IR2、IR7n中斷請求后,中斷請求后,8259A對對當(dāng)前請求中斷中優(yōu)先權(quán)最高的中當(dāng)前請求中斷中優(yōu)先權(quán)最高的中斷斷IRi予以予以響應(yīng)響應(yīng),將其
9、向量號送上數(shù)據(jù)總線,對應(yīng),將其向量號送上數(shù)據(jù)總線,對應(yīng)ISR的的Di位置位,至到中斷結(jié)束(位置位,至到中斷結(jié)束(ISR的的Di位復(fù)位)位復(fù)位)n在在ISR的的Di位置位期間,位置位期間,禁止再發(fā)生同級和低級優(yōu)先權(quán)禁止再發(fā)生同級和低級優(yōu)先權(quán)的中斷的中斷,但允許高級優(yōu)先權(quán)中斷的嵌套,但允許高級優(yōu)先權(quán)中斷的嵌套n特殊全嵌套方式特殊全嵌套方式一中斷正被處理時,允許一中斷正被處理時,允許同級或更同級或更高優(yōu)先級高優(yōu)先級的事件可以打斷當(dāng)前的中的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。(參閱教材斷處理過程而被服務(wù)。(參閱教材P190P191)注注: 特殊全嵌套僅用于多個特殊全嵌套僅用于多個8259A級級連時
10、的主連時的主8259A,而不能用于從,而不能用于從屬屬8259A或單或單8259A系統(tǒng)。系統(tǒng)。特殊全嵌套方式特殊全嵌套方式 D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:從片的INT被主片封鎖,故更高級別的IR0-IR2中斷也無法得到響應(yīng)特殊嵌套方式:因主片不封鎖從片的INT,故級別高的IR0-IR2中斷可以得到響應(yīng)。(但I(xiàn)R3-IR7仍被本從片封鎖)C.假定IR3發(fā)生中斷,并獲得服務(wù)一般嵌套方式:IR4的中斷被服務(wù)時,這些中斷將被封鎖。B.特殊嵌套方式:IR4的中斷被服務(wù) 時 , 只 封 鎖IR5-IR7。A.INTE.從8259AINTIR0IR1IR2IR
11、3IR4IR5IR6IR7普通普通(一般一般)全嵌套方式全嵌套方式 VS. 特殊全嵌套方式特殊全嵌套方式去CPU2、循環(huán)優(yōu)先級方式循環(huán)優(yōu)先級方式n中斷源輪流處于最高優(yōu)先級中斷源輪流處于最高優(yōu)先級,某中斷請求某中斷請求IRi被被處理后,其優(yōu)先級別自動降為最低,原來比它處理后,其優(yōu)先級別自動降為最低,原來比它低一級的中斷上升為最高級低一級的中斷上升為最高級 n自動循環(huán):初始優(yōu)先級自動規(guī)定自動循環(huán):初始優(yōu)先級自動規(guī)定n特殊循環(huán):特殊循環(huán):初始優(yōu)先級可用編程改變初始優(yōu)先級可用編程改變n適用于多個中斷源具有相同優(yōu)先權(quán)適用于多個中斷源具有相同優(yōu)先權(quán)IR7IR6IR5IR4IR3IR2IR1IR076543
12、21021076543最低級最高級最高級最低級ISR內(nèi)容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服務(wù)結(jié)束以前0101000001000000IR4的服務(wù)結(jié)束以后ISRi153. 結(jié)束中斷處理方式結(jié)束中斷處理方式什么是什么是8259A的中斷結(jié)束?的中斷結(jié)束?8259A利用中斷服務(wù)寄存器利用中斷服務(wù)寄存器ISR判斷:判斷:n某位為某位為1,表示正在進(jìn)行中斷服務(wù);,表示正在進(jìn)行中斷服務(wù);n該位為該位為0,就是該中斷結(jié)束服務(wù)。,就是該中斷結(jié)束服務(wù)。這里說明如何使這里說明如何使ISR某位為某位為0,不反映,不反映CPU的工作狀態(tài)。的工作狀態(tài)。16結(jié)束中斷處理方式(續(xù))結(jié)束中斷處理方式(續(xù)
13、)n自動中斷結(jié)束方式自動中斷結(jié)束方式AEOIn在第在第2個個INTA#結(jié)束時,由結(jié)束時,由8259A使使ISRi自動復(fù)位自動復(fù)位n非自動中斷結(jié)束方式非自動中斷結(jié)束方式1:普通中斷結(jié)束方式:普通中斷結(jié)束方式EOIn配合全嵌套(固定)優(yōu)先權(quán)方式使用配合全嵌套(固定)優(yōu)先權(quán)方式使用n當(dāng)當(dāng)CPU用輸出指令往用輸出指令往8259A發(fā)出普通中斷結(jié)束發(fā)出普通中斷結(jié)束EOI命令命令時,時,8259A就會把所有正在服務(wù)的中斷中優(yōu)先權(quán)最高就會把所有正在服務(wù)的中斷中優(yōu)先權(quán)最高的的ISR位復(fù)位位復(fù)位n非自動中斷結(jié)束方式非自動中斷結(jié)束方式2:特殊中斷結(jié)束方式:特殊中斷結(jié)束方式SEOIn配合循環(huán)優(yōu)先權(quán)方式使用配合循環(huán)優(yōu)先
14、權(quán)方式使用nCPU在程序中向在程序中向8259A發(fā)送一條特殊中斷結(jié)束命令,發(fā)送一條特殊中斷結(jié)束命令,這個命令中指出了要清除哪個這個命令中指出了要清除哪個ISR位位174. 屏蔽中斷源方式屏蔽中斷源方式n普通屏蔽方式普通屏蔽方式n將將IMR的的Di位置位置1,則對應(yīng)的中斷,則對應(yīng)的中斷IRi被屏蔽被屏蔽,該,該中斷請求不能從中斷請求不能從8259A送到送到CPUn如果如果IMR的的Di位置位置0,則允許,則允許IRi中斷產(chǎn)生中斷產(chǎn)生n特殊屏蔽方式特殊屏蔽方式n使用場合:在執(zhí)行較高級的中斷服務(wù)時,希望開放使用場合:在執(zhí)行較高級的中斷服務(wù)時,希望開放較低級的中斷請求。較低級的中斷請求。n原理原理:將
15、將IMR的的Di位置位置1,對應(yīng)的中斷,對應(yīng)的中斷IRi被屏蔽的被屏蔽的同時,使同時,使ISR的的Di位置位置0。假定當(dāng)前正在處理假定當(dāng)前正在處理IR6,先先進(jìn)入特殊屏蔽方式,然后進(jìn)入特殊屏蔽方式,然后設(shè)置設(shè)置IM6=1。這時,。這時,除除IR6外的所有中斷請求均能得到響應(yīng)。外的所有中斷請求均能得到響應(yīng)。n特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。命令結(jié)束中斷。185. 中斷觸發(fā)方式中斷觸發(fā)方式n邊沿觸發(fā)方式邊沿觸發(fā)方式n8259A將中斷請求輸入端出現(xiàn)的將中斷請求輸入端出現(xiàn)的上升沿作為中斷請求信號上升沿作為中斷請求信號n電平觸發(fā)方式電平觸發(fā)方式n中斷請求端出現(xiàn)的高電平是有中
16、斷請求端出現(xiàn)的高電平是有效的中斷請求信號效的中斷請求信號196. 數(shù)據(jù)線連接方式數(shù)據(jù)線連接方式n緩沖方式緩沖方式n8259A的數(shù)據(jù)線需加緩沖器予以驅(qū)動的數(shù)據(jù)線需加緩沖器予以驅(qū)動n8259A把把SP*/EN*引腳作為引腳作為輸出輸出端(輸出允端(輸出允許信號),用以鎖存或開啟緩沖器(許信號),用以鎖存或開啟緩沖器(enable buffer)n非緩沖方式非緩沖方式nSP*/EN*引腳為引腳為輸入輸入端端(slave program)n若若8259A級連,由其確定是主片級連,由其確定是主片(sp=1)(sp=1)或從或從片片 (sp=0)208259A的編程的編程n初始化編程初始化編程n8259A
17、開始工作前,必須進(jìn)行初始化編程開始工作前,必須進(jìn)行初始化編程n給給8259A寫入寫入初始化命令字初始化命令字ICW(ICW1ICW4)n中斷操作編程中斷操作編程n在在8259A工作期間工作期間n可以寫入可以寫入操作命令字操作命令字OCW(OCW1OCW3)將選將選定的操作傳送給定的操作傳送給8259A,使之按新的要求工作,使之按新的要求工作n還可以讀取還可以讀取8259A的信息,以便了解它的工作狀的信息,以便了解它的工作狀態(tài)態(tài)8259A內(nèi)部寄存器的尋址方法內(nèi)部寄存器的尋址方法CS# RD# WR#A0D4D3讀寫操作讀寫操作010000寫OCW2寫OCW3寫ICW1寫ICW2,ICW3,ICW
18、4,OCW1(順序?qū)懭?00101x1xx00101xx讀出IRR、ISR讀出IMR需要CS#、A0、RD#、WR#和D4、D3的配合內(nèi)部寄存器的訪問方法如下表: A0 RD* WR* CS*功能功能 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1寫入寫入ICW1、OCW2和和OCW3寫入寫入ICW2ICW4和和OCW1讀出讀出IRR、ISR和查詢字和查詢字讀出讀出IMR數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)8259A的初始化順序的初始化順序 n8259的的初始化流程初始化流程如圖如圖(注意次序不可顛倒(注意次序不可顛倒 )寫ICW1寫
19、ICW2級連?寫ICW3需ICW4?寫ICW4NNYY8259A的控制命令字的控制命令字n初始化初始化8259A必須從必須從ICW1開始開始n寫寫ICW1意味著重新初始化意味著重新初始化8259An寫入寫入ICW1后,后,8259A的狀態(tài)如下:的狀態(tài)如下:n清除清除ISR和和IMR(全全0);n將中斷優(yōu)先級設(shè)成初始狀態(tài):將中斷優(yōu)先級設(shè)成初始狀態(tài):IR0最高,最高,IR7最低;最低;n設(shè)定為設(shè)定為普通(普通(一般一般)屏蔽方式;屏蔽方式;n采用非自動中斷結(jié)束方式;采用非自動中斷結(jié)束方式;n狀態(tài)讀出邏輯預(yù)置為讀狀態(tài)讀出邏輯預(yù)置為讀IRR。24ICW1初始化字初始化字1LTIMSNGLIC4D7D6
20、D5D4D3D2D1D0表示可以任意表示可以任意為為1為為0都可以(建議為都可以(建議為0) 1只能為只能為1,作為標(biāo)志,作為標(biāo)志中斷觸發(fā)方式:中斷觸發(fā)方式:LTIM1,電平觸發(fā)方式,電平觸發(fā)方式LTIM0,邊沿觸發(fā)方式,邊沿觸發(fā)方式 規(guī)定單片或級連方式:規(guī)定單片或級連方式:SNGL1,單片方式,單片方式SNGL0,級連方式,級連方式是否寫入是否寫入ICW4IC41,要寫入,要寫入ICW4IC40,不寫入,不寫入ICW4,即,即ICW4規(guī)定的位全為規(guī)定的位全為0ICW1芯片控制初始化命令字芯片控制初始化命令字nLTIM: 觸發(fā)方式觸發(fā)方式n=1 高電平觸發(fā)高電平觸發(fā)n=0 上升沿觸發(fā)上升沿觸發(fā)
21、nSNGL: 級連控制級連控制n=1 單片單片n=0 級連級連nIC4: ICW4控制控制n=1 要寫要寫ICW4(8086配合配合8259則此位必須為則此位必須為1)n=0 不寫不寫ICW4(默認(rèn)(默認(rèn)ICW4為全為全0)A0 D7D6 D5 D4 D3 D2 D1 D0 0 x x x 1 LTIM x SNGL IC4ICW1的標(biāo)志ICW2中斷向量碼基值中斷向量碼基值nT7T3: 中斷向量碼的高中斷向量碼的高5位位nT2T0: 最低最低3位為中斷源的序號位為中斷源的序號IRnn000111分別對應(yīng)分別對應(yīng)IR0IR7n由由8259A根據(jù)中斷源的序號自動填入根據(jù)中斷源的序號自動填入 例如:
22、例如:若若ICW2命令字為命令字為48H,則,則IR0的中斷向量碼為的中斷向量碼為48H,IR7的中斷向量碼為的中斷向量碼為4FH,等等。,等等。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x xICW3級連控制字級連控制字 n主片的級聯(lián)控制字主片的級聯(lián)控制字 (位映像方式)(位映像方式)nSi=1 對應(yīng)對應(yīng)IRi線上連接了從片線上連接了從片 A0 D7D6 D5 D4 D3 D2 D1 D0 1 S7 S6 S5 S4 S3 S2 S1 S0從片的級聯(lián)控制字 (編碼方式)ID2ID0 標(biāo)識碼,說明本從片連接到主片的哪個IR引腳上。 000111
23、分別對應(yīng)IR0IR7。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 ID2 ID1 ID0ICW3級連控制字(續(xù))級連控制字(續(xù))nICW3必須與主從片的連接關(guān)系一致:必須與主從片的連接關(guān)系一致:例如,主片的例如,主片的IR4與從片的與從片的INT線連接,則線連接,則主片的主片的ICW3=10H,從片的,從片的ICW3=04H。n中斷響應(yīng)時,主片通過級連線中斷響應(yīng)時,主片通過級連線CAS2-CAS0送出被允許中斷的從片標(biāo)識碼,各從片用送出被允許中斷的從片標(biāo)識碼,各從片用自己的自己的ICW3與與CAS2-CAS0比較,二者一致比較,二者一致的從片才可發(fā)送中斷向量碼
24、。的從片才可發(fā)送中斷向量碼。演示演示29ICW4000SFNMBUFM/SAEOIPMD7D6D5D4D3D2D1D0嵌套方式:嵌套方式:n特殊全嵌套方式(特殊全嵌套方式(SFNM1)n普通全嵌套方式(普通全嵌套方式(SFNM0)數(shù)據(jù)線的緩沖方式:數(shù)據(jù)線的緩沖方式:n緩沖方式(緩沖方式(BUF1)n非緩沖方式(非緩沖方式(BUF0) 主片主片/從片選擇:從片選擇:n主片(主片(M/S=1)n從片(從片(M/S=0)中斷結(jié)束方式:中斷結(jié)束方式:n自動中斷結(jié)束(自動中斷結(jié)束(AEOI1)n非自動中斷結(jié)束(非自動中斷結(jié)束(AEOI0)微處理器類型:微處理器類型:n16位位80 x86( PM1)n8
25、位位8080/8085( PM0)ICW4方式控制初始化命令字方式控制初始化命令字nSFNM: 特殊全嵌套特殊全嵌套(special fully nested mode)1 特殊全嵌套方式特殊全嵌套方式0 一般全嵌套方式一般全嵌套方式nAEOI: 自動自動EOI1 自動自動EOI方式方式0 非自動非自動EOI方式方式A0 D7D6 D5 D4 D3 D2 D1 D0 1 0 0 0 SFNM BUF M/S AEOI 1BUF: 緩沖方式 M/S: 主/從緩沖選擇BUF M/S 1 1 緩沖方式/主PIC 1 0 緩沖方式/從PIC 0 x 非緩沖方式/正常初始化主片初始化主片8259Amov
26、 al,11h ;寫入寫入ICW1:設(shè)定邊沿觸發(fā),級連方式設(shè)定邊沿觸發(fā),級連方式out 20h,al ;主片主片I/O地址是地址是20H和和21Hjmp intr1 ;本程序段的轉(zhuǎn)移指令起延時作用,等待本程序段的轉(zhuǎn)移指令起延時作用,等待8259A操作結(jié)束操作結(jié)束intr1:mov al,08h;寫入寫入ICW2:設(shè)定主片設(shè)定主片IR0的中斷向量號為的中斷向量號為08Hout 21h,aljmp intr2intr2:mov al,04h ;寫入寫入ICW3:設(shè)定主片設(shè)定主片IR2級連從片級連從片out 21h,aljmp intr3intr3:mov al,05h;寫入寫入ICW4:設(shè)定普通全
27、嵌套方式,普通中斷結(jié)束方式設(shè)定普通全嵌套方式,普通中斷結(jié)束方式out 21h,al中斷控制器的初始化程序段初始化從片初始化從片8259Amov al,11h ;寫入寫入ICW1:設(shè)定邊沿觸發(fā),級連方式設(shè)定邊沿觸發(fā),級連方式out 0a0h,aljmp intr5intr5:mov al,70h ;寫寫ICW2:設(shè)定從片設(shè)定從片IR0的中斷向量號為的中斷向量號為70Hout 0a1h,aljmp intr6intr6:mov al,02h ;寫入寫入ICW3:設(shè)定從片連于主片的設(shè)定從片連于主片的IR2out 0a1h,aljmp intr7intr7:mov al, 01h ;寫入寫入ICW4:
28、設(shè)定普通全嵌套方式,普通中斷結(jié)束方式設(shè)定普通全嵌套方式,普通中斷結(jié)束方式out 0a1h,al中斷控制器的初始化程序段8259A的操作命令字的操作命令字OCW nOCW用于設(shè)置用于設(shè)置8259的工作狀態(tài)的工作狀態(tài)n在初始化后寫入,在初始化后寫入,8259A工作期間,可以隨工作期間,可以隨時接受操作命令字時接受操作命令字OCWnOCW共有共有3個:個:OCW1OCW3nOCW的寫入順序可任意的寫入順序可任意,需要哪個,需要哪個OCW就就寫入那個寫入那個OCWn寫入地址要求:寫入地址要求:nOCW1必須寫入奇地址端口必須寫入奇地址端口(A0=1)nOCW2,OCW3必須寫入偶地址端口必須寫入偶地址
29、端口(A0=0) OCW1中斷屏蔽字中斷屏蔽字 nMi=1 中斷請求線中斷請求線IRi被屏蔽被屏蔽(不允許中斷不允許中斷) =0 允許該允許該IRi中斷中斷 nOCW1將寫入將寫入IMR寄存器。寄存器。nA0=1時讀時讀OCW1可讀出設(shè)置的可讀出設(shè)置的IMR內(nèi)容。內(nèi)容。 A0 D7D6 D5 D4 D3 D2 D1 D0 1 M7 M6 M5 M4 M3 M2 M1 M035OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和和EOI配合使配合使用用產(chǎn)生中斷結(jié)束產(chǎn)生中斷結(jié)束EOI命命令和改變優(yōu)先權(quán)順序令和改變優(yōu)先權(quán)順序L2L0的的3位編碼位編碼指定指定IR引腳引腳 O
30、CW2中斷結(jié)束和優(yōu)先級循環(huán)中斷結(jié)束和優(yōu)先級循環(huán) nL2L0: 優(yōu)先級編碼優(yōu)先級編碼nR: 優(yōu)先級自動循環(huán)優(yōu)先級自動循環(huán)nSL: 指定優(yōu)先級指定優(yōu)先級nEOI: 結(jié)束中斷命令結(jié)束中斷命令 R SL EOI 0 0 1 非指定非指定EOI 命令命令(NSEOI),全嵌套方式,全嵌套方式 0 1 1 指定指定EOI 命令命令(SEOI),全嵌套方式,按,全嵌套方式,按L2-L0編碼復(fù)位編碼復(fù)位ISR 1 0 1 NSEOI 命令,優(yōu)先級自動循環(huán)命令,優(yōu)先級自動循環(huán) 1 0 0 自動自動EOI,設(shè)置優(yōu)先級自動循環(huán),設(shè)置優(yōu)先級自動循環(huán) 0 0 0 自動自動EOI,取消優(yōu)先級自動循環(huán),取消優(yōu)先級自動循環(huán)(
31、固定優(yōu)先級固定優(yōu)先級) 1 1 1 SEOI 命令,按命令,按L2-L0編碼循環(huán)優(yōu)先級編碼循環(huán)優(yōu)先級(L2-L0設(shè)為最低優(yōu)先級設(shè)為最低優(yōu)先級) 1 1 0 按按L2-L0編碼循環(huán)優(yōu)先級編碼循環(huán)優(yōu)先級(L2-L0設(shè)為最低優(yōu)先級設(shè)為最低優(yōu)先級) A0 D7D6 D5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L037OCW30ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM設(shè)置中斷屏蔽方式設(shè)置中斷屏蔽方式P、RR和和RIS規(guī)定隨后讀取的規(guī)定隨后讀取的狀態(tài)字狀態(tài)字含義含義OCW3屏蔽方式和讀出控制字屏蔽方式和讀出控制字 nESMM: 允許使
32、能特殊屏蔽方式允許使能特殊屏蔽方式nSMM: 特殊屏蔽方式特殊屏蔽方式ESMM SMM1 1 特殊屏蔽方式置位特殊屏蔽方式置位1 0 特殊屏蔽方式復(fù)位特殊屏蔽方式復(fù)位0 x 非特殊屏蔽方式非特殊屏蔽方式P(Polling): =1 查詢方式查詢方式 =0 非查詢方式非查詢方式A0 D7D6 D5 D4 D3 D2 D1 D0 0 0 ESMM SMM 0 1 P RR RISRR: 讀寄存器RIS: ISR/IRR選擇RR RIS1 1 讀ISR1 0 讀IRR0 x 無效39讀取讀取8259狀態(tài)狀態(tài)n查詢方式允許查詢方式允許8259A不工作于中斷方式,而是以查不工作于中斷方式,而是以查詢方式
33、工作詢方式工作nCPU先寫一個先寫一個D2=1的的OCW3,再對同一地址讀入,即可得,再對同一地址讀入,即可得到如下狀態(tài)字節(jié)(查詢字):到如下狀態(tài)字節(jié)(查詢字): I x x x x R2 R1 R0 I=1表示有中斷請求,中斷請求號為表示有中斷請求,中斷請求號為R2-R0 此查詢步驟可反復(fù)執(zhí)行,以響應(yīng)多個同時發(fā)生此查詢步驟可反復(fù)執(zhí)行,以響應(yīng)多個同時發(fā)生 的中斷。的中斷。 nCPU可讀出可讀出IRR、ISR、IMR和查詢字和查詢字nA0為低,由為低,由OCW3中中RR和和RIS位設(shè)定讀取位設(shè)定讀取IRR或或ISR,由,由OCW3中中P位設(shè)定讀取查詢字位設(shè)定讀取查詢字n而而A0引腳為高電平時讀取
34、的都是引腳為高電平時讀取的都是IMR40命令字和狀態(tài)字的區(qū)別方法命令字和狀態(tài)字的區(qū)別方法 利用讀寫信號區(qū)別寫入的控制寄存器和利用讀寫信號區(qū)別寫入的控制寄存器和讀出的狀態(tài)寄存器讀出的狀態(tài)寄存器 利用地址信號區(qū)別不同利用地址信號區(qū)別不同I/O地址的寄存器地址的寄存器 由控制字中的標(biāo)志位說明是哪個寄存器由控制字中的標(biāo)志位說明是哪個寄存器 由芯片內(nèi)順序控制邏輯按一定順序識別由芯片內(nèi)順序控制邏輯按一定順序識別不同的寄存器不同的寄存器 由前面的控制字決定后續(xù)操作的寄存器由前面的控制字決定后續(xù)操作的寄存器接口電路中常用的方法接口電路中常用的方法8259A編程舉例編程舉例n按以下要求初始化按以下要求初始化82
35、59A:n接口地址為接口地址為20H和和21H;n中斷為上升沿觸發(fā);單片中斷為上升沿觸發(fā);單片8259A;不寫;不寫ICW4;n與與IR0-IR3對應(yīng)的中斷向量碼為對應(yīng)的中斷向量碼為08H-0BH;nIR4-IR7不使用。不使用。n根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下:根據(jù)要求,各初始化參數(shù)及工作參數(shù)如下:nICW1 = 00010010 = 12HnICW2 = 08H 中斷向量碼中斷向量碼 nOCW1 = 11110000 = 0F0H 中斷屏蔽字中斷屏蔽字 8259A編程舉例(續(xù))編程舉例(續(xù))初始化程序如下:INIT8259A:MOVDX,20H;A0=0,寫ICW1MOVAL,12H
36、;上升沿觸發(fā),單片,不寫ICW4OUTDX,ALMOVDX,21H;A0=1,寫ICW2,OCW1MOVAL,08H;ICW2OUTDX,ALMOVAL,0F0H;OCW1:屏蔽IR4-IR7OUTDX,AL438259A在在IBM PC /XT系列機(jī)上的應(yīng)用系列機(jī)上的應(yīng)用448259A在在IBM PC/AT系列機(jī)上的應(yīng)用系列機(jī)上的應(yīng)用45應(yīng)用注意事項應(yīng)用注意事項n利用上升沿做為中斷請求利用上升沿做為中斷請求IRQ的有效信號的有效信號nIRQ0IRQ7的中斷向量號依次為的中斷向量號依次為08H0FH,IRQ8IRQ15依次為依次為70H77Hn采用普通全嵌套優(yōu)先權(quán)方式,中斷優(yōu)先權(quán)從高到采用普通
37、全嵌套優(yōu)先權(quán)方式,中斷優(yōu)先權(quán)從高到低順序為低順序為IRQ0IRQ2、IRQ8IRQ15、IRQ3IRQ7,且不能改變,且不能改變n采用普通中斷結(jié)束采用普通中斷結(jié)束EOI方式,需要在中斷服務(wù)程方式,需要在中斷服務(wù)程序最后發(fā)送普通序最后發(fā)送普通EOI命令命令n一般采用普通屏蔽方式,通過寫入一般采用普通屏蔽方式,通過寫入IMR允許中斷允許中斷,但注意不要破壞原屏蔽狀態(tài),但注意不要破壞原屏蔽狀態(tài)PC機(jī)外部中斷程序設(shè)計機(jī)外部中斷程序設(shè)計1)主程序)主程序保存原中斷向量保存原中斷向量設(shè)置自己的中斷向量設(shè)置自己的中斷向量初始化堆棧指針初始化堆棧指針設(shè)置設(shè)置8259A的中斷屏蔽字(其他的已由操作系統(tǒng)設(shè)置)的中
38、斷屏蔽字(其他的已由操作系統(tǒng)設(shè)置)STI2)中斷服務(wù)程序)中斷服務(wù)程序保存所用到的寄存器內(nèi)容保存所用到的寄存器內(nèi)容中斷服務(wù)程序主體中斷服務(wù)程序主體恢復(fù)進(jìn)入時保存的寄存器內(nèi)容恢復(fù)進(jìn)入時保存的寄存器內(nèi)容發(fā)發(fā)EOI命令(必要時可提前)命令(必要時可提前)STI(必要時可提前)(必要時可提前)IRET編寫外部可屏蔽中斷服務(wù)程序,需注意:編寫外部可屏蔽中斷服務(wù)程序,需注意:n不要忘記發(fā)送中斷結(jié)束命令不要忘記發(fā)送中斷結(jié)束命令n一般只能采用存儲單元傳遞參數(shù)一般只能采用存儲單元傳遞參數(shù)n不要使用不要使用DOS系統(tǒng)功能調(diào)用系統(tǒng)功能調(diào)用n中斷服務(wù)程序盡量短小中斷服務(wù)程序盡量短小47中斷程序舉例中斷程序舉例nPC機(jī)
39、中主機(jī)中主8259A的的I/O地址為地址為20H和和21H,中斷,中斷向量碼為向量碼為08H;n中斷請求從中斷請求從IR6引入,故引入,故中斷類型號為中斷類型號為0EH;n主程序如下:主程序如下:;保存原來的中斷向量保存原來的中斷向量movah,35hmoval,0eh;中斷類型碼;中斷類型碼int21h;取原中斷向量(在;取原中斷向量(在es:bx中)中)movsave_ip,bx;保存原來的中斷向量;保存原來的中斷向量movsave_cs,es;設(shè)置自己的中斷向量pushdsmovdx,offset my_intmovax,seg my_intmovds,ax;DS:DX的內(nèi)容為my_in
40、t的首地址movah,25hmoval,0ehint21h ;設(shè)置自己的中斷向量popds;初始化堆棧指針movsp,my_stack_top ;設(shè)置8259A的中斷屏蔽字inal,21handal,10111111b;開放IR6中斷out21h,alsti n子程序如下:子程序如下:my_int proc farpusha popamoval,20h;EOI命令,命令,00100000B out20h,al;寫;寫OCW2stiiretmy_int endp51例:可屏蔽中斷服務(wù)程序舉例例:可屏蔽中斷服務(wù)程序舉例n8259A的的IRQ0(向量號為(向量號為08H)中斷請求)中斷請求來自定時器
41、來自定時器8253,每隔,每隔55ms產(chǎn)生一次產(chǎn)生一次n本程序的本程序的08H號中斷服務(wù)程序,每次中斷號中斷服務(wù)程序,每次中斷顯示一串信息,顯示顯示一串信息,顯示10次次n用內(nèi)存單元(共享變量)在主程序與外部用內(nèi)存單元(共享變量)在主程序與外部中斷服務(wù)程序之間傳遞參數(shù):中斷次數(shù)中斷服務(wù)程序之間傳遞參數(shù):中斷次數(shù)n顯示信息也安排在共同的數(shù)據(jù)段中顯示信息也安排在共同的數(shù)據(jù)段中數(shù)據(jù)段數(shù)據(jù)段intmsg db A 8259A Interrupt !db 0dh,0ah,0counter db 0 ;中斷次數(shù)記錄單元;中斷次數(shù)記錄單元舉例保存中斷向量保存中斷向量mov ax,3508h ;獲取原中斷向量
42、;獲取原中斷向量int 21hpush bx;保存偏移地址保存偏移地址push es;保存段基地址保存段基地址設(shè)置中斷向量設(shè)置中斷向量cli;關(guān)中斷;關(guān)中斷push ds;設(shè)置新中斷向量;設(shè)置新中斷向量mov ax,seg new08hmov ds,axmov dx,offset new08hmov ax,2508h ;al:中斷向量號中斷向量號08Hint 21hpop ds設(shè)置中斷寄存器設(shè)置中斷寄存器in al,21h ;讀出讀出IMRpush ax;保存原保存原IMR內(nèi)容內(nèi)容and al,0feh;允許允許IRQ0,其他不變,其他不變out 21h,al;設(shè)置新;設(shè)置新IMR內(nèi)容內(nèi)容mo
43、v counter,0 ;設(shè)置中斷次數(shù)初值設(shè)置中斷次數(shù)初值sti;開中斷開中斷循環(huán)等待中斷循環(huán)等待中斷;本例的主程序僅循環(huán)等待中斷;本例的主程序僅循環(huán)等待中斷start1: cmp counter,10jb start1;中斷中斷10次退出次退出中斷中斷就在主程序循環(huán)當(dāng)中就在主程序循環(huán)當(dāng)中new08h proc;中斷服務(wù)程序;中斷服務(wù)程序sti;開中斷開中斷push ax;保護(hù)寄存器保護(hù)寄存器push bxpush dsmov ax,data;取數(shù)據(jù)段的段地址取數(shù)據(jù)段的段地址mov ds,ax ;設(shè)置數(shù)據(jù)段設(shè)置數(shù)據(jù)段DS進(jìn)入中斷服務(wù)程序進(jìn)入中斷服務(wù)程序中斷處理中斷處理inc counter;中
44、斷次數(shù)加中斷次數(shù)加1mov si,offset intmsg ;顯示信息顯示信息call dpstri ;調(diào)用顯示子程序;調(diào)用顯示子程序顯示字符串顯示字符串dpstriproc;顯示字符串子程序顯示字符串子程序push ax;入口參數(shù):入口參數(shù):DS:SI=字符串首址字符串首址push bxdps1:lodsb;字符串讀取字符串讀取AL=DS:SI;然后;然后SI=SI+1cmp al,0jz dps2顯示字符串顯示字符串(續(xù))(續(xù))mov bx,0;調(diào)用調(diào)用ROM-BIOS功能顯示功能顯示al中的字符中的字符mov ah,0ehint 10hjmp dps1dps2:pop bxpop ax
45、retdpstriendp退出中斷服務(wù)程序退出中斷服務(wù)程序mov al,20h;發(fā)送;發(fā)送EOI命令命令out 20h,alpop ds;恢復(fù)寄存器恢復(fù)寄存器pop bxpop axiret;中斷返回中斷返回new08h endp主程序結(jié)束主程序結(jié)束cli;關(guān)中斷;關(guān)中斷pop ax;恢復(fù);恢復(fù)IMRout 21h,alpop dx;恢復(fù)原中斷向量恢復(fù)原中斷向量pop dsmov ax,2508hint 21hsti;開中斷;開中斷mov ax,4c00hint 21h ;返回;返回DOSA 8259A Interrupt !A 8259A Interrupt ! A 8259A Interr
46、upt ! A 8259A Interrupt ! A 8259A Interrupt ! A 8259A Interrupt !A 8259A Interrupt ! A 8259A Interrupt ! A 8259A Interrupt ! A 8259A Interrupt ! 63駐留中斷服務(wù)程序駐留中斷服務(wù)程序駐留駐留TSR(Terminate and Stay Resident)程序)程序n用戶程序運行后仍然保存在主存中,可以用戶程序運行后仍然保存在主存中,可以讓其他程序使用讓其他程序使用n利用利用DOS功能調(diào)用功能調(diào)用31H代替代替4CH終止程序終止程序n小型駐留程序常編寫成
47、小型駐留程序常編寫成COM程序程序n駐留程序也可以編寫成駐留程序也可以編寫成EXE程序程序n需要駐留內(nèi)存的程序段要寫在前面需要駐留內(nèi)存的程序段要寫在前面64教學(xué)要求n1. 熟悉熟悉8088的中斷類型、中斷響應(yīng)的中斷類型、中斷響應(yīng)過程、中斷向量表過程、中斷向量表n2. 掌握內(nèi)部中斷服務(wù)程序的編寫掌握內(nèi)部中斷服務(wù)程序的編寫n3. 理解理解8259A的內(nèi)部結(jié)構(gòu)、寄存器的內(nèi)部結(jié)構(gòu)、寄存器作用、中斷過程作用、中斷過程n4. 掌握掌握8259A的普通全嵌套優(yōu)先權(quán)、的普通全嵌套優(yōu)先權(quán)、普通中斷結(jié)束、邊沿觸發(fā)方式普通中斷結(jié)束、邊沿觸發(fā)方式65教學(xué)要求(續(xù))n5. 了解的了解的8259A的的ICW和和OCW,注意命令字和狀
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度民間借貸擔(dān)保方式改革與合同條款設(shè)計4篇
- 2025年航空航天零部件制造與供應(yīng)合同2篇
- 2025年度廚師餐飲安全培訓(xùn)聘用合同3篇
- 2025年度苗圃苗木電商平臺合作與推廣合同4篇
- 2025年版派駐企業(yè)培訓(xùn)師服務(wù)合同4篇
- 二零二五年度智慧城市建設(shè)出資合同樣本3篇
- 二零二五年度古建筑墻面修繕工程合同標(biāo)的協(xié)議3篇
- 2025年度豬場生豬養(yǎng)殖廢棄物處理設(shè)施運營管理合同4篇
- 二零二五版高端別墅門窗定制安裝合同3篇
- 2025年個人土地租賃合同(含開發(fā)權(quán))規(guī)范文本3篇
- 數(shù)學(xué)-山東省2025年1月濟(jì)南市高三期末學(xué)習(xí)質(zhì)量檢測濟(jì)南期末試題和答案
- 中儲糧黑龍江分公司社招2025年學(xué)習(xí)資料
- 湖南省長沙市2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試卷
- 船舶行業(yè)維修保養(yǎng)合同
- 2024年林地使用權(quán)轉(zhuǎn)讓協(xié)議書
- 物流有限公司安全生產(chǎn)專項整治三年行動實施方案全國安全生產(chǎn)專項整治三年行動計劃
- 2025屆江蘇省13市高三最后一卷生物試卷含解析
- 產(chǎn)鉗助產(chǎn)護(hù)理查房
- 招聘專員轉(zhuǎn)正述職報告
- (完整版)小學(xué)生24點習(xí)題大全(含答案)
- 四川省2023年普通高等學(xué)校高職教育單獨招生文化考試(中職類)數(shù)學(xué)試題(原卷版)
評論
0/150
提交評論