無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項(xiàng)目05 按鍵觸發(fā)中斷_第1頁
無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項(xiàng)目05 按鍵觸發(fā)中斷_第2頁
無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項(xiàng)目05 按鍵觸發(fā)中斷_第3頁
無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項(xiàng)目05 按鍵觸發(fā)中斷_第4頁
無線傳感網(wǎng)技術(shù)及應(yīng)用 課件 項(xiàng)目05 按鍵觸發(fā)中斷_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目五按鍵觸發(fā)中斷目錄項(xiàng)目導(dǎo)入項(xiàng)目目標(biāo)項(xiàng)目分析知識(shí)儲(chǔ)備01030204項(xiàng)目實(shí)施拓展訓(xùn)練0506項(xiàng)目導(dǎo)入01項(xiàng)目導(dǎo)入項(xiàng)目導(dǎo)入合理巧妙地利用單片機(jī)中斷,不僅可以獲得處理突發(fā)狀況的能力,而且可以使單片機(jī)能夠“同時(shí)”完成多項(xiàng)任務(wù)。CC2530單片機(jī)處理程序的任務(wù)時(shí),當(dāng)它正在完成某個(gè)事情的過程中有一件或者多件別的事情發(fā)生需要單片機(jī)立刻去關(guān)注一下,并判斷是否需要停下手頭的工作去馬上去處理,只有處理完了才能回頭繼續(xù)完成剛才的工作。這種情況下,CC2530單片機(jī)的中斷系統(tǒng)起到了關(guān)鍵的作用。項(xiàng)目導(dǎo)入本項(xiàng)目基于項(xiàng)目四按鍵控制LED亮滅的基礎(chǔ)上,使用按鍵輸入中斷功能控制LED亮滅和蜂鳴器的發(fā)聲,以實(shí)現(xiàn)聲光報(bào)警提示功能。項(xiàng)目導(dǎo)入項(xiàng)目分析02項(xiàng)目分析項(xiàng)目實(shí)現(xiàn)用中斷方式來判斷按鍵是否被按下,如果按1下,LED亮,并且蜂鳴器響起;再按1下,LED滅同時(shí)蜂鳴器靜音。如此循環(huán)。使用按鍵輸入中斷功能,設(shè)計(jì)一套實(shí)現(xiàn)聲光報(bào)警提示功能的系統(tǒng)。掌握如何使用通用IO中斷知道CC2530的IO中斷機(jī)制知道CC2530的中斷向量知道如何編寫中斷函數(shù)項(xiàng)目要求項(xiàng)目目標(biāo)03項(xiàng)目目標(biāo)掌握CC2530中斷的工作原理掌握CC2530的I/O中斷相關(guān)寄存器的配置學(xué)會(huì)使用CC2530的I/0的中斷知識(shí)儲(chǔ)備04知識(shí)儲(chǔ)備什么是中斷系統(tǒng)?引起CPU中斷的根源稱為中斷源。中斷源向CPU提出中斷請(qǐng)求,CPU暫時(shí)中斷原來的事務(wù)A,轉(zhuǎn)去處理事件B,對(duì)事件B處理完畢后,再回到原來被中斷的地方(即斷點(diǎn)),稱為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱為中斷系統(tǒng)(中斷機(jī)構(gòu))。知識(shí)儲(chǔ)備通用I/O引腳設(shè)置為輸入后,可以用于產(chǎn)生中斷。中斷可以設(shè)置在外部信號(hào)的上升或下降沿觸發(fā)。P0、P1或P2端口都有中斷使能位,對(duì)位于IENl-2寄存器內(nèi)的端口所有的位都是公共的,如下:IENI.P0IE:P0中斷使能IEN2.PIIE:P1中斷使能IEN2.P2IE:P2中斷使能除了這些公共中斷使能之外,每個(gè)端口的位都有位于SFR寄存器P0IEN、P1IEN和P2IEN的單獨(dú)的中斷使能。即使配置為外設(shè)I/O或通用輸出的I/O引腳使能時(shí)都有中斷產(chǎn)生。知識(shí)儲(chǔ)備一、開啟中斷(中斷使能)CC2530的21個(gè)通用I/O引腳設(shè)置為輸入后,都可以用于觸發(fā)中斷。中斷可以設(shè)置在外部信號(hào)的上升或下降沿觸發(fā)。使用中斷前首先要開啟中斷功能(中斷使能)。與之相關(guān)的寄存器有IEN0、IEN1和IEN2,寄存器各位的名稱、功能和描述如表5-1~5-6所示。位名稱復(fù)位R/W描述7EA0R/W總中斷設(shè)置。0:禁止所有中斷1:打開總中斷6-0R0不使用,讀出來是05STIE0R/W睡眠定時(shí)器中斷使能0:中斷禁止1:中斷使能4ENCIE0R/WAES加密/解密中斷使能0:中斷禁止1:中斷使能3URX1IE0R/WUSART1RX中斷使能0:中斷禁止1:中斷使能2URX0IE0R/WUSART0RX中斷使能0:中斷禁止1:中斷使能1ADCIE0R/WADC中斷使能0:中斷禁止1:中斷使能0RFERRIE0R/WRFTX/RXFIFO中斷使能0:中斷禁止1:中斷使能表5-1IEN0(0xA8)–中斷使能0知識(shí)儲(chǔ)備位名稱復(fù)位R/W描述7:6-00R0不使用,讀出來為05P0IE0R/W端口0中斷使能0:中斷禁止1:中斷使能4T4IE0R/W定時(shí)器4中斷使能0:中斷禁止1:中斷使能3T3IE0R/W定時(shí)器3中斷使能0:中斷禁止1:中斷使能2T2IE0R/W定時(shí)器2中斷使能0:中斷禁止1:中斷使能1T1IE0R/W定時(shí)器1中斷使能0:中斷禁止1:中斷使能0DMAIE0R/WDMA傳輸中斷使能0:中斷禁止1:中斷使能表5-2IEN1(0xB8)–中斷使能1位名稱復(fù)位R/W描述7:6-00R0沒有使用,讀出來是05WDTIE0R/W看門狗定時(shí)器中斷使能0:中斷禁止1:中斷使能4P1IE0R/W端口1中斷使能0:中斷禁止1:中斷使能3UTX1IE0R/WUSART1TX中斷使能0:中斷禁止1:中斷使能2UTX0IE0R/WUSART0TX中斷使能0:中斷禁止1:中斷使能1P2IE0R/W端口2中斷使能0:中斷禁止1:中斷使能0RFIE0R/WRF一般中斷使能0:中斷禁止1:中斷使能表5-3IEN2(0x9A)–中斷使能2知識(shí)儲(chǔ)備位名稱復(fù)位R/W描述7:0P0_[7:0]IEN0x00R/W端口P0.7到P0.0中斷使能0:中斷禁止1:中斷使能表5-4P0IEN(0xAB)–端口0中斷屏蔽位名稱復(fù)位R/W描述7:0P1_[7:0]IEN0x00R/W端口P1.7到P1.0中斷使能0:中斷禁止1:中斷使能表5-5P1IEN(0x8D)–端口1中斷屏蔽位名稱復(fù)位R/W描述7:6-00R/W未使用5DPIEN0R/WUSBD+中斷使能4:0P2_[4:0]IEN00000R/W端口P2.4到P2.0中斷使能0:中斷禁止1:中斷使能表5-6P2IEN(0xAC)–端口2中斷屏蔽知識(shí)儲(chǔ)備舉例說明,要使用P1_2引腳作為中斷輸入,按順序需要做以下設(shè)置:1.開總中斷2.開啟P1口中斷3.開啟P1_2引腳中斷以上操作,即要把表中寄存器的灰色相關(guān)位設(shè)置為1。知識(shí)儲(chǔ)備二、中斷控制CC2530單片機(jī)的中斷控制寄存器如表5-7所示。位名稱復(fù)位R/W描述7PADSC0R/W控制I/O引腳在輸出模式下的驅(qū)動(dòng)能力。0:最小驅(qū)動(dòng)能力增強(qiáng)。DVDD1/2等于或大于2.6V1:最大驅(qū)動(dòng)能力增強(qiáng)。DVDD1/2小于2.6V6:4-000R0未使用3P2ICON0R/W端口2,4-0引腳的輸入中斷配置。0:輸入的上升沿觸發(fā)中斷1:輸入下降沿觸發(fā)中斷2P1ICONH0R/W端口1,7-4引腳的輸入中斷配置。0:輸入的上升沿觸發(fā)中斷1:輸入下降沿觸發(fā)中斷1P1ICONL0R/W端口1,3-0引腳的輸入中斷配置。0:輸入的上升沿觸發(fā)中斷1:輸入下降沿觸發(fā)中斷0P0ICON0R/W端口0,7-0引腳的輸入中斷配置。0:輸入的上升沿觸發(fā)中斷1:輸入下降沿觸發(fā)中斷表5-7PICTL(0x8C)–端口中斷控制例如要在P1_2引腳的下降沿觸發(fā)中斷,則需要把灰色標(biāo)記位置為1,若是上升沿觸發(fā)中斷,則無需配置這個(gè)寄存器。知識(shí)儲(chǔ)備三、中斷處理CC2530單片機(jī)的中斷處理寄存器如表5-8~5-11所示。位名稱復(fù)位R/W描述7:5-000R/W沒有使用4WDTIF0R/W看門狗定時(shí)器中斷標(biāo)志0:無中斷請(qǐng)求1:中斷請(qǐng)求未處理3P1IF0R/W端口1中斷標(biāo)志0:無中斷請(qǐng)求1:中斷請(qǐng)求未處理2UTX1IF0R/WUSART1TX中斷標(biāo)志0:無中斷請(qǐng)求1:中斷請(qǐng)求未處理1UTX0IF0R/WUSART1TX中斷標(biāo)志0:無中斷請(qǐng)求1:中斷請(qǐng)求未處理0P2IF0R/W端口2中斷標(biāo)志0:無中斷請(qǐng)求1:中斷請(qǐng)求未處理表5-8IRCON2(0xE8)–

中斷標(biāo)志5知識(shí)儲(chǔ)備位名稱復(fù)位R/W描述7:0P0IF[7:0]0x00R/W0端口0:7-0位中斷狀態(tài)標(biāo)志。當(dāng)端口發(fā)生中斷請(qǐng)求未處理時(shí),其相應(yīng)的標(biāo)志位置1。表5-9P0IFG(0x89)–端口0中斷狀態(tài)標(biāo)志位名稱復(fù)位R/W描述7:0P1IF[7:0]0x00R/W0端口1:7-0位中斷狀態(tài)標(biāo)志。當(dāng)端口發(fā)生中斷請(qǐng)求未處理時(shí),其相應(yīng)的標(biāo)志位置1。表5-10P1IFG(0x8A)–端口1中斷狀態(tài)標(biāo)志位名稱復(fù)位R/W描述7:6-00R0未使用5DPIF0R/W0USBD+中斷狀態(tài)標(biāo)志。當(dāng)D+線發(fā)生中斷請(qǐng)求未處理時(shí),其相應(yīng)的標(biāo)志位置1。4:0P2IF[4:0]00000R/W0端口2:4-0位中斷狀態(tài)標(biāo)志。當(dāng)端口發(fā)生中斷請(qǐng)求未處理時(shí),其相應(yīng)的標(biāo)志位置1。表5-11P2IFG(0x8B)–端口2中斷狀態(tài)標(biāo)志知識(shí)儲(chǔ)備當(dāng)中斷條件發(fā)生時(shí),P0-P2中斷標(biāo)志寄存器P0IFG、P1IFG或P2IFG中相應(yīng)的中斷狀態(tài)標(biāo)志將設(shè)置為1。例如P1_2引腳觸發(fā)了中斷,則P1IFG中的數(shù)值會(huì)變?yōu)?0000100。不管引腳是否設(shè)置了它的中斷使能位,中斷狀態(tài)標(biāo)志位都會(huì)被置1。項(xiàng)目實(shí)施05項(xiàng)目實(shí)施一、設(shè)備和資源準(zhǔn)備項(xiàng)目實(shí)施前必須先準(zhǔn)備好相應(yīng)的設(shè)備和資源,見表5-12。序號(hào)設(shè)備/資源名稱數(shù)量單位是否準(zhǔn)備到位(√)1CC2530模塊1個(gè)

2CCDebugger仿真器(帶下載線)1個(gè)

3MiniUSB供電線或5號(hào)電池1根/個(gè)

表5-12設(shè)備和資源清單CC2530模塊(帶LED電路)CCDebugger仿真器(帶下載線)MiniUSB供電線或5號(hào)電池項(xiàng)目實(shí)施二、查閱實(shí)驗(yàn)?zāi)K原理圖原理圖如圖5-1所示,按鍵按下時(shí)I/O口P0_0輸入低電平,松開時(shí)輸入高電平。蜂鳴器和LED電路原理圖則如圖5-2所示,I/O口P1_2用于有源蜂鳴器LS1的發(fā)聲控制,當(dāng)P1_2輸出高電平,蜂鳴器發(fā)聲。相反,輸出低電平則關(guān)斷蜂鳴器,不發(fā)聲。圖5-1按鍵原理圖圖5-2蜂鳴器和LED的原理圖項(xiàng)目實(shí)施三、實(shí)施過程1.連接設(shè)備將CCDebugger仿真器的接口與CC2530實(shí)驗(yàn)?zāi)K(實(shí)驗(yàn)?zāi)K使用“求助按鈕V1.0”)相連,仿真器另一端用USB數(shù)據(jù)線連接到PC上,如圖5-3所示。圖5-3實(shí)驗(yàn)接線圖項(xiàng)目實(shí)施2.程序設(shè)計(jì)(1)實(shí)驗(yàn)分析首先定義相關(guān)IO端口,根據(jù)硬件原理圖P1_0端口控制LED1,P1_1端口控制LED2,P0_7端口控制LED3,P1_2端口控制蜂鳴器BEEP,P0_0端口控制按鈕。#defineLED1P1_0//LED1為P1_0端口控制

#defineLED2P1_1//LED2為P1_1端口控制

#defineLED3P0_7//LED3為P0_7端口控制

#defineBEEPP1_2//BEEP為P1_2端口控制

CC2530的外部中斷我們需要配置三個(gè)寄存器P0IEN、PICTL、P0IFG、IEN1。寄存器的具體用法參考本項(xiàng)目知識(shí)儲(chǔ)備內(nèi)容。KEY_IO初始化(中斷方式配置)函數(shù)如下:voidInitKey(void){P0IEN|=0x01;//設(shè)置P0_0為中斷方式IEN1|=0x20;//允許P0口中斷PICTL|=0x01;//下降沿觸發(fā)P0IFG=0x00;//清中斷標(biāo)志位EA=1;//開總中斷}項(xiàng)目實(shí)施(2)程序流程圖程序流程圖見圖5-4。圖5-4程序流程圖(3)創(chuàng)建工程打開IAR新建一個(gè)CProject工程(具體步驟請(qǐng)參照項(xiàng)目二)。項(xiàng)目實(shí)施(4)編寫代碼完整的程序源代碼,見課程資源。主要功能代碼如下:項(xiàng)目實(shí)施圖5-5按鍵中斷產(chǎn)生聲光報(bào)警的編譯界面項(xiàng)目成果項(xiàng)目成果按仿真器或者CC2530實(shí)驗(yàn)?zāi)K上的Reset復(fù)位鍵,然后反復(fù)按下CC2530模塊上的按鍵,可以看到CC2530板上D5的亮滅效果,同時(shí)LED亮起來時(shí)伴隨有蜂鳴器的響聲,LED熄滅則蜂鳴器聲音關(guān)閉,則說明項(xiàng)目運(yùn)行成功,其效果如圖5-6所示。如果未看到按鍵控制LED和蜂鳴器的效果,說明程序的編寫有誤,或需要檢查CCDeb

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論