中斷是單片機(jī)實(shí)時(shí)地處理內(nèi)部或外部事件的一種內(nèi)部機(jī)制。當(dāng)某種內(nèi)部或外部事件發(fā)生時(shí),單片機(jī)的中斷系統(tǒng)將迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進(jìn)行中斷事件的處理,中斷處理完畢后,又返回被中斷的程序處,繼續(xù)執(zhí)行下去。
中斷分外部中斷和內(nèi)部中斷,CC2430共包含18個(gè)中斷源。
開發(fā)板的電路圖:

開發(fā)板上已把S1按鍵與P0.1相連,本實(shí)驗(yàn)想要達(dá)到的效果就是,通過按鍵S1觸發(fā)P0.1的中斷,進(jìn)而在中斷服務(wù)子程序中控制LED1的亮/滅。
實(shí)驗(yàn)原理及流程圖
實(shí)驗(yàn)流程圖如下:

我們需要對(duì)單字節(jié)的SFR中的某一位賦值(0或1),以精確控制硬件設(shè)備。
有的SFR支持位尋址,比如說(shuō)TCON、P0等,此時(shí),對(duì)位的賦值非常簡(jiǎn)單,只需查詢 ioCC2430.h 頭文件中 SFR Bit Access 部分的位定義即可:
P0_0 = 0; //對(duì)P0第一位賦值0
P0_0 = 1; //對(duì)P0第一位賦值1
但有的SFR并不支持位尋址,就如本實(shí)驗(yàn)中的 PICTL,此時(shí)想要對(duì)其中的某一位賦值,語(yǔ)法如下:
PICTL &= ~0x01; //對(duì)第1位賦值0
PICTL |= 0x01; //對(duì)第1位賦值1
在一個(gè)程序中使用中斷,一般包括、兩個(gè)部分:中斷服務(wù)子程序的編寫、中斷使能的開啟。中斷使能已在上面介紹過,下面簡(jiǎn)單介紹一下中斷服務(wù)子程序的編寫:
首先指定中斷向量,可以在 ioCC2430.h 頭文件中的 Interrupt Vectors 部分查詢,語(yǔ)法如下:
#pragma vector = 中斷向量
然后緊跟著編寫中斷處理程序,結(jié)構(gòu)如下:
__interrupt void 函數(shù)名(void)
{
//開中斷
//中斷處理
//中斷標(biāo)志清0
//關(guān)中斷
}
編輯:hfy
-
單片機(jī)
+關(guān)注
關(guān)注
6078文章
45559瀏覽量
672934 -
cpu
+關(guān)注
關(guān)注
68文章
11316瀏覽量
225726 -
中斷處理
+關(guān)注
關(guān)注
0文章
96瀏覽量
11495 -
控制LED燈
+關(guān)注
關(guān)注
0文章
5瀏覽量
1473
發(fā)布評(píng)論請(qǐng)先 登錄
誰(shuí)有單片機(jī)采集CMOS攝像頭送LCD的電路圖和軟件流程圖、源...
51單片機(jī)實(shí)驗(yàn)板電路圖與原理圖
單片機(jī)實(shí)驗(yàn)板電路圖
51單片機(jī)開發(fā)板邏輯電路
TX-1C型單片機(jī)開發(fā)板原理圖和詳細(xì)電路圖資料免費(fèi)下載
進(jìn)行51單片機(jī)外部中斷實(shí)驗(yàn)的電路圖和程序免費(fèi)下載
畢業(yè)論文 | 基于單片機(jī)的煙霧報(bào)警器設(shè)計(jì)(完整源代碼、流程圖、電路圖)
單片機(jī)開發(fā)板電路圖及實(shí)驗(yàn)原理及流程圖
評(píng)論