版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章中斷系統(tǒng)內(nèi)容提要:§5-1微機(jī)的輸入/輸出方式§5-2中斷的概念§5-389C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制§5-4中斷處理過程§5-5外部中斷的擴(kuò)展方法§5-6中斷程序的舉例§5.1微機(jī)的輸入/輸出方式CPU與外部設(shè)備交換信息通常有以下幾種方式:①程序控制方式,又分為無條件傳送方式和查詢傳送方式。②中斷方式③直接儲(chǔ)存器存取(DMA)方式一、無條件傳送方式CPU總是認(rèn)為外設(shè)在任何時(shí)刻都處于“準(zhǔn)備好”的狀態(tài)。這種傳送方式不需要交換狀態(tài)信息,只需在程序中加入訪問外設(shè)的指令,數(shù)據(jù)傳送便可以實(shí)現(xiàn)。此種方法很少使用。
二、查詢傳送方式在輸入時(shí),需要查詢外設(shè)的輸入數(shù)據(jù)是否準(zhǔn)備好;在輸出時(shí),需要查詢外設(shè)是否把上一次CPU輸出的數(shù)據(jù)處理完畢。查詢傳送方式:通過查詢外設(shè)的狀態(tài)信息,確信外設(shè)已處于“準(zhǔn)備好”,計(jì)算機(jī)才發(fā)出訪問外設(shè)的指令,實(shí)現(xiàn)數(shù)據(jù)的傳送。狀態(tài)信息:一般為1位二進(jìn)制碼。查詢方式程序流程圖:
輸入狀態(tài)信息準(zhǔn)備好?傳送數(shù)據(jù)NY查詢方式的過程:
啟動(dòng)外設(shè)設(shè)備傳送數(shù)據(jù)延遲查詢-等待-數(shù)據(jù)傳送,待到下一次數(shù)據(jù)傳送時(shí)則重復(fù)上述過程。等待也可以不采用循環(huán)等待,而用軟件插入固定延時(shí)的方法來完成。查詢方式的特點(diǎn):優(yōu)點(diǎn):通用性好,可以用于各類外設(shè)和CPU間的數(shù)據(jù)傳送。缺點(diǎn):CPU在完成一次數(shù)據(jù)傳送后要等待很長(zhǎng)時(shí)間才能進(jìn)行下一次的傳送。在等待過程中,CPU不能進(jìn)行其他操作,所以效率比較低。
DMA(DirectMemoryAccess)方式是CPU讓出數(shù)據(jù)總線,使外部設(shè)備和存儲(chǔ)器之間直接傳送(不通過CPU)數(shù)據(jù)的方式。在下述兩種情況時(shí)可考慮采用DMA方式:①外設(shè)和存儲(chǔ)器之間有大量的數(shù)據(jù)需要傳送;②外部設(shè)備的工作速度很快的情況。三、直接存儲(chǔ)器存取(DMA)方式§5.2中斷的概念一、概述與上對(duì)比,單片機(jī)中也有同樣的問題。CPU正在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行新程序。CPU執(zhí)行新程序結(jié)束后,又回到原程序中繼續(xù)執(zhí)行。這樣的過程就叫。中斷
什么叫中斷?舉例:某同學(xué)正在教室寫作業(yè),忽然被人叫出去,回來后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。主程序響應(yīng)中斷請(qǐng)求中斷服務(wù)程序返回主程序繼續(xù)執(zhí)行主程序斷點(diǎn)中斷系統(tǒng):實(shí)現(xiàn)這種功能的部件中斷源:產(chǎn)生中斷的請(qǐng)求源中斷請(qǐng)求:中斷源向CPU提出的處理請(qǐng)求CPU的中斷響應(yīng)過程:CPU暫時(shí)中止自身的事務(wù),轉(zhuǎn)去處理事件的過程中斷服務(wù):對(duì)事件的整個(gè)處理過程中斷返回:處理完畢,再回到原來被中止的地方日常生活中的中斷與單片機(jī)中斷的比較:
某同學(xué)
單片機(jī)過程說明正在看書 執(zhí)行主程序有人找出去 中斷信號(hào)
中斷請(qǐng)求暫??磿?/p>
暫停執(zhí)行主程序
中斷響應(yīng)書中作記號(hào)當(dāng)前PC入棧
保護(hù)斷點(diǎn)出去做事 執(zhí)行中斷程序
中斷服務(wù)回來繼續(xù)看 返回主程序
中斷返回二、中斷的作用1、分時(shí)操作2、實(shí)時(shí)處理3、故障處理分時(shí)操作:計(jì)算機(jī)的中斷系統(tǒng)可以使CPU與外設(shè)同時(shí)工作。CPU在啟動(dòng)外設(shè)后,便繼續(xù)執(zhí)行主程序;而外設(shè)被啟動(dòng)后,開始進(jìn)行準(zhǔn)備工作。當(dāng)外設(shè)準(zhǔn)備就緒時(shí),就向CPU發(fā)出中斷請(qǐng)求,CPU響應(yīng)該中斷請(qǐng)求并為其服務(wù)完畢后,返回原來的斷點(diǎn)處繼續(xù)運(yùn)行主程序。外設(shè)在得到服務(wù)后,也繼續(xù)進(jìn)行自己的工作。因此,CPU可以使多個(gè)外設(shè)同時(shí)工作,并分時(shí)為各外設(shè)提供服務(wù),從而提高了CPU的利用率和輸入輸出的速度。實(shí)時(shí)處理:當(dāng)計(jì)算機(jī)用于實(shí)時(shí)控制時(shí),請(qǐng)求CPU提供服務(wù)時(shí)隨機(jī)發(fā)生的。有了中斷系統(tǒng),CPU就可以立即響應(yīng)并加以處理。故障處理:計(jì)算機(jī)在運(yùn)行時(shí)往往會(huì)出現(xiàn)一些故障,如斷電、存儲(chǔ)器奇偶校驗(yàn)出錯(cuò)、運(yùn)算溢出等。有了中斷系統(tǒng),當(dāng)出現(xiàn)上述情況時(shí),CPU可及時(shí)轉(zhuǎn)去執(zhí)行故障處理程序,自行處理故障而不必停機(jī)?!?.389C51中斷系統(tǒng)結(jié)構(gòu)及中斷控制89C51中斷系統(tǒng)的五個(gè)中斷源(結(jié)構(gòu)如圖5-3)①INT0-外部中斷0請(qǐng)求,低電平有效,通過P3.2引腳輸入②INT1-外部中斷1請(qǐng)求,低電平有效,通過P3.3引腳輸入③T0-定時(shí)器/計(jì)算器0溢出中斷請(qǐng)求④T1-定時(shí)器/計(jì)算器0溢出中斷請(qǐng)求⑤TX/RX-串行口中斷請(qǐng)求一、89C51中斷源中斷系統(tǒng)中斷源:I/O設(shè)備鍵盤、打印機(jī)、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器完成自身的操作后向CPU申請(qǐng)中斷,請(qǐng)求服務(wù)硬件故障電源斷電時(shí),需要將寄存器、累加器、標(biāo)志位保存,以便重新供電后繼續(xù)運(yùn)行RAM存儲(chǔ)器斷電時(shí)將內(nèi)容保存在如硬盤、FLASHROM中,以便供電恢復(fù)后繼續(xù)工作實(shí)時(shí)時(shí)鐘系統(tǒng)中的時(shí)鐘可以采用獨(dú)立時(shí)鐘系統(tǒng),通過中斷向CPU提供時(shí)鐘源,節(jié)省CPU的處理時(shí)間調(diào)試程序時(shí)設(shè)置的中斷程序調(diào)試時(shí),通過設(shè)置斷點(diǎn)觀察運(yùn)行中的寄存器、累加器、標(biāo)志位狀態(tài);觀察中間運(yùn)算結(jié)果上頁(yè)下頁(yè)源允許圖6-19中斷系統(tǒng)總體邏輯結(jié)構(gòu)總允許優(yōu)先級(jí)自然優(yōu)先級(jí)中斷源自然優(yōu)先級(jí)中斷源查詢硬件查詢硬件低級(jí)中斷請(qǐng)求送CPU矢量地址送PCIPIETCON
SCONEX0ET0EX1ET1ESEAINT0INT1T0T1RXTXRITIIE0IE1TF0TF1
IT1
011010101010矢量地址送PC高級(jí)中斷請(qǐng)求送CPUIT0
01中斷標(biāo)志中斷標(biāo)志INT01IE0自然優(yōu)先級(jí)矢量地址送PC“+1”TF10自然優(yōu)先級(jí)矢量地址送PCEA“+1”“+1”EX0ET11P3.2P3.3P3.4P3.5二、中斷控制89C51中斷系統(tǒng)有以下四個(gè)特殊功能寄存器:①定時(shí)器控制寄存器TCON(用六位)②串行口控制寄存器SCON(用二位)③中斷允許寄存器IE④中斷優(yōu)先級(jí)寄存器IP1、中斷請(qǐng)求標(biāo)志中斷系統(tǒng)1)、定時(shí)/計(jì)數(shù)器控制寄存器TCON
TCON(88H)TF1
TF0
IE1
IT1
IE0IT0
INT1
INT0觸發(fā)方式控制位0
低電平觸發(fā)1
邊沿↓觸發(fā)
INT1
INT0外部中斷請(qǐng)求標(biāo)志1有有效觸發(fā)時(shí)0
當(dāng)CPU響應(yīng)中斷時(shí)T1T0溢出標(biāo)志1
計(jì)數(shù)器“+1”有溢出時(shí),并向CPU請(qǐng)求中斷0
當(dāng)CPU響應(yīng)中斷時(shí),也可由指令清除TR1TR0由硬件自動(dòng)由硬件自動(dòng)上頁(yè)下頁(yè)中斷請(qǐng)求標(biāo)志可編程控制位TR1TR0由硬件自動(dòng)由硬件自動(dòng)在每個(gè)機(jī)器周期S5P2都采樣引腳P3.3P3.2引腳00記錄有無中斷記錄有無中斷中斷系統(tǒng)2)、串行口控制寄存器SCONTI:串行口發(fā)送中斷標(biāo)志在方式0,串行發(fā)送到第8位結(jié)束時(shí),由硬件置“1”;或在其他方式中,串行發(fā)送到停止位的開始時(shí),由硬件置“1”,RI:串行口接收中斷標(biāo)志上頁(yè)下頁(yè)在方式0,串行接收到第8位結(jié)束時(shí),由硬件置“1”;或在其他方式中,串行接收到停止位的開始時(shí),由硬件置“1”,“1”發(fā)送完一幀數(shù)據(jù)后“1”接收完一幀數(shù)據(jù)后必須由軟件清“0”必須由軟件清“0”
SCON(98H)
TIRI中斷系統(tǒng)2、中斷允許控制在中斷源與CPU之間有二級(jí)中斷允許控制邏輯電路,類似開關(guān),其中第一級(jí)為一個(gè)總開關(guān),第二級(jí)為五個(gè)分開關(guān),由IE控制。應(yīng)當(dāng)指出:在89C51復(fù)位時(shí),IE各位被復(fù)位成“0”狀態(tài),CPU因此而處于關(guān)閉所有中斷狀態(tài)。所以,在89C51復(fù)位以后,用戶必須通過主程序中的指令來開放所需中斷,以便相應(yīng)中斷請(qǐng)求來到時(shí)被CPU所響應(yīng)。
中斷系統(tǒng)中斷允許寄存器IE
EA/
/
ES
ET1
EX1
ET0
EX0INT0INT1T1T0UARTCPU0
禁止1
允許0
禁止1
允許總中斷總中斷中斷中斷IE(A8)中斷的開放和禁止是可控,可編程的ET2T2CPUIE的相應(yīng)位被置“0”
或“1”
該相應(yīng)中斷即被“禁止”或“開放”上頁(yè)下頁(yè)中斷系統(tǒng)3、中斷優(yōu)先級(jí)控制CPU同一時(shí)間只能響應(yīng)一個(gè)中斷請(qǐng)求。若同時(shí)來了兩個(gè)或兩個(gè)以上中斷請(qǐng)求,就必須有先有后。!?。榇藢?個(gè)中斷源分成高級(jí)、低級(jí)兩個(gè)級(jí)別,高級(jí)優(yōu)先,由IP控制。中斷系統(tǒng)1)、中斷優(yōu)先級(jí)寄存器IP
//
/
PS
PT1
PX1
PT0
PX0IP(B8)ET2INT0INT1T1T0UART0
低級(jí)1高級(jí)中斷中斷T2中斷優(yōu)先級(jí)是可控,可編程的上頁(yè)下頁(yè)2)、優(yōu)先級(jí)結(jié)構(gòu)中斷優(yōu)先級(jí)控制遵循的兩個(gè)基本原則:⑴一個(gè)正在執(zhí)行的低級(jí)中斷服務(wù)程序,能被高優(yōu)先級(jí)中斷請(qǐng)求所中斷,但不能被同優(yōu)先級(jí)中斷請(qǐng)求所中斷。⑵一個(gè)正在執(zhí)行的高級(jí)中斷服務(wù)程序,不能被任何中斷請(qǐng)求所中斷,直到返回。中斷系統(tǒng)實(shí)現(xiàn)這兩個(gè)原則的方法:上頁(yè)下頁(yè)中斷系統(tǒng)內(nèi)部設(shè)置了兩個(gè)不可尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器。一個(gè)指出正在處理的是:高優(yōu)先級(jí)中斷,并阻止所有其他中斷;另一個(gè)指出正在處理的是:低優(yōu)先級(jí)中斷,并阻止了除高優(yōu)先級(jí)中斷外的其他任何中斷。高優(yōu)先級(jí)狀態(tài)觸發(fā)器低優(yōu)先級(jí)狀態(tài)觸發(fā)器是不可尋址的當(dāng)CPU響應(yīng)高級(jí)中斷,并進(jìn)入中斷服務(wù)時(shí)“1”“1”RETI“0”當(dāng)CPU響應(yīng)低級(jí)中斷,并進(jìn)入中斷服務(wù)時(shí)“1”RETI“0”
在同級(jí)的幾個(gè)中斷源中同時(shí)發(fā)生請(qǐng)求時(shí),內(nèi)部對(duì)同級(jí)的各中斷源的優(yōu)先級(jí)別有一個(gè)規(guī)定的查詢順序:外部中斷請(qǐng)求
INT0定時(shí)/計(jì)數(shù)器T0定時(shí)/計(jì)數(shù)器T1串行口UART定時(shí)/計(jì)數(shù)器T2外部中斷請(qǐng)求
INT1最高最低上頁(yè)下頁(yè)自然優(yōu)先級(jí)自然優(yōu)先級(jí)出廠前已由廠家固化順序——事先約定中斷優(yōu)先原則:(概括為四句話)1、低級(jí)不打斷高級(jí)2、高級(jí)不睬低級(jí)3、同級(jí)不能打斷4、同級(jí)、同時(shí)中斷,事先約定。CPU在執(zhí)行主程序低級(jí)中斷請(qǐng)求響應(yīng)低級(jí)中斷請(qǐng)求CPU執(zhí)行低級(jí)中斷服務(wù)程序高級(jí)中斷請(qǐng)求響應(yīng)高級(jí)中斷請(qǐng)求CPU執(zhí)行高級(jí)中斷服務(wù)程序返回低級(jí)中斷程序返回主程序二級(jí)中斷嵌套的中斷運(yùn)行過程例:設(shè)89C51的片外中斷為高優(yōu)先級(jí),片內(nèi)中斷為低優(yōu)先級(jí)。試設(shè)置IP相應(yīng)值。(a)用字節(jié)操作指令
MOVIP,#05H或MOV0B8H,#05H(b)用位操作指令
SETBPX0SETBPX1CLRPSCLRPT0CLRPT1IP§5.4中斷響應(yīng)及中斷處理過程中斷處理過程可分為三個(gè)階段:①中斷響應(yīng)②中斷處理③中斷返回以外設(shè)提出接收數(shù)據(jù)為例,如右圖:保護(hù)現(xiàn)場(chǎng)為外設(shè)服務(wù)恢復(fù)現(xiàn)場(chǎng)主程序KK+1NN+m返回中斷處理一、中斷響應(yīng)1、中斷響應(yīng)條件:①有中斷源發(fā)出中斷請(qǐng)求;②中斷總允許位EA=1,即CPU開中斷;③申請(qǐng)中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽;④無同級(jí)或更高級(jí)中斷正在被服務(wù);⑤當(dāng)前的指令周期已經(jīng)結(jié)束;⑥若現(xiàn)行指令為RETI或者是訪問IE或IP指令時(shí),該指令以及緊接著的另一條指令已經(jīng)執(zhí)行完。中斷系統(tǒng)2、中斷響應(yīng)的過程
89C51的CPU在每個(gè)機(jī)器周期的S5P2期間順序采樣每個(gè)中斷源,CPU在下一個(gè)機(jī)器S6期間按優(yōu)先級(jí)順序查詢中斷標(biāo)志,如查詢到某個(gè)中斷標(biāo)志為1,將在接下來的機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理。中斷系統(tǒng)通過硬件自動(dòng)將相應(yīng)的中斷矢量地址裝入PC,以便進(jìn)入相應(yīng)的中斷服務(wù)程序。TCON中斷系統(tǒng)
89C51單片機(jī)的中斷系統(tǒng)中有兩個(gè)不可編程的“優(yōu)先級(jí)”觸發(fā)器:一個(gè)是“高優(yōu)先級(jí)生效”觸發(fā)器;一個(gè)是“低優(yōu)先級(jí)生效”觸發(fā)器。
89C51單片機(jī)一旦響應(yīng)中斷,首先置位相應(yīng)的中斷“優(yōu)先級(jí)生效”觸發(fā)器,然后由硬件執(zhí)行一條長(zhǎng)調(diào)用指令LCALL,把當(dāng)前PC值壓入堆棧,以保護(hù)斷點(diǎn),再將相應(yīng)的中斷服務(wù)程序的入口地址送入PC,于是CPU接著從中斷服務(wù)程序的入口開始執(zhí)行。中斷過程五個(gè)中斷源:入口地址外部中斷0(/INT0)0003HT0溢出中斷000BH
外部中斷1(/INT1)0013HT1溢出中斷001BH
串口中斷0023H各中斷源及與之對(duì)應(yīng)的矢量地址如下:中斷系統(tǒng)編寫中斷服務(wù)程序時(shí)應(yīng)注意:①在中斷矢量地址單元處放一條無條件轉(zhuǎn)移指令(如LJMPXXXXH),使中斷服務(wù)程序可靈活地安排在64KB程序存儲(chǔ)器的任何空間。②在中斷服務(wù)程序中,用戶應(yīng)注意用軟件保護(hù)現(xiàn)場(chǎng),以免中斷返回后丟失原寄存器、累加器中的信息。③若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可以先用軟件關(guān)閉CPU中斷或禁止某中斷源中斷,在中斷返回前再開放中斷。3、對(duì)中斷請(qǐng)求的撤銷1)定時(shí)器溢出中斷請(qǐng)求的撤除
2)串行口中斷請(qǐng)求的撤除
TI和RI是串行口中斷的標(biāo)志位,中斷系統(tǒng)不能自動(dòng)將它們撤除,這是因?yàn)?9C51進(jìn)入串行口中斷服務(wù)程序后常需要對(duì)它們進(jìn)行檢測(cè),以測(cè)定串行口發(fā)生了接收中斷還是發(fā)送中斷。為了防止CPU再次響應(yīng)這類中斷,用戶應(yīng)在中斷服務(wù)程序的適當(dāng)位置處通過如下指令將它們撤除。
CLRTI;撤除發(fā)送中斷CLRRI;撤除接收中斷
3)外部中斷請(qǐng)求的撤除
外部中斷請(qǐng)求有兩種觸發(fā)方式:電平觸發(fā)和邊沿觸發(fā)。①邊沿觸發(fā)方式中斷請(qǐng)求的撤除②電平觸發(fā)方式中斷請(qǐng)求的撤除
在電平觸發(fā)方式下,外部中斷標(biāo)志IE0或IE1是依靠CPU檢測(cè)INT0或INT1上的低電平而置位的。盡管CPU響應(yīng)中斷時(shí)相應(yīng)中斷標(biāo)志IE0或IE1能自動(dòng)復(fù)位成“0”狀態(tài),但若外部中斷源不能及時(shí)撤除它在INT0或INT1上的低電平,就會(huì)再次使已經(jīng)變“0”的中斷標(biāo)志IE0或IE1置位,這是絕對(duì)不能允許的。因此,電平觸發(fā)方式外部中斷請(qǐng)求的撤除必須使INT0或INT1上的低電平隨著其中斷被CPU響應(yīng)而變?yōu)楦唠娖健?、中斷響應(yīng)時(shí)間
在實(shí)時(shí)控制系統(tǒng)中。為了滿足控制速度要求,常要弄清CPU響應(yīng)中斷所需的時(shí)間。中斷響應(yīng)時(shí)間:中斷請(qǐng)求有效(標(biāo)志位置“1”)到轉(zhuǎn)向中斷入口地址所需的機(jī)器周期數(shù)。響應(yīng)中斷的時(shí)間有最短和最長(zhǎng)之分:(1)最短需要3個(gè)機(jī)器周期M1M3M4M5M2S5P1S5P2INTi被采樣并鎖存到IE0IE1中CPU進(jìn)行中斷查詢保護(hù)斷點(diǎn),長(zhǎng)調(diào)用至入口中斷服務(wù)即滿足上述中斷響應(yīng)條件(2)最長(zhǎng)需要8個(gè)周期若CPU在執(zhí)行RETI(或訪問IE/IP)指令的第一個(gè)機(jī)器周期中查詢到有了某中斷源的中斷請(qǐng)求(設(shè)該中斷源的中斷是開放的),則89C51需要再執(zhí)行一條指令才會(huì)響應(yīng)這個(gè)中斷請(qǐng)求。在這種情況下,CPU響應(yīng)中斷的時(shí)間最長(zhǎng),共需8個(gè)機(jī)器周期。二、中斷處理CPU響應(yīng)中斷后即轉(zhuǎn)至中斷服務(wù)程序入口,執(zhí)行中斷服務(wù)程序。從中斷服務(wù)程序的第一條指令開始到返回指令為止,這個(gè)過程稱為中斷處理或中斷服務(wù)。不同的中斷源服務(wù)的內(nèi)容及要求各不相同,其處理過程也就有所區(qū)別。一般情況下,中斷處理包括兩部分內(nèi)容:一是保護(hù)現(xiàn)場(chǎng)。二是為中斷源服務(wù)。三、中斷返回(1)使相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器清0。(2)從堆棧中彈出棧頂?shù)膬蓚€(gè)字節(jié)內(nèi)容送PC——恢復(fù)斷點(diǎn)。(3)CPU接著中斷處繼續(xù)執(zhí)行原程序。恢復(fù)現(xiàn)場(chǎng)在中斷服務(wù)程序中,最后一條指令必須為中斷返回指令RETICPU執(zhí)行該指令時(shí),一方面清除中斷響應(yīng)時(shí)所置位的“優(yōu)先級(jí)生效”觸發(fā)器,另一方面從當(dāng)前棧頂彈出斷點(diǎn)地址送入程序計(jì)數(shù)器PC,從而返回主程序中斷處理中推入堆棧的寄存器、累加器、標(biāo)志位需要在執(zhí)行返回指令RETI之前用軟件從堆?;謴?fù),采用POP指令注意在中斷服務(wù)程序中,PUSH和POP指令必須成對(duì)使用,否則,不能正確返回?cái)帱c(diǎn)恢復(fù)現(xiàn)場(chǎng)期間,為了防止更高優(yōu)先級(jí)中斷破壞現(xiàn)場(chǎng)內(nèi)容,需要關(guān)閉中斷允許位EAP1.0P1.1P1.2P1.3INT0+5V89C51INT1裝置1裝置2裝置3裝置4圖5-11多個(gè)外部中斷源連接法二、中斷加查詢擴(kuò)展中斷源
利用89C51的兩根外部中斷輸入線。每一中斷輸入線可以通過“線或”的關(guān)系連接多個(gè)外部中斷源,同時(shí)利用輸入端口線作為各中斷源的識(shí)別線。具體線路見圖5-11所示的多個(gè)外部中斷源連接方法。§5.5外部中斷擴(kuò)展方法一、利用定時(shí)器擴(kuò)展外部中斷源有關(guān)中斷服務(wù)程序的片斷如下:
ORG0003HLJMPINTRP…INTRP:PUSHPSWPUSHAJBP1.0,DV1JBP1.1,DV2JBP1.2,DV3JBP1.3,DV4EXIT:POPAPOPPSWRETIDV1:…裝置1的中斷服務(wù)程序AJMPEXITDV2:…裝置2的中斷服務(wù)程序AJMPEXITDV3:…裝置3的中斷服務(wù)程序AJMPEXITDV4:…裝置4的中斷服務(wù)程序AJMPEXIT一、主程序1.主程序的起始地址89C51系列單片機(jī)復(fù)位后,(PC)=0000H0003H~002BH分別為各中斷源的入口地址編程時(shí)應(yīng)在0000H處寫一條跳轉(zhuǎn)指令(一般為長(zhǎng)跳轉(zhuǎn)指令),主程序是以跳轉(zhuǎn)的目標(biāo)地址作為起始地址開始編寫,一般從0030H開始,如圖所示0000HLJMP00300030H主程序§5.6中斷程序舉例矢量地址2、主程序的初始化內(nèi)容初始化將用到的內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定。特殊功能寄存器初始化設(shè)置單片機(jī)復(fù)位后,特殊功能寄存器IE、IP內(nèi)容均為00H,所以應(yīng)對(duì)IE、IP進(jìn)行初始化編程,以開放中斷,允許某些中斷源中斷和設(shè)置中斷優(yōu)先級(jí)等。中斷系統(tǒng)二、中斷服務(wù)程序1.中斷服務(wù)程序的起始地址中斷系統(tǒng)對(duì)五個(gè)中斷源分別規(guī)定了各自的入口地址,但這些入口地址相距很近(8個(gè)字節(jié))如中斷服務(wù)程序的指令代碼少于8個(gè)字節(jié),則可從規(guī)定的中斷服務(wù)程序入口地址開始,直接編寫中斷服務(wù)程序如中斷服務(wù)程序的指令代碼大于8個(gè)字節(jié),則應(yīng)采用與主程序相同的方法,在相應(yīng)的入口處寫一條跳轉(zhuǎn)指令,并以跳轉(zhuǎn)指令的目標(biāo)地址作為中斷服務(wù)程序的起始地址進(jìn)行編程矢量地址2、中斷服務(wù)程序編制中的注意事項(xiàng)(1)視需要確定是否保護(hù)現(xiàn)場(chǎng);(2)及時(shí)清除那些不能被硬件自動(dòng)清除的中斷請(qǐng)求標(biāo)志,以免產(chǎn)生錯(cuò)誤的中斷;(3)中斷服務(wù)程序中的壓棧(PUSH)與出棧(POP)指令必須成對(duì)使用,以確保中斷服務(wù)程序的正確返回;(4)主程序和中斷服務(wù)程序之間的參數(shù)傳遞與主程序和子程序的參數(shù)傳遞方式相同。例:如圖所示,將P1口的P1.4~P1.7作為輸入位,P1.0~P1.3作為輸出位。要求利用89C51將開關(guān)所設(shè)的數(shù)據(jù)讀入單片機(jī)內(nèi),并依次通過P1.0~P1.3輸出,驅(qū)動(dòng)發(fā)光二極管,以檢查P1.4~P1.7輸入的電平情況(若輸入為高電平則相應(yīng)的LED亮)?,F(xiàn)要求采用中斷邊沿觸發(fā)方式,每中斷一次,完成一次讀/寫操作。源程序:
ORG0000HAJMPMAINORG0003HAJMPINSERORG0030HMAIN:SETBEX0SETBIT0SETBEAHERE:SJMPHERE
中斷服務(wù)子程序:
ORG0200HINSER:MOVA,#0F0HMOVP1,AMOVA,P1SWAPAMOVP1,ARETIEND中斷請(qǐng)求(外部中斷源)電平型外部中斷的撤除電路源程序:
ORG0000HAJMPMAINORG0003HAJMPINSERORG0030HMAIN:SETBP3.0SETBEX0CLRIT0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職(環(huán)境監(jiān)測(cè)技術(shù))污染控制操作試題及答案
- 2026年市場(chǎng)營(yíng)銷綜合(多渠道營(yíng)銷)試題及答案
- 2025年高職水利水電建筑工程(水利水電工程)試題及答案
- 2025年高職(鐵道工程技術(shù))鐵路施工綜合測(cè)試題及答案
- 2025年高職游戲設(shè)計(jì)(游戲教學(xué)設(shè)計(jì))試題及答案
- 運(yùn)輸管理制度匯編
- 連鎖快捷酒店直營(yíng)店店長(zhǎng)管理手冊(cè)上模板
- 養(yǎng)老院老人精神關(guān)懷制度
- 養(yǎng)老院老人檔案管理制度
- 養(yǎng)老院消防安全制度
- 神經(jīng)外科規(guī)范化培訓(xùn)體系綱要
- 互助與團(tuán)隊(duì)精神主題班會(huì)課件
- 制造企業(yè)發(fā)票管理辦法
- 中醫(yī)情志護(hù)理的原則和方法
- 護(hù)士情緒管理課件總結(jié)
- DBJ50-T-200-2024 建筑樁基礎(chǔ)技術(shù)標(biāo)準(zhǔn)
- 新人教版小學(xué)數(shù)學(xué)教材解讀
- 設(shè)備、管道、鋼結(jié)構(gòu)施工方案
- 2021-2026年中國(guó)沉香木行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃研究報(bào)告
- 2024-2030年中國(guó)海南省廢水污染物處理資金申請(qǐng)報(bào)告
- 新能源汽車技術(shù) SL03維修手冊(cè)(第4章)-電氣-4.2.2~4.2.12電器集成
評(píng)論
0/150
提交評(píng)論