孟翰文 李昊 柏植
摘要:設計是基于STC89C52微型控制器的無線溫度監(jiān)測系統(tǒng)設計,本設計中使用DS18B20做為溫度采集芯片,NRF24L01無線芯片來實現(xiàn)無線通信。采用按鍵控制的方法進行設置報警閾值溫度的上下限。采用分離模塊化設計,發(fā)送模塊進行溫度測集并通過總線傳輸至單片機,繼而使用無線發(fā)送模塊傳送至接收模塊,再傳輸至單片機最終使用LCD1602液晶進行顯示。本設計的主要功能是進行實時溫度測量且通過無線方式傳輸并最終在屏上顯示,上下限溫度范圍可通過按鍵設定,實測溫度超出溫度范圍則蜂鳴器報警。經(jīng)過實物調(diào)試,可以完成預期的實物調(diào)制功能。
關(guān)鍵詞: STC89C52單片機;無線; 溫度監(jiān)測;告警
1無線溫度監(jiān)測系統(tǒng)整體方案設計
1.1 系統(tǒng)設計要求
本次設計的目的是能夠?qū)崿F(xiàn)實時監(jiān)測環(huán)境的溫度且能實現(xiàn)無線通信并顯示,采用了STC89C52單片機作為核心微型處理器,利用NRF24L01芯片做為無線通信模塊來進行實時通信,并使用DS18B20進行實時環(huán)境的溫度監(jiān)測,本次設計的核心功能如下。
(1)系統(tǒng)中發(fā)送和接受的信息利用無線通信進行傳輸。
(2)系統(tǒng)的相關(guān)環(huán)境的溫度信息通過顯示器件顯示。
(3)系統(tǒng)具備報警功能。
1.2 系統(tǒng)設計方案
本設計采用DS18B20作為溫度模塊的芯片,旨在可以進行快捷的環(huán)境溫度實時監(jiān)測,其溫度傳感器芯片具有組網(wǎng)的功能,且適用于各種環(huán)境下的溫度采集。系統(tǒng)以STC89C52單片機、晶振電路模塊、復位電路模塊、無線模塊及按鍵模塊、報警模塊、液晶顯示模塊、溫度監(jiān)測模塊構(gòu)成;其結(jié)構(gòu)框圖則如圖1所示。
2 無線溫度監(jiān)測系統(tǒng)硬件模塊設計
2.1STC89C52RC單片機最小系統(tǒng)設計
本設計以STC89C52RC為核心控制器,與其他的模塊包括晶振電路模塊、復位電路模塊、復位電路模塊、按鍵模塊、無線模塊、溫度監(jiān)測模塊、報警模塊及液晶顯示模塊共同組成系統(tǒng)的主電路模塊,對發(fā)送到達的溫度信息進行處理并通過1602液晶進行輸出,其可以通過按鍵模塊進行控制,并可以設置監(jiān)測溫度的上下限值。
STC89C52RC單片機最小系統(tǒng)如圖2所示。
2.2溫度監(jiān)測模塊設計
溫度檢測芯片DSB18B20的RAM操作指令,其功能指令通過RAM進行發(fā)送且由9個字節(jié)組成,其中第零和第一字節(jié)是溫度寄存器的高低字節(jié)并且這兩個字節(jié)是只讀狀態(tài)。第二和第三字節(jié)是高溫和低溫報警寄存器。第四個字節(jié)為配置寄存器。通過更改R0、R1的值可以用來設定DS18B20的分辨率,默認設置是12位的分辨率。第五和第六和第七字節(jié)無法寫入,作為保留字節(jié)存在。第八個字節(jié)中保存的是循環(huán)冗余校驗值。
2.4顯示模塊
本次設計中采用的液晶顯示模塊為1602液晶顯示器,通過顯示模塊將接收端所接收到的溫度信息經(jīng)由單片機處理后顯示出來。且按鍵設置界面也由1602進行顯示,進入設置界面之時,光標會在所要修改的數(shù)據(jù)上進行閃爍。可以將3K電阻替換成一個10K的電位器,可以更改1602的顯示對比度。其中VSS和BLK與單片機的VCC相連接,VDD和VL之間串聯(lián)一個3K電阻與BLA接到GND引腳,D0~D7可以連接到單片機的P0口,RS、E端口分別接單片機的P1.0/1.1/1.2引腳。
2.6 無線模塊
NRF24L01芯片的固件設計主要是由其狀態(tài)機的狀態(tài)所決定,其主要設計是由是通過命令和控制線CE引腳、CSN引腳和內(nèi)部中斷IRQ引腳實現(xiàn)的。對于其中的發(fā)射節(jié)點和接收節(jié)點,可以使能ACK和IRQ,通信完成后內(nèi)部IRQ引腳則是會置于低電平狀態(tài)。
3 無線溫度監(jiān)測系統(tǒng)軟件設計
3.1 系統(tǒng)總體軟件設計流程
在軟件設計中,定義單片機對應各個端口,定義各個不同變量,在循環(huán)中調(diào)用1602顯示函數(shù),DS18B20驅(qū)動程序,構(gòu)建時延函數(shù)以及按鍵響應程序。
在發(fā)送端軟件設計流程中,首先要進行模塊初始化將各模塊至于初始狀態(tài),接收到接收端指令后開始讀取溫度模塊數(shù)據(jù),再經(jīng)過無線發(fā)送模塊發(fā)送至接收端,完成后重復該流程。
在接收端軟件設計流程中,首先也是進行模塊初始化,開始發(fā)送和接收信息,成功接收到發(fā)送端信息后單片機讀取顯示模塊進行顯示,與設定的上下限閾值進行對比后選擇是否啟動報警模塊,掃描按鍵后重復流程。
3.2DS18B20軟件設計
DS18B20芯片中有一個單獨的序列號,這個序列號是由64位組成,可以使多個芯片共同在一條總線上使用,方便芯片數(shù)據(jù)處理。如果想使用芯片則需要先進行模塊的初始化,先發(fā)送ROM中的指令,最后發(fā)送操作指令。RAM指令可以認為是功能操作指令,主要是進行溫度轉(zhuǎn)換,RAM中的TH和TL及配置寄存器,將寫入的第二、三、四字節(jié)復制到EEPROM,或者從EEPROM拷回,還可以讀取電源模式。
3.3 NRF24L01軟件設計
設計所選用的NRF24L01芯片通信頻率為2.4GHz是屬于全球開放的ISM頻段,其最大的發(fā)射功率為0dBm,且無需申請許可。芯片內(nèi)集成了有關(guān)于RF協(xié)議的高性能部分,其SPI端口可以利用單片機內(nèi)部的SPI端口或I/O口進行模擬,內(nèi)部有FIFO可以與其他未處理端口連接。
參考文獻
[1]吳曉云,劉萌.紅外遙控定時開關(guān)的設計與實現(xiàn)[J].現(xiàn)代電子技術(shù).2015,(12).
[2]吳文珍,安學海.基于單片機的移動無線溫度監(jiān)控系統(tǒng)設計[J].山東理工大學學報,2021.
[3]江麗麗. 溫度監(jiān)測系統(tǒng)設計與誤差分析研究[D].東北農(nóng)業(yè)大學,2016.
[4]田大軍. 基于STM32無線溫度驗證儀系統(tǒng)的設計[M].電子產(chǎn)品世界,2020,110~111.
[5]鄭州. 多路溫度監(jiān)測預警及控制系統(tǒng)的設計與實現(xiàn)[D].電子科技大學,2015.