基于單片機的多點溫度監(jiān)測系統(tǒng)設計畢業(yè)論文_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  基于單片機的多點溫度監(jiān)測系統(tǒng)設計</p><p>  摘 要:DS18B20是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨特優(yōu)點,可以使用戶輕松地組建起傳感器網(wǎng)絡,并可使多點溫度測量電路變得簡單、可靠。PL2303是Prolific公司生產的一種高度集成的RS232-USB接口轉換器,可提供一個RS232全雙工異步竄行通信裝置與USB功能接口便利連接的解決方案。</p>

2、;<p>  該系統(tǒng)由上位機和下位機兩大部分組成。下位機實現(xiàn)溫度的檢測并提供標準RS232通信接口,芯片使用了ATMEL公司的AT89S52單片機和DALLAS公司的DS18B20數(shù)字溫度傳感器。上位機部分使用了通用PC。該系統(tǒng)可應用于倉庫測溫、樓宇空調控制和生產過程監(jiān)控等領域。</p><p>  關鍵字:溫度測量;單總線;數(shù)字溫度傳感器;單片機;轉換器</p><p> 

3、 Based on SCM more temperature monitoring system design</p><p>  Abstract:DS18B20 is a network of high precision digital temperature sensor, since it has the unique advantages single bus, users can easily se

4、t up sensor network, and can make more temperature measurement circuit become simple and reliable. PL2303 Prolific company is the production of a highly integrated RS232-USB interface converter, can provide a RS232 full-

5、duplex asynchronous channeling line of communication equipment and the USB interface convenient connection function of the solution.</p><p>  The system consists of PC and a machine under two main components

6、. A machine to implement the temperature detection and provide standard RS232 communication interface, ATMEL company used chip AT89S52 SCM and DALLAS company DS18B20 digital temperature sensor. PC parts used the general

7、PC. This system can be used in storage temperature measurement, building the air conditioning control and production process monitoring, etc。</p><p>  Key words:temperature measurement; Single bus; Digital t

8、emperature sensors; Single chip microcomputer; converter</p><p><b>  第一章 緒論</b></p><p><b>  1.1 系統(tǒng)概述</b></p><p>  在工、農業(yè)生產和日常生活中,對溫度的測量及控制占據(jù)著極其重要地位。首先讓我們了解一下多

9、點溫度檢測系統(tǒng)在各個方面的應用領域:消防電氣的非破壞性溫度檢測,電力、電訊設備之過熱故障預知檢測,空調系統(tǒng)的溫度檢測,各類運輸工具之組件的過熱檢測,保全與監(jiān)視系統(tǒng)之應用,醫(yī)療與健診的溫度測試,化工、機械…等設備溫度過熱檢測。溫度檢測系統(tǒng)應用十分廣闊。</p><p>  溫度檢測系統(tǒng)有則共同的特點:測量點多、環(huán)境復雜、布線分散、現(xiàn)場離監(jiān)控室遠等。若采用一般溫度傳感器采集溫度信號,則需要設計信號調理電路、A/D 轉

10、換及相應的接口電路,才能把傳感器輸出的模擬信號轉換成數(shù)字信號送到計算機去處理。這樣,由于各種因素會造成檢測系統(tǒng)較大的偏差;又因為檢測環(huán)境復雜、測量點多、信號傳輸距離遠及各種干擾的影響,會使檢測系統(tǒng)的穩(wěn)定性和可靠性下降 。所以多點溫度檢測系統(tǒng)的設計的關鍵在于兩部分:溫度傳感器的選擇和主控單元的設計。溫度傳感器應用范圍廣泛、使用數(shù)量龐大,也高居各類傳感器之首。</p><p>  本設計運用主從分布式思想,由一臺上位

11、機(PC微型計算機),下位機(單片機)多點溫度數(shù)據(jù)采集,組成兩級分布式多點溫度測量的巡回檢測系統(tǒng)。該系統(tǒng)采用 RS-232串行通訊標準,通過上位機(PC)控制下位機(單片機)進行現(xiàn)場溫度采集。溫度值既可以送回主控PC進行數(shù)據(jù)處理,由顯示器顯示。也可以由下位機單獨工作,實時顯示當前各點的溫度值,對各點進行控制。</p><p>  下位機采用的是單片機基于數(shù)字溫度傳感器DS18B20的系統(tǒng)。DS18B20利用單總線

12、的特點可以方便的實現(xiàn)多點溫度的測量,輕松的組建傳感器網(wǎng)絡,系統(tǒng)的抗干擾性好、設計靈活、方便,而且適合于在惡劣的環(huán)境下進行現(xiàn)場溫度測量。本系統(tǒng)可以應用在大型工業(yè)及民用常溫多點監(jiān)測場合。如糧食倉儲系統(tǒng)、樓宇自動化系統(tǒng)、溫控制程生產線之溫度影像檢測、醫(yī)療與健診的溫度測試、空調系統(tǒng)的溫度檢測、石化、機械…等。</p><p>  第二章 系統(tǒng)總體設計</p><p><b>  2.1

13、設計要求</b></p><p> ?、俣帱c溫度檢測,制作3點溫度檢測系統(tǒng),檢測范圍為10℃——20℃。</p><p> ?、趯⑷c檢測的溫度采集并通過PC機界面顯示出來,LED數(shù)碼管顯示出當前環(huán)境溫度及三點的平均溫度。</p><p> ?、墼赑C機驅動界面上分別設定三點的溫度報警閾值,當任一被測點得溫度不在其設定的檢測范圍時,蜂鳴器報警,同時在PC

14、機界面上顯示出相應的報警符號(當被測點溫度超出設定的檢測范圍時顯示紅色報警符,當被測點溫度低于設定的檢測范圍時顯示白色報警符)</p><p>  ④被測點溫度誤差≤±0.5℃。</p><p>  本設計中采用數(shù)字式溫度傳感器DS18B20來采集溫度值并用AT89S52單片機來進行數(shù)據(jù)處理并控制相關電路的工作,PL2303控制器與PC級相連顯示當前測定的溫度,具有檢測方便、靈活

15、性大、精度高等優(yōu)點。當溫度超過預設溫度上下限時,系統(tǒng)將發(fā)出警報并記錄相應警報的類型和時間。</p><p>  2.2系統(tǒng)組成方框圖</p><p><b>  圖1系統(tǒng)方框圖</b></p><p>  第三章 系統(tǒng)硬件設計</p><p><b>  3.1總體思路</b></p>

16、<p>  在設計這個溫度檢測系統(tǒng)之前,先了解系統(tǒng)所要實現(xiàn)的各個功能情況。在設計的過程中,除了要讓硬件電路簡潔外,還要兼顧軟件不能過于復雜。這樣才能達到設計的實際要求,硬件支持軟件,軟件帶動硬件。</p><p>  本電路設計的主要思路是:對設置的三個溫控點進行實時的溫度監(jiān)控,并且把采集的溫度通過電腦界面顯示出來。最基本的程序是溫度采樣程序,之后的設定的數(shù)碼管顯示和PL2303控制都是在基本程序上擴

17、展而得到的。</p><p>  主要目的是將三點檢測的溫度采集并通過PC機界面顯示出來,LED數(shù)碼管顯示出當前環(huán)境溫度及三點的平均溫度。在PC機驅動界面上分別設定三點的溫度報警閾值,當任一被測點得溫度不在其設定的檢測范圍時,蜂鳴器報警,同時在PC機界面上顯示出相應的報警符號</p><p>  3.1.1系統(tǒng)總體設計圖</p><p>  圖2 系統(tǒng)總原理圖&l

18、t;/p><p>  3.2 各模塊電路圖</p><p>  3.2.1溫度測試電路設計</p><p>  這里我們用到溫度芯片DS18B20。DS18B20是DALLAS公司生產的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式。測溫分辨率可達0.0625℃,被測溫度用符號擴展的16位數(shù)字量方式串行輸出。其工作電源既可在遠端引入,也可采用寄生電源方式

19、產生。CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。</p><p>  DS18B20支持“一線總線”接口,測量溫度范圍為 -55°C~+125°C,在-10~+85°C范圍內,精度為±0.5°C?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制

20、、設備或過程控制、測溫類消費電子產品等。</p><p>  DS18B20內部結構</p><p>  DS18B20的內部結構如圖所示 </p><p>  DS18B20內部結構圖</p><p>  DS18B20有4個主要的數(shù)據(jù)部件:① 64位激光ROM。64位激光ROM從高位到低位依次為8位CRC、48位序列號和8位家族代碼(

21、28H)組成。</p><p><b>  ② 溫度靈敏元件。</b></p><p>  ③ 非易失性溫度報警觸發(fā)器TH和TL??赏ㄟ^軟件寫入用戶報警上下限值。</p><p> ?、?配置寄存器。配置寄存器為高速暫存存儲器中的第五個字節(jié)。DS18B20在0工作時按此寄存器中的分辨率將溫度轉換成相應精度的數(shù)值,其各位定義如圖所示。</p

22、><p>  其中,TM:測試模式標志位,出廠時被寫入0,不能改變;R0、R1:溫度計分辨率設置位,其對應四種分辨率如下表所列,出廠時R0、R1置為缺省值:R0=1,R1=1(即12位分辨率),用戶可根據(jù)需要改寫配置寄存器以獲得合適的分辨率。</p><p>  配置寄存器與分辨率關系表 :</p><p> ?。?) 高速暫存存儲器</p><p&

23、gt;  高速暫存存儲器由9個字節(jié)組成,其分配如下圖所示。當溫度轉換命令發(fā)布后,經轉換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,數(shù)據(jù)格式如圖所示。對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變?yōu)樵a,再計算十進制值。</p><p>  溫度值格式圖DS18B20 溫度數(shù)據(jù)表:</p&g

24、t;<p>  典型對應的溫度值表:</p><p>  DS18B20最大的特點是單總線數(shù)據(jù)傳輸方式,DS18B20的數(shù)據(jù)I/O均由同一條線來完成。</p><p>  硬件連接電路如下圖: VCC=5V</p><p><b>  4.7K</b></p><p>  本系統(tǒng)為多點溫度測試。DS

25、18B20采用外部供電方式,理論上可以在一根數(shù)據(jù)總線上掛256個DS18B20,但時間應用中發(fā)現(xiàn),如果掛接25個以上的DS18B20仍舊有可能產生功耗問題。另外單總線長度也不宜超過80M,否則也會影響到數(shù)據(jù)的傳輸。在這種情況下我們可以采用分組的方式,用單片機的多個I/O來驅動多路DS18B20。在實際應用中還可以使用一個MOSFET將I/O口線直接和電源相連,起到上拉的作用。</p><p>  對DS18B20

26、的設計,需要注意以下問題</p><p> ?。?)對硬件結構簡單的單線數(shù)字溫度傳感器DS18B20 進行操作,需要用較為復雜的程序完成。編制程序時必須嚴格按芯片數(shù)據(jù)手冊提供的有關操作順序進行,讀、寫時間片程序要嚴格按要求編寫。尤其在使用DS18B20 的高測溫分辨力時,對時序及電氣特性參數(shù)要求更高。</p><p> ?。?)有多個測溫點時,應考慮系統(tǒng)能實現(xiàn)傳感器出錯自動指示,進行自動D

27、S18B20 序列號和自動排序,以減少調試和維護工作量。</p><p>  (3)測溫電纜線建議采用屏蔽4 芯雙絞線,其中一對線接地線與信號線,另一組接VCC和地線,屏蔽層在源端單點接地。DS18B20 在三線制應用時,應將其三線焊接牢固;在兩線應用時,應將VCC與GND接在一起,焊接牢固。若VCC脫開未接,傳感器只送85.0 ℃的溫度值。</p><p> ?。?)實際應用時,要注意單

28、線的驅動能力,不能掛接過多的DS18B20,同時還應注意最遠接線距離。另外還應根據(jù)實際情況選擇其接線拓撲結構。</p><p>  3.2.2主控模塊電路設計</p><p>  本系統(tǒng)選用ATMEL公司的AT89系列單片機中的AT89S52,AT89S52單片機是一種新型的低功耗、高性能且內含8K字節(jié)閃電的8位CMOS微控制器,與工業(yè)標準MCS一51指令系列和引腳完全兼容。有超強的加密功

29、能,其片內閃電存儲器的編程與擦除完全用電實現(xiàn),數(shù)據(jù)不易揮發(fā),編程/擦除速度快。AT89S52芯片內部有6個中斷源:兩個外部中斷INTO和INT1.三個定時器中斷(定時器0,1,2)和一個串行口中斷。在本系統(tǒng)中涉及到AT89S52芯片的中斷源有五個:分別是外部中斷INT1,定時/計數(shù)器T0,T1和T2以及串行口中斷。本測控系統(tǒng)采用電平激活方式,也即是INT1=0;一旦INT1引腳的采樣值為低電平,則TCON寄對于定時器TO和Tl,通過寄存

30、器TMOD,TCON來控制和選擇定時/計數(shù)器的功能和操作模式。AT89S52的芯片管腳圖如圖5示。</p><p>  圖5 AT89S52芯片管腳</p><p>  3.2.3聯(lián)機模塊電路設計</p><p>  整個模塊通過PL2303轉換器驅動與PC機連接,其模塊電路如下圖所示。通過一個USB接口與PC機連接,實現(xiàn)對溫度的實時監(jiān)控,并可通過控制界面對溫度

31、檢測范圍進行調整控制,當溫度不在檢測范圍內時顯示報警符號。</p><p>  圖6 聯(lián)機模塊電路</p><p>  圖7 聯(lián)機控制界面截圖</p><p>  PL2303介紹及工作原理詳見附錄二</p><p>  3.2.4顯示模塊電路設計</p><p> ?。?)數(shù)碼管顯示電路設計</p>

32、<p>  設計中采用一個四位數(shù)碼管來顯示當前環(huán)境溫度,通過單片機的P1口控制數(shù)碼管的工作,并在P1口與數(shù)碼管間接上拉電阻對數(shù)碼管進行保護,同時也增加了數(shù)碼管的亮度,電路如圖7所示。</p><p>  圖8 數(shù)碼管顯示電路</p><p> ?。?)發(fā)光二極管顯示電路設計</p><p>  設計中采用了3個發(fā)光二極管作為預警顯示燈,采用下拉示串電阻是為

33、了保護發(fā)光二極管,如圖8所示。</p><p>  Led1 L1</p><p>  Led2 L2</p><p>  Led3 L3</p><p>  圖9 發(fā)光二極管預警電路</p><p>  第四章 系統(tǒng)軟件設計</

34、p><p><b>  4.1主程序設計</b></p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  N</b><

35、;/p><p>  圖10 主程序流程圖</p><p>  本軟件設計的程序設計包括采集各個點的溫度進行數(shù)據(jù)處理,判斷當前測定溫度是否在設定的閾值范圍內,若不在則發(fā)出報警。主程序調用了4個子程序,分別是數(shù)碼管顯示程序、LED預警顯示程序、溫度測試程序、單片機與PC機串口通訊程序。</p><p>  LED預警顯示程序:實現(xiàn)對溫度控制的預警功能。</p>

36、<p>  溫度測試程序:對溫度芯片送過來的數(shù)據(jù)進行處理,進行判斷和顯示。</p><p>  數(shù)碼管顯示程序:向數(shù)碼的顯示送數(shù),控制系統(tǒng)的顯示部分。</p><p>  串口通訊程序:實現(xiàn)PC機與單片機通訊,將溫度數(shù)據(jù)傳送給PC機。</p><p>  圖11 程序結構框圖</p><p>  4.2 串行口通訊程序</

37、p><p>  本次通訊中,測控系統(tǒng)分位上位機和下位機之間的通信,系統(tǒng)中單片機負責數(shù)據(jù)采集、處理和控制,上位機進行現(xiàn)場可視化檢測,通信協(xié)議采用半雙工異步串行通信方式,通過RS232的RTS信號進行收發(fā)轉換,傳輸數(shù)據(jù)采用二進制數(shù)據(jù),上位機與下位機之間采用主從式通訊。本人采用的VB環(huán)境下PC機與單片機之間實現(xiàn)串行通訊的軟硬件方案。VB是Microsoft公司推出的Windows應用程序開發(fā)工具,因其具有界面友好,編程簡便

38、等優(yōu)點而受到廣泛的使用,而且Visual Basic 6.0 版本帶有專門實現(xiàn)串行通訊的MSCOMM控件。</p><p>  MSComm控件串口具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。通過此控件,PC機可以利用串行口與其它設備實現(xiàn)輕松連接,簡單高效地實現(xiàn)設備之間的通訊。此控件的事件響應有兩種處理方式。事件驅動方式:由MSComm控件的OnComm事件捕獲并處理通訊錯誤及事件;查詢方式:通過檢查CommEvent屬

39、性的值來判斷事件和錯誤。 </p><p>  1) MSComm控件的主要屬性和方法 </p><p>  a. CommPort:設置或返回串行端口號,其取值范圍為1—99,缺省為1 </p><p>  b. Setting:設置或返回串行端口的波特率、奇偶校驗位、數(shù)據(jù)位數(shù)、停止位。   </p><p>

40、  c. PortOpen:打開或關閉串行端口。 </p><p>  d. RThreshold:該屬性為一閥值,它確定當接收緩沖區(qū)內字節(jié)個數(shù)達到或超過該值后就產生MSComml-OnComm事件。 </p><p>  e. Input:從接收緩沖區(qū)移走一串字符。 </p><p>  f. Output:向發(fā)送緩沖區(qū)傳送一字符串。 </p>&l

41、t;p><b>  軟件流程圖如下:</b></p><p>  圖12 PC通訊程序流程圖 圖13 單片機程序流程圖</p><p>  參數(shù)設定:通信端口選擇COM1,波特率設定為1200B/S</p><p>  MSCOmm.CommPort=1</p><p>  

42、MSComm.Setting=“1200, n, 8, 1”。 </p><p>  START:MOVSP,#60H</p><p>  MOVTMOD,#20H</p><p>  MOVTH1,#0E6H</p><p>  MOVTL1,#0E6H ;1200B/S,晶振為12MHZ</p><

43、;p>  MOV PCON,#00H</p><p>  MOVSCON,#50H</p><p><b>  SETBTR1</b></p><p><b>  第五章 系統(tǒng)調試</b></p><p><b>  5.1軟件調試</b></p>

44、<p><b>  5.1.1分步調試</b></p><p><b>  1、測試環(huán)境及工具</b></p><p>  測試溫度:10~20攝氏度。(模擬多點不同溫度值環(huán)境)</p><p>  測試儀器及軟件:數(shù)字萬用表,溫度計0~100攝氏度,串口調試助手。</p><p><

45、;b>  測試方法:目測。</b></p><p><b>  2、測試方法</b></p><p>  使系統(tǒng)運行,觀察系統(tǒng)硬件檢測是否正常(包括單片機最小系統(tǒng),顯示電路,溫度測試電路等)。系統(tǒng)自帶測試表格數(shù)據(jù),觀察顯示數(shù)據(jù)是否相符合即可。</p><p>  采用溫度傳感器和溫度計同時測量多溫度變化情況(取溫度值不同的多點

46、),目測顯示電路是否正常。并記錄各點溫度值,與實際溫度值比較,得出系統(tǒng)的溫度指標。</p><p>  使用串口調試助手與單片機通訊,觀察單片機與串口之間傳輸數(shù)據(jù)正確否。</p><p><b>  3、測試結果分析</b></p><p>  自檢正常,各點溫度顯示正常,串口傳輸數(shù)據(jù)正確。</p><p>  因為芯片

47、是塑料封裝,所以對溫度的感應靈敏度不是相當高,需要一個很短的時間才能達到穩(wěn)定。</p><p><b>  §5.2 統(tǒng)一調試</b></p><p>  將硬件及軟件結合起來進行系統(tǒng)的統(tǒng)一調試。實現(xiàn)PC機與單片機通訊,兩者可以實時更新顯示各點溫度值。</p><p><b>  第六章 結束語</b></

48、p><p>  為期一個多月的畢業(yè)設計即將結束了,在這一個月里我在同學和老師的幫助下完成了路燈控制系統(tǒng)的設計。</p><p>  畢業(yè)設計作為綜合性的設計,它不同于以前教學中的實驗、課程設計等實踐環(huán)節(jié)。以前的所做的一些設計主要是根據(jù)相關的課本及老師所給資料去完成的,有一定的參照性,所以相對而言比較簡單,不能完全達到鍛煉自己動手能力的目的。而畢業(yè)設計則是對我們大學四年所學知識的一個綜合的訓練及

49、考核,是對所學知識的應用能力和大學所學理論知識對實踐技能相結合的全面的檢驗。并對我們如何根據(jù)要做的課題對現(xiàn)有的資料進行理解和運用的能力的考核。真正做到了理論聯(lián)系實際,把以前所學的知識綜合貫通進行實踐,并在實踐中不斷學習和自我完善。</p><p>  從剛確定畢業(yè)設計課題以來,我首先是查找一些相關的書籍及資料,然后分析設計,并根據(jù)實際情況擬定設計方案,從而達到優(yōu)化方案。在研究設計電路時,我優(yōu)化了電路設計,這就省去

50、了一部分時間,最難的是調試了,但在老師和同學的幫助下,完成的設計達到了預定的要求。同時,通過這次畢業(yè)設計,我們在各個方面都有了很大的提高,特別是在理論和實踐結合方面使我們受益匪淺,使大學里學習的理論知識在根本上得到一次最完整的實踐和提高。也為我即將面臨的工作奠定了很好的基礎。</p><p>  同時,在本次畢業(yè)設計中深深認識到自己的各個方面的不足之處,本著提高動手能力以及檢測四年所學知識的目的,我嚴格要求自己,

51、每一環(huán)節(jié)都認真對待,定期向知道老師報告進展情況和請教不懂的地方,得以完成任務。</p><p>  在以后的工作中,我們必須進一步深化在實踐中去豐富理論,完善知識結構。由于環(huán)境條件的影響,理論與實踐還是有一定的差距,這也要求我們在實踐中注意檢驗的積累。</p><p><b>  參考文獻:</b></p><p>  [1]. 賈振國. DS

52、1820 及高精度溫度測量的實現(xiàn)[J].電子技術應用,2000(1):58 - 59.</p><p>  [2]. 賈正松.單片機系統(tǒng)復位電路設計[J].中國期刊全文數(shù)據(jù)庫,2007/36 </p><p>  [3]. 邦田. 電子電路實用抗干擾技術. 北京:人民郵電出版社,1994

53、 </p><p>  [4]. 李濤.新型單片機AT89C2051及其應用舉例[J] 1996年 04期 </p><p>  [5]. 曲喜貴. 電子元件材料手冊[ M]. 北京:電子工業(yè)出版社,1989.422-430.</p><p>  [6]. 黃賢武,鄭筱

54、霞,曲波等. 傳感器實際應用電路設計[M]. 成都:電子科技大學出版社,1997.4-10.</p><p>  [7]. 劉君華. 智能傳感器系統(tǒng) [M] . 西安:西安電子科技大學出版社,1999.</p><p>  [8]. 余永權. Flash 單片機原理及應用 [M]. 北京:電子工業(yè)出版社,1997.</p><p>  [9]. 邦田. 電子電路實

55、用抗干擾技術 [M] . 北京:人民郵電出版社,1994.</p><p>  [10]. 周云波. 由DS18B20單線數(shù)字溫度計構成的單線多點溫度測量系統(tǒng). 電子技術應用,1996(2):15- 20.</p><p>  [11]. 吉鵬 ,馬云峰等. 微機原理與接口技術 [M]. 北京:高等教育出版社,2001.</p><p>  [12]. 振國. DS

56、1820 及高精度溫度測量的實現(xiàn) [J] . 電子技術應用,2000 (1) .</p><p>  [13]. 東耀,汪仁煌. 數(shù)字溫度傳感器在倉庫溫度檢測系統(tǒng)的應用[J]. 傳感器世界,2001(12):30- 33.</p><p>  [14]. 月霞,孫傳友. DS18B20 硬件連接及軟件編程[J]. 傳感器世界,2001(12):25- 29.</p><

57、p>  [15]. 一線數(shù)字溫度傳感器資料[M]. 武漢:武漢力源電子有限公司,1996.</p><p>  [16]. 賢武,鄭霞,曲波. 傳感器實際應用電路設計[M]. 成都:電子科技大學出版社,1997.</p><p>  [17]. 偉正. 單線數(shù)字溫度傳感器的原理與應用[1]. 電子技術應用,2000,6.66-68</p><p>  [18]

58、. DALLAS公司.DS18B20數(shù)據(jù)手冊[Z]</p><p>  [19]. 周月霞,孫傳友. DS18B20 硬件連接及軟件編程[J]. 傳感器世界,2001,(12).</p><p>  [20]. 單線數(shù)字溫度傳感器資料[M]. 武漢:武漢力源電子有限公司,1996.</p><p>  [21]. 賈東耀,汪仁煌. 數(shù)字溫度傳感器在倉庫溫度檢測系統(tǒng)

59、的應用[J]. 傳感器世界,2001(12).</p><p>  [22]. 余永權. ATMEL 89系列單片機應用技術[M]. 北京:北京航空航天大學出版社2002.</p><p>  [23]. 胡漢才. 單片機原理及系統(tǒng)設計[M]. 北京:清華大學出版社,2002</p><p>  [24]. 譚浩強.C程序設計(第三版)[M].清華大學出版社.200

60、5/</p><p><b>  附錄一:元器件清單</b></p><p>  附錄二:PL2303介紹及工作原理</p><p>  PL2303 是 Prolific 公司生產的一種高度集成的 RS232-USB 接口轉換器, 可提供一個 RS232 全雙工異步串行通信裝置與 USB 功能接口便利聯(lián)接的解決方 案。該器件內置 USB 功能

61、控制器、USB 收發(fā)器、振蕩器和帶有全部調制解調器控 制信號的 UART, 只需外接幾只電容就可實現(xiàn) USB 信號與 RS232 信號的轉換, 能夠方便嵌入到各種設備,所以 2000 年左右開始 Armjishu.com 經常推薦使用該 款芯片;該器件作為 USB/RS232 雙向轉換器,一方面從主機接收 USB 數(shù)據(jù)并將 其轉換為 RS232 信息流格式發(fā)送給外設;另一方面從 RS232 外設接收數(shù)據(jù)轉換 為 USB 數(shù)據(jù)格式傳送回主

62、機。這些工作全部由器件自動完成,開發(fā)者無需考慮 固件設計.</p><p>  PL2303 的高兼容驅動可在大多操作系統(tǒng)上模擬成傳統(tǒng) COM 端口,并允許基 于 COM 端口應用可方便地轉換成 USB 接口應用,通訊波特率高達 6 Mb/s。在工 作模式和休眠模式時都具有功耗低,是嵌入式系統(tǒng)手持設備的理想選擇。該器件 具有以下特征:完全兼容 USB1.1 協(xié)議;可調節(jié)的 3~5 V 輸出電壓,滿足 3V、<

63、;/p><p>  3.3V 和 5V 不同應用需求;支持完整的 RS232 接口,可編程設置的波特率:75b/s~</p><p>  6 Mb/s,并為外部串行接口提供電源;512 字節(jié)可調的雙向數(shù)據(jù)緩存;支持默認 的 ROM 和外部 EEPROM 存儲設備配置信息,具有 I2C 總線接口,支持從外部 MODEM 信號遠程喚醒;支持 Windows98,Windows2000,Window

64、sXP 等操作系統(tǒng);28 引腳 的 SOIC 封裝.</p><p><b>  一 .產品特性:</b></p><p>  完全符合USB規(guī)范2.0(全速兼容)</p><p>  片內擁有 USB 1.1 收發(fā)器,5V 轉 3.3V 的穩(wěn)壓器,12 MHz 的晶體 振蕩器</p><p>  3. 支持 RS232

65、 這樣的串行接口</p><p>  1)全雙工發(fā)送器和接收器(TxD 和 RxD)</p><p>  2)六個調制解調控制引腳(RTS,CTS,DTR,DSR,DCD 和 RI)</p><p>  3)內容可以為 5,6,7 或 8 個數(shù)據(jù)位</p><p>  4) 支持自動握手各種模式</p><p>

66、  5) 一,一個半,或兩個停止位</p><p>  6) 奇偶錯誤,幀錯誤和串行中斷檢測</p><p>  7) 可編程波特率從 75bps 到 6 Mbps</p><p>  8) 外部的 RS232 驅動下降控制</p><p>  9) 獨立的串行接口電源</p><p>  4. 寬廣的流量控制機制&l

67、t;/p><p>  1)自動與 CTS / RTS 流控制</p><p>  2)自動使用的 XON / XOFF 流量控制</p><p>  3)入站數(shù)據(jù)緩沖區(qū)溢出檢測</p><p>  5. 可配置的 512 個字節(jié)雙向數(shù)據(jù)緩沖器</p><p>  1)256 字節(jié)的輸出緩沖區(qū)和 256 字節(jié)的輸入緩

68、沖區(qū)</p><p>  2)128 字節(jié)的輸出緩沖區(qū)和 384 字節(jié)的輸入緩沖區(qū)</p><p>  6. 支持從遠程輸入相關調制信號進行喚醒功能</p><p>  7. 兩個通用的I/O(GPIO)引腳</p><p>  8. 啟動時可以講配置存儲于外部EEPROM</p><p>  9.提供支持Windo

69、ws和MacOS,Linux和WinCE的驅動程序</p><p>  10.具有專為 Windows XP 驅動程序認證的標志</p><p>  11.該 IC 是 SSOP 封裝的小尺寸 28 引腳</p><p><b>  二.簡介:</b></p><p>  PL2303 是 Prolific 公司生產

70、的一種高度集成的 RS232-USB 接口轉換器,可 提供一個 RS232 全雙工異步串行通信裝置與 USB 功能接口便利聯(lián)接的解決方案。</p><p>  該器件內置 USB 功能控制器、USB 收發(fā)器、振蕩器和帶有全部調制解調器控 制信號的 UART,只需外接幾只電容就可實現(xiàn) USB 信號與 RS232 信號的轉換,能 夠方便嵌入到手持設備。</p><p>  該器件作為 USB/

71、RS232 雙向轉換器,一方面從主機接收 USB 數(shù)據(jù)并將其轉 換為 RS232 信息流格式發(fā)送給外設;另一方面從 RS232 外設接收數(shù)據(jù)轉換為 USB 數(shù)據(jù)格式傳送回主機。這些工作全部由器件自動完成,開發(fā)者無需考慮固件設計。</p><p>  通過利用 USB 塊傳輸模式,利用龐大的數(shù)據(jù)緩沖器和自動流量控制,PL2303HX 能夠實現(xiàn)更高的吞吐量比傳統(tǒng)的 UART(通用異步收發(fā)器)端口,高達 115200

72、bps 的波特率可用于更高的性能使用。</p><p><b>  三、對應引腳方案:</b></p><p><b>  附錄三:源程序</b></p><p>  //功能:與上位機完成通信,上位機發(fā)送請求指令,可以完成三路溫度數(shù)據(jù)的采集</p><p>  #include <reg52

73、.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit A1 = P3^7; //數(shù)碼管位選</p><p>  sbit A2 = P3^6;</p><p>  sbit A3

74、= P3^5;</p><p>  sbit A4 = P3^4;</p><p>  sbit db1 = P2^1; //定義采集點1與單片機的接口</p><p>  sbit db2 = P2^3; //定義采集點2與單片機的接口</p><p>  sbit db3 = P2^5; //定義采集點3與單片機的接口<

75、/p><p>  sbit jb1 = P2^0;//采集點1溫度報警接口</p><p>  sbit jb2 = P2^2;//采集點2溫度報警接口</p><p>  sbit jb3 = P2^4;//采集點3溫度報警接口</p><p>  sbit buzzer = P3^2; //蜂鳴器</p><p&g

76、t;  int tem1;//用于儲存各采集點讀取的溫度值</p><p><b>  int tem2;</b></p><p><b>  int tem3;</b></p><p>  uchar tt = 0;</p><p>  uchar rex = 0;</p><

77、;p>  uchar receivedat = 0; //用于存放單片機收到的指令數(shù)據(jù)</p><p>  uchar c;//主程序中循環(huán)變量</p><p>  uchar senden = 0; //發(fā)送使能</p><p>  uchar qb1,sg1,qb2,sg2,qb3,sg3;//用于存放溫度值的各位數(shù)值 變量</p>&

78、lt;p>  uchar wd[8];//用于存放待發(fā)送到PC端的溫度各位數(shù)據(jù) 數(shù)組</p><p>  /***************************定義數(shù)碼管顯示數(shù)組**************************************/</p><p>  uchar weixuan[] = {0x80,0x40,0x20,0x10}; //位選</p&

79、gt;<p>  uchar duanxuan[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段選</p><p>  uchar dxxsd[] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //段選含小數(shù)點</p><p>  void d

80、elay(uint i)//ds18b20數(shù)據(jù)延時</p><p><b>  {</b></p><p>  while(i--);</p><p><b>  } </b></p><p>  void delay0(uint z) //數(shù)碼管顯示延時</p><p&g

81、t;<b>  {</b></p><p><b>  uint i,j;</b></p><p>  for(i = 10;i > 0;i--)</p><p>  for(j = z;j > 0;j--);</p><p><b>  } </b>&l

82、t;/p><p>  void init(void)//18b20初始化</p><p><b>  {</b></p><p>  //uchar x = 0;</p><p>  db1 = 1;//db18b20復位</p><p>  db2 = 1;//db18b20復位</p&

83、gt;<p>  db3 = 1;//db18b20復位</p><p><b>  delay(8);</b></p><p><b>  db1 = 0;</b></p><p><b>  db2 = 0;</b></p><p><b>  db

84、3 = 0;</b></p><p>  delay(80);</p><p>  db1 = 1;//db18b20復位</p><p>  db2 = 1;//db18b20復位</p><p>  db3 = 1;//db18b20復位</p><p>  delay(14);</p>

85、<p>  //x = db;</p><p>  delay(20);</p><p>  //return(x);</p><p><b>  }</b></p><p>  char read1(void) //讀采集點1數(shù)據(jù)</p><p><b>  {<

86、;/b></p><p>  uchar i = 0;</p><p>  uchar dat = 0;</p><p>  for(i = 8;i > 0;i--)</p><p><b>  {</b></p><p><b>  db1 = 0;</b>&l

87、t;/p><p>  dat >>= 1;</p><p><b>  db1 = 1;</b></p><p><b>  if(db1)</b></p><p>  dat |= 0x80;</p><p><b>  delay(4);</b&g

88、t;</p><p><b>  }</b></p><p>  return(dat);</p><p><b>  }</b></p><p>  char read2(void) //讀采集點2數(shù)據(jù)</p><p><b>  {</b><

89、;/p><p>  uchar i = 0;</p><p>  uchar dat = 0;</p><p>  for(i = 8;i > 0;i--)</p><p><b>  {</b></p><p><b>  db2 = 0;</b></p>

90、<p>  dat >>= 1;</p><p><b>  db2 = 1;</b></p><p><b>  if(db2)</b></p><p>  dat |= 0x80;</p><p><b>  delay(4);</b></p&g

91、t;<p><b>  }</b></p><p>  return(dat);</p><p><b>  }</b></p><p>  char read3(void) //讀采集點3數(shù)據(jù)</p><p><b>  {</b></p>&

92、lt;p>  uchar i = 0;</p><p>  uchar dat = 0;</p><p>  for(i = 8;i > 0;i--)</p><p><b>  {</b></p><p><b>  db3 = 0;</b></p><p> 

93、 dat >>= 1;</p><p><b>  db3 = 1;</b></p><p><b>  if(db3)</b></p><p>  dat |= 0x80;</p><p><b>  delay(4);</b></p><p&

94、gt;<b>  }</b></p><p>  return(dat);</p><p><b>  }</b></p><p>  void write(uchar dat1,uchar dat2,uchar dat3) //寫數(shù)據(jù)</p><p><b>  {</b>

95、</p><p>  uchar i = 0;</p><p>  for(i = 8;i > 0;i--)</p><p><b>  {</b></p><p><b>  db1 = 0;</b></p><p><b>  db2 = 0;</b

96、></p><p><b>  db3 = 0;</b></p><p>  db1 = dat1 & 0x01;</p><p>  db2 = dat2 & 0x01;</p><p>  db3 = dat3 & 0x01;</p><p><b> 

97、 delay(5);</b></p><p><b>  db1 = 1;</b></p><p><b>  db2 = 1;</b></p><p><b>  db3 = 1;</b></p><p>  dat1 >>= 1;</p>

98、<p>  dat2 >>= 1;</p><p>  dat3 >>= 1;</p><p><b>  }</b></p><p><b>  delay(4);</b></p><p><b>  }</b></p>&

99、lt;p>  void readtemperature(void) //讀取溫度值</p><p><b>  {</b></p><p>  uchar a = 0;</p><p>  uchar b = 0;</p><p><b>  init();</b></p>&

100、lt;p>  write(0xcc,0xcc,0xcc);</p><p>  write(0x44,0x44,0x44);//啟動</p><p><b>  init();</b></p><p>  write(0xcc,0xcc,0xcc);</p><p>  write(0xbe,0xbe,0xbe);

101、//讀取溫度到寄存器</p><p>  a = read1();</p><p>  b = read1();</p><p><b>  tem1 = b;</b></p><p>  tem1 <<= 8;</p><p>  tem1 = tem1 | a;</p>

102、<p>  tem1 = tem1 * 0.0625 * 100 + 0.5;</p><p>  a = read2();</p><p>  b = read2();</p><p><b>  tem2 = b;</b></p><p>  tem2 <<= 8;</p>&

103、lt;p>  tem2 = tem2 | a;</p><p>  tem2 = tem2 * 0.0625 * 100 + 0.5;</p><p>  a = read3();</p><p>  b = read3();</p><p><b>  tem3 = b;</b></p><p

104、>  tem3 <<= 8;</p><p>  tem3 = tem3 | a;</p><p>  tem3 = tem3 * 0.0625 * 100 + 0.5;</p><p><b>  }</b></p><p>  void jisuan(void) //分離出四位溫度值的各位<

105、;/p><p>  {/*****計算分離采集點1數(shù)據(jù)******/</p><p>  qb1 = tem1 / 100;//分離千位百位</p><p>  sg1 = tem1 % 100; //分離十位個位</p><p>  qb2 = tem2 / 100;//分離千位百位</p><p>  sg2 =

106、tem2 % 100; //分離十位個位</p><p>  qb3 = tem3 / 100;//分離千位百位</p><p>  sg3 = tem3 % 100; //分離十位個位</p><p>  wd[0] = 't'; //前一個字節(jié)'t'為幀頭</p><p>  wd[1] = qb1;&

107、lt;/p><p>  wd[2] = sg1;</p><p>  wd[3] = qb2;</p><p>  wd[4] = sg2;</p><p>  wd[5] = qb3;</p><p>  wd[6] = sg3;</p><p>  wd[7] = 'e';//

108、后一個字節(jié)'e'為幀尾</p><p><b>  }</b></p><p>  /***************************數(shù)碼管顯示2位整數(shù)加2位小數(shù)**************************************/ </p><p>  void display(float x) //數(shù)碼

109、管顯示2位整數(shù)加2位小數(shù),例x=12.34</p><p><b>  {</b></p><p>  uchar s = 0,g = 0,sf = 0,bf = 0;</p><p>  uint zs,xs1;</p><p><b>  float xs;</b></p><

110、;p>  zs = (uint)x;//獲取整數(shù)部分</p><p>  xs = x - zs;//獲取小數(shù)部分</p><p>  xs = xs * 100;//擴大小數(shù)100倍</p><p>  xs1 = (uint)xs;//提取小數(shù)的十分位和百分位</p><p>  s = zs/10;//分離整數(shù)部分十位</p

111、><p>  g = zs%10;//分離整數(shù)部分個位</p><p>  sf = xs1/10;//分離十分位</p><p>  bf = xs1%10;//分離百分位</p><p>  A1 = 1; //第一位顯示</p><p><b>  A2 = 0;</b></p>

112、<p><b>  A3 = 0;</b></p><p><b>  A4 = 0;</b></p><p>  P1 = duanxuan[s];</p><p>  delay0(10);</p><p>  A1 = 0; //第二位顯示</p><p&

113、gt;<b>  A2 = 1;</b></p><p><b>  A3 = 0;</b></p><p><b>  A4 = 0;</b></p><p>  P1 = dxxsd[g];</p><p>  delay0(10);</p><p>

114、;  A1 = 0; //第三位顯示</p><p><b>  A2 = 0;</b></p><p><b>  A3 = 1;</b></p><p><b>  A4 = 0;</b></p><p>  P1 = duanxuan[sf];</p>

115、<p>  delay0(10);</p><p>  A1 = 0; //第四位顯示</p><p><b>  A2 = 0;</b></p><p><b>  A3 = 0;</b></p><p><b>  A4 = 1;</b></p>

116、<p>  P1 = duanxuan[bf];</p><p>  delay0(10);</p><p>  A1 = 0; //數(shù)碼管全部關閉</p><p><b>  A2 = 0;</b></p><p><b>  A3 = 0;</b></p>

117、<p>  A4 = 0; </p><p><b>  }</b></p><p>  void main(void)</p><p><b>  {</b></p><p>  buzzer = 0;</p><p>  TMOD = 0x20;//設置定

118、時器1為工作方式2</p><p>  TH1 = 0xfd;</p><p>  TL1 = 0xfd;</p><p><b>  TR1 = 1;</b></p><p><b>  REN = 1;</b></p><p><b>  SM0 = 0;<

119、;/b></p><p><b>  SM1 = 1;</b></p><p><b>  EA = 1;</b></p><p><b>  ES = 1;</b></p><p><b>  RI = 0;</b></p><

120、p><b>  TI = 0;</b></p><p>  jb1 = 0; //關警報燈</p><p><b>  jb2 = 0;</b></p><p><b>  jb3 = 0;</b></p><p><b>  while(1)</b&g

121、t;</p><p><b>  {</b></p><p>  display((tem1 / 100.00 + tem2 / 100.00 + tem3 / 100.00) / 3);//數(shù)碼管顯示</p><p>  readtemperature();</p><p><b>  jisuan();

122、</b></p><p>  display((tem1 / 100.00 + tem2 / 100.00 + tem3 / 100.00) / 3);//數(shù)碼管顯示</p><p>  if(senden == 1)</p><p><b>  {</b></p><p>  senden = 0;//

123、 關閉發(fā)送使能</p><p>  switch (receivedat)</p><p><b>  {</b></p><p><b>  case 48:</b></p><p><b>  jb1 = 1;</b></p><p><b&g

124、t;  jb2 = 1;</b></p><p><b>  jb3 = 1;</b></p><p>  buzzer = 1;</p><p><b>  break;</b></p><p><b>  case 49:</b></p><

125、p><b>  jb1 = 1;</b></p><p><b>  jb2 = 1;</b></p><p><b>  jb3 = 0;</b></p><p><b>  break;</b></p><p>  buzzer = 1;<

溫馨提示

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

評論

0/150

提交評論