ZigBee線通信-按鍵與液晶屏顯示8.25修改_第1頁
ZigBee線通信-按鍵與液晶屏顯示8.25修改_第2頁
ZigBee線通信-按鍵與液晶屏顯示8.25修改_第3頁
ZigBee線通信-按鍵與液晶屏顯示8.25修改_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

[實(shí)驗(yàn)項(xiàng)目]:ZigBee線通信[實(shí)驗(yàn)?zāi)康腯:探究基于ZigBee試驗(yàn)板與Z-Stack的按鍵試驗(yàn)[實(shí)驗(yàn)儀器設(shè)備]:一塊ZigBee實(shí)驗(yàn)板、桌面電腦[實(shí)驗(yàn)原理]:基于IEEE802.15無線通信協(xié)議的無線試驗(yàn)[設(shè)計(jì)內(nèi)容]:探究基于ZigBee試驗(yàn)板與Z-Stack的按鍵與液晶屏顯示試驗(yàn)[設(shè)計(jì)思路]:說明: 首先觀察實(shí)驗(yàn)板,總共有5個(gè)可見的按鍵(keys),其中一個(gè)是所謂的搖 桿,即程序里注釋的joy-stick,它又可以代表5個(gè)鍵,總共加起來就有9 個(gè)實(shí)際按鍵,除去兩個(gè)復(fù)位鍵,我們可以支配可用的就有7個(gè),但去分 析程序(SampleApp.C)時(shí),只有兩(HAL_KEY_SW_1、HAL_KEY_SW_2) 個(gè)按鍵被應(yīng)用上了,其余都沒用上,去看hal_key.H時(shí),有七個(gè)按鍵 可用,與以上分析吻合,那么可不可以利用上它們呢?以下是我設(shè)計(jì)的 驗(yàn)證這些按鍵的實(shí)驗(yàn)。思路: 照著模版程序里對按鍵事件的處理程序添加自己想探究的按鍵的處理程 序。[實(shí)驗(yàn)步驟與方法]:查看hal_key.H,確定可用的按鍵,即觀察定義了那些按鍵消息在本Z-Stack模版程序里,其定義如下:/*Switches(keys)*/#defineHAL_KEY_SW_10x01//Joystickup#defineHAL_KEY_SW_20x02//Joystickright#defineHAL_KEY_SW_50x04//Joystickcenter#defineHAL_KEY_SW_40x08//Joystickleft#defineHAL_KEY_SW_30x10//Joystickdown#defineHAL_KEY_SW_60x20//ButtonS1ifavailable#defineHAL_KEY_SW_70x40//ButtonS2ifavailable/*Joystick*/#defineHAL_KEY_UP0x01//Joystickup#defineHAL_KEY_RIGHT0x02//Joystickright#defineHAL_KEY_CENTER0x04//Joystickcenter#defineHAL_KEY_LEFT0x08//Joystickleft#defineHAL_KEY_DOWN0x10//Joystickdown我們可以看到,一共有七個(gè)按鍵被定義了,Joystick其實(shí)被包含于Switches(keys)。LCD顯示函數(shù)位于hal_lcd.h中,有以下:voidHalLcdWriteString(char*str,uint8option);voidHalLcdWriteValue(uint32value,constuint8radix,uint8option);voidHalLcdWriteScreen(char*line1,char*line2);voidHalLcdWriteStringValue(char*title,uint16value,uint8format,uint8line);voidHalLcdWriteStringValueValue(char*title,uint16value1,uint8format1,uint16value2,uint8format2,uint8line);voidHalLcdDisplayPercentBar(char*title,uint8value);五個(gè)函數(shù),這里我們使用HalLcdWriteString()函數(shù),*str是要顯示的字符串,option查看宏定義可知是要顯示位置(第幾行)。三、添加按鍵處理消息,在SampleApp.c里找到按鍵消息處理函數(shù),即voidSampleApp_HandleKeys(uint8shift,uint8keys),再照著其中已有的按鍵處理程序段,添加自己想驗(yàn)證的按鍵,在這里,我添加了HAL_KEY_SW_3HAL_KEY_SW_4HAL_KEY_SW_5也即是HAL_KEY_CENTERHAL_KEY_LEFTHAL_KEY_DOWN的處理代碼,其代碼為if(keys&HAL_KEY_SW_3)//按鍵3按下{ //調(diào)用LCD輸出函數(shù)在LCD上顯示SW_3ispressedHalLcdWriteString("SW_3is",HAL_LCD_LINE_1);HalLcdWriteString("pressed",HAL_LCD_LINE_2);}if(keys&HAL_KEY_SW_4)//按鍵4按下{//調(diào)用LCD輸出函數(shù)在LCD上顯示SW_4ispressedHalLcdWriteString("SW_4is",HAL_LCD_LINE_1);HalLcdWriteString("pressed",HAL_LCD_LINE_2);}if(keys&HAL_KEY_SW_5)//按鍵5按下{//調(diào)用LCD輸出函數(shù)在LCD上顯示SW_5ispressedHalLcdWriteString("SW_5is",HAL_LCD_LINE_1);HalLcdWriteString("pressed",HAL_LCD_LINE_2);}代碼解釋:在次試驗(yàn),按鍵功能被定義為:當(dāng)按鍵被按下,相應(yīng)在LCD上顯示提示,比較直觀的演示了按鍵事件的響應(yīng)處理,要實(shí)現(xiàn)其它功能,只需在相應(yīng)的消息處填寫代碼即可。四.連接好試驗(yàn)板,在IAR下正確設(shè)置DEBUG編譯等選項(xiàng),選擇Project->Debug進(jìn)行編譯仿真,若不需要仿真,退出Debug,實(shí)驗(yàn)板復(fù)位,進(jìn)行接下來的實(shí)驗(yàn)。[實(shí)驗(yàn)記錄]:當(dāng)實(shí)驗(yàn)板復(fù)位后,SoC開始執(zhí)行指令,SoC先是進(jìn)行初始化,等初始化完成之后,我們就可以做以上修改的代碼實(shí)驗(yàn)了。試驗(yàn)時(shí),joystick往下掰,即key3,LCD上分兩行顯示SW_3ispressed。joystick往左掰,即key4,LCD上分兩行顯示SW_4ispressed。按joystick中鍵,即key5,LCD上分兩行顯示SW_5ispressed。[實(shí)驗(yàn)結(jié)論]:實(shí)驗(yàn)結(jié)果與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論