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

下載本文檔

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

文檔簡(jiǎn)介

第5章輸入輸出方式與中斷主講教師趙曉安輸入/輸出的基本概念輸入/輸出數(shù)據(jù)的傳送方式中斷技術(shù)AT89C52的中斷系統(tǒng)學(xué)會(huì)AT89C52中斷程序設(shè)計(jì)及應(yīng)用學(xué)會(huì)與中斷有關(guān)的硬件連線

本章重點(diǎn)及要求5.1輸入/輸出接口的基本概念5.2輸入/輸出數(shù)據(jù)的傳送方式5.3中斷技術(shù)5.4AT89C52單片機(jī)的中斷系統(tǒng)5.5中斷程序設(shè)計(jì)第5章

輸入/輸出和中斷5.1.1I/O接口結(jié)構(gòu)和傳送的信息5.1.2I/O接口的基本功能5.1.3I/O端口的編址方式

5.1輸入/輸出接口的基本概念5.1.1I/O接口結(jié)構(gòu)與傳送的信息CPUI/O接口I/O設(shè)備ABDBCB數(shù)據(jù)狀態(tài)控制I/O接口內(nèi)部包括數(shù)據(jù)總線緩沖器、I/O控制邏輯、寄存器、地址總線緩沖及譯碼等。數(shù)據(jù)信息

數(shù)字量

模擬量

開關(guān)量I/O接口傳送的信息在輸入時(shí),輸入裝置的信息是否準(zhǔn)備好(Ready);在輸出時(shí),輸出裝置是否有空(Empty),若輸出裝置正在輸出信息,則以Busy指示。

二進(jìn)制形式表示的數(shù)或以ASCII碼表示的數(shù)或字符。如鍵盤、CRT、打印機(jī)等設(shè)備與CPU交換的信息。現(xiàn)場(chǎng)信息(如溫度、壓力、流量、位移等非電量)經(jīng)過傳感器而轉(zhuǎn)換成電量(電壓、電流),這些模擬量經(jīng)過A/D、D/A轉(zhuǎn)換器在CPU與外設(shè)間交換。只要用一位二進(jìn)制數(shù)即可表示的量,如電機(jī)的運(yùn)轉(zhuǎn)與停止,開關(guān)的合與斷,閥門的打開和關(guān)閉等。狀態(tài)信息表征外設(shè)狀態(tài)

控制信息控制外設(shè)啟停5.1.2I/O接口的基本功能

鎖存作用防止由于CPU速度快,外設(shè)慢而產(chǎn)生的丟數(shù)現(xiàn)象

隔離作用防止DB上的信息重疊變換作用在CPU與外設(shè)之間進(jìn)行信息類型、電平、傳送接收方式變換聯(lián)絡(luò)作用在CPU與外設(shè)之間進(jìn)行聯(lián)絡(luò),Ready,Busy輸出接口電路——鎖存作用輸出接口中必須含鎖存器接口電路(鎖存器).......鎖存信號(hào)寫選通輸出數(shù)據(jù)DB來自CPU速度匹配輸入接口電路——隔離作用輸入接口中必須含三態(tài)門接口電路(三態(tài)門).......讀選通信號(hào)輸入允許輸入數(shù)據(jù)接口電路(三態(tài)門).......輸入數(shù)據(jù)DB防止信息重疊5.1.3I/O端口的編址方式接口:由一個(gè)或多個(gè)端口組成。端口:可被獨(dú)立選通的I/O接口電路,簡(jiǎn)稱口。通常一個(gè)端口對(duì)應(yīng)一個(gè)寄存器,但也有一個(gè)端口對(duì)應(yīng)多個(gè)寄存器的情況。端口可分為:輸入端口——CPU從中讀取外設(shè)的狀態(tài)或數(shù)據(jù)信息輸出端口——CPU通過它輸出控制信號(hào)或數(shù)據(jù)信息狀態(tài)端口——CPU從中讀取外設(shè)的狀態(tài)信息控制端口——由CPU控制輸出控制信號(hào)數(shù)據(jù)端口——可以是輸入數(shù)據(jù)端口或輸出數(shù)據(jù)端口單獨(dú)編址-I/O端口與存儲(chǔ)器分別編址,互為獨(dú)立優(yōu)點(diǎn):不占用存儲(chǔ)器地址;I/O尋址速度較快缺點(diǎn):1)需要專用的I/O指令,2)需要增加/MREQ(存儲(chǔ)器請(qǐng)求)和/IORQ(輸入輸出請(qǐng)求)兩條控制線統(tǒng)一編址-I/O端口地址占用部分存儲(chǔ)單元地址優(yōu)點(diǎn):1)CPU對(duì)I/O端口的操作可使用全部的存儲(chǔ)器指令;2)不需要為I/O端口設(shè)置專門的I/O指令;3)存儲(chǔ)器和I/O端口的地址分布圖是同一個(gè),I/O端口地址安排靈活,數(shù)量不受限制缺點(diǎn):I/O端口占用了部分存儲(chǔ)器地址,使存儲(chǔ)器容量減少;I/O尋址速度較慢端口在系統(tǒng)中被分配的唯一地址,稱為端口地址,簡(jiǎn)稱口地址。CPU與外設(shè)交換信息,是按I/O端口地址進(jìn)行的。AT89C52采用統(tǒng)一編址

片內(nèi)RAM與P0~P3均用MOV指令

片外RAM與外擴(kuò)口I/O口均用MOVX指令

5.2.1無條件傳送(同步傳送)5.2.2查詢式傳送(條件傳送或異步傳送)5.2.3中斷傳送5.2.4DMA傳送5.2輸入/輸出數(shù)據(jù)的傳送方式5.2.1無條件傳送方式(又稱同步傳送)適用場(chǎng)合:適用于總是處于準(zhǔn)備好狀態(tài)(定時(shí)固定或已知)的外設(shè),如開關(guān)、發(fā)光二極管等優(yōu)點(diǎn):軟件及接口硬件簡(jiǎn)單(只需要數(shù)據(jù)端口)缺點(diǎn):只適用于簡(jiǎn)單外設(shè),適應(yīng)范圍較窄movxA,@DPTRmovx@DPTR,ADB三態(tài)門鎖存器地址譯碼器地址譯碼器來自外設(shè)至外設(shè)ABRDWR5.2.2查詢式傳送方式(又稱條件傳送或異步傳送)

程序流程圖

輸入接口原理圖

輸出接口原理圖CPU在與外設(shè)交換數(shù)據(jù)前必須詢問外設(shè)狀態(tài)“準(zhǔn)備好沒有?”適用場(chǎng)合:適用于外設(shè)并不總是準(zhǔn)備好,而且對(duì)傳送速率、傳送效率要求不高的場(chǎng)合。對(duì)外設(shè)和接口的要求:應(yīng)提供設(shè)備狀態(tài)信息,需要狀態(tài)端口優(yōu)點(diǎn):軟件比較簡(jiǎn)單缺點(diǎn):CPU效率低,數(shù)據(jù)傳送的實(shí)時(shí)性差,速度較慢條件傳送程序流程圖Test:MOVDPTR,#PORTSMOVXA,@DPTRANLA,#40HJZTest;(JNZTest)MOVDPTR,#PORTDMOVXA,@DPTR

;輸入

(MOVX@DPTR,A;輸出)輸入接口狀態(tài)

準(zhǔn)備好?傳送信息YNReady=1Busy=00/1狀態(tài)信號(hào)D6(A)輸入接口原理圖地址譯碼器QRD三態(tài)緩沖器鎖存器輸入設(shè)備5V選通信號(hào)RD口地址PORTD譯碼PORTS譯碼D6Ready狀態(tài)信號(hào)DB外設(shè)準(zhǔn)備好,置入狀態(tài)信號(hào)Q=1CPU讀數(shù)據(jù)口時(shí)清掉狀態(tài)信號(hào)輸出接口原理圖外設(shè)收到CPU數(shù)據(jù)后以“應(yīng)答信號(hào)”清掉狀態(tài)信號(hào)CPU寫入數(shù)據(jù)后,置入狀態(tài)信號(hào)Q=1口地址地址譯碼器QRD5V應(yīng)答信號(hào)WR鎖存器輸出設(shè)備PORTD譯碼PORTS譯碼狀態(tài)線Busy狀態(tài)信息D6RDDB5.2.3中斷傳送方式

中斷傳送方式要求進(jìn)行輸入/輸出的外設(shè),發(fā)出就緒信號(hào)給CPU,作為中斷請(qǐng)求,打斷CPU正在進(jìn)行的工作,即中斷CPU正在執(zhí)行的程序。

外設(shè)發(fā)出中斷請(qǐng)求信號(hào)CPU(有條件)響應(yīng)中斷進(jìn)行中斷服務(wù)(執(zhí)行中斷服務(wù)程序,響應(yīng)I/O操作)中斷返回(繼續(xù)執(zhí)行原程序)中斷過程打印機(jī)打印時(shí)間數(shù)據(jù)傳輸時(shí)間查詢等待時(shí)間數(shù)據(jù)傳輸時(shí)間執(zhí)行主程序中斷服務(wù)時(shí)間中斷方式查詢方式外設(shè)工作中斷方式與查詢方式CPU占用時(shí)間比較中斷傳送方式的特點(diǎn)CPU和外設(shè)大部分時(shí)間處在并行工作狀態(tài),只在CPU響應(yīng)外設(shè)的中斷申請(qǐng)后進(jìn)入數(shù)據(jù)傳送的過程。中斷傳送方式提高了CPU的效率。對(duì)外設(shè)的請(qǐng)求能作出實(shí)時(shí)響應(yīng),可處理故障。適于實(shí)時(shí)、快速、復(fù)雜的外設(shè),但不適用于大量、高速頻繁數(shù)據(jù)交換。5.2.4DMA傳送方式前面3種I/O方式共性:

都需要CPU作為中介

外設(shè)?CPU?內(nèi)存兩個(gè)含義:

1)軟件:外設(shè)與內(nèi)存之間的數(shù)據(jù)傳送是通過CPU執(zhí)行程序來完成的(PIO方式);

2)硬件:I/O接口和存儲(chǔ)器的讀寫控制信號(hào)、地址信號(hào)都是由CPU發(fā)出的(總線由CPU控制)。

缺點(diǎn):程序的執(zhí)行速度限定了傳送的最大速度(約為幾十KB/秒)

解決辦法:DMA傳輸外設(shè)

內(nèi)存DMACDMA過程外設(shè)通過接口向DMAC發(fā)DMA申請(qǐng)

DMAC向CPU發(fā)/BUSRQCPU發(fā)/BUSAK響應(yīng)

DMAC接管系統(tǒng)總線,控制外設(shè)、內(nèi)存之間直接數(shù)據(jù)傳送

DMA傳送結(jié)束后,DMAC使/BUSRQ恢復(fù)高電平,釋放總線,CPU恢復(fù)對(duì)總線的控制,使/BUSAK為高電平,繼續(xù)執(zhí)行正常的CPU操作。BUS外設(shè)接口DMACCPU存儲(chǔ)器DMA申請(qǐng)BUSRQBUSAK存儲(chǔ)器CPUI/O接口外設(shè)DMA控制器DMA傳送方式的特點(diǎn)外設(shè)和內(nèi)存之間直接進(jìn)行數(shù)據(jù)傳送,不通過CPU,傳送效率高。

適用于在內(nèi)存與高速外設(shè)、或兩個(gè)高速外設(shè)之間進(jìn)行大批量數(shù)據(jù)傳送。電路結(jié)構(gòu)復(fù)雜,硬件開銷較大。5.3.1中斷的定義及必要性5.3.2中斷源5.3.3中斷系統(tǒng)的功能5.3.4中斷處理過程5.3中斷技術(shù)5.3.1中斷的定義及必要性定義:所謂中斷是指CPU正在處理某件事的時(shí)候,外部發(fā)生了某一事件,請(qǐng)求CPU迅速處理,CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事件,處理完后,再回到原來被中斷的地方,繼續(xù)原來的工作。這樣的過程稱為中斷。中斷功能便于實(shí)現(xiàn)1.分時(shí)操作2.實(shí)時(shí)處理3.故障處理CPU可以和外設(shè)同時(shí)工作;CPU可以通過分時(shí)操作啟動(dòng)多個(gè)外設(shè)同時(shí)工作,統(tǒng)一管理。當(dāng)計(jì)算機(jī)用于實(shí)時(shí)控制時(shí),中斷是一個(gè)十分重要的功能?,F(xiàn)場(chǎng)的各個(gè)參數(shù)、信息,需要的話可在任何時(shí)候發(fā)出中斷申請(qǐng),要求CPU處理;CPU就可以馬上響應(yīng)(若中斷是開放的話)加以處理。計(jì)算機(jī)在運(yùn)行過程中,往往會(huì)出現(xiàn)事先預(yù)料不到的情況,或出現(xiàn)一些故障:如電源突跳,存儲(chǔ)出錯(cuò),運(yùn)算溢出等等。計(jì)算機(jī)就可以利用中斷系統(tǒng)自行處理,而不必停機(jī)或報(bào)告工作人員。必要性及應(yīng)用外設(shè)中斷源定時(shí)脈沖請(qǐng)求源控制對(duì)象中斷源故障中斷源人為設(shè)置的中斷5.3.2中斷源不是隨機(jī)的,故稱為自愿中斷隨機(jī)引起的中斷稱為強(qiáng)迫中斷中斷源是指引起中斷的設(shè)備或部件,或者發(fā)出中斷請(qǐng)求的來源。通常有以下幾種:中斷的分類AT89C52就是具有可屏蔽中斷功能的一類CPU中斷類型中斷請(qǐng)求信號(hào)

可屏蔽中斷INT中斷請(qǐng)求輸入線上輸入非屏蔽中斷NMI中斷請(qǐng)求輸入線上輸入軟件中斷用中斷指令使CPU響應(yīng)中斷中斷類型CPU響應(yīng)中斷的方式可屏蔽中斷開中斷指令響應(yīng)關(guān)中斷指令屏蔽INT上來的低電平中斷請(qǐng)求非屏蔽中斷CPU必須予以響應(yīng),不能由軟件指令屏蔽軟件中斷CPU只要執(zhí)行這種指令,完成相應(yīng)的中斷功能5.3.3中斷系統(tǒng)的功能通常具有如下功能:能實(shí)現(xiàn)中斷及返回

能實(shí)現(xiàn)優(yōu)先級(jí)排隊(duì)

能實(shí)現(xiàn)中斷嵌套中斷系統(tǒng)是指能夠?qū)崿F(xiàn)中斷功能的那部分硬件電路和軟件程序。中斷判優(yōu)

硬件電路中斷優(yōu)先權(quán)鏈?zhǔn)诫娐分袛鄡?yōu)先權(quán)編碼電路軟件查詢法三態(tài)門DB+中斷請(qǐng)求……ALMOVDPTR,#PortIMOVXA,@DPTRRLCAJCASVRLCAJCBSV……ASV:……BSV:……先查詢的優(yōu)先級(jí)高硬件申請(qǐng)軟件查詢中斷嵌套優(yōu)先級(jí)的處理原則對(duì)同時(shí)發(fā)生多個(gè)中斷申請(qǐng)時(shí):不同優(yōu)先級(jí)的中斷同時(shí)申請(qǐng)——先高后低相同優(yōu)先級(jí)的中斷同時(shí)申請(qǐng)——按序執(zhí)行正處理低優(yōu)先級(jí)中斷又接到高級(jí)別中斷——高打斷低正處理高優(yōu)先級(jí)中斷又接到低級(jí)別中斷——高不理低5.3.4中斷處理過程中斷響應(yīng)中斷響應(yīng)條件中斷響應(yīng)過程:關(guān)中斷(MCS-51響應(yīng)中斷后,不自動(dòng)關(guān)中斷)保護(hù)斷點(diǎn)(自動(dòng)將斷點(diǎn)地址壓入堆棧)轉(zhuǎn)向中斷處理程序入口地址中斷處理執(zhí)行中斷處理程序中斷返回(1)設(shè)置中斷請(qǐng)求觸發(fā)器(又稱中斷標(biāo)志觸發(fā)器)

每個(gè)中斷源需有一個(gè)中斷請(qǐng)求觸發(fā)器,

保持中斷請(qǐng)求信號(hào),直至CPU響應(yīng)這個(gè)中斷后,才可清除中斷請(qǐng)求。當(dāng)中斷請(qǐng)求觸發(fā)器為“1”狀態(tài)時(shí)(Q=1),表示有中斷產(chǎn)生;Q=0表示沒有中斷產(chǎn)生。中斷響應(yīng)條件設(shè)置中斷請(qǐng)求的情況(2)需設(shè)置中斷屏蔽觸發(fā)器(又稱中斷允許觸發(fā)器)

每一個(gè)中斷源的接口電路中需增加一個(gè)中斷屏蔽觸發(fā)器,只有當(dāng)此觸發(fā)器為“1”時(shí),中斷源的中斷請(qǐng)求才能被送出至CPU。具有中斷屏蔽的接口電路

(3)中斷是開放的

在CPU內(nèi)部有一個(gè)中斷允許觸發(fā)器EA。只有當(dāng)EA為“1”時(shí)(即中斷開放時(shí)),CPU才能響應(yīng)中斷;若EA為“0”(即中斷是關(guān)閉的),這時(shí)外部有中斷請(qǐng)求,CPU不會(huì)響應(yīng),EA的狀態(tài)是可以用指令來控制的(稱為可編程的)。

(4)需設(shè)中斷優(yōu)先級(jí)觸發(fā)器在CPU內(nèi)部要設(shè)置中斷優(yōu)先級(jí)觸發(fā)器,以實(shí)現(xiàn)嵌套;在各中斷源中也要設(shè)一個(gè)中斷優(yōu)先級(jí)觸發(fā)器,由指令置位/復(fù)位,以表示本中斷源在中斷系統(tǒng)中的優(yōu)先級(jí)。

(5)CPU在現(xiàn)行指令結(jié)束后響應(yīng)中斷在開中斷情況下,若中斷源有中斷請(qǐng)求,CPU也并不是立即響應(yīng),只是當(dāng)正在執(zhí)行的指令運(yùn)行到最后一個(gè)機(jī)器周期T狀態(tài)時(shí),CPU才采樣中斷源。若發(fā)現(xiàn)有中斷請(qǐng)求,則把內(nèi)部的中斷標(biāo)志鎖存器置“1”,然后下一個(gè)機(jī)器周期不進(jìn)入取指周期,而進(jìn)入中斷周期。執(zhí)行中斷處理程序保護(hù)現(xiàn)場(chǎng)保護(hù)中斷服務(wù)程序中用到的寄存器和狀態(tài)標(biāo)志的內(nèi)容中斷服務(wù)相應(yīng)的中斷源服務(wù),完成一定的I/O操作恢復(fù)現(xiàn)場(chǎng)完成中斷服務(wù)后,將保存在堆棧中的現(xiàn)場(chǎng)數(shù)據(jù)恢復(fù)開中斷pushPSWpushACCpushDPHpushDPL

popDPLpopDPHpopACCpopPSW5.4.1中斷源和中斷標(biāo)志5.4.2中斷控制5.4.3中斷響應(yīng)和處理過程5.4.4中斷請(qǐng)求的撤除

5.4AT89C52單片機(jī)的中斷系統(tǒng)AT89C52的中斷系統(tǒng)AT89C52的中斷系統(tǒng)IE0INT0TF0TF1EX001IT0ET0IE1EX101IT1ET1RITIESTF2EXF2ET2EAIEIP高級(jí)中斷請(qǐng)求低級(jí)中斷請(qǐng)求中斷查詢順序中斷源允許CPU允許PX0PT0PX1PT1PSPT2INT1優(yōu)先級(jí)5.4.1中斷源和中斷標(biāo)志AT89C52有6個(gè)中斷源,分別為:外部中斷0

外部中斷1T0溢出中斷

T1溢出中斷

T2溢出中斷

串行口中斷TF1TR1TF0TR0IE1IT1IE0IT0D7D0TCON(88H)

IT0/IT1:外部中斷0/1的觸發(fā)方式選擇IT0=0電平觸發(fā)方式,低電平有效;IT0=1邊沿觸發(fā)方式,負(fù)跳變有效IE0/IE1:外部中斷0/1的中斷請(qǐng)求標(biāo)志電平觸發(fā)時(shí),每個(gè)機(jī)器周期的S5P2期間采樣INT0/INT1,若為低電平,IE0/IE1由硬件自動(dòng)置位邊沿觸發(fā)時(shí),若在連續(xù)兩個(gè)機(jī)器周期采樣到先高電平后低電平,則IE0/IE1由硬件自動(dòng)置位

TF0/TF1:定時(shí)器/計(jì)數(shù)器0/1的溢出中斷請(qǐng)求標(biāo)志定時(shí)/計(jì)數(shù)器被啟動(dòng)后,從初始值開始加1計(jì)數(shù)。產(chǎn)生溢出中斷(全“1”變?yōu)槿?”)時(shí),TF0(TF1)由硬件自動(dòng)置位

TR0(TR1):定時(shí)/計(jì)數(shù)器0(1)運(yùn)行控制位TF2EXF2D7D0T2CON(C8H)TF2:定時(shí)/計(jì)數(shù)器2的溢出中斷請(qǐng)求標(biāo)志定時(shí)/計(jì)數(shù)器被啟動(dòng)后,從初始值開始加1計(jì)數(shù)。產(chǎn)生溢出中斷(全“1”變?yōu)槿?”)時(shí),TF2由硬件自動(dòng)置位EXF2:定時(shí)/計(jì)數(shù)器2的外部中斷請(qǐng)求標(biāo)志EXEN2為1時(shí),當(dāng)T2EX(P1.1)發(fā)生負(fù)跳變時(shí),EXF2由硬件自動(dòng)置位TI:串行口發(fā)送中斷標(biāo)志串行口發(fā)送完一組數(shù)據(jù)時(shí),TI由硬件自動(dòng)置位RI:串行口接收中斷標(biāo)志串行口接收到一組串行數(shù)據(jù)時(shí),RI由硬件自動(dòng)置位SCON(98H)D7D0RITI5.4.2中斷控制若設(shè)置串行口和定時(shí)器/計(jì)數(shù)器1為高級(jí)中斷:

SETBPSSETBPT1問:設(shè)置后,哪個(gè)中斷源的優(yōu)先級(jí)最高?哪個(gè)中斷源的優(yōu)先級(jí)最低?復(fù)位后(IP)=00H5個(gè)中斷源均為低級(jí)中斷,同級(jí)默認(rèn)順序:

INT0

定時(shí)器T0

INT1

定時(shí)器T1

RI/TI

定時(shí)器T2

高級(jí)低級(jí)同級(jí)默認(rèn)順序定時(shí)器T1RI/TIINT0定時(shí)器T0INT1定時(shí)器T2

設(shè)置后,優(yōu)先級(jí)的順序?yàn)椋?.4.3中斷響應(yīng)和處理過程

中斷響應(yīng)的基本條件

中斷響應(yīng)過程

中斷響應(yīng)時(shí)間中斷響應(yīng)的基本條件中斷受阻的條件:

CPU正在處理相同或更高級(jí)中斷

現(xiàn)行的機(jī)器周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期正在執(zhí)行的指令是訪問IE、IP或RETI指令。在執(zhí)行上述指令后至少再執(zhí)行一條指令,才可能響應(yīng)中斷。中斷響應(yīng)的基本條件:首先要有中斷源發(fā)出中斷申請(qǐng);中斷總允許位EA=1,即CPU允許所有中斷源申請(qǐng)中斷;在中斷源寄存器TCON和SCON中,申請(qǐng)中斷的中斷允許位為1,即此中斷源可以向CPU申請(qǐng)中斷。ACPU自動(dòng)完成:CPU先在每個(gè)機(jī)器周期的S5P2期間,對(duì)各中斷源重復(fù)進(jìn)行查詢,并設(shè)置相應(yīng)的中斷標(biāo)志位。然后在下一個(gè)機(jī)器周期S6期間按照IP和自然優(yōu)先級(jí)順序查詢各中斷

如果中斷響應(yīng)條件滿足,且不存在中斷阻斷的情況,則CPU就響應(yīng)中斷。

硬件生成長(zhǎng)調(diào)用指令自動(dòng)地把斷點(diǎn)地址壓入堆棧保護(hù),并隨之將對(duì)應(yīng)的中斷入口裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向該入口地址,以執(zhí)行中斷服務(wù)程序。A用戶必須完成:

在這些入口地址存放一條無條件跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷服務(wù)程序起始地址上去。中斷響應(yīng)過程低級(jí)中斷源的中斷服務(wù)程序用戶編程設(shè)計(jì)CLREASETBEA1、一個(gè)單級(jí)的中斷系統(tǒng)中必要響應(yīng)時(shí)間

從中斷請(qǐng)求有效(CPU響應(yīng)中斷)到開始執(zhí)行中斷服務(wù)程序的第一條指令(中斷入口地址處指令)為止,至少要經(jīng)歷三個(gè)完整的機(jī)器周期:第一個(gè)機(jī)器周期用于查詢中斷標(biāo)志位;第二和第三個(gè)機(jī)器周期用于保護(hù)斷點(diǎn)并自動(dòng)轉(zhuǎn)入執(zhí)行一條長(zhǎng)轉(zhuǎn)移LCALL指令,進(jìn)入中斷服務(wù)程序入口地址。

中斷響應(yīng)時(shí)間

2、附加等待時(shí)間逢RETI或其它訪問IE、IP指令的第一個(gè)周期,而這類指令之后又跟隨著MUL或DIV指令引起的附加等待時(shí)間不會(huì)超過5個(gè)機(jī)器周期:一個(gè)周期完成正在進(jìn)行的指令,再加MUL或DIV的4個(gè)周期。結(jié)論:在一個(gè)單級(jí)的中斷系統(tǒng)中,MCS-51響應(yīng)中斷的時(shí)間一般在3-8個(gè)機(jī)器周期之間。3、中斷受阻引起響應(yīng)時(shí)間延長(zhǎng)當(dāng)一個(gè)同級(jí)或更高級(jí)的中斷正在進(jìn)行,則附加的等待時(shí)間取決于正在進(jìn)行的中斷程序。

中斷源撤消中斷標(biāo)志的方法外部中斷0/1當(dāng)邊沿觸發(fā)中斷,則硬件置位,硬件清除當(dāng)?shù)碗娖接|發(fā)中斷,硬件置位,必須人為撤消中斷請(qǐng)求信號(hào)定時(shí)/計(jì)數(shù)器0/1由硬件置位和復(fù)位,硬件自動(dòng)撤消串行口定時(shí)/計(jì)數(shù)器2由硬件置位,必須由軟件復(fù)位RI/TI以及TF2/EXF2CPU必須在中斷返回前,把它的響應(yīng)中斷標(biāo)志位復(fù)位成“0”狀態(tài)。AT89C52單片機(jī)的6個(gè)斷源,撤除中斷請(qǐng)求的方法是不相同的。

5.4.4中斷請(qǐng)求的撤除外部中斷請(qǐng)求的撤除

對(duì)于負(fù)邊沿觸發(fā)的外部中斷,CPU在響應(yīng)中斷后,是用硬件自動(dòng)清除有關(guān)的中斷請(qǐng)求標(biāo)志IE0或IE1,來撤除INT0或INT1上的中斷請(qǐng)求。對(duì)于電平觸發(fā)的外部中斷,IE0或IE1是依靠CPU檢測(cè)INT0或INT1上低電平而置位。盡管CPU響應(yīng)中斷時(shí),IE0或IE1可用硬件自動(dòng)復(fù)位成“0”狀態(tài),但若外部中斷源不能及時(shí)撤除INT0或INT1上低電平,就會(huì)再次使已經(jīng)變“0”的中斷標(biāo)志IE0或IE1置位,這是絕對(duì)不能允許的。所以,對(duì)于電平觸發(fā)的外部中斷請(qǐng)求的撤除,必須隨著其中斷被響應(yīng),使INT0或INT1上低電平變?yōu)楦唠娖?。INSVR:ANLP1,#0FEHORLP1,#01H┆RETIEND

執(zhí)行第一條指令使P1.0輸出為負(fù),其持續(xù)時(shí)間為2個(gè)機(jī)器周期,足以使D觸發(fā)器置位,INT0上電平變高,從而撤除中斷請(qǐng)求。

第二條指令使P1.0變?yōu)?,否則,D觸發(fā)器的S端始終有效,INT0端終為1,無法再次中斷。中斷請(qǐng)求信號(hào)5.5中斷程序設(shè)計(jì)1、中斷系統(tǒng)的初始化中斷系統(tǒng)初始化步驟為:

1)CPU開中斷或關(guān)中斷;

2)某中斷源中斷請(qǐng)求允許或禁止(屏蔽);

3)設(shè)定所用中斷的中斷優(yōu)先級(jí);

4)若為外部中斷,則應(yīng)規(guī)定低電平還是負(fù)跳變觸發(fā)方式。

解:(1)采用位操作指令

SETBEA;CPU開中斷

SETBEX1;開/INT1中斷

SETBPX1;令/INT1為高優(yōu)先級(jí)

CLRIT1;令/INT1為電平觸發(fā)

(2)采用字節(jié)型指令

MOVIE,#84H;開/INT1中斷

ORLIP,#04H;令/INT1為高優(yōu)先級(jí)

ANLTCON,#OFBH;令/INT1為電平觸發(fā)

[例]請(qǐng)寫出/INT1為低電平觸發(fā)的中斷系統(tǒng)初始化程序

(1)主程序

主程序除了用來對(duì)MCS-51本身中斷系統(tǒng)初始化外,還經(jīng)常用來對(duì)具有中斷功能的外部擴(kuò)展的可編程I/O接口、可編程內(nèi)部定時(shí)器/計(jì)數(shù)器T0、T1和可編程內(nèi)部串行口等初始化,程序如下:

ORG0000HAJMPMAIN┆MAIN:;MAIN為主程序首地址┆

復(fù)位后,其PC的內(nèi)容被強(qiáng)迫置成0000H

上電啟動(dòng),CPU就執(zhí)行0000H單元的指令

必須在0000H單元放一條跳轉(zhuǎn)到主程序的跳轉(zhuǎn)指令,實(shí)現(xiàn)了上電自動(dòng)轉(zhuǎn)向主程序2、程序設(shè)計(jì)方法(2)中斷服務(wù)程序

中斷服務(wù)程序是一種具有特定功能的獨(dú)立程序段,它為中斷源的特定要求服務(wù),其一般低級(jí)中斷源程序編寫格式如下:

ORGZDRKAJMPINTVS┆INTVS:CLREAPUSHACCPUSH01H┆

SETBEA┆中斷服務(wù)

CLREAPOP01HPOPACC

SETBEARETI中斷服務(wù)程序入口地址:ZDRK0003H000BH0013H001BH0023H高級(jí)中斷服務(wù)程序的設(shè)計(jì)GJZHD:CLREA

保護(hù)現(xiàn)場(chǎng)

……

中斷處理

……………………

恢復(fù)現(xiàn)場(chǎng)

SETBEARETI嵌套R(shí)ETI中斷程序設(shè)計(jì)舉例[例]請(qǐng)根據(jù)右圖的支持電路,編出CPU響應(yīng)INT0上中斷時(shí)的主程序和中斷服務(wù)程序。

ORG0000H

AJMPMAIN

ORG0003HLJMPEX0SVR ORG0100HMAIN:MOVSP#6FH

SETBIT0 SETBEX0 SETBEA

SJMP$;等待中斷EX1SVR:

PUSHPSW PUSHACC MOVA,#0FFH MOVP1,A MOVA,P1 SWAPA MOVP1,A

POPACC POPPSW

溫馨提示

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