




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
有關I/O接口的基本概念
I/O端口與其編址方式
主機與外設之間的數據傳送方式
有關中斷的基本概念
8259A可編程中斷控制器
8086中斷系統
輸入/輸出及8259A應用舉例
8086CPU中斷響應流程本章內容
掌握微型計算機接口技術的基本概念
了解主機與外設之間的各種數據傳送方式
掌握中斷技術的基本概念
了解8086中斷系統及其對各種類型中斷的響應流程
了解8259A中涉及到的有關概念
掌握8259A的編程應用學習目的8.1I/O接口概述一、接口與接口技術微型計算機系統可通過系統總線與外設相連,進行系統的擴展與開發,而外設必須通過接口才能與CPU交換信息。CPU或系統總線I/O接口電路外設外設與CPU連接時存在如下問題:1.速度的匹配問題;2.時序的配合問題;3.信息類型與信號電平的匹配問題;
(數字量,模擬量;TTL電平、RS-232C電平等)因此,外設必項通過接口才能與CPU相連接。4.信息表示格式的一致性問題;
(二進制格式、ASCII碼、BCD碼,串行信息、并行信息)接口:CPU與外設之間的一種緩沖電路,是CPU與外設之間信息交換的中轉站。接口技術:應用硬件與軟件相結合的方法,研究CPU與外設之間如何實現高效、可靠的信息交換的一門技術。內存CPU智能儀器接口通信接口過程控制接口輸入接口輸出接口外存接口數字化存儲示
波器,數字化
萬用表終端
調制解調器
TTY電傳機A/D轉換器
開關量輸入
D/A轉換器
開關量輸出鍵盤數字化儀
光筆圖形輸入
聲音輸入
掃描儀點陣打印CRT顯示
激光打印液晶顯示
噴墨打印繪圖儀
X-Y記錄儀硬盤軟盤
光盤磁帶微機控制各類接口框圖二、CPU與外設之間的接口信息1.數據信息(DATA)(1)數字量由鍵盤、光電輸入機等輸入的信息。(通常以二進制表示的數或以ASCII碼表示的數或字符)CPU與外設交換的基本信息是數據,有三種類型:(2)模擬量非電量信息傳感器電量信號處理A/DCPU
(3)開關量兩個狀態的量(可以用0、1表示)例如電機的啟與停,開關的合與開等。2.狀態信息(STATUS)輸入時,輸入設備是否準備好?(READY)輸出時,輸出設備是否空閑?(BUSY)反映當前外設工作狀態的信息,例如:3.控制信息(CONTROL)例如控制I/O設備啟動或停止等。CPUI/O
設備I/O
接口123ABDBCBDATASTATUSCONTROLCPU與外設之間的接口信息
CPU通過接口輸出用以控制外設工作的信息。三、接口的功能接口用以解決CPU與外設連接時存在的矛盾,一般有以下功能:1.數據緩存:匹配不同的數據傳送速率。2.端口尋址:選擇某一外設,某一端口。3.命令譯碼:解釋CPU輸出的命令,產生相應的操作控制信號。4.同步控制:協調時序上的差異。8.2I/O端口的編址方式接口電路中能被CPU訪問的寄存器或某些特定器件稱為I/O端口。I/O端口分為數據端口、狀態端口和命令端口。其中端口1為數據端口,端口2為狀態端口,端口3為控制端口。CPUI/O
設備I/O
接口123ABDBCBDATASTATUSCONTROLCPU可用輸入/輸出指令或存儲器訪問指令對端口進行讀/寫,具體應用何種指令應視端口的編址方式而定。通常有兩種編址方式:統一編址方式和獨立編址方式。一、統一編址方式(存儲器對應I/O方式)端口地址與存儲器地址統一編址譯
碼
器CPUAB去存儲器去I/O端口
RDWR特點:1.I/O端口與存儲單元統一編址,占用了存儲器空間。2.用存儲器訪問指令來處理I/O,指令靈活,但指令執行時間較長。二、獨立編址方式(專用I/O方式)譯
碼
器8086CPU去存儲器去I/O端口
譯
碼
器A0~A15A0~A191.I/O端口與存儲器,都有自己的地址譯碼器,地址空間獨立,互不影響。2.用專用I/O指令訪問端口,程序易讀。特點:問題:I/O端口地址譯碼電路如何設計?I/O端口地址譯碼電路設計原則I/O端口地址譯碼一般由地址信號和控制信號的不同組合實現。其原則是:(2)低位地址線直接連接到I/O接口芯片,實現片內尋址。(1)高位地址與CPU的控制信號組合,經譯
碼電路產生I/O接口芯片的片選信號(),實現片間尋址。8.3主機與外設之間的數據傳送方式微機與外設間的數據傳送,實際上是CPU與I/O接口間的數據傳送。CPU與外設間的數據傳送方式一般有三種:程序控制方式、中斷方式和DMA方式。一、程序控制方式
程序控制方式是指CPU與外設間的數據傳送是在程序的控制下完成的一種數據傳送方式。這種方式又分為無條件傳送方式和條件傳送方式。無條件傳送一般適合于數據傳送不太頻繁的情況,如對開關、數碼顯示器等一些簡單外設的操作。所謂無條件,就是假設外設已處于就緒狀態,數據傳送時,程序就不必再去查詢外設的狀態,而直接執行I/O指令進行數據傳輸。1.無條件傳送方式輸出鎖存器輸出設備輸入設備輸入緩沖器端口譯碼器數據總線地址總線M/IOWRRD無條件傳送輸入輸出接口框圖輸入操作:INAL,PORTM/IO=0,RD=0,地址譯碼有效,輸入緩沖器被選中。無條件傳送輸入輸出接口框圖輸出鎖存器輸出設備輸入設備輸入緩沖器端口譯碼器數據總線地址總線M/IOWRRDM/IO=0,WR=0,地址譯碼有效,輸出鎖存器被選中。輸出操作:OUTPORT,AL2.條件傳送方式下圖為查詢式輸入接口電路框圖。(1)查詢式輸入查詢式輸入接口電路框圖地址總線M/IORD端口譯碼數據總線READY數據緩沖器三態緩沖器RSQD+5V鎖存器輸入設備數據選通80H81HD7工作原理:CPU讀狀態口,若READY=0,則循環檢測READY;若READY=1,讀數據口讀入數據,同時置READY=0。地址總線M/IORD端口譯碼數據總線READY數據緩沖器三態緩沖器RSQD+5V鎖存器輸入設備數據選通80H81HD7NYREADY=1?輸入狀態信息輸入數據查詢式輸入程序流程圖WAIT:INAL,81H TESTAL,80H JZWAIT INAL,80H下圖為查詢式輸出接口電路框圖。(2)查詢式輸出查詢式輸出接口電路框圖地址總線端口譯碼BSUY狀態寄存器RDRSDQ輸出設備+5V應答
M/IOWR數據鎖存器數據數據總線選通信號90H91HD0工作原理:CPU讀狀態口,檢測BUSY信號,若BUSY=1,則等待;若BUSY=0,則通過數據口輸出數據。地址總線端口譯碼狀態寄存器RDRSDQ輸出設備+5V應答
M/IOWR數據鎖存器數據數據總線選通信號90H91HD0BUSYYNBUSY=1?輸入狀態信息輸出數據查詢式輸出程序流程圖WAIT:INAL,91H TESTAL,01H JNZWAIT MOVAL,DATA OUT90H,AL二、中斷傳送方式為了進一步提高CPU的效率和使系統有實時性能,可以采用中斷傳送方式。在中斷傳送方式下,當外設準備好時,主動向CPU發出中斷請求,請求CPU進行數據的輸入輸出。中斷方式輸入接口電路框圖數據STB輸入設備+5V數據鎖存器中斷請求觸發器中斷允許觸發器DRQ中斷類型號三態緩沖器譯碼器三態緩沖器D7~D0RDA15~A0M/IOGINTAINTR工作原理:若輸入設備準備好數據,且中斷允許,則通過中斷請求觸發器發INTR。如果IF=1,則CPU在當前指令執行完后,進入中斷響應周期,發INTA,待到中斷類型號,進入中斷服務實現數據傳送。數據STB輸入設備+5V數據鎖存器中斷請求觸發器中斷允許觸發器DRQ中斷類型號三態緩沖器譯碼器三態緩沖器D7~D0RDA15~A0M/IOGINTAINTR中斷方式的數據輸入
采用中斷傳送方式時,外設處于主動地位,無需CPU花費大量時間去查詢外設的工作狀態。與程序方式相比,大大提高了CPU的效率。外設請求中斷INTR有效主程序中斷服務程序輸入數據外設準備數據三、DMA方式DMA(DirectMemoryAccess):是存儲器與外設或存儲器之間進行大量數據傳送的方法,是在DMA控制器(DMAC)的控制下進行的。CPU總線存儲器外設程序控制的數據輸入/輸出DMADMA與程序控制數據傳送路徑比較1.DMA與程序控制數據傳送路徑的比較2.DMA傳送控制原理圖DMA傳送控制原理圖CPUDMAC存儲器外設HLDAHOLDDREQDACKDBIOR/IOWABMEMW/MEMR3.DMA傳送的一般操作過程外設準備好進行DMA操作,外設接口向DMAC發DREQDMAC向CPU發HOLDCPU現行總線周期結束,向DMAC發HLDA,AB,CB,DB呈高阻態DMAC接管總線向外設接口發DACKDMA傳送結束?DMAC撤消HOLD信號,CPU重新控制總線NYDMAC向AB發地址信息,向外設,存儲器發IOR,MEMW或IOW,MEMR,且自動修改地址指針.4.DMA控制器的功能①
能向CPU發出DMA請求信號。②
CPU響應后,接管對總線的控制,進入DMA方式。③發出讀、寫控制信號。④決定數據傳送的地址和數據傳送的長度。⑤判斷DMA操作的結束,撤消總線請求信號,使CPU恢復正常工作。5.DMA方式與中斷方式的比較中斷方式特點DMA方式控制數據傳送CPU狀態響應適用性由DMA控制器控制I/O
存儲器不破壞CPU內部寄存器狀態請求-響應,級別高于中斷適用于高速I/O設備和成組數據交換由CPU程序控制I/OCPU存儲器請求-響應,級別比DMA方式低適用于慢速I/O設備,實時處理破壞CPU內部寄存器狀態8.4中斷的基本概念一、什么叫中斷?中斷申請主程序中斷服務程序返回中斷示意圖所謂中斷,是指這樣一個過程:當CPU正在執行程序過程中,由于某一突然事件的發生,暫時中止正在執行的程序,轉去處理突然發生的事件(執行中斷服務程序),處理完畢,再返回原來被中止的程序繼續運行。日常生活中類似“中斷”的例子:例1:門鈴響時,放下手中正在做的事情,跑去開門,招待客人;客人走后,接著做原來的事情。例2:教師講課過程中,同學遇有疑問,不同理解之處,隨時向老師提問。問題:請同學們列舉類似“中斷”的例子。二、應用中斷技術的優點1.實現CPU與外設的并行工作,提高了CPU的效率。NYREADY?輸入狀態信息輸入數據查詢方式的數據輸入中斷方式的數據輸入外設請求中斷INTR有效主程序中斷服務程序輸入數據外設準備數據二、應用中斷技術的優點1.實現CPU與外設的并行工作,提高了CPU的效率。2.實現實時處理。3.實現故障處理。三、中斷源引起中斷的原因,產生中斷請求的來源。通常有以下幾種:1.一般的I/O設備,如鍵盤、打印機等。2.實時時鐘。3.故障源。4.為了調試程序而設置的中斷。
(例如設置斷點,單步運行等)四、中斷系統的功能計算機系統中,用于實現中斷功能的硬件和軟件的集合,稱為中斷系統。中斷系統應解決如下問題:1.中斷請求信號的產生(中斷源如何申請中斷?)CPU如何響應?(如何知道有中斷請求?是否有求必應?響應后的處理過程?)3.中斷優先權問題4.中斷的具體服務5.中斷服務完畢,如何返回原程序?五、實現中斷優先權的方法
判斷和確定中斷源的中斷優先權,可以采用軟件和硬件兩種方法。當系統中有多個中斷源存在時,若有幾個中斷源同時提出申請,CPU先響應誰?當CPU正響應某一中斷過程中,又有另外的中斷源提出中斷請求,CPU是否響應?為此提出了中斷優先權的概念。1.用軟件確定中斷優先權優先權管理電路三態緩沖器譯碼鎖存器INTRD7~D0A15~A0中斷源A中斷源B中斷源C………M/IO1.用軟件確定中斷優先權軟件查詢流程圖優先權管理電路三態緩沖器譯碼鎖存器INTRD7~D0A15~A0中斷源A中斷源B中斷源C………IOM在中斷服務中讀入請求狀態A申請?B申請?中斷返回為中斷源A服務的程序段YC申請?為中斷源B服務的程序段為中斷源C服務的程序段……YY
采用軟件查詢方式的特點:
詢問的次序,即為優先權的次序。
硬件簡單。
由查詢轉至相應的服務程序的時間長,尤其在中斷源較多的情況。2.硬件方式(1)若CPU未處理任何中斷,則“優先權失
效”信號為高,當任一中斷源請求中斷時,通過門2發出INTR信號。12
8-3優先權編碼器優先權寄存器A<B比較器A2A1A0B2
B1
B0比較失效
中斷請求0
中斷請求1
中斷請求2…………7D7~D0…INTR…
編碼器和比較器的優先權排隊電路(2)若CPU正在進行中斷處理,當某一中斷源請求中斷時,能否向CPU發出INTR信號,受比較器的控制。2.硬件方式12
8-3優先權編碼器優先權寄存器A<B比較器A2A1A0B2
B1
B0比較失效
中斷請求0
中斷請求1
中斷請求2…………7D7~D0…INTR…
編碼器和比較器的優先權排隊電路×××12.硬件方式12
8-3優先權編碼器優先權寄存器A<B比較器A2A1A0B2
B1
B0比較失效
中斷請求0
中斷請求1
中斷請求2…………7D7~D0…INTR…
編碼器和比較器的優先權排隊電路思考題:與軟件查詢方式比較,采用硬件方式有何特點?六、8086CPU響應外部中斷的過程CPU在每一個指令周期的最后一個總線周期的最后一個T狀態采樣INTR或NMI信號線。
下面以INTR
為例,說明8086CPU響應中斷的過程。執行一條指令最后一個總線周期的最后一個T狀態?有INTR?中斷開放?(FR中的IF=1?)關中斷(置FR中IF=0)斷號地址(CS.IP)入棧FR入棧識別中斷源,轉入相應中斷服務程序保護現場中斷服務處理恢復現場開中斷STI(置FR中IF=1)中斷返回IRET取下一條指令NoNoNoYesYesYes討論:1.為什么要在中斷服務程序中執行STI指令?2.STI指令在中斷服務程序中的不同位置時,對CPU處理中斷有何影響?七、小結1.實現斷點地址的保護與恢復。2.實現現狀信息的保護。3.實現中斷優先權的排隊。4.實現中斷的嵌套。中斷服務2
(高優先級)主程序中斷服務1中斷過程由計算機的中斷系統,配合用戶設計的中斷服務程序來實現。中斷應具備以下功能:INTn指令中斷邏輯非屏蔽中斷請求中斷控制系統(8259A)INT3指令INTO指令單步中斷除數為0中斷…
可屏蔽中斷請求NMIINTR硬件中斷軟件中斷8.58086的中斷系統一、中斷類型8086能處理256種中斷,分為兩大類:外部中斷和內部中斷。其中斷分類如右圖8086的中斷分類1.外部中斷(硬件中斷)(1)非屏蔽中斷NMI(類型號為2)
有效,不受FR中IF的影響,常用于處理系統的重大故障。(2)可屏蔽的中斷INTR高有效,CPU是否響應,取決于FR中IF的狀態。常用于各種外設的中斷。2.內部中斷(軟件中斷)通常由三種情況引起:(1)INTn指令中斷(n為中斷類型號)(2)處理CPU某些錯誤的中斷
除法錯中斷(中斷類型號為0)
溢出中斷(INTO)(中斷類型號為4)(3)為調試程序設置的中斷a單步中斷當FR中TF=1時,每執行一條指令,CPU產生類型為1的單步中斷。b斷點中斷設置斷點實際上是把指令“INT3”插入到程序中,CPU每執行到斷點處的“INT3”指令,便產生類型為3的中斷。二、中斷優先級8086系統中,中斷優先級的次序為:高低內部中斷(除法錯、INTO、INTn)NMIINTR單步中斷三、中斷向量表CPU響應中斷后,如何得到中斷服務程序的入口地址
(中斷向量),轉入到中斷服務程序?8086CPU通過建立中斷向量表的方法解決。
中斷向量(中斷服務程序入口地址)在表中的地址=中斷類型號×4中斷向量表溢出中斷0000:0014H0000:0013H0000:0010H0000:000FH0000:000CH0000:000BH0000:0008H0000:0007H0000:0004H0000:0003H0000:0000H類型5類型255供用戶定義的中斷
(共224個)0000:007FH0000:007EH0000:03FFHCSIPCSIPCSIPCSIPCSIPCSIPCSIP專用的中斷
(共5個)保留的中斷
(共27個)類型32
類型31類型0類型4類型3類型2類型1除數為0中斷非屏蔽中斷單步中斷斷點中斷四、中斷向量的裝入BIOS負責0~1FH共32個中斷向量的裝入。用戶若想裝入自己的中斷向量到向量表中的,可用以下方法:1.用STOS指令填空中斷向量表假設類型號為60H的中斷向量為
CLI
CLD
MOV AX,0
MOV ES,AX
MOV DI,460H ;DI指向表中對應位置
MOV AX,OFFSET_INTR ;取偏移地址
STOSW ;AL[DI],AH[DI+1] ;DI+2DI
MOV AX,SEG_INTR ;取段基址
STOSW
STI
SEG_INTR:OFFSET_INTR。2.利用MOV指令寫入中斷向量
CLI
MOV AX,00H
MOV ES,AX
MOV BX,460H ;BX指向表中對應位置
MOV AX,OFFSET_INTR
MOV ES:[BX],AX ;裝入編程地址
MOV AX,SEG_INTR
MOV ES:[BX+2],AX ;裝入段基址方法1,2由用戶直接操作中斷向量表,因此,要熟悉中斷向量表的具體組織。3.利用DOS功能調用“INT21H”的AH=25H裝入中斷向量MOV AL,60H ;類型號
AL
MOV AH,25H ;功能號25HAH
MOV DX,SEG_INTR
MOV DS,DX
MOV DX,OFFSET_INTR ;DS:DX=中斷向量
INT 21H方法3由DOS功能調用具體實現,中斷向量表對用戶是透明的。1.取類型號;2.計算向量地址;3.根據向量地址查表,將偏移地址送IP,段基址送CS;4.轉入中斷服務程序,進行中斷處理。五、8086CPU轉入中斷服務程序的過程8086轉入中斷處理程序的過程1800HF000H00H18H00HF0HPUSH
IRET……………例:執行INT
21H向量地址=
21H
4=84HCPUIPCSMEM(4)(1)(2)(3)0:0000H0:0084H0:0087H0:03FFHF000:1800H中斷向量表2.計算向量地址;向量地址=21H
4=84H3.根據向量地址查表,將偏移地址送IP,段基址送CS;4.轉入中斷服務程序,進行中斷處理。1.取類型號;21H8.68259A可編程中斷控制器
在微機系統中,可以使用8259A擴展外部中斷,Intel8259A可編程中斷控制器,主要有以下功能:3.在中斷響應周期,8259A可提供相應的中斷類型號。1.1片8259A能管理8級中斷,通過級聯用9片8259A可以構成64級主從式中斷系統。2.每一級中斷可以屏蔽或允許。4.可編程使8259A工作在多種不同的方式。一、8259A的內部結構與引腳信號控制邏輯中斷服務寄存器ISR優先權電路PR中斷請求寄存器IRR中斷屏蔽寄存器IMR讀寫控制邏輯級聯緩沖比較器數據總線緩沖器D0~D7A0CAS0CAS1CAS2INTIR0IR1IR7…8259A內部邏輯框圖1.數據總線緩沖器8位、雙向、三態,是8259A與CPU之間的數據接口。D0~D7直接與CPU數據總線的低8位連結。2.讀/寫控制邏輯A0:常常與地址信號線A0相連。8259A的兩
個端口地址CPU通常利用:OUT指令,IN指令,3.中斷請求寄存器IRR8位,若IRi
有效(“1”,),對應位置“1”,直到IRi
得到響應。因此,IRR記錄外中斷源IRi的請求信息。4.中斷服務寄存器ISR8位,當IRi得到響應時,對應位置“1”。ISR記錄正在處理的IRi,當中斷嵌套時,可能多位置“1”。因此,ISR記錄CPU對IRi的響應情況。5.中斷屏蔽寄存器IMR8位,某位置“1”,對應IRi禁止產生中斷。因此,IMR控制是否對IRi進行屏蔽操作。6.優先權電路實現優先權的判斷與處理,采用編碼器和比較器電路,如下圖所示。8259A中的中斷優先權電路7.控制邏輯(1)由IRR和PR的情況,向8259A其它部件發出控制信息。(2)向CPU發出INT信號,接收CPU信號。8.級聯緩沖/比較器可以實現8259A的級聯,擴展外中斷。(1)CAS2、CAS1、CAS0
引腳①主8259A:CAS2~CAS0
輸出,輸出被
響應的從片的標志碼。問題:8259A級聯時,如何確定主8259A的IRi接有從片,從片接入主8259A的IRi?8259A從片A8259A主片8259A從片BINTCAS0CAS1CAS2IR0INTCAS0CAS1CAS2IR0INTCAS0CAS1CAS2IR7IR6IR3IR0…SP/ENSP/ENIR7CSA0INTACSA0INTACSA0INTA…IR7SP/EN…IR7ABCBDBGNDGNDVcc
②從8259A:CAS2~CAS0
輸入,接收主片發出的標志碼,與自己的標志碼比較。若相等,下一個INTA信號到來時,將中斷類型號送至數據總線。從片A標去碼:011,從片B標志碼:110(2)SP/EN引腳①當8259A工作于非緩沖方式(直接與CPU的DB相連)為輸入,是主從芯片定義引腳。②
當8259A工作于緩沖方式(通過總線緩沖器與CPU的DB相連)EN為輸出,用于CPU與8259A傳送數據信息時啟動數據總線驅動器。DBDBCPU數據總線驅動器8259A此時,主從芯片的定義由ICW4中的M/S實現。8259A的引腳圖二、8259A的中斷處理過程下面以8259A單片使用為例,說明其中斷處理過程。1、當一條或多條中斷請求線IR0~IR7變高時,設置相應的IRR位。2、PR對中斷優先權和中斷屏蔽寄存器的狀態進行判斷之后,如某中斷優先權最高且為允許中斷狀態,就向CPU發高電平信號INT,請求中斷服務。3、CPU響應中斷時,送回應答信號INTA。4、8259A接到來自CPU的第一個信號INTA時,當前中斷服務寄存器(ISR)中相應位置位,并把IRR中相應位復位。同時,8259A準備向數據總線發送中斷類型號。5、在8259A發送中斷類型號的后一個INTA脈沖期間,如果是在AEOI(自動結束中斷)方式下,在這個INTA脈沖結束時復位ISR的相應位。在非自動中斷結束方式下,ISR相應位要由中斷服務程序結束時發出的EOI命令來復位。三、8259A的工作方式8259A有多種工作方式,這些工作方式可以通過初始化命令字(ICW1
ICW4)和操作命令字(OCW1
OCW4)來設置。1.引入中斷請求的方式
邊沿觸發方式。以上跳沿向8259A請求中斷,上跳沿后可一直維持高電平,不會再產生中斷。
電平觸發方式。以高電平申請中斷,但在響應中斷后必須及時清除高電平,以免引起第二次誤中斷。
中斷查詢方式。外設通過8259A申請中斷,但8259A卻不使用INT信號向CPU申請中斷,CPU用軟件查詢確定中斷源,并為其服務。2.連接系統總線的方式
在大系統中,要求數據總線有總線緩沖器。8259A與這種帶總線緩沖器的系統總線連接的方式稱緩沖器方式。
在小系統中,則8259A不需要總線緩沖器而是將其直接接至數據總線。8259A與這種不需總線緩沖器而直接連到系統總線的方式稱非緩沖器方式。3.屏蔽中斷源的方式
普通屏蔽方式。利用操作命令字OCW1,使屏蔽寄存器IMR中的一位或幾位置1來屏蔽一個或幾個中斷源的中斷請求。若要開放某一個中斷源的中斷請求,則將IMR中相應的位置0。
特殊屏蔽方式。在某些場合,在執行某一個中斷服務程序時,要求允許另一個優先級比它低的中斷請求被響應,此時可采用特殊屏蔽方式。它可通過OCW3的D6D5=11來設定。4.優先級排隊的方式
全嵌套方式。在此種方式下中斷優先級按0
7順序進行排隊,只允許中斷級別高的中斷源去中斷中斷級別低的中斷服務程序。
特殊全嵌套方式。它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,當執行某一級中斷服務程序時,可響應同級的中斷請求,從而實現對同級中斷請求的特殊嵌套(8259A級聯使用時,某從片的8個中斷源對主片來說,可以認為是同級的)。特殊全嵌套方式用于多片級聯。
優先級自動循環方式。在這種方式下,優先級順序不是固定不變的,一個設備得到中斷服務后,其優先級自動降為最低。其初始的優先級順序規定為IR0,IR1,…,IR7。該方式用在系統中多個中斷源優先級相等的場合。
優先級特殊循環方式。這種方式與優先級自動循環方式唯一的區別是,其初始的優先級順序不是固定IR0為最高,然后開始循環,而是由程序指定IR0
IR7中任意一個為最高優先級,然后再按順序自動循環,決定優先級。5.結束中斷的處理方式
自動中斷結束方式。在中斷服務程序中,中斷返回之前,不需發中斷結束命令就會自動清除該中斷源所對應的ISR位(實際上在CPU發第二個信號時,8259即自動消除ISR中的對應位)。這種方式用在多個中斷不會嵌套的系統中。
非自動中斷結束方式。在中斷服務程序返回之前,必須發中斷結束命令才能使ISR中的當前服務位清除。四、8259A的初始化命令字8259A初始化編程時,有四個初始化命令字ICW(InitialiationCommandWord),即ICW1
ICW4
;8259A工作期間,有三個操作命令字OCW(OperationCommandWord),即OCW1~OCW3。8259A只有兩個端口地址A0=0偶地址端口1奇地址端口因此,對8259A讀/寫操作時,要注意控制字寫入的端口地址寫入的順序有關的標志位1.ICW1(IRi觸發方式,是否單片使用,是否寫入ICW4)0
1LTIM
SNGLIC4A0D7D6D5D4D3D2D1D0標志位①LTIM:規定IRi的觸發方式1 高電平觸發0 觸發=②SNGL:是否單片使用1 單片使用0 級聯使用=③IC4:是否寫入ICW41 后面寫入ICW40 不寫入ICW4=例:某8086微機系統中,使用單片8259A,中斷請求信號為上升沿觸發,需要設置ICW4,端口地址為20H,21H,則其初始化命令字ICW1應為:00010011=13H,設置ICW1的指令為:MOV
AL,13HOUT
20H,AL2.ICW2(中斷類型號的高5位)(中斷類型號的低3位由8259A自動編碼產生)1T7T6T5T4T3
A0D7D6D5D4D3D2D1D0IRi對應中斷類型號的高5位T7T6T5T4T3T2T1T0由ICW2規定0
0
00
0
10
1
0
1
1
1IR0IR1IR2
IR7例:某PC機中8個可屏蔽中斷(IR0
IR7)的類型號為08H
0FH,A0=1,端口地址為21H,則ICW2為:08H,設置ICW2的指令為:MOV
AL,08HOUT
21H,AL3.ICW3(級聯時,主從芯片的級聯引腳)若ICW1
中SNGL=1 不寫入ICW30 寫入ICW3(1)寫給主片的ICW3Si=1,表示主片IRi上接有從片。1S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0(2)寫給從片的ICW3ID2ID1ID0該從片00
0接入主片的IR000
1接入主片的IR1
11
1接入主片的IR7100000ID2ID1ID0A0D7D6D5D4D3D2D1D0從片的標志碼例:某8086微機系統中,主片8259A的IR2,IR6引腳上分別接有從片8259A,則主、從片的ICW3初始化命令字設置如下:主片初始化命令字:(口地址設為20H,21H)MOV
AL,44H;44H為主片的ICW3,表示其IR6,IR2上接有從片OUT
21H,AL;將ICW3寫入奇地址端口從片1的初始化命令:(口地址為30H,31H)MOV
AL,02HOUT
31H,AL從片2的初始化命令:(口地址為40H,41H)MOV
AL,06HOUT
41H,AL4.ICW4100SFNMBUFM/SAEOI1A0D7D6D5D4D3D2D1D00標志位用于8088/8086系統0正常的完全嵌套方式1特殊的完全嵌套方式(1)SFNM:規定8259A中斷的嵌套方式(單片使用時,兩種方式一樣。)SFNM=①正常的完全嵌套方式高級的中斷②特殊的完全嵌套方式同級的或高級的中斷注意:級聯使用時,某一從片的IRi對主片來說是同級的(同級中斷)。此處,要理解同級中斷的概念!(toCPU)INTAINT從8259AIR7IR6…IR0IR7IR6…IR0INTAINTCAS0CAS1CAS2CAS0CAS1CAS2主8259AINTA(fromCPU)INTR……例如:若主、從8259A工作于固定優先權方式,從片的優先級為IR0IR1
IR7。但對主片來說,從片的IR0
~IR7是同級的。1 緩沖方式0 非緩沖方式(2)BUF=(3)M/S①當8259A工作于緩沖方式時(BUF=1),M/S用于定義主、從芯片。1 主8259A0 從8259AM/S=②當8259A工作于非緩沖方式時(BUF=0),SP引腳為輸入,用于定義主從芯片,此時M/S不起作用。(4)AEOI:規定中斷的結束方式(如何使ISR中對應位清0)①AEOI=1自動中斷結束方式
當CPU發出第二個
后,ISR中的相應位復位,此時,不能實現中斷嵌套。②AEOI=0非自動中斷結束方式
由程序發出EOI命令(由8259A的OCW實現),使ISR中相應位復位。五、8259A的初始化編程邏輯用ICW1設置:是否級聯?請求信號的觸發方式后面是否用ICW4用ICW2設中斷類型碼是否為級聯方式?本片為主片嗎?設ICW3各位對應IR0~IR7的連接狀況設ICW3
高5位為0;低3位為標識碼用ICW4嗎?用ICW4設:為特殊全嵌套方式?為緩沖方式?為自動EOI方式?為8086/8088系統?ENDNYNNY8259A的初始化流程注意:級聯使用時,主、從8259A都要作初始化操作。例:PC/XT系統中8259A的初始化編程20H、21H為8259A的端口地址,在BIOS中,8259A的初始化程序段如下:MOV AL,13H ;ICW1=0001,0011B,邊沿觸發,單片使用,
;要ICW4.
OUT 20H,AL
MOV AL,08H ;ICW2=08H,IR0~IR7對應的中斷類型號 ;為08H~0FH
OUT 21H,AL
MOV AL,09H ;ICW4=09H,正常的嵌套方式,
;非自動中斷結束方式OUT21H,AL六、8259A的操作命令字
對8259A進行初始化編程后,8259A作好了接收中斷請求輸入的準備,在8259A工作期間可由操作命令字OCW1~OCW3
規定其各種工作方式。1.OCW1(中斷屏蔽操作命令字)設置或清除IMR的各個位。1A0D7D0M7M0……………………Mi=1
表示IRi被屏蔽例:設OCW1=06H,則表示IR1,IR2兩個引腳上的中斷申請被屏蔽,其他的中斷申請(IR0,IR3
IR7)則得到允許。8259A編程指令為:MOVAL,00000110B ;OCW1屏蔽字
OUT21H,AL ;屏蔽字寫入奇地址口;的OCW1寄存器2.OCW2(優先權循環方式和中斷結束方式操作命令字)0RSLEOI00L2L1L0A0D7D6D5D4D3D2D1D0標志位有兩個作用:(1)8259A工作于非自動中斷結束方式時,如何復位ISR中的對應位?有兩種方法:SFNM①一般方法:令SL=0,EOI=1將OCW2寫入8259A后,將剛剛被服務的IRi對應位復位。②特殊方法:令SL=1,EOI=1寫入OCW2后,使L2L1L0指定的位復位。L2L1L00
0
00
0
1
1
1
1D0D1
D7ISR中的DiIR0IR1
IR7對應的IRi(2)定義8259A的優先權工作方法①R=0固定優先權方式IR0
IR1…IR7②R=1,SL=0優先權自動循環方式例:IR7IR6IR5IR4IR3IR2IR1IR0初始優先權為:76543210若ISR=01010000則當IR4
服務完畢后,優先權為:21076543③R=1,SL=1優先權特殊循環方式此時,L2L1L0
規定循環開始時的最低優先權例:1100101IR5優先權最低此時,優先權為:IR7IR6IR5IR4IR3IR2IR1IR010765432例:若使8086系統中8259A的優先級順序為IR3,IR4,IR5,IR6IR7,IR0IR1,IR2,試編寫一段程序實現該優先順序,設8259A的偶地址為20H。根據題意要求,為實現上述優先級順序,應先確定OCW2,然后將它寫入8259A的偶地址端口:MOV
AL,0C2H;OCW2OUT
20H,AL;把OCW2寫入8259A的偶地址端口。OCW2:RSLEOI00L2L1L011000010例:試編一段程序,用以清除8086系統中8259A的ISR第6位(ISR6),8259A的偶地址為20H。為實現題意要求,應先確定OCW2的內容,然后將OCW2寫入8259A的偶地址端口。OCW2:MOV
AL,66H;OCW2OUT
20H,AL;把OCW2寫入8259A的偶地址端口。RSLEOI00L2L1L0011001103.OCW300ESMMSMM01PRRRISA0D7D0標志位(特殊屏蔽方式和中斷查詢方式操作命令字)有三個作用:(1)設置和撤消特殊屏蔽工作方式①正常的屏蔽方式由OCW1
設置IMR實現②特殊的屏蔽工作方式因此,可以通過設置或撤消特殊的屏蔽工作方式,動態改變優先權的結構。正常的屏蔽方式設置特殊的屏蔽方式只要IMR中的對應位沒有置“1”,8259A就可以接受其中斷請求。撤消特殊的屏蔽方式正常的屏蔽方式==1SMM1ESMM令==1SMM0ESMM令(2)為CPU讀取8259A內部寄存器提供選擇IN AL,INTA1 ;IMR
AL8259A中的IMR由OCW1設置,對應奇地址端口,可以寫入,也可以讀出。②8259A中IRR、ISR只能讀出,不能寫入,都對應偶地址端口。此時,可先寫入OCW3,OCW3中的RR、RIS規定從偶地址端口讀出的是IRR或ISR的值。MOV AL,OCW3OUT INTA0,ALIN AL,INTA0;若OCW3中RRRIS則讀出的是11 ISR10 IRR例:試編寫一段程序,以實現將8086系統中8259A的IRR,ISR,IMR三寄存器的內容讀出并送入存儲器從0080H開始的數組中,設8259A的偶地址為20H,奇地址為21H。MOV
AL,0AH ;OCW3=0AH,指出要讀IRROUT
20H,AL ;OCW3寫入8259A的偶地址端口IN
AL,20H ;讀回IRR的內容MOV
[080H],AL;將IRR的內容存入從080H開始的單元中MOV
AL,0BH;OCW3=0BH,指出要讀ISROUT
20H,AL IN AL,20H ;讀回ISR的內容MOV
[081H],AL;將ISR的內容存入內容IN
AL,21H ;讀回IMRMOV
[082H],AL ;IMR內容存入內存(3)使8259A和CPU的通信方式由中斷方式查詢方式
某些情況下,當IF設置為0時,用查詢方式為中斷源服務。
令OCW3
中的P=1,寫入OCW3后,若之前有IRi有效,8259A把CPU的下一個讀信號看作信號,使ISR中最高優先權的某一位置位,同時送以下數據至DB。MOV AL,OCW3 ;其中P=1
OUT INTA0,AL ;發OCW3
IN AL,INTA0 ;讀偶地址端口此時,AL中的數據I
W2W1W0D7D0當前最高優先權IRi對應的編碼0
0
00
0
1
1
1
1IR0IR1
IR7表示有中斷請求0沒有中斷請求例:假如8259A的IR2輸入引腳上有中斷申請,但此時8086CPU內部的中斷允許標志IF=0,8086CPU應如何知道其8259A的IR2輸入引腳上有中斷請求?為使8086CPU知道其8259AIR2引腳上有中斷申請,可用中斷查詢方式來解決(即CPU先發一個查詢命令OCW3,然后接收8259A的查詢字),其程序如下:OCW3為:MOV
AL,0CH;P=1查命令OCW3
OUT
20H,AL;輸出查詢命令,即OCW3寫入8259A的偶地址端口IN
AL,20H;讀8259A的查詢字七、8259A對ICW、OCW的識別8259A只占兩個端口,但ICW有4個,OCW有3個。1.A0=0(偶地址端口)寫入的有:ICW1, OCW2, OCW3(D4=1)用標志位識別2.A0=1(奇地址端口)寫入的有:ICW2
ICW3ICW4
OCW1按寫入順序識別注意:初始化過程中可能沒有ICW3或ICW4,應根據具體情況確定。8.7輸入輸出及8259A應用舉例一、輸入輸出應用舉例(流水燈及其控制)1.電路原理及說明74LS273鎖存器的輸出控制LED發光管的亮,暗(1:亮,0:暗),由CPU通過74LS244緩沖器構成的輸入口讀取S1~S4的開關狀態,進行左,右移位以確定流水燈的方向和顯示模式。····D7D6D5D4D3D2D1D0D8D7D6D5D4D3D2D1O8O7O6O5O4O3O2O1CLKCLR+5V1Y11Y21Y31Y41A11A21A31A42A12A22A32A42Y12Y22Y32Y41G2G74LS273IORIOWY5+5VS1S4S2S3Y5=350H-353H74LS2442.源程序及其說明DATA SEGMENT DIS0 DB‘PRESSANY2OFTHEKEYSTOQUIT’,24H DIS1 DB‘S1:LEFT-SHIFT,24H DIS2 DB ‘S2;RIGHT-SHIFT’,24H DIS3 DB‘S3;1H-7L’,24H DIS4 DB‘S4;7H-1L’,24H
;以上為提示信息
FLAG1 DB0 ;左移
FLAG2 DB0 ;1亮7暗DATA ENDSCODE SEGMENTMAIN PROGFAR ASSUMECS:CODE,DS:DATASTART:MOV AL,3;屏幕初始化,設置視屏顯示模式為03h, ;80×25行16色
MOVAH,0 INT 10H;BIOS視頻服務中斷
MOV AX,DATA MOV DS,AX MOV AH,2 ;在CRT上顯示提示說明
MOV BH,0;頁號
MOV DX,0614H;DH=行號,DL=列號置光標位置
INT 10H MOV DX,OFFSETDIS0;要顯示字符串:DIS0—DIS4的內容
MOV AH,3 ;DOS功能調用號
INT 21H ; DOS功能調用
;重置光標位置,顯示提示信息“S1:LEFT—SHIFT” MOV AH,2 MOV BH,0 MOV DX,0914H INT 10H MOV DX,OFFSETDIS1 MOV AH,9 INT 21H
;重置光標位置,顯示提示信息“S2:RIGHT—SHIFT” MOV AH,2 MOV BH,0 MOV DX,0A14H INT 10H MOV DX,OFFSETDIS2 MOV AH,9 INT 21H
;重置光標位置,顯示提示信息“S3:1H—7L” MOV AH,2 MOV BH,0 MOV DX,0B14H INT 10H MOV DX,OFFSETDIS3 MOV AH,9 INT 21H
;重置光標位置,顯示提示信息“S4:1H—7L” MOV AH,2 MOV BH,0 MOV DX,0C14H INT 10H MOV DX,OFFSETDIS4 MOV AH,9 INT 21H MOV AH,01H ;設輸出控制字01H(1亮7暗)AA: MOV DX,0350H MOV AL,AH
OUT DX,AL MOV AL,FLAG1 ;取移位標志,FLAG=0,左移; ;FLAG=FFH,右移
CMP AL,0 JNE RR1
ROL AH,1 JMP RR ;轉讀按鍵程序RR1: ROR AH,1RR: MOV DX,0350H ;讀按鍵
IN AL,DX
AND AL,0F0H
CMP AL,0F0H JNE KP ;有鍵按下,轉KP鍵處理BBZZ:MOV CX,5 ;延時控制,延時時間過短,可置 ;CX=1000,0等BB: MOV BX,0BB1: DEC BX JNZ BB1 LOOP BB JMP AA ;轉流水燈控制輸出KP: CMP AL,70H
; 鍵處理
JNE KP1 MOV FLAG1,0 ; 設置左移標志FLAG1=0 JMP BBZZ ;轉延時控制輸出KP1: CMP AL,0B0H JNE KP2 MOV FLAG1,0FFH ;S2按下,設置右移標志 ;FLAG1=FFH JMP BBZZ ;轉延時控制輸出KP2: CMP AL,0D0H JNE KP3 MOV AL,FLAG2 ;S3按下,顯示反轉判斷, ;FLAG2=0,1亮7暗; ;FLAG2=FFH,7亮1暗
CMP AL,0FFH JNE KP20
XOR AH,0FFH
; 顯示反轉
MOV FLAG2,0KP20; JMP BBZZ ;轉延時控制輸出KP3: CMP AL,0E0H JNE BACK ;同時按下兩個以上鍵,程序終止退出
MOV AL,FLAG2 ;顯示反轉判別
CMP AL,0 JNE KP30
XOR AH,0FFH
; 顯示反轉
MOV FLAG2,0FFHKP30; JMP BBZZ BACK:MOV AL,0
;關燈,程序終止退出
MOV DX,0350H
OUT DX,AL MOV AX,4C00H INT 21HMAIN ENDP CODE ENDS END START二、8259A應用舉例1.電路原理及說明采用微機主板上的8259A中斷控制器,中斷請求信息接至IRQ2,可選擇8253的OUT2和OUT1、ADC0809的EOC或外部中斷請求信號INT1為中斷源。本例中選擇INT1為中斷源,在主程序中顯示流水燈(1亮7暗),按下S1,流水燈反轉(1暗7亮)并右移。D2D0D3D11Y11Y21Y31Y41A11A21A31A42A12A22A32A42Y12Y22Y32Y474LS2441G2GIORY4+5VY4=358H-353HIRQ2ADC8889EOC8253OUT18253OUT2INT1S12.源程序及其說明TCC1 EQU 0FFFFHTCC2 EQU 0FFFFHDATA SEGMENT DA DB‘[S1]:INTERRUPT’,24H;提示信息; DDA DB‘[S2-S4]:QUIT,24H’;提示信息; DDBB DB01H ;輸出控制字(LED)DATA ENDSSTACK SEGMENTPARASTACK‘STACK’ DW 256DUP(?)STACK ENDSCODE SEGMENTMAIN PROC FAR ASSUMECS:CODE,DS:DATA,ES:DATASTART: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV ES,AX MOV DS,AX;設置窗口,左上角(CH,CL),右下角(DH,DL) MOV CX,0 ;窗口頁上滾
MOV DX,184FH MOV BH,7 MOV AL,0 ;屏幕清0 MOV AH,6 ;調用號
INT 10H;設置光標位置,顯示提示信息
MOV AH,2 MOV BH,0 MOV DX,0614H INT 10H ;將光標設置在6行20列
MOV DX,OFFSETDA MOV AH,9 INT 21H ;顯示字符串“[S1]INTERRUPT”;設置光標位置,顯示提示信息
MOV AH,2 MOV BH,0 MOV DX,0714H INT 10H ;將光標移到7行20列位置
MOV DX,OFFSETDDA MOV AH,9 INT 21H ;顯示字符串“[S1-S4]:QUIT”;讀取0AH號原中斷向量,并壓無棧保護
CLI ;關中斷
MOV AL,0AH ;保存原有中斷向量
MOV AH,35H ;讀取0AH號的中斷向量
INT 21H ;返回向量在ES:BX中
PUSH ES ;保留讀取的向量值
PUSH BX;置入新的中斷向量
PUSH DS
MOV DX,OFFSETSHOW ;裝入中斷向量
MOV AX,SEGSHOW ;中斷服務程序SHOW的入口地址
MOV DS,AX ;設置0AH號中斷向量
MOV AL,0AH ;即將DS:DX內容放入向量表中
MOV AH,25H INT 21H POP DS;開放IR2 IN AL,21H ;讀入原IMR
AND AL,11111011B ;設IMRR的D2=1,其余位不變
OUT 21H,AL ;寫1MR,即開放1R2,其余的屏蔽字不變
STI ;開中斷;顯示流水燈TT: MOV AL,DDBB ;顯示流水燈
ROL AL,1 MOV DDBB,AL MOV DX,350H ;LED顯示端口,‘1’對應發光
OUT DX,AL MOV CX,500H ;延時BB: MOV BX,8000HBB1: DEC BX JNZ BB1 LOOP BB;讀取鍵值,判斷是否退出
IN AL,DX AND AL,0E0H ;讀入鍵盤信號,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設計公司前臺管理制度
- 設計招標文件管理制度
- 診所醫療感染管理制度
- 診所隱患臺賬管理制度
- 貨場租賃使用管理制度
- 2025年中國工業大語言模型行業市場全景分析及前景機遇研判報告
- 貨物抵協議書范本
- 個人分賬協議書范本大全
- 懲治老婆協議書范本
- 員工持干股協議書范本
- 經空氣傳播疾病醫院感染預防與控制規范課件
- 冠心病合并糖尿病血脂管理
- GB/T 43492-2023預制保溫球墨鑄鐵管、管件和附件
- PDCA循環在我院靜脈用藥調配中心用藥錯誤管理中的應用靜配中心質量持續改進案例
- 精神病患者攻擊行為預防
- 《議程設置理論》課件
- 二單元稅率利率復習課
- GB/Z 43281-2023即時檢驗(POCT)設備監督員和操作員指南
- 農藥經營56學時培訓模擬試題
- 衣柜全屋定制家具施工方案
- 廣州市近5年中考語文作文真題及模擬題匯編(含參考例文)
評論
0/150
提交評論