MCS—51單片機(jī)中斷系統(tǒng)
1、MCS-51中斷源
1.定時器/計數(shù)器控制寄存器TCON(88H)
TCON為定時器/計數(shù)器T0、T1的控制器,同時也鎖存了T0、T1的溢出中斷源和外部中斷請求源,與中斷有關(guān)的位如下:
IE1:外部中斷 (P3.3)請求標(biāo)志位。
IT1:外部中斷 請求類型(觸發(fā)方式)控制位。
IT1=0:外部中斷1程控為電平觸發(fā)方式,當(dāng) (P3.3)輸入低電平時,置位IE1=1,申請中斷。
IT1=1:外部中斷1程序控制為邊沿觸發(fā)方式,CPU在每個機(jī)器周期的S5P2采樣 (P3.3)輸入電平。
IE0:外部中斷0()請求標(biāo)志位。
IT0:外部中斷0()觸發(fā)方式控制位。
TF0:定時器T0 的溢出中斷申請位。
TF1:定時器T1 的溢出中斷申請位。
2.串行口控制寄存器SCON(98H)
SCON(98H)為串行口控制寄存器,SCON的低兩位鎖存串行口接收中斷和發(fā)送中斷標(biāo)志RI和TI,其格式如下:
RI和TI:串行口內(nèi)部表示中斷申請標(biāo)志位。
2、MCS-51中斷控制
1.中斷允許寄存器IE(A8H)
MCS-51單片機(jī)中,特殊功能寄存器IE為中斷允許寄存器,控制CPU對中斷源的開放或屏蔽,以及每個中斷源是否允許中斷。其格式為:
EA:CPU中斷開放標(biāo)志。EA=1,CPU開放中斷;EA=0,CPU屏蔽所有的中斷請求。
ES:串行中斷允許位。ES=1,允許串行口中斷;ES=0,禁止串行口中斷。
ET1:T1溢出中斷允許。ET1=1,允許T1中斷;ET1=0,禁止T1中斷。
EX1:外部中斷1( )允許位。EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。
ET0:T0溢出中斷允許位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。
EX0:外部中斷0( )允許位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0中斷。
MCS-51單片機(jī)復(fù)位后,IE中各位均被清0,即禁止所有中斷。
2.中斷源優(yōu)先級設(shè)定寄存器IP(B8H)
8051單片機(jī)具有二個中斷優(yōu)先級,每個中斷源可編程為高優(yōu)先級中斷或低優(yōu)先級中斷,并可實現(xiàn)二級中斷嵌套。
特殊功能寄存器IP為中斷優(yōu)先級寄存器,所存各種中斷源優(yōu)先級的控制位,用戶可用軟件設(shè)定,其格式如下:
PS:串行口中斷優(yōu)先級控制位。PS=1,設(shè)定串行口為高優(yōu)先級中斷;PS=0,為低優(yōu)先級中斷。
PT1:T1中斷優(yōu)先級控制位。
PT0:T0中斷優(yōu)先級控制位。
3.優(yōu)先級結(jié)構(gòu)
MCS-51的CPU每一個機(jī)器周期順序檢查每一個中斷源,在任意機(jī)器周期的S6狀態(tài)采樣并按優(yōu)先級處理所有被激活的中斷請求,在下一個機(jī)器周期的S1狀態(tài),只要不受阻斷就開始響應(yīng)其中最高優(yōu)先級的中斷請求。若發(fā)生下列情況,中斷響應(yīng)會受到阻斷:
(1) 同級或高優(yōu)先級的中斷正在進(jìn)行
(2) 現(xiàn)在的機(jī)器周期不是所執(zhí)行指令的最后一個機(jī)器周期;
(3) 正執(zhí)行的指令是RETI或是訪問IE或IP的指令,也就是說CPU在執(zhí)行RETI或訪問IE、IP的指令后,至少需要再執(zhí)行其它一條指令之后才會響應(yīng)。
如果上述條件中有一個存在,CPU將丟棄中斷查詢的結(jié)果;若一個條件也不存在,接著的下一機(jī)器周期,中斷查詢結(jié)果變?yōu)橛行А?
編輯:admin 最后修改時間:2018-05-08