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

正文內(nèi)容

溫室環(huán)境監(jiān)測系統(tǒng)設計畢業(yè)論文(編輯修改稿)

2024-07-25 19:34 本頁面
 

【文章內(nèi)容簡介】 白色字體。液晶顯示器LCD1602與單片機STC89C52的接口由一組8位數(shù)據(jù)傳輸線和3跟控制線完成。LCD1602的RS、RW、數(shù)據(jù)輸入口DB0~~,因為是接在P0口,所以要接上拉電阻。LCD1602與單片機的接口電路如圖: LCD1602與單片機的接口電路 nRF24L01與單片機接口電路 nRF24L01簡介 nRF24L01是NORDIC公司生產(chǎn)的一款無線通信芯片,采用FSK調(diào)制,內(nèi)部集成NORDIC自己的Enhanced Short Burst協(xié)議??梢詫崿F(xiàn)點對點或是 1對6的無線通信。無線通信速度可以達到2M(bps)。,支持6路通道的數(shù)據(jù)接收,2Mbps高速率,125頻點,滿足多點通信和調(diào)頻通信的需要,內(nèi)置 ,體積小巧,工作在應答模式通信時,快速的空中傳輸及啟動時間,極大的降低了電流消耗。以下為NRF24L01模塊的基本特性: NRF24L01模塊的基本特性參數(shù)數(shù)值單位供電電壓 ? V最大發(fā)射功率0dBm最大數(shù)據(jù)傳輸率2000kbps發(fā)射模式下,電流消耗(0dBm)mA接收模式下,電流消耗(2000kbps)mA溫度范圍40 ? +85℃數(shù)據(jù)傳輸率為1000kbps下的靈敏度85dBm掉電模式下的電流消耗900nAnRF24L01有四種工作模式: 收發(fā)模式,配置模式,空閑模式和關機模式。收發(fā)模式有Enhanced ShockBurst收發(fā)模式、ShockBurst TM收發(fā)模式和直接收發(fā)模式三種,收發(fā)模式由器件配置字決定??臻e模式是為了減小平均工作電流而設計,其最大優(yōu)點是實現(xiàn)節(jié)能的同時,縮短芯片啟動時間,在空閑模式下,部分片內(nèi)晶振仍在工作,此時的工作電流跟外部晶振頻率有關。關機模式下,為了得到最小的工作電流,一般此時的工作電流為900nA左右,關機模式下,配置字的內(nèi)容也會被保持在 NRF24L01片內(nèi),這是該模式與斷電狀態(tài)最大的區(qū)別。 NRF24L01工作原理發(fā)射數(shù)據(jù)時,首先將nRF24L01配置成發(fā)射模式,接著把接收節(jié)點地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時序由SPI口寫入nRF24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后CE置為高電平并保持至少10us,延遲130us后發(fā)射數(shù)據(jù),若自動應答開啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進入接收模式,接收應答信號。如果收到應答,則認為此次通信成功,TX_DS置高 ,同時TX_PLD從TX FIFO中清除,若未收到應答 ,則自動重新發(fā)射該數(shù)據(jù),若重發(fā)次數(shù)達到上限 ,MAX_RT置高,TX FIFO中數(shù)據(jù)保留以便再次重發(fā),MAX_RT或TX_DS置高時,使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時,若CE為低則nRF24L01進入空閑模式1,若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進入下一次發(fā)射,若發(fā)送堆棧中無數(shù)據(jù)且CE為高,則進入空閑模式2。接收數(shù)據(jù)時,首先將nRF24L01配置為接收模式,接著延時130us進入接收狀態(tài)等待數(shù)據(jù)的到來。當接收方檢測到有效的地址和 CRC時,就將數(shù)據(jù)包存儲在RX FIFO中,同時中斷標志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù)。若此時自動應答開啟,接收方則同時進入發(fā)射狀態(tài)回傳應答信號。最后接收成功時,若CE變低,則nRF24L01進入空閑模式1。下圖為 NRF24L01與單片機連接圖: 與單片機接口電路無線模塊nRF24L01的實物圖如圖示: :由于本次采用的是NRF24L01無線模塊,因此就必須采用給無線模塊穩(wěn)壓的一個芯片,AMS1117。AMS1117是一個正向低壓穩(wěn)壓器。AMS1117有兩個版本,固定輸出版本和可調(diào)版本,所以我們采用的是固定輸出版本。AMS1117內(nèi)部集成過熱保護和限流保護,是電池供電和便攜式計算機的最佳選擇。它的特點有以下幾點: (1)、、并且它的精度為%1。 (2)%2。 (3)。三端穩(wěn)壓器有三個管腳器管腳圖:管腳號管腳名稱I/O功能1GND/ADJ/O接地2OUT輸出電壓3IN I輸入工作電壓 ,所以必須用三端穩(wěn)壓管將電壓降低,以保證無線模塊正常工作,下圖為三端穩(wěn)壓管與NRF24L01連接圖: 三端穩(wěn)壓管與NRF24L01連接圖4軟件設計整個軟件部分分為溫濕度的采集和數(shù)據(jù)的無線傳輸。其中溫濕度的采集是由DHT11芯片完成的。而無線傳輸是由無線模塊nRF24L01完成的。 主程序的設計思想是先對系統(tǒng)進行初始化,再通過DHT11讀取溫濕度,通過無線模塊發(fā)送給接收模塊,數(shù)據(jù)經(jīng)單片機處理,交由LCD1602液晶顯示器顯示。下圖為程序設計流程圖: 控制終端設計流程圖 監(jiān)測終端設計流程圖 數(shù)據(jù)采集子程序 數(shù)據(jù)采集部分即指DHT11數(shù)字式溫濕度傳感器采集溫濕度信息的過程,在編寫程序時,首先應該把主控單片機設為輸入模式,待DHT11響應后,讀取數(shù)據(jù)后,再把總線拉低,保證保證DHT11能檢測到起始信號。下圖為數(shù)據(jù)采集子程序流程圖: 數(shù)據(jù)采集子程序流程圖下面是DHT11采集數(shù)據(jù)的子程序:bit init_DTH11(){ bit flag。 uchar num。 DQ=0。 delay1ms(19)。 // 18ms DQ=1。 for(num=0。num10。num++)。 // 2040us for(num=0。num12。num++)。 flag=DQ。 for(num=0。num11。num++)。 //DTH響應80us for(num=0。num24。num++)。 //DTH拉高80us return flag。}uchar DTH11_RD_CHAR(){ uchar byte=0。 uchar num。 uchar num1。 while(DQ==1)。 for(num1=0。num18。num1++) { while(DQ==0)。 byte=1。 //高位在前 for(num=0。DQ==1。num++)。 if(num10) byte|=0x00。 else byte|=0x01。 } return byte。}void DTH11_DUSHU(){ uchar num。 if(init_DTH11()==0) { wendu=DTH11_RD_CHAR()。 //比正常值高7度左右 DTH11_RD_CHAR()。 shidu=DTH11_RD_CHAR()。 DTH11_RD_CHAR()。 DTH11_RD_CHAR()。 for(num=0。num17。num++)。 //最后BIT輸出后拉低總線59us DQ=1。 BELL=0。 delay1ms(1)。 BELL=1。 }} LCD1602是整個系統(tǒng)的人機交互界面,可以將DHT11采集到的溫濕度信息顯示傳達給人們,下圖為液晶顯示子程序流程圖: 液晶顯示子程序流程圖顯示子程序如下所示:void write_(uchar ){ lcdwr=0。 //lcdwr為讀寫控制端,lcdwr=0,這里可不寫 lcdrs=0。 //液晶rs接口為0時,寫指令,rs為1時寫數(shù)據(jù) P0=。 //將要寫的指令賦給P0口, delay(5)。 //由1602讀寫操作時序圖,先將指令賦給P0口,延時后將使能 lcden=1。 // 端lcden置高,再延時一段時間,然后將lcden置低,這樣指令 delay(5)。 // 就寫入到LCD了 lcden=0。}寫數(shù)據(jù)子函數(shù):void write_data(uchar date)//與寫指令類似,這里lcdrs設為1{ lcdrs=1。 P0=date。 delay(5)。 lcden=1。 delay(5)。 lcden=0。} 無線模塊子程序 無線模塊子程序可分為無線發(fā)射和接收子程序,無線發(fā)射子程序把溫濕度傳感器采集到的數(shù)據(jù)發(fā)送到接收模塊,接收模塊把接收到的數(shù)據(jù)交給單片機處理,之后再交由顯示器顯示,無線子程序起到了遠程傳送的作用,省去了布線的麻煩。下圖為無線發(fā)射和接受子程序流程圖: 無線發(fā)送子程序流程圖 無線接收子程序流程圖無線模塊子程序如下:發(fā)送子程序:void TX_Mode(void){ CE=0。 SPI_RW_Reg(FLUSH_TX,0x00)。 SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH)。 // Writes TX_Address to nRF24L01 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)。 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01)。 // Enable :Pipe0 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01)。 // Enable Pipe0 SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x1a)。 // 500us + 86us, 10 retrans...1a SPI_RW_Reg(WRITE_REG + RF_CH, 40)。 // Select RF channel 40 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07)。 // TX_PWR:0dBm, Datarate:1Mbps, LNA:HCURR SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH)。 //設置接收數(shù)據(jù)長度,本次設置為2字節(jié) SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e)。 CE=1。 delay_ms(100)。}void Transmit(unsigned char * tx_buf){ CE=0。 //StandBy I模式 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH)。 // 裝載接收端地址 SPI_RW_Reg(FLUSH_TX,0x00)。 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH)。 // 裝載數(shù)據(jù) SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e)。 // IRQ收發(fā)完成中斷響應,16位CRC,主發(fā)送 CE=1。 //置高CE,激發(fā)數(shù)據(jù)發(fā)送 delay_ms(150)。} 而接收部分程序如下:uchar SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars){ uchar status,uchar_ctr。 CSN = 0。 // Set CSN low, init SPI tranaction status = SPI_RW(reg)。 // Select register to write to and read status uchar for(uchar_ctr=0。uchar_ctruchars。uchar_ctr++) pBuf[uchar_ctr] = SPI_RW(0)。 // CSN = 1。 return(status)。 // return nRF24L01 status uchar}/*函數(shù):unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)unsigned char nRF24L01_RxPacket(unsigned char* rx_buf){ unsigned char revale=0。 sta=SPI_Read(STATU
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1