1: 明白中斷系統的結構
2:如何觸發中斷請求(中斷過程)
3:編寫中斷函式
4:除錯執行程式
cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理(中斷發生);cpu暫時中斷當前的工作,轉去處理事件b(中斷響應和中斷服務);待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a(中斷返回),這一過程稱為中斷 。
p3.2→int0 p3.3→int0 p3.4 →t0 p3.5 → t1 p3.0 → rxd p3.1 →txd
tcon定時器中斷請求標誌。這也是要注意的點-----可以不用刻意去記,多練就可以了,下面**會告訴你怎麼用
it0(tcon.0),外部中斷0觸發方式控制位。
當it0=0時,為電平觸發方式。
當it0=1時,為邊沿觸發方式(下降沿有效)。
ie0(tcon.1),外部中斷0中斷請求標誌位。
it1(tcon.2),外部中斷1觸發方式控制位。
ie1(tcon.3),外部中斷1中斷請求標誌位。
tf0(tcon.5),定時/計數器t0溢位中斷請求標誌位。
tf1(tcon.7),定時/計數器t1溢位中斷請求標誌位。
這裡重要的是還要注意優先順序:由上到下優先順序依次降低
和中斷號:
可以用一下程式進行燒錄測試,
下面程式呼叫了兩個請求函式分別是中斷號0 和 1;
```c
#include
typedef
unsigned
int u8;
typedef
unsigned
char u16;
sbit pt1 = p2^6;
sbit pt2 = p2^3;
/******延時函式***************************/
void
delay
(u8 i)
}/**中斷請求0*************************/
void
int0init()
/****中斷函式0*********************/
void
int0
() interrupt 0
u8 i;
for(i =
0; i<
4; i++)//
}/**中斷請求1*************************/
void
int1init()
/*****中斷函式1**********************/
void
led_1
() interrupt 1
}void
main()
51微控制器之中斷
現在假設乙個情況,微控制器在迴圈點亮led,也就是實現了乙個流水燈,現在有乙個按鍵作為輸入,我們希望通過這個按鍵來實現不同的流水燈效果,當然了,你可以把點亮led和檢測按鍵放在同乙個迴圈裡面,假設這時候你又通過串列埠傳送字串,隨著主程式任務量的增大,迴圈一次的時間也會越來越長,這就會導致按鍵檢測失效...
51微控制器之中斷使用
include void delay unsigned int xms void main void low interrupt 0 1.關於p1八位流水燈引腳,引腳有乙個上拉的5v電源,所以程式寫時p1的八位,為1時燈不亮,為0時燈亮,電路圖如下 2.關於it1 0 1中斷方式 it0表示int0...
51微控制器中斷學習
一 中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷發生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5個中斷源 中斷號...