基于RS485總線遠程多點分布式溫度監(jiān)控系統(tǒng)畢業(yè)設(shè)計_第1頁
基于RS485總線遠程多點分布式溫度監(jiān)控系統(tǒng)畢業(yè)設(shè)計_第2頁
基于RS485總線遠程多點分布式溫度監(jiān)控系統(tǒng)畢業(yè)設(shè)計_第3頁
基于RS485總線遠程多點分布式溫度監(jiān)控系統(tǒng)畢業(yè)設(shè)計_第4頁
基于RS485總線遠程多點分布式溫度監(jiān)控系統(tǒng)畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、中文摘要在實際生產(chǎn)、生活、工業(yè)控制等各個領(lǐng)域中,溫度是環(huán)境因素不可或缺的一部分,對現(xiàn)場溫度的精確檢測和實時監(jiān)控顯得尤為重要。比如,農(nóng)業(yè)上土壤各個層面上的溫度將會影響植物的生長;在醫(yī)院育嬰房為了達到恒溫也要溫度的測量。在工業(yè)中,料桶里外上限溫度要求不一以及熱處理中工件各個部位的溫度對工件形成后的性能至關(guān)重要等。本文研究的內(nèi)容為基于rs-485總線遠程多點分布式溫度監(jiān)控系統(tǒng),該系統(tǒng)通過硬件設(shè)計,在環(huán)境現(xiàn)場放置多個ds18b20數(shù)字溫度傳感器,利用stc89c516rd+單片機采集溫度數(shù)據(jù)并顯示當前溫度,通過rs-485 串口傳回主控計算機,實現(xiàn)對環(huán)境現(xiàn)場多個分布點的溫度的遠程實時監(jiān)測;在軟件方面,

2、下位機采用c51編寫ds18b20采集溫度數(shù)據(jù)的程序和1602液晶的顯示程序,上位機采用visual basic6.0編寫軟件實現(xiàn)溫度的實時顯示、曲線繪制、高溫報警等功能。由于本系統(tǒng)采用了單線多點數(shù)字化測量技術(shù),具有測量誤差小、抗干擾能力強、快速、可靠、低成本、數(shù)字化與網(wǎng)絡(luò)化等特點。本系統(tǒng)可被廣泛用于糧庫、倉庫、礦井、機房、煤堆、花房、養(yǎng)雞場等場合,有很好的使用價值。關(guān)鍵詞:單片機,rs-485,ds18b20,visual basic6.0,實時監(jiān)測abstractin actual production, living, industrial control and other field

3、s, the temperature is an integral part of environmental factors, the precise on-site detection and real-time temperature monitoring is particularly important. for example, all levels of agriculture on the soil temperature will affect plant growth; nursery at the hospital have in order to achieve con

4、stant temperature measurements. in industry, barrel ceiling inside and outside, and heat treatment in different temperature requirements in various parts of the workpiece after the formation of temperature on the performance of critical parts and so on.the contents of this paper, rs-485 bus based re

5、mote multi-point distributed temperature monitoring system, the system through hardware design, placed in the environmental field over ds18b20 digital temperature sensor, temperature data collected by stc89c516rd microcontroller and display the current temperature, through the rs- returns the host c

6、omputer serial port 485, to achieve distribution of points on the environment than the temperature field of remote real-time monitoring; on the software side, the next crew prepared using c51 ds18b20 temperature data collection procedures and liquid crystal display program 1602, the pc software usin

7、g visual basic6.0 write real-time display of temperature, curve drawing, high temperature alarm. because this system uses a single multi-point digital measurement technology, with measurement error is small, anti-interference ability, quick, reliable, low cost, digital and network characteristics. t

8、his system can be widely used for grain storage, warehouse, mine, the engine room, coal pile, greenhouse, chicken and so on, have a good value in use.keywords:mcu,rs-485,ds18b20,visual basic6.0,real-time monitoring目 錄中文摘要1abstract2目 錄3第一章 緒論51.1 引言51.2 課題背景及研究現(xiàn)狀51.3 本文的主要工作和結(jié)構(gòu)安排6第二章 硬件設(shè)計82.1 引言82.2

9、硬件電路設(shè)計82.2.1 單片機選型82.2.2 最小系統(tǒng)的設(shè)計92.2.3 液晶模塊92.2.4 測溫模塊102.2.5 rs-485串行通信模塊的設(shè)計122.2.6 stc程序下載模塊142.2.7 供電模塊142.2.8 pcb制版152.3 本章小結(jié)16第三章 算法實現(xiàn)173.1 引言173.2 下位機測溫算法研究173.3 上位機算法研究193.3.1 建立坐標系193.3.2 繪制實時動態(tài)曲線213.3.3 pc與單片機串行通信213.4 本章小結(jié)23第四章 軟件設(shè)計244.1 引言244.2 上位機軟件設(shè)計244.2.1 對象窗口設(shè)計244.2.2 程序代碼設(shè)計254.3 下位機

10、軟件設(shè)計27第五章 調(diào)試31第六章 總結(jié)34參考文獻35附錄a36附錄b43致謝50第一章 緒論1.1 引言傳統(tǒng)的測溫系統(tǒng)在測溫點上由傳感元件、信號調(diào)理電路、a/d 轉(zhuǎn)換或t/f 轉(zhuǎn)換、單片機數(shù)據(jù)采集等組成一個完整的微機系統(tǒng);或采用獨立式儀表測量單元,并通過rs232串行口與上位機通訊,系統(tǒng)結(jié)構(gòu)復(fù)雜,成本較高,且采用rs232串行通信,其傳輸距離比較短,一般不超過15m,只能支持點對點通信,不能實現(xiàn)多點溫度同時監(jiān)控。本文設(shè)計了一個基于rs-485總線遠程多點分布式溫度監(jiān)控系統(tǒng),該系統(tǒng)是由上位機和下位機兩大部分組成。下位機完成遠程數(shù)據(jù)采集與控制,它是由stc89c516rd+單片機和若干個數(shù)字溫

11、度傳感器ds18b20 和液晶顯示器、報警電路等組成、可以對64 個測溫點進行數(shù)字化測量。ds18b20采集的溫度數(shù)據(jù)通過單總線方式傳送給單片機進行數(shù)據(jù)處理,具有測溫誤差小、分辨率高、抗干擾能力強、成本低等特點。上位機采用visual basic6.0編寫良好的人機交互界面,可以在線監(jiān)控和顯示所有測溫點實時溫度值,若溫度超過設(shè)定上下限值,系統(tǒng)發(fā)出報警,并實現(xiàn)實時繪制溫度曲線。下位機(單片機)與上位機(pc機)通過rs-485串行口進行數(shù)據(jù)通訊。rs-485最大的通信距離約為1219m,最大傳輸速率為10mb/s,支持多點串行通信。1.2 課題背景及研究現(xiàn)狀在實際生產(chǎn)、生活、工業(yè)控制等各個領(lǐng)域中

12、,溫度是環(huán)境因素不可或缺的一部分,對現(xiàn)場溫度的精確檢測和實時監(jiān)控顯得尤為重要。比如,農(nóng)業(yè)上土壤各個層面上的溫度將會影響植物的生長;在醫(yī)院育嬰房為了達到恒溫也要溫度的測量。在工業(yè)中,料桶里外上限溫度要求不一以及熱處理中工件各個部位的溫度對工件形成后的性能至關(guān)重要等。本文重點研究如何利用ds18b20準確的測量現(xiàn)場溫度,如何通過rs-485遠程串行通信把數(shù)據(jù)傳給上位機,以及如何實現(xiàn)上位機中對溫度的實時顯示、曲線繪制、高溫報警等功能。文獻1中,吳曉燕介紹了以at89c51單片機為控制核心的一種溫度實時測量及控制系統(tǒng)。單片機at89c51能夠根據(jù)溫度傳感器所采集的溫度數(shù)據(jù)來控制溫度在設(shè)定的范圍之內(nèi)。溫

13、度傳感器里的熱敏電阻采用半導(dǎo)體感溫元件,它具有負電阻溫度特性,當溫度升高時,電阻值減小。文獻2中,閆慧蘭等介紹了at89c52單片機與pc機串行通信的實現(xiàn)方法,給出了具體通信接口電路、單片機串行通信程序流程以及利用vb6.0的通信控件mscomm實現(xiàn)pc機串行通信的程序。文獻3中,李湘江等通過對一臺工業(yè)儀表通信協(xié)議進行分析,介紹了用vb6.0開發(fā)微機實時數(shù)據(jù)采集程序的編程技術(shù)。文獻4中,沈顯威等詳述了使用vb和c51實現(xiàn)pc機和單片機串行通信的開發(fā)方法,并簡要地介紹了vb通訊控件及其使用方法,給出了調(diào)試程序。文獻5中,宋輝等通過對omron的c p m i a小型機與上位計算機通信原理和通信方

14、法的研究,介紹如何用vb6.0 實現(xiàn)上位計算機對plc 的實時監(jiān)控。文獻6中,胡曉玲等以單片機at89c51作為溫度監(jiān)控核心部件,采用熱電偶溫度傳感器、運算放大器、a/d轉(zhuǎn)換器等構(gòu)成溫度采集模塊, 通過對采集到的溫度數(shù)據(jù)值進行比例積分微分運算處理,并采用rs 485與上位機進行通信,實現(xiàn)一種溫度監(jiān)控系統(tǒng)的設(shè)計。文獻7中,張良成等設(shè)計了基于arm內(nèi)核的lpcs3c2410的多路溫度監(jiān)控系統(tǒng),給出了系統(tǒng)的硬件電路的設(shè)計方法。該系統(tǒng)由數(shù)字溫度傳感器ds18b20的測溫部分、arm微處理器、uart串口通信、flash數(shù)據(jù)存儲部分和數(shù)碼顯示部分組成,重點描述了硬件電路的設(shè)計與實現(xiàn)。文獻8中,劉春華等采

15、用了以單片機為核心的控制板作為下位采集控制設(shè)備,以力控組態(tài)軟件為上位機設(shè)計界面、后臺管理等,二者結(jié)合組成對多點溫度的實時監(jiān)控。文獻9中,黃小波本以at89s52單片機為控制單元,并采用dallas單線數(shù)字溫度傳感器ds18b20 采集現(xiàn)場溫度數(shù)據(jù)而設(shè)計的遠程溫度控制系統(tǒng),并可根據(jù)需要設(shè)置控制溫度的上、下限,系統(tǒng)具有超過設(shè)置上、下限溫度自動報警等功能。文獻10中,盛琥介紹了一種基于485總線的溫度監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)。系統(tǒng)采用上位機和下位機設(shè)計,下位機通過溫度傳感器監(jiān)測溫度,與預(yù)置溫度比較后執(zhí)行任務(wù);上位機和下位機通過主從應(yīng)答方式交換數(shù)據(jù)信息。在上位機端的pc上實現(xiàn)了對多路傳感器傳來的溫度信息入

16、庫保存、打印、溫度變化歷史曲線繪制等功能。文獻11中,李智祥等介紹一種基于單片機的多點溫度監(jiān)控系統(tǒng)。上位機通過rs-485總線與下位機通信,下位機將采集的溫度信息傳送給上位機,并執(zhí)行上位機的控制命令。給出系統(tǒng)總體結(jié)構(gòu),闡述了系統(tǒng)硬件電路和和軟件實現(xiàn)方法,設(shè)計了上位機與下位機之間的通信協(xié)議,解決了8 位單片機多機通信的問題。本文正是從以上分析出發(fā),展開研究工作,采用stc89c516rd+單片機和若干個數(shù)字溫度傳感器ds18b20組成下位機進行檢測現(xiàn)場溫度,通過rs-485遠程串行通信把數(shù)據(jù)傳給上位機,實現(xiàn)溫度的實時顯示、曲線繪制、高溫報警等功能,本系統(tǒng)經(jīng)過實踐的驗證,簡單實用,且穩(wěn)定可靠,具有

17、深入研究的價值和很好的現(xiàn)實意義。1.3 本文的主要工作和結(jié)構(gòu)安排本文首先是多點分布式溫度監(jiān)控系統(tǒng)的硬件設(shè)計,硬件是軟件設(shè)計的基礎(chǔ),硬件設(shè)計得好,系統(tǒng)的穩(wěn)定性就會得到提高,分別對單片機選型、最小系統(tǒng)的設(shè)計、液晶模塊、測溫模塊、rs-485串行通信模塊、stc程序下載模塊、供電模塊進行了研究和介紹。其次研究的是算法,包括測溫的算法,上位機繪制實時曲線的算法研究。再次是軟件的設(shè)計,有了硬件和算法,利用c51語言實現(xiàn)下位機的編程,利用vb語言實現(xiàn)上位機的編程,上、下位機通信,實現(xiàn)多點分布式溫度監(jiān)控系統(tǒng)的功能。最后是調(diào)試,調(diào)試包括仿真和實物的調(diào)試,在實踐中不斷的改進程序,實現(xiàn)更完善的功能。本論文的結(jié)構(gòu)安

18、排為:第一章 緒論,介紹課題的背景和意義,以及本文的主要工作和結(jié)構(gòu)安排;第二章 硬件設(shè)計,研究和介紹單片機選型、最小系統(tǒng)的設(shè)計、液晶模塊、測溫模塊、rs-485串行通信模塊、stc程序下載模塊、供電模塊;第三章 算法實現(xiàn),測溫的算法,上位機繪制實時曲線的算法是本章所要解決的問題;第四章 軟件設(shè)計,利用c51語言實現(xiàn)下位機的編程,利用vb語言實現(xiàn)上位機的編程,從而實現(xiàn)預(yù)定功能;設(shè)計要求: 主機可監(jiān)控不少于3個點的溫度變化,輪流顯示各點溫度; 溫度測量精度0.5; 顯示器分兩段,第一段1位十進制數(shù),顯示測溫點號;第二段2位十進制數(shù),顯示對應(yīng)點的測量溫度; 所連接的測溫點中只要有任何一個測量點的溫度

19、達到高溫值時應(yīng)給出報警信號,當所有點的溫度值降低到安全值后,停止報警。第五章 調(diào)試,調(diào)試包括仿真和實物的調(diào)試;第六章 總結(jié),對本文做了展望和總結(jié),以及還需在哪些方面應(yīng)作進一步的深入研究。第二章 硬件設(shè)計2.1 引言本章進行多點分布式溫度監(jiān)控系統(tǒng)的硬件設(shè)計,硬件是軟件設(shè)計的基礎(chǔ),硬件設(shè)計得好,系統(tǒng)的穩(wěn)定性就會得到提高。本章分別對單片機選型、最小系統(tǒng)的設(shè)計、液晶模塊、測溫模塊、rs-485串行通信模塊、stc程序下載模塊、供電模塊進行了研究和介紹。2.2 硬件電路設(shè)計本系統(tǒng)的硬件電路設(shè)計如下:圖2-1 整體電路2.2.1 單片機選型本系統(tǒng)的mcu采用stc89c516rd+單片機。stc89c51

20、6rd+單片機采用51核,與8051完全兼容,縮短開發(fā)周期,且具有64kb的flash rom,1280byte的ram,最高時鐘頻率為080mhz,內(nèi)置系統(tǒng)isp監(jiān)控程序,超強抗干擾,超強抗靜電,高速,高可靠,低價格,支持在線編程,內(nèi)置看門狗電路,看門狗的主要功能就是當程序發(fā)生故障時能使受控系統(tǒng)重新啟動。2.2.2 最小系統(tǒng)的設(shè)計1、復(fù)位電路復(fù)位電路采用上電復(fù)位兼手動復(fù)位,reset按鍵未按下時,c3和r3組成rc充放電電路,當單片機接通電源rst引腳上有兩個機器周期以上的高電平時,單片機就進入上電復(fù)位狀態(tài),1n4148二極管的作用是斷電后,加速電容的放電。單片機工作以后,如按下按鍵rese

21、t鍵,rst引腳就得到一個高電平,從而使單片機重新復(fù)位。圖2-2 復(fù)位電路2、時鐘電路由于本系統(tǒng)中,下位機與上位機串行通信,所以時鐘電路采用外接石英晶體的內(nèi)部時鐘方式,晶振的頻率選用11.0592mhz,c2、c3選用22pf的瓷片電容,對振蕩頻率起微調(diào)作用。圖2-3 時鐘電路2.2.3 液晶模塊本系統(tǒng)測得的現(xiàn)場溫度值在tc1602a液晶上顯示。tc1602a液晶是字符點陣型液晶,工作電壓是5v,顯示容量是162個字符,每個字符由57點陣組成。示意圖為圖2-4。圖2-4 tc1602a液晶示意圖引腳個數(shù)為16個,如表2-1。表2-1 tc1602a引腳說明引腳號符號引腳說明1vss電源地2vd

22、d電源+5v3vo調(diào)節(jié)對比度的引腳,調(diào)節(jié)此腳上的電壓可以改變黑白對比度4rs是命令/數(shù)據(jù)選擇引腳,該引腳為1是將進行數(shù)據(jù)操作;為0是將進行命令操作。5r/w是讀/寫選擇端,該引腳為1是要對液晶進行讀操作;為0時是要進行寫操作。6e使能端,此引腳為01是讀允許,10寫允許。714db0db78位雙向并行總線。轉(zhuǎn)輸數(shù)據(jù)或指令狀態(tài)字。15a背光源的正極,接+5v。16k背光源的負極,接地。tc1602a液晶與單片機采用模擬口線方式連接,如圖2-5。vo引腳接10k電位器,用于調(diào)節(jié)此腳上的電壓,改變對比度。rs引腳接單片機的p3.2引腳,用于選擇命令或數(shù)據(jù)操作,r/w引腳接單片機的p3.3引腳,用于讀

23、/寫選擇,e接單片機的p3.4引腳,是使能端,db0db7接單片機的p1口,用于傳送數(shù)據(jù)或命令。圖2-5 液晶模塊電路2.2.4 測溫模塊本系統(tǒng)測溫采用dallas半導(dǎo)體公司的ds18b20單線數(shù)字溫度傳感器,ds18b20是世界上第一片支持“一線總線”接口的溫度傳感器,ds18b20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。獨特的單線接口方式,ds18b20 在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與ds18b20 的雙向通訊。體積更小、適用電壓更寬、更經(jīng)濟,測量溫度范圍為-55c+125c,在-10+85c范圍內(nèi),精度為0.5c?,F(xiàn)場溫度直

24、接以“一線總線”的數(shù)字方式串行傳送給cpu,同時可傳送crc校驗碼,具有極強的抗干擾糾錯能力,大大提高了系統(tǒng)的抗干擾性,適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。ds18b20可以程序設(shè)定912位的分辨率,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫。在9 位分辨率時最多在93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在eeprom中,掉電后依然保存。ds18b20 內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻rom、溫度傳感器、非揮發(fā)

25、的溫度報警觸發(fā)器th 和tl配置寄存器。ds18b20的管腳排列如圖2-6。圖2-6 ds18b20管腳排列本系統(tǒng)中,測溫模塊電路如2-7。實踐證明,采用ds18b20測溫,比模擬器件ad590在精度、價格,以及外圍電路方面都存在優(yōu)勢。圖2-7 測溫模塊電路2.2.5 rs-485串行通信模塊的設(shè)計本系統(tǒng)的rs-485串行通信,驅(qū)動器采用sn75176芯片,工作方式為半雙工,同一時刻只能接收或發(fā)送。1rs-485電平rs-485的信號傳輸采用兩線間的電壓差來表示邏輯1和邏輯0。由于發(fā)送方需要兩根傳輸線,接收方也需要兩根傳輸線。傳輸線采用差動信道,所以它的干擾抑制性極好,又因為它的阻抗低,無接地

26、問題,所以傳輸距離可達1200米,傳輸速率可達1mbps。rs-485是一點對多點的通信接口,一般采用雙絞線的結(jié)構(gòu)。rs-485協(xié)議為a、b間的電壓差滿足如下條件: 0.2v,表示信號“1”。 0.2v,表示信號“0”。 0.2v0.2v,狀態(tài)不定,不能工作。2偏置電阻的計算在rs-485總線中,上拉電阻和下拉電阻統(tǒng)稱為偏置電阻,它們的主要作用就是在線路所有驅(qū)動器都釋放總線時,即線路進入空閑狀態(tài)后,讓所有節(jié)點的ab端電壓在200mv或200mv以上(即0.2v),即線路上是停止位1。這樣一來,即使線路中出現(xiàn)了比較小的反射信號或干擾,掛接在總線上的數(shù)據(jù)接收器也不會由于這些信號的到來而產(chǎn)生誤動作。

27、如圖2-8:圖2-8 偏置電阻對反射信號的影響對于有1節(jié)點,有120歐終端電阻的rs-485網(wǎng)絡(luò),其偏置電阻的計算:計算節(jié)點總負載每個節(jié)點的負載阻抗為12k歐,1個節(jié)點的并行阻抗為:12k歐。如果是2個節(jié)點就是6 k歐。計算總線負載中的并行阻抗再并入終端電阻120歐,則總線負載約為:120歐。計算最小偏置電流為了滿足最小置1電壓200mv,所需的最小偏置電流為:200/120=1.7ma計算偏置電阻總和在5v的電壓下,提供最小偏置電流所需的最大串聯(lián)電阻為:5/1.7=2941歐減去已經(jīng)加在線上的120歐,就是上拉和下拉阻抗的和:2941-120=2821歐計算上拉和下拉電阻最大上拉電阻=最大下

28、拉電阻=2821/2=1.4k歐也就是說,偏置上下拉為1.4k歐為最大。這個1.4k歐是所有節(jié)點上的總的偏置電阻。即+5v-r1-a1-r5-b1-r3-0v構(gòu)成回路,計算r5兩端的電壓就是a、b間的電壓差。3終端電阻的計算在最末端的a和b上串聯(lián)的電阻稱終端電阻。如2-9:圖2-9 半雙工通訊的終端電阻rs-485是差分電平通信,在距離較長或速率較高時,線路存在回波干擾,此時需要在最末端的a和b上串聯(lián)終端電阻。終端電阻是為了消除在通信電纜中的信號反射在通信過程中,有兩種信號因?qū)е滦盘柗瓷洌鹤杩共贿B續(xù)和阻抗不匹配。阻抗不連續(xù),信號在傳輸線末端突然遇到電纜阻抗很小甚至沒有,信號在這個地方就會引起反

29、射。這種信號反射的原理,與光從一種媒質(zhì)進入另一種媒質(zhì)要引起反射是相似的。消除這種反射的方法,就必須在電纜的末端跨接一個與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續(xù)。由于信號在電纜上的傳輸是雙向的,因此,在通訊電纜的另一端可跨接一個同樣大小的終端電阻。引起信號反射的另個原因是數(shù)據(jù)收發(fā)器與傳輸電纜之間的阻抗不匹配。這種原因引起的反射,主要表現(xiàn)在通訊線路處在空閑方式時,整個網(wǎng)絡(luò)數(shù)據(jù)混亂。終端電阻會降低線路帶負載能力,因此我們推薦在通信速率大于19.2kps或傳輸距離超過300米時,才需加終端電阻。rs485終端電阻的取值范圍為60180。當傳輸距離小于300米時,不須加終端電阻。4rs-48

30、5串行通信電路根據(jù)以上的分析和計算,設(shè)計出如圖2-10的rs-485串行通信電路。圖2-10 rs-485串行通信電路2.2.6 stc程序下載模塊本系統(tǒng)還包含了stc程序下載模塊,可以方便把程序下載到單片機中,然后運行。圖2-11 stc程序下載模塊電路本模塊還可用于與上位機進行rs232通信,max232用來作232電平和ttl電平之間的轉(zhuǎn)換,能實現(xiàn)全雙工雙向通信,通信速率和電氣特性有關(guān)。采用db9接口。2.2.7 供電模塊本系統(tǒng)采用穩(wěn)壓電源供電,電路如圖2-12圖2-12 電源電路s1開關(guān)接下,系統(tǒng)上電,電源指示燈亮。2.2.8 pcb制版本系統(tǒng)采用protel 99se軟件制版,適用于

31、批量生產(chǎn),制版電路如圖2-13。圖2-13 制版電路2.3 本章小結(jié)本章對硬件電路的設(shè)計進行了研究,分別對單片機選型、最小系統(tǒng)的設(shè)計、液晶模塊、gps接收模塊的設(shè)計、存儲模塊、stc程序下載模塊、供電模塊進行了研究和介紹。硬件是系統(tǒng)得以實現(xiàn)的物質(zhì)基礎(chǔ),只有硬件設(shè)計得正確,抗干擾能力強,軟件才能穩(wěn)定的工作,整機效果才會比較穩(wěn)定可靠,由此可見硬件設(shè)計的重要性。本章硬件電路在設(shè)計過程中查閱了很多的資料,也做了相應(yīng)的實驗來保證系統(tǒng)穩(wěn)定性。第三章 算法實現(xiàn)3.1 引言在程序的編寫過程中涉及到一些算法,算法如果好,則程序編寫就簡潔。本章重點研究下位機的測溫算法和上位機算法,其中包括如何建立坐標系、繪制實時

32、動態(tài)曲線,以及pc如何與單片機串行通信,本章的研究正是為后續(xù)研究做準備。3.2 下位機測溫算法研究ds18b20中的溫度傳感器可完成對溫度的測量,本算法以12位轉(zhuǎn)化為例,用16位符號擴展的二進制補碼讀數(shù)形式提供,以0.0625/lsb形式表達,其中s為符號位。圖3-112位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18b20的兩個8位的ram中,msb中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際溫度。例如+125的數(shù)字輸出為07d0h,+25.0625的數(shù)字輸出為0

33、191h,-25.0625的數(shù)字輸出為ff6fh,-55的數(shù)字輸出為fc90h。表3-1溫度c數(shù)據(jù)輸出(二進制)數(shù)據(jù)輸出(十六進制)+125c0000 0111 1101 000007d0h+85c0000 0101 0101 00000550h+25.0625c0000 0001 1001 00010191h+10.125c0000 0000 1010 001000a2h+0.5c0000 0000 0000 10000008h0c0000 0000 0000 00000000h-0.5c1111 1111 1111 1000fff8h-10.125c1111 1111 0101 1110f

34、f5eh-25.0625c1111 1111 0110 1110ff6eh-55 c1111 1100 1001 0000fc90h程序中,將高字節(jié)msb與低字節(jié)lsb合成一個整形變量。由于計算機中對于負數(shù)是利用補碼來表示的。若是負值,讀取出來的數(shù)值是用補碼表示的,可直接賦值給int型的value變量,如下:tmpvalue = msb;tmpvalue 0 ? 0.5 : -0.5); /大于0加0.5, 小于0減0.5tmp = abs(value);如果最后想要把數(shù)據(jù)顯示在液晶上,需要提取各個位和ascii轉(zhuǎn)換,具體為:提取百位并ascii轉(zhuǎn)換disp_buff1=tmp/10000;d

35、isp_buff1+=0x30;提取十位并ascii轉(zhuǎn)換t1=tmp%10000;disp_buff2=tmp/1000;/提取十位disp_buff2+=0x30;/ascii轉(zhuǎn)換提取個位并ascii轉(zhuǎn)換t2=tmp%1000; disp_buff3=t2/100;/提取個位disp_buff3+=0x30;/ascii轉(zhuǎn)換提取十分位并ascii轉(zhuǎn)換t3=t1%100;disp_buff5=t3/10;/提取十分位disp_buff5+=0x30;/ascii轉(zhuǎn)換提取百分位并ascii轉(zhuǎn)換disp_buff6=t3%10;/提取百分位disp_buff6+=0x30;/ascii轉(zhuǎn)換符號位的

36、處理是直接判斷value 變量是否大于0,如下: if(value x結(jié)構(gòu)接收數(shù)據(jù)字節(jié)和尾字節(jié)(字符),接收好后,通過尾字節(jié)(字符)判斷數(shù)據(jù)完整性,如果數(shù)據(jù)完整則處理數(shù)據(jù),最后設(shè)置mscomm1.rthreshold=x來打開oncomm接收事件,等待下一次oncomm事件產(chǎn)生。2.定時器查詢法(適用于定長或不定長數(shù)據(jù)的接收)對于數(shù)據(jù)包方式收發(fā)數(shù)據(jù)以及不需即時響應(yīng)情況,用查詢法更好些。通信協(xié)議:一般單片機以字符形式發(fā)送,vb可以以文本形式接收,也可以以二進制形式接收。設(shè)置mscomm1.inputlen = 0,一次從緩沖區(qū)讀取全部字節(jié)發(fā)送的數(shù)據(jù)首尾加判斷字符,首字符判斷什么時候應(yīng)該接收了,尾

37、字符判斷數(shù)據(jù)完整性。如:下位機不停地發(fā)數(shù)據(jù),是這樣的格式a010203040506bbaa111213141516d等等。其中a是頭,d是尾,每一個a和d之間的數(shù)是有效數(shù)據(jù)。timer事件中,首先判斷幀數(shù)據(jù)的開始字節(jié)(字符),收到首字節(jié)(字符)后,設(shè)置tmrcomm.enabled = false來關(guān)閉定時器,然后用查詢法dodoeventsloop until .inbuffercount x結(jié)構(gòu)接收數(shù)據(jù)字節(jié)和尾字節(jié)(字符),接收好后,通過尾字節(jié)(字符)判斷數(shù)據(jù)完整性,如果數(shù)據(jù)完整則處理數(shù)據(jù),最后設(shè)置tmrcomm.enabled = true來打開定時器,等待下一次timer事件產(chǎn)生。3.

38、4 本章小結(jié)在本章中,對下位機和上位機涉及的算法進行了研究。下位機中,研究了如何利用ds18b20實現(xiàn)測溫,上位機研究了如何利用vb軟件建立坐標系、繪制實時動態(tài)曲線,以及如何實現(xiàn)上位機與下位機串行通信,并列舉了一些實例,為后面軟件編程打下了理論基礎(chǔ)。第四章 軟件設(shè)計4.1 引言本系統(tǒng)下位機采用c51編程,使用c51語言開發(fā)速度快,代碼可重復(fù)使用,程序結(jié)構(gòu)清晰,易懂易維護,對項目非常適用。c51語言對匯編語言進行了抽象,具有如下優(yōu)點:(1) 更符合人類思維習(xí)慣,開發(fā)效率高、時間短。(2) 模塊化。 (3) 可移植性好。 (4) 提供數(shù)學(xué)函數(shù)并支持浮點運算。 (5) 程序可讀性和可維護性強。 c5

39、1語言也有缺點,比如實時性通常要比匯編差。在編寫匯編的時候可以清楚的知道每一條指令究竟要多少個機器周期,但是在c中掌控準確的時間稍微困難一些。綜合以上,上位機采用c51編程。本系統(tǒng)上位機采用pc即計算機,監(jiān)控界面采用visual basic 6.0編程,visual basic繼承了basic的優(yōu)點,是微軟公司于1991年推出的基于窗口的可視化程序設(shè)計語言,既簡單易行,又吸收了面向?qū)ο蟪绦蛟O(shè)計的新思維,使其功能更加加強,開發(fā)周期短。4.2 上位機軟件設(shè)計4.2.1 對象窗口設(shè)計對象窗口設(shè)計采用圖片框(picturebox)控件、命令按鈕(commandbutton)、形狀(shape)、定時器

40、(timer)和mscomm串行通信控件組成,報警燈使用shape控件制作而成,可以改變其填充顏色來指示溫度是否正常。如圖4-1:圖4-1 對象窗口運行后繪制的坐標系如下圖4-2:圖4-2 坐標系4.2.2 程序代碼設(shè)計流程圖如圖4-3:圖4-3 流程圖4.3 下位機軟件設(shè)計本系統(tǒng)采用c51編程,并模塊化,編制以下子程序:(1)主程序模塊(2)液晶顯示模塊(3)測溫模塊(4)串口通信模塊模塊化編程,方便程序的移植和閱讀。1. main主程序模塊的設(shè)計:圖4-4 main主程序流程圖2. 串行通信模塊的設(shè)計圖 4.2.2 串行接收中斷子程序流程圖圖4-5 串行發(fā)送子程序流程圖3. 測溫模塊的設(shè)計

41、圖4-6 測溫子程序流程圖4 .液晶顯示模塊的設(shè)計圖4-7 液晶顯示子程序流程圖第五章 調(diào)試把硬件和軟件設(shè)計好后,就進入調(diào)試階段了,調(diào)試如果通過,就可以批量生產(chǎn)pcb板了。1. 測溫系統(tǒng)仿真調(diào)試當把ds18b20的測溫程序和1602lcd顯示程序編好后,把程序加載到proteus軟件繪制的單片機芯片中進行仿真,如圖5-1,進行調(diào)試,如果發(fā)現(xiàn)程序有缺陷,繼續(xù)修改程序直到滿意為止。圖5-1 測溫系統(tǒng)仿真調(diào)試2. 下位機調(diào)試仿真通過后,把程序用stc下載軟件通過下載線燒到單片機中,上電調(diào)試下位機,如圖5-2。圖5-2 下位機調(diào)試3. 上位機的調(diào)試下位機調(diào)試通過后,用vb軟件編好上位機程序后,用下位機

42、和上位機進行串行通信聯(lián)調(diào),如圖5-3和5-4。圖5-3 上位機運行界面-溫度正常圖5-4 上位機運行界面-溫度正常第六章 總結(jié)在本文中,通過硬件設(shè)計和軟件設(shè)計,實現(xiàn)對環(huán)境現(xiàn)場多個分布點的溫度的遠程實時監(jiān)測,上位機可實現(xiàn)對現(xiàn)場溫度的實時顯示、曲線繪制、高溫報警等功能。本系統(tǒng)具有測量誤差小、抗干擾能力強、快速、可靠、低成本、數(shù)字化與網(wǎng)絡(luò)化等特點,可被廣泛用于糧庫、倉庫、礦井、機房、煤堆、花房、養(yǎng)雞場等場合,有很好的使用價值。由于時間比較倉促,以及自身專業(yè)水平的不足,作者深知本文對該領(lǐng)域所做的研究還不夠全面,覺得應(yīng)在以下幾個方面應(yīng)作進一步的深入研究:(1)在硬件設(shè)計方面對如何能更多的提高抗干擾,提高

43、系統(tǒng)穩(wěn)定性,以及減少系統(tǒng)功耗作更多的研究。(2)在算法上還需繼續(xù)改進,使測量測量的溫度誤差更小。(3)在上位機軟件編程方面對代碼還需進一步優(yōu)化,使之能夠很準確的反映現(xiàn)場溫度,并且實時性要非常好。(4)在本文研究的基礎(chǔ)上,可以嘗試把無線通信技術(shù)引入到系統(tǒng)中,從而實現(xiàn)下位機與上位機的無線通信。參考文獻1 吳曉燕. 一種基于at89c51智能化溫度監(jiān)控系統(tǒng)的設(shè)計j. 科技信息,2009,32:5025032 閆慧蘭等. at89c52單片機與vb串行通信的實現(xiàn)j. 微計算機信息,2003,19(12):65663 李湘江,彭建. 基于vb的實時數(shù)據(jù)采集程序設(shè)計j.微計算機信息,2003,19(10)

44、:38404 沈顯威等. 溫控系統(tǒng)中vb實現(xiàn)的pc機與單片機串行通訊j.微計算機信息,2003,19(2):37385 宋輝,李坤. 用vb6.0實現(xiàn)上位機對多個plc的監(jiān)控j.電氣時代,2003,19(2):17196 胡曉玲,康海靜. 一種基于單片機的溫度監(jiān)控系統(tǒng)設(shè)計j.現(xiàn)代電子技術(shù),2009,304(17):95977 張良成,力量. 基于arm 的花房溫度監(jiān)控系統(tǒng)的硬件設(shè)計j.福建電腦,2010:1441458 劉春華,高繼森. 基于組態(tài)軟件與單片機的多點溫度監(jiān)控系統(tǒng)總體設(shè)計j. 宜春學(xué)院學(xué)報,2008,30(4):51529 黃小波. 基at89s52單片機與ds18b20的溫度監(jiān)控

45、系統(tǒng)j.微計算機信息,2008,24(102):11912010 盛琥. 基于485 總線的溫度監(jiān)控系統(tǒng)j.電子產(chǎn)品世界,2008:969711 李智祥,陳瑞. 多點溫度監(jiān)控系統(tǒng)的設(shè)計j.現(xiàn)代電子設(shè)計,2009,290(3):14014212 stc89c516rd+芯片手冊13 范逸之,陳立元. visual basic與rs-232串行通訊控制m.北京:清華大學(xué)出版社, 200214 元萊濱. visual basic程序設(shè)計m.第2版.北京:清華大學(xué)出版社, 201015 馬忠梅等. 單片機的c語言應(yīng)用程序設(shè)計m.第4版.北京:北京航空航天大學(xué)出版社, 200716 吳國經(jīng)主編. 單片機

46、應(yīng)用技術(shù)m. 北京:中國電力出版社,200417 周堅等. 單片機應(yīng)用與接口技術(shù)m. 北京:機械工業(yè)出版社,2010附錄a上位機程序:option explicitprivate declare function hidecaret lib user32 (byval hwnd as long) as longconst max_x as long = 16const max_y as long = 40dim dttime as date 時間值private arr(max_x) as single 采樣數(shù)組private arrindex as long 采樣序號dim bytreceived(8) as byte 字節(jié)數(shù)據(jù)類型數(shù)組,用來存儲接收到的一組字節(jié)數(shù)據(jù)*畫坐標軸*private sub drawaxis(picx as picturebox) d

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論