MCS-51中斷系統(tǒng):5個(gè)中斷源(兩個(gè)外部中斷, 兩個(gè)定時(shí)器, 一個(gè)串口),2個(gè)優(yōu)先級(jí)

中斷相關(guān)概念
中斷:當(dāng)CPU正在處理某件事情時(shí),單片機(jī)外部或內(nèi)部發(fā)生的某一緊急事件請(qǐng)求CPU立即去處理,于是,CPU暫時(shí)中止當(dāng)前的工作,轉(zhuǎn)去處理這個(gè)緊急事件,待處理完畢后,再回到原來(lái)被中止的地方,繼續(xù)原來(lái)的工作。
中斷過(guò)程
中斷發(fā)生:CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理;
中斷響應(yīng)和中斷服務(wù):CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(B的優(yōu)先級(jí)要高于A);
中斷返回:待CPU將事件B處理完畢后,再回到原來(lái)事件A被中斷的地方繼續(xù)處理事件A ;
中斷源(中斷請(qǐng)求源):能夠向CPU發(fā)出中斷申請(qǐng)的部件。
中斷系統(tǒng)結(jié)構(gòu)

外部中斷0和1:低電平或者脈沖下降沿時(shí)產(chǎn)生中斷請(qǐng)求;
定時(shí)器/計(jì)數(shù)器0和1:計(jì)數(shù)值由FF變?yōu)?0時(shí)產(chǎn)生中斷請(qǐng)求;(定時(shí)功能:計(jì)數(shù)脈沖來(lái)源于片內(nèi);計(jì)數(shù)功能:計(jì)數(shù)脈沖來(lái)源于片外);
串行口:發(fā)送或者接受1字節(jié)數(shù)據(jù)時(shí)產(chǎn)生中斷請(qǐng)求;
中斷控制
4個(gè)特殊功能寄存器來(lái)實(shí)施中斷控制: ? 中斷允許寄存器 IE ? 中斷優(yōu)先級(jí)寄存器 IP ? 定時(shí)/計(jì)數(shù)器及外部中斷控制寄存器 TCON ? 串口控制寄存器 SCON
中斷允許寄存器 IE

EA 中斷允許總控制位。0禁止,1允許。
ES 串行中斷允許控制位。0禁止,1允許。
ET1 定時(shí)計(jì)數(shù)器1中斷允許控制位。0禁止,1允許。
EX1 外部中斷1允許控制位。0禁止,1允許。
ET0 定時(shí)計(jì)數(shù)器0中斷允許控制位。0禁止,1允許。
EX0 外部中斷0允許控制位。0禁止,1允許。
中斷優(yōu)先級(jí)寄存器 IP

PX0 外部中斷0的優(yōu)先級(jí)控制位。1為高,0為低
PT0 定時(shí)中斷0的優(yōu)先級(jí)控制位。1為高,0為低
PX1 外部中斷1的優(yōu)先級(jí)控制位。1為高,0為低
PT1 定時(shí)中斷0的優(yōu)先級(jí)控制位。1為高,0為低
PS 串行中斷的優(yōu)先級(jí)控制位。1為高,0為低
串行口控制寄存器 SCON

TI:串口發(fā)送中斷標(biāo)志,響應(yīng)中斷時(shí)用軟件將TI標(biāo)志清零
RI:串口接收中斷標(biāo)志,響應(yīng)中斷時(shí)用軟件將RI標(biāo)志清零
定時(shí)/計(jì)數(shù)器的控制寄存器 TCON

外部中斷觸發(fā)方式位 IT0、IT1(ITx)
ITx = 0 低電平觸發(fā),響應(yīng)中斷后IEx不自動(dòng)清0ITx = 1 脈沖下降沿觸發(fā),響應(yīng)中斷后IEx自動(dòng)清0
外部中斷請(qǐng)求0/1的中斷請(qǐng)求標(biāo)志位IE0、IE1
定時(shí)器/計(jì)數(shù)器T0/T1的溢出中斷請(qǐng)求標(biāo)志位TF0/TF1(TFx)
啟動(dòng)T0/T1計(jì)數(shù)后,從初值加1計(jì)數(shù),直到最高位產(chǎn)生溢出時(shí),硬件將TFx置“1”,向CPU請(qǐng)求中斷。 響應(yīng)中斷后TFx自動(dòng)清0;
TR0,TR1與中斷無(wú)關(guān),僅與定時(shí)器/計(jì)數(shù)器T0/T1有關(guān);
中斷響應(yīng)
中斷響應(yīng)就是CPU對(duì)中斷源發(fā)出的中斷請(qǐng)求做出的響應(yīng)。
中斷響應(yīng)條件
CPU開(kāi)中斷,即中斷允許寄存器IE中的中斷允許總控制位EA = 1;中斷源發(fā)出中斷請(qǐng)求;中斷源的中斷允許位為1;沒(méi)有同級(jí)或者高級(jí)的優(yōu)先級(jí)中斷正在執(zhí)行;
中斷響應(yīng)的過(guò)程
由硬件根據(jù)中斷源的類型自動(dòng)生成一條長(zhǎng)調(diào)用指令LCALL addr16。CPU執(zhí)行LCALL addr16。
中斷響應(yīng)的時(shí)間
響應(yīng)時(shí)間在3~8個(gè)機(jī)器周期之內(nèi);最短響應(yīng)時(shí)間:查詢中斷請(qǐng)求標(biāo)志位(T)+LCALL(2T);
中斷響應(yīng)的過(guò)程
將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器置1(阻斷后來(lái)同級(jí)或低級(jí)中斷 )執(zhí)行硬件LCALL指令(PC入棧,中斷服務(wù)程序入口址送PC)執(zhí)行中斷服務(wù)程序PS:編寫中斷服務(wù)程序注意:中斷服務(wù)程序入口存放指令LJMP或AJMP;現(xiàn)場(chǎng)保護(hù)與現(xiàn)場(chǎng)恢復(fù)。
中斷返回
最后指令為RETI,功能為:
將斷點(diǎn)從堆棧彈送PC,CPU從原斷點(diǎn)繼續(xù)執(zhí)行將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器清0,恢復(fù)原來(lái)工作狀態(tài)
8051中斷程序設(shè)計(jì)
中斷服務(wù)程序基本流程
關(guān)中斷:為了防止此時(shí)有高一級(jí)的中斷進(jìn)入,以免現(xiàn)場(chǎng)保護(hù)的執(zhí)行過(guò)程被中斷。
現(xiàn)場(chǎng)保護(hù):所謂現(xiàn)場(chǎng)是指中斷時(shí)刻單片機(jī)中某些寄存器和存儲(chǔ)器單元中的數(shù)據(jù)或狀態(tài)。為了不讓中斷服務(wù)程序的執(zhí)行破壞這數(shù)據(jù)或狀態(tài),以免中斷返回后影響主程序的運(yùn)行,需要將他們送入堆棧保存起來(lái)。
開(kāi)中斷:為了允許有更高級(jí)的中斷進(jìn)入。這樣一來(lái),除了現(xiàn)場(chǎng)保護(hù)和現(xiàn)場(chǎng)恢復(fù)外,中斷處理的過(guò)程仍允許中斷嵌套的功能。
中斷處理
關(guān)中斷:為了防止此時(shí)有高一級(jí)的中斷進(jìn)入,以免現(xiàn)場(chǎng)恢復(fù)的執(zhí)行過(guò)程被中斷。
現(xiàn)場(chǎng)恢復(fù):中斷處理結(jié)束后,在返回主程序前,把保存的現(xiàn)場(chǎng)的內(nèi)容從堆棧中彈出,以恢復(fù)那些寄存器和存儲(chǔ)單元中的原有內(nèi)容
開(kāi)中斷:為了允許有更高級(jí)的中斷進(jìn)入。現(xiàn)場(chǎng)恢復(fù)后,仍允許中斷嵌套的功能。
中斷返回:必須是返回指令RETI。CPU執(zhí)行完這條指令后,把響應(yīng)中斷時(shí)所置“1”的優(yōu)先級(jí)狀態(tài)觸發(fā)器清“0”,然后從堆棧中彈出棧頂上的兩個(gè)字節(jié)的斷點(diǎn)地址送到程序計(jì)數(shù)器PC,彈出的第一個(gè)字節(jié)送入PCH,第二個(gè)字節(jié)送入PCL,CPU從斷點(diǎn)處重新執(zhí)行被中斷的主程序。
實(shí)例
ORG 0000H ;程序開(kāi)始LJMP START ;= LJMP 1000HORG 0003H ;外部中斷0入口地址
LJMP INTORG 1000H ;主程序入口START: MOV P1, #0AAH ; #0AAH=10101010BSETB EX0 ;允許外部中斷0SETB PX0 ;設(shè)置外部中斷0為高優(yōu)先級(jí)SETB IT0 ;設(shè)置外部中斷0為脈沖下降沿觸發(fā)SETB EA ;開(kāi)中斷SJMP $ ;原地跳轉(zhuǎn),等待中斷
INT: CLR EA ;關(guān)中斷PUSH PSW ;現(xiàn)場(chǎng)保護(hù)PUSH ACC ;SETB EA ;開(kāi)中斷
CPL A ;對(duì)累加器A按位取反MOV P1, A ;累加器A值送P1端口
CLR EA ;關(guān)中斷POP ACC ;現(xiàn)場(chǎng)保護(hù)POP PSW ;SETB EA ;開(kāi)中斷RETI ;```
-
中斷系統(tǒng)
+關(guān)注
關(guān)注
1文章
96瀏覽量
61615 -
MCS-51單片機(jī)
+關(guān)注
關(guān)注
5文章
96瀏覽量
20630
原文標(biāo)題:MCS-51 單片機(jī)的中斷系統(tǒng)
文章出處:【微信號(hào):mcugeek,微信公眾號(hào):MCU開(kāi)發(fā)加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
mcs-51單片機(jī)應(yīng)用教程
MCS-51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)
MCS-51系列單片機(jī)實(shí)用接口技術(shù)
MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)
MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)(三)
MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)(一)
MCS-51單片機(jī)系統(tǒng)結(jié)構(gòu)
MCS-51單片機(jī)詳解
MCS-51單片機(jī)外中斷軟件編程
MCS-51單片機(jī)應(yīng)用設(shè)計(jì)

一文詳解MCS-51單片機(jī)的中斷系統(tǒng)
評(píng)論