51單片機 中斷1中斷整體介紹
>_<:51單片機上的應用[應用控制篇]
>_<:MCS51的中斷源
外部中斷請求源:即外部中斷0 和1,經(jīng)由外部引腳引入,在單片機上有兩個(gè)引腳,外稱(chēng)為INT0、INT1,也就是P3.2、P3.3這兩個(gè)引腳
>_<:MCS51的中斷向量表
單片機內部的中斷模塊在每個(gè)CPU周期都查詢(xún)各個(gè)中斷源的狀態(tài),當其發(fā)生預期的中斷事件時(shí),通知CPU將程序跳轉到中斷服務(wù)程序所在的程序存儲器(ROM)地址。該地址稱(chēng)為中斷向量。
中斷的實(shí)質(zhì)仍然是查詢(xún),只是不需要用戶(hù)程序查詢(xún),不占用CPU運行時(shí)間而已。
51系列只有5個(gè)中斷向量,5X系列還增加一個(gè)定時(shí)器2的中斷向量
——————————————————————————————
地址中斷入口 中斷編號
——————————————————————————————
0x0 復位
0x3 外部中斷00
0xB 定時(shí)器01
0x0013 外部中斷1 2
0x001B 定時(shí)器1 3
0x0023 串口4
0x002B 定時(shí)器2(5x系列新增的) 5
——————————————————————————————
>_<:MCS51中斷運行的機里
以INT0為例:中斷模塊在每個(gè)CPU時(shí)鐘周期都查詢(xún)P3.2的狀態(tài),當輸入的電平由高電平變?yōu)榈碗娖綍r(shí),CPU的程序運行會(huì )立即跳轉的到地址0x03。處理INT0中斷的代碼放在地址為0x03開(kāi)始的ROM區域。c語(yǔ)言中采用一類(lèi)特殊的函數來(lái)實(shí)現此代碼定位的功能,叫做 中斷服務(wù)函數,格式如下:
void 函數名()interrupt N
函數名可以任意,但一般要用一個(gè)有意義的函數名,N代表中斷向量編號。
>_<:中斷控制寄存器IE
MCS51中斷系統中,中斷的允許或禁止是由片內可以進(jìn)行位尋址的8位中斷允許寄存器IE來(lái)控制的。
EX0 :外中斷0中斷允許
ET0 :定時(shí)器0中斷允許
EX1 :外中斷1中斷允許
ET1 :定時(shí)器1中斷允許
ES :串行口中斷允許
ET2 :定時(shí)器2中斷允許
EA :是總開(kāi)關(guān),若為0,則所有中斷都不允許。
>_<:中斷標志及外部中斷方式選擇寄存器 TCON
IT0 :INT0觸發(fā)方式控制位,邊沿/電平觸發(fā)模式
IE0 :INT0中斷請標志,
IT1 :同上
IE1 :同上
TF0 :定時(shí)器/計數器0的溢出中斷標志
TF1 :定時(shí)器/計數器1的溢出中斷標志
>_<:外部中斷的2種觸發(fā)模式
觸發(fā)模式由IT0和IT1控制。
1)邊沿觸發(fā):IT0(IT1)=1,INT0(INT1)為邊沿觸發(fā)方式。如果一個(gè)周期中采樣到高電平,下個(gè)周期中采樣到低電平,則硬件使IE0(IE1)置1,向CPU請求中斷。
2)電平觸發(fā):IT0(IT1)=0,INT0(INT1)為電平觸發(fā)方式。此時(shí)外部中斷是通過(guò)檢測P3.2(P3.3)腳的輸入電平(低電平)來(lái)觸發(fā)的。采用電平觸發(fā)時(shí),輸入腳的外部中斷源必須保持低電平有效,直到該中斷被響應。同時(shí)在中斷返回前必須使用電平變高,否則將會(huì )再次產(chǎn)生中斷。
一般采用邊沿觸發(fā)方式,因為此模式抗干擾能力較強,極少采用電平觸發(fā)模式。
評論