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

正文內(nèi)容

基于nrf905的溫室溫度測控系統(tǒng)研究_本科畢業(yè)論文-資料下載頁

2025-07-01 14:33本頁面

【導(dǎo)讀】有線傳輸系統(tǒng)的可靠性和抗干擾性能差,限制了農(nóng)業(yè)機器人等移動作業(yè)設(shè)施的使。用以及溫室設(shè)施的更新。說,溫度是影響作物生長發(fā)育最重要的因素。電纜的鋪設(shè),以達(dá)到便捷地對溫室溫度自動監(jiān)測,靈活地對溫室執(zhí)行機構(gòu)的自動控制,本論文研究了基于nRF905的溫室溫度測控系統(tǒng)的硬件和軟件設(shè)計。系統(tǒng)通用性強,可用于果蔬儲藏保鮮、畜舍、冷庫、糧庫、生產(chǎn)車間等環(huán)境控制領(lǐng)域。

  

【正文】 yte_Temp()。 //two byte pose a int variable //兩字節(jié)合成一個整型變量 // temp=b。 temp=8。 temp=temp|a。 if(b==0xff) { temp=~temp+1。 } //得到真實十進(jìn)制溫度值,因為 DQ18B20 tt=temp*。 //可 以精確到 度,所以讀回數(shù)據(jù)的最低位代表的是 // 度。 //放大十倍,這樣做的目的將小數(shù)點后第一位 temp=tt*10+。 //也轉(zhuǎn)換為可顯示數(shù)字,同時進(jìn)行一個四舍五入操作。 //返回溫度值 return temp。 } /******************************************************************/ //溫度顯示函數(shù) void DisplayTemperture(uint temp) { P0=Code[temp/100%10]。 BCD4 = 0。 DS18B20_mDelay(10)。 BCD4 = 1。 P0 = Code[temp/10%10] amp。 0x7f。 BCD3 = 0。 DS18B20_mDelay(10)。 BCD3 = 1。 P0 = Code[temp%10]。 BCD2 = 0。 DS18B20_mDelay(10)。 BCD2 = 1。 P0 = C。 BCD1 = 0。 DS18B20_mDelay(10)。 BCD1 = 1。 } 附錄 2: nRF905 接收和發(fā)送程序清單 /**************************************** //DS18B20 溫度傳感器 // ****************************************/ /*****************************************************/ //包含頭文件 include inc/ bdata unsigned char DATA_BUF。 define DATA7 ((DATA_BUFamp。BYTE_BIT7) != 0) define DATA0 ((DATA_BUFamp。BYTE_BIT0) != 0) sbit flag =DATA_BUF^7。 sbit flag1 =DATA_BUF^0。 code nRF905_TxAddress[4]={0xcc,0xcc,0xcc,0x00}。 unsigned char nRF905_TxRxBuf[nRF905_TxRxBuf_Len] = {0x00,0x01,0x02,0x03}。 //nRF905 寄存器配置 // unsigned char idata RFConf[11]= { 0x00, //配置命令 // 0x4c, //CH_NO,配置頻段在 423MHZ 0x0C, //輸出功率為 10db,不重發(fā),節(jié)電為正常模式 0x44, //地址寬度設(shè)置,為 4 字節(jié) 0x04,0x04, //接收發(fā)送有效數(shù)據(jù)長度為 32 字節(jié) 0xCC,0xCC,0xCC,0x00, //接收地址 0x58, //CRC 充許, 8 位 CRC 校驗,外部時鐘信號不使能, 16M 晶振 }。 //延時 // void delay(uchar n) { uint i。 while(n) for(i=0。i80。i++)。 } //SPI 寫函數(shù) // void SpiWrite(unsigned char send) { unsigned char i。 DATA_BUF=send。 for (i=0。i8。i++) { if (DATA7) //總是發(fā)送最高位 { MOSI=1。 } else { MOSI=0。 } SCK=1。 DATA_BUF=DATA_BUF1。 SCK=0。 } } //SPI讀 1字節(jié)函數(shù) // unsigned char SpiRead(void) { unsigned char j。 for (j=0。j8。j++) { DATA_BUF=DATA_BUF1。 SCK=1。 if (MISO) //讀 取最高位,保存至最末尾,通過左移位完成整個字節(jié) { DATA_BUF|=BYTE_BIT0。 } else { DATA_BUFamp。=~BYTE_BIT0。 } SCK=0。 } return DATA_BUF。 } //初始化 nRF905 狀態(tài) // void nRF905_Init(void) { CSN=1。 // Spi disable SCK=0。 // Spi clock line init low DR=1。 // Init DR for input AM=1。 // Init AM for input CD=1。 // Init CD for input PWR=1。 // nRF905 power on TRX_CE=0。 // Set nRF905 in standby mode TXEN=0。 // set radio in Rx mode } //\nRF905 初始化寄存器 // void nRF905_Config(void) { uchar i。 CSN=0。 // Spi enable for write a spi mand //SpiWrite(WC)。 // Write config mand 寫放配置命 令 for (i=0。i11。i++) // Write configration words 寫放配置字 { SpiWrite(RFConf[i])。 } CSN=1。 // Disable Spi } //設(shè)置發(fā)送模式 // void nRF905_SetTxMode(void) { TRX_CE=0。 TXEN=1。 delay(1)。 // delay1 for mode change(=650us) } //設(shè)置接收狀態(tài) // void nRF905_SetRxMode(void) { TXEN=0。 TRX_CE=1。 delay(1)。 // delay for mode change(=650us) //delay(20)。//GGG } unsigned char nRF905_CheckCD(void) //Pin檢查是否已存在 同頻率載波 { if (CD==1) { return 1。 } else { return 0。 } } //判斷是否接收數(shù)據(jù) // unsigned char nRF905_CheckDR(void) //檢查是否有新數(shù)據(jù)傳入 Data Ready { DR=1。 //通過對端口寫 1,可以使端口為輸入狀態(tài),這 51 的 特性。不熟悉者可以參閱 51 相關(guān)書籍作證 (將 DR 端口設(shè)置為輸入狀態(tài)。 ) if (DR==1) { DR=0。 return 1。 } else { return 0。 } } //打包待發(fā)送的數(shù)據(jù) // void nRF905_nRF905_TxPacket(void) { uchar i。 CSN=0。 SpiWrite(WTP)。 // Write payload mand for (i=0。i4。i++) { SpiWrite(nRF905_TxRxBuf[i])。 // Write 32 bytes nRF905_Tx data }// Spi enable for write a spi mand CSN=1。 delay(1)。 // Spi disable CSN=0。 // Spi enable for write a spi mand SpiWrite(WTA)。 // Write address mand for (i=0。i4。i++) // Write 4 bytes address { SpiWrite(nRF905_TxAddress[i])。 } CSN=1。 // Spi disable TRX_CE=1。 // Set TRX_CE high,start nRF905_Tx data transmission delay(1)。 // while (DR!=1)。 TRX_CE=0。 // Set TRX_CE low } //數(shù)據(jù)發(fā)送 // void nRF905_Tx(void) { nRF905_SetTxMode()。// Set nRF905 in nRF905_Tx mode nRF905_nRF905_TxPacket()。// Send data by nRF905 } //讀取接收緩沖區(qū)數(shù)據(jù) // void nRF905_RxPacket(void) //讀數(shù)據(jù) { uchar i。 delay(1)。 //TRX_CE=0。 // Set nRF905 in standby mode TRX_CE=0。 CSN=0。 // Spi enable for write a spi mand delay
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1