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

正文內(nèi)容

基于nrf24l01的多點溫度采集系統(tǒng)設計-文庫吧在線文庫

2024-12-30 20:26上一頁面

下一頁面
  

【正文】 2 頁 共 40 頁 3 軟件設計 系統(tǒng)概述 系統(tǒng)包括軟件和硬件,硬件已經(jīng)在以上的內(nèi)容介紹完了,下面開始介紹軟件。系統(tǒng)上電, nRF24L01 無線模塊采用的是 穩(wěn)壓電源,其它芯片直接用 5V。每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需要啟動讀指令完成數(shù)據(jù)接受。 DS18B20 寫“ 0”時序和寫“ 1”時序的要求不同,當要寫“ 0”時,單總線要被拉低至少 60us,以保證DS18B20 熊貓在 15~45us 同正確采樣 I/O 線上的“ 0”電平。 //拉低總線 delay1(80)。_nop_()。 DQ=valueamp。_nop_()。 DQ=1。 DS18B20 中的溫度傳感器可完成對溫度的測量,當溫度轉(zhuǎn)換命令發(fā)布后,轉(zhuǎn)換后的溫度以補碼形式存放在調(diào)整暫存存儲器的第 0 和第 1個字節(jié)中。比如測到的是 0x02,通過 2*=,取近似值為 1。需要注意的是,訪問 NRF24L01 之前首先要 enable 芯片 ( CSN=0; ),訪問完了以后再 disable 芯片( CSN=1;)。 void SetRX_Mode()函數(shù)則是用來設置本塊無線通信模塊為發(fā)射模塊,里面包含了自己的本地地址,這個地址是它與其它模塊區(qū)分的標志。 //延時 5ms write_(0x38)。根據(jù)這個格式可以進行對 LCD1602 寫指令 進行編程。i++) { write_data(tab_temp[i])。 第 19 頁 共 40 頁 write_data(39。經(jīng)過實踐得出本系統(tǒng)可以接收到 100 米之內(nèi)的數(shù)據(jù),并且可以正常顯示和正常報警。 由此可見,報警系統(tǒng)可以正常工作。 //控制寫數(shù)據(jù)或命令 sbit LCD1602_EN = P3^4。 define TX_ADR_WIDTH 5 // 5 uints TX address width define RX_ADR_WIDTH 5 // 5 uints RX address width define TX_PLOAD_WIDTH 20 // 20 uints TX payload define RX_PLOAD_WIDTH 20 // 20 uints TX payload uchar idata RxBuf1[20]={0}。 js。bit_ctr++) // output 8bit { MOSI = (uchar amp。 // ..then set SCK low again } return(uchar)。 CSN = 0。 CSN = 0。 // Spi disable SCK=0。 // CSN = 1。 // 設置信道工作為 ,收發(fā)必須一致 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07)。 //允許接收地址只有頻道 1 SPI_RW_Reg(WRITE_REG + RX_PW_P1, RX_PLOAD_WIDTH)。 // 讀取狀態(tài)寄存其來判斷數(shù)據(jù)接收狀況 if(RX_DR) // 判斷是否接收到數(shù)據(jù) 第 29 頁 共 40 頁 { CE = 0。 } unsigned char nRF24L01_RxPacket1(unsigned char* rx_buf) { unsigned char revale=0。 CSN=1。 } //***********************************************LCD1602 顯示 void write_(uchar ) //LCD 寫指令函數(shù) { LCD1602_RS = 0。 //0 寫指令 ,1 寫數(shù)據(jù) LCD1602_EN = 0。 //寫指令 0x38 delay_50us(100)。 //寫指令 0x06,顯示光標移動設置 write_(0x0c)。 //0x30 的 10 進制表示為 48,即 ASCII 碼字符 0 write_data(0x30+RxBuf1[2])。C39。 write_data(0x30+aa[3])。 write_data(39。 while(1) { SetRX_Mode1()。 nRF24L01_RxPacket(RxBuf1)。 uchar table[7]={0}。 sbit DQ=P1^3 。 is。 //延時 1us 第 34 頁 共 40 頁 } /*NRF24L01 初始化 void init_NRF24L01(void) { inerDelay_us(100)。// 設置信道工作為 ,收發(fā)必須一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH)。uchar39。 // CSN low, initialize SPI munication... SPI_RW(reg)。 // ..and write value to it.. CSN = 1。 // CSN = 1。 // Set CSN low, init SPI tranaction status = SPI_RW(reg)。 // return register value } /*功能: NRF24L01 讀寫寄存器函數(shù) , uint SPI_RW_Reg(uchar reg, uchar value) { uint status。 // capture current MISO bit SCK = 0。bit_ctr8。 // Spi clock line init high SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH)。 i++)。 sbit MAX_RT =sta^4。 sbit SCK =P2^4。 //關閉蜂鳴器 disdignit1() 。 //打開蜂鳴器 else BELL=0。 init_NRF24L01()。.39。 //LCD1602 顯示行 for(i=0。)。i6。 //寫指令 0x38 write_(0x38)。 delay_50us(20)。 LCD1602_EN = 1。t0。// read receive payload from RX_FIFO buffer revale =1。 //接收到數(shù)據(jù)后 RX_DR,TX_DS,MAX_PT 都置高為 1,通過寫 1來其清除中斷標志 CSN=0。 // IRQ 收發(fā)完成中斷響應, 16位 CRC ,主接收 CE = 1。 } void SetRX_Mode1() { CE=0。 // 寫接收端地址 第 28 頁 共 40 頁 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01)。 // Set CSN low, init SPI tranaction status = SPI_RW(reg)。 // CSN high, terminate SPI munication return(reg_val)。 uchar_ctr++) // SPI_RW(*pBuf++)。 // select register SPI_RW(value)。, MSB to MOSI uchar = (uchar 1)。n) _nop_()。//接收地址 void Delay(int s) //延時函 數(shù) { int i,j。 sbit SCK =P2^4。 typedef unsigned char uint。 1602 液晶第一行 和第二行 分別 顯示的 是第二塊和第二塊采集板發(fā)射過來的溫度。顯示函數(shù)里的 RxBuf[2]、 RxBuf[1]、 RxBuf[0]分別代表接收到的溫度的十位、個位、小數(shù)位。.39。 ( 4) LCD1602 顯示函數(shù)程序設計 程序如下: void disdignit(uchar *y) { uchar i。 //寫指令 0x01,顯示清屏 write_(0x06)。 //延時 15ms write_(0x38)?;舅悸肪褪峭ㄟ^ READ_REG 命令把數(shù)據(jù)從接收 FIFO( RD_RX_PLOAD)中讀出并存到數(shù)組里面去。(從 SCK 被初始化為低電平可以判斷出)。整 數(shù)部分的“ table[6]=((temp_data[0]amp。_nop_()。 _nop_()。 低位在前,右移 第 15 頁 共 40 頁 } ( 3) DS18B20 讀時序程序設計 讀時序圖如圖 示。_nop_()。 //讀 DS18B20 反饋信號 ( 2) DS18B20 寫時序程序設計 寫時序圖如圖 所示。 第 14 頁 共 40 頁 圖 DS18B20 初始化復位時序 主要 程序如下: DQ=1。 讀時序分為讀“ 0”時序和讀“ 1”時序兩個過程。在此同時,調(diào)用報警函數(shù),一旦接收到的溫度超過設定的上限溫度之后蜂鳴器會一直鳴叫進行溫度警報。首先上電,其中無線通信模塊用 穩(wěn)壓電源,然后溫度采集模塊 DS18B20 初始化,進行溫度檢測以及數(shù)據(jù)存放。 XTAL2: 片內(nèi)振蕩器反相放大器的輸出端。 PSEN: 外部程序存儲器的選通信號,低電平有效。在 FLASH 編程期間,此引腳用于輸入編程脈沖。讀端口時實際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過某種運算或變換后再寫回到端口鎖存器。 /INT0(外部中斷 0) 。 P2口當用于外部程序存儲器或 16位地址外部數(shù)據(jù)存儲器進行存取時,P2 口輸出地址的高八位。 P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù) /地址的低八位。空閑模式下, CPU 停止工作,允許 RAM、定時器 /計數(shù)器、串口、中斷繼續(xù)工 作。 表 LCD1602 模塊引腳 本設計所使用的 LCD1602 原理圖見圖 。 接收數(shù)據(jù)時 ,首先將 nRF24L01 配置為接收模式,接著延遲 130μ s 進入接收狀態(tài)等待數(shù)據(jù)的到來。 圖 nRF24l01 無線收發(fā)電路 發(fā)射數(shù)據(jù)時,首先將 nRF24L01 配置為發(fā)射模式:接著把接收節(jié)點地址 TX_ADDR 和有效數(shù)據(jù) TX_PLD 按照時序由 SPI 口寫入 nRF24L01 緩存區(qū), TX_PLD 必須在 CSN 為低時連續(xù)寫入,而 TX_ADDR 在發(fā)射時寫入一次即可,然后 CE 置為高電平并保持至少 10μ s,延遲130μ s 后發(fā)射數(shù)據(jù) 。 IRQ:中斷信號。 NORDIC 公司提供通信模塊的 GERBER 文件,可以直接加工生產(chǎn)。封裝后的 DS18B20 可用于電纜溝測溫,高爐水循環(huán)測溫,鍋爐測溫,機房測溫,農(nóng)業(yè)大棚測溫,潔凈室測溫,彈藥庫測溫等各種非極限溫度場合。 穩(wěn)壓電路的作用是當輸入電壓波動及其它外界因素變化 時,還可以穩(wěn)定輸出直流電壓。本方案應用這一溫度芯片,也是順應這一趨勢。因此溫度測控技術是一個很實用、也很重要的技術,值得去研究掌握。這時就要采用無線方式對溫度數(shù)據(jù)進行采集。 第 2 頁 共 3 頁 Abstract Along with the development of the technology of information field, we had also made a lot of progress in data collection technology, the data gathering information is the main development direction of the society. Various fields also use the data collection, such as petroleum exploration, seismic data acquisition field. Along with increasingly demanding of the industry and agriculture production to the te
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1