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