當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]中斷響應(yīng)中斷響應(yīng)就是單片機(jī)CPU對中斷源提出的中斷請求的接受。中斷請求被響應(yīng)后,再經(jīng)過一系列的操作,而后轉(zhuǎn)向中斷服務(wù)程序,完成中斷所要求的處理任務(wù)。下面簡要說明80c51的中斷響應(yīng)過程:1.外中斷采樣和內(nèi)中斷置

中斷響應(yīng)

中斷響應(yīng)就是單片機(jī)CPU對中斷源提出的中斷請求的接受。中斷請求被響應(yīng)后,再經(jīng)過一系列的操作,而后轉(zhuǎn)向中斷服務(wù)程序,完成中斷所要求的處理任務(wù)。下面簡要說明80c51的中斷響應(yīng)過程:

1.外中斷采樣和內(nèi)中斷置位

1.1外中斷采樣

要想知道外中斷是否有請求發(fā)生,需要對外中斷進(jìn)行采樣。

當(dāng)通過軟件將寄存器TCON的IT0(或IT1)位設(shè)置為0時(shí),/INT0(或/INT1)為電平觸發(fā)方式,CPU在每個(gè)機(jī)器周期的S5P2(第五個(gè)狀態(tài)第2拍節(jié))期間對/INT0(或/INT1)采樣,一旦在P3.2(或P3.3)上檢測到低電平時(shí),則認(rèn)為有外部中斷申請,隨即由硬件使TCON的IE0(或IE1)位置1,向CPU申請中斷。在中斷響應(yīng)完成后轉(zhuǎn)向中斷服務(wù)子程序,再由硬件自動(dòng)對IE0(或IE1)位清0.

當(dāng)寄存器TCON的IT0(或IT1)位為1,/INT0(或/INT1)為脈沖觸發(fā)方式,則CPU在每個(gè)機(jī)器的S5P2期間對/INT0(或/INT1)采樣,當(dāng)檢測到前一周期為高電平、后一周期為低電平時(shí),由硬件使TCON的IE0(IE1)位置1,向CPU申請中斷,在中斷響應(yīng)完成后轉(zhuǎn)向中斷服務(wù)子程序時(shí),再由硬件自動(dòng)對IE0(IE1)位清0.在邊沿觸發(fā)方式中,為保證CPU在兩個(gè)機(jī)器周期內(nèi)檢測到由高到低的負(fù)跳變,高電平與低電平的持續(xù)時(shí)間不得少于一個(gè)機(jī)器周期的時(shí)間。

1.2內(nèi)中斷置位

80c51把所有中斷標(biāo)志都集中到TCON和SCON寄存器中。其中外中斷是使用采樣的方法把中斷請求鎖定在TCON寄存器的IE0(IE1)標(biāo)志位上,而定時(shí)中斷和串行中斷的中斷請求由于都發(fā)生在芯片的內(nèi)部,定時(shí)中斷可以直接去置位TCON的TF0(TF1),串行中斷可以直接去置位SCON的RI和TI。內(nèi)中斷不存在采樣問題。

2.中斷查詢

所謂查詢,就是由CPU測試TCON和SCON中各標(biāo)志位的狀態(tài),以確定有沒有中斷請求發(fā)生以及是哪一個(gè)中斷請求。單片機(jī)是在每一個(gè)機(jī)器周期的最后狀態(tài)(S6),按優(yōu)先級順序?qū)χ袛嗾埱髽?biāo)志進(jìn)行查詢,即先查詢高級中斷后查詢低級中斷,同級中斷按“外部中斷0—定時(shí)中斷0—外部中斷1—定時(shí)中斷1—串行中斷”的順序查詢。如果查詢到有標(biāo)志位為“1”,則表明有中斷請求發(fā)生,接著就從相鄰的下一個(gè)機(jī)器周期的S6狀態(tài)開始進(jìn)行中斷響應(yīng)。

由于中斷請求是隨機(jī)發(fā)生的,CPU無法預(yù)先得知,因此在程序執(zhí)行過程中,中斷查詢要在指令執(zhí)行的每個(gè)機(jī)器周期中不停地重復(fù)進(jìn)行。換句話說,就相當(dāng)于你在看書的時(shí)候,每一秒鐘都會(huì)抬起頭來聽一聽,看一看,是不是有人按門鈴,是否有電話,燒的開水是否開了。。。。。。看來,單片機(jī)比人蠢多了。

3.中斷響應(yīng)

當(dāng)查詢到有效的中斷請求時(shí),緊接著就進(jìn)行中斷響應(yīng)。中斷響應(yīng)時(shí),根據(jù)寄存器TCON、SCON中的中斷標(biāo)記,由硬件自動(dòng)生成一條長調(diào)用指令LCALL XXXX,這里的XXXX就是程序存儲(chǔ)器中斷區(qū)中相應(yīng)中斷的入口地址。對于80c51的5個(gè)獨(dú)立中斷源,這些入口地址已由系統(tǒng)設(shè)定。這樣在產(chǎn)生了相應(yīng)的中斷以后,就可轉(zhuǎn)到相應(yīng)的位置去執(zhí)行。

例如,對于外部中斷0的響應(yīng),產(chǎn)生的長調(diào)用指令為

LCALL  0003H

生成LCALL指令后,緊接著就由CPU執(zhí)行,首先將當(dāng)前程序計(jì)數(shù)器PC的內(nèi)容(準(zhǔn)備執(zhí)行的指令的地址)壓入堆棧以保護(hù)斷點(diǎn),再將中斷入口地址裝入PC,使程序轉(zhuǎn)向相應(yīng)的中斷區(qū)入口地址。從中斷源所對應(yīng)的向量地址中可以看出,一個(gè)中斷向量入口地址到下一個(gè)中斷向量入口地址之間只有8個(gè)單元。也就是說,中斷服務(wù)程序的長度如果超過了8B,就會(huì)占用下一個(gè)中斷的入口地址,導(dǎo)致出錯(cuò)。但一般情況下,很少有一段中斷服務(wù)程序只占用少于8B的情況,為此可以在中斷入口處寫一條“LJMP XXXX”或“AJMP XXXX”指令,這樣可以把實(shí)際處理中斷的程序放到ROM的任何一個(gè)位置。

例如,若采用外中斷0,在程序的開始處可以這樣寫:

ORG  0000H

LJMP  MAIN

ORG  0003H

LJMP  INT_0

;以下是主程序

MAIN:

;以下是外中斷0服務(wù)程序

INT_0:

RETI

END

中斷服務(wù)程序完成后,一定要執(zhí)行一條RETI指令,執(zhí)行這條指令后,CPU將會(huì)把堆棧中保存著的地址取出,送回PC,那么程序就會(huì)從主程序的中斷處繼續(xù)往下執(zhí)行了。

說明  CPU所做的保護(hù)工作是很有限的,只保護(hù)了一個(gè)地址(主程序中斷處的地址),而其他的所有東西都不保護(hù),所以如果你在主程序中用到了如A、DPTR、PSW等,在中斷程序中要用它們,還要保證回到主程序后這里面的數(shù)據(jù)還是沒執(zhí)行中斷以前的數(shù)據(jù),就得自己保護(hù)起來。

CPU會(huì)在機(jī)器周期的S5P2階段讀入中斷標(biāo)志,并在下一個(gè)機(jī)器周期中檢查,如果中斷條件成立時(shí),系統(tǒng)會(huì)自行產(chǎn)生一個(gè)LCALL到相對應(yīng)的中斷服務(wù)例程中,可是如果有下面3種情況時(shí),系統(tǒng)是不會(huì)對中斷要求信號有反應(yīng)的:

a有相等或更高級的中斷正在執(zhí)行中,這與處理突發(fā)事件的狀況相同,既然已經(jīng)在處理突發(fā)情況,當(dāng)然就不再接受其他中斷條件,除非接下來的中斷情形的優(yōu)先權(quán)比較高。

由此得到一個(gè)觀念:所有的中斷程序都應(yīng)該盡量簡捷,一處理完中斷事項(xiàng)后立即回主程序,才不會(huì)占用過多時(shí)間,進(jìn)而影響系統(tǒng)的性能。

b目前的機(jī)器周期不是該指令的最后一個(gè)周期,由于80c51在指令執(zhí)行時(shí),分別有1個(gè)、2個(gè)和4個(gè)機(jī)器周期之分,也就是說,必須完全執(zhí)行完此指令后,系統(tǒng)對中斷信號才會(huì)有所反應(yīng)。比方說,當(dāng)系統(tǒng)正在執(zhí)行MUL  AB指令(需花4個(gè)機(jī)器周期)時(shí),中斷信號必須出現(xiàn)在第4個(gè)機(jī)器周期上才算有效。這也就意味著,中斷信號必須持續(xù)足夠長的時(shí)間,以便80c51的CPU有時(shí)間去反應(yīng)。

c若正在執(zhí)行的指令為RETI或者是關(guān)于中斷設(shè)置IE、IP的指令時(shí),對正好出現(xiàn)的中斷信號不反應(yīng),因?yàn)樯鲜龅那闆r剛好是某個(gè)中斷服務(wù)程序的結(jié)束,或是允許/禁止某個(gè)中斷的指令,當(dāng)然是等到這些指令執(zhí)行完畢后,才會(huì)對中斷信號有所反應(yīng),這些指令最多占用兩個(gè)機(jī)器周期的時(shí)間,所以這時(shí)的中斷信號必須保持有兩個(gè)機(jī)器周期以上的時(shí)間,才能被80c51接受。

中斷的撤除

中斷響應(yīng)后,TCON或SCON中的中斷請求標(biāo)志應(yīng)及時(shí)清除。否則就意味著中斷請求仍然存在,弄不好就會(huì)造成中斷的重復(fù)查詢和響應(yīng),因此就存在一個(gè)中斷請求的撤除問題。

1 定時(shí)器中斷請求的撤除

定時(shí)中斷響應(yīng)后,硬件自動(dòng)把標(biāo)志位TF0(或TF1)清0,因此定時(shí)中斷的中斷請求是自動(dòng)撤除的,不需要用戶干預(yù)。

2 串行中斷軟件撤除

對于串行中斷,CPU響應(yīng)中斷后,沒有用硬件清除它們的中斷標(biāo)志RI、TI,必須在中斷服務(wù)程序中用軟件清除,以撤除其中斷請求。

3 外中斷請求的撤除

外部中斷的撤除包括中斷標(biāo)志位IE0(或IE1)的清0和外中斷請求信號的撤除。其中IE0(或IE1)清“0”是在中斷響應(yīng)后由硬件電路自動(dòng)完成的。剩下的只是外中斷引腳請求信號的撤除了。下面對脈沖和電平兩種觸發(fā)方式分別進(jìn)行討論。

a對于脈沖方式的中斷請求,由于脈沖信號過后就消失了,也可以說中斷請求信號是自動(dòng)撤除的。

b對于電平方式的外部中斷,中斷標(biāo)志的撤除是自動(dòng)的,但中斷請求信號的低電平可能繼續(xù)存在,在以后機(jī)器周期采樣時(shí),又會(huì)把已清0的IE0或IE1標(biāo)志位重新置1.為此,要徹底解決電平方式外中斷的撤除,除了標(biāo)志位清0之外,必要時(shí)還需在中斷響應(yīng)后把中斷請求信號引腳從低電平強(qiáng)制改變?yōu)楦唠娖?,為此,可在系統(tǒng)中增加如圖所示電路

外中斷請求標(biāo)志撤除電路

從圖可以看出,外部中斷0請求信號在D觸發(fā)器(可選用74LS74)的時(shí)鐘輸入端。當(dāng)外部設(shè)備有中斷請求信號(為低電平)出現(xiàn)時(shí),Q端輸出為低電平,/INT0有效,向CPU發(fā)出中斷請求信號。CPU響應(yīng)中斷后,在中斷服務(wù)程序中由軟件安排1個(gè)低電平中斷應(yīng)答信號,從P1.0送至D觸發(fā)器的/SD(置位端,低電平有效),使D觸發(fā)器的Q端輸出為高電平,從而撤除了低電平的外中斷0請求信號。/SD端所需的低電平可通過在中斷服務(wù)程序中增加一下指令的得到:

ANL  P1,#0FEH      ;使P1.0輸出為低電平,D觸發(fā)器置位

在中斷服務(wù)程序中還要加上撤除外中斷0標(biāo)志指令,即

CLR  IE0            ;清外中斷標(biāo)志,以便下次可再次中斷

可見,電平方式外部中斷請求信號的撤除是通過軟、硬件相結(jié)合的方法實(shí)現(xiàn)的。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉