基于數(shù)字溫度傳感器的數(shù)字溫度計_第1頁
基于數(shù)字溫度傳感器的數(shù)字溫度計_第2頁
基于數(shù)字溫度傳感器的數(shù)字溫度計_第3頁
基于數(shù)字溫度傳感器的數(shù)字溫度計_第4頁
基于數(shù)字溫度傳感器的數(shù)字溫度計_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、黃 河 科 技 學(xué) 院單片機應(yīng)用技術(shù)課程設(shè)計題目:基于數(shù)字溫度傳感器的數(shù)字溫度計姓 名: 院 (系): 工學(xué)院 專業(yè)班級:13機電專升本學(xué) 號:指導(dǎo)教師: 黃河科技學(xué)院課程設(shè)計任務(wù)書 工 學(xué)院 機械 系 機械設(shè)計制造及其自動化 專業(yè) s13 級 1 班學(xué)號 1303050025 姓名 時鵬 指導(dǎo)教師 朱煜鈺 題目: 基于數(shù)字溫度傳感器的數(shù)字溫度計設(shè)計 課程: 單片機應(yīng)用技術(shù)課程設(shè)計 課程設(shè)計時間 2014年 10月27 日 至2014年11 月 10 日 共 2 周課程設(shè)計工作內(nèi)容與基本要求(設(shè)計要求、設(shè)計任務(wù)、工作計劃、所需相關(guān)資料)(紙張不夠可加頁)課程設(shè)計任務(wù)書及摘要一、課程設(shè)計題目:基

2、于數(shù)字溫度傳感器的數(shù)字溫度計二、課程設(shè)計要求利用數(shù)字溫度傳感器ds18b20與單片機結(jié)合來測量溫度。利用數(shù)字溫度傳感器ds18b20測量溫度信號,計算后在led數(shù)碼管上顯示相應(yīng)的溫度值。其溫度測量范圍為-55125,精確到0.5。數(shù)字溫度計所測量的溫度采用數(shù)字顯示,控制器使用單片機at89c51,溫度傳感器使用ds18b20,用3位共陽極led數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示。3、 課程設(shè)計摘要ds18b20是一種可組網(wǎng)的高精度數(shù)字式溫度傳感器,由于其具有單總線的獨特優(yōu)點,可以使用戶輕松地組建起傳感器網(wǎng)絡(luò),并可使多點溫度測量電路變得簡單、可靠。本文結(jié)合實際使用經(jīng)驗,介紹了ds18b20數(shù)字溫

3、度傳感器在單片機下的硬件連接及軟件編程,并給出了軟件流程圖。該系統(tǒng)由上位機和下位機兩大部分組成。下位機實現(xiàn)溫度的檢測并提供標準rs232通信接口,芯片使用了atmel公司的at89c51單片機和dallas公司的ds18b20數(shù)字溫度傳感器。上位機部分使用了通用pc。該系統(tǒng)可應(yīng)用于倉庫測溫、樓宇空調(diào)控制和生產(chǎn)過程監(jiān)控等領(lǐng)域。四、關(guān)鍵字:單片機 溫度測量 ds18b20 數(shù)字溫度傳感器 at89c511目錄緒論.31. 原理介紹.41.1總體設(shè)計方案.41.2主控制部分.41.3總體設(shè)計框圖.42. 硬件電路.52.1 硬件電路預(yù)覽.52.2 ds18b20介紹.52.3 at89c51介紹.8

4、2.4 數(shù)碼管介紹.103. 程序設(shè)計.113.1 程序流程圖.113.2 程序清單.124. 仿真效果圖.165. 結(jié)論與總結(jié).18緒論隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便一是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,腰圍現(xiàn)代人工作、科研、生活提供更好更方便的設(shè)施就需要從單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。隨著時代的進步和發(fā)展,單片機技術(shù)已經(jīng)普及到我們生活,工作,科研等各個領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),在工、農(nóng)業(yè)生產(chǎn)和日常生活中,對溫度的測量及控制占據(jù)著極其重要的地位。首先了解一下多點溫度檢測

5、系統(tǒng)在各個方面的應(yīng)用領(lǐng)域:消防電氣的非破壞性溫度檢測,電力、電訊設(shè)備之過熱故障預(yù)知檢測,空調(diào)系統(tǒng)的溫度檢測,各類運輸工具之組件的過熱檢測,保全與監(jiān)視系統(tǒng)之應(yīng)用,醫(yī)療與健診的溫度測試,化工、機械等設(shè)備溫度過熱檢測。由此可見,溫度檢測系統(tǒng)應(yīng)用十分廣闊。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確,其輸出溫度采用數(shù)字顯示,該設(shè)計控制器使用單片機at89c51,測溫傳感器使用ds18b20,用3位共陽極led數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準確達到以上要求。本溫度計屬于多功能溫度計,可以設(shè)置上下報警溫度,當(dāng)溫度不在設(shè)置范圍內(nèi)報警。1.原理介紹1.1總體設(shè)計方案總

6、體設(shè)計方案采用at89c51單片機作控制器,溫度傳感器選用ds18b20來設(shè)計數(shù)字溫度計,系統(tǒng)由3個模塊組成:主控制器、測溫電路及顯示電路。主控制器由單片機at89c51實現(xiàn),測溫電路由溫度傳感器ds18b20實現(xiàn),顯示電路由4位led數(shù)碼管直讀顯示。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準確其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準確的場所,或科研實驗室使用,該設(shè)計控制器使用單片機at89c51,測溫傳感器使用ds18b20,用4位共陽極led數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準確達到以上要求。1.2主控制部分本設(shè)計采用at89c51八位單片機實現(xiàn)。

7、單片機軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算術(shù)算法和邏輯控制。而且體積小,硬件實現(xiàn)簡單,安裝方便。既可以單獨對多ds18b20控制工作,還可以與pc機通信.運用主從分布式思想,由一臺上位機(pc微型計算機),下位機(單片機)多點溫度數(shù)據(jù)采集,組成兩級分布式多點溫度測量的巡回檢測系統(tǒng),實現(xiàn)遠程控制。另外at89c51在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。系統(tǒng)采用針對傳統(tǒng)溫度測溫系統(tǒng)測溫點少,系統(tǒng)兼容性及擴展性較差的特點,運用分布式通訊的思想。設(shè)計一種可以用于大規(guī)模多點溫度測量的巡回檢測系統(tǒng)。該系統(tǒng)采用的是rs-232串行通訊的標準,通過下位機(單片機)進

8、行現(xiàn)場的溫度采集,溫度數(shù)據(jù)既可以由下位機模塊實時顯示,也可以送回上位機進行數(shù)據(jù)處理,具有巡檢速度快,擴展性好,成本低的特點。1.3總體設(shè)計框圖控制器采用單片機at89c51,溫度傳感器采用ds18b20,用4位led數(shù)碼管顯示溫度??傮w設(shè)計框圖如圖1-1所示。圖1.1 總設(shè)計框圖2.硬件電路2.1硬件電路預(yù)覽圖2.1 總電路2.2 ds18b20介紹ds18b20是由美國dallas半導(dǎo)體公司研制的一款數(shù)字溫度傳感器,與一般的熱敏電阻相比,它能夠直接檢測出被測溫度并且可根據(jù)實際的要求通過簡單的編程實現(xiàn)912位的數(shù)字讀取方式。ds18b20采用獨特的單總線接口方式,只需一根線與單片機直接連接便可

9、實現(xiàn)數(shù)據(jù)的讀寫操作,簡化了分布式溫度傳感網(wǎng)絡(luò)的應(yīng)用。ds18b20數(shù)字溫度傳感器的優(yōu)點是結(jié)構(gòu)簡單,耐磨耐碰,體積較小,使用方便,與傳統(tǒng)溫度傳感器相比測量精度較高,其抗干擾能力強,封裝形式也有很多種,可以根據(jù)不同的應(yīng)用場合而選擇不同形式的封裝。因此,本系統(tǒng)選擇ds18b20作為系統(tǒng)溫度傳感器,可以簡化系統(tǒng)結(jié)構(gòu),使測量方便、可靠,同時ds18b20的價格也比較便宜。ds18b20有以下優(yōu)點:(1)單總線接口方式:ds18b20與單片機聯(lián)接只需一根數(shù)據(jù)總線便能完成數(shù)據(jù)的全雙工通信。(2)在使用時不需要外圍元器件。(3)ds18b20工作電壓范圍寬,可工作于3.0 v5.5v,可以由數(shù)據(jù)線直接供電,不

10、需要外部電源。(4)測溫范圍為:-55+125,可以滿足一般的生產(chǎn)生活需要,測溫分辨率0.5(5)可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125、0.0625,可實現(xiàn)高精度測溫。(6)ds18b20支持多傳感器組成測溫網(wǎng)功能,可以由單片機引出的一條總線上并聯(lián)多個溫度傳感器以實現(xiàn)多點組網(wǎng)測溫。ds18b20的封裝有很多種,最常見的是to-92封裝,它的管腳說明如圖所示。其封裝結(jié)構(gòu)共有三個引腳,分別為電源引腳(vcc),數(shù)據(jù)線引腳(dq)和接地引腳(gnd)。圖2.2 ds18b20的to-92封裝ds18b20的內(nèi)部結(jié)構(gòu)如圖所示。 圖2.3 ds18b20的內(nèi)部結(jié)構(gòu)

11、圖從圖中我們可以看出,ds18b20數(shù)字溫度傳感器主要由四部分組成:64位rom只讀存儲器、溫度傳感器、高低溫度觸發(fā)器th和tl、配置寄存器。ds18b20的管腳排列如圖2.3所示,其中dq為數(shù)字信號i/o口;gnd為電源地,需要與單片機共地;vdd為外接電源輸入端。每個ds18b20的rom都有不同64位序列號,其序列號是出廠前被光刻好的,不可更改,它可以看作是該ds18b20的地址序列碼。64位rom的排循環(huán)冗余校驗碼是crc=x8x5x41。rom序列號的作用是使每一個ds18b20都各不相同,這樣就可以實現(xiàn)一根總線上并聯(lián)多個ds18b20實現(xiàn)多點組網(wǎng)測溫的目的。溫度的測量由ds18b2

12、0中的溫度傳感器完成,并將檢測到的溫度用16位帶符號擴展的二進制補碼讀數(shù)形式由數(shù)據(jù)總線傳出,以0.0625/lsb形式表達,其中s為符號位。例如125的數(shù)字輸出為07d0h,25.0625的數(shù)字輸出為0191h,25.0625的數(shù)字輸出為ff6fh,55的數(shù)字輸出為fc90h。 高速暫存器是一個9字節(jié)的隨機存儲器。開始低位兩個字節(jié)包含被測溫度的數(shù)字量信息;第3、4、5字節(jié)分別是th、tl、配置寄存器的臨時拷貝,每一次上電復(fù)位時被重置;第6、7、8字節(jié)未用,默認為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的crc碼,可用來保證通信正確。ds18b20在使用中的注意事項。ds18b20雖然具有測溫

13、電路簡單、測溫精度較高、連接方便、占用i/o端口線少等優(yōu)點,在實際應(yīng)用中應(yīng)注意以下幾個問題:(1)簡單的硬件電路需要相對復(fù)雜的軟件進行編輯,ds18b20與單片機間采用串行數(shù)據(jù)傳送,因此,在對ds18b20進行讀取和寫入編程時,必須嚴格保證讀寫時序,否則將無法讀取測溫結(jié)果。(2)在實際應(yīng)用中,當(dāng)單總線上所掛ds18b20最好不要超過8個,否則,就需要解決單片機的總線驅(qū)動問題。(3)連接ds18b20的總線電路是有長度限制的。當(dāng)采用普通信號電纜傳輸數(shù)據(jù),且電纜長度超過50m時,讀取的測溫數(shù)據(jù)會因為有外界的干擾而發(fā)生錯誤。而將總線電纜改為雙絞線帶屏蔽電纜時,正常通信距離最遠可達150m。因此,在用

14、ds18b20進行長距離測溫系統(tǒng)設(shè)計時,需要解決總線分布電容的阻抗匹配問題。(4)在ds18b20測溫程序設(shè)計中,向ds18b20發(fā)出溫度轉(zhuǎn)換命令后,程序需要等待ds18b20的返回信號。實際應(yīng)用中難免出現(xiàn)某個ds18b20斷線問題,當(dāng)程序需要讀該ds18b20時,將沒有返回信號,程序?qū)⑦M入死循環(huán)。測溫電纜最好采用帶屏蔽4芯雙絞線,其中一對線接地線與信號線,另一組接電源線和地線,屏蔽層在源端單點接地。2.3at89c51介紹mcs-51單片機是指由美國英特爾公司生產(chǎn)的一系列單片機的總稱,這一系列單片機包括很多種,如8031、8032、8051、8052、8752等。其中8051是最早研制的且最

15、具典型性的產(chǎn)品,而該系列其他單片機都是以8051為基礎(chǔ)發(fā)展起來的,與8051的基本結(jié)構(gòu)和軟件特征相似。8051單片機包含微型計算機所必須具備的基本功能部件,各部件相互獨立地集成在同一塊芯片上。8051基本功能特性如下:(1)8位cpu;(2)四個8位并行i/o端口;(3)4kb程序存儲器(rom),外部可擴充至64kb;(4)128b數(shù)據(jù)存儲器(ram),外部可擴充至64kb;(5)兩個16位定時/計數(shù)器;(6)5個中斷源;(7)全雙工的串行通信口;(8)具有布爾運算能力;標準的8051單片機有幾種不同的封裝形式。最常見,也是最廉價的是pdip40封裝的塑料雙列直插40引腳8051單片機,其引

16、腳排列如圖所示。圖2.4單片機的管腳排列圖40個引腳功能如下:(1)主電源引腳vss和vcc。vss:地線。vcc:5v電源。(2)外界晶振引腳xtal1和xtal2。xtal1:外接晶體的引線端。當(dāng)使用芯片內(nèi)部時鐘時,此端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,對于hmos單片機,此引腳接地;對于chmos單片機,此引腳作為外部振蕩信號的輸入端。xtal2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時鐘時,此端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時鐘時,對于hmos單片機,此引腳接外部振蕩源;對于chmos單片機,此引腳懸空不接。(3)控制或與其他電源復(fù)用引腳rst,ale/,和。rst:復(fù)位信

17、號。當(dāng)輸入的復(fù)位信號延續(xù)2個機器周期以上高電平即為有效,用以完成單片機的復(fù)位初始化操作。在vcc發(fā)生故障、降低到低電平規(guī)定值掉電期間,此引腳可接上備用電源vpd,由vpd向內(nèi)部ram供電,以保持內(nèi)部ram中的數(shù)據(jù)。ale/:地址鎖存控制信號。在系統(tǒng)擴展時,ale用于控制把p0口輸出的低8位地址鎖存器鎖存起來,以實現(xiàn)低位地址和數(shù)據(jù)的隔離。此外由于ale是以晶振六分之一的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖使用。:外部程序存儲器讀選通信號。在讀外部rom時有效(低電平),以實現(xiàn)外部rom單元的讀操作。:訪問程序存儲控制信號。當(dāng)信號為低電平時,對rom的讀操作先低昂在外部程序存儲器

18、;而當(dāng)信號為高電平時,則對rom的讀操作是從內(nèi)部程序存儲器開始,并可延至外部程序存儲器。(4)輸入/輸出引腳,p0口p3口。p0口(p0.0-p0.7):8位雙向并行i/o口。擴展片外存儲器或i/o口時,作為低8位地址總線和8位數(shù)據(jù)總線的分時復(fù)用接口,它為雙向三態(tài)。p0口能以吸收電流的方式驅(qū)動8個lsttl負載。p1口(p1.0-p1.7):8位準雙向并行i/o接口。p1口每一位都可以獨立設(shè)置成輸入輸出位。p1口能驅(qū)動4個lsttl負載。p2口(p2.0-p2.7):8位準雙向并行i/o口。擴展外部數(shù)據(jù)、程序存儲器時,作為高八位地址輸出端口。p2口能驅(qū)動4個lsttl負載。p3口(p3.0-p

19、3.7):8位準雙向并行i/o口。p3口除了作為一般的準雙向口使用外,每個引腳還有特殊功能.p3口能驅(qū)動4個lsttl負載。2.4數(shù)碼管介紹led數(shù)碼管(led segment displays)由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。數(shù)碼管實際上是由七個發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。led數(shù)碼管常用段數(shù)一般為7段有的另加一個小數(shù)點,還有一種是類似于3位“+1”型。位數(shù)有半位,1,2,3,4,5,6,8,10位等等.,led數(shù)碼管根據(jù)led的接法不同分為共陰和共

20、陽兩類,了解led的這些特性,對編程是很重要的,因為不同類型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖2是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。顏色有紅,綠,藍,黃等幾種。led數(shù)碼管廣泛用于儀表,時鐘,車站,家電等場合。選用時要注意產(chǎn)品尺寸顏色,功耗,亮度,波長等。下面將介紹常用led數(shù)碼管內(nèi)部引腳圖片。圖2.5數(shù)碼管3.程序設(shè)計3.1 程序流程圖圖3.1主程序流程圖圖3.2 ds18b20程序流程圖3.2 程序清單#include#include#define uchar unsigned char#define uint un

21、signed intsbit ds=p10; /溫度傳感器信號線uint temp; /定義整形的溫度數(shù)據(jù)float f_temp; /定義浮點型的溫度數(shù)據(jù)bit flag; /正負溫度標志位uchar code table=0xc0,0xf9,0xa4,0xb0, /共陽極數(shù)碼管顯示0-9 0x99,0x92,0x82,0xf8, 0x80,0x90, 0x40,0x79,0x24,0x30, /帶小數(shù)點的0-9 0x19,0x12,0x02,0x78, 0x00,0x10, 0xbf,0xff; /正負號void delay(uint z) /延時函數(shù),約1msuint x,y;for(x

22、=z;x0;x-)for(y=110;y0;y-);void dsreset(void) /ds18b20復(fù)位,初始化函數(shù)uint i;ds=0;i=103;while(i0)i-;ds=1;i=4;while(i0)i-;bit tempreadbit(void) /讀一位數(shù)據(jù)函數(shù)uint i;bit dat;ds=0;i+;ds=1;i+;i+;dat=ds;i=8;while(i0)i-;return(dat);uchar tempread(void)/讀一個字節(jié)數(shù)據(jù)函數(shù)uchar i,j,dat;dat=0;for(i=1;i=8;i+)j=tempreadbit();dat=(j1)

23、;return(dat);void tempwritebyte(uchar dat) /向ds18b20寫一個字節(jié)數(shù)據(jù)函數(shù)uint i;uchar j;bit testb;for(j=1;j1;if(testb)ds=0;i+;i+;ds=1;i=8;while(i0)i-;elseds=0;i=8;while(i0)i-;ds=1;i+;i+;void tempchange(void) /ds18b20開始獲取溫度并轉(zhuǎn)換dsreset();delay(1);tempwritebyte(0xcc); /跳過讀rom指令tempwritebyte(0x44); /寫溫度轉(zhuǎn)換指令uint get_

24、temp() /讀取寄存器中存儲的溫度數(shù)據(jù)uchar a,b;dsreset();delay(1);tempwritebyte(0xcc);tempwritebyte(0xbe);a=tempread(); /讀低八位b=tempread(); /讀高八位temp=b; temp=8; /兩個字節(jié)組合為一個字temp=temp|a;if(temp=0x800)flag=1;temp=temp+1;f_temp=temp*0.0625; /溫度在寄存器中為12位,分辨率為0.0625temp=f_temp*10+0.5;/乘以10表示小數(shù)點后取一位,加0.5是四舍五入f_temp=f_temp+

25、0.05;return temp; /temp是整型 void dis_temp(int t) /顯示溫度數(shù)值函數(shù),t傳遞的是整型的溫度值uchar b,s,g;b=t/100; /除100得到商,為溫度的十位s=t%100/10; /100取余除以10,為溫度的各位g=t%100%10; /100取余再用10取余,為溫度的小數(shù)位if(flag=1) /溫度的正負號p2=0x01;p0=table20;delay(1);else if(flag=0)p2=0x01;p0=table21;delay(1);p2=0x02; /溫度顯示p0=tableb;delay(1);p2=0x04;p0=tables+10;delay(1);p2=0x08;p0=tableg;delay(1);void init(void) /i/o口初始化p0=0x00;p2=0x00;p1=0x00;void main()/主函數(shù)uchar

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論