版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第9章輸入輸出控制技術(shù)學(xué)習(xí)目標(biāo)輸入/輸出(簡稱I/O)設(shè)備是計算機的主要組成部分。I/O接口是CPU同輸入/輸出設(shè)備之間進行信息交換的重要樞紐。本章首先介紹輸入輸出接口基本概念、CPU與外設(shè)數(shù)據(jù)傳送的方式。然后,重點討論中斷與計數(shù)/定時控制技術(shù)。1第9章輸入輸出控制技術(shù)學(xué)習(xí)要求著重理解接口基本結(jié)構(gòu)的特點。掌握CPU與外設(shè)之間數(shù)據(jù)的傳送方式與控制方式。正確理解中斷源、向量中斷、中斷優(yōu)先權(quán)等基本概念。重點掌握8086/8088中斷系統(tǒng)及其用戶定義的內(nèi)部中斷處理方法。能正確理解和靈活運用中斷向量表。掌握8259A內(nèi)部8個部件的功能及其關(guān)系。重點掌握8259A初始化編程。掌握可編程計數(shù)器/定時器8253-5的內(nèi)部結(jié)構(gòu)和進行計數(shù)/定時控制的原理。掌握8253-5的方式控制字格式的設(shè)置,能夠理解各計數(shù)器有6種可供選擇的工作方式,并完成定時、計數(shù)或脈沖發(fā)生器等多種功能。29.1輸入輸出接口概述1.CPU與外設(shè)間的連接CPU與外設(shè)的連接須通過各自的專用接口電路(或接口芯片)來實現(xiàn),這些接口電路簡稱為I/O接口。2.接口電路的基本結(jié)構(gòu)接口電路的基本結(jié)構(gòu)同它傳送的信息種類有關(guān)。信息可分為3類:數(shù)據(jù)信息;狀態(tài)信息;控制信息。39.2CPU與外設(shè)之間數(shù)據(jù)傳送的方式9.2.1 程序傳送程序傳送:在程序控制(即IN或OUT指令控制)下進行數(shù)據(jù)傳送,是CPU與外設(shè)間最簡單的一種數(shù)據(jù)傳送方式。它可分為無條件傳送方式和有條件傳送方式兩種。1.無條件傳送(又稱同步傳送) 無條件傳送方式對少量數(shù)據(jù)傳送來說, 是最省時間的一種傳送方法,適用于 各類巡回檢測和過程控制。AB:AddressBusDB:DataBus42.程序查詢傳送(條件傳送—異步傳送)程序查詢傳送是有條件的異步傳送。1)程序查詢輸入查詢輸入部分的程序:POLL:INAL,STATUS_PORT ;讀狀態(tài)端口的信息
TESTAL,80H ;設(shè)“準(zhǔn)備就緒”(READY)信息在D7位
JEPOLL ;未“準(zhǔn)備就緒”,則循環(huán)再查
INAL,DATA_PORT ;已“準(zhǔn)備就緒”(READY=1),則讀入數(shù)據(jù)52.程序查詢傳送(條件傳送—異步傳送)2)程序查詢輸出查詢輸出部分的程序:POLL:INAL,STATUS_PORT ;查狀態(tài)端口中的狀態(tài)信息D7 TESTAL,80H JNEPOLL ;D7=1即忙線=1,則循環(huán)再查
MOVAL,STORE ;否則,外設(shè)空閑,則由內(nèi)存讀取數(shù)據(jù)
OUTDATA_PORT,AL ;輸出到DATA地址端口單元ATATUS和DATA分別為狀態(tài)端口 和數(shù)據(jù)端口的符號地址; STORE為待輸出數(shù)據(jù)的內(nèi)存單元 的符號地址。62.程序查詢傳送(條件傳送—異步傳送)3)一個采用查詢方式的數(shù)據(jù)采集系統(tǒng)START:MOVDL,0F8H ;設(shè)置啟動A/D轉(zhuǎn)換信號,且低3位選通多路開關(guān)通道
MOVAX,SEGDSTOR ;設(shè)置輸入數(shù)據(jù)的內(nèi)存單元地址指針
MOVES,AX LEADI,DSTORAGAIN: MOVAL,DL ANDAL,0EFH ;使D4=0 OUT04,AL ;停止A/D轉(zhuǎn)換
CALLDELAY ;等待停止A/D轉(zhuǎn)換操作的完成
MOVAL,DL OUT04,AL ;選輸入通道并啟動A/D轉(zhuǎn)換73)一個采用查詢方式的數(shù)據(jù)采集系統(tǒng)POLL: INAL,02 ;輸入狀態(tài)信息
SHRAL,1 ;查AL的D0 JNCPOLL ;判READY=1?若D0=0,未準(zhǔn)備好,則循環(huán)再查
INAL,03 ;若已準(zhǔn)備就緒,則經(jīng)端口3將采樣數(shù)據(jù)輸入至AL STOSB ;輸入數(shù)據(jù)轉(zhuǎn)送內(nèi)存單元
INCDL ;輸入模擬量通道增1 JNEAGAIN ;8個模擬量未輸入完則循環(huán) ↘ ;輸入完畢,則執(zhí)行別的程序89.2.2中斷傳送中斷是外設(shè)或其他中斷源中止CPU當(dāng)前正在執(zhí)行的程序,而轉(zhuǎn)向為該外設(shè)服務(wù)(如完成它與CPU之間傳送一個數(shù)據(jù))的程序,一旦服務(wù)結(jié)束,又返回原程序繼續(xù)工作。這樣,外設(shè)處理數(shù)據(jù)期間,CPU就不必浪費大量時間去查詢它們的狀態(tài),只待外設(shè)處理完畢主動向CPU提出請求(向CPU發(fā)中斷請求信號),而CPU在每一條指令執(zhí)行的結(jié)尾階段,均查詢是否有中斷請求信號(這種查詢是由硬件完成的,不占用CPU的工作時間),若有,則暫停執(zhí)行現(xiàn)行的程序,轉(zhuǎn)去為申請中斷的某個外設(shè)服務(wù),以完成數(shù)據(jù)傳送。中斷傳送方式的好處是:大大提高了CPU的工作效率。99.2.3直接存儲器存取傳送直接存儲器存取傳送DMA(directmemoryaccess)方式或稱為數(shù)據(jù)通道方式是一種由專門的硬件電路執(zhí)行I/O交換的 傳送方式,它讓外設(shè)接口可直接與 內(nèi)存進行高速的數(shù)據(jù)傳送,而不必 經(jīng)過CPU,可實現(xiàn)對存儲器的直接 存取。109.3中斷技術(shù)9.3.1中斷概述1.中斷與中斷源中斷:使CPU暫停運行原來的程序而應(yīng)更為急迫事件的需要轉(zhuǎn)向去執(zhí)行為中斷源服務(wù)的程序(稱為中斷服務(wù)程序),待該程序處理完后,再返回運行原程序,此即中斷(或中斷技術(shù))。中斷源,即引起中斷的事件或原因,或發(fā)出中斷申請的來源。通常中斷源有以下幾種:外部設(shè)備;實時時鐘;故障源。以上3種屬于隨機中斷源。由隨機引起的中斷,稱為強迫中斷。還有一種為調(diào)試程序設(shè)置的中斷源。這是指CPU執(zhí)行了特殊指令(自陷指令)或由硬件電路引起的中斷,主要是供用戶調(diào)試程序時而采取的檢查手段。如斷點設(shè)置、單步調(diào)試等。這些都要由中斷系統(tǒng)實現(xiàn)。一般稱這種中斷為自愿中斷。119.3.1中斷概述2.中斷系統(tǒng)及其功能中斷系統(tǒng):為實現(xiàn)中斷而設(shè)置的各種硬件與軟件,包括中斷控制邏輯及相應(yīng)管理中斷的指令。中斷系統(tǒng)具有下列功能:1)能響應(yīng)中斷、處理中斷與返回2)能實現(xiàn)優(yōu)先權(quán)排隊3)高級中斷源能中斷低級的中斷 處理——中斷嵌套的技術(shù)。129.3.2單個中斷源的中斷簡單的中斷過程應(yīng)包括:中斷請求、中斷響應(yīng)、中斷處理和中斷返回等環(huán)節(jié)。1.中斷源向CPU發(fā)中斷請求信號的條件中斷源是通過其接口電路向CPU發(fā)中斷請求信號的,該信號能否發(fā)給CPU,應(yīng)滿足下列兩個條件:1)設(shè)置中斷請求觸發(fā)器2)設(shè)置中斷屏蔽觸發(fā)器139.3.2單個中斷源的中斷2.CPU響應(yīng)中斷的條件當(dāng)中斷源向CPU發(fā)出INTR信號后,CPU若要響應(yīng)它,還應(yīng)滿足下列條件。1)CPU開放中斷2)CPU在現(xiàn)行指令結(jié)束后響應(yīng)中斷149.3.2單個中斷源的中斷3.CPU響應(yīng)中斷及處理過程1)關(guān)中斷2)保留斷點 CPU響應(yīng)中斷后,立即封鎖斷點地址,且把此值壓棧保護,以備在中斷處理完畢后,CPU能返回斷點處繼續(xù)運行主程序。3)保護現(xiàn)場4)給出中斷入口(地址),轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序8086/8088是由中斷源提供中斷類型號,并根據(jù) 中斷類型號在中斷向量表中取得中斷服務(wù)程序 的起始地址。5)恢復(fù)現(xiàn)場這個操作是在中斷服務(wù)程序中用POP指令來完成的。6)開中斷與返回159.3.3向量中斷向量中斷(VectoredInterrupt),是指通過中斷向量進入中斷服務(wù)程序的一種方法;而中斷向量則是用來提供中斷入口地址的一個地址指針(即CS:IP)。例如8086/8088CPU的中斷系統(tǒng)就是采用這種向量中斷。9.3.4中斷優(yōu)先權(quán)在實際的系統(tǒng)中,具有多個中斷源,而CPU的可屏蔽中斷請求線往往只有一條。如何解決多個中斷源同時請求中斷而只有一根中斷請求線的矛盾呢?這就要求CPU按多個中斷源的優(yōu)先權(quán)由高至低依次來響應(yīng)中斷申請。同時,當(dāng)CPU正在處理中斷時,還要能響應(yīng)更高級的中斷申請,而屏蔽掉同級或低級的中斷申請。CPU可以通過軟件查詢技術(shù)或硬件排隊電路兩種方法來實現(xiàn)按中斷優(yōu)先權(quán)對多個中斷源的管理,也有專門用于協(xié)助CPU按中斷優(yōu)先權(quán)處理多個中斷源的中斷控制芯片,如8259A芯片。169.48086/8088的中斷系統(tǒng)和中斷處理9.4.18086/8088的中斷系統(tǒng)8086/8088的中斷系統(tǒng)采用中斷向量結(jié)構(gòu),可以處理多達256種類型的中斷。179.4.18086/8088的中斷系統(tǒng)1.外部中斷8086/8088CPU有兩條引腳供外部中斷源請求中斷:一條是高電平有效的可屏蔽中斷INTR;另一條是正跳變有效的非屏蔽中斷NMI。1)可屏蔽中斷可屏蔽中斷是由用戶定義的外部硬件中斷。當(dāng)8086/8088CPU的INTR引腳上出現(xiàn)一高電平有效請求信號時,它必須保持到當(dāng)前指令的結(jié)束。若IF=0(CLI),此時CPU是處于關(guān)中斷狀態(tài),則不響應(yīng)INTR;若IF=1(STI),則CPU是處于開中斷狀態(tài),將響應(yīng)INTR,并通過引腳向產(chǎn)生INTR的設(shè)備接口(中斷源)發(fā)回響應(yīng)信號,啟動中斷過程。8086/8088CPU在發(fā)回第2個中斷響應(yīng)信號時,將使發(fā)出中斷請求信號的接口把1字節(jié)的中斷類型號通過數(shù)據(jù)總線傳送給CPU。由該中斷類型號指定了中斷服務(wù)程序入口地址在中斷向量表中的位置。中斷允許標(biāo)志IF位的狀態(tài)可用指令STI使其置位,即開中斷;也可用CLI指令使其復(fù)位,即關(guān)中斷。181.外部中斷2)非屏蔽中斷當(dāng)8086/8088CPU的NMI引腳上出現(xiàn)一上升沿的邊沿觸發(fā)有效請求信號時,它將由CPU內(nèi)部的鎖存器將其鎖存起來。8086/8088要求NMI上的請求脈沖的有效寬度(高電平的持續(xù)時間)大于兩個時鐘周期。一旦此中斷請求信號產(chǎn)生,不管標(biāo)志位IF的狀態(tài)如何,即使在關(guān)中斷(IF=0)的情況下,CPU也能響應(yīng)它。199.4.18086/8088的中斷系統(tǒng)2.內(nèi)部中斷8086/8088的內(nèi)部中斷又叫軟件中斷,它包括以下幾種內(nèi)部中斷:除法出錯中斷——類型0;溢出中斷——類型4;單步中斷——類型1;斷點中斷——類型3;用戶定義的軟件中斷——類型n。應(yīng)著重掌握用戶定義的軟件中斷——類型n。它是一個可由用戶定義的雙字節(jié)的中斷指令I(lǐng)NTn,其第1個字節(jié)為INT的操作碼,第2個字節(jié)n是它的中斷類型號。中斷類型號n由程序員編程時給定,用它指出中斷服務(wù)程序的入口地址。203.內(nèi)部中斷的特點1)內(nèi)部中斷由一條INTn指令直接產(chǎn)生。2)除單步中斷以外,所有內(nèi)部中斷都不能被屏蔽。3)所有內(nèi)部中斷都沒有中斷響應(yīng)機器總線周期。4)8086/8088中斷系統(tǒng)規(guī)定了硬、軟中斷的優(yōu)先級排隊。5)作為軟件調(diào)試手段,單步中斷是逐條地跟蹤調(diào)試,而斷點中斷(INT3)是逐段地調(diào)試,它們均可用中斷服務(wù)程序在屏幕上顯示有關(guān)的各種信息。6)為了避開由外設(shè)硬件產(chǎn)生INTR中斷請求信號和提供中斷類型號的麻煩,可以用軟件中斷指令I(lǐng)NTnn來模擬外設(shè)提供的硬件中斷。214.中斷向量表8086/8088中斷系統(tǒng)的中斷向量表中給出了與中斷類型對應(yīng)的256個中斷向量,每個向量包含4個字節(jié),2個低地址字節(jié)是IP偏移量, 2個高地址字節(jié)是CS段地址。用來存放256 個向量的中斷向量表需要占用1K字節(jié)的存 儲空間,且設(shè)置在存儲器的最低端(000H ~3FFH)。這樣,每個中斷都可轉(zhuǎn)到1MB空 間的任何地方。224.中斷向量表當(dāng)CPU響應(yīng)中斷訪問中斷向量表時,外設(shè)通過接口將一個8位的中斷類型編碼n放在數(shù)據(jù)總線上,CPU對編號n乘以4得到4n指向該中斷向量的首字節(jié);4n和4n+1單元中存放的是中斷向量的偏移地址值,其低字節(jié)在4n地址中,高字節(jié)在4n+1地址中;4n+2和4n+3單元中存放的是中斷 向量的段地址值,也是低 字節(jié)在前,高字節(jié)在后。 實現(xiàn)中斷轉(zhuǎn)移時,CPU將把 有關(guān)的標(biāo)志位和斷點地址的 CS和IP值入棧,然后通過中 斷向量間接轉(zhuǎn)入中斷服務(wù)程 序。 中斷處理結(jié)束,用返回指令 彈出斷點地址的IP與CS值以 及標(biāo)志位,然后返回被中斷 的程序。239.4.28086/8088的中斷處理過程8086/8088的中斷處理過程259.4.28086/8088的中斷處理過程(1)所有中斷處理都包括中斷請求、中斷響應(yīng)、中斷處理和中斷返回4個基本過程。(2)響應(yīng)順序均按預(yù)先設(shè)計的中斷優(yōu)先權(quán)來響應(yīng)。優(yōu)先權(quán)由高到低依次為:內(nèi)部中斷;NMI中斷;INTR中斷;單步中斷。(3)CPU開始響應(yīng)中斷的時刻,在一般情況下,都要待當(dāng)前指令執(zhí)行完后方可響應(yīng)中斷申請。但有少數(shù)情況是在下一條指令完成之后才響應(yīng)中斷請求。例如,REP(重復(fù)前綴),LOCK(封鎖前綴)和段超越前綴(ES:)等指令都應(yīng)當(dāng)將前綴看作指令的一部分,在執(zhí)行前綴和指令間不允許中斷。段寄存器的傳送指令MOV和段寄存器的彈出指令POP也是一樣,在執(zhí)行下條指令之前都不能響應(yīng)中斷。(4)在WAIT指令和重復(fù)數(shù)據(jù)串操作指令執(zhí)行的過程中間可以響應(yīng)中斷請求,但必須要等一個基本操作或一個等待檢測周期完成后才能響應(yīng)中斷。(5)由于NMI引腳上的中斷請求是需要立即處理的,所以在進入執(zhí)行任何中斷(包括內(nèi)部中斷)服務(wù)程序之前,都要安排測試NMI引腳上是否有中斷請求,以保證它實際上有最高的優(yōu)先權(quán)。這時要為轉(zhuǎn)入執(zhí)行NMI中斷服務(wù)程序而再次保護現(xiàn)場和斷點,并在執(zhí)行完NMI中斷服務(wù)程序后返回到所中斷的服務(wù)程序。269.4.28086/8088的中斷處理過程(6)若在執(zhí)行某個中斷服務(wù)時無NMI中斷發(fā)生,則接著去查看暫存寄存器TEMP的狀態(tài)。若TEMP=1,則在中斷前CPU已處于單步工作方式,就和NMI一樣重新保護現(xiàn)場和斷點,轉(zhuǎn)入單步中斷服務(wù)程序。若TEMP=0,也就是在中斷前CPU處于非單步工作方式,則這時CPU將轉(zhuǎn)去執(zhí)行最先引起中斷的中斷服務(wù)程序。(7)待中斷處理程序結(jié)束時,由中斷返回指令將堆棧中存放的IP、CS以及PSW值還原給指令指針I(yè)P、代碼段寄存器CS以及程序狀態(tài)字PSW。
注意:當(dāng)有多個中斷請求同時產(chǎn)生時,8086/8088CPU將根據(jù)各中斷源優(yōu)先權(quán)的高低來處理,首先響應(yīng)優(yōu)先權(quán)較高的中斷請求,等具有較高優(yōu)先權(quán)的中斷請求處理完以后,再去依次響應(yīng)和處理其他中斷申請。279.4.3可屏蔽中斷的過程1.INTR中斷的全過程圖中所示的是可屏蔽中斷從中斷發(fā)生到中斷 服務(wù)結(jié)束并返回的整個操作過程。CPU響應(yīng)NMI或內(nèi)部中斷請求時的操作順序 基本上與上述過程相同,只是不需要前3步 操作和讀取中斷類型碼。一旦CPU接到NMI 引腳上的中斷請求或內(nèi)部中斷請求時,CPU 就會自動地轉(zhuǎn)向它們各自的中斷服務(wù)程序。289.4.3可屏蔽中斷的過程2.中斷類型號的獲得獲得中斷類型號有3個途徑:(1)除法錯誤,單步中斷,非屏蔽中斷,斷點中斷和溢出中斷分別由CPU芯片內(nèi)的硬件自動提供類型號0~4。(2)軟件中斷則是從INTn指令流中,即在第2個字節(jié)中讀得中斷類型號n。(3)外部中斷INTR可以用不同的方法獲得中斷類型號。例如,在PC系列微機中,可以由Intel8259A芯片或集成了8259A的超大規(guī)模集成外圍芯片來提供中斷類型號。299.4.4中斷響應(yīng)時序了解中斷響應(yīng)時序的組成以及中斷類型號的獲取方法與時間。309.5可編程中斷控制器8259A9.5.18259A的引腳與功能結(jié)構(gòu)8259A是一個28引腳的雙列直插式芯片。要了解引腳的功能,較好地理解CAS0~CAS2這3根級聯(lián)控制信號。319.5.28259A內(nèi)部結(jié)構(gòu)框圖和中斷工作過程1.8259A內(nèi)部結(jié)構(gòu)框圖8259A中斷控制器包括8個主要功能部件,其內(nèi)部結(jié)構(gòu)框圖如圖所示。8259A內(nèi)部除上述幾個處理8級中斷請求(IR0~IR7)的功能部件IRR、ISR與PR之外,還有一組用于寄存控制命令字的8位寄存器。329.5.28259A內(nèi)部結(jié)構(gòu)框圖和中斷工作過程2.8259A的中斷工作過程8259A的8個功能部件組成一個有機的整體,共同協(xié)調(diào)處理其中斷工作過程。難點:當(dāng)CPU對某個中斷請求做出的中斷響應(yīng)結(jié)束后,8259A將如何根據(jù)一個名為方式控制器的結(jié)束方式位的不同設(shè)置,在不同時刻將ISR中置1“的中斷請求位復(fù)“0”。實際情況是:在自動結(jié)束中斷(AEOI)方式下,8259A會將ISR中原來在第1個負脈沖到來時設(shè)置的“1”(即響應(yīng)此中斷請求位)在第2個脈沖結(jié)束時,自行復(fù)位成“0”。若是非自動結(jié)束中斷方式(EOI),則ISR中該位的“1”狀態(tài)將一直保持到中斷過程結(jié)束,由CPU發(fā)EOI命令才能復(fù)位成“0”。8級中斷請求信號所對應(yīng)的中斷類型碼(或中斷向量)規(guī)定:其前5位T7~T3由用戶在8259A初始化編程時選擇的,后3位則由8259A自動插入的。339.5.38259A的控制字格式8259A的中斷處理功能和各種工作方式,都是通過編程設(shè)置的。即對8259A內(nèi)部有關(guān)寄存器寫入控制命令字來實現(xiàn)控制的。按照控制字功能及設(shè)置的要求不同,可分為兩種 類型的命令字:(1)初始化命令字ICW:ICW1~ICW4,它們必須在 初始化時分別寫入4個相應(yīng)的寄存器。并且,一旦 寫入,一般在系統(tǒng)運行過程中就不再改變。(2)工作方式命令字或操作命令字OCW:OCW1~OCW3, 它們必須在設(shè)置初始化命令后方能分別寫入3個相應(yīng) 的寄存器。它們用來對中斷處理過程進行動態(tài)的操作 與控制。在一個系統(tǒng)運行過程中,操作命令字可以 被多次設(shè)置。341.初始化命令字1)ICW1ICW1叫芯片控制初始化命令字,用于啟動8259A中的初始化順序。該字寫入8位的芯片控制寄存器。寫ICW1的標(biāo)記為:A0=0,D4=1。351.初始化命令字2)ICW2ICW2是設(shè)置中斷類型碼的初始化命令字。該字寫入8位的中斷類型寄存器。寫ICW2的標(biāo)記為:A0=1。361.初始化命令字3)ICW3ICW3是標(biāo)志主片/從片的初始化命令字,該字寫入8位的主/從標(biāo)志寄存器,它只用于級聯(lián)方式。寫ICW3的標(biāo)記為:A0=1。371.初始化命令字3)ICW3在IBMPC/XT機中,僅用1片8259A,能提供8級中斷請求。在IBMPC/AT機中用2片8259A組成級聯(lián)方式,最多可以提供15級中斷請求。381.初始化命令字4)ICW4ICW4叫方式控制初始化命令字。該字寫入8位的方式控制寄存器。寫ICW4控制字標(biāo)記為:A0=1。392.操作命令字當(dāng)8259A經(jīng)預(yù)置ICWi后已進入初始化狀態(tài),便可接收來IRi端的中斷請求。然后自動進入操作命令狀態(tài),準(zhǔn)備接收由CPU寫入8259A的操作命令字OCWi。1)OCW1寫OCW1的標(biāo)記為:A0=1。OCW1用來寫入IMR寄存器。402.操作命令字2)OCW2OCW2是用來設(shè)置中斷優(yōu)先級循環(huán)方式和中斷結(jié)束方式的操作命令字。寫OCW2的標(biāo)記為:A0=0、D3=D4=041OCW2的編碼
及功能說明2.操作命令字3)OCW3OCW3叫多功能操作命令字。寫OCW3的標(biāo)記為:A0=0、D7=D4=0、D2=1。該命令字有3項功能:一是設(shè)置和撤消特殊屏蔽方式;二是設(shè)置中斷查詢方式;三是設(shè)置對8259A內(nèi)部寄存器的讀出命令。439.5.48259A應(yīng)用舉例在IBMPC/XT機中,只采用了1片8259A中斷控制器來提供8級中斷請求,其中IR0優(yōu)先級最高,IR7優(yōu)先級最低。它們分別用于日歷時鐘中斷、鍵盤中斷、保留、網(wǎng)絡(luò)通信、異步通信中斷、硬盤中斷、軟盤中斷及打印機中斷。8259A片選地址設(shè)定為20H、21H。
1.初始化MOV AL,13H ;寫ICW1,單片,邊沿觸發(fā),要ICW4OUT 20H,ALMOV AL,8 ;寫ICW2,中斷類型號從8開始OUT 21H,ALMOV AL,0DH ;寫ICW4,緩沖工作方式,8088/8086配置OUT 21H,ALMOV AL,0 ;寫OCW1,允許IR0~IR7全部8級中斷請求OUT 21H,AL442.送中斷向量入口地址例如,異步通信中斷IR4,其中斷向量類型號為8+4=12(0CH),則中斷入口地址的偏移量(IP值)與段地址(CS)在入口地址表中的存放地址為12×4=48(30H),49(31H),50(32H),51(33H)。其中30H、31H存放指令指針I(yè)P;32H,33H存放指令段碼CS。3.中斷子程序結(jié)束由于8259A采用中斷工作方式,且ICW4中的D1位(即AEOI)為0,這意味著采用正常結(jié)束中斷,因此,在中斷子程序結(jié)束前必須發(fā)EOI命令和IRET命令。MOV AL,20H ;寫OCW2命令,使ISR相應(yīng)位復(fù)位(即發(fā)EOI命令)。OUT 20H,ALIRET ;開放中斷允許,并從中斷返回4.中斷嵌套為了使中斷嵌套,即在中斷響應(yīng)過程中,允許比本中斷優(yōu)先級高的中斷進入,只要在進入中斷處理程序后,執(zhí)行開中斷指令STI即可達到此目的。9.5.48259A應(yīng)用舉例459.6計數(shù)/定時控制技術(shù)在微機應(yīng)用中,一般常用可編程計數(shù)器/定時器8253-5來進行計數(shù)/定時控制。9.6.18253-5的引腳與功能結(jié)構(gòu)8253-5是一種24腳封裝的雙列直插式芯片。功能:計數(shù)與定時,兩者的工作原理在實質(zhì)上是一樣的,都是利用計數(shù)器作減1計數(shù),減至0發(fā)信號;兩者的差別只是用途不同。469.6.2 8253-5的內(nèi)部結(jié)構(gòu)和尋址方式1.內(nèi)部結(jié)構(gòu)8253-5的內(nèi)部結(jié)構(gòu)如圖所示。它有3個獨立結(jié)構(gòu)完全相同的16位計數(shù)器和1個8位控制字寄存器。472.尋址方式8253-5的尋址與相應(yīng)操作489.6.38253-5的6種工作方式及時序關(guān)系8253-5的各計數(shù)器都有6種可供選擇的工作方式,以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。491.方式0計數(shù)結(jié)束產(chǎn)生中斷8253-5方式0有以下特點:(1)當(dāng)寫入控制字后,OUT端輸出低電平作為起始電平,在有兩個負脈沖寬度的信號的上升沿將初值寫入初值寄存器CR, 待計數(shù)初值裝入計數(shù)器后,輸出仍 保持低電平。(2)GATE為計數(shù)控制門。(3)計數(shù)過程中可重新裝入計數(shù)初值。8253-5利用方式0既可計數(shù),也可定時。502.方式1可編程單穩(wěn)觸發(fā)器8253-5方式1有以下特點:(1)當(dāng)寫入控制字后,OUT端將輸出高電平作為起始電平。(2)工作時,由GATE輸入觸發(fā)脈沖的上升沿使OUT變?yōu)榈碗娖?,每來一個計數(shù)脈沖,計數(shù)器作減1計數(shù),當(dāng)計數(shù)值減為0時,OUT再變?yōu)楦唠娖?。?)如果在計數(shù)器未減到0時,門控端GATE 又來一個觸發(fā)脈沖,則由下一個時鐘脈沖開 始,計數(shù)器將從原有的初始值(n=4)重新作 減1計數(shù)。當(dāng)減至0時,輸出端又變?yōu)楦唠娖健?這樣,使輸出脈沖寬度延長。(4)若在計數(shù)過程中,又寫入一個新的計數(shù) 初值,它并不影響本次計數(shù)過程,輸出也 不變。只是在下一次觸發(fā)時,計數(shù)器按新的 輸入初值重新計數(shù)。513.方式2分頻器(又叫分頻脈沖產(chǎn)生器)方式2是n分頻計數(shù)器,n是寫入計數(shù)器的初值。當(dāng)計數(shù)器的控制寄存器寫入控制字后,OUT端輸出高電平作為起始電平。當(dāng)計數(shù)初值(圖中給出了兩個初值即n=4或n=3)在信號的上升沿寫入計數(shù)器后,從下一個時鐘脈沖起,計數(shù)器開始作減1計數(shù)。當(dāng)減到1(而不是減 到0)時,OUT端輸出將變?yōu)榈碗娖?。?dāng) 計數(shù)端CLK輸入n個計數(shù)脈沖后,在輸出 端OUT輸出一個n分頻脈沖,其正脈沖寬 度為(n-1)個輸入脈沖時鐘周期,而 負脈沖寬度只是一個輸入脈沖時鐘周期。 GATE用來控制計數(shù),GATE=1,允許計數(shù); GATE=0,停止計數(shù)。注意:在方式2下,不但高電平的 門控信號有效,上升跳變的門控信號 也是有效的。524.方式3方波頻率發(fā)生器方式3類似于方式2,也有兩種啟動方式,并具有自動裝入計數(shù)初值的功能,但輸出的波形為方波或者為近似對稱的矩形波。注意:如果在計數(shù)過程中,GATE變?yōu)榈碗娖?,則暫停減1計數(shù),直到GATE再次表為高電平有效,重新從初值n開始減1計數(shù)。535.方式4軟件觸發(fā)選通脈沖按方式4工作時,計數(shù)器寫入控制字后,輸出的OUT信號變?yōu)楦唠娖?。?dāng)由軟件觸發(fā)寫入初始值n(此例中n=4)經(jīng)過1個時鐘周期后,若GATE=1,允許計數(shù),則計數(shù)器在一個時鐘脈沖之后開始作減1計數(shù),當(dāng)計數(shù)器減到0時,在OUT端輸出一個寬度等于一個計數(shù)脈沖周期的負脈沖。若GATE=0,則停止計數(shù),n保持為4;只有在GATE恢復(fù)高電平之后才重新計數(shù),即由n=4開始減1計數(shù),直至減至0才發(fā)出一個選通負脈沖。注意:方式4是通過軟件寫入新的計數(shù)值來使計數(shù)器重新工作的,故稱為軟件觸發(fā)選通脈沖方式。546.方式5硬件觸發(fā)選通脈沖方式5類似于方式4,所不同的是GATE端輸入信號的作用不同。按方式5工作時,由GATE輸入觸發(fā)脈沖,從其上升沿開始,計數(shù)器作減1計數(shù),計數(shù)結(jié)束時,在OUT端輸出一個寬度等于一個計數(shù)脈沖周期的負脈沖。在此方式中,計數(shù)器可重新觸發(fā)。在任何時刻,當(dāng)GATE觸發(fā)脈沖上升沿到來時,將把計數(shù)初值重新送入計數(shù)器,然后開始計數(shù)過程。注意:方式5的選通負脈沖是通過硬件電路產(chǎn)生的門控信號GATE上升沿觸發(fā)后得到的,故稱為硬件觸發(fā)選通脈沖方式。559.6.48253應(yīng)用舉例在IBMPC/XT機中,8253-5是CPU外圍支持電路之一,為系統(tǒng)電子鐘提供時間基準(zhǔn),為動態(tài)RAM刷新提供定時信號以及作為揚聲器的聲源等功能。從圖可知,8253-5芯片的3個計數(shù)器使用相同的時鐘脈沖。CLK0~CLK2的頻率是PCLK(2.38MHz)的1/2,即1.19MHz,這由U22分頻實現(xiàn)。8253-5的3個計數(shù)器端口地址為:40H、41H、42H??刂萍拇嫫鞫丝诘刂窞?3H。563個計數(shù)器的用途1)計數(shù)器0向系統(tǒng)日歷時鐘提供定時中斷,選用方式3工作,控制字為36H。計數(shù)器值預(yù)置為0(即65536),GATE0接+5V,允許計數(shù)。OUT0輸出時鐘頻率為1.19MHz/65536=18.21Hz。它直接接到中斷控制器8259A的中斷請求端IR0,即0級中斷,每秒出現(xiàn)18.2次。每間隔55ms產(chǎn)生一次0級中斷請求。每一個輸出脈沖均以其正跳變產(chǎn)生一次中斷。2)計數(shù)器1向DMA控制器定時發(fā)動態(tài)存儲器刷新請求,選用方式2工作,控制字為54H。計數(shù)器初始值為18,GATE1接+5V,允許計數(shù)。OUT1輸出分頻脈沖頻率為1.19MHz/18=66.1KHz,相當(dāng)于周期為15.1μS。計數(shù)器1每隔15.1μs經(jīng)由U21產(chǎn)生一個動態(tài)RAM刷新的請求信號DRQ0。3)計數(shù)器2控制喇叭發(fā)聲音調(diào),用方式3工作,控制字為B6H,計數(shù)器的初值置533H(即1331),OUT2輸出方波頻率為1.19MHz/1331=894Hz。該計數(shù)器的工作由主機板8255A的PB0端控制。當(dāng)PB0輸出的TIME2GATESPK為高電平時,計數(shù)器方能工作。OUT2的輸出與8255APB1端產(chǎn)生的喇叭音響信號SPKRDATA在U87相與后送到功放驅(qū)動芯片75477的輸入端A。57本章小結(jié)輸入/輸出接口是微處理器同外部設(shè)備之間信息交換的重要樞紐。CPU對外設(shè)的I/O操作類似于存儲器的讀/寫操作。主存儲器可以與CPU直接連接,而I/O設(shè)備則需要經(jīng)過接口電路(即I/O適配器)與CPU連接。接口電路的基本結(jié)構(gòu)同它傳送的信息種類有關(guān)。CPU與外設(shè)之間數(shù)據(jù)傳送的方式有程序傳送、中斷傳送和DMA傳送3種方式。其中,中斷是控制異步數(shù)據(jù)傳送的一種軟硬件相結(jié)合的關(guān)鍵技術(shù),可以看成是由中斷源引起(即硬件隨機激發(fā)或軟件激發(fā))的一次過程調(diào)用。所有中斷過程都是由中斷系統(tǒng)實現(xiàn)的。中斷系統(tǒng)應(yīng)能響應(yīng)中斷、處理中斷與返回;還能能實現(xiàn)優(yōu)先權(quán)排隊;并且能夠?qū)崿F(xiàn)中斷嵌套。8086/8088的中斷系統(tǒng)采用中斷向量結(jié)構(gòu),使每個不同的中斷都可以通過給定一個特定的中斷類型號(或中斷類型碼)供CPU識別,來處理多達256種類型的中斷。這些中斷可以來自外部,即由硬件產(chǎn)生,也可以來自內(nèi)部,即由軟件(中斷指令)產(chǎn)生,或者滿足某些特定條件(陷阱)后引發(fā)CPU中斷。8086/8088CPU有可屏蔽中斷INTR與非屏蔽中斷NMI兩條引腳來接受外部硬件中斷請求??善帘沃袛嘁軜?biāo)志寄存器的中斷允許標(biāo)志位IF的控制,而非屏蔽中斷不受標(biāo)志寄存器的中斷允許標(biāo)志位IF的控制。8086/8088CPU內(nèi)部中斷又叫軟件中斷,它包括除法出錯中斷(類型0)、溢出中斷(類型4)、單步中斷(類型1)與斷點中斷(類型3);還有用戶定義的軟件中斷(類型n)。58本章小結(jié)8086/8088CPU中斷處理的過程比較復(fù)雜。首先要掌握單個中斷
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防雨雪冰凍應(yīng)急演練
- 頸椎病的預(yù)防與照護
- 花生酥課件教學(xué)課件
- 零售年中述職報告
- 精神科阿爾茨海默病
- 2.2 課時2 離子反應(yīng) 課件 上學(xué)期化學(xué)魯科版(2019)必修第一冊
- 超市防盜標(biāo)簽的種類和使用方法
- 初中體育教案課后反思
- 角的平分線的性質(zhì)說課稿
- 經(jīng)濟特區(qū)城市更新與社區(qū)服務(wù)
- 2024年秋新滬教牛津版英語三年級上冊課件 Unit 5 第2課時
- 中圖版七年級下冊信息技術(shù) 2.1規(guī)劃影片任務(wù) 教學(xué)設(shè)計
- 2024中科院心理咨詢師考試復(fù)習(xí)題庫(官方版)-上單選題匯
- GB/T 44421-2024矯形器配置服務(wù)規(guī)范
- DB50-T 771-2017 地下管線探測技術(shù)規(guī)范
- 2024年P(guān)MP項目管理師考試試卷及答案指導(dǎo)
- 憲法是根本法教案-2.憲法是根本法-六年級上冊道德與法治(新版)
- 2024年全國普法知識考試題庫與答案
- 商家入駐進場協(xié)議書范本
- 2024年全國職業(yè)院校技能大賽中職組(嬰幼兒保育賽項)考試題庫-下(多選、判斷題)
- 爭做“四有好老師”-當(dāng)好“四個引路人”
評論
0/150
提交評論