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

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