大綜合課件微機原理基礎(chǔ)_第1頁
大綜合課件微機原理基礎(chǔ)_第2頁
大綜合課件微機原理基礎(chǔ)_第3頁
大綜合課件微機原理基礎(chǔ)_第4頁
大綜合課件微機原理基礎(chǔ)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章中斷技術(shù)教學(xué)重點中斷的概念及中斷的實現(xiàn)中斷響應(yīng)過程8088CPU的中斷系統(tǒng)中斷類型碼和中斷向量表中斷控制器8259A

外部中斷服務(wù)程序的編寫2.中斷源引起CPU中斷的事件——中斷源。例如:外設(shè)——請求輸入輸出數(shù)據(jù),報告故障等事件——掉電、硬件故障、軟件錯誤、非法操作、定時時間到等中斷源分為:外部中斷、內(nèi)部中斷內(nèi)部中斷:CPU內(nèi)部執(zhí)行程序時自身產(chǎn)生的中斷外部中斷:CPU以外的設(shè)備、部件產(chǎn)生的中斷

8086/8088的外部中斷信號:INTR、NMIINTR——可屏蔽中斷請求,高電平有效,受IF標(biāo)志的控制。IF=1時,執(zhí)行完當(dāng)前指令后CPU對它作出響應(yīng)。NMI——非屏蔽中斷請求,上升沿有效,任何時候CPU都要響應(yīng)此中斷請求信號。2)中斷處理(中斷服務(wù))中斷服務(wù)子程序特點為“遠(yuǎn)”過程(類型為FAR)要用IRET指令返回中斷服務(wù)子程序要做的工作保護(hù)現(xiàn)場(PUSH

reg’s)

開中斷(STI)

進(jìn)行中斷處理

恢復(fù)現(xiàn)場(POP

reg’s)

中斷返回(IRET)

7.3中斷控制器8259AIntel8259A是可編程中斷控制器PIC可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中斷8259A的基本功能一片8259A可以管理8級中斷,可擴展至64級每一級中斷都可單獨被屏蔽或允許在中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號8259A設(shè)計有多種工作方式,可通過編程選擇7.3.18259A的內(nèi)部結(jié)構(gòu)和引腳D7~D0INTAINT中斷請求寄存器中斷屏蔽寄存器數(shù)據(jù)總線緩沖器IR0IR7讀/寫控制邏輯級聯(lián)緩沖器比較器RDWRA0CSCAS0CSA1CAS2SP/EN優(yōu)先權(quán)判別電路中斷服務(wù)寄存器控制邏輯1.中斷控制中斷請求寄存器IRR保存8條外界中斷請求信號IR0~I(xiàn)R7的請求狀態(tài)Di位為1表示IRi引腳有中斷請求;為0表示無請求中斷服務(wù)寄存器ISR保存正在被8259A服務(wù)著的中斷狀態(tài)Di位為1表示IRi中斷正在服務(wù)中;為0表示沒有被服務(wù)中斷屏蔽寄存器IMR保存對中斷請求信號IR的屏蔽狀態(tài)Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許2.與處理器接口A0RD*WR*CS*功能0100110000101010×110×××1寫入ICW1、OCW2和OCW3寫入ICW2~I(xiàn)CW4和OCW1讀出IRR、ISR和查詢字讀出IMR數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)3.中斷級連一個系統(tǒng)中,8259A可以級連,有一個主8259A,若干個(最多8個)從8259A級連時,主8259A的三條級連線CAS0~CAS2作為輸出線,連至每個從8259A的CAS0~CAS2每個從8259A的中斷請求信號INT,連至主8259A的一個中斷請求輸入端IR主8259A的INT線連至CPU的中斷請求輸入端SP*/EN*在非緩沖方式下,規(guī)定該8259A是主片(SP*=1)還是從片(SP*=0)示例7.3.28259A的工作方式普通全嵌套方式特殊全嵌套方式自動循環(huán)方式特殊循環(huán)方式優(yōu)先權(quán)固定方式優(yōu)先權(quán)循環(huán)方式設(shè)置優(yōu)先權(quán)方式普通中斷結(jié)束方式特殊中斷結(jié)束方式自動中斷結(jié)束方式非自動中斷結(jié)束方式結(jié)束中斷處理方式屏蔽中斷源方式普通屏蔽方式特殊屏蔽方式中斷觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式數(shù)據(jù)線連接方式緩沖方式非緩沖方式7.3.38259A的編程初始化編程8259A開始工作前,必須進(jìn)行初始化編程給8259A寫入初始化命令字ICW中斷操作編程在8259A工作期間可以寫入操作命令字OCW將選定的操作傳送給8259A,使之按新的要求工作還可以讀取8259A的信息,以便了解他的工作狀態(tài)1.初始化命令字ICW初始化命令字ICW最多有4個8259A在開始工作前必須寫入必須按照ICW1~I(xiàn)CW4順序?qū)懭隝CW1和ICW2是必須送的ICW3和ICW4由工作方式?jīng)Q定流程D7D6D5D4D3D2D1D0ICW1×××1LTIM×SNGLIC4D7D6D5D4D3D2D1D0×——表示可以任意為1為0都可以(建議為0)1——只能為1,作為標(biāo)志中斷觸發(fā)方式:LTIM=1,電平觸發(fā)方式LTIM=0,邊沿觸發(fā)方式規(guī)定單片或級連方式:SNGL=1,單片方式SNGL=0,級連方式是否寫入ICW4IC4=1,要寫入ICW4IC4=0,不寫入ICW4,即ICW4規(guī)定的位全為0ICW2T7T6T5T4T3×××D7D6D5D4D3D2D1D0設(shè)置中斷向量號T7~T3為中斷向量號的高5位低3位由8259A自動確定:IR0為000、IR1為001、……、IR7為111ICW3S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0級連命令字主片8259A:Si=1對應(yīng)IRi接有從片;否則IRi沒有連接從片從片8259A:ID0~I(xiàn)D2編碼說明從片INT引腳接到主片哪個IR引腳ICW4000SFNMBUFM/SAEOIμPMD7D6D5D4D3D2D1D0嵌套方式:特殊全嵌套方式(SFNM=1)普通全嵌套方式(SFNM=0)數(shù)據(jù)線的緩沖方式:緩沖方式(BUF=1)非緩沖方式(BUF=0)主片/從片選擇:主片(M/S=1)從片(M/S=0)中斷結(jié)束方式:自動中斷結(jié)束(AEOI=1)非自動中斷結(jié)束(AEOI=0)微處理器類型:16位80x86(

PM=1)8位8080/8085(

PM=0)例1、試按照如下要求對8259A設(shè)置初始化命令字:系統(tǒng)中僅用一片8259A,中斷請求信號采用邊沿觸發(fā)方式;中斷類型碼為08H~0FH;用全嵌套、緩沖、非自動結(jié)束中斷方式。8259A的端口地址為20H和21H。

MOVAL,13HOUT20H,ALMOVAL,8OUT21H,ALMOVAL,0DHOUT21H,AL

該片8259A的初始化設(shè)置的程序段如下:2.操作命令字OCW8259A工作期間,可以隨時接受操作命令字OCWOCW共有3個:OCW1~OCW3寫入時沒有順序要求,需要哪個OCW就寫入那個OCWD7D6D5D4D3D2D1D0OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字內(nèi)容寫入中斷屏蔽寄存器IMRDi=Mi對應(yīng)IRi,為1禁止IRi中斷;為0允許IRi中斷。各位互相獨立。OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和EOI配合使用產(chǎn)生中斷結(jié)束EOI命令和改變優(yōu)先權(quán)順序L2~L0的3位編碼指定IR引腳OCW30ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM設(shè)置中斷屏蔽方式P、RR和RIS規(guī)定隨后讀取的狀態(tài)字含義3.讀取狀態(tài)字CPU可讀出IRR、ISR、IMR和查詢字A0為低,由OCW3中RR和RIS位設(shè)定讀取IRR或ISR,由OCW3中P位設(shè)定讀取查詢字而A0引腳為高電平時讀取的都是IMR查詢字反映8259A是否有中斷請求D7D6D5D4D3D2D1D07.48088中斷系統(tǒng)8088的中斷系統(tǒng)采用向量中斷機制能夠處理256個中斷用中斷向量號0~255區(qū)別可屏蔽中斷還需要借助專用中斷控制器Intel8259A實現(xiàn)優(yōu)先權(quán)管理7.4.18088的中斷類型非屏蔽中斷源中斷邏輯INTO指令單步中斷除法錯誤INTN指令CPUINTRNMI可屏蔽中斷源8259A中斷控制器IR0IR1IR2IR3IR4IR5IR6IR7外設(shè)中斷源

INTA內(nèi)部中斷除法錯中斷指令中斷溢出中斷單步中斷外部中斷非屏蔽中斷可屏蔽中斷7.4.38088的中斷向量表中斷向量:中斷服務(wù)程序的入口地址(首地址)邏輯地址含有段地址CS和偏移地址IP(32位)每個中斷向量的低字是偏移地址、高字是段地址,需占用4個字節(jié)8088微處理器從物理地址000H開始,依次安排各個中斷向量,向量號也從0開始256個中斷占用1KB區(qū)域,就形成中斷向量表向量號為N的中斷向量的物理地址=N×4例3、若80x86系統(tǒng)采用的8259A的中斷類型碼為88H,試問這個中斷源的中斷請求信號應(yīng)連向8259A的哪個中斷輸人端?中斷服務(wù)程序的段地址和偏移地址應(yīng)分別填人哪兩個字單元?

88H的低3位為000,故中斷源的中斷請求信號連接到8259A的IR0輸入端;中斷服務(wù)程序的偏移地址和段地址分別填人4n和4n+2兩個字單元,而4*88H=220H,故段地址填入00222H字單元(即00222H和00223H兩個字節(jié)單元),偏移地址填人00220H字單元(即00220H和00221H兩個字節(jié)單元)。

中斷向量和中斷向量表例4:若中斷類型號為3,則由中斷類型號取得中斷服務(wù)入口地址的過程如下圖所示:00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00H)FFFFFH低地址內(nèi)存高地址1E000H+0A00H1EA00H中斷類型號3×4=000CH…….00(IPL)0A(IPH)00(CSL)1E(CSH)…....中斷服務(wù)程序7.5.3中斷服務(wù)程序設(shè)計舉例由PCXT機外部產(chǎn)生中斷請求的簡單中斷程序。

系統(tǒng)將8259A的中斷輸入線IR0—IR7初始化為由低變高的邊沿觸發(fā),通過一開關(guān)(單穩(wěn)、防抖)將中斷請求信號接到PCXT總線的引腳B4,即IRQ2上。該開關(guān)先輸出低電平,運行程序顯示提示信息“WAITINTERRUPT”后再將開關(guān)輸出高電平,使IRQ2的電平由低變高,于是向8259A的中斷輸入線發(fā)出了中斷請求信號。成功后再將開關(guān)返回到低電平。該程序可以用到任何可以產(chǎn)生中斷請求信號的外設(shè)接口的電路上。分析:8259A的端口地址為20H和21H,要完成兩項工作:一、中斷服務(wù)程序入口地址裝入;二、使用的命令字有屏蔽字OCWl和中斷結(jié)束命令字OCW2,進(jìn)行中斷屏蔽和中斷結(jié)束處理。stacksegmentstack'stack'dw32dup(?)stackendsdatasegmentDA1DB'WAITINTERRUPT',0AH,0DH,'$'DA2DB'INTERRUPTPROCESSING',0AH,0DH,'$'DA3DB'PROGRAMTERMINATEDNORMALLY',DB0AH,0DH,'$'dataends

codesegmentbeginprocfarassumess:stack,cs:code,ds:datapushdssunax,axpushaxMOVAX,SEGIRQ2ISMOVDS,AXMOVDX,OFFSETIRQ2ISMOVAX,250AHINT21Hmovax,datamovds,a

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論