版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 多通道數(shù)據(jù)采集和分析系統(tǒng)研究(下位機(jī))</p><p><b> 摘 要</b></p><p> 隨著現(xiàn)代社會(huì)的進(jìn)步,許多領(lǐng)域都越來(lái)越依賴于電子技術(shù)的發(fā)展。與我們的生活環(huán)境較為密切如溫度、濕度等都可以通過(guò)電子設(shè)備進(jìn)行檢測(cè)與控制。在工農(nóng)業(yè)生產(chǎn)方面對(duì)這些數(shù)值的要求也越來(lái)越高。因此,準(zhǔn)確測(cè)量溫濕度等都變得至關(guān)重要。本系統(tǒng)的設(shè)計(jì)主要針對(duì)辦公室以及倉(cāng)
2、庫(kù)等對(duì)溫濕度要求不是很嚴(yán)格但又與我們的生活緊密相關(guān)的環(huán)境進(jìn)行的。</p><p> 針對(duì)上述環(huán)境空間大且不易逐點(diǎn)移動(dòng)測(cè)量的特點(diǎn),本文提出一種無(wú)線的多點(diǎn)溫濕度采集系統(tǒng)作為解決方案。該系統(tǒng)采用由兩個(gè)低功耗、高性能單片機(jī)AT89S52作為系統(tǒng)核心,同時(shí)控制3路DS18B20溫度模塊及1路DHT11溫濕度模塊對(duì)周圍環(huán)境的溫濕度進(jìn)行檢測(cè),實(shí)時(shí)將采集到的數(shù)據(jù)在LCD1602顯示器上顯示出來(lái),同時(shí)通過(guò)兩個(gè)無(wú)線數(shù)據(jù)通信收發(fā)芯片
3、NRF24L01組成與上位PC機(jī)通信的智能多通道溫濕度采集系統(tǒng)。下位機(jī)與上位機(jī)之間通過(guò)RS232串口模塊進(jìn)行通信,最后在PC機(jī)上完成配置、顯示、畫圖以及實(shí)時(shí)存儲(chǔ)數(shù)據(jù)的功能。該設(shè)計(jì)方案具有測(cè)量精度高,系統(tǒng)功能強(qiáng)大且穩(wěn)定性強(qiáng)等優(yōu)點(diǎn)。</p><p> 本文介紹了基于NRF24L01的短距離多通道無(wú)線溫濕度采集系統(tǒng),著重分析了系統(tǒng)的整體設(shè)計(jì),其中主要包括硬件電路設(shè)計(jì)、軟件設(shè)計(jì)以及通信原理。通過(guò)采用模塊化設(shè)計(jì),使得整個(gè)
4、系統(tǒng)的設(shè)計(jì)思路清晰且易于調(diào)整完善,最終較好的實(shí)現(xiàn)了設(shè)計(jì)所要求的功能。</p><p> 關(guān)鍵詞:多通道數(shù)據(jù)采集,無(wú)線收發(fā),串口通信</p><p> Multi-Channel Data Acquisition and Analysis System </p><p> (Lower Computer)</p><p><b>
5、; Abstract</b></p><p> With the progress of modern society, many areas are increasingly dependent on the development of electronic technology. There are so many parameters which can be detected and c
6、ontrolled by electronic devices and also of great reality with our living environment, such as temperature, humidity and so on. On the other hand, the use of these devices in industrial and agricultural areas is more str
7、ictly. Therefore, how to measure these parameters accurately is become more and more important. Our syst</p><p> Aiming at the space of the measurement environment is the large and difficult to move the dev
8、ice here and there, this paper presents a wireless multi-point temperature and humidity acquisition system. The system consists of two power-saved and high-performance microcontrollers AT89S52 as the core of the system,
9、 contain three channel DS18B20 as temperature control module and one channel DHT11 as humidity module, which achieve to detect the temperature and humidity of surrounding environment. The</p><p> This paper
10、 introduces us a short-range multi-channel wireless temperature and humidity acquisition system based on the NRF24L01 wireless transceiver. Throughout this article, we mainly analyzes the overall system design, which inc
11、ludes hardware design, software design and communication principles. By adopting modular design, making the whole system design clear and easy to adjust and improve, and ultimately is helpful for achieving the required f
12、unctions of the design quite perfect. </p><p> Keywords: Multi-channel Data Acquisition, Wireless Transceiver, Serial Communication 目 錄</p><p><b> 摘要I</b></p><p> A
13、bstractII</p><p><b> 第1章 緒論1</b></p><p> 1.1數(shù)據(jù)采集概述1</p><p> 1.2 數(shù)據(jù)采集的現(xiàn)狀和應(yīng)用情況1</p><p> 1.3 課題指導(dǎo)思想2</p><p> 1.4 課題設(shè)計(jì)任務(wù)和要求2</p>
14、<p> 1.4.1課題的設(shè)計(jì)任務(wù)2</p><p> 1.4.2課題的技術(shù)要求3</p><p> 1.5 論文結(jié)構(gòu)3</p><p> 第2章 系統(tǒng)總體設(shè)計(jì)4</p><p> 2.1系統(tǒng)的工作原理4</p><p> 2.2 系統(tǒng)的總體設(shè)計(jì)方案5</p><p
15、> 2.2.1 系統(tǒng)設(shè)計(jì)原則5</p><p> 2.2.2系統(tǒng)的設(shè)計(jì)方案6</p><p> 2.3 系統(tǒng)硬件電路的器件選擇7</p><p> 2.3.1系統(tǒng)處理器7</p><p> 2.3.2溫濕度模塊7</p><p> 2.3.3顯示模塊7</p><p&g
16、t; 2.3.4無(wú)線通信模塊8</p><p> 2.3.5電平轉(zhuǎn)換芯片8</p><p> 2.4 本章小節(jié)8</p><p> 第3章 系統(tǒng)硬件電路設(shè)計(jì)9</p><p> 3.1系統(tǒng)硬件電路設(shè)計(jì)原則9</p><p> 3.2 系統(tǒng)各部分的硬件電路設(shè)計(jì)9</p><p&
17、gt; 3.3 AT89S52單片機(jī)10</p><p> 3.3.1 AT89S52引腳配置10</p><p> 3.3.2 AT89S5硬件電路圖10</p><p> 3.4 溫濕度模塊11</p><p> 3.4.1 DS18B20溫度傳感器11</p><p> 3.4.2 DHT1
18、1溫濕度傳感器13</p><p> 3.5 LCD液晶顯示模塊14</p><p> 3.5.1 LCD1602接口引腳14</p><p> 3.5.2 LCD電路原理圖15</p><p> 3.6 溫控模塊15</p><p> 3.7 無(wú)線收發(fā)模塊16</p><p&
19、gt; 3.7.1 NRF24L01概述16</p><p> 3.7.2 引腳功能及描述16</p><p> 3.7.3 NRF24L01應(yīng)用原理圖17</p><p> 3.8 電源電路模塊17</p><p> 3.9 串口通信模塊19</p><p> 3.10 本章小結(jié)20</
20、p><p> 第4章 系統(tǒng)軟件設(shè)計(jì)與配置21</p><p> 4.1 系統(tǒng)軟件設(shè)計(jì)要解決的問(wèn)題21</p><p> 4.2 系統(tǒng)軟件模塊化設(shè)計(jì)21</p><p> 4.2.1 溫濕度模塊21</p><p> 4.2.2 LCD液晶顯示模塊22</p><p> 4.2.
21、3無(wú)線收發(fā)模塊25</p><p> 4.2.4串口通信模塊26</p><p> 4.3 本章小結(jié)26</p><p> 第5章 系統(tǒng)調(diào)試與改進(jìn)27</p><p> 5.1 LCD液晶顯示模塊調(diào)試27</p><p> 5.2 溫濕度模塊調(diào)試28</p><p> 5
22、.3 無(wú)線收發(fā)模塊調(diào)試31</p><p> 5.4串口通信模塊調(diào)試32</p><p> 5.5系統(tǒng)改進(jìn)方案33</p><p> 5.5.1 擴(kuò)大傳輸距離的擴(kuò)展設(shè)計(jì)33</p><p> 5.5.2 溫控模塊和顯示模塊的改進(jìn)33</p><p> 5.5.3 采用PCB制板33</p&g
23、t;<p> 5.6 本章小結(jié)34</p><p><b> 結(jié)論35</b></p><p><b> 謝辭36</b></p><p><b> 參考文獻(xiàn)37</b></p><p> 附錄 軟件程序38</p><p
24、><b> 緒論</b></p><p> 1.1 數(shù)據(jù)采集概述</p><p> 數(shù)據(jù)采集,是指從傳感器和其它待測(cè)設(shè)備等模擬和數(shù)字被測(cè)單元中自動(dòng)采集信息的過(guò)程。 數(shù)據(jù)采集系統(tǒng)是結(jié)合基于計(jì)算機(jī)(或微處理器)的測(cè)量軟硬件產(chǎn)品來(lái)實(shí)現(xiàn)靈活的、用戶自定義的測(cè)量系統(tǒng)。根據(jù)使用目的的不同,數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)方式也各不相同。如基于DSP的數(shù)據(jù)采集系統(tǒng)具有極強(qiáng)的數(shù)據(jù)處理功
25、能,能滿足對(duì)信號(hào)的快速采樣及對(duì)采樣數(shù)據(jù)快速處理 浮點(diǎn)數(shù)DSP芯片保證了計(jì)算的快速性和精度;有的系統(tǒng)要求大量的存儲(chǔ)采樣數(shù)據(jù),這就要求外部電路有其他存儲(chǔ)介質(zhì),利用SD卡或計(jì)算機(jī)硬盤作為存儲(chǔ)器,就可以使得單片機(jī)系統(tǒng)下的信息存儲(chǔ)容量遠(yuǎn)遠(yuǎn)大于目前其他可以與單片機(jī)接口的存儲(chǔ)芯片的容量,從而解決了單片機(jī)系統(tǒng)中大容量信息存儲(chǔ)的需求??傊?,數(shù)據(jù)采集系統(tǒng)的實(shí)現(xiàn)方式多種多樣,設(shè)計(jì)者可以根據(jù)不同的使用目的設(shè)計(jì)出滿足自己設(shè)計(jì)需求的數(shù)據(jù)采集系統(tǒng)。</p>
26、;<p> 在計(jì)算機(jī)廣泛應(yīng)用的今天,數(shù)據(jù)采集的在多個(gè)領(lǐng)域有著十分重要的應(yīng)用。它是計(jì)算機(jī)與外部物理世界連接的橋梁。利用串行或紅外通信方式,實(shí)現(xiàn)對(duì)移動(dòng)數(shù)據(jù)采集器的應(yīng)用軟件升級(jí),通過(guò)制訂上位機(jī)(PC)與移動(dòng)數(shù)據(jù)采集器的通信協(xié)議,實(shí)現(xiàn)兩者之間阻塞式通信交互過(guò)程。在工業(yè)、工程、生產(chǎn)車間等部門,尤其是在對(duì)信息實(shí)時(shí)性能要求較高或者惡劣的數(shù)據(jù)采集環(huán)境中更突出其應(yīng)用的必要性。例如:在工業(yè)生產(chǎn)和科學(xué)技術(shù)研究的各行業(yè)中,常常利用PC或工控機(jī)對(duì)
27、各種數(shù)據(jù)進(jìn)行采集。這其中有很多地方需要對(duì)各種數(shù)據(jù)進(jìn)行采集,如液位、溫度、壓力、頻率等?,F(xiàn)在常用的采集方式是通過(guò)數(shù)據(jù)采集板卡,常用的有A/D卡以及232、485等總線板卡。衛(wèi)星數(shù)據(jù)采集系統(tǒng)是利用航天遙測(cè)、遙控、遙監(jiān)等技術(shù),對(duì)航天器遠(yuǎn)地點(diǎn)進(jìn)行各種監(jiān)測(cè),并根據(jù)需求進(jìn)行自動(dòng)采集,經(jīng)過(guò)衛(wèi)星傳輸?shù)綌?shù)據(jù)中心處理后,送給用戶使用的應(yīng)用系統(tǒng)。</p><p> 1.2 數(shù)據(jù)采集的現(xiàn)狀和應(yīng)用情況</p><p&
28、gt; 目前針對(duì)多通道數(shù)據(jù)采集體統(tǒng)的研究主要集中在數(shù)據(jù)傳輸?shù)耐叫?、系統(tǒng)容量及低能耗等特點(diǎn)。有些研究雖然在同步性上有所突破,但在系統(tǒng)容量或者能耗方面仍需改進(jìn),或者在能耗方面取得一定的成就,但系統(tǒng)的精度或分辨率等均達(dá)不到要求。可見(jiàn)本課題在一定的程度上還是有很大發(fā)展空間的。</p><p> 現(xiàn)代數(shù)據(jù)采集系統(tǒng)具有以下幾個(gè)特點(diǎn):</p><p> 現(xiàn)代數(shù)據(jù)采集系統(tǒng)一般都內(nèi)含有計(jì)算機(jī)系統(tǒng),這
29、使得數(shù)據(jù)采集的質(zhì)量和效率等大為提高,同時(shí)顯著節(jié)省了硬件投資;</p><p> 軟件在數(shù)據(jù)采集系統(tǒng)中的作用越來(lái)越大,增加了系統(tǒng)設(shè)計(jì)的靈活性。</p><p> 數(shù)據(jù)采集與數(shù)據(jù)處理相互結(jié)合得日益緊密,形成了數(shù)據(jù)采集與處理相互融合的系統(tǒng),可實(shí)現(xiàn)從數(shù)據(jù)采集、處理到控制的全部工作;</p><p> 速度快,數(shù)據(jù)采集過(guò)程一般都具有“實(shí)時(shí)”的特性。對(duì)于通用數(shù)據(jù)采集系統(tǒng)一
30、般希望有盡可能的速度,以滿足更多的應(yīng)用環(huán)境;</p><p> 隨著微電子技術(shù)的發(fā)展,電子集成度的提高,數(shù)據(jù)采集系統(tǒng)的體積越來(lái)越小,可靠性越來(lái)越高,甚至出現(xiàn)了單片數(shù)據(jù)采集系統(tǒng);</p><p> 總線在數(shù)據(jù)采集系統(tǒng)中的應(yīng)用越來(lái)越廣泛,總線技術(shù)對(duì)數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)的發(fā)展起著重要作用。</p><p> A/D轉(zhuǎn)換器是數(shù)據(jù)采集系統(tǒng)的核心,擔(dān)負(fù)著將模擬信號(hào)變成適合于計(jì)
31、算機(jī)數(shù)字處理的二進(jìn)制代碼的任務(wù)。A/D轉(zhuǎn)換的常用方法有:計(jì)數(shù)式A/D轉(zhuǎn)換,逐次逼近型A/D轉(zhuǎn)換、雙積分式A/D轉(zhuǎn)換、并行A/D轉(zhuǎn)換和串/并行A/D轉(zhuǎn)換等[1]。</p><p> 1.3 課題指導(dǎo)思想</p><p> 學(xué)習(xí)數(shù)據(jù)采集的基本原理和實(shí)現(xiàn)方法,學(xué)習(xí)并了解Protues仿真軟件的基</p><p><b> 本原理和特點(diǎn);</b>
32、</p><p> 根據(jù)實(shí)際情況制作溫濕度采集系統(tǒng)外圍電路;</p><p> 查找資料,制定多通道無(wú)線數(shù)據(jù)采集系統(tǒng)的初步設(shè)計(jì)方案,使用KeilC51</p><p> 開(kāi)發(fā)軟件調(diào)試編譯程序等;</p><p> 學(xué)習(xí)LCD1602控制和顯示的基本原理;</p><p> 學(xué)習(xí)C51語(yǔ)言,實(shí)現(xiàn)利用DS18B2
33、0和DHT11溫濕度采集模塊進(jìn)行數(shù)據(jù)采集</p><p> 的代碼設(shè)計(jì)和軟件仿真;</p><p> 學(xué)習(xí)NRF24L01無(wú)線模塊相關(guān)知識(shí),實(shí)現(xiàn)采集數(shù)據(jù)的收發(fā)功能;</p><p> 測(cè)試數(shù)據(jù)采集系統(tǒng),分析結(jié)果,并且驗(yàn)證采集和顯示的功能,逐步完善系統(tǒng)功能。</p><p> 1.4 課題設(shè)計(jì)任務(wù)和要求</p><p
34、> 1.4.1 課題的設(shè)計(jì)任務(wù)</p><p> 通過(guò)查閱相關(guān)資料完成多通道數(shù)據(jù)采集系統(tǒng)下位機(jī)部分設(shè)計(jì)及其外圍硬件電路。設(shè)計(jì)過(guò)程中,查閱DS18B20、DHT11、LCD1602模塊的工作原理,用KeilC51編寫并調(diào)試系統(tǒng)軟件,同時(shí)采用Protues仿真軟件進(jìn)行仿真。完成這些后,再通過(guò)RS232串口與上位機(jī)進(jìn)行通信。最終實(shí)現(xiàn)溫濕度采集在下位機(jī)的顯示并與上位機(jī)通信的功能。</p><
35、p> 1.4.2 課題的技術(shù)要求</p><p> 自主設(shè)計(jì)和完成多通道無(wú)線數(shù)據(jù)采集系統(tǒng)硬件電路及外圍溫控電路等;</p><p> 通過(guò)C51編寫系統(tǒng)軟件,運(yùn)用KeilC編譯成功并燒寫到系統(tǒng)中;</p><p> 用Protues實(shí)現(xiàn)DS18B20溫度采集和LCD1602液晶顯示兩個(gè)功能模塊;</p><p> 設(shè)計(jì)無(wú)線收發(fā)
36、電路,在無(wú)干擾及遮擋物的情況下,傳輸距離約為20m;</p><p> 最終實(shí)現(xiàn)一個(gè)測(cè)量溫度范圍為-55~+125℃,其中溫度精度為0.5℃,測(cè)量濕度范圍為20~90%RH,濕度精度為±5%RH并可與上位機(jī)通信的多通道無(wú)線溫濕度采集系統(tǒng)。</p><p><b> 1.5 論文結(jié)構(gòu)</b></p><p> 經(jīng)過(guò)前面對(duì)多通道數(shù)據(jù)
37、采集系統(tǒng)相關(guān)情況的介紹,我們不難發(fā)現(xiàn)可以通過(guò)多種方式設(shè)計(jì)出我們需要的系統(tǒng),這里我們選擇一些簡(jiǎn)單實(shí)用且經(jīng)濟(jì)的方案。在本文接下來(lái)的內(nèi)容里,我們將針對(duì)這個(gè)方案進(jìn)行詳盡的闡述,論文的具體結(jié)構(gòu)如下:</p><p> 第1章:簡(jiǎn)要概述課題目前研究的相關(guān)內(nèi)容,系統(tǒng)方案的選擇以及實(shí)現(xiàn)的基本功能;</p><p> 第2章:圍繞系統(tǒng)的總體設(shè)計(jì)方案進(jìn)行展開(kāi),解釋系統(tǒng)的工作原理,著重介紹系統(tǒng)各功能模塊相應(yīng)
38、器件的選擇;</p><p> 第3章:詳細(xì)介紹系統(tǒng)硬件電路的設(shè)計(jì)過(guò)程,說(shuō)明系統(tǒng)硬件電路的設(shè)計(jì)原則,根據(jù)各功能模塊之間的關(guān)系逐一介紹設(shè)計(jì)過(guò)程;</p><p> 第4章:本章詳細(xì)介紹系統(tǒng)軟件的設(shè)計(jì)思想、各個(gè)軟件模塊的軟件框圖以及生成的總系統(tǒng)的情況。</p><p> 第5章:本章包括軟硬件的系統(tǒng)調(diào)試,調(diào)試過(guò)程中使用Protues仿真軟件進(jìn)行系統(tǒng)仿真。針對(duì)仿真過(guò)
39、程中出現(xiàn)的問(wèn)題進(jìn)行結(jié)果分析,并一一解決;</p><p> 第6章:總結(jié)課題的研究?jī)?nèi)容,針對(duì)系統(tǒng)在其它更高要求或者其它不同應(yīng)用的領(lǐng)域中,提出更符合要求的措施。</p><p><b> 系統(tǒng)總體設(shè)計(jì)</b></p><p> 本課題是基于AT89S52單片機(jī)為核心的多通道無(wú)線溫濕度采集系統(tǒng),主要由上位機(jī)和下位機(jī)兩個(gè)部分組成。其中下位機(jī)包含
40、溫濕度采集模塊、LCD液晶顯示模塊、無(wú)線收發(fā)模塊、串口通信模塊以及由電機(jī)組成的溫控模塊。溫濕度模塊由3路DS18B20溫度模塊及1路DHT11溫濕度模塊組成,主要負(fù)責(zé)對(duì)周圍環(huán)境溫度數(shù)據(jù)進(jìn)行采集并通過(guò)單總線傳輸給單片機(jī)進(jìn)行處理;LCD液晶顯示模塊則負(fù)責(zé)把經(jīng)過(guò)單片機(jī)處理過(guò)的數(shù)據(jù)顯示出來(lái),相當(dāng)于一個(gè)用戶界面;無(wú)線收發(fā)模塊由兩個(gè)NRF24L01無(wú)線模塊與單片機(jī)組成,一個(gè)負(fù)責(zé)發(fā)送經(jīng)過(guò)處理的溫濕度數(shù)據(jù),另一個(gè)則負(fù)責(zé)接收并傳給RS232串口通信模塊;
41、串口通信模塊,顧名思義就是經(jīng)由串口負(fù)責(zé)與上位PC機(jī)進(jìn)行通信;溫度控制模塊則由一個(gè)小電機(jī)與5V繼電器構(gòu)成,當(dāng)系統(tǒng)某一路所采集到的數(shù)據(jù)超過(guò)上限值時(shí),單片機(jī)通過(guò)一個(gè)三極管驅(qū)動(dòng)繼電器導(dǎo)通,同時(shí)控制小電機(jī)工作,達(dá)到降溫效果。以上幾部分共同構(gòu)成了本系統(tǒng)的下位機(jī)部分。上位機(jī)部分由C++軟件編寫而成,主要負(fù)責(zé)接收下位發(fā)送上來(lái)的數(shù)據(jù),并進(jìn)行相應(yīng)的配置處理,把接收到的數(shù)據(jù)顯示出來(lái)并根據(jù)需要繪制成圖表。</p><p> 2.1 系
42、統(tǒng)的工作原理</p><p> 按照電路原理圖連接完電路,打開(kāi)開(kāi)關(guān)即可開(kāi)始工作。當(dāng)四路采集電路都配置有相應(yīng)模塊時(shí),MPU接收數(shù)據(jù)置于LCD1602顯示,通過(guò)軟件設(shè)計(jì)可觀察到四路采集電路是否都正常工作、保持溫度在正常范圍以及接收到的數(shù)據(jù)來(lái)自哪路等。同時(shí)根據(jù)接收到的數(shù)據(jù)判斷是否超過(guò)上限值,如果是則通過(guò)三極管驅(qū)動(dòng)繼電器導(dǎo)通,控制小電機(jī)工作,達(dá)到降溫效果,當(dāng)溫度回到正常水平時(shí),繼電器恢復(fù)原先狀態(tài),電機(jī)停止工作。完成顯示
43、及溫度控制后,程序接著運(yùn)行,MPU把溫濕度數(shù)據(jù)寫入與其相連的NRF24L01,并發(fā)送出去。這是負(fù)責(zé)接收的NRF24L01模塊,接收到從機(jī)傳過(guò)來(lái)的數(shù)據(jù),開(kāi)始接收并同步通過(guò)RS232串口通信模塊發(fā)送給上位PC機(jī),PC機(jī)對(duì)下位機(jī)發(fā)過(guò)來(lái)的數(shù)據(jù)進(jìn)行分析,并根據(jù)需要繪制圖表。以上就是整個(gè)系統(tǒng)的工作原理,如圖2-1為整個(gè)系統(tǒng)的流程圖。</p><p> 圖2-1 系統(tǒng)流程圖</p><p> 2.2
44、 系統(tǒng)的總體設(shè)計(jì)原則</p><p> 設(shè)計(jì)系統(tǒng)之前,首先要對(duì)整個(gè)過(guò)程中所要實(shí)現(xiàn)的功能具有清楚的認(rèn)識(shí),才能正確的選擇所需要的元器件,才能正確的進(jìn)行軟件設(shè)計(jì)。</p><p> 2.2.1 系統(tǒng)設(shè)計(jì)原則</p><p> (1)確保功能的完全實(shí)現(xiàn)</p><p> 系統(tǒng)是整個(gè)課題研究的重中之重,系統(tǒng)的設(shè)計(jì)的最終目的就是實(shí)現(xiàn)預(yù)定的功能,一
45、切對(duì)系統(tǒng)的優(yōu)化以及擴(kuò)展,都是基于系統(tǒng)滿足功能的前提下實(shí)現(xiàn)的。</p><p> ?。?)系統(tǒng)結(jié)構(gòu)的合理性</p><p> 系統(tǒng)結(jié)構(gòu)的合理與否,對(duì)結(jié)構(gòu)的可靠性,性價(jià)比等有直接影響。首先是硬件結(jié)構(gòu)的設(shè)計(jì),層次分明,可以減少硬件上面的干擾。軟件功能要合理設(shè)計(jì),盡可能的軟件設(shè)計(jì)代替硬件設(shè)計(jì),能用軟件設(shè)計(jì),就不用硬件電路。</p><p><b> ?。?)抗干
46、擾能力</b></p><p> 抗干擾能力是無(wú)線通信中的重要因素,確保數(shù)據(jù)準(zhǔn)確無(wú)誤的傳輸,排除其它的干擾信號(hào)。從硬件電路的設(shè)計(jì),元器件的布局,軟件的設(shè)計(jì)開(kāi)始,就需要開(kāi)始重視如何避開(kāi)外界的干擾信號(hào)的影響,確保系統(tǒng)的可靠性。</p><p> 2.2.2 系統(tǒng)的設(shè)計(jì)方案</p><p> 系統(tǒng)設(shè)計(jì)過(guò)程中,首先考慮到溫濕度采集的準(zhǔn)確性以及經(jīng)過(guò)MPU處理
47、的溫濕度數(shù)據(jù)在LCD1602 的正常顯示上。系統(tǒng)采用逐一掃描法接收來(lái)自傳感器的數(shù)據(jù),再把采集進(jìn)來(lái)的數(shù)據(jù)一一送到LCD上顯示以及通過(guò)無(wú)線收發(fā)模塊發(fā)送到上位機(jī)上進(jìn)行處理與配置。由于這一特性,就必須考慮到各傳感器工作的時(shí)候是否會(huì)相互影響等問(wèn)題。經(jīng)過(guò)軟件設(shè)計(jì),最終實(shí)現(xiàn)各傳感器的“熱插拔”功能,即各路傳感器獨(dú)立工作,彼此之間不會(huì)互相干擾或相互影響的溫濕度采集模塊。</p><p> 在溫控模塊上,采用HRS4H-S-DC
48、5V繼電器作為控制普通電機(jī)工作的主要器件。但是由于單片機(jī)的輸出功率比較低,輸出電流只有10mA左右,不能驅(qū)動(dòng)繼電器工作,所以選用S8550三極管對(duì)繼電器控制的I/O進(jìn)行功率放大,以使繼電器能夠正常工作,正??刂齐姍C(jī)工作,達(dá)到系統(tǒng)設(shè)計(jì)的基本要求。</p><p> 作為系統(tǒng)支持的NRF24L01無(wú)線收發(fā)模塊的設(shè)計(jì)上亦存在一定的問(wèn)題,如它的工作電壓范圍為1.9~3.6V,而51單片機(jī)的輸出電壓為5V,如果直接用單片
49、機(jī)I/O口驅(qū)動(dòng)該模塊,肯定會(huì)把它燒壞。這就要求我們?cè)谠O(shè)計(jì)一個(gè)可以穩(wěn)定輸出電壓在1.9~3.6V之間的電源模塊。通過(guò)查閱相關(guān)資料,我們選取MIC5205作為穩(wěn)壓模塊,并設(shè)計(jì)相關(guān)穩(wěn)壓電路,最終在輸入為5V的情況下得到一個(gè)電壓值為3.3V的電壓模塊,為后面無(wú)線收發(fā)模塊的正常工作奠定了不可或缺的基礎(chǔ)。</p><p> 關(guān)于整個(gè)多通道無(wú)線溫濕度采集系統(tǒng)的總體設(shè)計(jì)方案,我們就介紹到這。下面我們看下系統(tǒng)的硬件框架圖,如圖2
50、-2所示。</p><p> 圖2-2 系統(tǒng)硬件框架圖</p><p> 2.3 系統(tǒng)硬件電路的器件選擇</p><p> 2.3.1 系統(tǒng)處理器</p><p> 對(duì)本課題的系統(tǒng)來(lái)講,綜合多方面的因素,選擇單片機(jī)更加合適。因此我們選擇最熟悉也是市場(chǎng)上最常用的AT89S52作為核心芯片。一方面考慮到成本問(wèn)題,另一方面也顧及到現(xiàn)在網(wǎng)上很
51、多與課題相關(guān)的資料也都是以AT89S52作為例子的,這樣在參考別人資料的時(shí)候也會(huì)比較容易理解。而且,我們學(xué)習(xí)單片機(jī)的時(shí)候用的就是AT89S52,感覺(jué)會(huì)比較熟悉,這樣學(xué)起來(lái)也不會(huì)有太大難度。綜合以上因素考慮,我們選擇了AT89S52作為整個(gè)系統(tǒng)的核心芯片。</p><p> 2.3.2 溫濕度模塊</p><p> 在溫度采集芯片的選擇上,我們選取了目前市面上最常用的DS18B20單總線
52、測(cè)溫芯片。如果你在網(wǎng)上查閱測(cè)溫相關(guān)的芯片,你一定會(huì)被大量關(guān)于DS18B20的信息所淹沒(méi)。雖然期間有考慮過(guò)使用熱敏電阻,采用電橋法為構(gòu)架組成的模擬測(cè)溫電路,但是由于模擬電路的不穩(wěn)定性以及出現(xiàn)問(wèn)題時(shí),不容易糾錯(cuò)和替換等因素,我們最終決定使用3路DS18B20作為系統(tǒng)的測(cè)溫模塊器件。</p><p> 溫濕度采集模塊器件的選擇上,我們選擇一路DHT11對(duì)溫濕度進(jìn)行采集。方案設(shè)計(jì)過(guò)程中有考慮到SHT11溫濕度采集芯片,
53、雖然精度比較高但成本過(guò)于高昂,另外也有考慮到使用濕敏電容HS1101采用模擬電路作為濕度采集模塊。但數(shù)字式的溫濕度采集模塊可同時(shí)采集系統(tǒng)周圍環(huán)境溫度和濕度,可謂達(dá)到一舉兩得的成效,而且在相同的測(cè)量環(huán)境的情況下,還可以與DS18B20測(cè)溫模塊進(jìn)行測(cè)溫精度比較。所以我們優(yōu)先選擇了DHT11作為溫濕度采集模塊核心器件。</p><p> 2.3.3 顯示模塊</p><p> 目前比較流行的
54、顯示模塊有數(shù)碼管以及LCD液晶顯示模塊。數(shù)碼管一般是七段或者八段的,數(shù)碼管只能簡(jiǎn)單的顯示幾個(gè)數(shù)字,內(nèi)容比較單一,受溫度,電流大小影響比較大,采用的是LED燈的顯示方式,焊接的時(shí)候,如果不小心的話還很容易燒壞。所以本設(shè)計(jì)著重考慮LCD液晶顯示模塊。首先考慮到的是LCD12864,但下位機(jī)部分只負(fù)責(zé)顯示各路采集的溫度數(shù)據(jù),不需要過(guò)于強(qiáng)大的顯示功能,如果選擇該器件,會(huì)造成資源的浪費(fèi)以及編寫軟件時(shí)不必要的時(shí)間浪費(fèi)。因此,我們最終選擇LCD160
55、2液晶模塊作為系統(tǒng)下位機(jī)的顯示模塊。</p><p> 2.3.4 無(wú)線通信模塊</p><p> 根據(jù)查閱的相關(guān)資料顯示,目前主流的短距離無(wú)線傳輸技術(shù)有兩種,一種是IrDA紅外通信技術(shù),另一種是工作于ISM頻段射頻通信技術(shù)。在這里我們選擇ISM射頻通信技術(shù)并選取成本低、功耗小且傳輸穩(wěn)定的NRF24L01無(wú)線收發(fā)模塊。它的主要優(yōu)點(diǎn)有高頻電感和濾波器全部?jī)?nèi)置,所需要的外圍元件少,接口方式
56、簡(jiǎn)單,只需要跟單片機(jī)I/O或SPI相連,編程也較方便,通信速率和傳輸距離等都優(yōu)于藍(lán)牙模塊。</p><p> 2.3.5 電平轉(zhuǎn)換芯片</p><p> 前面已經(jīng)介紹過(guò)由于采用NRF24L01無(wú)線收發(fā)模塊,所以系統(tǒng)需要一個(gè)電源獨(dú)立給無(wú)線收發(fā)模塊供電。器件選擇過(guò)程中,認(rèn)真的查閱了幾種可行的穩(wěn)壓電源電路。如采用LM2576的穩(wěn)壓電源,需要焊接外部電感等器件一起組成穩(wěn)壓電路,雖然電路比較簡(jiǎn)單
57、但輸出不是很穩(wěn)定。所以我們著重考慮采用MIC5205作為穩(wěn)壓電源核心部件。</p><p><b> 2.4 本章小節(jié)</b></p><p> 本章圍繞系統(tǒng)整體的設(shè)計(jì)方案,針對(duì)各模塊間的聯(lián)系進(jìn)行展開(kāi)介紹。在總體設(shè)計(jì)方案確定之后,再根據(jù)各模塊的特點(diǎn)及其所需實(shí)現(xiàn)的系統(tǒng)功能選擇符合要求的器件,然后在這些器件之間進(jìn)行篩選以及可行性方案考量,最終確定出各電路模塊所需的芯片
58、??梢哉f(shuō)本章是整個(gè)系統(tǒng)的基礎(chǔ)部分。在設(shè)計(jì)過(guò)程中,只有先確定整體設(shè)計(jì)方案,才能對(duì)下面的硬件電路和軟件設(shè)計(jì)進(jìn)行相應(yīng)的設(shè)計(jì)和修改。</p><p><b> 系統(tǒng)硬件電路設(shè)計(jì)</b></p><p> 在總體體統(tǒng)方案確定下來(lái)之后,接下來(lái)主要是對(duì)系統(tǒng)的硬件電路進(jìn)行設(shè)計(jì)。這是整個(gè)系統(tǒng)能否正常工作的關(guān)鍵所在。當(dāng)然在硬件設(shè)計(jì)時(shí)單單只考慮系統(tǒng)能否正常工作是遠(yuǎn)遠(yuǎn)不夠的,另外還必須對(duì)
59、整個(gè)系統(tǒng)運(yùn)行時(shí)的工作性能進(jìn)行考量,然后再適當(dāng)?shù)膶?duì)系統(tǒng)外圍電路進(jìn)行相應(yīng)的擴(kuò)展。</p><p> 3.1系統(tǒng)硬件電路設(shè)計(jì)原則</p><p> 根據(jù)對(duì)系統(tǒng)所要實(shí)現(xiàn)的功能及系統(tǒng)的實(shí)用性等方面進(jìn)行考量,在硬件設(shè)計(jì)過(guò)程中應(yīng)采用以下原則:</p><p> (1)盡可能選擇典型的電路及電子元器件;</p><p> (2)軟硬件設(shè)計(jì)應(yīng)兼顧考慮。
60、軟件可以實(shí)現(xiàn)的功能盡可能通過(guò)軟件設(shè)計(jì)實(shí)現(xiàn),以便簡(jiǎn)化硬件電路,但同時(shí)也應(yīng)注意到軟件執(zhí)行硬件功能將占用較多的CPU時(shí)間,這可能會(huì)對(duì)系統(tǒng)的性能造成一定的影響;</p><p> (3)可靠性及抗干擾性能方面是硬件設(shè)計(jì)過(guò)程中的重中之重,這點(diǎn)必須著重考慮,包括對(duì)器件的選擇、電路板的布線等;</p><p> ?。?)單片機(jī)微處理器外接比較多的時(shí)候,必須考慮其驅(qū)動(dòng)能力,否則系統(tǒng)的工作不可靠。<
61、/p><p> 3.2 系統(tǒng)各部分的硬件電路設(shè)計(jì)</p><p> 在整個(gè)系統(tǒng)的設(shè)計(jì)過(guò)程中,采用的是AT89S52單片機(jī)作為控制器,在外圍總共32個(gè)引腳中,需要合理分配才能使系統(tǒng)的資源最大化。在系統(tǒng)中,對(duì)外圍引腳的分配如下:LCD顯示模塊總共用到11個(gè)引腳,其中P0口作為L(zhǎng)CD的8位數(shù)據(jù)輸入端口,P3.5、P3.6、P3.7作為L(zhǎng)CD的RS、RW、E的控制引腳。另外P3.0、P3.2、P3
62、.4、P3.6等四個(gè)接口負(fù)責(zé)接收四路溫濕度傳感器傳送上來(lái)的數(shù)據(jù)。P3.3口作為溫度控制模塊的控制端。最后,在無(wú)線通信模塊中,使用閑置的P1口中的其中六個(gè)I/O口。</p><p> 3.3 AT89S52單片機(jī)</p><p> 3.3.1 AT89S52引腳配置</p><p> 如圖3-1所示該單片機(jī)采用40引腳雙列直插封裝(DIP)形式。對(duì)于CHMOS單
63、片機(jī)除采用DIP形式外,還采用方形封裝工藝。由于受到引腳數(shù)目的限制,所以有部分引腳具有第二功能。 </p><p><b> 圖3-1引腳配置</b></p><p> 3.3.2 AT89S52硬件電路圖</p><p> AT89S52作為控制核心,但是電路相對(duì)比較簡(jiǎn)單(如圖3-2所示)。</p><p>
64、圖3-2 最小系統(tǒng)原理圖</p><p> 相當(dāng)于一個(gè)最小系統(tǒng)。只需一個(gè)復(fù)位電路和一個(gè)由晶振組成時(shí)鐘電路。雖然電路比較簡(jiǎn)單,但是在晶振的選擇上也是需要注意的,一般單片機(jī)都是用12M或是11.0592M晶振構(gòu)成內(nèi)部時(shí)鐘,如果沒(méi)有特殊要求的話兩者都是可行的,但考慮到系統(tǒng)還要涉及串行通信,所以我們這次選擇11.0592M的晶振。這樣下位機(jī)系統(tǒng)時(shí)間和上位機(jī)系統(tǒng)時(shí)間就能比較準(zhǔn)確的進(jìn)行匹配,也為后面的硬件電路和軟件設(shè)計(jì)省去
65、不少麻煩。</p><p><b> 3.4溫濕度模塊</b></p><p> 本系統(tǒng)采用一路溫濕度DHT11和三路DS18B20溫度傳感器分別對(duì)周圍環(huán)境的溫濕度進(jìn)行溫度采集。其中DHT11和DS18B20都屬于單總線結(jié)構(gòu)。它具有節(jié)省I/ O口線資源、結(jié)構(gòu)簡(jiǎn)單、成本低廉、便于總線擴(kuò)展和維護(hù)等諸多優(yōu)點(diǎn).另外,由于DHT11和DS18B20對(duì)溫度的采集精度不同,所以
66、在相同的環(huán)境下可對(duì)二者的采集數(shù)據(jù)通過(guò)上位機(jī)實(shí)時(shí)畫出溫度曲線進(jìn)行比較。</p><p> 3.4.1 DS18B20溫度傳感器</p><p> 3.4.1.1 DS18B20的管腳配置</p><p> DS18B20的芯片封裝如圖3-3所示。</p><p> 圖3-3 DS18B20芯片封裝</p><p>
67、;<b> 引腳定義: </b></p><p> (1)DQ為單數(shù)據(jù)總線,是數(shù)字信號(hào)輸入/輸出端; </p><p> (2)GND為電源地; </p><p> (3)VDD為外接供電電源輸入端(在寄生電源接線方式時(shí)接地)。 </p><p> 3.4.1.2 DS18B20電路原理圖</p>
68、<p> DS18B20的溫度檢測(cè)與數(shù)字?jǐn)?shù)據(jù)輸出全集成于一個(gè)芯片之上,從而抗干擾力更強(qiáng)。而且電路連接也非常簡(jiǎn)單,不過(guò)硬件電路上的簡(jiǎn)單卻給軟件設(shè)計(jì)帶來(lái)了一定的難度,這在后面的軟件設(shè)計(jì)章節(jié)我們將做進(jìn)一步介紹。本次設(shè)計(jì)中DS18B20的電路原理圖如圖3-4所示。</p><p> 圖3-4 DS18B20電路原理圖</p><p> 3.4.2 DHT11溫濕度傳感器<
69、/p><p> DHT11的管腳配置如圖3-5所示。</p><p> 圖3-5 DHT11芯片封裝</p><p> DHT11引腳說(shuō)明:</p><p> 引腳1為外接供電電源輸入端;</p><p> 引腳2為串行數(shù)據(jù)輸入輸出接口;</p><p><b> 引腳3懸空,
70、不接;</b></p><p> 引腳4為接地。 </p><p> 建議連接線長(zhǎng)度短于20米時(shí)用5K上拉電阻,大于20米時(shí)根據(jù)實(shí)際情況使用合適的上拉電阻。一般短距離情況下,DHT11的連接原理圖如圖3-6所示。</p><p> 圖3-6 DHT11電路原理圖</p><p> DHT11的供電電壓為3-5.5V。
71、傳感器上電后,要等待 1s 以越過(guò)不穩(wěn)定狀態(tài)在此期間無(wú)需發(fā)送任何指令。電源引腳(VDD,GND)之間可增加一個(gè)100nF 的電容,用以去耦濾波。</p><p> 3.5 LCD液晶顯示模塊</p><p> 3.5.1 LCD1602接口引腳</p><p> 字符型液晶顯示模塊主要由字符型液晶顯示屏LCD1602構(gòu)成。目前字符型液晶顯示模塊在國(guó)際上已經(jīng)規(guī)范
72、化,無(wú)論是顯示屏規(guī)格如何變化,其電氣特性和接口形式都是統(tǒng)一的,因此只要設(shè)計(jì)出一種型號(hào)的接口電路,在指令設(shè)置上稍加修改就可以使用各種規(guī)范的顯示模塊。下面我們開(kāi)始進(jìn)入1602的介紹。首先對(duì)1602 的接口引腳進(jìn)行了解,如表3-1所示。</p><p> 表3-1 LCD1602接口引腳序列圖</p><p> 3.5.2 LCD電路原理圖</p><p> LCD
73、電路原理圖的設(shè)計(jì)主要是控制引腳4-6,數(shù)據(jù)引腳7-14與單片機(jī)之間的連接,另外就是液晶電源1-3,背光電源與驅(qū)動(dòng)電源之間的連接了。其中液晶模塊的第三根引腳可用于控制液晶屏幕的背景對(duì)比度及背光亮度。此處通過(guò)接一個(gè)10K的可調(diào)電阻實(shí)現(xiàn)了調(diào)節(jié)該屬性的功能。在本次設(shè)計(jì)中,液晶模塊的電路原理圖如圖3-7所示。</p><p> 圖3-7 LCD電路原理圖</p><p><b> 3.
74、6 溫控模塊</b></p><p> 采用HRS4H-S-DC5V繼電器控制電機(jī)轉(zhuǎn)動(dòng),由于單片機(jī)I/O口輸出電流太小不足以驅(qū)動(dòng)繼電器工作。所以經(jīng)過(guò)查閱相關(guān)資料,最終我們選擇了外加一個(gè)由S8550三極管構(gòu)成的放大電路以實(shí)現(xiàn)驅(qū)動(dòng)繼電器工作同時(shí)控制電機(jī)的功能。其電路原理圖如圖3-8所示。</p><p> 圖3-8溫控電路設(shè)計(jì)</p><p> 3.7
75、 無(wú)線收發(fā)模塊</p><p> 3.7.1 NRF24L01概述 </p><p> NRF24L01是一款新型單片射頻收發(fā)器件,工作于2.4 GHz~2.5 GHz ISM頻段。內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合了增強(qiáng)型ShockBurst技術(shù),其中輸出功率和通信頻道可通過(guò)程序進(jìn)行配置。NRF24L01功耗低,在以-6dBm的功率發(fā)射時(shí),工作電流也只有
76、9 mA;接收時(shí),工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設(shè)計(jì)更方便[2]。</p><p> 3.7.2引腳功能及描述 </p><p> NRF24L01的封裝及引腳排列如圖3-9所示。各引腳功能如下。 </p><p> 圖3-9 NRF24L01封裝圖</p><p> CE:使能發(fā)射或接收;
77、 </p><p> CSN,SCK,MOSI,MISO:SPI引腳端,微處理器可通過(guò)此引腳配置NRF24L01: </p><p> IRQ:中斷標(biāo)志位;</p><p> VDD:電源輸入端; </p><p><b> VSS:電源地;</b></p><p> XC2,XC1:晶
78、體振蕩器引腳; </p><p> VDD_PA:為功率放大器供電,輸出為1.8 V; </p><p> ANT1,ANT2:天線接口;</p><p> IREF:參考電流輸入[2]。</p><p> 3.7.3 NRF24L01應(yīng)用原理圖 </p><p> NRF24L01在本次設(shè)計(jì)中的電路連接原理
79、圖如圖3-10所示。</p><p> 圖3-10 NRF24L01電路圖</p><p> 3.8 電源電路模塊</p><p> 在前面的系統(tǒng)設(shè)計(jì)方案已經(jīng)提過(guò)為了確保NRF24L01構(gòu)成的無(wú)線收發(fā)模塊能夠正常工作,我們需要設(shè)計(jì)一個(gè)電平轉(zhuǎn)換模塊,以得到一個(gè)3.3V的電壓。這里我們采用MIC5205作為穩(wěn)壓電路的核心芯片。 MIC5205封裝及引腳排列如圖3-
80、11所示。</p><p> 圖3-11 MIC5205引腳圖</p><p> 由MIC5205組成的電路原理圖如圖3-12所示,只要在1腳和地之間以及5腳和地之間各加一個(gè)10uf電容,還有在第4引腳和地之間接一個(gè)470pf電容,就可構(gòu)成一個(gè)提供3.3V穩(wěn)定電壓的電源模塊。另外為了防止5V電源極性接反導(dǎo)致MIC5205芯片被燒壞,可在1腳和5V電源之間接一個(gè)二極管。</p>
81、;<p> 圖3-12 MIC5205原理圖</p><p> 3.9 串口通信模塊</p><p> 在本系統(tǒng)中下位機(jī)與上位機(jī)間的通信是通過(guò)RS232串口實(shí)現(xiàn)的,由于PC機(jī)輸出的是RS232電平,而單片機(jī)是典型的TTL電平,因此在PC機(jī)與單片機(jī)的連接中必須要有電平轉(zhuǎn)換電路;此處采用的是max232電平轉(zhuǎn)換電路。單片機(jī)的邏輯0是0V,邏輯1是5V,而PC機(jī)用的是負(fù)邏輯,
82、邏輯0在+9~+15之間,邏輯1在-9~-15之間。若用9針串口連接的話,必須要經(jīng)過(guò)電平轉(zhuǎn)換[4]。</p><p> 串口通信電路主要有MAX232芯片構(gòu)成,另外需接幾個(gè)10uf起到保護(hù)電路及防止干擾等作用。其電路原理圖如圖3-13所示。</p><p> 圖3-13 串口通信原理圖</p><p><b> 3.10 本章小結(jié)</b>
83、</p><p> 本章用很大的篇幅介紹了系統(tǒng)硬件電路的設(shè)計(jì)以及各模塊所采用的器件。其中重點(diǎn)介紹了各模塊核心器件的概況和工作原理。硬件電路的基礎(chǔ)就是要清楚這些器件是如何工作的以及由他們構(gòu)成的電路模塊要如何才能實(shí)現(xiàn)預(yù)期的功能等。對(duì)于這些器件如LCD1602、DS18B20、DHT11、NRF24L01等,如果單單只知道其引腳定義而對(duì)它們的工作原理一無(wú)所知,那肯定就很難能完成整個(gè)系統(tǒng)設(shè)計(jì)。</p>&
84、lt;p><b> 系統(tǒng)軟件設(shè)計(jì)與配置</b></p><p> 4.1 系統(tǒng)軟件設(shè)計(jì)要解決的問(wèn)題</p><p> 軟件設(shè)計(jì)的任務(wù)是根據(jù)應(yīng)用系統(tǒng)總體設(shè)計(jì)方案的要求和硬件結(jié)構(gòu),設(shè)計(jì)出能夠滿足系統(tǒng)要求的控制程序。在本次設(shè)計(jì)中,采用自下而上的模塊化設(shè)計(jì)思想。先對(duì)系統(tǒng)底層的模塊進(jìn)行設(shè)計(jì),然后一步步向上發(fā)展,最終設(shè)計(jì)出一套完整的系統(tǒng)軟件方案。這樣不但提高了程序的可
85、讀性,而且有較強(qiáng)的可移植性,同時(shí)也為系統(tǒng)的仿真和調(diào)試提供了極大的便利。整個(gè)系統(tǒng)的軟件實(shí)現(xiàn)流程圖如圖4-1所示。</p><p> 圖4-1 軟件流程圖</p><p> 4.2 系統(tǒng)軟件模塊化設(shè)計(jì)</p><p> 4.2.1 溫濕度模塊</p><p> 在溫濕度模塊軟件部分設(shè)計(jì)過(guò)程中,首先查閱了DHT11和DS18B20的data
86、sheet以及網(wǎng)上已有的相關(guān)例程。經(jīng)過(guò)對(duì)芯片時(shí)序圖的解讀以及多個(gè)例程的深入學(xué)習(xí),最終編寫滿足系統(tǒng)要求的程序,在KeilC51上成功編譯后,先把成功生成的hex16進(jìn)制文件在Protues上進(jìn)行仿真,最終確實(shí)實(shí)現(xiàn)測(cè)量周圍環(huán)境溫濕度的功能。其實(shí),在對(duì)整個(gè)系統(tǒng)其它各功能模塊的軟件的設(shè)計(jì)過(guò)程也都是遵循這樣的步驟的,所以在軟件的調(diào)試和完善方面花的時(shí)間也比硬件電路部分要節(jié)省了很多,成功的縮短了本次畢設(shè)的設(shè)計(jì)周期。</p><p&
87、gt; 不論是DHT11溫濕度傳感器還是DS18B20傳感器,系統(tǒng)在對(duì)它們進(jìn)行讀寫數(shù)據(jù)前都先要對(duì)其進(jìn)行判忙操作。程序如下:</p><p> bit Initialization ()</p><p><b> {</b></p><p><b> while(1)</b></p><p>
88、<b> {</b></p><p><b> DQ = 1;</b></p><p> Delay60us ();</p><p><b> DQ = 0;</b></p><p> Delay480us (); </p><p>&
89、lt;b> DQ=1;</b></p><p> Delay60us ();</p><p><b> x=DQ; </b></p><p> Delay240us (); </p><p><b> DQ=1;</b></p><p> ret
90、urn(x);</p><p><b> }</b></p><p><b> }</b></p><p> 感覺(jué)這兩個(gè)芯片的軟件設(shè)計(jì)主要在于讀懂芯片的時(shí)序圖,否則在編寫程序的時(shí)候根本就很難寫出能夠讓芯片正常運(yùn)行的代碼。例如,在編寫DS18B20初始化程序的時(shí)候,如果延時(shí)時(shí)間不夠長(zhǎng),就會(huì)使的芯片初始化失敗,從而導(dǎo)致芯
91、片未能正常讀取溫度數(shù)據(jù),芯片一直顯示初始溫度值85℃。只要初始化正確了,后面的讀寫數(shù)據(jù)函數(shù)等都會(huì)比較容易上手,所以說(shuō)能夠理解芯片的工作原理并看懂芯片的時(shí)序圖是編寫程序的基礎(chǔ)及重點(diǎn)。</p><p> 4.2.2 LCD液晶顯示模塊</p><p> 相比于DHT11和DS18B20,LCD1602的控制字和ROM指令都比較多,所以編程的時(shí)候難度也比較大,除了要讀懂時(shí)序圖還必須對(duì)它的顯示
92、原理和特點(diǎn)進(jìn)行一番摸索。下面先介紹一下它的初始化流程,如圖4-2所示。</p><p> 圖4-2 LCD初始化流程圖</p><p> 除了初始化部分外,所有的讀寫操作都是首先判斷“忙”標(biāo)志位是否為1,若是則等待;否則為空閑狀態(tài),可進(jìn)行數(shù)據(jù)的讀寫操作。程序如下:</p><p> void Busy()</p><p><b&g
93、t; {</b></p><p> DATA = 0xff;</p><p><b> RS = 0;</b></p><p> RW = 1; //讀忙信號(hào);</p><p> while(DATA & 0x80) //判斷DATA的最高位是否為一;</p><
94、p><b> {</b></p><p><b> E = 0;</b></p><p><b> E = 1;</b></p><p><b> }</b></p><p><b> E = 0;</b></p
95、><p><b> }</b></p><p> 在進(jìn)行指令根數(shù)據(jù)寫之前,先對(duì)其狀態(tài)進(jìn)行判斷,為空閑模式的時(shí)候,就可以進(jìn)行操作。由RS、RW、E來(lái)決定當(dāng)前要進(jìn)行的功能操作。當(dāng)三個(gè)引腳分別為0、0、1的時(shí)候可寫入數(shù)據(jù),為0、0、0時(shí),則表示可進(jìn)行寫指令操作。</p><p> LCD1602寫指令程序;</p><p>
96、 void WriteCommand(unsigned char btCommand)</p><p><b> {</b></p><p><b> Busy();</b></p><p><b> RS = 0;</b></p><p> RW = 0; /
97、/寫指令;</p><p><b> E = 1;</b></p><p> DATA = btCommand;</p><p><b> E = 0;</b></p><p><b> }</b></p><p> LCD1602寫數(shù)據(jù)程序&
98、lt;/p><p> void WriteData(unsigned char btData)</p><p><b> {</b></p><p><b> Busy();</b></p><p><b> RS = 1;</b></p><p>
99、<b> RW = 0;</b></p><p><b> E = 1;</b></p><p> DATA = btData;</p><p><b> E = 0;</b></p><p><b> }</b></p><
100、p> 通過(guò)以上兩個(gè)程序可對(duì)LCD寫入數(shù)據(jù)或者指令,后面的其它程序也大多是通過(guò)調(diào)用這兩個(gè)程序?qū)CD進(jìn)行相關(guān)操作。例如清屏顯示、對(duì)LCD寫入一個(gè)字符或者字符串等。其中清屏顯示可由寫入ROM指令0x01進(jìn)行,而初始化則是對(duì)液晶模塊的顯示方式等進(jìn)行設(shè)置,包括光標(biāo)的顯示及顯示模式等。</p><p> 通過(guò)調(diào)用前面的子函數(shù)即可實(shí)現(xiàn)LCD模塊顯示單個(gè)字符以及字符串的功能。下面簡(jiǎn)單介紹這些程序之間的流程關(guān)系,如圖4
101、-3所示。</p><p> 圖4-3 LCD軟件編寫流程圖</p><p> 4.2.3 無(wú)線收發(fā)模塊</p><p> 無(wú)線收發(fā)模塊和LCD顯示模塊都有很多的ROM指令和較多的狀態(tài)字,所以編寫過(guò)程必須對(duì)這些ROM指令和狀態(tài)字了然于胸,之后在編寫軟件的時(shí)候也會(huì)變得得心應(yīng)手。不過(guò)首要的還是要先把這個(gè)模塊的時(shí)序圖和工作原理讀懂、讀透,否則也很難編寫出滿足要求的程
102、序。編寫軟件過(guò)程中,有個(gè)大前提就是必須把兩個(gè)NRF24L01的發(fā)送和接收地址值、長(zhǎng)度及數(shù)據(jù)通道有效數(shù)據(jù)寬度等設(shè)為相同。下面我們介紹編寫無(wú)線收發(fā)模塊時(shí)的讀寫時(shí)序子程序。</p><p> uint SPI_RW(uint uchar)</p><p><b> {</b></p><p> uint bit_ctr;</p>
103、<p> for(bit_ctr=0;bit_ctr<8;bit_ctr++) // output 8-bit</p><p><b> {</b></p><p> MOSI = (uchar & 0x80); </p><p> uchar = (uchar << 1);
104、 </p><p> SCK = 1; </p><p> uchar |= MISO; </p><p> SCK = 0; </p><p><b> }</b></p><p> return(
105、uchar); </p><p><b> }</b></p><p> uchar SPI_Read(uchar reg)</p><p><b> {</b></p><p> uchar reg_val;</p><p> CSN =
106、 0; </p><p> SPI_RW(reg); </p><p> reg_val = SPI_RW(0); </p><p> CSN = 1; </p><p> return(reg_val); </p><p&g
107、t;<b> }</b></p><p> 以上兩個(gè)函數(shù)分別為無(wú)線收發(fā)模塊的讀寫時(shí)序函數(shù)。這兩個(gè)函數(shù)在整個(gè)無(wú)線收發(fā)模塊軟件設(shè)計(jì)上起到了至關(guān)重要的作用。只有正確的調(diào)用這兩個(gè)函數(shù)才能保證無(wú)線收發(fā)模塊正常工作,實(shí)現(xiàn)下位機(jī)從機(jī)與主機(jī)之間的數(shù)據(jù)傳輸,最終確保下位機(jī)主機(jī)與上位機(jī)之間通信模塊的正常運(yùn)行。</p><p> 4.2.4 串口通信模塊</p><
108、;p> 串口通信模塊軟件上的設(shè)計(jì)主要需要注意初始化時(shí)波特率等參數(shù)的設(shè)定,利用串口和上位機(jī)通信時(shí),收發(fā)數(shù)據(jù)都是通過(guò)緩存器的讀寫來(lái)實(shí)現(xiàn)的。設(shè)計(jì)程序如下:</p><p> void ser_init()</p><p><b> {</b></p><p> TMOD=0x20;</p><p><b&g
109、t; TL1=0xfd;</b></p><p><b> TH1=0xfd;</b></p><p> SCON=0x50;</p><p> PCON &= 0xef;</p><p><b> TR1=1;</b></p><p><
110、b> ES=1;</b></p><p><b> }</b></p><p> 由以上程序可知,對(duì)串口初始化主要是對(duì)串口的波特率、串口中斷開(kāi)關(guān)等參數(shù)進(jìn)行設(shè)置。只有在設(shè)置正確的情況下,下位機(jī)系統(tǒng)才能正常的與PC上位機(jī)之間進(jìn)行通信。</p><p><b> 4.3 本章小結(jié)</b></p&g
111、t;<p> 通過(guò)模塊化設(shè)計(jì)的方法編寫系統(tǒng)軟件,使得在整個(gè)軟件設(shè)計(jì)過(guò)程中減少了很大的工作量。同時(shí),也節(jié)省了很多的時(shí)間。而且在進(jìn)行軟件功能的調(diào)試和改進(jìn)方面,也減少了一定的難度。通過(guò)一個(gè)模塊一個(gè)模塊程序的編寫,最后整合在一起,實(shí)現(xiàn)完整的系統(tǒng)功能,雖然在調(diào)試過(guò)程中出現(xiàn)了一些問(wèn)題,但都能很快的找出問(wèn)題,并迅速的加以解決。另外軟件編寫的時(shí)候一定要注意加上注釋,這樣在檢查程序的時(shí)候也會(huì)有很大的幫助。</p><p
112、><b> 系統(tǒng)調(diào)試與改進(jìn)</b></p><p> 當(dāng)硬件電路焊接和軟件設(shè)計(jì)等步驟都完成后,就進(jìn)入了下一個(gè)階段——系統(tǒng)調(diào)試。所有的軟硬件設(shè)計(jì)都不可能一次性通過(guò)。只有經(jīng)過(guò)系統(tǒng)調(diào)試才能發(fā)現(xiàn)設(shè)計(jì)過(guò)程中存在的一些問(wèn)題,否則系統(tǒng)設(shè)計(jì)所預(yù)期的功能也都不能實(shí)現(xiàn),一切都將只是紙上談兵。而且經(jīng)過(guò)調(diào)試后,我們還能找到一些完善系統(tǒng)功能的方法,這樣也就使得系統(tǒng)的性能更加的完美。</p>&
113、lt;p> 5.1 LCD液晶顯示模塊調(diào)試</p><p> 本著先從簡(jiǎn)單問(wèn)題著手的指導(dǎo)思想,系統(tǒng)調(diào)試伊始我們打算先把LCD顯示部分先調(diào)試出來(lái),順便可以更加深入的了解LCD1602液晶顯示模塊的工作原理。為了達(dá)到這一目的,我先寫了個(gè)時(shí)鐘的程序,程序在Protues上仿真的時(shí)候達(dá)到了預(yù)期的功能。如圖5-1所示,可看到LCD1602的第一行顯示時(shí)鐘的運(yùn)行,第二行則顯示兩個(gè)小人追逐的畫面。</p>
114、<p> 圖5-1 LCD顯示仿真</p><p> 由于程序已通過(guò)仿真,所以我們就把程序燒寫到最小系統(tǒng)上,按電路圖連接好電路。開(kāi)啟電源,液晶顯示背光能點(diǎn)亮,但卻沒(méi)有預(yù)期的時(shí)鐘和小人顯示出來(lái)。于是只好先從硬件上找原因。開(kāi)始著手檢查最小系統(tǒng)與LCD顯示模塊的連線以及最小系統(tǒng)本身的焊接問(wèn)題。檢查過(guò)程確實(shí)查出了一些問(wèn)題,但把這些問(wèn)題一一改正過(guò)來(lái)之后發(fā)現(xiàn)LCD還是不能正常顯示。但是LCD的對(duì)比度卻可以成
115、功的調(diào)節(jié)了。第一遍的檢查由于出了不少問(wèn)題,所以我又十分認(rèn)真的把最小系統(tǒng)的硬件電路查了幾遍,直到確定電路確實(shí)是沒(méi)問(wèn)題的。但是由于LCD仍不能顯示所以我就從最簡(jiǎn)單的I/O口正常輸出著手,用單片機(jī)入門級(jí)的流水燈程序燒寫進(jìn)系統(tǒng)后發(fā)現(xiàn)小燈的電壓好像有異常。用萬(wàn)用表測(cè)量I/O輸出為1時(shí)與地間的電壓,發(fā)現(xiàn)沒(méi)有問(wèn)題,但是當(dāng)測(cè)量I/O與小燈正極的電壓時(shí),發(fā)現(xiàn)不是5V的壓差,而是3.27V。找不到頭緒,就只能把硬件帶到實(shí)驗(yàn)室用示波器測(cè)量了。拿到實(shí)驗(yàn)室,連接
116、好電路,發(fā)現(xiàn)示波器也只有干擾波,換了幾臺(tái)也都是一樣。于是就只能撤退了。</p><p> 回到宿舍之后,又向其它同學(xué)請(qǐng)教了一下,他們也都說(shuō)不知道什么原因。沒(méi)辦法,就只能重新在焊一個(gè)電路了。焊完之后按照以往的程序進(jìn)行燒寫。發(fā)現(xiàn)LCD居然能用,然后把兩個(gè)最小系統(tǒng)的連線圖進(jìn)行比較也沒(méi)找出什么不同。于是就不死心的把原來(lái)的最小系統(tǒng)拿過(guò)來(lái)試了一下,發(fā)現(xiàn)居然也可以用。得不到問(wèn)題的答案,慶幸的是兩個(gè)電路都可以用了。不管怎么樣調(diào)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于labview的多通道數(shù)據(jù)采集系統(tǒng)(畢業(yè)論文)
- 基于labview的多通道數(shù)據(jù)采集系統(tǒng)畢業(yè)論文
- 基于labview的多通道數(shù)據(jù)采集系統(tǒng)畢業(yè)論文
- 用于全矢譜分析的多通道數(shù)據(jù)采集系統(tǒng)研究.pdf
- 基于DSP的多通道數(shù)據(jù)采集系統(tǒng)研究.pdf
- 多通道輪荷稱重儀數(shù)據(jù)采集系統(tǒng)研究.pdf
- 11435.多通道無(wú)線同步地震數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
- 數(shù)據(jù)采集系統(tǒng)畢業(yè)論文
- 無(wú)線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 無(wú)線數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 微機(jī)數(shù)據(jù)采集系統(tǒng)畢業(yè)論文
- 課程設(shè)計(jì)---多通道數(shù)據(jù)采集論文
- 多通道穿墻雷達(dá)接收機(jī)與數(shù)據(jù)采集系統(tǒng)研究.pdf
- 多通道數(shù)據(jù)采集系統(tǒng)數(shù)據(jù)預(yù)處理方法研究.pdf
- 多路數(shù)據(jù)采集系統(tǒng)畢業(yè)論文
- 一種無(wú)線數(shù)據(jù)采集和傳輸系統(tǒng)的設(shè)計(jì)-畢業(yè)論文外文翻譯
- 多通道高速數(shù)據(jù)采集錄取系統(tǒng).pdf
- 超低功耗無(wú)線數(shù)據(jù)采集系統(tǒng)研究和設(shè)計(jì).pdf
- 無(wú)線傳感網(wǎng)絡(luò)現(xiàn)場(chǎng)參數(shù)多通道數(shù)據(jù)采集系統(tǒng)的研究與實(shí)現(xiàn).pdf
- 多通道數(shù)據(jù)采集系統(tǒng)和網(wǎng)絡(luò)實(shí)時(shí)監(jiān)控系統(tǒng)的實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論