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

正文內(nèi)容

實(shí)驗(yàn)室溫濕度監(jiān)控系統(tǒng)設(shè)計(jì)-畢業(yè)論文-文庫(kù)吧

2025-09-04 09:20 本頁(yè)面


【正文】 NOS20RXD4TXD3U1CH340TCH340TVCC5GNDVCC1D2D+3NC4GND5USBVCC5GND103 C21 2Y112MHz22pC322pC4GND104 C1300R1D11 23 4U2CON2X2TXDRXD 圖 28 USB 轉(zhuǎn)串口 模塊原理圖 四、 系統(tǒng)軟件設(shè)計(jì) (一)程序設(shè) 計(jì) 總體 思路 軟件部分的設(shè)計(jì)思路是將整個(gè)程序劃分 3 個(gè) 部分, 溫濕度采集及數(shù)據(jù) 無(wú)線發(fā)射部分, 數(shù)據(jù) 接收部分, 上位機(jī)顯示數(shù)據(jù)部 分。 第 9 頁(yè) 軟件流程如圖 41 所示,開(kāi)始先是系統(tǒng)的初始化,初始化完成之后 接收模塊會(huì)一直處于待命狀態(tài)一直循環(huán)等待無(wú)線端接收的數(shù)據(jù), 數(shù)據(jù)采集節(jié)點(diǎn) 實(shí)時(shí)監(jiān)測(cè)溫濕 度,并把溫 濕 度發(fā)射給 數(shù)據(jù)接收端 ,接收到溫 濕 度數(shù)據(jù)后,進(jìn)行 校驗(yàn), 處理后并通過(guò) 串口發(fā)送給上位機(jī), 顯示實(shí)時(shí)溫 濕 度 數(shù)據(jù) 。 圖 41 軟件整體流程 各個(gè)系 統(tǒng)初始化 接收模塊接收數(shù)據(jù) 校驗(yàn)數(shù)據(jù) 分析數(shù)據(jù) 上位機(jī)顯示數(shù)據(jù) 是否收到數(shù)據(jù) 是 否 第 10 頁(yè) (二)溫 濕 度傳感器軟件設(shè)計(jì) DHT11 的內(nèi)部 存儲(chǔ)器有一個(gè)高速暫存 RAM。高速暫存 RAM 的結(jié)構(gòu)為 8字節(jié)的存儲(chǔ)器。第 1字節(jié)和第 2字節(jié)為測(cè)得的溫度的低位和高位,第 3 字節(jié)和第 4 字節(jié)是 TH 和 TL 的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第 5 字節(jié)為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,它的第 7位 TM 是測(cè)試模式位,用于設(shè)置 DHT11 在工作模式還是在測(cè)試模式;第 6 位 R1和第 5位 R0 決定溫度轉(zhuǎn)換的精度,即用來(lái)設(shè)置分辨率,分辨率越高,轉(zhuǎn)換時(shí)間就越長(zhǎng)。 當(dāng)符號(hào)位 S=0 時(shí),表示測(cè)得的溫度為正值,可直接將二進(jìn)制轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位 S=1 時(shí),表示測(cè)得的溫度為負(fù)值 ,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制。 在采用 12位轉(zhuǎn)換精度時(shí),溫度寄存器里的值是以 為步進(jìn)的,即把把溫度寄存器里的二進(jìn)制值乘以 ,就是實(shí)際的溫度值,例如 0550H =1360 ℃ /LSB =85℃。 的通信協(xié)議 該通信協(xié)議定義了幾種信號(hào)類型:復(fù)位脈沖、應(yīng)答脈沖時(shí)隙;寫(xiě)“ 0”、寫(xiě)“ 1”時(shí)隙;讀“ 0”,讀“ 1”時(shí)隙;。與 DHT11 的通信,是通過(guò)操作時(shí)隙完成單總線上的數(shù)據(jù)傳輸。發(fā)送所有的命令和數(shù)據(jù)時(shí)都是字節(jié)的低位在前,高位在后。 1)初始化序列: 復(fù)位和應(yīng)答脈沖 單總線上的所有通信都是以初始化序列開(kāi)始,包括:主機(jī)發(fā)出的復(fù)位脈沖及從機(jī)的應(yīng)答脈沖,如圖 5所示。當(dāng)從機(jī)發(fā)出響應(yīng)主機(jī)的應(yīng)答脈沖時(shí),即向主機(jī)表 第 11 頁(yè) 圖 42 復(fù)位 /應(yīng)答 時(shí)隙的示意圖 明它處于總線上,且工作準(zhǔn)備就緒。在主機(jī)初始化過(guò)程,主機(jī)通過(guò)拉低單總線至少 480us,以產(chǎn)生( Tx) 復(fù)位脈沖。接著,主機(jī)釋放總線,并進(jìn)入接收模式( Rx)。 當(dāng)總線被釋放后, 5k上拉電阻將單總線拉高。在單總線器件檢測(cè)到上升 沿后,延時(shí) 1560 us,接著通過(guò)拉低總線 60240us,以產(chǎn)生應(yīng)答脈沖。 2)寫(xiě)時(shí)隙 存在兩種寫(xiě)時(shí)隙:寫(xiě)“ 1”和寫(xiě)“ 0”。 主機(jī)采用寫(xiě) 1 時(shí)隙向從機(jī)寫(xiě)入 1, 而 圖 43主機(jī)讀 /寫(xiě)時(shí)隙的示意圖 采用寫(xiě) 0 時(shí)隙向從機(jī)寫(xiě)入 0。 所有寫(xiě)時(shí)隙至少需要 60us,且在兩次獨(dú)立的寫(xiě)時(shí)隙之間至少需要 1u s的恢復(fù)時(shí)間。兩種寫(xiě)時(shí)隙均起始于主機(jī)拉低總線(圖 6所示)。 第 12 頁(yè) 產(chǎn)生寫(xiě) 1 時(shí)隙的方式:主機(jī)在拉低總線后接著必須在 15 us之內(nèi)釋放總線,由 5k 上拉電阻將總線拉至高電平;而產(chǎn)生寫(xiě) 0 時(shí)隙的方式:在主機(jī)拉低總線后,只需 在整個(gè)時(shí)隙期間保持低電平即可(至少 60us)。 在寫(xiě)時(shí)隙起始后 1560us期間 ,單總線器件采樣總線電平狀態(tài)。如果在此期間采樣為高電平,則邏輯 1被寫(xiě)入該器件;如果為 0, 則寫(xiě)入邏輯 0。 3)讀時(shí)隙 單總線器件僅在主機(jī)發(fā)出讀時(shí)隙時(shí),才向主機(jī)傳輸數(shù)據(jù),所以,在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)隙,以便從機(jī)能夠傳輸數(shù)據(jù),所有讀時(shí)隙至少需要 60u s,且在兩次獨(dú)立的讀時(shí)隙之間至少需要 1us的恢復(fù)時(shí)間。每個(gè)讀時(shí)隙都由主機(jī)發(fā)起,至少拉低總線 1us(圖 6 所示)。在主機(jī)發(fā)起讀時(shí)隙 之后單總線器件才開(kāi)始在總線上發(fā)送 0 或 1。 通過(guò)上述原理,可通過(guò)其 onewire總線對(duì)其進(jìn)行配置和數(shù)據(jù)通信,設(shè)計(jì)的讀出溫度子程序主要功能是讀出 RAM中的 9字節(jié),在讀出時(shí)需進(jìn)行 CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě)。 其軟件流程如圖 44所示。 圖 44 讀出溫 濕 度子程序軟件流程圖 DHT11 初始化 啟動(dòng)溫濕度轉(zhuǎn)換 等待轉(zhuǎn)換完成 發(fā)送讀取指令 獲取對(duì)應(yīng)數(shù)據(jù) 第 13 頁(yè) DHT11的各個(gè)命令對(duì)時(shí)序的要求特別嚴(yán)格,所以在軟件設(shè)計(jì)時(shí)必須按照所要求的時(shí)序才能達(dá)到預(yù)期的目的,同時(shí),要注意讀進(jìn)來(lái)的是高位在后低位在前,共有 12位數(shù),小數(shù) 4位,整數(shù) 7位,還有一位符號(hào)位。 第 14 頁(yè) ( 三 )無(wú)線通信模塊 RF24L01 軟件設(shè)計(jì) 初 始 化 配 置 為發(fā) 送 模 式裝 載 接 收 端 地 址裝 載 接 收 端 數(shù) 據(jù)配 置 發(fā) 送 設(shè) 置 寄 存器CE置 高 , 激 發(fā) 數(shù) 據(jù)發(fā) 送 圖 45 NRF24L01 發(fā)送程序流程圖 RF24L01走 的是標(biāo)準(zhǔn)的 SPI協(xié)議 ,操作是按照 SPI協(xié)議 的標(biāo)準(zhǔn)讀寫(xiě)數(shù)據(jù) 。如圖 45所示,發(fā)射數(shù)據(jù)時(shí),首先將 nRF24L01配置為發(fā)射模式:接著把接收節(jié)點(diǎn)地址 TX_ADDRESS和有效數(shù)據(jù) TX_PLOAD按照時(shí)序由 SPI口寫(xiě)入 nRF24L01緩存區(qū),然后CE置為高電平并保持至少 10μ s,延遲 130μ s后發(fā)射數(shù)據(jù) 。若自動(dòng)應(yīng)答開(kāi)啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(hào)(自動(dòng)應(yīng)答接收地址應(yīng)該與接收節(jié)點(diǎn)地址 TX_ADDRESS一致)。如果收到應(yīng)答,則認(rèn)為此次通信成功, TX_DS 第 15 頁(yè) 置高,同時(shí) TX_PLOAD從 TX FIFO中清除 。若發(fā)送堆棧中無(wú)數(shù)據(jù)且 CE為高,則進(jìn)入空閑模式。 以下 是 發(fā)送 子程序 : //***************NRF24L01 初始化 void init_NRF24L01(void) { inerDelay_us(100)。 CE=0。 // chip enable CSN=1。 // Spi disable SCK=0。 // Spi clock line init high SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH)。 // 寫(xiě)本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH)。 // 寫(xiě)接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01)。 // 頻道 0自動(dòng) ACK應(yīng)答允許 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01)。 // 允許接收地址只有頻道 0,如果需要多頻道可以參考 Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0)。 // 設(shè)置信道工作為,收發(fā)必須一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH)。 //設(shè)置接收數(shù)據(jù)長(zhǎng)度,本次設(shè)置為 4 字節(jié) SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07)。 //設(shè)置發(fā)射速率為1Mkbps,發(fā)射功率為最大值 0dB } /*函數(shù): void nRF24L01_TxPacket(unsigned char * tx_buf) /*功能:發(fā)送 tx_buf中數(shù)據(jù) void nRF24L01_TxPacket(unsigned char * tx_buf) { CE=0。 //StandBy I 模式 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)。 // 裝載接收端地址 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH)。 // 裝載數(shù)據(jù) 第 16 頁(yè) SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e)。 // IRQ 收發(fā)完成中斷響應(yīng), 16 位 CRC,主發(fā)送 CE=1。 //置高 CE,激發(fā)數(shù)據(jù)發(fā)送 inerDelay_us(10)。 } 初 始 化 配 置接 收 模 式循 環(huán) 判 斷 數(shù) 據(jù) 接 收狀 況將 接 收 數(shù) 據(jù) 讀 取 至緩 存 中接 收 后RX_DR,TX_DS,MAX_PT都 置 高 為 1, 并清 除 中 斷 標(biāo) 志 圖 46 RF24L01 接收程序流程圖 如圖 46所示,接收數(shù)據(jù)時(shí) ,首先將 nRF24L01 配置為接收模式,接著延遲 130μ s 進(jìn)入接收狀態(tài)等待數(shù)據(jù)的到來(lái)。當(dāng)接收方檢測(cè)到有效的地址和 CRC 時(shí),就將數(shù)據(jù)包存儲(chǔ)在 RX FIFO 中,同時(shí)中斷標(biāo)志位 RX_DR 置高, IRQ 變低,產(chǎn)生中斷,通知 MCU 去取數(shù)據(jù)。若此時(shí)自動(dòng)應(yīng)答開(kāi)啟,接收方則同時(shí)進(jìn)入發(fā)射狀態(tài)回傳應(yīng)答信號(hào)。最后接收成功時(shí),若 CE 變低,則 nRF24L01 進(jìn)入空閑模式。以下 是 接收 函數(shù): /*函數(shù): unsigned char nRF24L01_RxPacket(unsigned char* rx_buf) /*功能:數(shù)據(jù)讀取后放如 rx_buf接收緩沖區(qū)中 unsigned char nRF24L01_RxPacket(unsigned char* rx_buf) 第 17 頁(yè) { unsigned char revale=0。 sta=SPI_Read(STATUS)。 // 讀取狀態(tài)寄存其來(lái)判斷數(shù)據(jù)接收狀況 if(RX_DR) // 判斷是否接收到數(shù)據(jù) { CE = 0。 SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH)。// read receive payload from RX_FIFO buffer revale =1。 //讀取數(shù)據(jù)完成標(biāo)志 } SPI_RW_Reg(WRITE_REG+STATUS,sta)。 //接收到數(shù)據(jù)后RX_DR,TX_DS,MAX_PT 都置高為 1,通過(guò)寫(xiě) 1 來(lái)其清除中斷標(biāo)志 return revale。 } (四) 上位機(jī) 部分軟件設(shè)計(jì) 上位機(jī)采用 C語(yǔ)言編寫(xiě),流程如下: 圖 47 上位機(jī)顯示 程序流程 串口收到數(shù)據(jù) 校驗(yàn)收的數(shù)據(jù) 分析數(shù)據(jù)是哪個(gè)采樣點(diǎn)的 分別顯示 第 18 頁(yè) 結(jié) 論 畢業(yè)設(shè)計(jì)是本專業(yè)教學(xué)中最后一個(gè)重要的實(shí)踐性教學(xué)環(huán)節(jié),是我們從學(xué)校走向工作崗位必要的過(guò)渡階段。對(duì)我個(gè)人而言,畢業(yè)設(shè)計(jì)是我大學(xué)四年學(xué)習(xí)的總結(jié)與檢驗(yàn),是大學(xué)四年所學(xué)知識(shí)的綜合運(yùn)用的體現(xiàn)。此次畢業(yè)設(shè)計(jì)鞏固了我所學(xué)理論,增強(qiáng)了理論聯(lián)系實(shí)際的能力,更是為以后的工作打下了更堅(jiān)實(shí)的基礎(chǔ)。 本次畢業(yè)設(shè)計(jì)采用單片機(jī) STM8S003F3P6 為控制器,用溫 濕 度傳感器DHT11 來(lái)檢測(cè)室內(nèi)溫 濕 度 ,用 NRF24L01 來(lái)傳輸數(shù)據(jù), 用 C上位機(jī) 來(lái)實(shí)時(shí)顯示當(dāng)前的 溫濕度 。調(diào)試結(jié)果表明系統(tǒng)能夠達(dá)到預(yù)定目標(biāo)。 第 19 頁(yè) 致 謝 本論文是在 XX 導(dǎo)師的悉心指導(dǎo)之下完成的,四年來(lái),導(dǎo)師淵博的專業(yè)知識(shí),嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),誨人不倦的高尚師德,樸實(shí)無(wú)華、平易近人的人格魅力對(duì)我影響深遠(yuǎn)。本論文從選題到完成,幾易其稿,每一步都是在導(dǎo)師的指導(dǎo)下完成的,傾注了導(dǎo)師大量的心血,在此我向我的導(dǎo)師表示深切的謝意與祝福!同時(shí)我還得感謝做畢業(yè)設(shè)計(jì)以來(lái)一直幫助我的同學(xué)和朋友,因?yàn)橹叭硇臏?zhǔn)備考研,在專業(yè)技能的訓(xùn)練和提升上我都有比較大的欠缺,因而這次畢業(yè)設(shè)計(jì)對(duì)我來(lái)說(shuō)就是重新學(xué)習(xí)和應(yīng)用單片機(jī)的知識(shí),使用單片機(jī) 來(lái)做些簡(jiǎn)單的應(yīng)用系統(tǒng)設(shè)計(jì)。作為新手我當(dāng)然少不了遇到這樣或那樣的問(wèn)題,無(wú)論是硬件焊接、硬件調(diào)試,還是軟件的調(diào)試,在我查資料或多次調(diào)試都未能理解相關(guān)知識(shí)或者有效解決問(wèn)題時(shí),我都能及時(shí)得到同學(xué) 們 的幫助。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1