




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、PAGE PAGE - 20 - 目錄(ml) TOC o 1-3 h z u HYPERLINK l _Toc360186114 1引言(ynyn) PAGEREF _Toc360186114 h 2 HYPERLINK l _Toc360186115 2 設計方案 PAGEREF _Toc360186115 h 3 HYPERLINK l _Toc360186116 2.1設計(shj)思路 PAGEREF _Toc360186116 h 3 HYPERLINK l _Toc360186117 2.2方案論證與選擇 PAGEREF _Toc360186117 h 3 HYPERLINK l
2、 _Toc360186118 3 設計實現 PAGEREF _Toc360186118 h 6 HYPERLINK l _Toc360186119 3.1系統硬件設計 PAGEREF _Toc360186119 h 6 HYPERLINK l _Toc360186120 3.2 系統軟件設計 PAGEREF _Toc360186120 h 7 HYPERLINK l _Toc360186121 3.2.1 主程序設計 PAGEREF _Toc360186121 h 7 HYPERLINK l _Toc360186122 3.2.2 溫度數據采集程序設計 PAGEREF _Toc36018612
3、2 h 9 HYPERLINK l _Toc360186123 3.2.3 LCD顯示子程序 PAGEREF _Toc360186123 h 11 HYPERLINK l _Toc360186124 3.2.4 溫度設置、聲光報警程序設計 PAGEREF _Toc360186124 h 11 HYPERLINK l _Toc360186125 4 總結 PAGEREF _Toc360186125 h 13 HYPERLINK l _Toc360186126 5 參考文獻 PAGEREF _Toc360186126 h 13 HYPERLINK l _Toc360186127 附錄1 PAGER
4、EF _Toc360186127 h 14 HYPERLINK l _Toc360186128 附錄2 PAGEREF _Toc360186128 h 15 HYPERLINK l _Toc360186129 附錄3 PAGEREF _Toc360186129 h 15 摘要(zhiyo):數字(shz)溫度計系統由溫度數據(shj)采集模塊、LCD顯示模塊以及聲光上限報警等模塊組成。它主要以單片機STC89C52為控制核心,利用溫度傳感器DS18B20采用單總線協議、直接將被測環境的溫度轉化成數字信號的特點,加之LCD12864液晶數據顯示與有源蜂鳴器和LED的聲光報警顯示,實現了環境溫度的
5、實時監測被測溫點溫度及聲光上限報警等功能。關鍵詞:STC89C52 DS18B20 LCD顯示 蜂鳴器 LED聲光報警1引言數字溫度計以單片機STC89C52為控制核心,利用溫度傳感器DS18B20采用單總線協議、直接將被測環境的溫度轉化成數字信號的特點,數據傳送給單片機處理,最終并用LCD12864顯示環境溫度數據。還可以通過鍵盤來改變設定的溫度上限值,如果溫度超過設置上限,則有源蜂鳴器和LED聲光顯示報警。根據題目,其基本要求有:(1)能夠實現現實環境溫度;(2)能夠保存使用時間內的溫度最大值最小值;(3)能實現設置溫度上下限以及聲光報警;對此題目分析我們采用的模塊為:(a)溫度采集模塊:
6、本系統使用DS18B20,其測量溫度范圍為-55+125,它可以實現基本要求第(1)項要求。(b)鍵盤模塊:通過功能上下鍵改變溫度的上下限值,可以設置溫度上下限報警即可實現基本要求的第(3)項。(c)溫度報警模塊:聲光報警器通過軟件的編程控制,可以實現基本要求的第(3)項。(d)顯示模塊:模塊使用LCD12864來顯示被測溫度點的溫度數據,再在軟件程序中加入時鐘模塊,可顯示此時的時間信息。(e)時鐘模塊:顯示當前時間,更好的顯示當前環境。2 設計(shj)方案(fng n)2.1設計(shj)思路溫度采集模塊DS18B20溫度處理模塊STC89C52顯示模塊12864溫度上下限設置模塊:獨立按
7、鍵聲光報警模塊:LED,蜂鳴器 圖1 系統設計框圖2.2方案論證與選擇1、溫度傳感器的選擇方案一:選擇熱電阻溫度傳感器熱電阻傳感器由熱電阻、連接導線及顯示儀表組成,熱電阻也可以與溫度變送器連接,將溫度轉換為標準電流信號輸出。它是利用導體或半導體的電阻值隨溫度變化而變化的原理進行測溫的一種傳感器溫度計。熱電阻廣泛應用于測量-200+850C范圍內的溫度,少數情況下,低溫可測至1K,高溫達1000C。但是它靈敏度比較低,容易受到環境的信號干擾,也容易受到前置放大器溫漂的影響,不適合測量微小的溫度變化。方案二:選擇熱電偶溫度傳感器它的原理是不同的并行金屬片根據溫度變化會產生一個微弱的感應電勢差,此電
8、勢差可依據相應關系轉化為溫度數值。一般熱電偶測溫范圍較寬,較適合于500C以上的測溫,可滿足-50+1600C 的溫度測量,有的可以達+2000C。其測量精度高,當其直接與被測對象接觸時,不受中間介質的影響。在使用時,它能將溫度信號轉換成熱電勢信號, 通過電氣測量儀表的配合, 就能測量出被測的溫度。在測量高溫方面比較適合,但是在常溫下精準度不夠,價錢也比較昂貴。方案(fng n)三:選擇數字化溫度傳感器DS18B20它采用獨特的單線接口方式,當其與微處理器連接(linji)時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊;在使用中不需要任何外圍元件;可用數據線供電,供電電壓范圍+3.
9、0V+5.5V;測溫范圍為-55+125,最高測溫分辨率為0.0625。當在-10+85范圍內,可確保(qubo)測量誤差不超過0.5;在-55+125范圍內,測量誤差也不超過2。用戶可自行設定非易失性的報警上下限值。DS18B20的轉換速率比較高,進行9位的溫度值轉換只需93.75ms;適配各種單片機或系統。通過以上方案的對比分析,根據題目需求的測溫范圍1065,誤差0.5,方案一中熱電阻溫度傳感器的測量精度不能滿足需求,方案二中的溫度傳感器測溫精度高,溫度范圍較廣,但是其需要用外圍A/D電路來處理測量到的模擬溫度信號,并且此傳感器的價格比較高,由此一來加大了系統的復雜性以及制作成本。方案三
10、中的DS18B20分辨力最高可達0.0625,在1065溫度范圍內誤差小于0.5,通過軟件可以進一步進行溫度補償,減小誤差,使其小于0.2,其轉換時間最大小于750ms。且DS18B20為數字型溫度傳感器,測量到的是數字信號,無需進行模數轉換,方案簡單易行,因此我們選擇用DS18B20作為系統的溫度測量傳感器。2、溫度數據顯示模塊方案一: 采用LED數碼管顯示LED數碼管顯示溫度數據相對來說簡單方便且應用廣泛,同時程序編程也相對較簡單,在光線較強的地方也能夠很好的顯示,受環境的影響較小。但是,數碼管占用的IO口較多,且顯示字符相對狹隘。方案二: 采用LCD1602液晶顯示LCD1602液晶模塊
11、內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼。這樣在顯示溫度數據的時候就比較的直觀,同時在一定程度上也增加了字符的豐富感。與數碼管相比該模塊(m kui)有如下優點:位數多,可顯示(xinsh)32位,32個數碼管體積相當龐大了;顯示內容豐富(fngf),可顯示所有數字和大、小寫字母;程序簡單。如果用數碼管動態顯示,會占用很多時間來刷新顯示,而1602自動完成此功能。方案三:采用LCD12864顯示LCD12864是一種內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示
12、模塊。其顯示分辨率為12864點;內置漢字字庫(可提供8192個1616點陣漢字、簡繁體可選)和128個168點陣字符; LCD12864采用4位/8位并行、2線或3線串行多種接口方式,其接口方式靈活,操作簡單、方便。該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。基于題目中的需求,考慮到溫度的顯示過程中還需要顯示其他的提示信息,比如英文單詞,漢字,以及數字時鐘的顯示。總的來說,需要顯示的信息量比較大,因此我們組用LCD12864顯示溫度及數字時鐘等信息。3、溫度上限聲光報警模塊方案一:有源蜂鳴器
13、有源蜂鳴器工作的理想信號是直流電,通常標示為VDC、VDD等。因為蜂鳴器內部有一簡單的振蕩電路,能將恒定的直流電轉化成一定頻率的脈沖信號,從而輸出磁場交變,帶動鉬片振動發音。因其內部帶有振蕩源,故有源蜂鳴器只需要通上其正常的工作直流電壓就可以有效的工作,并且其連接線路簡單,占用的程序儲存空間小。方案二:無源蜂鳴器無源蜂鳴器工作的理想信號是方波,無源蜂鳴器沒有內部驅動電路,即內部不帶振蕩源。如果給預直流信號,蜂鳴器是不響應的,因為磁路恒定,故鉬片不能振動發音,所以必須用2kHz5kHz的方波信號去控制驅動它,那樣它才能順利的工作。有源蜂鳴器和無源蜂鳴器的根本區別是產品對輸入信號的要求不一樣;有源
14、蜂鳴器直接接上額定電源(新的蜂鳴器在標簽上都有注明)就可連續發聲;而無源蜂鳴器則和電磁揚聲器一樣,需要接在音頻輸出電路中才能發聲。綜合以上的對比論證分析,聲音報警我們組選擇體積小、重量輕、結構牢靠、廣泛應用在各種需要發聲的電器設備、電子制作和單片機等電路中的有源蜂鳴器,即方案一。而光報警我們選擇體積小、亮度高的LED發光二極管。4、鍵盤模塊方案(fng n)一:矩陣鍵盤在單片機通信中,運用到較多的鍵盤(jinpn)就是矩陣鍵盤。矩陣鍵盤可以用較少的IO口就能得到較多的按鍵。這樣(zhyng),一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區
15、別越明顯。比如再多加一條線就可以構成20鍵的鍵盤,然而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數比較多時,采用矩陣法來做鍵盤是合理的。 方案二:獨立按鍵獨立按鍵只是一個按鍵,只能控制一條線路的通斷。當需要用到多個按鍵時,會占用大量的IO口。其編程比較簡單。本無線溫度遙測系統中,需要運用到鍵盤的地方并不多,只有在復位和設定溫度上下限時需要用到。因此可以選擇五個獨立按鍵來作為系統的控制。一個復位鍵,四個設定按鍵,分別是溫度上限上調鍵、下調鍵以及溫度下限上調鍵、下調鍵。3 設計實現3.1系統硬件設計溫度采集工作由DS18B20溫度傳感器來完成。 我們需要完成的是在DS18B20完成采
16、集溫度的工作后通過單片機進行存儲數值與實際溫度之間的轉換,將采集到的信息轉換成溫度數據。通過設置TH和TL的值可以設置溫度的上下限報警。設置時可以定義一個溫度數據,在軟件程序中實現通過按鍵可以改變它的值,然后放入TH和TL中,這樣就可以實現自由地設定溫度的上下限,從而實現報警。當DS18B20接收到溫度轉換命令后,開始啟動轉換。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1,2字節。單片機讀取溫度時,一次會讀兩字節共16位的數據,讀完后將低11位的二進制數轉換成十進制數后再乘以0.0625就是我們所需要的實際數值。前5個數字為符號位,這五位數字同時變化。當前五
17、位為1時,讀取的溫度為負值,需要將所測得的數值取反加1再乘以0.0625才是實際的溫度數據。當前五個數據為0時,直接將測得的數據乘以0.0625即可得到實際的溫度數據。這樣獲得的溫度數據誤差是在0.5范圍內,這是由于DS18B20測溫時的固有誤差所造成的。其典型性能曲線如下圖2所示:圖2 DS18B20測溫時性能(xngnng)曲線圖2中實際的溫度曲線偏離(pinl)了理論的溫度值,這樣的誤差是不可避免的。但是我們可以通過軟件方面上的程序來實現溫度補償,減小誤差。在溫度高的地方減去高出的溫度,在溫度低的地方加上低的溫度。3.2 系統軟件(x tn run jin)設計 3.2.1 主程序設計無
18、線溫度遙測系統的軟件設計主要由主程序、溫度數據采集與處理程序、溫度設置聲光報警程序及LED顯示子程序等組成。主程序進來之后首先對各個模塊初始化,經初始化后一個DS18B20開始采集溫度,然后用一個LCD1602顯示被測點所采集到的溫度,從而實現溫度測量的功能,最后通過溫度設定、聲光報警模塊來設定溫度的上下限,并實現聲光報警的功能。主程序的流程圖如下圖3所示:初始化DS18b20、LCD12864顯示模塊、時鐘模塊設置溫度上下限值DS18B20采集溫度數據開始單片機轉換并處理溫度數據,進行溫度補償等12864顯示溫度、時間、上下限值等溫度是否超過預置值聲光報警YN結束圖3 主程序流程圖3.2.2
19、 溫度數據采集(cij)程序設計開始對DS18B20初始化,接著利用寫函數(hnsh)命令將CCH寫入DS18B20命令跳過讀ROM指令,然后向DS18B20寫入44H命令,用來啟動DS18B20進行溫度轉換,并將轉換結果存入內部12字節的RAM中,最后通過一定的延時后向DS18B20寫入BE命令讀出內部RAM中的12字節的溫度數據(shj),讀出來的溫度用LCD1602顯示出來。其中在用LCD顯示采集溫度數據之前,為了減小測量誤差,本套系統用到了溫度補償功能。在軟件設計時利用If語句判斷測出溫度的大小,然后根據DS18B20數字溫度計讀數與恒溫源誤差特性曲線來放大、縮小要顯示的溫度,顯示時精
20、確到了0.01位。具體程序流程圖如下圖4、5 所示:圖4 DS18B20讀寫字節子程序流程圖開始DS18B20初始化向DS18B20寫入CCH、44H命令啟動進行溫度轉換向DS18B20寫入CCH、BE命令讀出RAM中的溫度數據讀出的溫度數據轉換成十進制的溫度Temp,并精確到0.01位NN65Temp850Temp15000045Temp65 YY YTemp=Temp-0.3Temp=Temp+0.1Temp=Temp-0.2LCD顯示Temp結束圖5 DS18B20溫度(wnd)處理與溫度補償流程圖3.2.3 LCD顯示(xinsh)子程序程序里用LCD12864來顯示溫度值與時間信息。
21、LCD12864用來顯示DS18B20發送的溫度數據、溫度上下限、以及日期(rq)和時間,其中的顯示可以利用主函數產生中斷,T0計時器來記時,從而實現時間的變化。主要的操作流程圖如下圖6開始 定義各引腳初始化LCD12864利用寫操作命令將數據指針定位利用寫操作命令將字符串寫入,并顯示出來結束圖6 LCD顯示(xinsh)子程序3.2.4 溫度設置、聲光報警程序設計通過接受,進入LCD顯示模塊界面后,按鍵輸入,按加減鍵分別上調和下調設定報警溫度值,當實時溫度值超過或低于溫度設定值時會驅動蜂鳴器發聲,并點亮發光二極管,實現聲光報警。溫度設置、聲光報警程序設計圖如下圖7所示:入口功能鍵按下? N
22、N Y下調設定值 確認按下?延時消抖減鍵按下?加鍵按下?確認按下?上調設定值延時消抖顯示設定溫度值確認按下? N Y N YN N Y N YN N Y Y判斷退出界面?取消報警溫度超出設定值?聲光報警Y NY N Y返回圖7 溫度(wnd)設定、聲光報警子程序4、心得(xnd)通過為期兩周的單片機的實訓,我們對單片機有了比較系統的了解。對于老師給我們的課程設計題目,拿到題目后,我們組趙鵬飛、劉良虎、朱奎三個人聚在了一起對每個題進行了認真分析。我們通過了討論,研究,最終決定選擇了數字(shz)溫度計這個題目。之所以選擇這道題是因為我們三個對這道題都必要感興趣,覺得這個系統很有意思,而且對我們電
23、子專業的學生來說做這道題比較合適。確定了題目后,我們一組三人便開始圍繞題目要求,在網上搜索資料,在圖書館查閱相關書籍。經過一定的了解之后,我們又開始對每個模塊選擇方案,按照題目的各項要求,逐一排查,選擇出最佳的方案。方案決定之后,便對每個模塊進行軟硬件設計,對于這塊內容主要參考網上的知識。經過幾天的努力,終于把這個關于數字溫度計做出來。方案有許多不足之處,希望老師能夠給予指正。5、參考文獻1 郭天祥 51單片機C語言教程北京:電子工業出版社,2010年10月2 譚浩強 C程序設計.北京:清華大學出版社,1991年3 張崇,于曉琳,劉建平 無線收發一體芯片NRF2401及其應用. 2004年4
24、單片無線收發集成電路原理與應用、黃智偉編著.北京:人民郵電出版社,2005年9月5 黃智偉 無線數據通信IC原理與應用北京:北京航空航天大學出版社,2004年附錄(fl)1數字溫度(wnd)儀系統電路(dinl)原理圖 附錄(fl)2部分(b fen)程序及注釋主函數(hnsh)#include /包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義#include#include 12864.h#include delay.h#include keyscan.h#include ds1302.h#include 18b20.h#define uchar unsigned char#
25、define uint unsigned intuchar code dis1=Temp: ; uchar code dis2=TempL: ;uchar code dis3=TempH: ;uchar code dis5=星期;void main (void) int temp;float temperature;char displaytemp16;/定義顯示區域臨時存儲數組Delay(100);Init_12864();WriteString(2,1,dis1); /顯示現實溫度WriteString(3,1,dis2); /顯示上限WriteString(4,1,dis3); /顯示下
26、限 WriteString(1,6,dis5); /顯示下限 /set_rtc();while(1) temp=ReadTemperature(); temperature=(float)temp*0.0625; if(5temperature15) temperature=temperature+0.1; /溫度(wnd)補償功能 if(45temperature65) temperature=temperature-0.2; /溫度補償(bchng)功能 if(65temperature0;i-) DQ = 0; / 給脈沖(michng)信號 dat=1; DQ = 1; / 給脈沖(m
27、ichng)信號 if(DQ) dat|=0 x80; DelayUs2x(25); return(dat);/* 寫入一個字節*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0 x01; DelayUs2x(25); DQ = 1; dat=1; DelayUs2x(25);/* 讀取溫度*/unsigned int ReadTemperature(void)unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0 xCC); / 跳過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園消防安全教育及器材培訓
- 探索游戲化教學在藝術教育中的應用
- 提升協作效率的團隊管理技巧
- 教育培訓產業的區域發展與特色定位
- 教育心理學的未來發展與創新方向
- 主要安全加工管理制度
- 企業勞務員工管理制度
- 交通養護安全管理制度
- 中學后勤薪酬管理制度
- 下水管網安全管理制度
- 廣東省深圳市普通高中2022-2023學年高一下學期期末數學試題
- 腫瘤防治科普叢書:胃腸腫瘤
- 提高門診一醫一患執行率
- 相機租賃合同書
- 重癥患者用藥安全課件
- 培訓MSDS專業知識課件
- 風電場齒輪箱潤滑油使用規定(2023年727修訂)
- 心肺復蘇課件
- 2022年福建省中考地理試卷及答案
- 期權基礎知識介紹課件
- GB/T 5288-2007龍門導軌磨床精度檢驗
評論
0/150
提交評論