第7章-中斷處理和定時(shí)計(jì)數(shù)技術(shù)_第1頁
第7章-中斷處理和定時(shí)計(jì)數(shù)技術(shù)_第2頁
第7章-中斷處理和定時(shí)計(jì)數(shù)技術(shù)_第3頁
第7章-中斷處理和定時(shí)計(jì)數(shù)技術(shù)_第4頁
第7章-中斷處理和定時(shí)計(jì)數(shù)技術(shù)_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

中斷的基本概念第

7

中斷處理與定時(shí)計(jì)數(shù)器技術(shù)8086中斷結(jié)構(gòu)可編程中斷控制器8259A可編程定時(shí)計(jì)數(shù)器82537.1

中斷概述一.中斷的基本概念1.中斷:是指某事件的發(fā)生引起CPU暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)去對(duì)所發(fā)生的事件進(jìn)行處理,處理結(jié)束后又回到原程序被打斷處接著執(zhí)行這樣一個(gè)過程。中斷斷點(diǎn)IRET中斷服務(wù)子程序主程序2.中斷源:是指能夠引發(fā)中斷的事件。

內(nèi)部中斷源:CPU內(nèi)部產(chǎn)生

a.軟件中斷。INT等軟中斷

b.

執(zhí)行指令出錯(cuò)。如除法錯(cuò)誤等

外部中斷源:外部設(shè)備產(chǎn)生

a.輸入、輸出設(shè)備中斷

b.實(shí)時(shí)時(shí)鐘中斷

c.實(shí)時(shí)監(jiān)控系統(tǒng)中斷等

d.計(jì)算機(jī)掉電、I/O通道出錯(cuò)、內(nèi)存讀、寫出錯(cuò)等2.中斷檢測(cè)與響應(yīng)執(zhí)行指令指令結(jié)束否?有中斷請(qǐng)求嗎?非屏蔽中斷嗎?IF=1嗎?NYYY取下一條執(zhí)行指令NNNY①②③CPU硬件自動(dòng)完成CPU產(chǎn)生兩個(gè)INTA負(fù)脈沖關(guān)閉中斷保護(hù)斷點(diǎn)、保護(hù)現(xiàn)場(chǎng)、開中斷中斷服務(wù)關(guān)中斷恢復(fù)現(xiàn)場(chǎng)IRET中斷返回中斷服務(wù)程序完成①②③3.中斷矢量表

中斷矢量表給出了不同中斷源與其終端入口地址的對(duì)應(yīng)關(guān)系。響應(yīng)中斷時(shí)CPU能根據(jù)中斷源提供的中斷類型號(hào)在中斷矢量表中找到相應(yīng)中斷服務(wù)子程序入口地址。4.中斷屏蔽

中斷屏蔽是指CPU通過軟件能夠?qū)崿F(xiàn)中斷禁止的一種功能。7.1.2中斷處理過程

中斷方式的實(shí)現(xiàn)一般需要經(jīng)歷下述過程:

中斷請(qǐng)求→中斷排隊(duì)→中斷響應(yīng)→斷點(diǎn)及現(xiàn)場(chǎng)保護(hù)→中斷服務(wù)→斷點(diǎn)恢復(fù)→中斷返回1)中斷請(qǐng)求

外部中斷源產(chǎn)生的中斷請(qǐng)求信號(hào)應(yīng)符合下列有效性規(guī)定:

①信號(hào)形式應(yīng)滿足CPU要求;

②中斷請(qǐng)求信號(hào)應(yīng)被有效地記錄,以便CPU能夠檢測(cè)到;

③一旦某個(gè)中斷請(qǐng)求被處理完,則該中斷請(qǐng)求信號(hào)應(yīng)及時(shí)撤銷。2)中斷排隊(duì)(即中斷優(yōu)先級(jí))

中斷請(qǐng)求是隨機(jī)發(fā)生的,有時(shí)多個(gè)中斷源會(huì)同時(shí)提出中斷請(qǐng)求,由于CPU每次只能相應(yīng)一個(gè)中斷源的中斷請(qǐng)求,因此中斷系統(tǒng)必須根據(jù)各中斷源的輕重緩急,安排一個(gè)優(yōu)先順序,這就是中斷排隊(duì)。中斷排隊(duì)可以采用硬件方法實(shí)現(xiàn),也可以采用軟件方法實(shí)現(xiàn)。

3)中斷響應(yīng)

CPU對(duì)內(nèi)部中斷源提出的中斷請(qǐng)求必須接受,而對(duì)外部中斷源產(chǎn)生的中斷請(qǐng)求是否響應(yīng)則取決于外中斷源類型及響應(yīng)條件。如CPU對(duì)非屏蔽中斷請(qǐng)求會(huì)立即做出響應(yīng),而對(duì)可屏蔽中斷請(qǐng)求則要根據(jù)當(dāng)時(shí)的條件做出反應(yīng)。CPU在每條指令執(zhí)行的最后一個(gè)時(shí)鐘周期對(duì)外部中斷進(jìn)行檢測(cè)。

中斷相應(yīng)過程是硬件軟件相互配合的過程,不同系統(tǒng)有不同的實(shí)現(xiàn)方法,一般有一下兩種:

中斷隱指令:CPU相應(yīng)中斷后,由硬件電路直接向CPU提供調(diào)用指令的機(jī)器碼,接著CPU執(zhí)行這條,而轉(zhuǎn)入中斷程序入口地址。

中斷矢量:由請(qǐng)求中斷的外設(shè)向CPU提供中斷矢量,CPU在中斷矢量表中查找對(duì)應(yīng)中斷矢量的中斷入口地址,并轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。8086/8088系統(tǒng)響應(yīng)可屏蔽中斷INTR的條件為:

①指令執(zhí)行結(jié)束;

②CPU處于開中斷狀態(tài)(IF=1);

③沒有發(fā)生復(fù)位(RESET)、保持(HOLD)和非屏蔽中斷請(qǐng)求(NMI);

④開中斷指令(STI)和中斷返回指令(IRET)執(zhí)行完,需要再執(zhí)行一條指令才能響應(yīng)INTR。3)斷點(diǎn)、現(xiàn)場(chǎng)保護(hù)

為了能在中斷處理結(jié)束時(shí),使CPU回到被中斷程序的斷點(diǎn)處接著執(zhí)行,需要對(duì)被中斷程序的斷點(diǎn)信息進(jìn)行保護(hù)。不同的CPU所做的斷點(diǎn)保護(hù)操作不一樣,8086/8088CPU采取硬件自動(dòng)保護(hù)斷點(diǎn)地址(段地址和偏移量)和標(biāo)志寄存器內(nèi)容的方法。現(xiàn)場(chǎng)其他信息的保護(hù)則需要通過軟件在中斷服務(wù)程序中完成。

4)中斷服務(wù)

中斷服務(wù)是完成對(duì)所識(shí)別中斷源的功能性處理。不同的中斷源,要求CPU對(duì)其進(jìn)行的處理可能各不相同,所以其中斷服務(wù)程序的內(nèi)容、復(fù)雜程度也就不同,這是整個(gè)中斷處理的核心。5)現(xiàn)場(chǎng)恢復(fù)即將現(xiàn)場(chǎng)保護(hù)時(shí)壓入堆棧的內(nèi)容按相反的順序彈出堆棧,放到原存儲(chǔ)處。6)中斷返回

CPU硬件斷點(diǎn)保護(hù)的相反操作,使CPU能夠從中斷處理程序返回到原程序被打斷處繼續(xù)執(zhí)行。通過在中斷服務(wù)程序末尾安排一條中斷返回指令實(shí)現(xiàn)。7.1.3中斷優(yōu)先級(jí)

目前采用的解決中斷優(yōu)先級(jí)控制的方案有:

軟件查詢;

硬件鏈?zhǔn)絻?yōu)先級(jí)排隊(duì)電路;

③硬件優(yōu)先級(jí)編碼比較電路;①

軟件查詢法

XORAL,ALMOVDX,340HINAL,DXRCRAL,1JCSV0RCRAL,1JCSV1RCRAL,1JCSV2RCRAL,1JCSV32.硬件鏈?zhǔn)絻?yōu)先級(jí)排隊(duì)電路:菊花鏈邏輯電路INTAinIREQINTR≥1=1

≥1INTAoutDB三態(tài)門中斷向量碼E外設(shè)接口中斷確認(rèn)菊花鏈邏輯電路7.1.4中斷嵌套

有了優(yōu)先級(jí)控制邏輯,就可以形成中斷嵌套(即中斷套中斷),并可在多級(jí)上進(jìn)行。

要保證多級(jí)中斷嵌套的順利進(jìn)行,需做以下工作:

在中斷處理程序中要有開中斷指令;

要設(shè)置足夠大的堆棧;

③要正確地操作堆棧。7.28086微處理器的中斷方式7.3中斷管理8088的中斷系統(tǒng)采用向量中斷機(jī)制,也叫矢量中斷或者類型中斷。能夠處理256個(gè)中斷。用中斷向量號(hào)0-255區(qū)別。這256種不同類型的中斷可以來自外部,即由硬件產(chǎn)生,也可以來自內(nèi)部,即由軟件(中斷指令)產(chǎn)生,或者滿足某些特定條件后引發(fā)CPU中斷??善帘沃袛噙€需要借助專用中斷控制器Intel8259A實(shí)現(xiàn)優(yōu)先權(quán)管理8086的中斷類型中斷邏輯INTO指令單步中斷除法錯(cuò)誤INTN指令CPUINTRNMI8259A中斷控制器IR0IR1IR2IR3IR4IR5IR6IR7可屏蔽中斷外設(shè)中斷源

INTA內(nèi)部中斷除法錯(cuò)中斷單步中斷斷點(diǎn)中斷溢出中斷指令中斷非屏蔽中斷外部中斷非屏蔽中斷可屏蔽中斷特點(diǎn)1.外部中斷外部中斷是由于8086外部提出中斷請(qǐng)求引起的程序中斷。利用外部中斷,微機(jī)系統(tǒng)可以實(shí)時(shí)響應(yīng)外部設(shè)備的數(shù)據(jù)傳送請(qǐng)求,能夠及時(shí)處理外部意外或緊急事件。外部中斷是由處理器外部隨機(jī)產(chǎn)生的,是真正的中斷(Interrupt)。內(nèi)部中斷是處理器執(zhí)行程序出現(xiàn)異常,所以經(jīng)常被稱為異常(Exception)。⑴

非屏蔽中斷通過非屏蔽中斷請(qǐng)求信號(hào)NMI向微處理器提出的中斷請(qǐng)求,微處理器無法禁止,將在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),這個(gè)中斷被稱為非屏蔽中斷。8086的非屏蔽中斷的向量號(hào)為2。非屏蔽中斷主要用于處理系統(tǒng)的意外或故障。例如:電源掉電前的數(shù)據(jù)保護(hù)存儲(chǔ)器讀寫錯(cuò)誤的處理⑵

可屏蔽中斷(INTR)外部通過可屏蔽中斷請(qǐng)求信號(hào)向微處理器提出的中斷,微處理器在允許可屏蔽中斷的條件下,在當(dāng)前指令執(zhí)行結(jié)束予以響應(yīng),同時(shí)輸出可屏蔽中斷響應(yīng)信號(hào),這個(gè)中斷就是可屏蔽中斷8086的可屏蔽中斷請(qǐng)求和響應(yīng)信號(hào)分別是INTR和INTA*;由IF標(biāo)志控制可屏蔽中斷是否允許響應(yīng);向量號(hào)來自外部中斷控制器8086通常需要配合中斷控制器8259A共同處理可屏蔽中斷可屏蔽中斷主要用于主機(jī)與外設(shè)交換數(shù)據(jù)INTR中斷處理過程(無嵌套)中斷斷點(diǎn)IRET中斷服務(wù)子程序主程序自動(dòng)關(guān)中斷保護(hù)PSW保護(hù)斷點(diǎn)INTA響應(yīng)中斷獲取中斷類型獲取中斷向量保護(hù)現(xiàn)場(chǎng)中斷處理恢復(fù)現(xiàn)場(chǎng)恢復(fù)PSW恢復(fù)斷點(diǎn)2.內(nèi)部中斷內(nèi)部中斷是由于8086內(nèi)部執(zhí)行程序出現(xiàn)異常引起的程序中斷利用內(nèi)部中斷,微處理器為用戶提供了發(fā)現(xiàn)、調(diào)試并解決程序執(zhí)行時(shí)異常情況的有效途徑例如,ROM-BIOS和DOS系統(tǒng)利用內(nèi)部中斷為程序員提供了各種功能調(diào)用(1)除法錯(cuò)中斷類型號(hào)為00H在執(zhí)行除法指令時(shí),若除數(shù)為0或商超過了寄存器所能表達(dá)的范圍,則產(chǎn)生一個(gè)向量號(hào)為0的內(nèi)部中斷,稱為除法錯(cuò)中斷。例如:movbl,0idiv

bl

;除數(shù)BL=0,產(chǎn)生除法錯(cuò)中斷movax,200hmovbl,1divbl

;商=200H,不能用AL表達(dá) ;產(chǎn)生除法錯(cuò)中斷(2)單步中斷(陷阱中斷)類型號(hào)為01H若CPU內(nèi)的標(biāo)志寄存器FLAGS中的跟蹤標(biāo)志TF=1且中斷允許標(biāo)志IF=1時(shí),每執(zhí)行完一條指令,CPU將引起一次類型號(hào)為1的內(nèi)部中斷,稱為單步中斷。單步中斷是一種很有用的調(diào)試方法,每執(zhí)行一條指令后停下來,顯示所有寄存器的內(nèi)容和標(biāo)志位的值以及下一條要執(zhí)行的指令,以便用戶檢查該條指令進(jìn)行了什么操作,是否得到了預(yù)期結(jié)果。例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷實(shí)現(xiàn)對(duì)程序的單步調(diào)試(3)斷點(diǎn)中斷類型號(hào)為03H提供給用戶一個(gè)調(diào)試手段,它的中斷類型號(hào)為3。通常在DEBUG調(diào)試程序時(shí),可在程序中任意指定斷點(diǎn)地址,當(dāng)CPU執(zhí)行到斷點(diǎn)時(shí)便產(chǎn)生中斷,同時(shí)顯示當(dāng)前各寄存器的內(nèi)容和標(biāo)志位的值以及下一條要執(zhí)行的指令,供用戶檢查在斷點(diǎn)以前的程序運(yùn)行是否正常。設(shè)置斷點(diǎn)實(shí)際上是把一條斷點(diǎn)指令I(lǐng)NT3插入程序中,CPU每執(zhí)行到斷點(diǎn)處的INT3指令便產(chǎn)生一個(gè)中斷。(4)溢出中斷類型號(hào)為04H在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),若溢出標(biāo)志OF為1,則產(chǎn)生一個(gè)向量號(hào)為4的內(nèi)部中斷,被稱為溢出中斷。例如,才用下面的指令用來測(cè)試加法的溢出:movax,2000haddax,7000h

;2000H+7000H=9000H,溢出:OF=1into ;因?yàn)镺F=1,所以產(chǎn)生溢出中斷(5)指令中斷在執(zhí)行中斷調(diào)用指令I(lǐng)NTn時(shí)產(chǎn)生的一個(gè)向量號(hào)為n(0-255)的內(nèi)部中斷,稱為指令中斷。其中n在理論上可取值0-255。當(dāng)n=0、1、3、4時(shí),就是上述的四種內(nèi)部中斷。INTn中已有不少被微機(jī)系統(tǒng)的ROM-BIOS和DOS功能調(diào)用所定義,它們的操作大多涉及外部設(shè)備的I/O操作。

內(nèi)部中斷的特點(diǎn)除單步中斷以外,所有內(nèi)部中斷都不能被屏蔽。所有內(nèi)部中斷不從外部接口中讀取中斷類型號(hào)也不發(fā)送中斷響應(yīng)信號(hào),即不執(zhí)行中斷響應(yīng)的總線周期。指令中斷沒有隨機(jī)性,外中斷是隨機(jī)性的。指令中斷是由程序中指令引起的,指令位置事先已知。外中斷是隨機(jī)性的,由I/O設(shè)備引起,何時(shí)引起事先未知。除單步中斷外,所有內(nèi)部中斷的優(yōu)先權(quán)都比外部中斷的優(yōu)先權(quán)高。中斷優(yōu)先級(jí)8086/8088的中斷優(yōu)先級(jí)由高到低的順序排列如下:除法出錯(cuò)中斷、INTn、INTO;非屏蔽中斷NMI;可屏蔽中斷INTR;單步中斷8086的中斷響應(yīng)過程中斷嵌套中斷嵌套是指當(dāng)CPU因響應(yīng)某一中斷源的中斷請(qǐng)求而正在執(zhí)行它的中斷服務(wù)程序時(shí),若中斷是開放的,那它必然可以把正在執(zhí)行的中斷服務(wù)程序暫停下來轉(zhuǎn)而響應(yīng)和處理中斷優(yōu)先級(jí)更高的中斷請(qǐng)求,等到處理完后再轉(zhuǎn)回來繼續(xù)執(zhí)行原來的中斷服務(wù)程序。8086的中斷向量表中斷向量:中斷服務(wù)程序的入口地址(首地址)邏輯地址含有段地址CS和偏移地址IP(32位)每個(gè)中斷向量的低字是偏移地址、高字是段地址,需占用4個(gè)字節(jié)8088微處理器從物理地址000H開始,依次安排各個(gè)中斷向量,向量號(hào)也從0開始256個(gè)中斷占用1KB區(qū)域,就形成中斷向量表向量號(hào)為N的中斷向量的物理地址=N×4其中:IP=(4N,4N+1)CS=(4N+2,4N+3)8086的中斷向量表返回向量號(hào)255的CS值用戶中斷(向量號(hào)255)0000H:03FCH向量號(hào)255的IP值……向量號(hào)2的CS值非屏蔽中斷(向量號(hào)2)0000H:0007H向量號(hào)2的IP值向量號(hào)1的CS值單步中斷(向量號(hào)1)0000H:0003H向量號(hào)1的IP值向量號(hào)0的CS值除法錯(cuò)中斷(向量號(hào)0)0000H:0000H向量號(hào)0的IP值設(shè)置中斷向量前面提到8086/8088利用向量中斷的方法,一旦響應(yīng)中斷可方便地找到中斷服務(wù)程序的入口地址。它是在規(guī)定的內(nèi)存區(qū)域中,每4個(gè)連續(xù)字節(jié)存放一個(gè)中斷向量,可建立一個(gè)1K字節(jié)大小的中斷向量表。盡管表規(guī)定了內(nèi)存區(qū)域,但表中的內(nèi)容,除已被系統(tǒng)定義的中斷類型的中斷向量以外,其它新增加的中斷類型要在中斷向量表中由用戶建立相應(yīng)的中斷向量。為了讓CPU響應(yīng)中斷后正確轉(zhuǎn)入中斷服務(wù)程序,中斷向量表的建立是非常重要的。介紹用三種方法來為中斷類型N設(shè)置中斷向量。1)直接裝入法PUSHDSXORAX,AXMOVDS,AXMOVBX,N*4MOVAX,OFFSETNEWINTMOVWORDPTR[BX],AXMOVAX,SEGNEWINTMOVWORDPTR[BX+2],AXPOPDS

NEWINTPROC

IRETNEWINTENDP2)使用串送存指令裝入法MOVAX,0MOVES,AXMOVDI,N*4MOVAX,OFFSETNEWINTCLDSTOSWMOVAX,SEGNEWINTSTOSW3)使用DOS功能調(diào)用設(shè)置中斷向量設(shè)置中斷向量是把由AL指定的中斷類型N的中斷向量DS:DX放置在中斷向量表中。預(yù)置:AH=25H功能號(hào)

AL=N中斷類型號(hào)

DS:DX=中斷向量執(zhí)行:INT21H例如:PUSHDSMOVAX,SEGNEWINTMOVDS,AXMOVDX,OFFSETNEWINTMOVAL,NMOVAH,25HINT21HPOPDS保存原中斷向量用戶可以利用保留的中斷類型號(hào)擴(kuò)充自己需要的中斷功能,對(duì)新增加的中斷功能要在中斷向量表中建立相應(yīng)的中斷向量。如果新增加的中斷功能只供自己使用,或用自己編寫的中斷處理功能時(shí),要注意保存原中斷向量。在設(shè)置自己的中斷向量時(shí),應(yīng)先保存原中斷向量再設(shè)置新的中斷向量,在程序結(jié)束之前恢復(fù)原中斷向量。取中斷向量是把由AL指定的中斷類型N的中斷向量從中斷向量表中取到ES:BX中。預(yù)置:AH=35H功能號(hào)

AL=N中斷類型號(hào)

ES:BX=中斷向量執(zhí)行:INT21H例如:編寫一個(gè)程序段,實(shí)現(xiàn)將中斷類型號(hào)為N的原中斷向量取出并存入到以NEWOLD開始的4個(gè)單元。MOVAL,NMOVAH,35HINT21HMOVNEWOLD,ESMOVNEWOLD+2,BX5.中斷控制方式的必要性

分時(shí)操作

實(shí)時(shí)處理

③故障處理

④程序運(yùn)行的必需機(jī)制

⑤其他§7.3中斷控制器8259A一、8259A的引腳信號(hào),編程結(jié)構(gòu)和工作原理1、8259A的外部引腳信號(hào)和CPU相連

D0~D7:數(shù)據(jù)線

INT:中斷請(qǐng)求(8259A→CPU)

A0:片內(nèi)端口選擇INTA:中斷響應(yīng)信號(hào)RD:讀信號(hào)WR:寫信號(hào)CS:片選信號(hào)和外設(shè)相連

IR7~I(xiàn)R0:中斷請(qǐng)求(外設(shè)→8259A)和同類芯片相連

CAS0~CAS2:指出具體從片SP/EN:主/從片選擇(輸入)或啟動(dòng)總線驅(qū)動(dòng)器(輸出)2、8259A的編程結(jié)構(gòu)和工作原理編程結(jié)構(gòu)7個(gè)寄存器初始化命令字ICW1~ICW4操作命令字OCW1~OCW3控制部件IRR:中斷請(qǐng)求寄存器PR:中斷優(yōu)先級(jí)裁決器ISR:中斷服務(wù)寄存器處理部件8259A對(duì)外部中斷的處理過程:①IRR接收中斷請(qǐng)求并鎖存;②IMR決定是否此請(qǐng)求通過;③中斷優(yōu)先級(jí)裁決器把新請(qǐng)求和正在處理的中斷進(jìn)行比較,如新中斷優(yōu)先級(jí)高,則向CPU發(fā)中斷請(qǐng)求;④若IF=1,則CPU執(zhí)行完當(dāng)前指令后響應(yīng)此中斷,即從INTA引腳回送兩個(gè)負(fù)脈沖;二、8259A的工作方式1、設(shè)置優(yōu)先級(jí)的方式:①全嵌套方式:優(yōu)先級(jí)固定,次序由高到低依次為0~7;②特殊全嵌套方式:可響應(yīng)同級(jí)中斷;8259A8259AINT主片:從片:01234567

81012149111315優(yōu)先級(jí)次序:主片:0,1

從片:8~15

主片:3~7

③優(yōu)先級(jí)自動(dòng)循環(huán)方式:某中斷被響應(yīng)后,優(yōu)先級(jí)自動(dòng)降為最低,初始狀態(tài)IR0為最高優(yōu)先級(jí);④優(yōu)先級(jí)特殊循環(huán)方式:初始狀態(tài)優(yōu)先級(jí)由編程設(shè)定;2、屏蔽中斷源的方式①普通屏蔽方式:8259A的每個(gè)中斷請(qǐng)求輸入端都可以通過對(duì)應(yīng)屏蔽位的設(shè)置被屏蔽;②特殊屏蔽方式:應(yīng)用于中斷服務(wù)程序中,可在某一段區(qū)域內(nèi)響應(yīng)低級(jí)中斷;3、結(jié)束中斷處理的方式問題:為什么要進(jìn)行結(jié)束中斷處理?具體動(dòng)作:對(duì)應(yīng)ISn位清0①中斷自動(dòng)結(jié)束方式:只有一片8259A,且不允許嵌套,對(duì)應(yīng)的ISn位在第二個(gè)INTA脈沖結(jié)束時(shí)被請(qǐng)除;②一般的中斷結(jié)束方式:用于全嵌套方式,中斷結(jié)束時(shí)自動(dòng)清除優(yōu)先級(jí)最高的ISn位;③特殊的中斷結(jié)束方式:用于非全嵌套方式;中斷結(jié)束時(shí)清除指定的ISn位;4、連接系統(tǒng)總線的方式①緩沖方式:通過總線驅(qū)動(dòng)器和數(shù)據(jù)總線相連;②非緩沖方式:直接和數(shù)據(jù)總線相連;B0~78286TOEA0~7SP/END0~78259A+5V數(shù)據(jù)總線緩沖方式:SP/END0~78259A

(從片)數(shù)據(jù)總線非緩沖方式:SP/END0~78259A

(主片或單片)數(shù)據(jù)總線+5V5、引入中斷請(qǐng)求的方式:①邊沿觸發(fā)方式:上升沿觸發(fā);②電平觸發(fā)方式:高電平觸發(fā);③中斷查詢方式:CPU靠查詢確定為哪個(gè)設(shè)備服務(wù);工作過程:關(guān)中斷輸出OCW3輸入查詢字查詢字格式:I————W2W1W0當(dāng)前中斷請(qǐng)求的最高優(yōu)先級(jí)1:有請(qǐng)求0:無請(qǐng)求三、8259A的初始化命令字和操作命令字1、8259A的初始化命令字①ICW1:芯片控制初始化命令字(A0=0)1LTIMADISNGLIC4是否需要ICW4=1需要是否處于級(jí)聯(lián)狀態(tài)=1單片=0級(jí)聯(lián)8086/8088系統(tǒng)中無效中斷請(qǐng)求信號(hào)形式=1電平觸發(fā)=0脈沖觸發(fā)特征位8086/8088系統(tǒng)中不用②ICW2:中斷類型碼初始化命令字(A0=1)T7T6T5T4T30008086/8088系統(tǒng)中無效中斷類型碼高5位ICW3:標(biāo)志主片/從片的初始化命令字(A0=1)級(jí)聯(lián)方式設(shè)置IR7IR6IR5IR4IR3IR2IR1IR0主片:=1,說明對(duì)應(yīng)引腳上連接有片連接主片哪一引腳00000ID2ID1ID0從片:不用D0~D7INTAINTCAS08259A(3)CAS1CAS2SP/ENIR7IR0GNDD0~D7INTAINTCAS08259A(2)CAS1CAS2SP/ENIR7IR0GNDD0~D7INTAINTCAS0CAS18259A(1)CAS2SP/ENIR7IR0Vcc

控制總線數(shù)據(jù)總線OCW3的值:

8259A(1):0100100048H8259A(2):0000011006H8259A(3):0000001103H④ICW4:方式控制初始化命令字(A0=1)000SFNMBUFM/SAEOIμPM=1為8086/8088系統(tǒng)中斷結(jié)束方式=0非自動(dòng)結(jié)束方式=1自動(dòng)結(jié)束方式主片/從片選擇(緩沖方式有效)=0從片=1主片緩沖方式設(shè)定=1緩沖方式=0非緩沖方式特殊全嵌套方式設(shè)定=1特殊全嵌套方式不用2、8259A的初始化流程:送ICW1送ICW2送ICW3送ICW4準(zhǔn)備接收中斷級(jí)聯(lián)方式?需要ICW4?NNYY舉例:設(shè)某系統(tǒng)只有一片8259A,端口地址為80H和81H,邊沿觸發(fā),需設(shè)ICW4,中斷類型碼為18H~1FH,一般全嵌套方式,非自動(dòng)中斷結(jié)束,緩沖方式。程序:

MOVAL,13H OUT80H,AL MOVAL,18H OUT81H,AL MOVAL,0DH OUT81H,AL00010011需ICW4單片方式邊沿觸發(fā)000011018086/8088系統(tǒng)非自動(dòng)中斷結(jié)束主片緩沖方式一般全嵌套方式00011000中斷類型碼高五位3、8259A操作命令字①OCW1:中斷屏蔽命令字(A0=1)M7M6M5M4M3M2M1M0若Mi位為1,則對(duì)應(yīng)IRi的中斷請(qǐng)求就被屏蔽,若為0,則對(duì)應(yīng)IRi的中斷請(qǐng)求就被允許。舉例:設(shè)8259A端口地址為20H和21H,開放IR2和IR7中斷,其它均被屏蔽MOVAL,7BH;01111011OUT21H,AL要想讀出中斷屏蔽寄存器IMR的值:INAL,21H②OCW2:設(shè)置優(yōu)先級(jí)循環(huán)方式和中斷結(jié)束方式命令字(A0=0)RSLEOI00L2L1L0中斷等級(jí)代碼特征位中斷結(jié)束方式:=1發(fā)中斷結(jié)束命令說明L2L1L0是否有效:=0無效,=1有效中斷優(yōu)先級(jí)循環(huán)方式:=0固定優(yōu)先級(jí),=1循環(huán)優(yōu)先級(jí)R,SL,EOI的各種組合的意義:RSLEOI意義000結(jié)束優(yōu)先級(jí)自動(dòng)循環(huán)方式001一般中斷結(jié)束命令010無意義011特殊中斷結(jié)束命令,ISn由L2L1L0指定100設(shè)定優(yōu)先級(jí)自動(dòng)循環(huán)方式101一般中斷結(jié)束命令,且當(dāng)前優(yōu)先級(jí)次序左移一位110設(shè)定優(yōu)先級(jí)特殊循環(huán)方式,由L2L1L0指定最低優(yōu)先級(jí)111特殊中斷結(jié)束命令,并設(shè)定為最低優(yōu)先級(jí)3、OCW3:(A0=0)功能設(shè)置和撤消特殊屏蔽命令設(shè)置中斷查詢命令設(shè)置對(duì)8259A內(nèi)部寄存器的讀出命令0ESMMSMM01PRRRIS=0讀IRR=1讀ISR=1讀IRR和ISR內(nèi)容=1中斷查詢工作方式=1設(shè)置特殊屏蔽方式=0撤消特殊屏蔽方式SMM允許位:=1SMM有效,=0SMM無效特征位不用P,RR,RIS的各組合的意義:PRRRIS意義1××讀查詢字00×不讀寄存器010讀IRR011讀ISR舉例:設(shè)某系統(tǒng)只有一片8259A,端口地址為20H、21H,編程序?qū)?259A的IRR,ISR和IMR三個(gè)寄存器的內(nèi)容讀出,存入數(shù)據(jù)段BUF開始的單元。程序:

MOVAL,0AH OUT20H,AL INAL,20H MOVBUF,AL MOVAL,0BH OUT20H,AL INAL,20H MOVBUF+1,AL INAL,21H MOVBUF+2,AL讀IRR內(nèi)容讀ISR內(nèi)容讀IMR內(nèi)容初始化命令字和操作命令字小結(jié):①占用端口地址:

A0=0:ICW1,OCW2,OCW3A0=1:ICW2,ICW3,ICW4,OCW1②區(qū)分方法:

A0=0,按特定位區(qū)分:

ICW1—D4=1,

OCW2—D4D3=00,

OCW3—D4D3=01A0=1,按寫入順序區(qū)分:ICW2,ICW3,ICW4在ICW1之后順序?qū)懭?,OCW1在初始化后任一時(shí)刻寫入。③寫入時(shí)間:ICW—初始化時(shí),OCW—工作過程中四、8259A使用中的一個(gè)問題電平觸發(fā)方式下中斷請(qǐng)求信號(hào)應(yīng)何時(shí)撤消?INTAIR正確:INTAIR過晚:可能引起多次中斷INTAIR過早:無法識(shí)別,自動(dòng)設(shè)為IR7五、8259A使用舉例1、關(guān)于中斷全嵌套的例子特點(diǎn):只響應(yīng)高級(jí)中斷,優(yōu)先級(jí)固定,中斷服務(wù)程序最后應(yīng)執(zhí)行中斷結(jié)束指令。條件:①主程序必須開中斷;②中斷服務(wù)程序也必須開中斷;③中斷服務(wù)程序結(jié)束時(shí)應(yīng)執(zhí)行中斷結(jié)束命令;2、關(guān)于如何使用中斷結(jié)束命令的例子初始化開中斷開中斷開中斷關(guān)中斷中斷結(jié)束命令開中斷中斷返回關(guān)中斷中斷結(jié)束命令開中斷中斷返回IR3請(qǐng)求中斷IR3中斷處理程序IR2請(qǐng)求中斷主程序IS4被清除IS3置1IR3有中斷請(qǐng)求IR4中斷處理程序IS4置1IS2被清除IS1被清除IR1中斷處理程序IS1置1IS2置1IR2中斷處理程序初始化STISTI中斷結(jié)束命令STIIRET中斷結(jié)束命令STI中斷結(jié)束命令STIIRET中斷結(jié)束命令I(lǐng)RETIRETIR2和IR4有中斷請(qǐng)求IR1有中斷請(qǐng)求IR3中斷處理程序IS3被清除ISR=00000000ISR=00000100ISR=00000110ISR=00000100ISR=00010000ISR=00011000ISR=00010000ISR=00000000ISR=000000003、關(guān)于特殊屏蔽方式的例子特殊屏蔽方式的使用方法:通過OCW3使8259A工作于特殊屏蔽方式,再用OCW1對(duì)屏蔽寄存器中本級(jí)中斷的對(duì)應(yīng)位置位,即可使系統(tǒng)除了本級(jí)中斷外,響應(yīng)其他任何未被屏蔽的中斷請(qǐng)求。舉例:設(shè)8259A的偶地址端口為80H,奇地址端口為81H,且系統(tǒng)當(dāng)前正在為IR4進(jìn)行中斷服務(wù)。……CLIMOVAL,68HOUT80H,ALINAL,81HORAL,10HOUT81H,ALSTI……CLIINAL,81HANDAL,0EFHOUT81H,ALMOVAL,48HOUT80H,ALSTI……MOVAL,20HOUT80H,ALIRET;01001000撤消特殊屏蔽方式;IR4對(duì)應(yīng)屏蔽位置1;IR4對(duì)應(yīng)屏蔽位清0;01101000設(shè)置特殊屏蔽方式;00100000中斷結(jié)束命令六、多片8259A組成的主從式中斷系統(tǒng)說明:①每片8259A都要分配兩個(gè)端口地址;②主片初始化時(shí),ICW1中的SNGL位必須為0,ICW3指明哪個(gè)引腳連有從片,一般通過ICW4的SFNM位設(shè)為特殊全嵌套方式;③從片初始化時(shí),ICW1中的SNGL位也必須為0,ICW3指明該從片接主片的哪個(gè)引腳;主從式中斷系統(tǒng)的響應(yīng)過程:①從片的INT引腳往主片的IRn引腳上發(fā)送一個(gè)中斷請(qǐng)求信號(hào);②該中斷請(qǐng)求信號(hào)通過主片的INT引腳送到CPU;③CPU回送兩個(gè)INTA信號(hào),同時(shí)送到主片和各從片;⑤被選通的從片收到第一個(gè)INTA信號(hào)后,將相應(yīng)ISn位置1,同時(shí)清除相應(yīng)IRn位;⑥第二個(gè)INTA信號(hào)到來后,主片沒有動(dòng)作,從片將中斷類型碼送到數(shù)據(jù)總線上;④主片收到第一個(gè)INTA信號(hào)后,將相應(yīng)ISn位置1,同時(shí)清除相應(yīng)IRn位;并將從片標(biāo)號(hào)值送到CAS0~CAS2上;主從式中斷系統(tǒng)中的優(yōu)先級(jí)排列:設(shè)系統(tǒng)中有一個(gè)主片,兩個(gè)從片,且從片1接主片IR1引腳,從片2接主片IR2引腳,則優(yōu)先級(jí)排列如下:主片:IR0

從片1:IR0~IR7

從片2:IR0~IR7

主片:IR3~IR7習(xí)題與思考題1、中斷控制器的功能;2、8259A的編程結(jié)構(gòu)和工作原理;3、8259A各工作方式特點(diǎn)和區(qū)別;4、8259A的初始化流程;5、讀IRR,ISR和IMR的方法;6、電平觸發(fā)方式下中斷請(qǐng)求信號(hào)應(yīng)何時(shí)撤消?7、看懂8259A的應(yīng)用實(shí)例;8、主從式中斷系統(tǒng)中優(yōu)先級(jí)的排列次序;

8.3.38253-5的工作方式

在任何一種方式下,都必須先向8253寫入控制字,控制字還起復(fù)位作用,它使OUT端變?yōu)楣ぷ鞣绞街幸?guī)定的狀態(tài)和對(duì)計(jì)數(shù)初值寄存器CR清零;然后再寫入計(jì)數(shù)初值到CR中,其最大值為0000H。

一、方式0—計(jì)數(shù)結(jié)束中斷方式(InterruptonTetminalCount)

方式0是典型的事件計(jì)數(shù)用法,CLK端作為事件計(jì)數(shù)輸入信號(hào),當(dāng)計(jì)數(shù)執(zhí)行單元CE為零時(shí),OUT端變?yōu)楦唠娖?,它可作為中斷?qǐng)求信號(hào)。 方式0的時(shí)序波形見圖。 方式0的特點(diǎn)和應(yīng)用(1)計(jì)數(shù)過程由軟件啟動(dòng)。(2)GATE的作用是開放計(jì)數(shù)或禁止計(jì)數(shù)。(3)OUT端由低變高表示計(jì)數(shù)過程結(jié)束。

二、方式1—硬件可重觸發(fā)單穩(wěn)態(tài)方式(HardwareRetriggerableOne-Shot)

計(jì)數(shù)器相當(dāng)于一個(gè)可編程的單穩(wěn)態(tài)電路,觸發(fā)輸入為GATE信號(hào),由GATE的上升沿觸發(fā)計(jì)數(shù)器工作。 方式1的時(shí)序波形見圖。方式1的時(shí)序波形圖。方式1的特點(diǎn)和應(yīng)用(1)計(jì)數(shù)器的啟動(dòng)只能由門控脈沖的上升沿產(chǎn)生,即只能用硬件啟動(dòng)。(2)OUT輸出為一個(gè)單穩(wěn)態(tài)負(fù)脈沖,其脈寬為計(jì)數(shù)初值個(gè)CLK時(shí)鐘脈沖的周期之和。(3)在形成單穩(wěn)態(tài)脈沖過程中,可以重觸發(fā)。(4)在微機(jī)實(shí)時(shí)控制系統(tǒng)中常用作監(jiān)視時(shí)鐘(WatchdogTimer)。三、方式2—速率發(fā)生器(RateGenenator)

方式2能產(chǎn)生周期性的定時(shí)信號(hào), 稱為速率發(fā)生器, 又稱為N分頻方式和周期性定時(shí)器方式。 方式2的時(shí)序波形見圖。方式2的時(shí)序波形圖。方式2的特點(diǎn)和應(yīng)用(1)CR內(nèi)容能自動(dòng)地、重復(fù)地裝入到CE中,OUT端上就能連續(xù)地輸出周期性分頻信號(hào)。(2)既可軟件啟動(dòng),又可硬件啟動(dòng)。(3)改變計(jì)數(shù)初值,即可獲得不同速率的OUT輸出信號(hào)。(4)負(fù)脈沖寬度均為一個(gè)CLK脈沖的周期。(5)主要應(yīng)用是作為分頻器和時(shí)基信號(hào)。四、方式3—方波方式(SquareWareMode)

方式3的操作方式除OUT輸出方波之外,和方式2相似。方波的重復(fù)周期是計(jì)數(shù)初值個(gè)CLK脈沖周期之和。 方式3的時(shí)序波形見圖。方式3的時(shí)序波形圖。方式3的特點(diǎn)和應(yīng)用(1)方式3的計(jì)數(shù)過程是CE內(nèi)容減2。(2)軟件啟動(dòng)和硬件啟動(dòng)兩種。(3)改變計(jì)數(shù)初值,OUT端將輸出不同頻率。(4)主要應(yīng)用作為方波發(fā)生器和波特率發(fā)生器。 五、方式4—軟件觸發(fā)選通方式(SofewaveTriggeredstrode)

當(dāng)寫入方式控制字CW后,OUT端輸出高電平。在寫入計(jì)數(shù)初值后的一個(gè)CLK脈沖開始減1計(jì)數(shù),直到CE為零時(shí),使OUT輸出變?yōu)榈碗娖剑?dāng)持續(xù)一個(gè)CLK脈沖周期后又恢復(fù)到高電平。在OUT端產(chǎn)生一個(gè)CLK脈沖周期寬度的選通負(fù)脈沖輸出。 方式4的時(shí)序波形見圖。方式4的時(shí)序波形圖。

六、方式5—硬件觸發(fā)選通方式(HardwareTriggeredStrobe)

方式5和方式1有些相似。CE到零時(shí)OUT端產(chǎn)生寬度為1個(gè)CLK脈沖周期的負(fù)脈沖選通輸出信號(hào)。

方式5的時(shí)序波形見圖。方式5的時(shí)序波形圖。

8.3.48253-5的初始化 一、寫入方式控制字 三個(gè)通道用的控制字端口地址是相同的,三個(gè)控制字寫入后卻存入通道對(duì)應(yīng)的寄存器中。 二、寫入計(jì)數(shù)初始值 三、讀計(jì)數(shù)值 在動(dòng)態(tài)讀計(jì)數(shù)值時(shí)可以有兩種方法:(1)以普通對(duì)計(jì)數(shù)器端口讀的方法取得當(dāng)前計(jì)數(shù)值。(2)鎖存計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值。工作方式控制字SC1,SC0—計(jì)數(shù)器選擇D7D6D5D4D3D2D1D0SC1SC0RL1RL0M2M1M0BCDSC1SC0計(jì)數(shù)器00CNT001CNT110CNT211不用RL1,RL0—CPU讀/寫操作RL1RL0操作方式00計(jì)數(shù)器鎖存操作(供CPU讀)01只讀/寫計(jì)數(shù)器低8位10只讀/寫計(jì)數(shù)器高8位11先讀/寫底8位,再讀/寫高8位M2M1M0—工作方式選擇BCD—計(jì)數(shù)方式選擇M2M1M0工作方式000方式0001方式1X10方式2X11方式3100方式4101方式5016位二進(jìn)制計(jì)數(shù)14位十進(jìn)制(BCD)碼計(jì)數(shù)選通信號(hào)GATE的功能低電平或進(jìn)入低電平上升邊沿高電平方式0禁止計(jì)數(shù)——允許計(jì)數(shù)方式1——1.初始化和計(jì)數(shù)2.下一個(gè)時(shí)鐘后輸出變?yōu)榈碗娖健绞?1.禁止計(jì)數(shù)2.使輸出立即變?yōu)楦唠娖?.初始化和計(jì)數(shù)2.計(jì)數(shù)器重新裝入允許計(jì)數(shù)方式31.禁止計(jì)數(shù)2.使輸出立即變?yōu)楦唠娖?.初始化和計(jì)數(shù)2.計(jì)數(shù)器重新裝入允許計(jì)數(shù)方式4禁止計(jì)數(shù)——允許計(jì)數(shù)方式5——初始化和計(jì)數(shù)——

8.3.58253-5的應(yīng)用舉例 一、用8253-5監(jiān)視一個(gè)生產(chǎn)流水線主程序?yàn)椋?/p>

M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論