基于單片機的數(shù)字溫度計設計_第1頁
基于單片機的數(shù)字溫度計設計_第2頁
基于單片機的數(shù)字溫度計設計_第3頁
基于單片機的數(shù)字溫度計設計_第4頁
基于單片機的數(shù)字溫度計設計_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、沈陽航空航天大學課程設計論文 基于單片機的數(shù)字溫度計設計基于單片機的數(shù)字溫度計設計摘要:本文設計了一種基于單片機控制的數(shù)字溫本設計度計,本設計所介紹的數(shù)字溫度計與傳統(tǒng)溫度計相比,具有讀數(shù)方便,測溫范圍廣,輸出溫度采用數(shù)字顯示。該設計控制器使用單片機AT89S51,測溫傳感器使用DS18B20,用共陽極LED數(shù)碼管顯示,能夠準確達到要求。 溫度計電路設計控制器采用單片機AT89S51,具有低電壓供電和體積小等特點,溫度傳感器采用DS18B20,DS18B20溫度傳感器是美國最新推出的一種溫度傳感器,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)讀數(shù)方式,僅需要一個端口引腳進行通信,內(nèi)

2、部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM.顯示電路采用LED動態(tài)顯示方式。 關鍵詞:單片機 ;DS18B20 ;超限報警;LED顯示; 前言隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設施就需要從數(shù)單片機技術入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。溫度是日常生活、工業(yè)、醫(yī)學、環(huán)境保護、化工、石油等領域最常用到的一個物理量。測量溫度的基本方法是使用溫度計直接讀取溫度。最常見到得測量溫度的工具是各種各樣的溫

3、度計,例如:水銀玻璃溫度計,酒精溫度計,熱電偶或熱電阻溫度計等。它們常常以刻度的形式表示溫度的高低,人們必須通過讀取刻度值的多少來測量溫度。利用單片機和溫度傳感器構成的電子式智能溫度計就可以直接測量溫度,得到溫度的數(shù)字值,既簡單方便,有直觀準確。1 總體方案設計1.1設計方案論證針對本課題的設計任務,進行分析得到:本次設計用溫度傳感器進行溫度的測量,轉化了的溫度信號由傳感器直接得到了數(shù)字信號。該數(shù)字溫度計的設計,在總體上大致可分為以下幾個部分組成:1.單片機控制電路;2.溫度傳感器;3.開關控制電路;4.LED顯示電路。方案一由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,在將

4、隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩。 方案二 進而考慮到用溫度傳感器,在單片機電路設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉換,就可以滿足設計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設計也比較簡單,故采用了方案二。系統(tǒng)原理框圖如圖1所示。主 控 制 器LED顯 示溫 度 傳 感 器單片機復位時鐘振蕩報警點按鍵調(diào)整圖1 系統(tǒng)原理框圖1.2

5、硬件構成1.21 主控制器AT89C51具有以下標準功能:8K字節(jié)FLASH,256字節(jié)RAM,32位I/O總線,看門狗定時器2個數(shù)據(jù)指針,3個16位定時器、計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內(nèi)晶振及時鐘電路。P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0也被作為低8位地址/數(shù)據(jù)使用。在這種模式下,P0具有內(nèi)部上拉電阻。在FLASH編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內(nèi)部上拉電阻的8位

6、雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入口使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2口輸出緩沖器驅(qū)動4個TTL邏輯電平。對P2端口寫1時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入口使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。1.22 數(shù)碼管顯示顯示電路采用共陽LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。1.23 溫度傳感器DS18B20溫度傳感器是美國DALLAS半導體公司最新推出的一種改進型智能

7、溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:a獨特的單線接口僅需要一個端口引腳進行通信;b多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;c無須外部器件;d可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;e零待機功耗;f溫度以或位數(shù)字;g用戶可定義報警設置;h報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;i負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存和一個非易失性的可電擦除的EERAM。

8、高速暫存RAM的結構為字節(jié)的存儲器,結構如圖3所示。頭個字節(jié)包含測得的溫度信息,第和第字節(jié)和的拷貝,是易失的,每次上電復位時被刷新。第個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉換分辨率。DS18B20工作時寄存器中的分辨率轉換為相應精度的溫度數(shù)值。該字節(jié)各位的定義如圖3所示。低位一直為,是工作模式位,用于設置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設置為,用戶要去改動,R1和0決定溫度轉換的精度位數(shù),來設置分辨率。溫度 LSB溫度 MSBTH用戶字節(jié)1TL用戶字節(jié)2配置寄存器保留保留保留CRC圖2 DS18B20字節(jié)定義DS18B20溫度轉換的時間比較長,而

9、且分辨率越高,所需要的溫度數(shù)據(jù)轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。高速暫存的第、字節(jié)保留未用,表現(xiàn)為全邏輯。第字節(jié)讀出前面所有字節(jié)的CRC碼,可用來檢驗數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第、字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625LSB形式表示。當符號位時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位時,表示測得的溫度值為負值,要先將補碼變成原碼,再計算十進制數(shù)值。表2是一部

10、分溫度值對應的二進制溫度數(shù)據(jù)。DS18B20完成溫度轉換后,就把測得的溫度值與RAM中的TH、T字節(jié)內(nèi)容作比較。若TH或TTL,則將該器件內(nèi)的報警標志位置位,并對主機發(fā)出的報警搜索命令作出響應。因此,可用多只DS18B20同時測量溫度并進行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗碼(CRC)。主機ROM的前56位來計算CRC值,并和存入DS18B20的CRC值作比較,以判斷主機收到的ROM數(shù)據(jù)是否正確。DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生

11、的信號作為減法計數(shù)器的脈沖輸入。器件中還有一個計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進行計數(shù)進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應的一個基數(shù)分別置入減法計數(shù)器、溫度寄存器中,計數(shù)器和溫度寄存器被預置在55所對應的一個基數(shù)值。減法計數(shù)器對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器的預置值減到時,溫度寄存器的值將加,減法計數(shù)器的預置將重新被裝入,減法計數(shù)器重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器計數(shù)到時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于

12、修正減法計數(shù)器的預置值,只要計數(shù)器門仍未關閉就重復上述過程,直到溫度寄存器值大致被測溫度值。2 硬件電路設計2.1 主控制器 單片機AT89S51具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產(chǎn)品的設計使用系統(tǒng)可用二節(jié)電池供電。AT89C51是一種低功耗,高性能的8位微控制器,具有8K在系統(tǒng)可編程FLASH存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上FLASH允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程FLASH,使得AT89S52為眾多嵌入式

13、控制應用系統(tǒng)提供高靈活,超有效的解決方案。圖3 主控制器電路2.2 顯示電路 顯示電路采用集成的數(shù)碼管,為共陽極結構,采用動態(tài)顯示,P1口作為輸出編碼端,P2.0到P2.7作為位選控制端,其中P1做輸出端口需要上拉電阻,通過設置不同的段碼可以顯示溫度,可以對溫度進行實時檢測。 圖4 顯示電路2.3 數(shù)據(jù)采集電路DS18B20的內(nèi)部結構主要包括:寄生電源,溫度傳感器,64位激光ROM和單總線接口,存放中間數(shù)據(jù)的高速暫存器RAM,用于存儲用戶設定溫度上下限值得TH和TL觸發(fā)器,存儲和邏輯控制,8位循環(huán)冗余碼發(fā)生器等七部分。DS18B20測量溫度時使用特有的溫度測量技術,將被測溫度轉換成數(shù)值信號,測

14、量結果將存入溫度寄存器中。圖5 數(shù)據(jù)采集電路2.4 報警電路 當溫度超過設定的上下限溫度時,蜂鳴器會發(fā)出聲響,下圖為報警電路。圖6 報警電路 3 軟件設計3.1 主程序設計系統(tǒng)的主程序主要用來初始化一些參數(shù),對DS18B20的配置數(shù)據(jù)進行一系列的設定。另外對DS18B20的狀態(tài)不斷的查詢,以讀取當前的溫度值,并對溫度進行處理,溫度值的BCD碼處理后,將其段碼送顯示緩沖區(qū),以備定時掃描服務程序處理。調(diào)用顯示子程序讀取溫度 轉換溫度初始化 溫度顯示 溫度比較 檢測返回圖7 主程序流程圖3.2 溫度轉換程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度

15、數(shù)據(jù)的改寫。其程序流程圖如下所示。發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)溫度轉換開始命令 結束 圖8 溫度轉換流程圖3.3 溫度顯示程序和報警電路程序 此程序是將采集到得數(shù)據(jù)用LED數(shù)碼管顯示,然后將實際溫度與設置的報警上下限進行比較,決定是否發(fā)出報警信號。由于T為實際溫度的絕對值,TH,TL也是溫度的絕對值,因此判斷大小關系時,要通過正負號來確定。開始 數(shù)據(jù)采集接收數(shù)據(jù) 溫度轉換LED顯示圖9溫度顯示流程圖 開始T>=0TH>=0T<=THTL>=0報警 報警 結束T>=TL結束T>=TLTL>=0T>=THTH>=0NNNYYYYN

16、NYNYNYNYYYN圖10報警程序流程圖4 調(diào)試分析4.1 軟件調(diào)試本次設計采用的是keil仿真器進行軟件調(diào)試,此系統(tǒng)可以開發(fā)應用軟件,以及對硬件電路進行診斷、調(diào)試等。它的具體功能是可以進行CPU仿真,可以單步、跟蹤、斷點和全速運行,而且,程序的編譯過程中,可以對設計軟件進行自診斷,并自動給出故障原因。同時用戶調(diào)試程序時,可以通過窗口觀察寄存器的工作狀況,以便及時發(fā)現(xiàn)和排除編程中可能出現(xiàn)的錯誤。軟件的調(diào)試是利用keil軟件,模塊化調(diào)試,通過觀察存儲單元數(shù)據(jù)的變化,查找并解決程序的語法和邏輯錯誤,具體的調(diào)試步驟如下:1. 把系統(tǒng)的各個模塊在仿真軟件中逐個調(diào)試,如數(shù)據(jù)采集模塊、顯示模塊等。2.

17、對各個需要賦值模塊調(diào)試時,賦入初值,單步調(diào)試,觀察數(shù)據(jù)窗口,看輸出結果是否為設計時想要的結果。3. 把各個模塊組合起來,全速運行,看程序是否能流暢的,是否能實現(xiàn)設計的系統(tǒng)的所有功能。4.1 軟硬聯(lián)調(diào)本設計是采用Proteus軟件實現(xiàn)電路圖設計和仿真的,Proteus軟件與Keil軟件聯(lián)合使用,實現(xiàn)設計要求。在Keil軟件中創(chuàng)建新文件,輸入所編寫的c語言程序并保存,在編譯源程序無誤后,會產(chǎn)出相應的”.HEX”文件;將所生成的”.HEX”文件加載到已繪制好的Proteus原理圖中,使Proteus與Keil真正連接起來,實現(xiàn)聯(lián)合調(diào)試。調(diào)試結果下15所示。、圖11仿真測試圖 5 結論及進一步設想根據(jù)

18、實驗結果,本設計基本完成了設計要求,但上下限閾值的設置過于繁瑣,在原有結構的基礎上,可以更簡化。本課程設計的主要任務是設計一個89C51單片機為核心的數(shù)字溫度計。從確定課設題目,到查閱質(zhì)料確定總體方案設計,硬件電路仿真的設計,硬件電路的優(yōu)化,軟件的設計,軟件的優(yōu)化,檢驗仿真電路,調(diào)試軟件程序,到最后的軟硬件聯(lián)調(diào),都是我努力去完成的。在最后的仿真電路圖中達到了我想要的結果,并且對串口通訊有了更一步的認識。對單片機也有了更加深刻的了解。對以后很好的應用單片機打下了深刻的基礎。參考文獻1 劉復華.單片機及其應用系統(tǒng).北京:清華大學出版社,19922 韓志軍.單片機系統(tǒng)設計與應用實例.北京:機械工業(yè)出

19、版社,20103 余永全.ATMEL89系列單片機應用技術.北京:北京航空航天大學出版社,20024 馬中梅.單片機的C語言程序設計.北京:北京航空航天大學出版社,19995 胡汗才.單片機原理及系統(tǒng)設計.北京:清華大學出版社,20026 李華.MCS-51單片機實用接口技術.北京:北京航空航天出版社大學,19997 方彥軍,孫建.智能儀器技術及其應用.北京:化學工業(yè)出版社,20038 孫傳友.測控系統(tǒng)原理與設計.北京:北京航空航天大學出版社,20029 劉守義等.單片機應用技術.西安:西安電子科技大學出版社,200210 何立民.單片機高級教程.北京:北京航空航天大學出版社,2000課設體會

20、經(jīng)過了兩個星期的課設,讓我對以前學的理論知識有了較深的體會,要用理論指導實踐,在實踐中發(fā)現(xiàn)自己的不足之處,不斷完善自己。這一周的課程設計讓我體會到很多東西,不僅僅是知識本身的,更多的是自己動手能力和邏輯思維能力的鍛煉,同時,也知道自己還有許多要學的東西。在社會實踐中,單片機是一個熱門的話題,所以我要認真學習單片機的知識,這對我們找工作是很有幫組的,遇到問題并不可怕關鍵是我們要找到方法去解決問題,一定要勤于動手,這樣自己才會有提高。當然在這次寶貴的課程設計活動中,經(jīng)驗才是對于我們最大的收獲,而且還增強了自身對未知問題以及對知識的深化認識的能力,用受益匪淺這個詞語來概括這次難忘的活動我覺得再合適不

21、過了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方便地被應用領域這個最終目的下,隨著對單片機這門學科的認識加深,到達了拓展的程度,我想這個目的將在不遠的時期內(nèi)被實現(xiàn)。最后感謝老師及同學在這兩個星期對我的幫助。、附錄1 電路原理圖附錄2 元件清單元件名稱型號數(shù)量單片機AT89C511溫度傳感器DS18B20數(shù)碼管7SEG-MPX8-CA1按鍵BUTTON16電阻RES10三極管2N29261蜂鳴器SOUNDER1附錄3 程序源#include<reg51.h>#define uchar unsigned c

22、har#define uint unsigned intuchar code table=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e;uchar code address=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;sbit DQ=P30; sbit dot=P10;sbit fm=P35;uchar a,i,temp1,temp2,c,t1,t2,yz1,yz2;bit flag,flag1;uint temp;void delay(uint

23、 m) while(m-);void Init() uchar i=0; DQ=1; delay(8); DQ=0; delay(80); DQ=1; delay(14); i=DQ; delay(20); uchar read_byte() uchar byte=0; for (i=0;i<8;i+) /先傳低位 DQ=0; byte>>=1; DQ=1; if(DQ) byte|=0x80; delay(4); return(byte);void write_byte(uchar byte) for (i=0;i<8;i+) /先傳低位 DQ=0; byte>

24、>=1; DQ=CY; delay(5); DQ=1; void read_temp()Init();write_byte(0xcc); / Skip ROMwrite_byte(0x44); / 啟動溫度轉換delay(10);Init();write_byte(0xcc); /Skip ROMwrite_byte(0xbe); /讀取溫度寄存器temp1=read_byte(); /低位temp2=read_byte(); /高位void ds() read_temp(); temp=temp1&0x0f; if(temp2>127) flag=1; temp1=tem

25、p1; temp2=temp2; temp=temp1&0x0f; temp+=0x01; temp=temp*625; temp1=temp1&0xf0; /取整數(shù)部分 temp1=temp1/16; temp2=temp2*16; temp1+=temp2; if(flag) temp1+=0x01;void xs() for(i=0;i<4;i+) /顯示小數(shù)部分 P2=addressi; P1=tabletemp%10; delay(750); temp/=10; P2=0xef; /顯示整數(shù)部分 P1=tabletemp1%10; dot=1; delay(75

26、0); if(temp1/100|temp1/10) /高位去0 P2=0xdf; P1=tabletemp1/10%10; delay(750); if(temp1/100) /高位去0 P2=0xbf; P1=tabletemp1/100%10; delay(800); if(flag) /加負號 P2=0x7f; P1=0x02; delay(750); flag=0; void bj() fm=1; delay(100); fm=0; delay(100); void jp() uchar t,tempt,p; P0=0xfe; tempt=P0; tempt=tempt&0x

27、f0; if(tempt!=0xf0) switch(tempt) case(0xe0):flag1=0;flag=0;p=1;break; /shangxian case(0xd0):flag1=0;flag=1;p=2;break; /xiaxian case(0xb0):flag1=0;a+;t=1;break; case(0x70):flag1=0;a+;t=2;break; while(temp!=0xf0) tempt=P0; tempt=tempt&0xf0; P0=0xfd; tempt=P0; tempt=tempt&0xf0; if(tempt!=0xf0) switch(tempt) case(0xe0):flag1=0;a+;t=3;break; case(0xd0):flag1=0;a+;t=4;break; case(0xb0):flag1=0;a+;t=5;break; case(0x70):flag1=0;a+;t=6;break; while(tempt!=0xf0) tempt=P0; tempt=tempt

溫馨提示

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

評論

0/150

提交評論