工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)-畢業(yè)論文_第1頁
工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)-畢業(yè)論文_第2頁
工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)-畢業(yè)論文_第3頁
工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)-畢業(yè)論文_第4頁
工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì)-畢業(yè)論文_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、更多論文 畢業(yè)設(shè)計(jì)(論文)說明書作 者: 學(xué) 號(hào): 系 : 計(jì)算機(jī)工程系 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 題 目: 工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)設(shè)計(jì) 畢業(yè)設(shè)計(jì)(論文)中文摘要 以pc機(jī)或工業(yè)控制機(jī)為上位機(jī),集中顯示并管理下位機(jī);以單片機(jī)作為現(xiàn)場(chǎng)測(cè)控單元,采用rs485總線連接上位機(jī)和下位機(jī)測(cè)控單元的測(cè)控網(wǎng)絡(luò),可以實(shí)現(xiàn)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)的采集處理與傳輸。系統(tǒng)由pc機(jī)和單片機(jī)系統(tǒng)構(gòu)成小型的分散式測(cè)控系統(tǒng),下位機(jī)使用atmel公司的at89c2051單片機(jī),溫度傳感器采用美國dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器ds18b20,進(jìn)行溫度數(shù)據(jù)的采集,然后通過rs-485總線傳輸?shù)絧c機(jī),從而實(shí)現(xiàn)對(duì)溫度數(shù)據(jù)的采集

2、處理和傳輸,系統(tǒng)的溫度標(biāo)定完全按照計(jì)量產(chǎn)品的規(guī)范進(jìn)行,使得測(cè)量精度達(dá)到0.5級(jí)。上位機(jī)接口軟件采用visual basic語言進(jìn)行編寫。通過本系統(tǒng)可以實(shí)現(xiàn)對(duì)工業(yè)現(xiàn)場(chǎng)溫度的網(wǎng)絡(luò)測(cè)控。系統(tǒng)由溫度測(cè)量模塊、溫度采集模塊、通信模塊、溫度查詢模塊、溫度監(jiān)控模塊五個(gè)部分組成關(guān)鍵詞 溫度 網(wǎng)絡(luò)監(jiān)控 硬件設(shè)計(jì) rs485 現(xiàn)場(chǎng)總線畢業(yè)設(shè)計(jì)(論文)外文摘要title the design of temperature network supervisory system based industry fieldbus abstractcomputer or industry control computer c

3、an display and manage the single chip;field monitor unit is based on the single chip can collect deal with and transmit the data by the rs-fieldbus between pc and single chip.the (distributed control system,dcs) system is composed of pc and the single chip system,the lower machine use the at89c2051

4、single chip which come from the company of atmel,the temperature sensor use numeric temperature sensor-ds18b20 which come from america company of dallas to carry on the data collection,then transmit the data to pc through the rs-485 fieldbus,it can finish collecting and tansferring the temperature d

5、ata, the system temperature demarcates defers to the standard of the measurement product completely, it makes the measuring accuracy to achieve 0.5 level.the interface function of the pc use visual basic language.the system can monitor the temperature of the industry field.the system is composed of

6、the temperature measure module,the temperature collection module,the temperature inquiry module and the temperature monitoring module.keyword: temperature network monitor and control hardware design rs485 bus fieldbus 目 錄1 引言12 溫度監(jiān)控系統(tǒng)總體方案設(shè)計(jì)23 溫度監(jiān)控系統(tǒng)設(shè)計(jì)33.1 溫度監(jiān)控系統(tǒng)硬件設(shè)計(jì)33.2 溫度監(jiān)控系統(tǒng)軟件設(shè)計(jì)44 溫度監(jiān)控系統(tǒng)詳細(xì)設(shè)計(jì)44.1 硬

7、件設(shè)計(jì)54.2 軟件設(shè)計(jì)64.3 單片機(jī)外圍電路165 系統(tǒng)調(diào)試與測(cè)試185.1 電路部分測(cè)試185.2 下位機(jī)軟件調(diào)試與測(cè)試185.3 上位機(jī)軟件調(diào)試與測(cè)試195.4 系統(tǒng)整體測(cè)試215.5 ds18b20在使用中應(yīng)當(dāng)注意問題286 溫度監(jiān)控系統(tǒng)的不足與擴(kuò)展29結(jié)論30致謝31參考文獻(xiàn)32附錄33附錄a 芯片相關(guān)資料33附錄b 總線介紹42附錄c451 引言溫度是工業(yè)生產(chǎn)中常見的工藝參數(shù)之一,任何物理變化和化學(xué)變化都與溫度密切相關(guān)。通過對(duì)溫度的監(jiān)控可以判斷設(shè)備的工作情況,從而使工作人員做出正確的判斷和操作,因此溫度監(jiān)控是工業(yè)生產(chǎn)自動(dòng)化的重要任務(wù)。溫度傳感器是最早開發(fā),應(yīng)用最廣的一類傳感器。從

8、17世紀(jì)初伽利略發(fā)明溫度計(jì)開始,人們開始利用溫度進(jìn)行測(cè)量。真正把溫度變成電信號(hào)的傳感器是1821年由德國物理學(xué)家賽貝發(fā)明的,這就是后來的熱電偶傳感器。隨著集成電路技術(shù)的發(fā)展,單片微型計(jì)算機(jī)的功能也不斷增強(qiáng),許多高性能的新型機(jī)種不斷涌現(xiàn)出來。單片機(jī)以其功能強(qiáng)、體積小、可靠性高、造價(jià)低和開發(fā)周期短等優(yōu)點(diǎn),稱為自動(dòng)化和各個(gè)測(cè)控領(lǐng)域中廣泛應(yīng)用的器件,在工業(yè)生產(chǎn)中稱為必不可少的器件,再加上單片機(jī)與溫度傳感器的結(jié)合便構(gòu)成了溫度監(jiān)控系統(tǒng)。溫度監(jiān)控是工業(yè)生產(chǎn)中的一個(gè)重要環(huán)節(jié),尤其在環(huán)境及其惡劣和復(fù)雜的工業(yè)現(xiàn)場(chǎng),溫度監(jiān)控更是起著不可替代的作用。因此,工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)就應(yīng)孕而生了。但是由于目前許多溫度監(jiān)控

9、系統(tǒng)所采用的溫度傳感器的輸出是一個(gè)變化的模擬電壓量,不能與計(jì)算機(jī)采集系統(tǒng)直接接口,需要先進(jìn)行轉(zhuǎn)化,才能送入計(jì)算機(jī)。這就使得對(duì)于多點(diǎn)分布式的溫度測(cè)量帶來了不便,這體現(xiàn)在接線多,信號(hào)處理復(fù)雜等方面。 隨著計(jì)算機(jī)、通信、網(wǎng)絡(luò)控制等技術(shù)的發(fā)展,工業(yè)監(jiān)控系統(tǒng)已成為許多工業(yè)企業(yè)中非常重要的部分。加之現(xiàn)場(chǎng)總線技術(shù)的日趨成熟及數(shù)字溫度傳感器的出現(xiàn),使得現(xiàn)場(chǎng)總線技術(shù)和數(shù)字溫度傳感器更多的用于工業(yè)監(jiān)控系統(tǒng)中來,從而使得工業(yè)監(jiān)控系統(tǒng)的功能更加強(qiáng)大,監(jiān)控的范圍更加的廣泛。本系統(tǒng)的溫度測(cè)量端采用美國dallas半導(dǎo)體公司推出的數(shù)字溫度傳感器ds18b20(見附錄a.2),使用at89c2051單片機(jī)(見附錄a.1)進(jìn)行

10、溫度數(shù)據(jù)的采集和存儲(chǔ),然后通過rs-485總線傳輸(見附錄b.1)到pc機(jī)實(shí)現(xiàn)對(duì)溫度數(shù)據(jù)的發(fā)送,接口軟件采用visual basic語言進(jìn)行編程。這樣省去了線路連接麻煩,信號(hào)處理復(fù)雜的缺點(diǎn)。本系統(tǒng)采用rs-485總線進(jìn)行通信,而沒采用rs-232進(jìn)行通信,主要是由于rs-232接口標(biāo)準(zhǔn)推出時(shí)間較早,其傳輸速率慢、傳輸距離短的缺點(diǎn),在很多時(shí)候無法滿足工業(yè)應(yīng)用中多機(jī)通信的要求,而rs-485總線使用差分電平傳輸信號(hào),支持比rs-232更遠(yuǎn)的距離、更快的速度、更多的節(jié)點(diǎn)、其工業(yè)應(yīng)用更成熟。2 溫度監(jiān)控系統(tǒng)總體方案設(shè)計(jì)針對(duì)本系統(tǒng)提出以下兩種整體方案:方案一: 基于can總線的工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)。

11、本方案由溫度傳感器、can總線控制器、總線物理接口、總線接口卡組成,溫度信息由溫度傳感器采集,通過總線傳輸,通過總線接口卡傳到pc機(jī),從而實(shí)現(xiàn)pc機(jī)對(duì)溫度的網(wǎng)絡(luò)監(jiān)控。 方案二:基于rs-485總線的工業(yè)現(xiàn)場(chǎng)溫度網(wǎng)絡(luò)監(jiān)控系統(tǒng)。本方案由溫度傳感器、rs232/rs485轉(zhuǎn)接卡組成,溫度由溫度傳感器采集,通過rs-485總線傳輸,通過rs232/ rs485轉(zhuǎn)接卡傳到pc機(jī),從而實(shí)現(xiàn)pc機(jī)對(duì)溫度的網(wǎng)絡(luò)監(jiān)控。對(duì)于第一種方案而言是完全可以實(shí)行的,雖然目前較為先進(jìn)的can是多主總線網(wǎng)絡(luò),但是考慮到畢業(yè)設(shè)計(jì)時(shí)間較短的因素,若逐一來完成設(shè)計(jì)有一定困難。若采用購買can總線接口卡的話則會(huì)增加成本。對(duì)于第二種方案

12、,雖然當(dāng)前的can總線等工業(yè)總線在各方面的表現(xiàn)都優(yōu)于rs-485總線,但由于rs-485總線在軟件設(shè)計(jì)上與rs-232總線基本兼容,其工業(yè)應(yīng)用成熟,大量已有的工業(yè)設(shè)備均提供rs-485接口,因而經(jīng)過多方面比較還是選用第二種方案。該系統(tǒng)由pc機(jī)和at89c2051單片機(jī)系統(tǒng)組成,構(gòu)成小型的分散測(cè)控系統(tǒng)。其中,單片機(jī)系統(tǒng)的任務(wù)是完成工業(yè)現(xiàn)場(chǎng)溫度值的采集與存儲(chǔ),并通過rs-485總線同pc機(jī)相連。而pc機(jī)的主要任務(wù)是承擔(dān)集中操作管理,通信控制,對(duì)各單片機(jī)系統(tǒng)的測(cè)控功能,并對(duì)整個(gè)系統(tǒng)進(jìn)行管理。由于采用的是rs-485總線進(jìn)行通信,而pc機(jī)上只有rs-232接口,因此需要通過rs-232/rs-485轉(zhuǎn)

13、接頭進(jìn)行連接。系統(tǒng)構(gòu)成圖2.1所示:監(jiān)控模塊pc機(jī)rs-485總線rs232/485轉(zhuǎn)接口總線接口總線接口單片機(jī)單片機(jī)溫度采集模塊溫度采集模塊溫度傳感器溫度傳感器圖2.1系統(tǒng)結(jié)構(gòu)圖圖2.1中采用了maxim公司的max485芯片(見附錄)。本系統(tǒng)的單片機(jī)所構(gòu)成的測(cè)溫點(diǎn)可以添加,其中每一個(gè)單片機(jī)都有自己的地址(唯一的),通信時(shí)采取主從通信方法,由上位機(jī)確定與哪個(gè)單片機(jī)進(jìn)行通信。3 溫度監(jiān)控系統(tǒng)設(shè)計(jì)3.1 溫度監(jiān)控系統(tǒng)硬件設(shè)計(jì)在硬件設(shè)計(jì)中提出了出了兩個(gè)方案:方案一:使用單片機(jī)和單總線溫度傳感器構(gòu)成。單總線溫度傳感器可以采用dallas公司生產(chǎn)的ds18b20系列,這類溫度傳感器直接輸出數(shù)字信號(hào),且

14、多路溫度傳感器可以掛在1條總線上,共同占用單片機(jī)的1條i/o線即可實(shí)現(xiàn)接口。在提升單片機(jī)i/o線驅(qū)動(dòng)能力的前提下,理論上可以任意擴(kuò)充檢測(cè)的溫度點(diǎn)數(shù)。方案二:溫度檢測(cè)可以使用低溫?zé)崤蓟蜚K電阻,數(shù)據(jù)采集部分則使用帶有a/d通道的單片機(jī)??紤]到一般的a/d輸入通道都只能接收大信號(hào),所以還應(yīng)設(shè)計(jì)相應(yīng)的放大電路。此方案的軟件簡單,但硬件復(fù)雜,且檢測(cè)點(diǎn)數(shù)追加時(shí),成本會(huì)有較大增長幅度。方案一避免了接線多,信號(hào)處理復(fù)雜等方面的問題,在可靠性、抗干擾能力以及器件微小化方面都有明顯的優(yōu)點(diǎn)。因此本系統(tǒng)最終選擇方案一。單片機(jī)硬件系統(tǒng)如圖3.1所示:單片機(jī)系統(tǒng)溫度傳感器ds18b20復(fù)位電路電源max485圖3.1單片

15、機(jī)硬件系統(tǒng)結(jié)構(gòu)本系統(tǒng)硬件主要由3個(gè)部分組成:1)溫度測(cè)量模塊2)數(shù)據(jù)采集模塊3)通信模塊。3.1.1 溫度測(cè)量模塊 通過對(duì)數(shù)字溫度傳感器的進(jìn)行初始化,發(fā)出溫度轉(zhuǎn)換命令,寫入、讀出數(shù)據(jù)命令的程序的編寫來實(shí)現(xiàn)溫度值的測(cè)量。3.1.2 數(shù)據(jù)采集模塊通過單片機(jī)的p1.1口把溫度傳感器測(cè)得的溫度值采集到單片機(jī)的內(nèi)部ram中,從而便于pc機(jī)查詢。3.1.3 通信模塊本系統(tǒng)為主從多機(jī)通信系統(tǒng),采用半雙工通信,單片機(jī)的p1.0口同max485(見附錄a.3)的和de端相連,通過置高低電平來控制接受器和發(fā)送器工作,rxd和txd引腳分別于ro腳和di腳以進(jìn)行數(shù)據(jù)交換。de是發(fā)送允許信號(hào)高電平有效,則是接收允許信

16、號(hào)低電平有效。由p1.0來控制max485處于接收狀態(tài)還是發(fā)送狀態(tài)。a與b端則聯(lián)接的是發(fā)送與接收的遠(yuǎn)程信號(hào)(其電氣特性為rs485)這樣即可與遠(yuǎn)程的上位機(jī)進(jìn)行通信。圖3.2串行通信接口電路3.2 溫度監(jiān)控系統(tǒng)軟件設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)可以分為兩大塊:3.2.1 pc機(jī)軟件設(shè)計(jì)pc機(jī)軟件設(shè)計(jì)主要包括,pc機(jī)與下位機(jī)串行通信,對(duì)下位機(jī)溫度的監(jiān)控,以及對(duì)溫度值的存儲(chǔ)并對(duì)溫度值進(jìn)行查詢。3.2.2 單片機(jī)軟件設(shè)計(jì)單片機(jī)軟件設(shè)計(jì)主要包括,單片機(jī)與pc機(jī)的串行通信,對(duì)溫度的測(cè)量、采集處理、存儲(chǔ)功能。4 溫度監(jiān)控系統(tǒng)詳細(xì)設(shè)計(jì)前面,我們對(duì)系統(tǒng)作了總體設(shè)計(jì)的概述,本節(jié)將對(duì)系統(tǒng)各個(gè)硬件模塊作詳細(xì)設(shè)計(jì),以及軟件功能模塊

17、和接口的設(shè)計(jì)。本系統(tǒng)硬件構(gòu)成由三個(gè)主要功能模塊所組成,這在上節(jié)中已經(jīng)提到過。各功能模塊的主體均不相同,本節(jié)將作詳細(xì)的設(shè)計(jì)描述。4.1 硬件設(shè)計(jì)4.1.1 溫度傳感器的選取較早期的溫度測(cè)量采用的是熱電偶電橋法,系統(tǒng)主要由銅-康銅熱電偶、具有零基準(zhǔn)點(diǎn)自動(dòng)補(bǔ)償功能的專用熱電偶放大器、高分辨率a/d 轉(zhuǎn)換器、只讀存儲(chǔ)器和單片機(jī)系統(tǒng)組成。雖然這種方法的測(cè)量精度較高,但測(cè)試過程復(fù)雜,耗時(shí)長,系統(tǒng)結(jié)構(gòu)復(fù)雜,需要預(yù)先精確計(jì)算電流/溫度對(duì)照表,并固化在eprom中。為保證溫控精度,軟件中還需采用局部變速積分等算法。另外,在采用電橋法測(cè)量的分布式系統(tǒng)中抗干擾能力較差,常會(huì)出現(xiàn)較大的誤差,在許多場(chǎng)合都難以應(yīng)用。另一

18、種溫度測(cè)量方法是采用集成的半導(dǎo)體模擬溫度傳感器,傳感器輸出的電壓或電流與溫度在一定程度上呈線性關(guān)系,通過將模擬量放大、采樣而得到待測(cè)的溫度值。近年來發(fā)展了多種半導(dǎo)體溫度傳感器,如美國analog device 公司的ad590系列等。雖然這些傳感器被廣泛用于分布式溫度測(cè)量,但如果測(cè)溫點(diǎn)較多,分布范圍較廣,因而布線變得十分困難;同時(shí),如果測(cè)溫點(diǎn)與主機(jī)相距較遠(yuǎn), 則傳輸過程中的抗干擾問題也將變得十分突出,需要采用電流環(huán)驅(qū)動(dòng)等措施,使系統(tǒng)進(jìn)一步復(fù)雜化,并提高了成本。這些問題使這些半導(dǎo)體溫度傳感器在大規(guī)模分布式溫度測(cè)量上的應(yīng)用較為困難。采用近年出現(xiàn)的新型數(shù)字式溫度傳感器成大規(guī)模分布式溫度測(cè)量系統(tǒng),可以

19、解決上述困難,使系統(tǒng)的精度、穩(wěn)定性、可靠性、抗干擾能力都大大高于模擬系統(tǒng),系統(tǒng)配置簡單,維護(hù)容易,造價(jià)低而且其與單片機(jī)連接只占用一個(gè)i/o口,無需增加外圍元件。因此,本系統(tǒng)采用了dallas公司生產(chǎn)的ds18b20數(shù)字溫度傳感器(見附錄)。4.1.2 單片機(jī)的選取在單片機(jī)的選取上,采用atmel公司生產(chǎn)的at89c2051單片機(jī)(見附錄)。考慮到at89c系列與mcs51系列單片機(jī)相比有兩大優(yōu)勢(shì):第一,片內(nèi)程序存儲(chǔ)器采用閃速存儲(chǔ)器,使程序的寫入更加方便;第二,提供了更小尺寸的芯片(at89c20511051),使整個(gè)硬件電路的體積更小,再加上它良好的性能價(jià)格比,在家電產(chǎn)品、工業(yè)控制、計(jì)算機(jī)產(chǎn)品

20、、醫(yī)療器械、汽車工業(yè)等應(yīng)用方面成為用戶降低成本的首選器件。4.1.3 繪制電路原理圖進(jìn)一步學(xué)習(xí)使用protel軟件,按照設(shè)計(jì)方案繪制系統(tǒng)電路原理圖。圖4.1電路原理圖4.2 軟件設(shè)計(jì)4.2.1 下位機(jī)軟件的模塊化設(shè)計(jì)a) 方案論證下位機(jī)軟件使用匯編語言編寫,使用匯編語言具有編譯效率高、執(zhí)行速度快等優(yōu)點(diǎn)。在下位機(jī)程序設(shè)計(jì)上,提出了兩個(gè)方案:方案一:下位機(jī)采用中斷方式。單片機(jī)一直在執(zhí)行溫度的測(cè)量,采集存儲(chǔ)工作,在這個(gè)過程中,如果接到上位機(jī)的查詢命令后,就執(zhí)行中斷命令,把溫度值傳給上位機(jī)。然后繼續(xù)執(zhí)行剛才未完成的工作。方案二:下位機(jī)采用查詢方式。單片機(jī)一直在執(zhí)行溫度的測(cè)量,采集存儲(chǔ)工作,每執(zhí)行完一次

21、測(cè)量采集存儲(chǔ)工作,就查詢一下,看上位機(jī)是否發(fā)來查詢命令,若發(fā)來查詢命令,則執(zhí)行發(fā)送命令,把溫度值發(fā)送給上位機(jī),若沒受到上位機(jī)的查詢命令,則繼續(xù)執(zhí)行溫度的測(cè)量采集存儲(chǔ)工作。比較這兩個(gè)方案,第一種方案效率高一次點(diǎn),它不必在每一次測(cè)量、采集、存儲(chǔ)完成后都查詢一下上位機(jī)有沒有發(fā)出查詢命令。但是,考慮到在存儲(chǔ)溫度值時(shí)只寫入了一個(gè)字節(jié)的溫度值,溫度存儲(chǔ)未完成,這時(shí)如果上位機(jī)發(fā)送查詢命令,執(zhí)行中斷的話,這樣傳給上位機(jī)的溫度值就不準(zhǔn)確了,況且也不是當(dāng)前最新的溫度值。方案二,則不同,它在每次測(cè)溫、采集、存儲(chǔ)過程完成后,查詢是否有上位機(jī)發(fā)來查詢命令如果有,則可以直接把當(dāng)前的溫度值發(fā)送給上位機(jī),這在傳輸?shù)臏囟戎档臏?zhǔn)

22、確性上和實(shí)時(shí)性上就比較好。因此最終采用第二個(gè)方案。b) 數(shù)字溫度傳感器簡介ds18b20測(cè)溫原理斜率累加器預(yù)置計(jì)數(shù)比較器高溫度系數(shù)振蕩器減法計(jì)數(shù)器1減到0增加溫度寄存器停止預(yù)置低溫度系數(shù)振蕩器減法計(jì)數(shù)器2減到0圖5.2 ds18b20測(cè)溫原理圖本系統(tǒng)在溫度采集中使用的ds18b20測(cè)溫原理圖如4.2所示:圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入。圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),ds18b20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量,計(jì)數(shù)門的

23、開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中。斜率累加器預(yù)置計(jì)數(shù)比較器高溫度系數(shù)振蕩器減法計(jì)數(shù)器1減到0增加溫度寄存器停止預(yù)置低溫度系數(shù)振蕩器減法計(jì)數(shù)器2減到0圖4.2 ds18b20測(cè)溫原理圖減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置值將重新被裝入,減法計(jì)數(shù)器1重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器的累加,此時(shí)溫度寄存器中的值就是所測(cè)溫度值,圖4.2中的斜率累加器用于補(bǔ)償和修正測(cè)溫

24、過程中的非線形性,其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值達(dá)到被測(cè)溫度值。 ds18b20性能特點(diǎn)1) 具有獨(dú)特的單線接口方式,只要求一個(gè)端口即可實(shí)現(xiàn)通信2) 內(nèi)含64位經(jīng)過激光修正的只讀存儲(chǔ)器rom3) 在ds18b20中的每個(gè)器件上都有獨(dú)一無二的序列號(hào)4) 實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫5) 測(cè)量溫度范圍在55到125之間,測(cè)量分辨率為0.06256) 數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇7) 內(nèi)部有溫度上、下限告警設(shè)置,用戶可分別設(shè)定各路溫度的上、下限8) 支持多接點(diǎn) 9) 可用數(shù)據(jù)線供電,電壓范圍:3.05.5v10)負(fù)壓

25、特性:電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。ds18b20引腳功能系統(tǒng)所選用的是3腳的pr-35封裝ds18b20數(shù)字溫度傳感器,其引腳功能描述如下表所示:表4.1 ds18b20的引腳功能描述序號(hào)名稱引腳功能描述123gnddqvdd接地信號(hào)數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源可選擇的vdd引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地ds18b20溫度傳感器的內(nèi)部存儲(chǔ)器ds18b20溫度傳感器的內(nèi)部有一個(gè)高速暫存ram和一個(gè)非易失性的可電擦除的eepram,后者存放高溫度和低溫度觸發(fā)器th、tl。高速暫存存儲(chǔ)器由9個(gè)字節(jié)組成,其分配

26、如表4.2所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲(chǔ)器的第0和第1個(gè)字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式如表1所示。對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位s=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)s=1時(shí),先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表2是對(duì)應(yīng)的一部分溫度值。第3和第4字節(jié)是th 和tl的拷貝,是易失性的,每次上電復(fù)位時(shí)被刷新,第5字節(jié)為配置寄存器,它主要用來確定溫度值的數(shù)字轉(zhuǎn)換分辨率。低5位一直為1,tm是測(cè)試模式位,用于設(shè)置ds18b20在工作模式還是在測(cè)試模式。在出廠時(shí)該位被設(shè)置為0,用戶不要去改動(dòng)。r1和r0決定溫度轉(zhuǎn)換的

27、精度位數(shù),即用來設(shè)置分辨率,默認(rèn)為12位,即分辨率為0.0625。第6,7,8字節(jié)保留未用,表現(xiàn)為全邏輯1,第九個(gè)字節(jié)是冗余檢驗(yàn)字節(jié)。表4.2 ds18b20暫存寄存器分布寄存器內(nèi)容字節(jié)地址溫度值低位溫度值高位高溫限值th低溫限值tl配置寄存器保留保留保留crc檢驗(yàn)012345678表4.3 配置存儲(chǔ)器與分辨率關(guān)系r0r1溫度計(jì)分辨率/bit最大轉(zhuǎn)換時(shí)間/ms00110101910111293.75187.5375750表4.4 溫度值和數(shù)據(jù)量之間的關(guān)系溫度數(shù)字輸出(二進(jìn)制輸出)數(shù)字輸出(十六進(jìn)制)+125+25+0.50-0.5-25-12500000000 1111101000000000

28、 0011001000000000 0000000100000000 0000000011111111 1111111111111111 1100111011111111 1001001000 fah00 32h00 01h00 00hff ffhff cehff 92h溫度算法(分辨率位0.0625): 1)當(dāng)sssss=11111b ,d=-1;當(dāng)sssss=00000b,d=1 2)當(dāng)d=1時(shí),溫度值t=(高字節(jié)256+低字節(jié))0.0625 3)當(dāng)d=-1時(shí),溫度值t=-(256-高字節(jié))256-低字節(jié)0.0625高8位sssss262524低8位232221202-12-22-32-4

29、溫度值采集過程如圖4.3所示:ds18b20初始化發(fā)跳過rom命令發(fā)ds18b20溫度轉(zhuǎn)換命令發(fā)跳過rom命令ds18b20初始化發(fā)讀取溫度命令圖4.3溫度采集過程結(jié)束 ds18b20的工作時(shí)序主要包括:初始化時(shí)序、讀時(shí)序、寫時(shí)序a、初始化時(shí)序初始化時(shí)序見圖4.4。主機(jī)總線在t0時(shí)刻發(fā)送一個(gè)最短為480s的低電平復(fù)位脈沖信號(hào),接著在t1時(shí)刻釋放總線并進(jìn)入接收狀態(tài),dsl8b20在檢測(cè)到總線的上升沿之后,等待15s60s,接著在t2時(shí)刻發(fā)出低脈沖(60s240s),如圖中虛線所示,18b20響應(yīng)之后又恢復(fù)為高電平,t2t4稱為18b20的響應(yīng)時(shí)間,最少為480s。圖4.4初始化時(shí)序圖t0t1t2

30、t4t3400s-960s15s-60s480s60s-240sb、寫時(shí)序t0t1t1t045s1s15s45s60s60s1s圖4.5寫時(shí)序圖 (b)寫1時(shí)序圖15s(a)寫0時(shí)序圖當(dāng)主機(jī)總線t0時(shí)刻從高拉至低電平時(shí),就產(chǎn)生寫時(shí)序,見圖4.5,從t0時(shí)刻開始15s之內(nèi)應(yīng)將所需寫的位送到總線上,dsl8b20在t0后15s60s間對(duì)總線采樣。若為低電平,寫入的位是0;若為高電平,寫入的位是1。連續(xù)寫2位間的時(shí)序應(yīng)大于1s。c、讀時(shí)間隙見圖4.6主機(jī)總線t0時(shí)刻從高拉至低電平時(shí)總線只須保持低電平1s之后在t1時(shí)刻將總線拉高,產(chǎn)生讀時(shí)序,讀時(shí)序在t1時(shí)刻后t2時(shí)刻前有效。t2距t0為15s,也就是

31、說,t2時(shí)刻前主機(jī)必須完成讀位,并在t0后的60s120s內(nèi)釋放總線。圖4.6讀時(shí)序圖t0t2t360s1st115s主機(jī)起作用ds18b2起作用上拉電阻起作用c) 單片機(jī)通信模塊單片機(jī)通信節(jié)點(diǎn)程序包括初始化部分,主程序部分。初始化部分要完成串行口的初始化,串行口使用工作方式3,波特率通過定時(shí)器t1溢出率設(shè)為9600bit/s,允許接收。系統(tǒng)使用晶振頻率為11.0592mhz,因此必須將定時(shí)器1的初始值設(shè)置為253。本系統(tǒng)中,串行數(shù)據(jù)的發(fā)送和接收是采用查詢的方式完成的,因此不需要打開串行口中斷。主程序部分主要是進(jìn)行溫度的測(cè)量,溫度值的采集存儲(chǔ),并接收上位機(jī)的查詢命令,并根據(jù)自身地址相比較,做出

32、是否發(fā)送數(shù)據(jù)。程序中通過mov a ,sbuf來進(jìn)行接收上位機(jī)數(shù)據(jù),通過mov sbuf,a來向上位機(jī)發(fā)送數(shù)據(jù)。各單片機(jī)通信采用查詢方式來實(shí)現(xiàn)。單片機(jī)平時(shí)通過溫度傳感器進(jìn)行溫度數(shù)據(jù)的采集并存儲(chǔ)當(dāng)前的溫度值,每進(jìn)行一次采集存儲(chǔ)后,查詢一下看pc機(jī)是否發(fā)出呼叫信號(hào),如果查詢到呼叫信號(hào),與本單片機(jī)地址進(jìn)行比較,如果相同,則把溫度數(shù)據(jù)發(fā)送給pc機(jī);如果呼叫信號(hào)與本單片機(jī)地址不符,則執(zhí)行溫度數(shù)據(jù)采集存儲(chǔ)。其流程圖如圖4.7:初始化與本機(jī)地址相比較是否相同yn發(fā)送溫度數(shù)據(jù)到pc機(jī)y發(fā)送完畢n圖4.7單片機(jī)通信框架接收pc機(jī)發(fā)來信號(hào)結(jié)束 d) 下位機(jī)系統(tǒng)流程圖:與本機(jī)地址比較機(jī)開始查詢是否有pc機(jī)呼叫初始化

33、把溫度值發(fā)送pc機(jī)是否相同發(fā)送完畢存儲(chǔ)到內(nèi)部ram中yyynnn圖4.8系統(tǒng)流程圖ds18b20初始化發(fā)跳過rom命令發(fā)ds18b20溫度轉(zhuǎn)換命令發(fā)跳過rom命令ds18b20初始化發(fā)讀取溫度命令 4.2.2 上位機(jī)軟件的模塊化設(shè)計(jì)上位機(jī)軟件采用visual basic6.0語言編寫。選用vb語言編寫,主要是考慮到它的高效性,簡單易學(xué)及功能強(qiáng)大的特點(diǎn),它支持面向?qū)ο蟮某绦蛟O(shè)計(jì),具有結(jié)構(gòu)話的事件驅(qū)動(dòng)編程模式,并可以使用無限擴(kuò)增的控件,而且,可以十分方便的做出良好的人機(jī)界面。vb為用戶提供了一個(gè)很重要的通信控件,該通信控件通過串行口傳送、接收數(shù)據(jù),為用戶的應(yīng)用程序提供了串行通信的基礎(chǔ)。系統(tǒng)主窗口監(jiān)

34、控窗口chuangkou溫度查詢幫助退出系統(tǒng)能夠圖4.9 上位機(jī)軟件組成圖溫度報(bào)表能夠a) 串行通信介紹用visual basic 6.0進(jìn)行串行通信程序的設(shè)計(jì)有兩種方式,一是直接調(diào)用windows api,另一種方式是使用通信組件。在開發(fā)串行通信程序的過程中,利用微軟的mscomm通信控件則相對(duì)較簡單,該控件具有豐富的與串行通信密切相關(guān)的屬性及事件,提供了對(duì)串口的各種操作。mscomm控件在串口編程時(shí)非常方便,程序員不必花時(shí)間去了解較為復(fù)雜的api函數(shù),而且在vb中容易使用。因此,采用第二種方式。mscomm提供了兩種處理通信問題的方法:一是事件驅(qū)動(dòng)方法,一是查詢法。1) 事件驅(qū)動(dòng)法在使用事

35、件驅(qū)動(dòng)法設(shè)計(jì)程序時(shí),每當(dāng)有新字符到達(dá)或端口狀態(tài)改變,或發(fā)生錯(cuò)誤時(shí),mscomm控件將觸發(fā)oncomm事件,而應(yīng)用程序在捕獲該事件后,通過檢查mscomm控件的commevent屬性可以獲知所發(fā)生的事件或錯(cuò)誤,從而采取相應(yīng)的操作。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。2) 查詢法查詢法適合于較小的應(yīng)用程序,在這種情況下,每當(dāng)應(yīng)用程序執(zhí)行完某一串行口操作后,將不斷檢查mscomm控件的commevent屬性,以檢查執(zhí)行結(jié)果或檢查某一事件是否發(fā)生。b) 在串行通信模塊,采用了事件驅(qū)動(dòng)法來處理通信問題。1) pc機(jī)通信pc機(jī)的通信功能主要是向各單片機(jī)發(fā)送控制命令并接受數(shù)據(jù)。pc機(jī)發(fā)送單片機(jī)的地址來呼

36、叫單片機(jī),等待單片機(jī)發(fā)送采集的溫度數(shù)據(jù)。如果單片機(jī)驗(yàn)證地址正確,則開始向pc機(jī)發(fā)送采集過來的溫度數(shù)據(jù)。pc機(jī)收到溫度數(shù)據(jù)后,存入數(shù)據(jù)庫,以供查詢。本系統(tǒng)中用到的主要mscomm控件屬性如下:、commport:設(shè)置并返回通信端口代碼。默認(rèn)值為1,最大值為16,需要使用超過16個(gè)通信端口時(shí),要采用其他方式操控通信端口(如pcommpro軟件)。例如將串口2設(shè)為通信端口:mscomm1.commport=2。、setting:設(shè)置初始化參數(shù)。其格式為“*,p,d,s”,其中*為波特率(baud),p為校驗(yàn)方式,d為數(shù)據(jù)位數(shù),s為停止位。默認(rèn)值為“9600,n,8,1”,意為“串口通信速度為9600

37、baud,無校驗(yàn),每次數(shù)據(jù)為8個(gè)bit,停止位為1個(gè)bit”。波特率可為110,300,600,1200,2400,9600,14400,19200,28800,38400(保留)等等。校驗(yàn)位默認(rèn)為none(無校驗(yàn)),若傳輸距離長,可增加校驗(yàn)位,可選m為符號(hào)校驗(yàn),e為偶校驗(yàn),o為奇校驗(yàn),s為空白校驗(yàn)。停止位的設(shè)定值可為:1(默認(rèn)值),1.5,2。此處的設(shè)置要和單片機(jī)側(cè)的設(shè)置保持一致,否則不能實(shí)現(xiàn)正常的通信。例如我們采用的初始化參數(shù)為“2400,n,8,1”,則單片機(jī)側(cè)的設(shè)置相應(yīng)項(xiàng)為:定時(shí)器1的初值為e6并且smod(串行口波特率加倍位)為1(對(duì)應(yīng)2400bit),串口控制寄存器scon為40(

38、10位異步收發(fā),對(duì)應(yīng)8bit數(shù)據(jù)位,1bit停止位)。、portopen:設(shè)置或返回通信端口狀態(tài)。、input:從緩沖區(qū)返回并刪除字符。將串行輸入寄存器的數(shù)據(jù)讀出,并清除寄存器中已讀取的數(shù)據(jù)。寄存器的特性是fifo(first in first out,先進(jìn)先出)。例如:bufin=mscomm1.input,是將輸入寄存器中的字符讀入bufin字符變量中。、inputlen:設(shè)置并返回input屬性每次從接收緩沖區(qū)讀取的字符數(shù)。默認(rèn)值為0,表示讀取全部字符。本系統(tǒng)inputlen=2,即一次讀取兩個(gè)字節(jié)。、rthreshold:設(shè)置或返回引發(fā)接收事件的字節(jié)數(shù)。當(dāng)接收寄存器達(dá)到設(shè)置的字節(jié)數(shù)時(shí),

39、將引發(fā)oncomm事件中的接收事件。、commevent:返回最近的通信事件或錯(cuò)誤。只要有通信事件或錯(cuò)誤發(fā)生就會(huì)產(chǎn)生oncomm事件。commevent屬性中存有該事件或錯(cuò)誤的數(shù)值代碼。程序員可通過檢測(cè)數(shù)值代碼來進(jìn)行相應(yīng)的處理。、inputmode:設(shè)置或返回input屬性取回的數(shù)據(jù)的類型。有兩個(gè)形式,設(shè)為cominputmodetext(默認(rèn)值)時(shí),按字符串形式接收;設(shè)為cominputmodebinary時(shí),當(dāng)作字節(jié)數(shù)組中的二進(jìn)制數(shù)據(jù)來接收。單片機(jī)和pc機(jī)的通信一般使用cominputmodebinary形式,本系統(tǒng)采用字節(jié)接收方式流程圖如圖4.10:發(fā)送地址接受溫度數(shù)據(jù)y傳送結(jié)束n圖4.

40、10 pc機(jī)通信軟件框圖結(jié)束開始2) 系統(tǒng)主窗體模塊其界面如圖4.11:圖4.11 系統(tǒng)主窗體界面圖3) 溫度監(jiān)控模塊溫度監(jiān)控模塊是在串行通信的基礎(chǔ)上,實(shí)現(xiàn)上位機(jī)對(duì)下位機(jī)的測(cè)溫點(diǎn)進(jìn)行監(jiān)控,并及時(shí)的把溫度值送到上位機(jī),并把收到的數(shù)據(jù)顯示出來。 圖4.12溫度監(jiān)控界面其界面如圖4.124) 溫度查詢模塊 通過選擇測(cè)溫點(diǎn)來查詢所要查看的溫度值,并顯示出來。其界面如圖4.13所示:圖4.13溫度查詢界面5) 數(shù)據(jù)庫設(shè)計(jì)由于本系統(tǒng)涉及的數(shù)據(jù)量不是很大,因此采用小型的access 數(shù)據(jù)庫。數(shù)據(jù)庫的名稱為wd.mdb,數(shù)據(jù)庫wd.mdb中有一個(gè)表record來記錄上位機(jī)所接收到的溫度值,以供用戶查詢。結(jié)構(gòu)見

41、表4.4所示:表4.4 record設(shè)計(jì)表字段名稱數(shù)據(jù)類型字段大小編號(hào)測(cè)溫點(diǎn)溫度值時(shí)間自動(dòng)編號(hào)數(shù)字?jǐn)?shù)字日期/時(shí)間長整型長整型雙精度圖4.14 數(shù)據(jù)庫record表4.3 單片機(jī)外圍電路4.3.1 時(shí)鐘電路單片機(jī)的時(shí)鐘電路是一種典型電路,cpu的所有操作均在時(shí)鐘脈沖同步下進(jìn)行。分為內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式兩種。內(nèi)部時(shí)鐘晶振頻率一般選擇在1.2mhz12mhz之間,典型值為12mhz或者11.0592mhz。c1、c2是反饋電容,可以幫助起振,其值在5pf30pf之間選取,典型值為30pf。如果單片機(jī)的時(shí)鐘必須使用某一個(gè)外接始終信號(hào),就不用外接晶振,由于此時(shí)的外接晶振引腳上沒有晶振信號(hào)輸入,內(nèi)部

42、的始終電路將停振。這種方式稱為外部時(shí)鐘方式。時(shí)鐘電路設(shè)計(jì)本電路選用的電容為30pf,晶振頻率為11.0592mhz。這樣就確定了單片機(jī)的4個(gè)周期分別是:振蕩周期1/11.0592s機(jī)器周期(sm)12/11.0592s指令周期12/11.05924*12/11.0592s電路設(shè)計(jì)原理圖如圖4.15所示圖4.15 時(shí)鐘電路原理圖xtal1和xtal2:片內(nèi)振蕩電路輸入線,這兩個(gè)端口用來外接石英晶體和微調(diào)電容。在石英晶體的兩個(gè)管腳加交變電場(chǎng)時(shí),它將會(huì)產(chǎn)生一定頻率的機(jī)械變形,而這種機(jī)械振動(dòng)又會(huì)產(chǎn)生交變電場(chǎng),上述物理現(xiàn)象稱為壓電效應(yīng)。石英晶振用來連接芯片片內(nèi)osc的定時(shí)反饋回路,石英晶振起振后要能在x

43、tal2線上輸出一個(gè)3v左右的正弦波,以便使芯片片內(nèi)的osc電路按石英晶振相同頻率自激振蕩。通常,osc的輸出時(shí)鐘頻率fosc為0.5mhz-16mhz,典型值為12mhz或者11.0592mhz。電容值為30pf c1和c2可以幫助起振,調(diào)節(jié)它們可以達(dá)到微調(diào)fosc的目的。4.3.2 復(fù)位電路單片機(jī)在開機(jī)時(shí)都需要復(fù)位,以便中央處理器cpu以及其他功能部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。單片機(jī)的復(fù)位后是靠外部電路實(shí)現(xiàn)的,在時(shí)鐘電路工作后,只要在單片機(jī)的rst引腳上出現(xiàn)24個(gè)時(shí)鐘振蕩脈沖(2個(gè)機(jī)器周期)以上的高電平,單片機(jī)便可實(shí)現(xiàn)初始化狀態(tài)復(fù)位。單片機(jī)復(fù)位電路設(shè)計(jì)的好壞,直接影響

44、到整個(gè)系統(tǒng)工作的可靠性。復(fù)位電路通常分為手動(dòng)復(fù)位與上電復(fù)位。采用上電復(fù)位時(shí),電容兩端相當(dāng)于是短路,于是rst引腳上為高電平,然后眼電源通過電阻對(duì)電容充電,rst端電壓慢慢下降,降到一定程度,即為低電平,單片機(jī)開始工作。而手動(dòng)復(fù)位在電路中設(shè)計(jì)按鍵開關(guān),通過按鍵開關(guān)觸發(fā)復(fù)位電平,控制單片機(jī)的復(fù)位。5 系統(tǒng)調(diào)試與測(cè)試5.1 電路部分測(cè)試在按照電路圖焊制好電路板后,對(duì)電路板的各個(gè)焊點(diǎn),進(jìn)行了檢查,檢查出幾個(gè)焊點(diǎn)虛焊,并及時(shí)的加焊。電路板插上芯片后,使用萬用表進(jìn)行測(cè)量,沒有發(fā)現(xiàn)短路,短接的情況發(fā)生。5.2 下位機(jī)軟件調(diào)試與測(cè)試 學(xué)習(xí)aedk仿真機(jī)以及l(fā)ca51仿真軟件的使用和調(diào)試,來進(jìn)行下位機(jī)程序的運(yùn)行

45、和調(diào)試。5.2.1 下位機(jī)通信模塊的調(diào)試寫好串行通信程序后,使用仿真軟件lca51進(jìn)行多次編譯調(diào)試,沒有錯(cuò)誤后,使用仿真機(jī)進(jìn)行了測(cè)試。在測(cè)試前,確保所用器件連接正確,因?yàn)樯衔粰C(jī)軟件還編寫,所以下位機(jī)通信模塊測(cè)試,使用仿真機(jī)同串行測(cè)試軟件comtest進(jìn)行測(cè)試。在測(cè)試下位機(jī)與串行測(cè)試軟件通信是要注意下位機(jī)所選的波特率要與測(cè)試軟件所選的波特率相一致,否則會(huì)出現(xiàn)錯(cuò)誤,無法正常通信。通過測(cè)試程序來測(cè)試下位機(jī)可以同上位機(jī)的測(cè)試軟件正常通信。5.2.2 下位機(jī)溫度測(cè)量采集模塊的調(diào)試在下位可以正常通信的基礎(chǔ)上,對(duì)單片機(jī)的溫度采集傳輸模塊進(jìn)行了調(diào)試。在調(diào)試過程中,pc機(jī)上的串行測(cè)試軟件在發(fā)出查詢溫度命令后,接

46、收到單片機(jī)發(fā)來的溫度值是十六進(jìn)制數(shù),需要通過溫度計(jì)算公式計(jì)算方可以得出十進(jìn)制溫度數(shù)據(jù)。調(diào)試中發(fā)現(xiàn),在設(shè)置時(shí)延長短的不同可以影響到測(cè)量溫度的范圍和精度。5.3 上位機(jī)軟件調(diào)試與測(cè)試5.3.1 上位機(jī)通信模塊的調(diào)試在進(jìn)行pc機(jī)串行通信的調(diào)試中,把計(jì)算機(jī)的兩個(gè)com口com1和com2用一根rs總線連接起來,用來測(cè)試所編寫的上位機(jī)程序同串行測(cè)試軟件通過com口是否可以通信。要進(jìn)行串行通信首先要打開com口,由于程序在編寫時(shí)所編寫打開串口程序沒有執(zhí)行,并沒有打開串口,所以調(diào)試了很長時(shí)間,總是不能通信,后來通過測(cè)試軟件才發(fā)現(xiàn)是由于串口沒打開。如果串口打開的話,打開同一個(gè)串口,就會(huì)彈出提示信息窗口“該串口

47、已被占用!”。但是測(cè)試軟件打開同一串口時(shí)并沒彈出提示信息窗口。這才找出com無法通信的真正原因。重新修改了程序后,才實(shí)現(xiàn)了串行口的正常通信。另外,上位機(jī)的波特率也要同下位機(jī)相同否則也無法進(jìn)行通信。5.3.2 上位機(jī)測(cè)溫模塊的調(diào)試由于上位機(jī)的串行口通信調(diào)試成功,下位機(jī)程序調(diào)試得差不多了,除了有一點(diǎn)誤差。這樣上位機(jī)的測(cè)溫模塊的調(diào)試變得不是很難,只要上位機(jī)發(fā)送一個(gè)命令給下位機(jī),下位機(jī)在接受道命令后同自己的地址相比較,如果相同,便會(huì)把溫度值發(fā)送給上位機(jī),上位機(jī)只要負(fù)責(zé)接收并顯示出溫度值就可以。這里要注意的是對(duì)接收到的溫度值是兩個(gè)字節(jié),分高8位和低8位,因此要使用數(shù)組來表示,同時(shí)要通過專門的計(jì)算公式把收

48、到的十六進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)顯示出來。5.3.3 上位機(jī)數(shù)據(jù)庫接的測(cè)試要保存溫度,首先要同數(shù)據(jù)庫建立連接,使用下列語句實(shí)現(xiàn)同access數(shù)據(jù)庫的連接,保存顯示的溫度值。dim con as new adodb.connectiondim myrs as new adodb.recordsetwith con.connection=”provider=microsoft.jet.oledb.4.0;datasource=wd.mdb;persist security info=false”.openend with一開始使用adodc控件來連接數(shù)據(jù)庫和存儲(chǔ)數(shù)據(jù),但是由于每換一臺(tái)電腦,或是把數(shù)據(jù)庫

49、文件更換一下位置,就會(huì)使數(shù)據(jù)存儲(chǔ)的路徑不對(duì),都需要重新建立odbc數(shù)據(jù)源和重新選擇數(shù)據(jù)庫的路徑,這樣給使用帶來了極大不便,最后設(shè)置連接數(shù)據(jù)庫的路徑為相對(duì)路徑來實(shí)現(xiàn)。5.3.4 上位機(jī)溫度查詢模塊的測(cè)試溫度值查詢模塊借助于adodc控件來查詢,借助于datagrid控件來顯示。通過選擇測(cè)溫點(diǎn)來查詢溫度值,測(cè)試界面如圖5.1:圖5.1溫度查詢顯示測(cè)試通過測(cè)試,可以正常的從數(shù)據(jù)庫中查詢相應(yīng)測(cè)溫點(diǎn)的溫度值。5.3.5 系統(tǒng)在測(cè)試過程中出現(xiàn)的提示信息圖 5.2串口打開成功提示1) 運(yùn)行上位機(jī)軟件在主界面選擇“溫度監(jiān)控”菜單,彈出“溫度監(jiān)控窗口,在選擇串口的下拉菜單中選擇串口號(hào) ,然后點(diǎn)擊“打開”按鈕,就

50、會(huì)彈出信息提示窗口圖5.2所示:2) 點(diǎn)擊“關(guān)閉”按鈕就會(huì)彈出圖5.3所示信息提示窗口圖5.3串口關(guān)閉提示圖5.4未選擇串口提示3) 在未選擇串口的情況下,點(diǎn)擊“打開”按鈕,會(huì)彈出圖5.4所示提示信息窗口4) 若選擇的串口已被其他設(shè)備占用則彈出圖5.5所示提示信息窗口圖5.5串口已占用提示5) 若在未打開串口的情況下,點(diǎn)擊“測(cè)溫”按鈕,會(huì)彈出圖5.6所提示信息窗口 圖5.6未打開串口提示6) 在顯示溫度值的窗口為空時(shí),點(diǎn)擊“保存”按鈕會(huì)彈出圖5.7提示信息窗口圖5.7 保存數(shù)據(jù)不為空提示7) 在點(diǎn)擊主界面上的“溫度數(shù)據(jù)查詢”菜單時(shí)彈出查詢窗口,在未選擇要查詢點(diǎn)時(shí)點(diǎn)擊“查詢”按鈕,會(huì)彈出圖5.8

51、所示提示信息窗口圖5.8未選擇查詢點(diǎn)的提示8) 若選擇的測(cè)溫點(diǎn)在數(shù)據(jù)庫中無數(shù)據(jù),則會(huì)彈出圖5.9所示信息提示窗口圖5.9無溫度記錄提示9) 若在選擇串口后,點(diǎn)擊“打開”按鈕,沒有彈出“串口打開成功!”,則表明串口未打開,則重新選擇串口號(hào)。5.4 系統(tǒng)整體測(cè)試把兩個(gè)測(cè)溫點(diǎn)都掛在rs485總線上進(jìn)行測(cè)試,來測(cè)試其網(wǎng)絡(luò)通信是否成功,經(jīng)過測(cè)試,可以正常的通信,并能夠達(dá)到對(duì)溫度監(jiān)控的目的。由于條件的限制,無法進(jìn)行長距離的測(cè)量。系統(tǒng)在整體測(cè)試時(shí)由于電路板反面的銅絲留得過長,導(dǎo)致電源短路燒壞仿真器電源,由于測(cè)試前沒有仔細(xì)檢查造成的事故。這給我深深上了一課,讓我在做學(xué)問的態(tài)度上有了更深刻地認(rèn)識(shí)。以后不管做什么

52、事情,容不得半點(diǎn)馬虎。在溫度測(cè)量測(cè)試中,由于無法提供零下溫度,所以只測(cè)量了零度以上的溫度,從25120的范圍測(cè)量數(shù)據(jù)如圖5.10所示。但是通過模擬發(fā)送零下溫度值所對(duì)應(yīng)的十六進(jìn)制數(shù),通過上位機(jī)的溫度計(jì)算機(jī)程序可以得出正確的零下的溫度值。由于測(cè)量工具的有限,和缺少測(cè)量環(huán)境等原因僅對(duì)以下的一些溫度值進(jìn)行了粗略的測(cè)量,對(duì)誤差進(jìn)行了簡單的分析??偟膩碚f誤差不是很大,在1以內(nèi)。表5.1 自來水水溫測(cè)量對(duì)比水溫溫度傳感器溫度計(jì)123456789102626.062526.06252626.062526.02526.062526.062526.112526.1525.525.325.225.425.525.525.325.425.525.25溫度傳感器測(cè)量自來水水溫的平均值為26.06,溫度計(jì)測(cè)量自來水水溫的平均值為25.385,兩者之間的測(cè)量誤差為0.6。在測(cè)量過程中,水溫受室溫的影響,因此和下面測(cè)量的室溫差距不大,可以看出在測(cè)量的過程中,水溫有隨著室溫增高的趨勢(shì),這也會(huì)帶來測(cè)量的誤差。表5.2 室溫測(cè)量對(duì)比室溫溫度傳感器溫度計(jì)1234567891026.2526.187526.187526.312526.37526.312526.37526.437526.526.437525.525.625.72626.126.12

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論