




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章
80C51單片微機(jī)的
中斷系統(tǒng)原理及應(yīng)用5.1概述5.280C51的中斷系統(tǒng)5.3中斷控制
5.4中斷響應(yīng)過程和響應(yīng)時(shí)間第五章
80C51單片微機(jī)的
中斷系統(tǒng)原理及應(yīng)用
中斷概念的出現(xiàn),是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)設(shè)計(jì)中的重大變革。 現(xiàn)代計(jì)算機(jī)中操作系統(tǒng)實(shí)現(xiàn)的管理調(diào)度,其物質(zhì)基礎(chǔ)就是豐富的中斷功能和完善的中斷系統(tǒng)。一個(gè)CPU資源要面向多個(gè)任務(wù),出現(xiàn)資源競(jìng)爭(zhēng),而中斷技術(shù)實(shí)質(zhì)上是一種資源共享技術(shù)。中斷系統(tǒng)包括它的硬件和軟件編程。
5.1概述⒈中斷系統(tǒng)的幾個(gè)概念: ⑴中斷 程序執(zhí)行過程中,允許外部或內(nèi)部事件通過硬件打斷程序的執(zhí)行,使其轉(zhuǎn)向?yàn)樘幚硗獠炕騼?nèi)部事件的中斷服務(wù)程序中去;完成中斷服務(wù)程序后,CPU繼續(xù)原來被打斷的程序,這樣的過程稱為中斷響應(yīng)過程,如圖5-1所示。 ⑵中斷源 能產(chǎn)生中斷的外部和內(nèi)部事件。
圖5–1中斷響應(yīng)過程
⑶中斷優(yōu)先級(jí) 當(dāng)有幾個(gè)中斷源同時(shí)申請(qǐng)中斷時(shí),或者CPU正在處理某中斷源服務(wù)程序時(shí),又有另一中斷源申請(qǐng)中斷,那么CPU必須要確定優(yōu)先去處理誰的能力。
⑷中斷嵌套 優(yōu)先級(jí)高的事件可以中斷CPU正在處理的低級(jí)的中斷服務(wù)程序,待完成了高級(jí)中斷服務(wù)程序之后,再繼續(xù)被打斷的低級(jí)中斷服務(wù)程序。⒈實(shí)現(xiàn)CPU與外部設(shè)備的速度配合
通過中斷的方法來協(xié)調(diào)快速CPU與慢速外部設(shè)備之間的工作。⒉實(shí)現(xiàn)實(shí)時(shí)控制 依靠中斷技術(shù)能實(shí)現(xiàn)實(shí)時(shí)控制。 實(shí)時(shí)控制要求計(jì)算機(jī)能及時(shí)完成被控對(duì)象隨機(jī)提出的分析和計(jì)算任務(wù)。在自動(dòng)控制系統(tǒng)中,要求各控制參量隨機(jī)地在任何時(shí)刻可向計(jì)算機(jī)發(fā)出請(qǐng)求,CPU必須作出快速響應(yīng)、及時(shí)處理。2、中斷的主要功能⒊實(shí)現(xiàn)故障的及時(shí)發(fā)現(xiàn)及處理
應(yīng)用中由于外界的干擾、硬件或軟件設(shè)計(jì)中存在問題等因素,在實(shí)際運(yùn)行中會(huì)出現(xiàn)硬件故障、運(yùn)算錯(cuò)誤、程序運(yùn)行故障等,有了中斷技術(shù),單片微機(jī)就能及時(shí)發(fā)現(xiàn)故障并自動(dòng)處理。
⒋實(shí)現(xiàn)人機(jī)聯(lián)系
如通過鍵盤向單片微機(jī)發(fā)出中斷請(qǐng)求,可以實(shí)時(shí)干預(yù)計(jì)算機(jī)的工作。
⑴當(dāng)單片微機(jī)內(nèi)部或外部有中斷申請(qǐng)時(shí),CPU能及時(shí)響應(yīng)中斷,停下正在執(zhí)行的任務(wù),轉(zhuǎn)去處理中斷服務(wù)子程序,中斷服務(wù)處理后能回到原斷點(diǎn)處繼續(xù)處理原先的任務(wù); ⑵當(dāng)有多個(gè)中斷源同時(shí)申請(qǐng)中斷時(shí),應(yīng)能先響應(yīng)優(yōu)先級(jí)高的中斷源,實(shí)現(xiàn)中斷優(yōu)先級(jí)的控制; ⑶當(dāng)?shù)蛢?yōu)先級(jí)中斷源正在享用中斷服務(wù)時(shí),若這時(shí)優(yōu)先級(jí)比它高的中斷源也申請(qǐng)中斷,要求能停下低優(yōu)先級(jí)中斷源的服務(wù)程序轉(zhuǎn)去執(zhí)行更高優(yōu)先級(jí)中斷源的服務(wù)程序,實(shí)現(xiàn)中斷嵌套,并能逐級(jí)正確返回原斷點(diǎn)處。3、單片微機(jī)的中斷系統(tǒng)需要解決的問題5.280C51的中斷系統(tǒng)
中斷源5.2.1中斷矢量5.2.2重點(diǎn)
中斷源5.2.1
80C51有5個(gè)中斷源,80C52增加了一個(gè)中斷源——定時(shí)器/計(jì)數(shù)器T2。 每一個(gè)中斷源都能被程控為高優(yōu)先級(jí)或低優(yōu)先級(jí)?!?兩個(gè)外部中斷源INT0和INT1:外部設(shè)備的中斷請(qǐng)求信號(hào)、掉電等故障信號(hào)都可以從INT0或INT1引腳輸入。 三個(gè)內(nèi)部中斷源:T0和T1的定時(shí)/計(jì)數(shù)謚出中斷源和串行口發(fā)送或接收中斷源。
1.外部中斷
◆外部中斷是由外部信號(hào)引起的,共有兩個(gè)外部中斷,它們的中斷請(qǐng)求信號(hào)分別從引腳INT0和INT1上引入。 ◆外部中斷請(qǐng)求有兩種信號(hào)觸發(fā)方式.
可通過設(shè)置有關(guān)控制位進(jìn)行定義。 當(dāng)設(shè)定為電平有效方式時(shí),若INT0或INT1引腳上采樣到有效的低電平,則向CPU提出中斷請(qǐng)求; 當(dāng)設(shè)定為跳變有效方式時(shí),若INT0或INT1引腳上采樣到有效負(fù)跳變,則向CPU提出中斷請(qǐng)求。
⑴INT0:外部中斷0。
當(dāng)IT0=0時(shí),低電平有效; 當(dāng)IT0=1時(shí),下降沿有效。⑵INT1:外部中斷1。 當(dāng)IT1=0時(shí),低電平有效; 當(dāng)IT1=1時(shí),下降沿有效。
⒉
定時(shí)中斷
當(dāng)計(jì)數(shù)器發(fā)生計(jì)數(shù)溢出時(shí),表明設(shè)定的定時(shí)時(shí)間到或計(jì)數(shù)值已滿,這時(shí)可以向CPU申請(qǐng)中斷。80C51有兩個(gè)源,即: ⑴TF0:T0溢出中斷。 ⑵TF1:T1溢出中斷。⒊串行中斷 每當(dāng)串行口發(fā)送或接收一幀串行數(shù)據(jù)時(shí),就產(chǎn)生一個(gè)中斷請(qǐng)求。
RXD,TXD:串行中斷。圖5–280C51的中斷系統(tǒng)結(jié)構(gòu)示意圖
★在同一優(yōu)先級(jí)內(nèi)有一個(gè)由內(nèi)部查詢序列確定的笫二個(gè)優(yōu)先級(jí)結(jié)構(gòu)。其排列如下:
中斷源
中斷優(yōu)先級(jí)
⒈外部中斷0 最高 ⒉定時(shí)器T0中斷 ⒊外部中斷1 ⒋定時(shí)器T1中斷 ⒌串行口中斷 ⒍定時(shí)器T2中斷 最低(80C52)
◆矢量中斷:當(dāng)CPU響應(yīng)中斷時(shí),由硬件直接產(chǎn)生一個(gè)固定的地址,即矢量地址,由矢量地址指出每個(gè)中斷源設(shè)備的中斷服務(wù)程序的入口。 ◆當(dāng)CPU識(shí)別出某個(gè)中斷源時(shí),由硬件直接給出一個(gè)與該中斷源相對(duì)應(yīng)的矢量地址,從而轉(zhuǎn)入各自中斷服務(wù)程序。中斷矢量地址見表5-1。中斷矢量5.2.2中斷源
中斷矢量地址
外部中斷0(INT0)
0003H定時(shí)器/計(jì)數(shù)器0(T0)
000BH外部中斷1(INT1)
0013H定時(shí)器/計(jì)數(shù)器1(T1)
001BH串行口(RI、TI)
0023H定時(shí)器/計(jì)數(shù)器2002BH表5-1中斷矢量地址
INT0,INT1,T0及T1的中斷標(biāo)志存放在TCON寄存器中;串行口的中斷標(biāo)志存放在SCON寄存器中。
定時(shí)器/計(jì)數(shù)器控制寄存器TCON:
◆IT1:INT1的中斷申請(qǐng)觸發(fā)方式控制位 ◆IT0:INT0的中斷申請(qǐng)觸發(fā)方式控制位。
5.3中斷的控制
5.3.1中斷標(biāo)志⑴INT0:外部中斷0。
當(dāng)IT0=0時(shí),低電平有效; 當(dāng)IT0=1時(shí),下降沿有效。⑵INT1:外部中斷1。 當(dāng)IT1=0時(shí),低電平有效; 當(dāng)IT1=1時(shí),下降沿有效。
中斷允許和禁止由中斷允許寄存器IE控制。中斷允許寄存器IE:5.3.2中斷允許控制
◆IE寄存器中各位設(shè)置:為0時(shí),禁止中斷;為1時(shí),允許中斷?!粝到y(tǒng)復(fù)位后IE寄存器中各位均為0,禁止所有中斷。 在80C51中有高、低兩個(gè)中斷優(yōu)先級(jí),通過IP來設(shè)定。 中斷優(yōu)先級(jí)寄存器IP:◆IP寄存器中各位設(shè)置:為0時(shí),為低中斷優(yōu)先級(jí);為1時(shí),設(shè)為高中斷優(yōu)先級(jí)。◆系統(tǒng)復(fù)位后IP寄存器中各位均為0,全部設(shè)定為低中斷優(yōu)先級(jí)。5.3.3中斷優(yōu)先級(jí) 在80C51中有高、低兩個(gè)中斷優(yōu)先級(jí),通過IP來設(shè)定。 中斷優(yōu)先級(jí)寄存器IP:
◆IP寄存器中各位設(shè)置:為0時(shí),為低中斷優(yōu)先級(jí);為1時(shí),設(shè)為高中斷優(yōu)先級(jí)?!粝到y(tǒng)復(fù)位后IP寄存器中各位均為0,全部設(shè)定為低中斷優(yōu)先級(jí)。5.3.3中斷優(yōu)先級(jí)
中斷優(yōu)先級(jí)控制,還有兩個(gè)不可尋址的優(yōu)先級(jí)狀態(tài)觸發(fā)器,一個(gè)用于指示某一高優(yōu)先級(jí)中斷正在進(jìn)行服務(wù),而屏蔽其它高優(yōu)先級(jí)中斷;另一個(gè)用于指示某一低優(yōu)先級(jí)中斷正在進(jìn)行服務(wù),從而屏蔽其它低優(yōu)先級(jí)中斷,但不能屏蔽高優(yōu)先級(jí)中斷。
◆在中斷執(zhí)行過程中,高中斷優(yōu)先級(jí)可以中斷低中斷優(yōu)先級(jí)的中斷過程。但是若在中斷服務(wù)程序中,關(guān)掉所有中斷(CLREA)或關(guān)掉部分中斷時(shí)除外。 ◆當(dāng)CPU同時(shí)接收到兩個(gè)不同優(yōu)先級(jí)的中斷請(qǐng)求時(shí),先響應(yīng)高優(yōu)先級(jí)的中斷,如果CPU同時(shí)接收到的是幾個(gè)同一優(yōu)先級(jí)的中斷請(qǐng)求時(shí),則由內(nèi)部的硬件查詢序列確定它們的優(yōu)先服務(wù)次序,
★在同一優(yōu)先級(jí)內(nèi)有一個(gè)由內(nèi)部查詢序列確定的笫二個(gè)優(yōu)先級(jí)結(jié)構(gòu)。其排列如下:
中斷源
中斷優(yōu)先級(jí)
⒈外部中斷0 最高 ⒉定時(shí)器T0中斷 ⒊外部中斷1 ⒋定時(shí)器T1中斷 ⒌串行口中斷 ⒍定時(shí)器T2中斷 最低(80C52)
INT0,INT1的中斷觸發(fā)方式有兩種:◆電平觸發(fā)方式,低電平有效?!籼冇|發(fā)方式,電平發(fā)生由高到低的跳變時(shí)觸發(fā)?!馡T1、IT0=0,選擇電平觸發(fā)方式;●IT1、IT0=l,選擇跳變觸發(fā)方式,即當(dāng)INT0,INT1引腳檢測(cè)到前一個(gè)機(jī)器周期為高電平、后一個(gè)機(jī)器周期為低電平時(shí),則置位IE0、IE1且向CPU申請(qǐng)中斷。
5.3.4外部中斷觸發(fā)方式
1.
由單片微機(jī)內(nèi)部硬件自動(dòng)復(fù)位。
對(duì)于T0、T1的溢出中斷和采用跳變觸發(fā)方式的外部中斷請(qǐng)求,在CPU響應(yīng)中斷后,由內(nèi)部硬件自動(dòng)清除中斷標(biāo)志TF0和TF1、IE0和IE1,而自動(dòng)撤除中斷請(qǐng)求。5.3.5中斷請(qǐng)求的撤除
2.應(yīng)用軟件清除相應(yīng)標(biāo)志。 對(duì)于串行接收/發(fā)送中斷請(qǐng)求和80C52中的T2的溢出和捕獲中斷請(qǐng)求,在CPU響應(yīng)中斷后,必須在中斷服務(wù)程序中應(yīng)用軟件清除RI、TI、TF2和EXF2這些中斷標(biāo)志,才能撤除中斷。
對(duì)于采用電平觸發(fā)方式的外部中斷請(qǐng)求,中斷標(biāo)志的撤消是自動(dòng)的,但中斷請(qǐng)求信號(hào)的低電平可能繼續(xù)存在,在以后機(jī)器周期采樣時(shí)又會(huì)把已清“0”的IE0、IE1標(biāo)志重新置“1”,再次申請(qǐng)中斷。
3.采用外加
硬件結(jié)合軟件清除中斷請(qǐng)求
從中斷請(qǐng)求發(fā)生直到被響應(yīng)去執(zhí)行中斷服務(wù)程序,中斷響應(yīng)過程的時(shí)序如圖5-4所示。
⒈中斷采樣 針對(duì)外部中斷請(qǐng)求信號(hào)進(jìn)行的,而內(nèi)部中斷請(qǐng)求都發(fā)生在芯片內(nèi)部,可以直接置位TCON或SCON中的中斷請(qǐng)求標(biāo)志。在每個(gè)機(jī)器周期的S5P2期間,各中斷標(biāo)志采樣相應(yīng)的中斷源,并置入相應(yīng)標(biāo)志。5.4中斷響應(yīng)過程和響應(yīng)時(shí)間
5.4.1中斷的響應(yīng)過程
圖5–4中斷響應(yīng)過程的時(shí)序
⒉中斷查詢
若查詢到某中斷標(biāo)志為1,則按優(yōu)先級(jí)的高低進(jìn)行處理,即響應(yīng)中斷。
80C51的中斷請(qǐng)求都匯集在TCON和SCON中。而CPU則在下一機(jī)器周期的S6期間按優(yōu)先級(jí)的順序查詢各中斷標(biāo)志。先查詢高級(jí)中斷,再查詢低級(jí)中斷。同級(jí)中斷按內(nèi)部中斷優(yōu)先級(jí)序列查詢。如果查詢到有中斷標(biāo)志位為“1”,則表明有中斷請(qǐng)求發(fā)生,接著從相鄰的下一個(gè)機(jī)器周期的S1狀態(tài)開始進(jìn)行中斷響應(yīng)。 ⒊中斷響應(yīng)
硬件自動(dòng)生成長調(diào)用指令為LCALLaddr16,而addr16就是各中斷源的中斷矢量地址(參見表5-1)?!粝葘⒊绦蛴?jì)數(shù)器PC的內(nèi)容壓入堆棧進(jìn)行保護(hù),先低位地址,后高位地址,同時(shí)堆棧指針SP加2?!魧?duì)應(yīng)中斷源的中斷矢量地址裝入PC,去執(zhí)行中斷服務(wù)程序?!糁袛喾?wù)程序由中斷矢量地址開始執(zhí)行,直至遇到RETI為止。執(zhí)行RETI,一是撤銷中斷申請(qǐng),彈出斷點(diǎn)地址進(jìn)入PC,先彈出高位地址,后彈出低位地址,同時(shí)堆棧指針SP減2,恢復(fù)原程序的斷點(diǎn)地址執(zhí)行;二是恢復(fù)中斷觸發(fā)器原先狀態(tài)。中斷源
中斷矢量地址
外部中斷0(INT0)
0003H定時(shí)器/計(jì)數(shù)器0(T0)
000BH外部中斷1(INT1)
0013H定時(shí)器/計(jì)數(shù)器1(T1)
001BH串行口(RI、TI)
0023H定時(shí)器/計(jì)數(shù)器2002BH表5-1中斷矢量地址
中斷響應(yīng)是有條件的,在接受中斷申請(qǐng)時(shí),如遇下列情況之一時(shí),硬件生成的長調(diào)用指令“LCALL”將被封鎖:⑴CPU正在執(zhí)行同級(jí)或高一級(jí)的中斷服務(wù)程序中。因?yàn)楫?dāng)一個(gè)中斷被響應(yīng)時(shí),其對(duì)應(yīng)的中斷優(yōu)先級(jí)觸發(fā)器被置“1”,封鎖了同級(jí)和低級(jí)中斷;⑵查詢中斷請(qǐng)求的機(jī)器周期不是執(zhí)行當(dāng)前指令的最后一個(gè)周期。⑶當(dāng)前正在執(zhí)行RETI指令或執(zhí)行對(duì)IE、IP的讀/寫操作指令。80C51中斷系統(tǒng)的特性規(guī)定,在執(zhí)行完這些指令之后,必須再繼續(xù)執(zhí)行一條指令,然后才能響應(yīng)中斷。
中斷的執(zhí)行過程與調(diào)用子程序相似點(diǎn): ⑴都是中斷當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行子程序或中斷服務(wù)程序。 ⑵都是由硬件自動(dòng)地把斷點(diǎn)地址壓入堆棧,然后通過軟件完成現(xiàn)場(chǎng)保護(hù)。 ⑶執(zhí)行完子程序或中斷服務(wù)程序后,都要通過軟件完成現(xiàn)場(chǎng)恢復(fù),并通過執(zhí)行返回指令,重新返回到斷點(diǎn)處,繼續(xù)往下執(zhí)行程序。 ⑷二者都可以實(shí)現(xiàn)嵌套,如中斷嵌套和子程序嵌套。
中斷的執(zhí)行與調(diào)用子程序差別 ⑴中斷請(qǐng)求信號(hào)可以由外部設(shè)備發(fā)出,是隨機(jī)的,比如故障產(chǎn)生的中斷請(qǐng)求;子程序調(diào)用卻是由軟件編排好的。 ⑵中斷響應(yīng)后由固定的矢量地址轉(zhuǎn)入中斷服務(wù)程序,而子程序地址由軟件設(shè)定。 ⑶中斷響應(yīng)是受控的,其響應(yīng)時(shí)間會(huì)受一些因素影響;子程序響應(yīng)時(shí)間是固定的。
一般來說,在單級(jí)中斷系統(tǒng)中,中斷的響應(yīng)時(shí)間最短為3個(gè)機(jī)器周期,最長為8個(gè)機(jī)器周期。 當(dāng)中斷請(qǐng)求標(biāo)志位查詢占1個(gè)機(jī)器周期,而這個(gè)機(jī)器周期又恰好是指令的最后一個(gè)機(jī)器周期,在這個(gè)機(jī)器周期結(jié)束后,CPU即響應(yīng)中斷,產(chǎn)生硬件長調(diào)用LCALL指令,執(zhí)行這條長調(diào)用指令需要2個(gè)機(jī)器周期,中斷響應(yīng)時(shí)間為3個(gè)機(jī)器周期。5.4.2中斷響應(yīng)時(shí)間
中斷響應(yīng)時(shí)間最長為8個(gè)機(jī)器周期。如果CPU正在執(zhí)行的是RETI指令或訪問IP、IE指令,則等待時(shí)間不會(huì)多于2個(gè)機(jī)器周期,而中斷系統(tǒng)規(guī)定把這幾條指令執(zhí)行完必須再繼續(xù)執(zhí)行一條指令后才能響應(yīng)中斷,如這條指令恰好是4個(gè)機(jī)器周期長的指令(比如乘法指令MUL或除法指令DIV),再加上執(zhí)行長調(diào)用指令LCALL所需2個(gè)機(jī)器周期。 如果中斷請(qǐng)求被前面所列三個(gè)條件之一所阻止,所需的響應(yīng)時(shí)間就更長些。如果正在處理同級(jí)或優(yōu)先級(jí)更高的中斷,那么中斷響應(yīng)的時(shí)間還需取決于處理中的中斷服務(wù)程序的執(zhí)行時(shí)間。
在80C51系列單片微機(jī)中,一般只有兩個(gè)外部中斷請(qǐng)求輸入端INT0、INT1。當(dāng)某個(gè)系統(tǒng)需要多個(gè)外部中斷源時(shí),可以通過增加“OC門”結(jié)合軟件來擴(kuò)展;當(dāng)定時(shí)器/計(jì)數(shù)器在系統(tǒng)中有空余時(shí),可以通過對(duì)計(jì)數(shù)器計(jì)數(shù)長度的巧妙設(shè)置,使定時(shí)器/計(jì)數(shù)器的外部輸入腳(T0或T1)成為外部中斷請(qǐng)求輸入端。5.5外部中斷源的擴(kuò)展
80C51共有5個(gè)中斷源,由4個(gè)特殊功能寄存器TCON、SCON、IE和IP進(jìn)行管理和控制。
在80C51中,需要用軟件對(duì)以下5個(gè)內(nèi)容進(jìn)行設(shè)置:⑴中斷服務(wù)程序入口地址的設(shè)定。⑵某一中斷源中斷請(qǐng)求的允許與禁止。⑶對(duì)于外部中斷請(qǐng)求,還需進(jìn)行觸發(fā)方式的設(shè)定。⑷各中斷源優(yōu)先級(jí)別的設(shè)定。⑸CPU開中斷與關(guān)中斷。
中斷服務(wù)程序的設(shè)計(jì)
例.試編寫設(shè)置外部中斷INT0和串行接口中斷為高優(yōu)先級(jí),外部中斷INT1為低優(yōu)先級(jí)。屏蔽T0和T1中斷請(qǐng)求的初始化程序段。 將中斷請(qǐng)求優(yōu)先級(jí)寄存器IP的第0、4位置“l(fā)”,其余位置“0”。 將中斷請(qǐng)求允許寄存器的第0、2、4、7位置“l(fā)”,其余位置“0”。
中斷程序一般包含中斷控制程序和中斷服務(wù)程序兩部分。中斷控制程序即中斷初始化程序,一般包含在主程序中。中斷允許和禁止由中斷允許寄存器IE控制。中斷允許寄存器IE:◆IE寄存器中各位設(shè)置:為0時(shí),禁止中斷;為1時(shí),允許中斷。◆系統(tǒng)復(fù)位后IE寄存器中各位均為0,禁止所有中斷。 在80C51中有高、低兩個(gè)中斷優(yōu)先級(jí),通過IP來設(shè)定。 中斷優(yōu)先級(jí)寄存器IP:◆IP寄存器中各位設(shè)置:為0時(shí),為低中斷優(yōu)先級(jí);為1時(shí),設(shè)為高中斷優(yōu)先級(jí)。◆系統(tǒng)復(fù)位后IP寄存器中各位均為0,全部設(shè)定為低中斷優(yōu)先級(jí)。編程如下: ORG 0000H SJMP MAIN ORG 0003H
LJMP INT0INT
;設(shè)外部中斷INT0中斷矢量
ORG 0013H
LJMP INT1INT
;設(shè)外部中斷INT1中斷矢量
ORG 0023H LJMP SIOINT ;設(shè)串行口中斷矢量
ORG 0100HMAIN:… MOVIP,#00010001B;設(shè)外部中斷INT0和串行 ;口中斷為高優(yōu)先級(jí)
MOVIE,#10010101B;允許INT0、INT1、串行 ;口中斷,開CPU中斷
中斷響應(yīng)很突出的一點(diǎn)是它的隨機(jī)性。中斷服務(wù)程序編寫中的問題:
⑴保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)、恢復(fù)斷點(diǎn)和現(xiàn)場(chǎng) 中斷服務(wù)程序在調(diào)用和返回時(shí),也有一個(gè)保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)、恢復(fù)斷點(diǎn)和現(xiàn)場(chǎng)的問題。在中斷響應(yīng)過程中,斷點(diǎn)的保護(hù)主要由硬件電路自動(dòng)實(shí)現(xiàn)。它將斷點(diǎn)壓入堆棧,再將中斷服務(wù)程序的入口地址送入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向中斷服務(wù)程序,即為中斷源的請(qǐng)求服務(wù)。
現(xiàn)場(chǎng):在80C51中,發(fā)生中斷時(shí)存儲(chǔ)單元、累加器A、工作寄存器R0~R7以及程序狀態(tài)字PSW等。①通過堆棧操作指令PUSHdirect;②通過工作寄存器區(qū)的切換;③通過單片微機(jī)內(nèi)部存儲(chǔ)器單元暫存?,F(xiàn)場(chǎng)保護(hù)一定要位于中斷服務(wù)程序的前面。 在結(jié)束中斷服務(wù)程序返回?cái)帱c(diǎn)處之前要恢復(fù)現(xiàn)場(chǎng),與保護(hù)現(xiàn)場(chǎng)的方法相對(duì)應(yīng)。中斷服務(wù)程序的最后一條指令必須是RETI指令。
⑵對(duì)中斷的控制
80C51具有多級(jí)中斷功能,為了不至于在保護(hù)現(xiàn)場(chǎng)或恢復(fù)現(xiàn)場(chǎng)時(shí),由于CPU響應(yīng)其它中斷請(qǐng)求,而使現(xiàn)場(chǎng)破壞。在保護(hù)和恢復(fù)現(xiàn)場(chǎng)時(shí),CPU不響應(yīng)外界的中斷請(qǐng)求,即關(guān)中斷。在編寫程序時(shí),應(yīng)在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)之前,關(guān)閉CPU中斷;在保護(hù)現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)之后,再根據(jù)需要使CPU開中斷。 對(duì)于重要中斷,不允許被其它中斷所嵌套。除了設(shè)置中斷優(yōu)先級(jí)外,還可以采用關(guān)中斷的方法,待中斷處理完之后再打開中斷系統(tǒng)。
例:編程要求:無按鈕按下時(shí)8個(gè)LED輪流亮燈,按鈕K1按下時(shí)8個(gè)LED同時(shí)閃爍8次。參考程序:ORG0000HAJMPMAINORG0003HAJMPPINT0ORG0100HMAIN:MOVSP,#60HSETBIT0MOVIP,#00000000BMOVIE,#10000001B;MOVP1,ALCALLYANSHIRLAAJMPHERE;MOVA,#0FEH;HERE:完成8個(gè)LED輪流亮燈注意硬件接線,8個(gè)LED輪流亮燈
中斷服務(wù)程序PINT0:PUSHACC;保護(hù)現(xiàn)場(chǎng)MOVR2,#08HLOOP:MOVA,#00HMOVP1,A;8個(gè)LED亮燈
ACALLYANSHIMOVA,#0FFHMOVP1,A;8個(gè)LED滅燈ACALLYANSHIDJNZR2,LOOPPOPACC;恢復(fù)現(xiàn)場(chǎng)RETIORG300hYANSHI:MOVR5,#200DEL2:MOVR4,#123DJNZR4,$NopDJNZR5,DEL2RET參看指令表查周期數(shù)寫出下面程序的指令地址、機(jī)器碼,并分析其在系統(tǒng)晶振為12M下,延遲時(shí)間是多少?ORG300h周期數(shù)
Del1:MOVR5,#2001DEL2:MOVR4,#1231DJNZR4,$2Nop1DJNZR5,DEL22RET1[1+(1+2*123++1+2)×200+1]*10-6=50.002ms注意:SP的重新定義復(fù)位后,SP的內(nèi)容為07H堆棧的深度不能夠超出片內(nèi)RAM空間
例:編程要求:無K1按下時(shí)8個(gè)LED輪流亮燈,K1按下時(shí)8個(gè)LED同時(shí)閃爍8次,K2按下時(shí)上下4個(gè)LED交替閃爍8次。INT1的優(yōu)先級(jí)高。中斷源
中斷矢量地址
外部中斷0(INT0)
0003H定時(shí)器/計(jì)數(shù)器0(T0)
000BH外部中斷1(INT1)
0013H定時(shí)器/計(jì)數(shù)器1(T1)
001BH串行口(RI、TI)
0023H定時(shí)器/計(jì)數(shù)器2002BH表5-1中斷矢量地址
程序設(shè)計(jì)需增加1個(gè)中斷源參考程序:ORG0000HAJMPMAINORG0003HAJMPPINT0ORG0013HAJMPPINT1ORG0100HMAIN:MOVSP,#60HSET
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升領(lǐng)導(dǎo)力發(fā)展計(jì)劃
- 班級(jí)年度總結(jié)報(bào)告的編寫計(jì)劃
- 人事部企業(yè)外部形象提升策略計(jì)劃
- 水務(wù)行業(yè)綠色發(fā)展目標(biāo)計(jì)劃
- 中學(xué)課程評(píng)價(jià)體系設(shè)計(jì)計(jì)劃
- 藝術(shù)教育的市場(chǎng)化探索與挑戰(zhàn)計(jì)劃
- 兒科醫(yī)生工作計(jì)劃
- 企業(yè)財(cái)務(wù)政策的持續(xù)優(yōu)化計(jì)劃
- 質(zhì)量管理的藝術(shù)從理論到實(shí)踐的轉(zhuǎn)變
- 如何應(yīng)對(duì)品牌危機(jī)管理計(jì)劃
- DeepSeek從入門到精通培訓(xùn)課件
- 23G409先張法預(yù)應(yīng)力混凝土管樁
- 個(gè)體工商戶公司章程模板
- 陜西各市(精確到縣區(qū))地圖PPT課件(可編輯版)
- 動(dòng)畫基礎(chǔ)知識(shí)ppt(完整版)課件
- 中國音樂史PPT講稿課件
- 橋梁模板施工方案最終版
- 部編版小學(xué)六年級(jí)書法教案【16課時(shí)】電子稿
- 廣元九州施工合同正式
- 蘭州商學(xué)院二級(jí)學(xué)院權(quán)力運(yùn)行流程圖
- 預(yù)埋件計(jì)算公式
評(píng)論
0/150
提交評(píng)論