freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)_基于cc2530的溫度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)-資料下載頁

2024-12-01 20:23本頁面

【導(dǎo)讀】CC2530的無線溫度檢測(cè)節(jié)點(diǎn);決實(shí)際問題的能力;③工作量的大??;④取得的主要成果及創(chuàng)新點(diǎn);⑤寫作的規(guī)范程度;隨后本文對(duì)設(shè)計(jì)所采用的ZigBee無線自組網(wǎng)技術(shù)和ZigBee開發(fā)套件進(jìn)行了。簡(jiǎn)要介紹,并對(duì)設(shè)計(jì)所采用的Z-Stack協(xié)議棧的工作流程作詳細(xì)介紹。最后,本文對(duì)該系統(tǒng)的溫度監(jiān)測(cè)功能效果進(jìn)行驗(yàn)證,并總結(jié)分析。最終,設(shè)計(jì)出一種基于CC2530的溫度監(jiān)測(cè)系統(tǒng)。該無線傳感系統(tǒng)能夠?qū)崿F(xiàn)點(diǎn)對(duì)點(diǎn)通。信,傳感器節(jié)點(diǎn)負(fù)責(zé)進(jìn)行溫度數(shù)據(jù)的采集和發(fā)送,協(xié)調(diào)器節(jié)點(diǎn)負(fù)責(zé)溫度數(shù)據(jù)的接收和轉(zhuǎn)發(fā),上位機(jī)軟件負(fù)責(zé)對(duì)溫度數(shù)據(jù)的顯示。

  

【正文】 電源管理初始化、系統(tǒng)任務(wù)初始化,其中重點(diǎn)是初始化系統(tǒng)任務(wù)。在 文件中osal_init_system()函數(shù)主要內(nèi)容: uint8 osal_init_system( void ) { …… osalInitTasks()。 //初始化系統(tǒng)任務(wù) …… } 在 osal_init_system()函數(shù)中重點(diǎn)是 osalInitTasks()任務(wù)初始化函數(shù),函數(shù)中每個(gè)任務(wù)都是調(diào)用初始化函數(shù)對(duì)協(xié)議棧每一層進(jìn)行初始化。 osalInitTasks()函數(shù)中主要進(jìn)行了內(nèi)存的分配、設(shè)置內(nèi)存空間單元、按照任務(wù)優(yōu)先級(jí)由高向低(高優(yōu)先級(jí)對(duì)應(yīng) taskID 值?。┻M(jìn)行任務(wù)初始化 3 件事,而對(duì)用戶應(yīng)用的初始化是關(guān)鍵。在 文件中 osalInitTasks()函數(shù)主要內(nèi)容 : void osalInitTasks( void ) { …… SampleApp_Init( taskID )。 //用戶應(yīng)用任務(wù)初始化 } ③ 執(zhí)行操作系統(tǒng) 在 main()函數(shù)中的另一重點(diǎn)就是 osal_start_system()執(zhí)行操作系統(tǒng)函數(shù)。 ZStack協(xié)議棧中的操作系統(tǒng)是基于優(yōu)先級(jí)的輪詢式操作系統(tǒng)。 此函數(shù)將所有的任務(wù)事件和調(diào)用task_event_processor()事件的任務(wù)功能,如果沒有事件(任務(wù)),這一功能使處理器進(jìn)入睡眠狀態(tài)。此函數(shù)沒有返回值。函數(shù)中包括: 掃描事件設(shè)置標(biāo)志位,輪詢定時(shí)器和串口,準(zhǔn)備任務(wù),在臨界區(qū)中提取、處理、清除、保存事件,使系統(tǒng)休眠。在 文件中 osal_start_system()函數(shù)主要內(nèi)容: void osal_start_system( void ) { …… events = tasksEvents[idx]。 //提取需要處理的任務(wù)中的事件 …… events = (tasksArr[idx])( idx, events )。 //通 過指針調(diào)用任務(wù)處理函數(shù) 中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 第 18頁 …… osal_pwrmgr_powerconserve()。 //使進(jìn)程 /系統(tǒng)休眠 } 程序中重點(diǎn)是 events=tasksEvents[idx]。 進(jìn)入 tasksEvents[idx] 數(shù)組,是osalInitTasks()函數(shù)里初始化的 tasksEvents。 taskID 把任務(wù)聯(lián)系起來一一對(duì)應(yīng),數(shù)組中事件的順序必須與任務(wù)初始化函數(shù)中的順序相同,以達(dá)到初始化和調(diào)用的目的。 ④ 用戶應(yīng)用系統(tǒng)初始化函數(shù) SampleApp_Init() 對(duì)于通用應(yīng)用程序系統(tǒng)初始 化函數(shù),就是初始化過程中應(yīng)該包含任何特定于應(yīng)用程序的初始化(即硬件初始化設(shè)置,表的初始化等)。在 osalInitTasks()任務(wù)初始化函數(shù)中,包含用戶應(yīng)用系統(tǒng)初始化函數(shù) SampleApp_Init(), 由此進(jìn)入由用戶創(chuàng)建的任務(wù)。在SampleApp_Init()函數(shù)中主要包含 6 個(gè)部分工作:分配任務(wù) ID,串口初始化,注冊(cè)串口任務(wù),溫度傳感器引腳初始化,設(shè)置發(fā)送數(shù)據(jù)的方式和目的的地址尋址模式,定義端點(diǎn)描述符。在 文件中, SampleApp_Init()函數(shù)主要內(nèi)容如下: void SampleApp_Init( uint8 task_id ) { SampleApp_TaskID = task_id。 //osal分配的任務(wù) ID 隨著用戶添加任務(wù)的增多而改變 …… MT_UartInit()。 //串口初始化 MT_UartRegisterTaskID(task_id)。 //注冊(cè)串口任務(wù) P0SEL amp。= 0x7f。 //DS18B20 的 I/O 口初始化 …… //發(fā)送模式:點(diǎn) 播發(fā)送 = (afAddrMode_t)Addr16Bit。 //點(diǎn)播 = SAMPLEAPP_ENDPOINT。//指定端點(diǎn)號(hào) = 0x0000。//發(fā)給協(xié)調(diào)器 //定義本設(shè)備用來通信的 APS 層端點(diǎn)描述符 = SAMPLEAPP_ENDPOINT。 = amp。SampleApp_TaskID。 //SampleApp 描述符的任務(wù) ID //SampleApp 簡(jiǎn)單描述符 = (SimpleDescriptionFormat_t *)amp。SampleApp_SimpleDesc。 = noLatencyReqs。 //延時(shí)策略 …… } ⑤ 用戶應(yīng)用任務(wù)的事件處理函數(shù) SampleApp_ProcessEvent() 通用應(yīng)用程序任務(wù)事件處理器。這個(gè)函數(shù)被調(diào)用來處理任務(wù)的所有事件活動(dòng),包括定時(shí)器信息和其他用戶定義的事件。 SampleApp_ProcessEvent()函數(shù)主要負(fù)責(zé)接收系統(tǒng)消息中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 第 19頁 并對(duì)消息進(jìn)行處理,在網(wǎng)絡(luò)狀態(tài)發(fā)生改變時(shí)完成對(duì)協(xié)調(diào)器和終端設(shè)備的設(shè)置,周期性發(fā)送消息,返回未處理事件,處理周期性事件。在 文件中,SampleApp_ProcessEvent()函數(shù)主要內(nèi)容如下: uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) { …… case ZDO_STATE_CHANGE事件通知所有任務(wù)。同時(shí)完成對(duì)協(xié)調(diào)器、終端的設(shè)置 SampleApp_NwkState = (devStates_t)(MSGpkt)。 if ((SampleApp_NwkState == DEV_END_DEVICE) ) { // 啟動(dòng)初始化后開始有規(guī)律的發(fā)送周期信息 osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT )。 } …… if ( events amp。 SAMPLEAPP_SEND_PERIODIC_MSG_EVT ) { //處理周期性事件 ,每 10s 喚醒 1 次 SampleApp_Send_P2P_Message()。 osal_start_timerEx( SampleApp_TaskID, SAMPLEAPP_SEND_PERIODIC_MSG_EVT, 10000 )。 …… } 網(wǎng)絡(luò)通信過程 開發(fā)板 A 作為協(xié)調(diào)器,上電啟動(dòng)后自動(dòng)建立網(wǎng)絡(luò)并周期性向終端設(shè)備發(fā)送數(shù)據(jù)包;開發(fā)板 B作 為終端設(shè)備,上電啟動(dòng)后加入網(wǎng)絡(luò),并且也周期性向協(xié)調(diào)器發(fā)送數(shù)據(jù)包。 ① 啟動(dòng)過程分析 無論是協(xié)調(diào)器還是終端設(shè)備,啟動(dòng)過程和網(wǎng)絡(luò)初始化的步驟都是一樣的,只是配置文件在編譯時(shí)會(huì)根據(jù)設(shè)備的不同類型而有所區(qū)別。 啟動(dòng)過程如下: ; ; ; ()設(shè)備對(duì)象初始化函數(shù)主要內(nèi)容包括:保存任務(wù) ID,分配地址,初始化ZDO,為設(shè)備注冊(cè)端點(diǎn)描述符; 中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 第 20頁 ()函數(shù)在網(wǎng)絡(luò)啟動(dòng)中,會(huì)完成初始化設(shè)備網(wǎng)絡(luò)狀態(tài),初始化 RAM 項(xiàng)目表,初始化控制邏輯,確定設(shè)備類型,初始化設(shè)備安全屬性,形成網(wǎng)絡(luò)這些工作; ()函數(shù)用于啟動(dòng)連接網(wǎng)絡(luò); ()函數(shù)是主函數(shù)循環(huán)的 ZigBee 設(shè)備對(duì)象的任務(wù),功能是網(wǎng)絡(luò)初始化事件處理; ② 協(xié)調(diào)器建網(wǎng) 在設(shè)備初始化結(jié)束后,由協(xié)調(diào)器建立無線網(wǎng)絡(luò)。如果協(xié)調(diào)器新建網(wǎng)絡(luò)成功,允許協(xié)調(diào)器設(shè)定為綁定。此時(shí)協(xié)調(diào)器檢測(cè)是否有節(jié)點(diǎn)要求加入網(wǎng)絡(luò),如果有,協(xié)調(diào)器建立綁定表,建立綁定,同時(shí)發(fā)出請(qǐng)求,節(jié)點(diǎn)確認(rèn)后,協(xié)調(diào)器開始接收數(shù)據(jù),最后通過串口發(fā)送給上位機(jī)。協(xié)調(diào) 器程序流程圖如圖 所示。 上電復(fù)位硬件 、 軟件初始化建網(wǎng)成功允許綁定發(fā)現(xiàn)設(shè)備建立綁定接收數(shù)據(jù)將數(shù)據(jù)發(fā)到串口傳輸給 PC 機(jī)是否否是 圖 協(xié)調(diào)器流程圖 ③ 終端設(shè)備入網(wǎng) 設(shè)備初始化后,終端節(jié)點(diǎn)會(huì)根據(jù) ZigBee 協(xié)議棧搜尋附近的網(wǎng)絡(luò),并請(qǐng)求加入網(wǎng)絡(luò)。當(dāng)請(qǐng)求得到協(xié)調(diào)器確認(rèn)后,終端設(shè)備會(huì)將自己的地址發(fā)給協(xié)調(diào)器,并自動(dòng)與協(xié)調(diào)器建立綁定。在接受到數(shù)據(jù)傳送請(qǐng)求之后,終端設(shè)備就會(huì)將所測(cè)量的溫度值周期性的傳送給協(xié)調(diào)器。終端設(shè)備流程圖如圖 所示。 上電復(fù)位硬件 、 軟件初始化發(fā)現(xiàn)網(wǎng)絡(luò)加入網(wǎng)絡(luò) 嘗試重新建立綁定傳感器采集數(shù)據(jù)發(fā)送成功 ?是否是入網(wǎng)成功成功 ?是否是否 圖 終端設(shè)備流程圖 溫度測(cè)量與 數(shù)據(jù)傳輸 中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 第 21頁 ① DS18B20 驅(qū)動(dòng)程序 DS18B20 驅(qū)動(dòng)程序包括兩個(gè)文件 和 。在文件 中主要有以下幾部分工作: : define Ds18b20IO P0_7; : void Ds18b20Delay(unsigned int k) { while (k) { asm(NOP)。 …… (省略 31 次 asm(NOP)。) } } : P0DIR amp。= 0x7f; 輸出端口: P0DIR amp。= 0x7f; DS18B20; : //溫度讀取函數(shù) 帶 1 位小數(shù)位 unsigned int floatReadDs18B20(void) { unsigned char V1,V2。 //定義高低 8 位 緩沖 unsigned int temp。 //定義溫度緩沖寄存器 float fValue。 Ds18b20Initial()。 Ds18b20Write(0xcc)。 // 跳過讀序號(hào)列號(hào)的操作 Ds18b20Write(0x44)。 // 啟動(dòng)溫度轉(zhuǎn)換 Ds18b20Initial()。 Ds18b20Write(0xcc)。 //跳過讀序號(hào)列號(hào)的操作 Ds18b20Write(0xbe)。 //讀取溫度寄存器等(共可讀 9 個(gè)寄存器) 前兩個(gè)就是溫度 V1 = Ds18b20Read()。 //低位 V2 = Ds18b20Read()。 //高位 temp=V2*0xFF+V1。 fValue = temp*。 return (unsigned int)fValue。 中國(guó)礦業(yè)大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) 第 22頁 } ② 初始化串口和溫度傳感器引腳 在文件 中的 SampleApp_Init()處寫入語句: Void SampleApp_Init(uint8 task_id) { …… MT_UartInit()。 //串口初始化; MT_UartRegisterTaskID(task_id)。 //注冊(cè)串口任務(wù); POSELamp。=0x7f。 //DS18B20 的 I/O 口初始化 …… } ③ 讀取溫度數(shù)據(jù) 在文件 中有 SampleApp_Send_P2P_Message()函數(shù)負(fù)責(zé)溫度的讀取和傳輸: void SampleApp_Send_P2P_Message( void ) { char str[4]。 unsigned int temp。 temp = floatReadDs18B20()。 //讀取溫度數(shù)據(jù) str[0] = temp%1000/100+ 48。 str[1] = temp%100/10+48。 str[2] = 39。.39。 str[3] = temp%10 + 48。 if ( AF_DataRequest( amp。SampleApp_P2P_DstAddr, amp。SampleApp_epDesc, SAMPLEAPP_P2P_CLUSTERID, 4, str, amp。SampleApp_TransID, AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) } ④ 接收數(shù)據(jù) 在文件 中有 SampleApp_MessageMSGCB ()函數(shù)負(fù)責(zé)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1