版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、6.5 8259a可編程中斷控制器可編程中斷控制器n8259a的功能的功能n8259a的內(nèi)部結(jié)構(gòu)和引腳的內(nèi)部結(jié)構(gòu)和引腳n8259a的工作過程(含時序)的工作過程(含時序)n8259a的工作方式的工作方式n8259a的編程(命令字)的編程(命令字)n8259a的應用的應用8259a的功能中斷申請中斷申請管理接口管理接口int中斷申請中斷申請接口接口1網(wǎng)絡網(wǎng)絡接口接口2硬盤硬盤接口接口3軟盤軟盤接口接口4打印機打印機8088cpuintrif1. 向向cpu的引腳的引腳intr發(fā)中斷申請信號發(fā)中斷申請信號 當有多個外設同時發(fā)出中斷請求時,能按照一定的優(yōu)當有多個外設同時發(fā)出中斷請求時,能按照一定的優(yōu)
2、先級順序,向先級順序,向cpu發(fā)出中斷申請,使發(fā)出中斷申請,使cpu能優(yōu)先響能優(yōu)先響應優(yōu)先級最高的外部設備的中斷申請。應優(yōu)先級最高的外部設備的中斷申請。2. 送中斷類型號送中斷類型號 在在cpu中斷響應周期,針對不同外設的中斷請求,中斷響應周期,針對不同外設的中斷請求, 向向cpu傳送不同的中斷類型號,使傳送不同的中斷類型號,使cpu執(zhí)行相應的執(zhí)行相應的中斷子程中斷子程。中斷申請管理接口的主要功能中斷申請管理接口的主要功能: :在在ibm pc機由機由8259a可編程中斷控制器可編程中斷控制器(pic)來完成。來完成。8259a的功能的功能n8259a可編程中斷控制器可用于管理可編程中斷控制器
3、可用于管理intel 8080/8085、8086/8088、80286/80386的可的可屏蔽中斷屏蔽中斷n8259a的的基本功能基本功能n一片一片8259a可以管理可以管理8級中斷,可擴展至級中斷,可擴展至64級級n每一級中斷都可單獨被屏蔽或允許每一級中斷都可單獨被屏蔽或允許n在中斷響應周期,可提供相應的中斷向量號在中斷響應周期,可提供相應的中斷向量號n8259a設計有多種工作方式,可通過編程選擇設計有多種工作方式,可通過編程選擇8259a的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)d7d0intaint中斷請求寄存器中斷請求寄存器中斷屏蔽寄存器中斷屏蔽寄存器數(shù)據(jù)數(shù)據(jù)總線總線緩沖器緩沖器ir0ir7讀讀/寫寫控制
4、控制邏輯邏輯級聯(lián)級聯(lián)緩沖器緩沖器比較器比較器rdwra0cscas0csa1cas2sp/en優(yōu)先權(quán)判別電路優(yōu)先權(quán)判別電路中斷服務寄存器中斷服務寄存器控制邏輯控制邏輯8259a的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)n1.中斷請求寄存器中斷請求寄存器irr 保存從保存從ir0ir7來的中斷請求信號,某位來的中斷請求信號,某位=1表示對表示對應的應的iri有中斷請求有中斷請求 n2.中斷服務寄存器中斷服務寄存器isr 保存所有正在服務的中斷源,某位保存所有正在服務的中斷源,某位=1表示對應的表示對應的iri中斷正在被服務中斷正在被服務 n3.中斷屏蔽寄存器中斷屏蔽寄存器imr 存放中斷屏蔽字,某位存放中斷屏蔽字,某
5、位=1表示對應的表示對應的iri輸入被屏蔽輸入被屏蔽 n4.中斷優(yōu)先權(quán)判別電路中斷優(yōu)先權(quán)判別電路 確定是否向確定是否向cpu發(fā)出中斷請求,中斷響應時確定發(fā)出中斷請求,中斷響應時確定isr的哪位應置位及把相應中斷的類型碼放到數(shù)據(jù)的哪位應置位及把相應中斷的類型碼放到數(shù)據(jù)總線上總線上 8259a的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)n5. 讀讀/寫控制電路寫控制電路 用于控制對用于控制對8259a的讀、寫操作。的讀、寫操作。n6. 數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器 雙向雙向8位位3態(tài)緩沖器,由它構(gòu)成態(tài)緩沖器,由它構(gòu)成8259a與與cpu之間的數(shù)據(jù)接口。之間的數(shù)據(jù)接口。n7. 級聯(lián)緩沖級聯(lián)緩沖/比較器比較器 多片多片825
6、9a可級聯(lián)使用,最多可以組成可級聯(lián)使用,最多可以組成64級中斷優(yōu)先級控制,級中斷優(yōu)先級控制,此時一片此時一片8259a做主片,另外做主片,另外8片做從片,主從片的片做從片,主從片的cas0cas2并接在一起,作為級聯(lián)總線并接在一起,作為級聯(lián)總線n8. 控制邏輯控制邏輯 向向cpu發(fā)發(fā)int信號,接收信號,接收cpu發(fā)來的發(fā)來的inta信號,控制信號,控制8259a進入中斷服務狀態(tài)。進入中斷服務狀態(tài)。8259a的引腳的引腳 雙列直插式芯片,雙列直插式芯片,28個引腳個引腳 方方 波波鍵鍵 盤盤保保 留留串串 口口2 硬硬 盤盤軟軟 盤盤打印機打印機iow18.2hza0cs8259a總線總線a0
7、數(shù)數(shù) 據(jù)據(jù) 線線 iorrdwr片片選選譯譯碼碼ir0ir1ir2ir3ir4ir5ir6ir7a5a9d0d7d0d7vccsp/enca0ca1ca2gnd+ 5v203fh用于多片用于多片8259a級連情況級連情況intaint inta intr串串 口口1 定時器定時器8259a的工作過程的工作過程8259a的時序的時序cas0cas2d0d7sp/enir0ir7cpu響應周期響應周期8259a工作波形工作波形int第一個周期第一個周期t1 t2 t3 t4aleclk 第二個周期第二個周期t1 t2 t3 t4第一個前保持為高電平第一個前保持為高電平 intalock8259a的
8、工作方式的工作方式中斷觸發(fā)方式中斷觸發(fā)方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自動循環(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)方式設置優(yōu)先權(quán)方式設置優(yōu)先權(quán)方式普通中斷結(jié)束方式普通中斷結(jié)束方式特殊中斷結(jié)束方式特殊中斷結(jié)束方式自動中斷結(jié)束方式自動中斷結(jié)束方式非自動中斷結(jié)束方式非自動中斷結(jié)束方式結(jié)束中斷處理方式結(jié)束中斷處理方式屏蔽中斷源方式屏蔽中斷源方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式邊沿觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式電平觸發(fā)方式優(yōu)先級控制方式優(yōu)先級控制方式n兩類優(yōu)先級控制方式:兩類優(yōu)先級控制方式:固定優(yōu)先級固
9、定優(yōu)先級和和循循環(huán)優(yōu)先級環(huán)優(yōu)先級n固定優(yōu)先級方式(普通全嵌套方式和特殊全固定優(yōu)先級方式(普通全嵌套方式和特殊全嵌套方式)嵌套方式) 所有中斷請求所有中斷請求iri的中斷優(yōu)先級固定不變的中斷優(yōu)先級固定不變 優(yōu)先級排列順序可編程改變優(yōu)先級排列順序可編程改變 加電后加電后8259a的默認方式,默認優(yōu)先級順序從的默認方式,默認優(yōu)先級順序從高到低為高到低為ir0ir7ir7ir6ir5ir4ir3ir2ir1ir07654321032107654最低級最高級最高級最低級優(yōu)先級優(yōu)先級ir7ir6ir5ir4ir3ir2ir1ir0默認優(yōu)先級默認優(yōu)先級優(yōu)先級可編程改變優(yōu)先級可編程改變n固定優(yōu)先級下的中斷嵌套
10、固定優(yōu)先級下的中斷嵌套在中斷處理過程中允許被更高優(yōu)先級的事件所中在中斷處理過程中允許被更高優(yōu)先級的事件所中斷稱為中斷嵌套。斷稱為中斷嵌套。8259a有兩種中斷嵌套方式:有兩種中斷嵌套方式:普通全嵌套方式(默認方式)普通全嵌套方式(默認方式) 一中斷正被處理時,只有一中斷正被處理時,只有更高優(yōu)先級更高優(yōu)先級的事件可以打的事件可以打斷當前的中斷處理過程而被服務。斷當前的中斷處理過程而被服務。特殊全嵌套方式特殊全嵌套方式 一中斷正被處理時,允許一中斷正被處理時,允許同級或更高優(yōu)先級同級或更高優(yōu)先級的事件的事件可以打斷當前的中斷處理過程而被服務??梢源驍喈斍暗闹袛嗵幚磉^程而被服務。注注: 特殊全嵌套僅
11、用于多個特殊全嵌套僅用于多個8259a級連時的級連時的8259a,而不能用于從屬而不能用于從屬8259a或單或單8259a系統(tǒng)。系統(tǒng)。d.主主8259air0ir1ir2ir3ir4ir5ir6ir7一般嵌套方式:一般嵌套方式:從片的從片的int被主片封被主片封鎖,故更鎖,故更高高級別的級別的ir0-ir2中斷也無法中斷也無法得到響應得到響應特殊嵌套方式:特殊嵌套方式:因主片不封鎖從片的因主片不封鎖從片的int,故級別高的,故級別高的ir0-ir2中斷可以得到響應。中斷可以得到響應。( (但但ir3-ir7仍被本從仍被本從片封鎖片封鎖) )c.假定假定ir3發(fā)生中發(fā)生中斷斷,并獲得服務并獲得服
12、務一般嵌套方式:一般嵌套方式:ir4的中斷被服務的中斷被服務時,這些中斷將時,這些中斷將被封鎖。被封鎖。b.特殊嵌套方式:特殊嵌套方式:ir4的中斷被服的中斷被服務 時 , 只 封 鎖務 時 , 只 封 鎖ir5-ir7。a.inte.從從8259aintir0ir1ir2ir3ir4ir5ir6ir7n一般全嵌套方式與特殊全嵌套方式的區(qū)別一般全嵌套方式與特殊全嵌套方式的區(qū)別 去去cpun循環(huán)優(yōu)先級方式(自動循環(huán)方式和特殊循環(huán)方循環(huán)優(yōu)先級方式(自動循環(huán)方式和特殊循環(huán)方式)式) 中斷源輪流處于最高優(yōu)先級,即自動中斷優(yōu)先級循中斷源輪流處于最高優(yōu)先級,即自動中斷優(yōu)先級循環(huán)環(huán) 某中斷請求某中斷請求ir
13、i被處理后,其優(yōu)先級別自動降為最被處理后,其優(yōu)先級別自動降為最低,原來比它低一級的中斷上升為最高級低,原來比它低一級的中斷上升為最高級 初始優(yōu)先級順序可用編程改變(特殊循環(huán)方式)初始優(yōu)先級順序可用編程改變(特殊循環(huán)方式)ir7ir6ir5ir4ir3ir2ir1ir07654321021076543最低級最高級最高級最低級isr內(nèi)容內(nèi)容ir7ir6ir5ir4ir3ir2ir1ir0ir4的服務結(jié)束以前的服務結(jié)束以前0101000001000000ir4的服務結(jié)束以后的服務結(jié)束以后isri結(jié)束中斷處理方式結(jié)束中斷處理方式n當某一當某一iri中斷被服務時,中斷被服務時,isr中的相應中的相應位位
14、isri=1。當服務結(jié)束后,則必須清零。當服務結(jié)束后,則必須清零該該isri位。使位。使isri=0是通過向是通過向8259a發(fā)出中斷結(jié)束命令(發(fā)出中斷結(jié)束命令(eoi命令)實現(xiàn)的。命令)實現(xiàn)的。n三種三種eoi命令命令n自動自動eoi(aeoi)(自動(自動eoi方式)方式)n非指定非指定eoi(nseoi)(普通(普通eoi方方式)式)n指定指定eoi(seoi)(特殊(特殊eoi方式)方式) naeoi:在第:在第2個個inta#結(jié)束時,由結(jié)束時,由8259a使使isri自動復位;自動復位; 因不保留當前正在服務的中斷的狀態(tài),故因不保留當前正在服務的中斷的狀態(tài),故aeoi不不能用于中斷嵌
15、套方式能用于中斷嵌套方式nnseoi:由由cpu發(fā)出正常發(fā)出正常eoi命令,該命令,該eoi命令使命令使isri=1的位中優(yōu)先級最高的那一位復的位中優(yōu)先級最高的那一位復位。位。 用于普通全嵌套方式用于普通全嵌套方式nseoi:由:由cpu發(fā)出一條發(fā)出一條seoi命令,該命令,該eoi命令中指出了所要復位的命令中指出了所要復位的isr的位號。的位號。 用于非全嵌套方式用于非全嵌套方式中斷服務程序向從pic發(fā)eoi命令讀從pic的isr全0?向主pic發(fā)eoi命令yiret恢復現(xiàn)場nn特殊全嵌套方式特殊全嵌套方式下的下的eoi處理處理n只有當從只有當從pic的的中斷全部處理完中斷全部處理完后,才能
16、向主后,才能向主pic發(fā)發(fā)eoi命令命令屏蔽中斷源的方式屏蔽中斷源的方式n普通屏蔽方式:普通屏蔽方式:nimr屏蔽字決定了允許或禁止某位屏蔽字決定了允許或禁止某位iri所對應的所對應的中斷:中斷:imi=1 禁止,禁止, imi=0 允許。允許。n特殊屏蔽方式:特殊屏蔽方式:n提供了允許較低優(yōu)先級的中斷能夠得到響應的提供了允許較低優(yōu)先級的中斷能夠得到響應的特殊手段。特殊手段。n原理原理:假定當前正在處理:假定當前正在處理ir6,先,先進入特殊屏進入特殊屏蔽方式,然后蔽方式,然后設置設置im6=1。這時,除。這時,除ir6外的所外的所有中斷請求均能得到響應。有中斷請求均能得到響應。n特殊屏蔽方式
17、中只能用特殊屏蔽方式中只能用seoi命令結(jié)束中斷。命令結(jié)束中斷。n特殊屏蔽例:特殊屏蔽例: ;ir4中斷處理程序中斷處理程序climov al,68h ;ocw3:0 1 1 0 1 0 0 0out 0c0h,al ;設置特殊屏蔽方式;設置特殊屏蔽方式in al,0c2h or al,10h ;屏蔽;屏蔽ir4out 0c2h,al sti ;ir7請求,響應,返回請求,響應,返回cli ;為設命令字;為設命令字in al,0c2h ;讀出屏蔽字;讀出屏蔽字and al,0efh ;清除;清除imr4out 0c2h,almov al,48h ;ocw3:0 1 0 0 1 0 0 0out
18、 0c0h,al ;取消特殊屏蔽;取消特殊屏蔽sti ;繼續(xù);繼續(xù)ir4中斷服務中斷服務mov al,20h ;ocw2:0 0 1 0 0 0 0 0 (eoi)out 0c0,aliret 中斷觸發(fā)方式中斷觸發(fā)方式n邊沿觸發(fā)邊沿觸發(fā)niri出現(xiàn)上升沿表示有中斷請出現(xiàn)上升沿表示有中斷請求求 n電平觸發(fā)電平觸發(fā)niri出現(xiàn)高電平表示有中斷請出現(xiàn)高電平表示有中斷請求求n在第在第1個個inta#結(jié)束前,結(jié)束前,iri必須保持高電平必須保持高電平 中斷的級連中斷的級連n一個系統(tǒng)中,一個系統(tǒng)中,8259a可以級連,有一個主可以級連,有一個主8259a,若干個(最多若干個(最多8個)從個)從8259an
19、級連時,主級連時,主8259a的三條級連線的三條級連線cas0cas2作作為輸出線,連至每個從為輸出線,連至每個從8259a的的cas0cas2n每個從每個從8259a的中斷請求信號的中斷請求信號int,連至主,連至主8259a的一個中斷請求輸入端的一個中斷請求輸入端irn主主8259a的的int線連至線連至cpu的中斷請求輸入端的中斷請求輸入端nsp*/en*在非緩沖方式下,規(guī)定該在非緩沖方式下,規(guī)定該8259a是主片是主片(sp*1)還是從片()還是從片(sp*0)cas0 ir0cas1 ir1cas2 ir2 ir3inta ir4 ir5int ir6 ir7sp/en cas0in
20、ta cas1 cas2int ir0 ir1sp/en ir7cas0 ir0cas1 ir1cas2 ir2 ir3inta ir4 ir5int ir6 ir7sp/enintaintr+5v8259級連工作示意圖級連工作示意圖cpu8259a8259a8259a8259級聯(lián)工作示意圖級聯(lián)工作示意圖8259a的編程n8259a的控制命令分為n初始化命令字初始化命令字icw icw1icw4 向向8259a寫入寫入icw的過程稱為的過程稱為初始化編程初始化編程n操作命令字操作命令字ocw ocw1ocw3 向向8259a寫入寫入ocw的過程稱為的過程稱為操作方式編操作方式編程程 8259a
21、的編程的編程sp/enca0ca1ca2ioriow總線總線d0d7數(shù)數(shù) 據(jù)據(jù) 線線d0d7intaintra0片片選選譯譯碼碼a5a9csa0rd intawrint 1 i3 i4icw1 芯片控制芯片控制 icw2 中斷類型號中斷類型號 icw3 主從片連接關(guān)系主從片連接關(guān)系 icw4 方式控制方式控制0111a01 0 0 1 0 1 0 0ocw1 中斷屏蔽寄存器中斷屏蔽寄存器 imr 0 0 ocw2 優(yōu)先級設置、發(fā)優(yōu)先級設置、發(fā)eoi 0 1 ocw3特殊屏蔽特殊屏蔽,查詢方式設置查詢方式設置處理部分處理部分控制部分控制部分000 0 0 0 0 0 isr當前當前中斷中斷服務服
22、務寄存器寄存器pr優(yōu)先級優(yōu)先級裁決器裁決器vccgnd1 10 00 0a0ir0ir1ir2ir3ir4ir5ir6ir7irr中斷中斷申請申請寄存器寄存器000 0 0 0 0 0 n4個初始化命令寄存器 icw1、icw2 icw3、icw4 n3個操作命令寄存器 ocw1(imr) ocw2、ocw3n當前中斷服務寄存器 isrn中斷申請寄存器 irr 8259a內(nèi)部有內(nèi)部有9個個 可讀寫的寄存器可讀寫的寄存器8259a的編程結(jié)構(gòu)的編程結(jié)構(gòu) 1 i3 i4icw1 芯片控制芯片控制 icw2 中斷類型號中斷類型號 icw3 主從片關(guān)系主從片關(guān)系 icw4 方式控制方式控制處理部分處理部
23、分控制部分控制部分000 0 0 0 0 0 isr當前當前中斷中斷服務服務寄存器寄存器pr優(yōu)先級優(yōu)先級裁決器裁決器irr中斷申請中斷申請寄存器寄存器000 0 0 0 0 0 中斷屏蔽寄存器中斷屏蔽寄存器 imrocw2 1 0 0 1 0 1 0 0 0 0 0 1 ocw3ocw18259a中斷控制器中斷控制器8259a內(nèi)部寄存器的尋址方法cs# rd# wr#a0d4d3讀寫操作010000寫寫ocw2寫寫ocw3寫寫icw1寫寫icw2,icw3,icw4,ocw1(順序?qū)戫樞驅(qū)懭肴?00101x1xx00101xx讀出讀出irr、isr讀出讀出imrn需要需要cs#、a0、rd#、
24、wr#和和d4、d3的配的配合合n內(nèi)部寄存器的訪問方法如下表:內(nèi)部寄存器的訪問方法如下表: 8259a的初始化順序 n8259的初始化流程如圖n注意次序不可顛倒 寫寫icw1寫寫icw2級連?級連?寫寫icw3需需icw4?寫寫icw4nnyy8259a的控制命令字n初始化8259a必須從icw1開始n寫寫icw1意味著重新初始化意味著重新初始化8259an寫入寫入icw1后,后,8259a的狀態(tài)如下的狀態(tài)如下: 清除清除isr和和imr(全全0); 將中斷優(yōu)先級設成初始狀態(tài):將中斷優(yōu)先級設成初始狀態(tài):ir0最高,最高,ir7最最低;低; 設定為一般屏蔽方式;設定為一般屏蔽方式; 采用非自動中
25、斷結(jié)束方式;采用非自動中斷結(jié)束方式; 狀態(tài)讀出邏輯預置為讀狀態(tài)讀出邏輯預置為讀irr。 準備順序接收其他準備順序接收其他icwicw1初始化字1ltimsnglic4d7d6d5d4d3d2d1d0表示可以任意表示可以任意為為1為為0都可以(建議為都可以(建議為0) 1只能為只能為1,作為標志,作為標志中斷觸發(fā)方式:中斷觸發(fā)方式:ltim1,電平觸發(fā)方式,電平觸發(fā)方式ltim0,邊沿觸發(fā)方式,邊沿觸發(fā)方式 規(guī)定單片或級連方式:規(guī)定單片或級連方式:sngl1,單片方式,單片方式sngl0,級連方式,級連方式是否寫入是否寫入icw4ic41,要寫入,要寫入icw4ic40,不寫入,不寫入icw4,
26、即,即icw4規(guī)定的位全為規(guī)定的位全為0a0 = 0icw2中斷向量碼a0 = 1t7t6t5t4t3d7d6d5d4d3d2d1d0設置中斷向量號設置中斷向量號nt7t3為中斷向量號的高為中斷向量號的高5位位n低低3位由位由8259a自動確定:自動確定:nir0為為000、ir1為為001、ir7為為111icw3級連控制字 s7 /0s6 /0s5 /0s4 /0s3 /0s2/id2s1/id1s0/id0d7d6d5d4d3d2d1d0級連命令字級連命令字n主片主片8259a:si1對應對應iri接有從片;接有從片;否則否則iri沒有連接從片沒有連接從片n從片從片8259a:id0id
27、2編碼說明從片編碼說明從片int引腳接到主片哪個引腳接到主片哪個ir引腳引腳a0 = 1icw3級連控制字(續(xù))nicw3必須與主從片的連接關(guān)系一致:例如,主片的ir4與從片的int線連接,則主片的icw3=10h,從片的icw3=04h。n中斷響應時,主片通過級連線cas2-cas0送出被允許中斷的從片標識碼,各從片用自己的icw3與cas2-cas0比較,二者一致的從片才可發(fā)送中斷向量碼。icw4中斷結(jié)束方式字 000sfnmbufm/saeoipmd7d6d5d4d3d2d1d0嵌套方式:嵌套方式:n特殊全嵌套方式(特殊全嵌套方式(sfnm1)n普通全嵌套方式(普通全嵌套方式(sfnm0
28、)數(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位位8080/8085( pm0)a0 = 1例例1、試按照如下要求對、試按照如下要求對8259a設置初始化命令字:系統(tǒng)中設置初始化命令字:系統(tǒng)中僅用一片僅用一片8259a,中斷請求信號采用邊沿觸發(fā)方式;中斷類,中斷請求信號采用
29、邊沿觸發(fā)方式;中斷類型碼為型碼為08h0fh;用全嵌套、緩沖、非自動結(jié)束中斷方式。;用全嵌套、緩沖、非自動結(jié)束中斷方式。8259a的端口地址為的端口地址為20h和和21h。該片該片8259a的初始化設置的程序段如下:的初始化設置的程序段如下:mov al, 13h ;icw1=00010011out 20h, almov al, 8;icw2=00001000out 21h, almov al, 0dh;icw4=00001101out 21h, al 例例2、試對一個主從式、試對一個主從式8259a進行初始化命令字的設置。從片進行初始化命令字的設置。從片的的int與主片的與主片的ir2相連。
30、從片的中斷類型碼為相連。從片的中斷類型碼為70h77h,端口地址為端口地址為a0h和和a1h;主片的中斷類型碼為;主片的中斷類型碼為08h0fh,端口地址為端口地址為20h和和21h。中斷請求信號采用邊沿觸發(fā),采用。中斷請求信號采用邊沿觸發(fā),采用全嵌套、緩沖、非自動結(jié)束中斷方式。全嵌套、緩沖、非自動結(jié)束中斷方式。主主8259a:mov al,11h;icw1=00010001out 20h,almov al,08h;icw2=00001000out 21h,almov al,04h;icw3=00000100out 21h,almov al,0dh;icw4=00001101out 21h,a
31、l 從從8259a:mov al,11h;icw1=00010001out 0a0h,almov al,70h;icw2=01110000out 0a1h,almov al,02h;icw3=00000010out 0a1h,almov al, 09h;icw4=00001001out 0a1h,al8259a的操作命令字ocw nocw用于設置8259的工作狀態(tài)n在初始化后寫入nocw的寫入順序可任意n寫入地址要求:nocw1必須寫入奇地址端口必須寫入奇地址端口(a0=1)nocw2,ocw3必須寫入偶地址端口必須寫入偶地址端口(a0=0) ocw1中斷屏蔽字 nmi=1 中斷請求線iri被
32、屏蔽(不允許中斷) =0 允許該iri中斷 nocw1將寫入imr寄存器。na0=1時讀ocw1可讀出設置的imr內(nèi)容。 a0 d7d6 d5 d4 d3 d2 d1 d0 1 m7 m6 m5 m4 m3 m2 m1 m0ocw2中斷結(jié)束和優(yōu)先級循環(huán) nl2l0: 優(yōu)先級編碼nr: 優(yōu)先級是否循環(huán)(0:固定; 1:循環(huán))nsl: 指定優(yōu)先級neoi: 結(jié)束中斷命令 r sl eoi(p258,圖6-39) 0 0 1 非指定eoi 命令(nseoi),全嵌套方式 0 1 1 指定eoi 命令(seoi),全嵌套方式,按l2-l0編碼復位isr 1 0 1 nseoi 命令,優(yōu)先級自動循環(huán) 1
33、 1 1 nseoi 命令,按l2-l0編碼循環(huán)優(yōu)先級(l2-l0設為最低優(yōu)先級) 1 0 0 自動eoi時,設置優(yōu)先級自動循環(huán) 0 0 0 自動eoi時,取消優(yōu)先級自動循環(huán)(固定優(yōu)先級) 1 1 0 特殊循環(huán)優(yōu)先級,l2-l0設為最低優(yōu)先級a0 d7d6 d5 d4 d3 d2 d1 d0 0 r sl eoi 0 0 l2 l1 l0ocw3屏蔽方式和讀出控制字 nesmm: 允許使能特殊屏蔽方式nsmm: 特殊屏蔽方式esmm smm1 1 特殊屏蔽方式置位1 0 特殊屏蔽方式復位0 x 非特殊屏蔽方式np(polling): =1 查詢方式 =0 非查詢方式a0 d7d6 d5 d4
34、d3 d2 d1 d0 0 0 esmm smm 0 1 p rr risnrr: 讀寄存器nris: isr/irr選擇rr ris1 1 讀isr1 0 讀irr0 x 無效ocw3(續(xù))n查詢方式允許8259a不工作于中斷方式,而是以查詢方式工作。ncpu先寫一個先寫一個d2=1的的ocw3,再對同一地址讀入,即可,再對同一地址讀入,即可得到如下狀態(tài)字節(jié):得到如下狀態(tài)字節(jié): i x x x x r2 r1 r0 i=1表示有中斷請求,優(yōu)先級最高的中斷請求號為表示有中斷請求,優(yōu)先級最高的中斷請求號為r2-r0 此查詢步驟可反復執(zhí)行,以響應多個同時發(fā)生此查詢步驟可反復執(zhí)行,以響應多個同時發(fā)生
35、 的中斷。的中斷。 n讀irr/isr:寫入此命令后,隨后再對同一地址讀,即可得到irr或isr的內(nèi)容。8295a的應用18259a在ibmpc/xt上的應用28295a在ibm pc/at上的應用1. 8259a在在ibm pc系列機上的應系列機上的應用用在在ibm pc/xt中,采用中,采用1片片8259a來管理可屏蔽來管理可屏蔽中斷中斷rom bios中規(guī)定使用中規(guī)定使用20h(a0=0)和)和21h(a0=1)i/o端口端口初始化規(guī)定的工作方式:邊沿觸發(fā)、緩沖方式、普通初始化規(guī)定的工作方式:邊沿觸發(fā)、緩沖方式、普通eoi方式、全嵌套方式方式、全嵌套方式可屏蔽中斷類型號為可屏蔽中斷類型號
36、為08h-0fhibm pc/xt的的8259a連接示意圖連接示意圖方方 波波鍵鍵 盤盤保保 留留串串 口口2 硬硬 盤盤軟軟 盤盤打印機打印機iow18.2hza0cs8259a總線總線a0數(shù)數(shù) 據(jù)據(jù) 線線 iorrdwr片片選選譯譯碼碼ir0ir1ir2ir3ir4ir5ir6ir7a5a9d0d7d0d7vccsp/enca0ca1ca2gnd+ 5v203fh用于多片用于多片8259a級連情況級連情況intaint inta intr串串 口口1 ibm pc/xt機的外中斷的中斷源和中斷類型碼中斷類型碼中斷源中斷向量地址08h09h0ah0bh0ch0dh0eh0fh電子鐘時間基準鍵
37、盤保留串行口2串行口1硬盤軟盤打印機20h23h24h27h28h2bh2ch2fh30h33h34h37h38h3bh3ch3fhrom-bios對對8259a的的初始化程序初始化程序:mov a1,00010011h ;寫入;寫入icw1,設定邊沿觸發(fā),設定邊沿觸發(fā),out 20h,a1 ;單片方式;單片方式mov a1,00001000h ;寫入;寫入icw2,設定,設定irq0的中斷的中斷out 21h,a1;向量號為;向量號為08hmov a1,00001101h ;寫入;寫入icw4,設定普通全嵌套,設定普通全嵌套out 21h,a1 ;方式,普通;方式,普通eoi,選用,選用80
38、86/8088cpu設置中斷屏蔽寄存器設置中斷屏蔽寄存器:in al,21h;讀;讀imrand al,011111100h;只允許;只允許ir0和和ir1out 21h,al;寫入;寫入ocw1中斷結(jié)束時的處理中斷結(jié)束時的處理:mov al,00100000h ;ocw2=20hout 20h,a1 iret讀讀irr(isr):mov al,00001010h ;寫;寫ocw3,讀,讀irrout 20h,alnop;延時;延時inal,20h;讀;讀irr2. 8259a在在ibm at系列機上的應用系列機上的應用在在ibm pc/at中,采用中,采用2片片8259a來管理可屏蔽來管理可
39、屏蔽中斷中斷主片端口地址為主片端口地址為20h和和21h,從片端口地址為,從片端口地址為a0h和和a1h初始化規(guī)定的工作方式:邊沿觸發(fā)、非緩沖方式、普初始化規(guī)定的工作方式:邊沿觸發(fā)、非緩沖方式、普通通eoi方式、全嵌套方式方式、全嵌套方式主片可屏蔽中斷類型號為主片可屏蔽中斷類型號為08h-0fh,從片為,從片為70h-77h初始化(初始化(p262)結(jié)束中斷結(jié)束中斷:;從片發(fā);從片發(fā)eoi命令命令mov al,00100000hout 0a0h,al;寫從片;寫從片eoi命令命令;讀;讀isrmov al,00001011h;寫;寫ocw3,讀,讀isrout 0a0h,alnopin al,
40、0a0h;讀;讀isrand al,al;不為;不為0則不向主片發(fā)則不向主片發(fā)eoi命令命令jnz l1;主片發(fā);主片發(fā)eoi命令命令mov al,00100000hout 20h,al;寫主片;寫主片eoi命令命令l1:iret6.6 中斷服務程序設計中斷服務程序設計中斷程序設計的一般過程中斷程序設計的一般過程(p264):n1、設置中斷向量表、設置中斷向量表n2、設置中斷控制器、設置中斷控制器n3、設置、設置cpu的中斷允許標志的中斷允許標志ifn4、設計中斷服務程序、設計中斷服務程序例例1 1 利用連接在利用連接在8259a ir0上的時鐘信號,上的時鐘信號, 編寫具有定時功能程序,編寫
41、具有定時功能程序, 要求每隔要求每隔5秒在屏蔽上顯示一個字符秒在屏蔽上顯示一個字符 a。8088intr主主 板板if18.2hz 方波方波8259aint中斷屏蔽寄存器中斷屏蔽寄存器ir0當前當前中斷中斷服務服務寄存器寄存器08h18259a時鐘中斷程序時鐘中斷程序n時鐘信號連接在時鐘信號連接在ir0上,申請的中斷類型號為上,申請的中斷類型號為08h。n時鐘信號是一個頻率為時鐘信號是一個頻率為18.2hz的方波信號的方波信號, 即每秒向即每秒向8259a發(fā)出發(fā)出18.2次的中斷申請。次的中斷申請。 如果如果cpu響應該中斷申請,則以每秒響應該中斷申請,則以每秒18.2次的頻率次的頻率執(zhí)行執(zhí)行
42、08h類型的中斷子程。類型的中斷子程。分析分析80888259aintr ir018.2hz方波信號方波信號intn中斷申請的任務是每中斷申請的任務是每5秒顯示一個字符秒顯示一個字符a1秒執(zhí)行秒執(zhí)行18.2次,則次,則5秒執(zhí)行秒執(zhí)行18.25=91次,次,只在執(zhí)行到第只在執(zhí)行到第91次時顯示次時顯示a,其它不顯示。,其它不顯示。n在中斷子程中用一個量來計數(shù)中斷子程被執(zhí)行的次數(shù)在中斷子程中用一個量來計數(shù)中斷子程被執(zhí)行的次數(shù),即即cpu響應響應ir0中斷申請的次數(shù)。中斷申請的次數(shù)。當達到當達到91次,則顯示次,則顯示a,并將計數(shù)值清,并將計數(shù)值清0,重新計數(shù)重新計數(shù);其它情況只計數(shù),不顯示其它情況
43、只計數(shù),不顯示a。n中斷子程的最后應發(fā)中斷結(jié)束命令中斷子程的最后應發(fā)中斷結(jié)束命令eoi。主程序主程序中斷子程中斷子程cli關(guān)中斷關(guān)中斷保存原保存原08h中斷向量中斷向量設置新設置新08h中斷向量中斷向量設置設置8259a的中斷屏蔽字的中斷屏蔽字,允許允許ir0中斷中斷 08h中斷子程中斷子程 執(zhí)行次數(shù)初值執(zhí)行次數(shù)初值0sti開中斷開中斷主程其它工作處理主程其它工作處理(可用雙重循環(huán)延時代替可用雙重循環(huán)延時代替)恢復原恢復原08h中斷向量中斷向量返回返回dos開始開始cx發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令eoi恢復現(xiàn)場恢復現(xiàn)場iret中斷返回中斷返回保存現(xiàn)場保存現(xiàn)場開始開始中斷子程被執(zhí)行一次中斷子程被
44、執(zhí)行一次cx cx+1 ny調(diào)調(diào)02hdos功能功能顯示字符顯示字符a cx 0 重新記數(shù)重新記數(shù)到到91次,即次,即5秒時間到秒時間到?code segment assume cs:codestart: cli ;關(guān)中斷關(guān)中斷mov al, 08h mov ah, 35hint 21h ;取系統(tǒng)取系統(tǒng)08h類型中斷向量類型中斷向量push es ;用堆棧保存用堆棧保存 push bxpush ds mov dx, offset display ;設置設置08h 類型中斷向量類型中斷向量 mov ax, seg displaymov ds, axmov al, 08hmov ah, 25hin
45、t 21hpop ds程序清單程序清單: :in al, 21h ;設置設置8259a中斷屏蔽字中斷屏蔽字, and al, 1111 1110b ;允許允許ir0中斷中斷 out 21h, almov cx, 0 ;置中斷子程計數(shù)器初值為置中斷子程計數(shù)器初值為0sti ;cpu開中斷開中斷mov si, 8000h ;用雙重循環(huán)延時,用雙重循環(huán)延時,w2: mov di, 8000h ;模擬模擬cpu對其他任務的處理對其他任務的處理 w1: dec di ;di,si的值可修改的值可修改, ,控制主程執(zhí)行時間控制主程執(zhí)行時間jnz w1dec sijnz w2pop dx ;恢復系統(tǒng)恢復系統(tǒng)
46、08h類型中斷向量類型中斷向量 pop dsmov al, 08hmov ah, 25hint 21hmov ah, 4ch ;返回返回dosint 21h display proc ;自編的自編的08h類型中斷子程類型中斷子程 push ax ; ;保護現(xiàn)場保護現(xiàn)場 inc cx ;執(zhí)行中斷子程一次,計數(shù)值加執(zhí)行中斷子程一次,計數(shù)值加1 cmp cx, 91 jnz exit ;到到91次了嗎?未到跳轉(zhuǎn)至次了嗎?未到跳轉(zhuǎn)至exit mov dl, a ;到,顯示到,顯示 a mov ah, 02 int 21h mov cx, 0 ;清計數(shù)值為清計數(shù)值為0,重新計時,重新計時exit: mo
47、v al, 20h ;發(fā)中斷結(jié)束命令發(fā)中斷結(jié)束命令eoi out 20h, al pop ax ; ;恢復現(xiàn)場恢復現(xiàn)場 iret ;中斷返回中斷返回display endpcode ends end start例例2 2 編寫編寫09h類型的鍵盤中斷子程,完成每操作鍵盤類型的鍵盤中斷子程,完成每操作鍵盤上任意鍵,屏幕上顯示上任意鍵,屏幕上顯示 hello!鍵鍵盤盤接接口口鍵鍵盤盤鍵盤鍵盤中斷申請中斷申請8259air1intaint8088intrinta60h端口端口61h端口端口8255a應答信號應答信號掃描碼掃描碼輔輔助助電電路路主主 板板ir018.2hz方方 波波2鍵盤中斷程序l說明:說明: 鍵盤接口通過鍵盤接口通過8259a的的ir1發(fā)中斷申請發(fā)中斷申請, 類型號類型號09h 鍵盤接口對按下鍵和釋放鍵都向鍵盤接口對按下鍵和釋放鍵都向82
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能安防產(chǎn)品銷售的合同管理與法律風險控制
- 二零二五版大型場館安保外包合同樣本3篇
- 2025版智能穿戴設備研發(fā)與市場銷售合同范本4篇
- 二零二五版農(nóng)產(chǎn)品加工居間合同交付與物權(quán)轉(zhuǎn)移質(zhì)量監(jiān)控3篇
- 2025年溫州體育行業(yè)勞動合同模板(含運動員保障及培訓協(xié)議)3篇
- 2025年水庫承包合同范本:水庫水資源調(diào)度管理合同3篇
- 2025年消防暖通系統(tǒng)安裝與運行維護服務合同3篇
- 二零二五版家居裝修項目環(huán)保驗收保密協(xié)議2篇
- 2025年消防設施設備檢測及維修保養(yǎng)合同2篇
- 2025年度臨時雇工合同范本與服務保障協(xié)議4篇
- 冬春季呼吸道傳染病防控
- 中介費合同范本(2025年)
- 《kdigo專家共識:補體系統(tǒng)在腎臟疾病的作用》解讀
- 生產(chǎn)調(diào)度員崗位面試題及答案(經(jīng)典版)
- 【物 理】2024-2025學年八年級上冊物理寒假作業(yè)人教版
- 交通運輸安全生產(chǎn)管理規(guī)范
- 電力行業(yè) 電力施工組織設計(施工方案)
- 《法制宣傳之盜竊罪》課件
- 通信工程單位勞動合同
- 查對制度 課件
- 2024-2030年中國豬肉市場銷售規(guī)模及競爭前景預測報告~
評論
0/150
提交評論