工學(xué)輸入輸出與中斷_第1頁
工學(xué)輸入輸出與中斷_第2頁
工學(xué)輸入輸出與中斷_第3頁
工學(xué)輸入輸出與中斷_第4頁
工學(xué)輸入輸出與中斷_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第六章輸入輸出與中斷I/O信號(hào)及尋址方式6.1I/O控制方式6.2中斷技術(shù)6.351單片機(jī)中斷系統(tǒng)6.42I/O接口是連接I/O設(shè)備與計(jì)算機(jī)的橋梁微型機(jī)I/O接口I/O接口I/O設(shè)備I/O設(shè)備2023/9/21:0636-1I/O信號(hào)及尋址方式6.1.1I/O接口的作用I/O接口的作用:5.緩沖驅(qū)動(dòng):驅(qū)動(dòng)多個(gè)邏輯部件或大功率執(zhí)行部件4.隔離:多個(gè)設(shè)備信號(hào)通過接口三態(tài)門隔離干擾信號(hào)1.速度匹配:鎖存數(shù)據(jù)、傳送聯(lián)絡(luò)信號(hào)2.數(shù)據(jù)格式轉(zhuǎn)換:并-串轉(zhuǎn)換、A/D、D/A轉(zhuǎn)換3.電平轉(zhuǎn)換:電平幅值或正/負(fù)邏輯轉(zhuǎn)換2023/9/21:0646-1I/O信號(hào)及尋址方式6.1.2

I/O接口信號(hào)1.數(shù)據(jù)信息:微機(jī)與外設(shè)交換的信息;2.狀態(tài)信息:反映外設(shè)工作狀態(tài);3.控制信息:設(shè)定I/O電路的工作方式或提供控制信號(hào);為每個(gè)I/O接口分配對(duì)應(yīng)的I/O地址:數(shù)據(jù)總線傳遞三種信息,用不同I/O地址區(qū)別:輸入/輸出數(shù)據(jù)緩沖器共用一個(gè)I/O地址:數(shù)據(jù)端口狀態(tài)/控制寄存器共用一個(gè)I/O地址:控制/狀態(tài)端口2023/9/21:0656-1I/O信號(hào)及尋址方式6.1.3

I/O端口的尋址方式1、存儲(chǔ)器映射編址方式I/O接口與存儲(chǔ)器共用地址空間。2、專用I/O地址方式專用I/O控制信號(hào)和I/O指令,I/O接口獨(dú)立編址MCS-51為存儲(chǔ)器映射地址方式。有片內(nèi)接口和擴(kuò)展接口。片內(nèi)I/O接口寄存器在SFR中,占用用片內(nèi)數(shù)據(jù)存儲(chǔ)器空間,擴(kuò)展I/O接口占用用片外數(shù)據(jù)存儲(chǔ)器地址空間。

2023/9/21:0666-1I/O信號(hào)及尋址方式如尋址端口指令:

輸出指令 輸入指令:片內(nèi)MOVP1,A MOVA,P1片外MOVX@DPTR,AMOVXA,DPTR

MOVX@R0,A MOVXA,@R02023/9/21:0676-1I/O信號(hào)及尋址方式6-2

I/O控制方式6.2.1無條件傳送已知I/O設(shè)備準(zhǔn)備就緒,直接傳送數(shù)據(jù)優(yōu)點(diǎn):接口電路和程序設(shè)計(jì)都非常簡(jiǎn)單。但需要外設(shè)總處于“準(zhǔn)備好”狀態(tài)。2023/9/21:0686.2.2查詢式傳送(有條件傳送)DBAB微型機(jī)AB數(shù)據(jù)端口狀態(tài)端口外部設(shè)備I/O接口D6先查詢I/O設(shè)備當(dāng)前狀態(tài),若準(zhǔn)備就緒,則交換數(shù)據(jù),否則繼續(xù)查詢狀態(tài)。硬件、軟件必須為查詢提供支持。6-2

I/O控制方式2023/9/21:069INPUT:MOV

DPTR,#STATUS;狀態(tài)口地址

WAIT:MOVX

A,@DPTR;輸入狀態(tài)信息

JNB

A.6,WAIT ;準(zhǔn)備好?

MOV

DPTR,#DATA;數(shù)據(jù)口地址

MOVXA,@DPTR;輸入數(shù)據(jù)6-2

I/O控制方式2023/9/21:06106.2.3中斷傳送

大多數(shù)時(shí)間計(jì)算機(jī)與外設(shè)并行工作,計(jì)算機(jī)不必因等待而浪費(fèi)資源。當(dāng)外設(shè)準(zhǔn)備就緒,向CPU發(fā)出中斷請(qǐng)求信號(hào)。CPU暫停當(dāng)前程序,執(zhí)行I/O操作。當(dāng)I/O操作結(jié)束,CPU仍繼續(xù)被中斷的工作。6.2.4直接存儲(chǔ)器存取方式傳送(DMA—DirectMemoryAccess)用于計(jì)算機(jī)與高速外設(shè)進(jìn)行大批量數(shù)據(jù)交換,由DMA控制器接管總線控制權(quán),RAM與外設(shè)之間直接數(shù)據(jù)傳輸,不需CPU的介入。6-2

I/O控制方式2023/9/21:06116.3.1中斷概念1、舉例

例子

CPU操作

中斷術(shù)語某人看書 執(zhí)行主程序 日常事務(wù)電話鈴響 中斷信號(hào)INT=0中斷請(qǐng)求6-3 中斷技術(shù)暫停看書

暫停執(zhí)行主程序中斷響應(yīng)書中作記號(hào)當(dāng)前PC入棧 保護(hù)斷點(diǎn)電話談話 執(zhí)行I/O程序中斷服務(wù)繼續(xù)看書 返回主程序 中斷返回2023/9/21:0612(1)可屏蔽中斷中斷是否被相應(yīng)可以控制。常稱為“開中斷”或“關(guān)中斷”,可由軟件設(shè)置允許/禁止CPU響應(yīng)中斷。(2)非屏蔽中斷不可程控“關(guān)中斷”。有中斷請(qǐng)求,CPU必須響應(yīng)。2、中斷類型6-3 中斷技術(shù)2023/9/21:06134、中斷優(yōu)先級(jí)(1)同時(shí)有多個(gè)中斷請(qǐng)求信號(hào),先響應(yīng)優(yōu)先級(jí)別高的中斷請(qǐng)求

3、中斷源能發(fā)出中斷請(qǐng)求信號(hào)的各種事件

INTNMI微型機(jī)日常事務(wù)程序中斷服務(wù)程序1中斷服務(wù)程序2(2)高優(yōu)先級(jí)中斷請(qǐng)求信號(hào)可中斷低優(yōu)先級(jí)中斷服務(wù)6-3 中斷技術(shù)2023/9/21:06146-3-2中斷處理過程5、中斷響應(yīng)條件(1)有中斷請(qǐng)求信號(hào) (2)系統(tǒng)處于開中斷狀態(tài)6、中斷響應(yīng)過程(1)關(guān)中斷:屏蔽其它中斷請(qǐng)求信號(hào)(2)保護(hù)斷點(diǎn):斷點(diǎn)地址壓入堆棧保存,即當(dāng)前PC值入棧(3)尋找中斷源:中斷服務(wù)程序入口地址送入PC,轉(zhuǎn)入中斷服務(wù)6-3 中斷技術(shù)2023/9/21:06156-3-2中斷處理過程(4)保護(hù)現(xiàn)場(chǎng):中斷服務(wù)程序使用的所有寄存器內(nèi)容入棧(5)中斷處理:執(zhí)行中斷源所要求的程序段(6)恢復(fù)現(xiàn)場(chǎng):恢復(fù)被使用寄存器的原有內(nèi)容(7)開中斷:允許接受其它中斷請(qǐng)求信號(hào)(8)中斷返回:執(zhí)行RETI指令,棧頂內(nèi)容入PC,程序跳轉(zhuǎn)返回到斷點(diǎn)處6-3 中斷技術(shù)2023/9/21:06166.3.2優(yōu)先級(jí)實(shí)現(xiàn)每個(gè)中斷源對(duì)應(yīng)一個(gè)中斷服務(wù)程序,多個(gè)中斷源按優(yōu)先級(jí)別排隊(duì)。DMA、NMI、INT1、軟件查詢方式查詢電路中斷源寄存器≥1INT單片機(jī)P1中斷請(qǐng)求1中斷請(qǐng)求2中斷請(qǐng)求8查詢程序INTS:MOV

A,P1

JB

A.0,SV1;查詢高級(jí)中斷請(qǐng)求

JB

A.1,SV2;查詢較低級(jí)中斷請(qǐng)求

…SV1: …

;中斷服務(wù)程序1

…SV2: …

;中斷服務(wù)程序26-3 中斷技術(shù)2023/9/21:06172.硬件排隊(duì)電路

硬件優(yōu)先級(jí)排隊(duì)和中斷向量鎖存電路。6-3 中斷技術(shù)2023/9/21:06186.4.1中斷系統(tǒng)的結(jié)構(gòu)

51單片機(jī)的中斷系統(tǒng)中有5個(gè)中斷源,2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套

。6-451單片機(jī)中斷系統(tǒng)2023/9/21:06196.4.280C51的中斷源

一、中斷源2、(P3.3)??捎蒊T1(TCON.2)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.3引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE1(TCON.3)置1,向CPU申請(qǐng)中斷。1、(P3.2)??捎蒊T0(TCON.0)選擇其為低電平有效還是下降沿有效。當(dāng)CPU檢測(cè)到P3.2引腳上出現(xiàn)有效的中斷信號(hào)時(shí),中斷標(biāo)志IE0(TCON.1)置1,向CPU申請(qǐng)中斷。6-451單片機(jī)中斷系統(tǒng)2023/9/21:0620

3、TF0(TCON.5),片內(nèi)定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T0發(fā)生溢出時(shí),置位TF0,并向CPU申請(qǐng)中斷。

4、TF1(TCON.7),片內(nèi)定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志。當(dāng)定時(shí)/計(jì)數(shù)器T1發(fā)生溢出時(shí),置位TF1,并向CPU申請(qǐng)中斷。

5、RI(SCON.0)或TI(SCON.1),串行口中斷請(qǐng)求標(biāo)志。當(dāng)串行口接收完一幀串行數(shù)據(jù)時(shí)置位RI或當(dāng)串行口發(fā)送完一幀串行數(shù)據(jù)時(shí)置位TI,向CPU申請(qǐng)中斷。

6-451單片機(jī)中斷系統(tǒng)2023/9/21:0621二、中斷請(qǐng)求標(biāo)志1、TCON的中斷標(biāo)志IT0(TCON.0),外部中斷0觸發(fā)方式控制位。當(dāng)IT0=0時(shí),為電平觸發(fā)方式。當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請(qǐng)求標(biāo)志位。IT1(TCON.2),外部中斷1觸發(fā)方式控制位。IE1(TCON.3),外部中斷1中斷請(qǐng)求標(biāo)志位。TF0(TCON.5),定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。TF1(TCON.7),定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。

6-451單片機(jī)中斷系統(tǒng)2023/9/21:06222、SCON的中斷標(biāo)志RI(SCON.0),串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位RI。同樣,RI必須由軟件清除。TI(SCON.1),串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)送過程。每發(fā)送完一個(gè)串行幀,由硬件置位TI。CPU響應(yīng)中斷時(shí),不能自動(dòng)清除TI,TI必須由軟件清除。

6-451單片機(jī)中斷系統(tǒng)2023/9/21:0623一、中斷允許控制

CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。6.4.380C51中斷的控制

EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時(shí)/計(jì)數(shù)器T0中斷允許位;EX1(IE.2),外部中斷0允許位;ET1(IE.3),定時(shí)/計(jì)數(shù)器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA(IE.7),CPU中斷允許(總允許)位。6-451單片機(jī)中斷系統(tǒng)2023/9/21:0624二、中斷優(yōu)先級(jí)控制

80C51單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),即可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)寄存器IP中的相應(yīng)位的狀態(tài)來規(guī)定的

。PX0(IP.0),外部中斷0優(yōu)先級(jí)設(shè)定位;PT0(IP.1),定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;PX1(IP.2),外部中斷0優(yōu)先級(jí)設(shè)定位;PT1(IP.3),定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;PS

(IP.4),串行口優(yōu)先級(jí)設(shè)定位。6-451單片機(jī)中斷系統(tǒng)2023/9/21:0625

同一優(yōu)先級(jí)中的中斷申請(qǐng)不止一個(gè)時(shí),則有中斷優(yōu)先權(quán)排隊(duì)問題。同一優(yōu)先級(jí)的中斷優(yōu)先權(quán)排隊(duì),由中斷系統(tǒng)硬件確定的自然優(yōu)先級(jí)形成,其排列如所示:6-451單片機(jī)中斷系統(tǒng)2023/9/21:062680C51單片機(jī)的中斷優(yōu)先級(jí)有三條原則:CPU同時(shí)接收到幾個(gè)中斷時(shí),首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求。正在進(jìn)行的中斷過程不能被新的同級(jí)或低優(yōu)先級(jí)的中斷請(qǐng)求所中斷。正在進(jìn)行的低優(yōu)先級(jí)中斷服務(wù),能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷。

為了實(shí)現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設(shè)有兩個(gè)用戶不能尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。其中一個(gè)置1,表示正在響應(yīng)高優(yōu)先級(jí)的中斷,它將阻斷后來所有的中斷請(qǐng)求;另一個(gè)置1,表示正在響應(yīng)低優(yōu)先級(jí)中斷,它將阻斷后來所有的低優(yōu)先級(jí)中斷請(qǐng)求。6-451單片機(jī)中斷系統(tǒng)2023/9/21:0627一、中斷響應(yīng)條件中斷源有中斷請(qǐng)求;此中斷源的中斷允許位為1;

CPU開中斷(即EA=1);CPU執(zhí)行完當(dāng)前指令。同時(shí)滿足時(shí),CPU才有可能響應(yīng)中斷。6.4.4中斷響應(yīng)條件6-451單片機(jī)中斷系統(tǒng)2023/9/21:0628二、中斷服務(wù)的進(jìn)入

CPU執(zhí)行程序過程中,在每個(gè)機(jī)器周期的S5P2期間,中斷系統(tǒng)對(duì)各個(gè)中斷源進(jìn)行采樣。這些采樣值在下一個(gè)機(jī)器周期內(nèi)按優(yōu)先級(jí)和內(nèi)部順序被依次查詢。如果某個(gè)中斷標(biāo)志在上一個(gè)機(jī)器周期的S5P2時(shí)被置成了1,CPU轉(zhuǎn)向被稱作中斷向量的特定地址單元,進(jìn)入相應(yīng)的中斷服務(wù)程序。

6-451單片機(jī)中斷系統(tǒng)2023/9/21:0629遇以下任一條件,硬件將受阻而不轉(zhuǎn)向中斷服務(wù):CPU正在處理同級(jí)或高優(yōu)先級(jí)中斷;當(dāng)前查詢的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期。即在完成所執(zhí)行指令前,不會(huì)響應(yīng)中斷,從而保證指令在執(zhí)行過程中不被打斷;正在執(zhí)行的指令為RET、RETI或任何訪問IE或IP寄存器的指令。即只有在這些指令后面至少再執(zhí)行一條指令時(shí)才能接受中斷請(qǐng)求。

若由于上述條件的阻礙中斷未能得到響應(yīng),當(dāng)條件消失時(shí)該中斷標(biāo)志卻已不再有效,那么該中斷將不被響應(yīng)。6-451單片機(jī)中斷系統(tǒng)2023/9/21:0630將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1(以阻斷后來的同級(jí)或低級(jí)的中斷請(qǐng)求)。硬件把程序計(jì)數(shù)器PC的內(nèi)容壓入堆棧保存,再將相應(yīng)的中斷服務(wù)程序的入口地址送入PC。執(zhí)行中斷服務(wù)程序。6.4.5中斷響應(yīng)過程

中斷響應(yīng)過程的前兩步是由中斷系統(tǒng)內(nèi)部自動(dòng)完成的,而中斷服務(wù)程序則要由用戶編寫程序來完成。

6-451單片機(jī)中斷系統(tǒng)2023/9/21:0631

6.4.6中斷返回RETI指令的具體功能是:將中斷響應(yīng)時(shí)壓入堆棧保存的斷點(diǎn)地址從棧頂彈出送回PC,CPU從原來中斷的地方繼續(xù)執(zhí)行程序;將相應(yīng)中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器清0,通知中斷系統(tǒng),中斷服務(wù)程序已執(zhí)行完畢。

注意,不能用RET指令代替RETI指令。在中斷服務(wù)程序中PUSH指令與POP指令必須成對(duì)使用,否則不能正確返回?cái)帱c(diǎn)。6-451單片機(jī)中斷系統(tǒng)2023/9/21:0632

若外部中斷定義為電平觸發(fā)方式,中斷標(biāo)志位的狀態(tài)隨CPU在每個(gè)機(jī)器周期采樣到的外部中斷輸入引腳的電平變化而變化,這樣能提高CPU對(duì)外部中斷請(qǐng)求的響應(yīng)速度。但外部中斷源若有請(qǐng)求,必須把有效的低電平保持到請(qǐng)求獲得響應(yīng)時(shí)為止,不然就會(huì)漏掉;而在中斷服務(wù)程序結(jié)束之前,中斷源又必須撤消其有效的低電平,否則中斷返回之后將再次產(chǎn)生中斷。

電平觸發(fā)方式適合于外部中斷輸入以低電平輸入且中斷服務(wù)程序能清除外部中斷請(qǐng)求源的情況。例如,并行接口芯片8255的中斷請(qǐng)求線在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此,以其去請(qǐng)求電平觸發(fā)方式的中斷比較方便。6-451單片機(jī)中斷系統(tǒng)2023/9/21:0633

若外部中斷定義為邊沿觸發(fā)方式,在相繼連續(xù)的兩次采樣中,一個(gè)周期采樣到外部中斷輸入為高電平,下一個(gè)周期采樣到為低電平,則在IE0或IE1中將鎖存一個(gè)邏輯1。即便是CPU暫時(shí)不能響應(yīng),中斷申請(qǐng)標(biāo)志也不會(huì)丟失,直到CPU響應(yīng)此中斷時(shí)才清零。這樣,為保證下降沿能被可靠地采樣到,外中斷引腳上的高低電平(負(fù)脈沖的寬度)均至少要保持一個(gè)機(jī)器周期(若晶振為12MHz時(shí),為1微秒)。

邊沿觸發(fā)方式適合于以負(fù)脈沖形式輸入的外部中斷請(qǐng)求,如ADC0809的轉(zhuǎn)換結(jié)束標(biāo)志信號(hào)EOC為正脈沖,經(jīng)反相后就可以作為80C51的中斷輸入。6-451單片機(jī)中斷系統(tǒng)2023/9/21:0634

例多外部中斷源的系統(tǒng)示例。設(shè)有5個(gè)外部中斷源,中斷優(yōu)先級(jí)排隊(duì)順序?yàn)椋篨I0、XI1、XI2、XI3、XI4。試設(shè)計(jì)它們與80C51單片機(jī)的接口。6-451單片機(jī)中斷系統(tǒng)2023/9/21:06355.3.4中斷程序舉例

ORG0003HLJMPINSE0;轉(zhuǎn)外部中斷0服務(wù)程序入口

ORG0013HLJMPINSE1;轉(zhuǎn)外部中斷1服務(wù)程序入口

…………INSE0:PUSHPSW;XI0中斷服務(wù)程序

PUSHACC

溫馨提示

  • 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)論