版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 單片機(jī)原理與接口技術(shù)</p><p><b> 課程設(shè)計</b></p><p> 題 目 DS18B20數(shù)字溫度計 </p><p> 班 級 </p><p> 同 組 人
2、 學(xué) 號 </p><p> 同 組 人 學(xué) 號 </p><p> 同 組 人 學(xué) 號 </p><p> 同 組 人 學(xué) 號 </p><p> 20
3、11 年6 月26 日</p><p><b> 目錄</b></p><p><b> 必選題目:</b></p><p><b> 一 緒論</b></p><p><b> 二 硬件電路設(shè)計</b></p><p&
4、gt;<b> 三 軟件系統(tǒng)設(shè)計</b></p><p> 四 實驗結(jié)果分析與總結(jié)</p><p><b> 五 參考文獻(xiàn)</b></p><p> 必選題目:DS18B20</p><p><b> 一 緒論</b></p><p> 隨著
5、人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便也是不可否定的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人工作、科研、生活提供更好的更方便的設(shè)施就需要從單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。溫度測量在物理實驗、醫(yī)療衛(wèi)生、食品生產(chǎn)等領(lǐng)域,尤其在熱學(xué)試驗(如:物體的比熱容、汽化熱、熱功當(dāng)量、壓強(qiáng)溫度系數(shù)等教學(xué)實驗)中,有特別重要的意義?,F(xiàn)在所使用的溫度計通常都是精度
6、為1℃和0.1℃的水銀、煤油或酒精溫度計。這些溫度計的刻度間隔通常都很密,不容易準(zhǔn)確分辨,讀數(shù)困難,而且他們的熱容量還比較大,達(dá)到熱平衡所需的時間較長,因此很難讀準(zhǔn),并且使用非常不方便。本設(shè)計所介紹的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確等優(yōu)點(diǎn),其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實驗室使用。因此本課題就嘗試通過編程與芯片的結(jié)合來解決傳統(tǒng)數(shù)字溫度計的弊端,設(shè)計出新型數(shù)字溫度計。</
7、p><p> 溫度傳感器的發(fā)展現(xiàn)狀:溫度傳感器使用范圍廣,數(shù)量多,居各種傳感器之首,其發(fā)展大致經(jīng)歷了以下3個階段: </p><p> ?、?傳統(tǒng)的分立式溫度傳感器(含敏感元件)——熱電偶傳感器,主要是能夠進(jìn)行非電量和電量之間轉(zhuǎn)換。 </p><p> ?、?模擬集成溫度傳感器/控制器。集成傳感器是采用硅半導(dǎo)體集成工藝制成的,因此亦稱硅傳感器或單片集成溫度傳感器。 &
8、lt;/p><p> ?、?智能溫度傳感器。它是微電子技術(shù)、計算機(jī)技術(shù)和自動測試技術(shù)(ATE_)的結(jié)晶。智能溫度傳感器內(nèi)部包含溫度傳感器、A/D傳感器、信號處理器、存儲器(或寄存器)和接口電路。</p><p> 本課題的研究可以應(yīng)用領(lǐng)域生產(chǎn)、生活等很多領(lǐng)域。對于家用電器從洗衣機(jī)、微波爐到音響等等到處都可以用到溫度控制器來方便大家的日常生活。開發(fā)此產(chǎn)品后也可方便應(yīng)用安裝在小至家庭大到工廠車間
9、,小至一個芯片大到一個機(jī)械設(shè)備。例如在家庭客廳臥室等必要地方顯示室溫,可防止家里食物是否變質(zhì)及早采取措施。工業(yè)生產(chǎn)控制中用數(shù)字溫度計可清晰顯示溫度來防止元?dú)饧Щ驌p壞等不必要的非人為損失,對做好車間機(jī)器維修與保養(yǎng)起很重要的作用。</p><p><b> 分工明細(xì):</b></p><p> 鄭戈:軟件仿真,編寫程序</p><p>
10、朱健寧:軟件仿真,編寫程序</p><p> 林雄彬:硬件組裝、焊接部分</p><p> 戴國霖:硬件組裝、焊接部分</p><p> 本人在本次實訓(xùn)中主要負(fù)責(zé)軟件仿真,編寫程序,在編寫程序中因為對DS18B20的一些工作參數(shù)以及工作條件的不熟悉所以一開始遇到了很大的困難,但是在老師及同學(xué)的幫助下還是順利的完成了軟件的編寫工作。</p><
11、;p><b> 設(shè)計方案:</b></p><p> DS18B20寄生電源供電方式電路圖 </p><p> 在寄生電源供電方式下,DS18B20從單線信號線上汲取能量:在信號線DQ處于高電平期間把能量儲存在內(nèi)部電容里,在信號線處于低電平期間消耗電容上的電能工作,直到高電平到來再給寄生電源(電容)充電。
12、; 獨(dú)特的寄生電源方式有三個好處: 1)進(jìn)行遠(yuǎn)距離測溫時,無需本地電源 2)可以在沒有常規(guī)電源的條件下讀取ROM 3)電路更加簡潔,僅用一根I/O口實現(xiàn)測溫</p><p> DS18B
13、20的外部電源供電方式 </p><p> 此時I/O線不需要強(qiáng)上拉,不存在電源電流不足的問題,可以保證轉(zhuǎn)換精度,同時在總線上理論可以掛接任意多個DS18B20傳感器,組成多點(diǎn)測溫系統(tǒng)。</p><p> DS18B20的應(yīng)用電路方案選擇:</p><p> 外部電源供電方式是DS18B20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡單,可以開
14、發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。</p><p><b> 二 硬件電路設(shè)計</b></p><p> 圖中U3為ds18b20</p><p><b> 三 軟件系統(tǒng)設(shè)計</b></p><p><b> 1、流程圖</b></p><p>
15、 根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對DS18B20進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20收到信號后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號表示復(fù)位成功。</p><p>
16、;<b> 2、程序</b></p><p> #include<reg51.h></p><p> sbit zf=P2^6;</p><p> sbit shi=P2^5;</p><p> sbit ge=P2^4;</p><p> sbit xs=P2^3;<
17、;/p><p> sbit dp=P0^7;</p><p> sbit DQ =P3^7; //定義通信端口</p><p><b> //延時函數(shù)</b></p><p> unsigned char tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0
18、x90, 0xff};</p><p> //0 1 2 3 4 5 6 7 8 9 </p><p> unsigned int t=0;</p><p> unsigned char tflag;</p><p> unsigned char data disdata[4];</p><p> void
19、delay(unsigned char i)</p><p><b> {</b></p><p> while(i--);</p><p><b> }</b></p><p><b> //初始化函數(shù)</b></p><p> Init_D
20、S18B20(void)</p><p><b> {</b></p><p> unsigned char x;</p><p> DQ = 1; //DQ復(fù)位</p><p> delay(8); //稍做延時</p><p> DQ = 0; //單片機(jī)將DQ拉低&l
21、t;/p><p> delay(80); //精確延時 大于 480us</p><p> DQ = 1; //拉高總線</p><p> delay(14);</p><p> x=DQ; //稍做延時后 如果x=0則初始化成功 x="1則初始化失敗"</p><p> de
22、lay(20);</p><p><b> }</b></p><p><b> //讀一個字節(jié)</b></p><p> ReadOneChar(void)</p><p><b> {</b></p><p> unsigned char
23、i;</p><p> unsigned char dat = 0;</p><p> for (i=8;i>0;i--)</p><p><b> {</b></p><p> DQ = 1; // 給脈沖信號</p><p><b> delay(1);</b&
24、gt;</p><p><b> DQ=0;</b></p><p><b> dat>>=1;</b></p><p> DQ = 1; // 給脈沖信號</p><p><b> delay(2);</b></p><p><
25、;b> if(DQ)</b></p><p> dat|=0x80;</p><p><b> delay(4);</b></p><p><b> }</b></p><p> return(dat);</p><p><b> }&
26、lt;/b></p><p><b> //寫一個字節(jié)</b></p><p> WriteOneChar(unsigned char dat)</p><p><b> {</b></p><p> unsigned char i;</p><p> for
27、 (i=8; i>0; i--)</p><p><b> {</b></p><p><b> DQ = 0;</b></p><p><b> delay(2);</b></p><p> DQ = dat&0x01;</p><p
28、><b> delay(5);</b></p><p><b> DQ = 1;</b></p><p><b> dat>>=1;</b></p><p><b> }</b></p><p><b> delay(
29、4);</b></p><p><b> }</b></p><p><b> //讀取溫度</b></p><p> ReadTemperature(void)</p><p><b> {</b></p><p> unsign
30、ed char a;</p><p> unsigned char b;</p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); // 跳過讀序號列號的操作 發(fā)送指令0xcc</p><p> WriteOneChar(0x44); // 啟動溫度轉(zhuǎn)換 發(fā)送指令0x44<
31、;/p><p> Init_DS18B20();</p><p> WriteOneChar(0xCC); //跳過讀序號列號的操作</p><p> WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度 發(fā)送指令0xbe</p><p> a=ReadOneChar(); //讀取溫度值低
32、位</p><p> b=ReadOneChar(); //讀取溫度值高位</p><p><b> t=b;</b></p><p> t<<=8; //值左移8位 </p><p> t=t|a; //合并高低位數(shù)值</p><p>
33、 if(t<0xfff)</p><p><b> tflag=1;</b></p><p><b> else</b></p><p><b> { </b></p><p> tflag=0; </p><p> t=~t+1
34、; //負(fù)值換算</p><p><b> }</b></p><p> t=t*(0.625); //溫度擴(kuò)大10倍,精確到1位小數(shù)</p><p> return(t);</p><p><b> }</b></p><p> void display_tem
35、per(unsigned int i)</p><p> { unsigned int flag;</p><p> disdata[0]=i/1000; //百位數(shù)</p><p> disdata[1]=i%1000/100; //十位數(shù)</p><p> disdata[2]=i%100/10; //個位數(shù)</p
36、><p> disdata[3]=i%10; //小數(shù)位</p><p> if(tflag==1) </p><p> flag=0xff; //正號,不顯示</p><p><b> else</b></p><p> flag=0x40; //負(fù)號,顯示-<
37、/p><p> zf=0,shi=1,ge=1,xs=1;</p><p><b> P0=flag;</b></p><p> delay(150);</p><p> zf=1,shi=0,ge=1,xs=1;</p><p> P0=tab[disdata[1]];</p>
38、<p> delay(150);</p><p> zf=1,shi=1,ge=0,xs=1;</p><p> P0=tab[disdata[2]];</p><p><b> dp=0;</b></p><p> delay(150);</p><p> zf=1,s
39、hi=1,ge=1,xs=0;</p><p> P0=tab[disdata[3]];</p><p> delay(150);</p><p><b> P0=0xff;</b></p><p> delay(100);</p><p><b> P2=0x00;</
40、b></p><p><b> }</b></p><p> void main(void)</p><p> {unsigned int temp;</p><p> while(1) //主循環(huán)</p><p> { temp=R
41、eadTemperature();</p><p> display_temper(temp); </p><p><b> } </b></p><p><b> }</b></p><p> 四 實驗結(jié)果分析與總結(jié)</p><p> 在本次的課程設(shè)計過
42、程中,在焊接電路板時,會出現(xiàn)線路的接觸不良,造成數(shù)碼管不能顯示數(shù)值。在解決的過程中,認(rèn)真查看電路圖,用萬用表檢測線路,找出原因并重新焊接其中錯誤的地方。注意一點(diǎn)就系設(shè)計電路走線的時候最好要清晰易見,盡可能的避免跳線,這樣在檢查電路出錯時候簡捷方便得多。</p><p> 覺得應(yīng)該注意程序的設(shè)計。雖然不是很難,但很多細(xì)小的問題需要認(rèn)真的對待,稍有不注意問題就會在具體的應(yīng)用程序調(diào)試過程中出現(xiàn),這要求在實踐的過程中除
43、了要了塌實的理論知識還要細(xì)心,有耐心。當(dāng)然在本次的設(shè)計過程中還出現(xiàn)了其他不少的問題,問題隨著設(shè)計思想的深入而不斷變化,不斷的產(chǎn)生新問題,而在這過程中不斷的解決問題,正是在這一過程中,加深了對原理的認(rèn)識,完善了設(shè)計思想,使自己分析問題解決問題的能力得到進(jìn)一步的加強(qiáng)。</p><p> 另外還充分體會了從事單片機(jī)開發(fā)工作需要特別嚴(yán)謹(jǐn)認(rèn)真的態(tài)度和作風(fēng),一點(diǎn)都馬虎不得。每一個細(xì)微的細(xì)節(jié)都必須十分的注意,如果不認(rèn)真思考決
44、策,就會出現(xiàn)或大或小的錯誤,如果早期的錯誤隱藏下來,對后面的工作影響就會很大,甚至有時要推倒很多前面做的工作重來。有時候,自己覺得寫的程序非常的正確,但是就是編譯通不過,在查找錯誤的過程中,面臨著否認(rèn)自己的過程,非常的痛苦,而且由于自己的經(jīng)驗及各方面的能力的不足,所以進(jìn)展的速度非常的緩慢,往往幾天的時間還沒有一點(diǎn)進(jìn)展。這時候,一般是先自己通過書本,手冊和資料找解決辦法,實在沒轍了才向老師請教。盡管向老師請教解決問題比較快,自己鉆研花的時
45、間較多,但強(qiáng)迫自己獨(dú)立的思考對學(xué)習(xí)提高幫助非常大。</p><p> 反反復(fù)復(fù)的學(xué)習(xí),辛勤努力有了回報,終于做出了一個簡單的系統(tǒng),雖然這個系統(tǒng)的功能非常的簡單,而且在實際的運(yùn)用中,還有些不足。比如斷電后不能工作等問題。</p><p> 由于知識淺薄,經(jīng)驗不足及閱歷頗淺,因此,在該系統(tǒng)的設(shè)計方面還有很多不足,比如功能不夠完善,界面不夠醒目等問題,會在工作的使用過程中,根據(jù)工作的具體要求
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- ds18b20數(shù)字溫度計設(shè)計課程設(shè)計
- ds18b20溫度計課程設(shè)計
- 課程設(shè)計-基于ds18b20數(shù)字溫度計的設(shè)計
- 數(shù)字溫度計ds18b20課程設(shè)計報告
- 基于ds18b20數(shù)字式溫度計課程設(shè)計
- ds18b20數(shù)字溫度計的設(shè)計
- ds18b20 數(shù)字溫度計外文翻譯
- 外文翻譯---ds18b20 數(shù)字溫度計
- 單片機(jī)溫度計課程設(shè)計--基于ds18b20的溫度計
- 傳感器課程設(shè)計-----ds18b20數(shù)字溫度計的設(shè)計
- 畢業(yè)設(shè)計----ds18b20數(shù)字溫度計論文
- ds18b20 數(shù)字溫度計外文資料翻譯
- 基于ds18b20的溫度計設(shè)計
- 課程設(shè)計--基于單片機(jī)的ds18b20數(shù)字溫度計設(shè)計
- 畢業(yè)設(shè)計---ds18b20數(shù)字溫度計的設(shè)計
- 基于ds18b20和1602的溫度計課程設(shè)計報告
- 基于ds18b20的數(shù)字溫度計設(shè)計與實現(xiàn)
- 基于單片機(jī)設(shè)計的溫度計(ds18b20)課程設(shè)計
- 外文翻譯---ds18b20單總線數(shù)字溫度計
- 單片機(jī)課程設(shè)計報告--ds18b20數(shù)字溫度計的設(shè)計與實現(xiàn)
評論
0/150
提交評論