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

正文內(nèi)容

基于nrf24l01的多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)-文庫吧資料

2024-11-24 20:26本頁面
  

【正文】 軟件編程 , 傳感器世界, [10] 單線數(shù)字溫度傳感器資料 , 武漢力源電子有限公司, [11] 王琳,商周,王學(xué)偉 .數(shù)據(jù)采集的發(fā)展及應(yīng)用 .電測與儀表, 2020, [12] V. Schmidt, Control, data acquisition, and remote participation for fusion research, Fusion Eng. Des. 81 (2020) 1702– 1712. [13] , FiresignalData acquisition and control system and Design 82(2020)13591364. 第 23 頁 共 40 頁 附 錄 第 24 頁 共 40 頁 ( 1) 接收 部分程序如下: include include define LCDIO P0 //液晶數(shù)據(jù)端口 void disdignit1()。 現(xiàn) 象如圖 所示 ,在 1602 液晶上方的 LED 即報(bào)警指示燈。 從液晶顯示來看, 溫度顯示清晰并且穩(wěn)定 。 圖 溫度采集板 溫度接收顯示板如圖 所示。 溫度采集板如圖 。 第 20 頁 共 40 頁 4 調(diào)試及結(jié)果 本系統(tǒng)實(shí)現(xiàn)的是無線多點(diǎn)溫度采集 ,在兩個(gè)地方檢測溫度,然后 發(fā)射到接收端。加上 0x30 可以讓它轉(zhuǎn)換成 ASCII 碼。 } 在這里需要補(bǔ)充一點(diǎn),在程序的開頭已經(jīng)定義了 tab_temp[6]=” Temp: ” ,在顯示數(shù)字 溫度前注明一下看起來比較嚴(yán)謹(jǐn)。C39。 write_data(0xDF)。)。 write_data(39。 } write_data(0x30+RxBuf[2])。i6。 write_(y)。根據(jù)這個(gè)格式可以進(jìn)行對 LCD1602 寫 數(shù)據(jù) 進(jìn)行編程 。 寫 void write_(uchar )寫指令函數(shù)的時(shí)候要注意使能端拉高或拉低都要進(jìn)行延時(shí)。 圖 LCD1602 寫操作時(shí)序圖 LCD1602 的寫指令基本操作時(shí)序?yàn)椋?RS=L,RW=L,D0~D7=指令碼, E=高脈沖。 //寫指令 0x06,顯示光標(biāo)移動設(shè)置 write_(0x0c)。 //寫指令 0x08,顯示關(guān)閉 write_(0x01)。 //寫指令 0x38 write_(0x38)。 //寫指令 0x38 delay_50us(100)。 //寫指令 0x38 delay_50us(100)。 主要 程序如下: delay_50us(300)。 ( 8) nRF24L01 接收緩沖區(qū) unsigned char nRF24L01_RxPacket(unsigned char* rx_buf)函數(shù)的功能是數(shù)據(jù)讀取后放如 rx_buf 接收緩沖區(qū)中。 ( 7) nRF24L01 數(shù)據(jù)接收 發(fā)送 配置 第 17 頁 共 40 頁 void SetRX_Mode()函數(shù)是用于設(shè)置為本塊無線通信模塊為接收模塊,里面包含了兩塊采集電路的地址,當(dāng)?shù)刂放鋵Τ晒χ蠓娇山邮諗?shù)據(jù)。 ( 6) nRF24L01 寫數(shù)據(jù) uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars)發(fā)射緩沖區(qū)訪問函數(shù):主要用來把數(shù)組里的數(shù)放到發(fā)射 FIFO 緩沖區(qū)中。 ( 5) nRF24L01 讀數(shù)據(jù) uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars)接收緩沖區(qū)訪問函數(shù):主要用來在接收時(shí)讀 取 FIFO 緩沖區(qū)中的值。 ( 4) nRF24L01 的 SPI 時(shí)序 uchar SPI_Read(uchar reg)讀取寄存器值的函數(shù):基本思路就是通過 READ_REG 命令(也就是 0x00+寄存器地址),把寄存器中的值讀出來。對于函數(shù)來說也就是把 value 值寫到 reg寄存器中。 ( 3) nRF24L01 讀寫寄存器函數(shù) uint SPI_RW_Reg(uchar reg, uchar value)寄存器訪問函數(shù):用來設(shè)置 24L01 的寄存器的值。上升沿讀入,下降沿輸出。 nRF24L01 程序設(shè)計(jì) ( 1) nRf24L01 初始化程序設(shè)計(jì) void init_NRF24L01()是 最基本的函數(shù),完成 GPIO 模擬 SPI 的功能。小數(shù)部分是將測到的數(shù)值再乘以 ,取近似值作為第一小數(shù)位。0xf0)4)|((temp_data[1]amp。分兩部分進(jìn)行操作:整數(shù)和小數(shù)。 DS18B20 溫度值格式表如表 。 } ( 4) DS18B20 讀取溫度及溫度處理 在這一塊程序中編寫了 void read_temp()( 讀取溫度 )和 void work_temp()( 溫度處理 )兩個(gè)函數(shù)。 if(DQ) //是否 1 value1|=0x80。_nop_()。 //釋放總線之后 采樣 _nop_()。_nop_()。_nop_()。 DQ=0。_nop_()。i) { DQ=1。 圖 DS18B20 的讀時(shí)序 主要 程序如下: for(i=8。 value=1。0x01。_nop_()。_nop_()。_nop_()。_nop_()。i) { DQ=1。 圖 DS18B20 的寫時(shí)序 主要 程序如下: for(i=8。 //延時(shí) 60us,等待 temp=DQ。 //延時(shí) 500us,時(shí)序圖上有說明控制器復(fù)位脈沖范圍 DQ=1。 //DQ 復(fù)位,稍微延時(shí) DQ=0。_nop_()。 ( 1) DS18B20 初始化程序設(shè)計(jì) 初始化復(fù)位時(shí)序圖如圖 所示。當(dāng)要寫“ 1”時(shí),單總線被拉低后,要在 15us 內(nèi)釋放單總線。 DS18B20 的寫時(shí)序仍然可分為寫“ 0”時(shí)序和寫“ 1”時(shí)序兩個(gè)過程。 DS18B20 的讀時(shí)序是從主機(jī)把單總線拉低之后在 15us 之內(nèi)釋放單總線,把數(shù)據(jù)傳輸?shù)絾慰偩€上。復(fù)位時(shí)要求 CPU 將數(shù)據(jù)線下拉 500us,然后釋放, DS18B20 收到信號后等待 15~60us 左右,后發(fā)出 60~240us 的低脈沖。數(shù)據(jù)和命令的傳輸都是低位在前。 每一步驟都有嚴(yán)格的時(shí)序要求,所有的時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。當(dāng)溫度降到上限溫度以下時(shí),警報(bào)停止。其中第一塊采集電路板的溫度顯示在 LCD1602 第一行,第二塊采集電路板的溫度顯示在 LCD1602 第二行。系統(tǒng)初始化,檢測是否接 收到發(fā)送模塊發(fā)送過來的數(shù)據(jù)。 圖 發(fā)射電路程序設(shè)計(jì)流程圖 接收電路程序設(shè)計(jì)流程圖如圖 所示。存放成功之后由單片機(jī)控制把數(shù)據(jù)以數(shù)組形式傳輸?shù)?nRF24L01 無線通信模塊進(jìn)行數(shù)據(jù)發(fā)送。下面簡單解釋一下本設(shè)計(jì)的發(fā)射電路工作流程。各個(gè)模塊獨(dú)立工作,但各個(gè)模塊都互相影響。原理如圖 。 警報(bào)電路 本設(shè)計(jì)的警報(bào)電路比較簡單,用了一個(gè)蜂鳴器。 XTAL1: 片內(nèi) 振蕩器反相放大器和時(shí)鐘發(fā)生器的輸入端。注意加密方式 1 時(shí), /EA 第 11 頁 共 40 頁 將內(nèi)部鎖定為 RESET;當(dāng) /EA端保持高電平時(shí),此間內(nèi)部程序存儲器。 EA/VPP: 外部程序存儲器訪問允許。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次 /PSEN 有效。如果微處理器在外部執(zhí)行狀態(tài) ALE 禁止,置 位無效。此時(shí), ALE 只有在執(zhí)行 MOVX, MOVC 指令是 ALE 才起作用。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè) ALE 脈沖。在平時(shí), ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。當(dāng)振蕩器復(fù)位器件時(shí),要保持 RST 腳兩個(gè)機(jī)器周期的高電平時(shí)間。除了 P1 口外P0、 P P3 口都還有其他的功能。只有讀端口時(shí)才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。 I/O 口作為輸入口時(shí)有兩種工作方式,即所謂的讀端口與讀引腳。 /RD(外部數(shù) 據(jù)存儲器的讀選通) 。 T1( T1 定時(shí)器的外部計(jì)數(shù)輸入) 。 /INT1(外部中斷 1) 。 TXD(串行輸出口) 。作為輸入,由于外部下拉為低電平, P3 口將輸出電流( ILL)這是由于上拉的緣故。 P3口: P3口管腳是 8 個(gè)帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4 個(gè) TTL門電流。在給出地址 “1” 時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八 第 10 頁 共 40 頁 位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí), P2 口輸出其特殊功能寄存器的內(nèi)容。這是由于內(nèi)部上拉的緣故。 P2口: P2口為一個(gè)內(nèi)部上拉電阻的 8 位雙向 I/O 口, P2 口 緩沖器可接收,輸出 4 個(gè) TTL 門電流,當(dāng) P2 口被寫 “1” 時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。 P1 口管腳寫入 1 后,被內(nèi)部上拉為高,可用作輸入, P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在 FIASH 編程時(shí), P0口作為原碼輸入口,當(dāng)FIASH 進(jìn)行校驗(yàn)時(shí), P0 輸出原碼,此時(shí) P0 外部必須被拉高。當(dāng) P1口的管腳第一次寫 1 時(shí), 被定義 為高阻 輸入。 GND: 電源地。 第 9 頁 共 40 頁 圖 AT89S52 引腳 下面將對單片機(jī)的引腳進(jìn)行說明。掉電保護(hù)方式下, RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。另外,AT89S52 可降至 0Hz 靜態(tài)邏 輯操作,支持 2 種軟件可選擇節(jié)電模式。在單芯片上,擁有靈巧的 8 位 CPU 和在系統(tǒng) 可編程 Flash,使得 AT89S52 為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。使用 Atmel 公司高密度非易失性存儲器技術(shù)制造,與工 業(yè) 80C51 產(chǎn)品指令和引腳完全兼容。 第 8 頁 共 40 頁 圖 LCD1602 原理圖 單片機(jī)系統(tǒng) 本設(shè)計(jì)使用的是 ATMEL 公司的 AT89S52 單片機(jī)。 字符型液晶顯示模塊引腳和內(nèi)部結(jié)構(gòu) LCD1602 液晶顯示模塊引腳如下表 所示。 第 7 頁 共 40 頁 字符型液晶顯示模塊簡介 LCD1602 液晶外形尺寸如圖 所示。最后接收成功時(shí),若 CE 變低,則nRF24L01 進(jìn)入空閑模式 1。當(dāng)接收方檢測到有效的地址和 CRC 時(shí),就將數(shù)據(jù)包存儲在 RX FIFO 中,同時(shí)中斷標(biāo)志位 RX_DR 置高, IRQ 變低,產(chǎn)生中斷,通知 MCU 去取數(shù)據(jù)。若發(fā)送堆棧中無數(shù)據(jù)且 CE 為高,則進(jìn)入空閑模式 2。最后發(fā)射成功時(shí) ,若 CE 為低則 nRF24L01 進(jìn)入空閑模式 1。若未收到應(yīng)答,則自動重新發(fā)射該數(shù)據(jù) (自動重發(fā)已開啟 ),若重發(fā)次數(shù) (ARC)達(dá)到上限, MAX_RT 置高, TX FIFO 中數(shù)據(jù)保留以便再次重發(fā) 。若自動應(yīng)答開啟,那么 nRF24L01 在發(fā)射數(shù)據(jù)后立即進(jìn)入接收模式,接收應(yīng)答信號(自動應(yīng)答接收地址應(yīng)該與接收節(jié)點(diǎn)地址 TX_ADDR 一致)。由穩(wěn)壓電源電路供電 。 無線模塊應(yīng)用 nRF24l01 無線收發(fā)電路如圖 所示。在 CSN 為低的情況下, CE 協(xié)同 nRF24l01 的 CONFIG 寄存器共同決定 nRF24l01 的狀態(tài)。無線通信過程中 MCU 主要是通過 IRQ 與 nRF24l01 進(jìn)行通信。 MOSI:芯片控制數(shù)據(jù)線。 SCK:芯片控制的時(shí)鐘線( SPI時(shí)鐘)。下面對這幾個(gè)管腳進(jìn)行簡單的分析。嵌入式工程師或是單片機(jī)愛好者只需要為單片機(jī)系統(tǒng)預(yù)留 5個(gè) GPIO, 1 個(gè)中斷輸入引腳,就可以很容易實(shí)現(xiàn)無線通信的功能,非常適合用來為 MCU 系統(tǒng)構(gòu)建無線通信功能。無線通信速度廳以達(dá)到 2M( bps)。 圖 DS18B20 引腳圖 無線傳輸電路 無線模塊組成 nRF24L01 是 NORDIC 公司 最近生產(chǎn)的一款無線通信芯片 ,采用 FSK 調(diào)制 ,內(nèi)部集成NORDIC 自己的 Enhanced Short Burst 協(xié)議。 第 4 頁 共 40 頁 圖 DS18B20 內(nèi)部結(jié)構(gòu) DS18B20 引腳定義: (1)DQ為數(shù)字信號輸入 /輸出端; (2)GND為電源地; (3)VDD 為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。耐磨耐碰,體積小,使用方便,封裝形式多樣,適用于各種狹小空間設(shè)備數(shù)字測溫和控制領(lǐng)域。主要根據(jù)應(yīng)用場合的不同而改變其外觀。 溫度芯片 DS18B20 是 Dallas 公司生
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1