2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩38頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  本科畢業(yè)設(shè)計(jì)</b></p><p><b>  (20 屆)</b></p><p><b>  溫濕度檢測系統(tǒng)</b></p><p>  所在學(xué)院 </p><p>  專業(yè)班級

2、 通信工程 </p><p>  學(xué)生姓名 學(xué)號 </p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘 要

3、</b></p><p>  隨著社會各方面的發(fā)展,在生產(chǎn)生活的方方面面對溫度濕度的環(huán)境狀況要求越來越高,主要是指庫房、儲柜、大棚種植、工業(yè)生產(chǎn)等對溫濕度環(huán)境變化有著重要要求的地方。例如:對館藏文物保存環(huán)境實(shí)施科學(xué)監(jiān)測和有效調(diào)控,是預(yù)防性保護(hù)文物劣化的關(guān)鍵所在。因此溫濕度監(jiān)測具有重要的意義。</p><p>  本文提出了一種溫濕度監(jiān)測系統(tǒng)的研究方案。該方案系統(tǒng)是由LCD顯示模

4、塊、溫濕度傳感器模塊、微控制器模塊和上位機(jī)軟件組成。其中微控制器模塊是整個(gè)系統(tǒng)的核心。它既要接收溫濕度傳感器采集的數(shù)據(jù)并進(jìn)行處理,將處理的數(shù)據(jù)通過串口傳遞給計(jì)算機(jī)使上位機(jī)軟件進(jìn)行進(jìn)一步處理并實(shí)時(shí)顯示溫濕度數(shù)據(jù)和保存數(shù)據(jù),同時(shí)微控制器控制LCD顯示溫濕度數(shù)據(jù)。</p><p>  關(guān)鍵詞:溫度;濕度;監(jiān)測;數(shù)據(jù)存儲</p><p><b>  Abstract</b>&

5、lt;/p><p>  With the development of all sectors of society in all aspects of production and life conditions of temperature and humidity of the environment have become increasingly demanding, mainly refers to th

6、e warehouse, storage cabinets, greenhouse cultivation, industrial production and other environmental changes on the temperature and humidity requirements has an important place. For example: the implementation of the sci

7、entific collections of cultural relics preservation of the environment monitoring </p><p>  This paper presents a temperature and humidity monitoring system for research programs. The program system is compo

8、sed of LCD display module, temperature and humidity sensor module, micro-controller module and PC software. One micro-controller module is the core of the system. Both temperature and humidity sensors to receive and proc

9、ess the data collected, will handle the data passed to the computer through the serial port to the PC software for further processing and real-time display of temper</p><p>  Keywords:Temperature ; Tumidity;

10、Research Programs;Data Storage</p><p><b>  目錄</b></p><p><b>  1引言1</b></p><p><b>  2總體設(shè)計(jì)2</b></p><p>  2.1系統(tǒng)總體框架2</p><

11、p>  2.2系統(tǒng)各模塊之間的工作關(guān)系3</p><p>  2.3系統(tǒng)各模塊的功能3</p><p><b>  3硬件設(shè)計(jì)4</b></p><p>  3.1微處理器系統(tǒng)4</p><p>  3.1.1 STC89C51RC組成及工作原理4</p><p>  3.1.2

12、STC89C51RC外圍電路設(shè)計(jì)5</p><p>  3.2溫濕度傳感器模塊6</p><p>  3.2.1 DHT21應(yīng)用7</p><p>  3.2.2 DHT21的工作原理7</p><p>  3.3LCD顯示模塊8</p><p>  3.3.1 LCD12864功能及連接方式9</p

13、><p>  3.3.2 LCD12864讀寫操作時(shí)序及指令結(jié)構(gòu)9</p><p><b>  4軟件設(shè)計(jì)10</b></p><p>  4.1 LCD顯示程序模塊10</p><p>  4.1.1 單字節(jié)傳送函數(shù)10</p><p>  4.1.2 數(shù)據(jù)、指令傳送函數(shù)11</p&

14、gt;<p>  4.2 溫濕度數(shù)據(jù)采集程序模塊11</p><p>  4.2.1 單字節(jié)數(shù)據(jù)接收函數(shù)12</p><p>  4.2.2 接收數(shù)據(jù)函數(shù)12</p><p>  4.3 串行數(shù)據(jù)傳輸程序模塊13</p><p>  4.4 上位機(jī)軟件13</p><p>  4.4.1 用戶登

15、錄模塊14</p><p>  4.4.2 數(shù)據(jù)采集模塊15</p><p>  4.4.3 歷史查詢模塊16</p><p><b>  5制作和調(diào)試17</b></p><p>  5.1硬件電路的制作和調(diào)試17</p><p>  5.2 下位機(jī)軟件制作和調(diào)試18</p&g

16、t;<p>  5.3 上位機(jī)軟件制作和調(diào)試20</p><p>  6上位機(jī)系統(tǒng)整體運(yùn)行過程22</p><p>  致 謝錯(cuò)誤!未定義書簽。</p><p><b>  參考文獻(xiàn)25</b></p><p>  附錄1 硬件系統(tǒng)原理圖及實(shí)物圖26</p><p>  附

17、錄2 上位機(jī)軟件源代碼28</p><p><b>  1引言</b></p><p>  在物聯(lián)網(wǎng)(Internet of Things)[1]發(fā)展的今天,物聯(lián)網(wǎng)在智慧交通、倉儲物流、工業(yè)控制等方面都有較大的應(yīng)用價(jià)值。已經(jīng)公開的物聯(lián)網(wǎng)的應(yīng)用實(shí)例基本上圍繞這些應(yīng)用領(lǐng)域[2]。物聯(lián)網(wǎng)是嵌入式系統(tǒng)、聯(lián)網(wǎng)和控制系統(tǒng)的集成,它由計(jì)算系統(tǒng)、包含傳感器和執(zhí)行器的嵌入式系統(tǒng)等異構(gòu)

18、系統(tǒng)組成,首先需要解決物理系統(tǒng)與計(jì)算系統(tǒng)協(xié)同處理。在物聯(lián)網(wǎng)環(huán)境下,事件檢測和動作決策操作涉及到時(shí)間和空間[3]。因此我們可以通過電子信息技術(shù)對溫度濕度進(jìn)行監(jiān)測已經(jīng)成為了可能。</p><p>  在生產(chǎn)生活的方方面面對溫度濕度的環(huán)境狀況要求越來越高,主要是指庫房、儲柜、大棚種植、工業(yè)生產(chǎn)等對溫濕度環(huán)境變化有著重要要求的地方。例如:對館藏文物保存環(huán)境實(shí)施科學(xué)監(jiān)測和有效調(diào)控,是預(yù)防性保護(hù)文物劣化的關(guān)鍵所在。因此溫濕度

19、監(jiān)測具有重要的意義。而在傳統(tǒng)的溫濕度檢測方法已經(jīng)難以做到實(shí)時(shí)監(jiān)測和數(shù)據(jù)存儲。</p><p>  本文以模塊化的思想闡述一種簡單的溫濕度監(jiān)測系統(tǒng)設(shè)計(jì)方法,溫濕度監(jiān)測系統(tǒng)是由LCD顯示模塊、溫濕度傳感器模塊[4]、微控制器模塊和上位機(jī)軟件組成。其中微控制器模塊是整個(gè)系統(tǒng)的核心。它既要接收溫濕度傳感器采集的數(shù)據(jù)并進(jìn)行處理,將處理的數(shù)據(jù)通過串口傳遞給計(jì)算機(jī)使上位機(jī)軟件進(jìn)行進(jìn)一步處理并實(shí)時(shí)顯示溫濕度數(shù)據(jù)和保存數(shù)據(jù),同時(shí)微

20、控制器控制LCD顯示溫濕度數(shù)據(jù)。因此可以通過這種溫濕度監(jiān)測系統(tǒng)就有效的克服傳統(tǒng)的溫濕度檢測方法難以做到的實(shí)時(shí)監(jiān)測和數(shù)據(jù)存儲這兩大難題。</p><p><b>  2總體設(shè)計(jì)</b></p><p><b>  2.1系統(tǒng)總體框架</b></p><p>  溫濕度監(jiān)測系統(tǒng)的設(shè)計(jì)主要分硬件設(shè)計(jì)和軟件設(shè)計(jì)兩個(gè)部分(如圖2-1

21、),硬件設(shè)計(jì)前期的主要任務(wù)是選擇系統(tǒng)所需要的模塊,系統(tǒng)中LCD顯示模塊采用的是LCD12864,微控制器采用的STC89C51[5-6],溫濕度傳感器模塊采用的是DHT21。數(shù)據(jù)傳輸采用的是RS-232方式。</p><p>  軟件設(shè)計(jì)又分兩個(gè)部分,一部分使用面向過程程序設(shè)計(jì)語言(C)設(shè)計(jì)微控制器程序其中包括LCD顯示程序模塊、串行數(shù)據(jù)傳輸程序模塊和溫濕度采集程序模塊。另一部分采用的是面向的對象程序設(shè)計(jì)語言(O

22、bject Pascal)設(shè)計(jì)上位機(jī)軟件[7]。</p><p>  圖2-1 系統(tǒng)總體框架</p><p>  2.2系統(tǒng)各模塊之間的工作關(guān)系</p><p>  溫濕度監(jiān)測系統(tǒng)是由數(shù)據(jù)LCD顯示模塊、溫濕度傳感器模塊、微控制器模塊和上位機(jī)軟件組成(如圖2-2)。其中微控制器模塊是整個(gè)系統(tǒng)的核心。它既要接收溫濕度傳感器采集的數(shù)據(jù)并進(jìn)行處理,將處理的數(shù)據(jù)通過串口傳

23、遞給計(jì)算機(jī)使上位機(jī)軟件進(jìn)行進(jìn)一步處理并實(shí)時(shí)顯示溫濕度數(shù)據(jù)和保存數(shù)據(jù),同時(shí)微控制器控制LCD顯示溫濕度數(shù)據(jù)[8-9]。</p><p>  圖2-2 模塊關(guān)系</p><p>  2.3系統(tǒng)各模塊的功能</p><p>  (1)溫濕度傳感器模塊:采集溫濕度數(shù)據(jù)信息,產(chǎn)生數(shù)字信號進(jìn)行串行傳輸。</p><p> ?。?)LCD顯示模塊:自帶字

24、庫,可以顯示溫濕度信息,人機(jī)交換的功能。</p><p> ?。?)數(shù)據(jù)傳輸模塊:電平轉(zhuǎn)換,進(jìn)行串行傳輸。</p><p> ?。?)微控制器系統(tǒng)模塊:控制并協(xié)調(diào)各模塊正常工作。</p><p> ?。?)上位機(jī)軟件:具有用戶登錄、在線顯示數(shù)據(jù)、保存數(shù)據(jù)功能。</p><p><b>  3硬件設(shè)計(jì)</b></p&

25、gt;<p><b>  3.1微處理器系統(tǒng)</b></p><p>  溫濕度監(jiān)測系統(tǒng)選用微控制器是STC89C51RC,它是宏晶科技退出的新一代高速、低功耗、超強(qiáng)抗干擾的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī)。12時(shí)鐘/機(jī)器周期和6時(shí)鐘/機(jī)器周期可以任意選擇。</p><p>  3.1.1 STC89C51RC組成及工作原理</p>

26、<p>  STC89C51RC的工作電壓為5.5-3.3V,時(shí)鐘頻率范圍0-80MHz,F(xiàn)lash程序內(nèi)存4K(字節(jié)),SRAM為512字節(jié),定時(shí)器3個(gè),UART1個(gè),中斷源8個(gè),中斷優(yōu)先級4個(gè),有內(nèi)置復(fù)位,封裝方式為40-Pin。其內(nèi)部組成如圖3-1。</p><p>  圖3-1 STC89C51內(nèi)部結(jié)構(gòu)框圖</p><p>  3.1.2 STC89C51RC外圍電

27、路設(shè)計(jì)</p><p> ?。?)STC89C51RC的復(fù)位電路,時(shí)鐘電路</p><p>  晶振采用的是頻率為11.0592MHz(如圖3-2)。有利于串口傳輸程序的初始化設(shè)置。</p><p>  圖3-2 STC89C51的最小系統(tǒng)</p><p><b> ?。?)電源電路</b></p>&l

28、t;p>  溫濕度監(jiān)控系統(tǒng)采用的7.8V的鋰電池,STC89C51RC的工作電壓是5V。所以需要降壓。采用的是L7805穩(wěn)壓芯片。兩邊的電容作用是濾波。LED燈是起指示作用(如圖3-3)。</p><p>  圖3-3 電源電路</p><p> ?。?)數(shù)據(jù)傳輸電路(RS-232)</p><p>  STC89C51RC支持ISP下載,通過此模塊下載并過

29、進(jìn)行數(shù)據(jù)傳輸。9針中使用有三針,5為信號地,2為接收數(shù)據(jù),3為發(fā)送數(shù)據(jù)。利用接口芯片MAX232,可以將一個(gè)TTL串口電平轉(zhuǎn)換成RS-232(如圖3-4)。</p><p>  圖3-4 MAX232電路</p><p>  3.2溫濕度傳感器模塊</p><p>  DHT21數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采

30、集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個(gè)電容式感濕組件和一個(gè)NTC測溫組件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)品具有質(zhì)量卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè)DHT21傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離

31、可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。</p><p>  3.2.1 DHT21應(yīng)用</p><p>  應(yīng)用時(shí)應(yīng)注意的是當(dāng)傳感器與MCU的距離大于20米時(shí),需要接上拉電阻。如果距離較短,則無需接上拉電阻(如圖3-5)。</p><p>  圖3-5 溫濕度傳感器應(yīng)

32、用示意</p><p>  3.2.2 DHT21的工作原理</p><p>  用戶主機(jī)(MCU)發(fā)送一次開始信號后,DHT21從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號結(jié)束后,DHT21發(fā)送回應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,如圖3-6所示。(注:主機(jī)從DHT21讀取的溫濕度數(shù)據(jù)總是前一次的測量值,如兩次測量間隔時(shí)間很長,請連續(xù)讀兩次以獲得實(shí)時(shí)的溫濕度值)。</

33、p><p>  圖3-6 單總線數(shù)據(jù)傳輸過程圖</p><p>  空閑時(shí)總線為高電平,通訊開始時(shí)主機(jī)(MCU)拉低總線500us后釋放總線,延時(shí)20-40us后主機(jī)開始檢測從機(jī)(DHT21)的響應(yīng)信號。從機(jī)的響應(yīng)信號是一個(gè)80us左右的低電平,隨后從機(jī)在拉高總線80us左右代表即將進(jìn)入數(shù)據(jù)傳送(如圖3-7所示)。</p><p>  圖3-7 具體延時(shí)時(shí)間示意&l

34、t;/p><p>  高電平后就是數(shù)據(jù)位,每1bit數(shù)據(jù)都是由一個(gè)低電平時(shí)隙和一個(gè)高電平組成。低電平時(shí)隙就是一個(gè)50us左右的低電平,它代表數(shù)據(jù)位的起始,其后的高電平的長度決定數(shù)據(jù)位所代表的數(shù)值,較長的高電平代表1,較短的高電平代表0。共40bit數(shù)據(jù),當(dāng)最后一Bit數(shù)據(jù)傳送完畢后,從機(jī)將再次拉低總線50us左右,隨后釋放總線。數(shù)據(jù)格式: 40bit數(shù)據(jù)=16bit濕度數(shù)據(jù)+16bit溫度數(shù)據(jù)+8bit校驗(yàn)和。<

35、;/p><p>  3.3LCD顯示模塊</p><p>  12864液晶顯示模塊是128×64點(diǎn)陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內(nèi)置國標(biāo)GB2312碼簡體中文字庫(16X16點(diǎn)陣)、128個(gè)字符(8X16點(diǎn)陣)及64X256點(diǎn)陣顯示RAM(GDRAM)。引腳說明如圖3-8所示。</p><p>  圖3-8 LCD12864引腳說明<

36、/p><p>  3.3.1 LCD12864功能及連接方式</p><p>  可與CPU直接接口,提供8-位串行連接微處理機(jī): 1、2引腳分別是電源和地,19、20引腳是背光電源,6引腳為SCLK(使能引腳),5引腳為SID(數(shù)據(jù)引腳),4引腳為CS(片選)。連接方式如圖3-9所示。</p><p>  圖3-9 串行連接示意圖</p><p&

37、gt;  3.3.2 LCD12864讀寫操作時(shí)序及指令結(jié)構(gòu)</p><p>  圖3-10 串行連接時(shí)序圖</p><p>  串行數(shù)據(jù)傳送共分三個(gè)字節(jié)完成: </p><p>  第一字節(jié):串口控制—格式 11111ABC </p><p>  A為數(shù)據(jù)傳送方向控制:H表示數(shù)據(jù)從LCD到MCU,L表示資料從MCU到LCD 。</p

38、><p>  B為數(shù)據(jù)類型選擇:H表示數(shù)據(jù)是顯示數(shù)據(jù),L表示數(shù)據(jù)是控制指令。 </p><p><b>  C固定為0 。</b></p><p>  第二字節(jié):(并行)8位數(shù)據(jù)的高4位—格式 DDDD0000 。</p><p>  第三字節(jié):(并行)8位數(shù)據(jù)的低4位—格式 0000DDDD。</p><

39、;p><b>  4軟件設(shè)計(jì)</b></p><p>  4.1 LCD顯示程序模塊</p><p>  LCD12864的連接方式是串行連接(如圖3-9)。要以單總線的方式發(fā)送數(shù)據(jù),因此數(shù)據(jù)的傳輸是以Bit為單位。LCD顯示程序分為多個(gè)子程序完成(如圖4-1)。</p><p>  圖4-1 LCD模塊函數(shù)調(diào)用關(guān)系</p>

40、<p>  4.1.1 單字節(jié)傳送函數(shù)</p><p>  圖4-2 LCD_SEND函數(shù)流程圖</p><p>  4.1.2 數(shù)據(jù)、指令傳送函數(shù)</p><p>  圖4-3 LCD_SCOM函數(shù)流程圖</p><p>  4.2 溫濕度數(shù)據(jù)采集程序模塊</p><p>  溫濕度數(shù)據(jù)采集是單總線

41、通信,所以通過電平信號的延時(shí)長短控制和確認(rèn)溫濕度信息。因此只需控制檢測電平延時(shí)的變化,即可控制數(shù)據(jù)的接收(如圖4-4)。</p><p>  圖4-4 數(shù)據(jù)通信過程</p><p>  4.2.1 單字節(jié)數(shù)據(jù)接收函數(shù)</p><p>  圖4-5 COM函數(shù)</p><p>  4.2.2 接收數(shù)據(jù)函數(shù)</p><p&

42、gt;  圖4-6 RH函數(shù)</p><p>  4.3 串行數(shù)據(jù)傳輸程序模塊</p><p>  圖4-7 串口程序流程圖</p><p><b>  4.4 上位機(jī)軟件</b></p><p>  上位機(jī)軟件的設(shè)計(jì)采用的是面向的對象程序設(shè)計(jì)語言(Object Pascal ), Delphi作為一種采用了可重復(fù)利用

43、的完整的面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Pascal )的可視化編程環(huán)境,提供了方便、快捷的windows應(yīng)用程序開發(fā)工具。</p><p>  上位機(jī)軟件的作用是實(shí)時(shí)監(jiān)測,數(shù)據(jù)存儲。工作人員可以將計(jì)算機(jī)作為一個(gè)工作站通過上位機(jī)軟件實(shí)時(shí)監(jiān)測溫濕度信息。上位機(jī)軟件還可以也數(shù)據(jù)庫連接,并進(jìn)行存儲溫濕度信息。這樣的歷史數(shù)據(jù)的存儲可以幫助工作人員預(yù)測未來的大致的溫濕度變化提供參考。</p><p>

44、;  4.4.1 用戶登錄模塊</p><p>  用戶登錄模塊使上位機(jī)軟件使用具有權(quán)限(如圖4-8),用戶通過輸入用戶名和密碼進(jìn)行登錄,這樣才能繼續(xù)進(jìn)行其他操作[15]。</p><p>  Delphi7提供了很多組件,可以方便的設(shè)計(jì)軟件的窗體。窗體設(shè)計(jì)使用了TEdit、TLabel、TButton、TDataSource、TADOQuery這些組件[14]。其中核心組件是TDataS

45、ource、TADOQuery。TdataSource組件,也可以稱為數(shù)據(jù)源組件,它為數(shù)據(jù)集組件對象和數(shù)據(jù)感知組件對象提供一個(gè)數(shù)據(jù)流通的通道。TADOQuery組件作用可以執(zhí)行SQL語句。</p><p>  圖4-8 登錄設(shè)計(jì)界面</p><p>  圖4-9 用戶登錄模塊流程圖</p><p>  4.4.2 數(shù)據(jù)采集模塊</p><p&g

46、t;  數(shù)據(jù)采集模塊的界面設(shè)計(jì)(如圖4-7)。同樣使用了TLabel、TButton、TDataSource、TADOQuery等組件。而且還適用TTimer、SPCOMM組件。TTimer組件是定時(shí)器組件。SPCOMM實(shí)現(xiàn)串口通信[11-12]。</p><p>  圖4-7 數(shù)據(jù)采集模塊</p><p>  程序核心設(shè)計(jì)是使用SPCOMM組件中OnReceiveData 事件當(dāng)有數(shù)據(jù)輸

47、入緩存時(shí)將觸發(fā)該事件,在這里可以對從串口收到的數(shù)據(jù)進(jìn)行處理。 Buffer中是收到的數(shù)據(jù), BufferLength是收到的數(shù)據(jù)長度。在OnReceiveData 事件中需要的是設(shè)計(jì)一種方法將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成字符串?dāng)?shù)據(jù),首先定義一個(gè)數(shù)據(jù)類型為String的Str字符串,將以一個(gè)字節(jié)單位存入Str中,然后通過Ord函數(shù) [13]。再利用下面的算法。就可以將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成字符串?dāng)?shù)據(jù)。</p><p>  shidu

48、1:=(Ord(Str[1])*256+Ord(Str[2]))div10;</p><p>  shidu2:=(Ord(Str[1])*256+Ord(Str[2]))mod10;</p><p>  wendu1:=(Ord(Str[3])*256+Ord(Str[4]))div10;</p><p>  wendu2:=(Ord(Str[3])*256+Or

49、d(Str[4]))mod 10;</p><p>  4.4.3 歷史查詢模塊</p><p>  歷史查詢模塊界面設(shè)計(jì)(如圖4-10)同樣是利用TDataSource、TADOQuery組件。只是利用SELECT查詢語句。例如:select * from WS_data。</p><p>  圖4-10 歷史查詢模塊</p><p>&l

50、t;b>  5制作和調(diào)試</b></p><p>  5.1硬件電路的制作和調(diào)試</p><p>  利用protel99se軟件新建后綴名為Sch文件。設(shè)計(jì)下位機(jī)原理圖。并生成電器連線產(chǎn)生后綴名為Net文件(如圖5-1)。</p><p>  圖5-1 原理圖設(shè)計(jì)</p><p>  制作PCB文件。新建后綴名為PCB的

51、文件,然后選擇Design選項(xiàng)中的load nets原理圖中的元器件的封裝就出現(xiàn)在這個(gè)文件中,并進(jìn)行設(shè)計(jì)(如圖5-2)。</p><p>  圖5-2 PCB板設(shè)計(jì)</p><p>  選擇PCBprint選項(xiàng)。進(jìn)行打印預(yù)覽,并行設(shè)計(jì)(如圖5-3)。</p><p>  圖5-3 打印預(yù)覽</p><p>  5.2 下位機(jī)軟件制作和調(diào)試

52、</p><p>  利用Keil軟件設(shè)計(jì)延時(shí),因?yàn)闇貪穸葌鞲衅魇怯脝慰偩€進(jìn)行數(shù)據(jù)傳輸?shù)模允鞘褂醚訒r(shí)信號時(shí)間的長短來判斷數(shù)據(jù)信號并進(jìn)行數(shù)據(jù)傳輸?shù)模ㄈ鐖D5-4)。</p><p>  圖5-4 延時(shí)程序</p><p>  溫濕度傳感器模塊程序設(shè)計(jì),測試并調(diào)試成功(如圖5-5)。</p><p>  圖5-5 溫濕度傳感器模</p

53、><p>  LCD顯示模塊程序設(shè)計(jì),測試并調(diào)試成功(如圖5-4)。</p><p>  圖5-6 LCD顯示模塊</p><p>  5.3 上位機(jī)軟件制作和調(diào)試</p><p>  利用Delphi7軟件設(shè)計(jì)用戶登錄模塊,并調(diào)試成功(如圖5-7)。</p><p>  圖5-7 用戶登錄模塊</p>

54、<p>  數(shù)據(jù)采集模塊設(shè)計(jì),并調(diào)試成功(如圖5-8)。</p><p>  圖5-8 數(shù)據(jù)采集模塊</p><p>  歷史查詢模塊設(shè)計(jì),并調(diào)試成功(如圖5-9)。</p><p>  圖5-9 歷史查詢模塊</p><p>  6上位機(jī)系統(tǒng)整體運(yùn)行過程</p><p>  當(dāng)用戶輸入用戶名和密碼并點(diǎn)擊

55、登錄按鈕時(shí),如果用戶名輸入錯(cuò)誤,下方會出現(xiàn)“用戶名錯(cuò)誤”提示。重新輸入用戶名(如圖6-1)。</p><p>  圖6-1 用戶登錄界面1</p><p>  當(dāng)密碼輸入錯(cuò)誤時(shí),下方會出現(xiàn)“密碼錯(cuò)誤”提示。重新輸入密碼(如圖6-2)。</p><p>  圖6-2 用戶登錄界面2</p><p>  當(dāng)用戶名和密碼輸入正確時(shí),進(jìn)入數(shù)據(jù)采集界面

56、。打開串口(如圖6-3)。</p><p>  圖6-3 數(shù)據(jù)采集界面1</p><p>  打開串口,顯示溫濕度信息。相應(yīng)的指示燈顯示黃色(如圖6-4)。</p><p>  圖6-4 數(shù)據(jù)采集界面2</p><p>  點(diǎn)擊保存數(shù)據(jù)按鈕,相應(yīng)的指示燈變黃,數(shù)據(jù)開始每個(gè)1分鐘保存一次(如圖6-5)。</p><p>

57、  圖6-5 數(shù)據(jù)采集界面3</p><p>  點(diǎn)擊查看歷史記錄。進(jìn)入歷史查詢界面(如圖6-6)。</p><p>  圖6-6 歷史查詢界面</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] UIT. ITU Internet Reports 2005 :The Internet of Thi

58、ngs[R] .2005.</p><p>  [2] 沈蘇彬,范曲立,宗平,毛燕琴,黃維. 物聯(lián)網(wǎng)的體系結(jié)構(gòu)與相關(guān)技術(shù)研究.南京郵電大學(xué)學(xué)報(bào)(自然科學(xué)版). 2009, 29(6)</p><p>  [3] TAN Ying,GODDARD S,PERE2 L C. A prototype architecture for cyber-physical systems[J]. SIGB

59、ED Review, 2008,5(1):5I-52. </p><p>  [4] 李群林.基于多傳感器的溫濕度檢測系統(tǒng)[J].中國儀器儀表,2006,11.</p><p>  [5] 吳桂秀.傳感器應(yīng)用制作入門[M],浙江:浙江科學(xué)技術(shù)出版社,2004:1-15.</p><p>  [6] 萬福君,潘松峰,劉芳.MCS-51單片機(jī)原理、系統(tǒng)設(shè)計(jì)與應(yīng)用[M],

60、北京,清華大學(xué)出版社:2008:260-301. </p><p>  [7] 楊長春,徐守坤,朱正偉.Delphi程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2005:1-2.</p><p>  [8] 金偉正.溫濕度檢測控制系統(tǒng)的研制[J].電子與自動化,2000,2.</p><p>  [9] 佟玲,等.智能溫濕度監(jiān)控系統(tǒng)的組成及發(fā)展[J].農(nóng)機(jī)化研覓, 2

61、006,5.</p><p>  [10] 周兵,等.智能溫濕度調(diào)節(jié)儀[J].儀表技術(shù)與傳感器,2002, 11.</p><p>  [11] 張?zhí)m濤,蘇彥華.Delphi串口通信技術(shù)與工程實(shí)踐[M].北京:人民郵電出版社,2004: 7.</p><p>  [12] 張仿彥,賽奎春.Delphi接口技術(shù)開發(fā)實(shí)例解析[M].北京:機(jī)械工業(yè)出版社,2007: 21

62、.</p><p>  [13] 楊華民,梁水,李方超.Delphi函數(shù)參考大全[M].北京:人民郵電出版社,2006:201-229. </p><p>  [14] 華傳銘,梁水.Delphi函數(shù)組件大全[M].北京:人民郵電出版社,2006:419-423.</p><p>  [15] 梁水,梁冰,宋坤.Delphi范例完全自學(xué)手冊[M].北京:人民郵電出版

63、社,2010:189-230. </p><p>  附錄1 硬件系統(tǒng)原理圖及實(shí)物圖</p><p><b>  硬件原理圖</b></p><p><b>  硬件實(shí)物圖</b></p><p><b>  硬件運(yùn)行實(shí)物圖</b></p><p>  

64、附錄2 上位機(jī)軟件源代碼</p><p>  (1)用戶登錄模塊源代碼</p><p>  unit login;</p><p><b>  interface</b></p><p><b>  uses</b></p><p>  Windows, Messages,

65、SysUtils, Variants, Classes, Graphics, Controls, Forms,</p><p>  Dialogs, StdCtrls, DB, ADODB;</p><p><b>  type</b></p><p>  TForm1 = class(TForm)</p><p>  

66、Label1: TLabel;</p><p>  Label2: TLabel;</p><p>  Label3: TLabel;</p><p>  Edit1: TEdit;</p><p>  Edit2: TEdit;</p><p>  Button1: TButton;</p><p

67、>  Button2: TButton;</p><p>  Label4: TLabel;</p><p>  DataSource1: TDataSource;</p><p>  ADOQuery1: TADOQuery;</p><p>  procedure FormCreate(Sender: TObject);</p

68、><p>  procedure Button1Click(Sender: TObject);</p><p>  procedure Button2Click(Sender: TObject);</p><p><b>  private</b></p><p>  { Private declarations }<

69、/p><p><b>  public</b></p><p>  { Public declarations }</p><p><b>  end;</b></p><p><b>  var</b></p><p>  Form1: TForm1;&l

70、t;/p><p>  implementation</p><p>  uses caiji;</p><p>  {$R *.dfm}</p><p>  procedure TForm1.FormCreate(Sender: TObject);</p><p><b>  begin</b><

71、;/p><p>  edit1.Clear;</p><p>  edit2.Clear;</p><p><b>  end;</b></p><p>  procedure TForm1.Button1Click(Sender: TObject);</p><p><b>  begin

72、</b></p><p>  with ADOQuery1 do</p><p><b>  begin</b></p><p><b>  close;</b></p><p>  SQL.Clear;</p><p>  SQL.Add('select

73、 * from WS_user where UserName='+''''+trim(edit1.Text)+'''');</p><p><b>  open;</b></p><p>  if RecordCount>0 then</p><p><b>

74、;  begin</b></p><p>  if FieldByName('PassWord').AsString=trim(edit2.Text) then</p><p><b>  begin</b></p><p>  form1.Hide;</p><p>  form2.Show

75、;</p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p>  Label4.Caption:='password is wrong';</p>&l

76、t;p>  edit2.Clear;</p><p>  edit2.SetFocus;</p><p><b>  end;</b></p><p><b>  end</b></p><p><b>  else</b></p><p><

77、;b>  begin</b></p><p>  Label4.Caption:='username is wrong';</p><p>  edit1.Clear;</p><p>  edit1.SetFocus;</p><p><b>  end;</b></p>

78、<p><b>  end;</b></p><p><b>  end;</b></p><p>  procedure TForm1.Button2Click(Sender: TObject);</p><p><b>  begin</b></p><p> 

79、 form1.Close;</p><p><b>  end;</b></p><p><b>  end.</b></p><p><b> ?。?)數(shù)據(jù)采集模塊</b></p><p>  unit caiji;</p><p><b>

80、  interface</b></p><p><b>  uses</b></p><p>  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,</p><p>  Dialogs, ExtCtrls, SPComm, StdCtr

81、ls, DB, ADODB, Spin;</p><p><b>  type</b></p><p>  TForm2 = class(TForm)</p><p>  Button1: TButton;</p><p>  Comm1: TComm;</p><p>  Timer1: TTi

82、mer;</p><p>  Label1: TLabel;</p><p>  Label2: TLabel;</p><p>  Label3: TLabel;</p><p>  Label4: TLabel;</p><p>  Label5: TLabel;</p><p>  Sha

83、pe1: TShape;</p><p>  Shape2: TShape;</p><p>  Button2: TButton;</p><p>  Button3: TButton;</p><p>  Button4: TButton;</p><p>  DataSource1: TDataSource;&l

84、t;/p><p>  ADOQuery1: TADOQuery;</p><p>  Label6: TLabel;</p><p>  Label7: TLabel;</p><p>  ComboBox1: TComboBox;</p><p>  SpinEdit1: TSpinEdit;</p>&l

85、t;p>  Label8: TLabel;</p><p>  procedure FormCreate(Sender: TObject);</p><p>  procedure Button1Click(Sender: TObject);</p><p>  procedure Button2Click(Sender: TObject);</p>

86、;<p>  procedure Comm1ReceiveData(Sender: TObject; Buffer: Pointer;</p><p>  BufferLength: Word);</p><p>  procedure Timer1Timer(Sender: TObject);</p><p>  procedure Button3C

87、lick(Sender: TObject);</p><p>  procedure Button4Click(Sender: TObject);</p><p>  procedure ComboBox1Change(Sender: TObject);</p><p>  procedure SpinEdit1Change(Sender: TObject);<

88、;/p><p><b>  private</b></p><p>  { Private declarations }</p><p><b>  public</b></p><p>  { Public declarations }</p><p><b>  e

89、nd;</b></p><p><b>  var</b></p><p>  Form2: TForm2;</p><p>  str,str_w,str_s:string;</p><p>  implementation</p><p>  uses login,ws_data;

90、</p><p>  {$R *.dfm}</p><p>  procedure TForm2.FormCreate(Sender: TObject);</p><p><b>  begin</b></p><p>  Timer1.Enabled:=false;</p><p>  Labe

91、l1.Caption:='';</p><p>  Label2.Caption:='';</p><p><b>  end;</b></p><p>  procedure TForm2.Button1Click(Sender: TObject);</p><p><b> 

92、 begin</b></p><p>  if Button1.Caption='打開串口' then</p><p><b>  begin</b></p><p>  Button1.Caption:='關(guān)閉串口';</p><p>  Shape1.Brush.Color

93、:=clYellow;</p><p>  Comm1.StartComm;</p><p>  ComboBox1.Enabled:=false;</p><p><b>  end</b></p><p><b>  else</b></p><p><b> 

94、 begin</b></p><p>  Button1.Caption:='打開串口';</p><p>  Shape1.Brush.Color:=clWhite;</p><p>  Comm1.StopComm;</p><p>  ComboBox1.Enabled:=true;</p>&

95、lt;p><b>  end;</b></p><p><b>  end;</b></p><p>  procedure TForm2.Button2Click(Sender: TObject);</p><p><b>  begin</b></p><p>  i

96、f Button2.Caption='保存數(shù)據(jù)' then</p><p><b>  begin</b></p><p>  Button2.Caption:='停止保存';</p><p>  Shape2.Brush.Color:=clYellow;</p><p>  Timer1

97、.Enabled:=true;</p><p>  SpinEdit1.Enabled:=false;</p><p><b>  end</b></p><p><b>  else</b></p><p><b>  begin</b></p><p&g

98、t;  Button2.Caption:='保存數(shù)據(jù)';</p><p>  Shape2.Brush.Color:=clWhite;</p><p>  Timer1.Enabled:=false;</p><p>  SpinEdit1.Enabled:=true;</p><p><b>  end;</

99、b></p><p><b>  end;</b></p><p>  procedure TForm2.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;</p><p>  BufferLength: Word);</p><p><b>  var&

100、lt;/b></p><p>  shidu1,wendu1:integer;</p><p>  shidu2,wendu2:integer;</p><p><b>  begin</b></p><p>  SetLength(Str,BufferLength);</p><p>  

101、move(buffer^,pchar(@Str[1])^,bufferlength);</p><p>  shidu1:=(Ord(Str[1])*256+Ord(Str[2]))div 10;</p><p>  shidu2:=(Ord(Str[1])*256+Ord(Str[2]))mod 10;</p><p>  wendu1:=(Ord(Str[3])

102、*256+Ord(Str[4]))div 10;</p><p>  wendu2:=(Ord(Str[3])*256+Ord(Str[4]))mod 10;</p><p>  str_s:=IntToStr(shidu1)+'.'+IntToStr(shidu2)+'%';</p><p>  str_w:=IntToStr(we

103、ndu1)+'.'+IntToStr(wendu2)+'c';</p><p>  Label1.Caption:=str_s;</p><p>  Label2.Caption:=str_w;</p><p><b>  end;</b></p><p>  procedure TFor

104、m2.Timer1Timer(Sender: TObject);</p><p>  var a,b:string;</p><p><b>  begin</b></p><p>  a:=FormatDateTime('yyyy-mm-dd',now());</p><p>  b:=FormatDa

105、teTime('hh:nn',now());</p><p>  with ADOQuery1 do</p><p><b>  begin</b></p><p><b>  close;</b></p><p>  SQL.Clear;</p><p> 

106、 SQL.Add('insert into WS_data values("'+str_w+'","'+str_s+'","'+b+'","'+a+'")');</p><p><b>  execsql;</b></p>

107、<p><b>  end;</b></p><p><b>  end;</b></p><p>  procedure TForm2.Button3Click(Sender: TObject);</p><p><b>  begin</b></p><p>

108、  form1.Show;</p><p>  form2.Hide;</p><p>  form1.Edit1.Text:='';</p><p>  form1.Edit2.Text:='';</p><p>  form1.Edit1.SetFocus;</p><p><

109、b>  end;</b></p><p>  procedure TForm2.Button4Click(Sender: TObject);</p><p><b>  begin</b></p><p>  Button1.Caption:='打開串口';</p><p>  Shap

110、e1.Brush.Color:=clWhite;</p><p>  Comm1.StopComm;</p><p>  Button2.Caption:='保存數(shù)據(jù)';</p><p>  Shape2.Brush.Color:=clWhite;</p><p>  Timer1.Enabled:=false;</p&

111、gt;<p>  form3.Show;</p><p>  form2.Hide;</p><p>  form3.ADOQuery1.Active:=true;</p><p><b>  end;</b></p><p>  procedure TForm2.ComboBox1Change(Sende

112、r: TObject);</p><p><b>  begin</b></p><p>  Comm1.CommName:=ComboBox1.Text;</p><p><b>  end;</b></p><p>  procedure TForm2.SpinEdit1Change(Sende

113、r: TObject);</p><p><b>  begin</b></p><p>  if SpinEdit1.Value>1 then</p><p><b>  begin</b></p><p>  if SpinEdit1.Value>5 then</p>

114、<p>  SpinEdit1.Value:=5;</p><p><b>  end</b></p><p><b>  else</b></p><p>  SpinEdit1.Value:=1;</p><p>  Timer1.Interval:=SpinEdit1.Value*6

115、0*1000;</p><p><b>  end;</b></p><p><b>  end.</b></p><p><b> ?。?)歷史查詢模塊</b></p><p>  unit ws_data;</p><p><b>  in

116、terface</b></p><p><b>  uses</b></p><p>  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,</p><p>  Dialogs, StdCtrls, Grids, DBGrids, DB

117、, ADODB;</p><p><b>  type</b></p><p>  TForm3 = class(TForm)</p><p>  DataSource1: TDataSource;</p><p>  ADOQuery1: TADOQuery;</p><p>  DBGrid1

118、: TDBGrid;</p><p>  Button1: TButton;</p><p>  Button2: TButton;</p><p>  procedure Button1Click(Sender: TObject);</p><p>  procedure Button2Click(Sender: TObject);<

119、/p><p><b>  private</b></p><p>  { Private declarations }</p><p><b>  public</b></p><p>  { Public declarations }</p><p><b>  en

120、d;</b></p><p><b>  var</b></p><p>  Form3: TForm3;</p><p>  implementation</p><p>  uses login,caiji;</p><p>  {$R *.dfm}</p><

121、p>  procedure TForm3.Button1Click(Sender: TObject);</p><p><b>  begin</b></p><p>  form2.Show;</p><p>  form3.Hide;</p><p><b>  end;</b></

122、p><p>  procedure TForm3.Button2Click(Sender: TObject);</p><p><b>  begin</b></p><p>  form3.Close;</p><p>  form2.Close;</p><p>  form1.Close;<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論