基于51單片機(jī)水溫檢測控制系統(tǒng)說明書_第1頁
基于51單片機(jī)水溫檢測控制系統(tǒng)說明書_第2頁
基于51單片機(jī)水溫檢測控制系統(tǒng)說明書_第3頁
基于51單片機(jī)水溫檢測控制系統(tǒng)說明書_第4頁
基于51單片機(jī)水溫檢測控制系統(tǒng)說明書_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機(jī)的水溫檢測控制系統(tǒng)設(shè)計學(xué)生姓名王培同院系名稱機(jī)電學(xué)院專業(yè)名稱機(jī)械電子工程班 級機(jī)電132學(xué) 號201300384228指導(dǎo)教師完成時間目 錄1 引言42 設(shè)計要求42.1 基本要求42.2 擴(kuò)展功能43 總體方案設(shè)計43.1 方案論證43.1.1 方案一43.1.2 方案二54 硬件設(shè)計54.1 單片機(jī)系統(tǒng)54.2 數(shù)字溫度傳感器模塊64.2.1 DS18B20性能64.2.2 DS18B20外形及引腳說明74.2.3 DS18B20接線原理圖74.2.4 DS18B20時序圖74.2.5 數(shù)據(jù)處理94.3 顯示電路104.4 聲光報警電路104.5 鍵盤輸入電路115 軟件設(shè)計11

2、5.1 主程序模塊115.2 讀溫度值模塊125.3 中斷模塊145.4 溫度設(shè)定、報警模塊166 源程序197 總結(jié)26參考文獻(xiàn):281 引言隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便是不可否定的,各種數(shù)字系統(tǒng)的應(yīng)用也使人們的生活更加舒適。數(shù)字化控制、智能控制為現(xiàn)代人的工作、生活、科研等方面帶來方便。其中數(shù)字溫度計就是一個典型的例子。數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便、測溫范圍廣、測溫精確、功能多樣話等優(yōu)點。其主要用于對測溫要求準(zhǔn)確度比較高的場所,或科研實驗室使用,該設(shè)計使用STC89C52RC單片機(jī)作控制器,數(shù)字溫度傳感器DS18B20測量溫

3、度,單片機(jī)接受傳感器輸出,經(jīng)處理用LCD實現(xiàn)溫度值顯示。2 設(shè)計要求2.1 基本要求實現(xiàn)實時溫度顯示,測溫范圍01200C,誤差50C以內(nèi)。2.2 擴(kuò)展功能溫度報警,能任意設(shè)定溫度范圍實現(xiàn)溫度的報警。溫度控制,利用繼電器控制熱得快,當(dāng)設(shè)置好溫度上下限后,當(dāng)沒有超過溫度上限時,繼電器吸合,熱得快通電,加熱水溫。當(dāng)超過設(shè)置的溫度上限時,繼電器斷開,熱得快斷開。3 總體方案設(shè)計3.1 方案論證3.1.1 方案一由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件,將隨被測溫度變化的電壓或電流采樣,進(jìn)行A/D轉(zhuǎn)換后就可以用單片機(jī)進(jìn)行數(shù)據(jù)處理,實現(xiàn)溫度顯示。這種設(shè)計需要用到A/D轉(zhuǎn)換電路,增大了電路的復(fù)雜性

4、,而且要做到高精度也比較困難。3.1.2 方案二考慮到在單片機(jī)屬于數(shù)字系統(tǒng),容易想到數(shù)字溫度傳感器,可選用DS18B20數(shù)字溫度傳感器,此傳感器為單總線數(shù)字溫度傳感器,起體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡單,它可直接將溫度轉(zhuǎn)化成串行數(shù)字信號給單片機(jī)處理,即可實現(xiàn)溫度顯示。另外DS18B20具有3引腳的小體積封裝,測溫范圍為-55+125攝氏度,測溫分辨率可達(dá)0.0625攝氏度,其測量范圍與精度都能符合設(shè)計要求。以上兩種方案相比較,第二種方案的電路、軟件設(shè)計更簡單,此方案設(shè)計的系統(tǒng)在功耗、測量精度、范圍等方面都能很好地達(dá)到要求,故本設(shè)計采用方案二。4 硬件設(shè)計4.1 單片機(jī)系統(tǒng)1. 本設(shè)計采用STC89C

5、52RC單片機(jī)作為控制器,完成所有功能的控制,包括:l DS18B20數(shù)字溫度傳感器的初始化和讀取溫度值l LED數(shù)碼管顯示驅(qū)動與控制l 按鍵識別和響應(yīng)控制l 溫度設(shè)置和報警l 溫度值的存儲和讀取2. 單片機(jī)系統(tǒng)電路原理圖:圖2 單片機(jī)系統(tǒng)原理圖4.2 數(shù)字溫度傳感器模塊4.2.1 DS18B20性能l 獨特的單線接口僅需一個端口引腳進(jìn)行通信l 簡單的多點分布應(yīng)用l 無需外部器件l 可通過數(shù)據(jù)線供電l 零待機(jī)功耗l 測溫范圍-55+125,以0.5遞增l 可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625l 溫度數(shù)字量轉(zhuǎn)換時間200ms,12位分辨率時最

6、多在750ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字l 應(yīng)用包括溫度控制、工業(yè)系統(tǒng)、消費品、溫度計和任何熱感測系統(tǒng)l 負(fù)壓特性:電源極性接反時,傳感器不會因發(fā)熱而燒毀,但不能正常工作4.2.2 DS18B20外形及引腳說明圖3 DS18B20外形及引腳l GND:地l DQ:單線運用的數(shù)據(jù)輸入/輸出引腳l VD:可選的電源引腳4.2.3 DS18B20接線原理圖單總線通常要求接一個約4.7K左右的上拉電阻,這樣,當(dāng)總線空閑時,其狀態(tài)為高電平。圖4 DS18B20接線原理圖4.2.4 DS18B20時序圖主機(jī)使用時間隙來讀寫DS18B20的數(shù)據(jù)位和寫命令字的位。1. 初始化時序如下圖:圖5 DS18B20初始化時序

7、2. DS18B20讀寫時序:圖6 DS18B20讀寫時序4.2.5 數(shù)據(jù)處理高速暫存存儲器由9個字節(jié)組成,其分配如表5所示。當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在 高速暫存存儲器的第0和第1個字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后。圖7 字節(jié)分配下表為12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0, 這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實際 溫度。 例如+125的數(shù)字輸出為

8、07D0H,實際溫度=07D0H*0.0625=2000*0.0625=125。例如-55的數(shù)字輸出為FC90H,則應(yīng)先將11位數(shù)據(jù)位取反加1得370H(符號位不變,也不作運算),實際溫度=370H*0.0625=880*0.0625=55??梢娖渲械退奈粸樾?shù)位。圖8 DS18B20溫度數(shù)據(jù)表4.3 顯示電路LED數(shù)碼管顯示采用動態(tài)掃描方式,能簡化電路布線,節(jié)約單片機(jī)I/O端口。段碼和位碼由單片機(jī)P0送出,分別用74HC673N鎖存。圖9 LCD1602顯示電路4.4 報警電路當(dāng)溫度超過設(shè)定溫度值時,實現(xiàn)聲光報警,蜂鳴器鳴叫。蜂鳴器由單片機(jī)P17口控制,用三極管驅(qū)動。圖10 報警電路4.5

9、鍵盤輸入電路四個鍵分別連接單片機(jī)P32、P33、P34、P35構(gòu)成獨立式鍵盤,分別實現(xiàn)加、減、報警溫度設(shè)定功能鍵。圖11 鍵盤輸入電路5 軟件設(shè)計5.1 主程序模塊主程序需要調(diào)用3個子程序,分別為:實時溫度顯示子程序溫度設(shè)定、報警子程序LCD顯示子程序5.2 讀溫度值模塊讀溫度值模塊需要調(diào)用4個子程序,分別為:l DS18B20初始化子程序:讓單片機(jī)知道DS18B20在總線上且已準(zhǔn)備好操作l DS18B20寫字節(jié)子程序:對DS18B20發(fā)出命令l DS18B20讀字節(jié)子程序:讀取DS18B20存儲器的數(shù)據(jù)l 延時子程序:對DS18B20操作時的時序控制5.3 中斷模塊中斷采用T0方式1,初始值

10、定時為50ms。中斷模塊需調(diào)用兩個子程序:l 讀溫度值子程序:定時讀取溫度值,實時更新溫度值l 記錄溫度值子程序:定時記錄溫度值,供查詢使用把這兩個子程序放在中斷的原因是,不會因為調(diào)整報警溫度或查詢歷史溫度值而停止更新溫度值和記錄溫度值。中斷模塊流程圖:5.4 溫度設(shè)定、報警模塊此模塊跟溫度查詢模塊類似,需要接受按鍵輸入,進(jìn)入模塊界面后,按加減鍵分別上調(diào)和下調(diào)設(shè)定報警溫度值,當(dāng)實時溫度值超過設(shè)定值時驅(qū)動蜂鳴器發(fā)聲,報警。6 源程序7 總結(jié)此次課程設(shè)計中,難點在于DS18B20的使用,即對它的時序控制、初始化以及字節(jié)讀寫方法,任何一個環(huán)節(jié)出錯或是時序控制不到位的話就不能得到正確的數(shù)據(jù)。一旦學(xué)會了

11、正確的使用方法,就能感覺到它帶來的便利是熱電偶不能比擬的,以后再次使用的話就能很快上手了。軟件設(shè)計中,把程序按功能分模塊的話能提高編程效率,把問題一一解決,同時畫流程圖能幫助理清思路,使問題簡單化。定義變量時,盡量定義局部變量,在字符型變量能達(dá)到要求的情況下就不用定義成整形變量了,以節(jié)省內(nèi)存空間。同時局部變量應(yīng)避免與全局變量取同名,否則全局變量將被屏蔽或與局部變量相沖突而達(dá)不到設(shè)計的效果。另一方面,取變量名時也要講究技巧,應(yīng)盡量使其見名知意,同樣地,寫程序時加注釋確是非常必要的,否則隔一段時間后,想再改進(jìn)或做擴(kuò)展的話就比較困難了,因為即使是自己寫的程序也變得難讀難懂了。在做鍵盤消抖時,延時的時

12、間比較重要,一般為10ms左右,延時太短就會使按鍵太過靈敏,按一下就使數(shù)字跳變幾次;而延時過長則可能使按鍵按下了卻無響應(yīng),在外部定義初始化一個延時函數(shù)的入口參量則能很方便地調(diào)整延時時間,以達(dá)到比較好的效果。另外,如果對按鍵進(jìn)行釋放判斷的話就能解決長時間按鍵導(dǎo)致按鍵重復(fù)響應(yīng)的問題。此設(shè)計中沒有為溫度的單位(攝氏度)準(zhǔn)備專用的數(shù)碼管來顯示,若單獨用一個數(shù)碼管顯示“C”來代替“”的話,看起來感覺很別扭。偶然想起如若用一個數(shù)碼管的上半部顯“0”,即a、b、f、g段點亮,來代替“”左上角的“度”的話,效果應(yīng)該不錯,便作了一試,發(fā)現(xiàn)這是確是一個很好的主意,便在此次設(shè)計中采用了這個辦法來顯示溫度單位。另外此次設(shè)計也考慮了實時溫度顯示界面與報警溫度設(shè)置界面的區(qū)別,即在進(jìn)入報警溫度設(shè)置界面時,讓其余的數(shù)碼管都顯示出一橫杠,即g段點亮,這樣則不會讓兩個界面相互混淆。總的來說,自己

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論