《物聯(lián)網(wǎng)技術(shù)創(chuàng)新應(yīng)用》項目5鍵盤按鍵檢測_第1頁
《物聯(lián)網(wǎng)技術(shù)創(chuàng)新應(yīng)用》項目5鍵盤按鍵檢測_第2頁
《物聯(lián)網(wǎng)技術(shù)創(chuàng)新應(yīng)用》項目5鍵盤按鍵檢測_第3頁
《物聯(lián)網(wǎng)技術(shù)創(chuàng)新應(yīng)用》項目5鍵盤按鍵檢測_第4頁
《物聯(lián)網(wǎng)技術(shù)創(chuàng)新應(yīng)用》項目5鍵盤按鍵檢測_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

鍵盤按鍵檢測InternetofThings項目場景說明中斷簡介CC2530外部中斷項目實踐項目場景在使用電腦辦公時通常需要通過使用鍵盤向電腦輸入需要的信息,但向鍵盤輸入信息的時間和每次敲擊的鍵位都不是規(guī)律性的。那么鍵盤要如何處理這些突發(fā)的敲擊事件呢,這其中鍵盤的編碼芯片就使用到了中斷。當(dāng)鍵盤按下時觸發(fā)中斷,鍵盤芯片對鍵位進行識別和編碼,并將結(jié)果發(fā)送值計算機系統(tǒng)從而完成一次鍵值發(fā)送。任務(wù)目標(biāo)使用CC2530單片機模擬鍵盤按鍵功能,通過編寫程序使用CC2530單片機的外部中斷實現(xiàn)對連接在CC2530引腳上按鍵動作進行捕捉,由CC2530單片機上指示燈的變化實現(xiàn)對按鍵動作的反饋。中斷概念中斷是指計算機運行過程中,出現(xiàn)某些意外情況需主機干預(yù)時,機器能自動停止正在運行的程序并轉(zhuǎn)入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續(xù)運行。中斷的分類中斷分為兩種,一種是硬件控制的硬件中斷,另一種是操作系統(tǒng)控制的軟件中斷。硬件中斷(HardwareInterrupt)可屏蔽中斷非可屏蔽中斷處理器間中斷偽中斷軟件中斷(SoftwareInterrupt)軟件中斷是一條CPU指令,用以再現(xiàn)一個中斷。中斷發(fā)生過程按照事件發(fā)生的順序,中斷過程包括:1中斷源發(fā)出中斷請求;2判斷當(dāng)前處理機是否允許中斷和該中斷源是否被屏蔽;3優(yōu)先權(quán)排隊;4處理機執(zhí)行完當(dāng)前指令或當(dāng)前指令無法執(zhí)行完,則立即停止當(dāng)前程序,保護斷點地址和處理機當(dāng)前狀態(tài),轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序;5執(zhí)行中斷服務(wù)程序;6恢復(fù)被保護的狀態(tài),執(zhí)行“中斷返回”指令回到被中斷的程序或轉(zhuǎn)入其他程序。外部中斷概念外部中斷就是在單片機的一個引腳上,由于外部因素導(dǎo)致了一個電平的變化(比如由高變低),而通過捕獲這個變化,單片機內(nèi)部自主運行的程序就會被暫時打斷,轉(zhuǎn)而去執(zhí)行相應(yīng)的中斷處理程序,執(zhí)行完后又回到原來中斷的地方繼續(xù)執(zhí)行原來的程序。這個引腳上的電平變化,就申請了一個外部中斷事件,而這個能申請外部中斷的引腳就是外部中斷的觸發(fā)引腳。外部中斷觸發(fā)條件外部中斷觸發(fā)是指程序在運行時,外界通過某種方式觸發(fā)外部中斷的一種觸發(fā)方式。電平觸發(fā)方式數(shù)字電路中,數(shù)字電平從低電平(數(shù)字“0”)變?yōu)楦唠娖剑〝?shù)字“1”)的那一瞬間叫作上升沿。相反數(shù)字電平從高電平(數(shù)字“1”)變?yōu)榈碗娖剑〝?shù)字“0”)的那一瞬間叫作下降沿。跳變沿觸發(fā)方式外部中斷若定義為跳變沿觸發(fā)方式,外部中斷申請觸發(fā)器能鎖存外部中斷輸入線上的負跳變。CC2530與外部中斷CC2530在通用I/O引腳設(shè)置為輸入后,可以用于產(chǎn)生中斷。中斷可以設(shè)置在外部信號的上升或下降沿觸發(fā)。P0、P1或P2端口都有中斷使能位,對位于

IEN1-2寄存器內(nèi)的端口所有的位都是公共的,如下:IEN1.P0IE:P0中斷使能IEN2.P1IE:P1中斷使能IEN2.P2IE:P2中斷使能CC2530外部中斷寄存器介紹CC2530的外部中斷配置寄存器主要有7個,這七個寄存器分別是:P0IEN:P0中斷使能P1IEN:P1中斷使能P2IEN:P2中斷使能PICTL:P0、P1和P2觸發(fā)沿設(shè)置P0IFG:P0中斷標(biāo)志P1IFG:P1中斷標(biāo)志P2IFG:P2中斷標(biāo)志項目分析按鍵的狀態(tài)檢測按鍵的狀態(tài)檢測方式主要是使用了CC2530單片機通用I/O的引腳電平讀取功能,相關(guān)引腳為高電平時引腳讀取的值為1,反之則為0。按鍵如圖所示,按鍵K1的引腳一端接GND,另一端接電阻和CC2530微處理器的P1_2管腳,電阻的另一端連接3.3V電源。程序流程圖程序設(shè)計思路中首先初始化系統(tǒng)時鐘、LED燈和外部中斷并且打開LED2燈。初始化完成之后程序進入主循環(huán),主循環(huán)中,LED2燈處于一個常亮狀態(tài)。當(dāng)按鍵K1按鍵按下時觸發(fā)外部中斷,程序進入中斷服務(wù)函數(shù)執(zhí)行,延時消抖等待10ms,待電平穩(wěn)定后如果按鍵就處于按下狀態(tài)則確定K1按鍵被按下。檢測到K1按鍵按下后則執(zhí)行對LED燈狀態(tài)操作程序,對LED1燈和LED2燈的狀態(tài)進行取反。執(zhí)行完畢后,中斷標(biāo)志清零,程序回到主程序中等待中斷再次觸發(fā)。項目實現(xiàn)外部中斷初始化外部中斷初始化為該項目的重要環(huán)節(jié),外部中斷初始化為將外部中斷配置為低電平觸發(fā)。voidext_init(void){IEN2|=0x10;//端口1中斷使能P1IEN|=0x04;//端口P1_2外部中斷使能PICTL|=0x02;//端口P1_2下降沿觸發(fā)EA=1;//使能總中斷}項目實現(xiàn)外部中斷服務(wù)函數(shù)#pragmavector=P1INT_VECTOR__interruptvoidP1_ISR(void){EA=0;//關(guān)中斷

if((P1IFG&0x04)>0){//按鍵中斷P1IFG&=~0x04;//中斷標(biāo)志清0delay_ms(10);//按鍵防抖if(KEY1==ON){//判斷按鍵按下

LED2=~LED2;//翻轉(zhuǎn)LED0LED1=~LED1;

溫馨提示

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

評論

0/150

提交評論