基于DS18B20的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于DS18B20的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于DS18B20的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于DS18B20的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于DS18B20的溫度測(cè)量系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)(論文)題 目 名 稱 基于DS18B20溫度測(cè)量系統(tǒng)設(shè)計(jì) 課 程 名 稱 單片機(jī)原理及應(yīng)用 學(xué) 生 姓 名 尹彬濤 學(xué) 號(hào) 系 、專 業(yè) 電子信息工程 指 導(dǎo) 教 師 江世民 2015年 6 月 12 日摘要隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活、工作、科研、各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文主要介紹了一個(gè)基于STC89C52單片機(jī)的測(cè)溫系統(tǒng),詳細(xì)描述了利用數(shù)字溫度傳感器DS18B20開發(fā)測(cè)溫系統(tǒng)的過(guò)程,重點(diǎn)對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,特別是數(shù)字溫度傳感器DS18B20的數(shù)據(jù)采集過(guò)程。對(duì)各部分的電路也一一進(jìn)行了介紹,該系

2、統(tǒng)可以方便的實(shí)現(xiàn)實(shí)現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設(shè)定上下限報(bào)警溫度,它使用起來(lái)相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸ぁ⑥r(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴(kuò)展。DS18B20與STC89C52結(jié)合實(shí)現(xiàn)最簡(jiǎn)溫度檢測(cè)系統(tǒng),該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,抗干擾能力強(qiáng),適合于惡劣環(huán)境下進(jìn)行現(xiàn)場(chǎng)溫度測(cè)量,有廣泛的應(yīng)用前景。關(guān)鍵詞:?jiǎn)纹瑱C(jī);DS18B20;溫度傳感器;數(shù)字溫度計(jì);STC89C52目錄摘要.1引言.3一、方案介紹.31、顯示部分.32、溫度采集.53、 方案流程圖.5二、總體方案設(shè)計(jì). 61、 硬件設(shè)計(jì). 61.

3、1 溫度采集設(shè)計(jì). 61.2溫度顯示設(shè)計(jì). 62、 軟件設(shè)計(jì). 72.1 DS18B20程序設(shè)計(jì). 72.2顯示部分程序設(shè)計(jì). 8三、實(shí)驗(yàn)調(diào)試過(guò)程.101、軟件調(diào)試.101.1 顯示部分調(diào)試. .10四、心得體會(huì).10五、致謝.11六、參考文獻(xiàn).12七、附錄.12附錄一 程序代碼.12附錄二 仿真電路圖.18引言在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要涉及到溫度的檢測(cè)及控制,傳統(tǒng)的測(cè)溫元件有熱點(diǎn)偶,熱敏電阻還有一些輸出模擬信號(hào)得溫度傳感器,而這些測(cè)溫元件一般都需要比較多的外部硬件支持。其硬件電路復(fù)雜,軟件調(diào)試繁瑣,制作成本高,阻礙了其使用性。因此美國(guó)DALLAS半導(dǎo)體公司又推出了一款改進(jìn)型智能溫度傳感器

4、DS18B20。本設(shè)計(jì)就是用DS18B20數(shù)字溫度傳感器作為測(cè)溫元件來(lái)設(shè)計(jì)數(shù)字溫度計(jì)。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示。本設(shè)計(jì)顯示精度為1,只能用于日常生活粗測(cè)。該設(shè)計(jì)控制器使用單片機(jī)STC89C51,測(cè)溫傳感器使用DS18B20,顯示器使用液晶顯示。一、方案介紹1、顯示部分顯示部分是本次設(shè)計(jì)的重要部分,一般有以下兩種方案:方案一:采用LED顯示,分靜態(tài)顯示和動(dòng)態(tài)顯示。對(duì)于靜態(tài)顯示方式,所需的譯碼驅(qū)動(dòng)裝置很多,引線多而復(fù)雜,可靠性也較低。對(duì)于動(dòng)態(tài)顯示方式,雖可以避免靜態(tài)顯示的問(wèn)題,占用單片機(jī)IO口少,節(jié)約資源,而且接線簡(jiǎn)單。方

5、案二:采用LCD顯示。LCD液晶顯示具有豐富多樣性、靈活性、電路簡(jiǎn)單、易于控制而且功耗小等優(yōu)點(diǎn),對(duì)于信息量多的系統(tǒng),是比較適合的。鑒于該系統(tǒng)信息量少,我們采用方案一。2、溫度采集由于現(xiàn)在用品追求多樣化,多功能化,給系統(tǒng)加上溫度測(cè)量顯示模塊,能夠方便人們的生活,使該設(shè)計(jì)具有人性化。本次實(shí)驗(yàn)是設(shè)計(jì)列車車軸實(shí)時(shí)溫度檢測(cè)系統(tǒng),所以我們采用溫度傳感器DS18B20,用DS18B20測(cè)溫度就無(wú)需外接A/D轉(zhuǎn)換電路,其輸出的溫度值就是已經(jīng)經(jīng)過(guò)了A/D轉(zhuǎn)換,已經(jīng)是數(shù)字量了。DS18B20可以滿足從-55攝氏度到+125攝氏度測(cè)量范圍,且DS18B20測(cè)量精度高,精度為0.0625攝氏度,固有的測(cè)溫分辨率為05

6、,在一秒內(nèi)把溫度轉(zhuǎn)化成數(shù)字,測(cè)得的溫度值的存儲(chǔ)在兩個(gè)八位的RAM中,單片機(jī)直接從中讀出數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制就是溫度,使用方便。基于DS18B20的以上優(yōu)點(diǎn),我們決定選取DS18B20來(lái)測(cè)量溫度。3、 方案流程圖溫度傳感器DS18B20集成了A/D轉(zhuǎn)換的功能,所以在連接單片機(jī)時(shí)無(wú)需進(jìn)行A/D轉(zhuǎn)換電路的連接,將采集的溫度數(shù)據(jù)經(jīng)過(guò)DS18B20的處理將溫度值輸出給單片機(jī),通過(guò)單片機(jī)的控制輸出使數(shù)碼管顯示,倘若實(shí)測(cè)的溫度大于人為設(shè)置的溫度時(shí),單片機(jī)I/O口P3.0輸出高電平,使報(bào)警系統(tǒng)工作報(bào)警。流程圖如圖1.3所示:DS18B20溫度傳感器80C51單片機(jī)四位一體數(shù)碼管圖1.3 流程圖二、總體方案設(shè)計(jì)1、

7、 硬件設(shè)計(jì)1.1 溫度采集設(shè)計(jì)溫度傳感器采用DSl8820,其是一種單總線智能型溫度傳感器,只有三線接口,分別為地線(GND)、數(shù)據(jù)線(DQ)、電源線(VCC)。DSl8820輸出信號(hào)為數(shù)字信號(hào),處理器與DSl8820通過(guò)數(shù)據(jù)線(DQ)來(lái)完成雙向通信,因此采用DSl8820使得電路十分簡(jiǎn)單。溫度變換功率可以來(lái)源于外電源,也可以來(lái)源于數(shù)據(jù)總線,總線本身也可以向所掛接的DSl8820供電。DSl8820的電壓范圍為+30+55 V,測(cè)溫范圍為-55+125,固有的測(cè)溫分辨率為0.5,最高精度可達(dá)0062 5,最大的轉(zhuǎn)換時(shí)間為200 ms。一條總線上面可以掛接多個(gè)DSl8820實(shí)現(xiàn)多點(diǎn)測(cè)溫。本實(shí)驗(yàn)溫

8、度路數(shù)只有一路,所以單獨(dú)使用一個(gè)+5V電源對(duì)DS18B20供電。引腳圖如圖2.1.1(a),元件圖如圖2.1.1(b): 圖2.1.1(a) 圖2.1.1(b)1.2溫度顯示設(shè)計(jì)在實(shí)驗(yàn)中,我們采用四位一體LED共陰極數(shù)碼管顯示,段選端由單片機(jī)P0口控制,之間外接上拉電阻。理想情況下單片機(jī)P0口輸出的高電平為+5V,足以使數(shù)碼管點(diǎn)亮,但在實(shí)際接線中,要接一個(gè)上拉電阻,這樣才能使數(shù)碼管正常工作。數(shù)碼管的位選端與單片機(jī)P2口連接,通過(guò)程序控制P2口輸出高低電平來(lái)控制數(shù)碼管位選。圖2.12(a)、圖2.1.2(b)分別為數(shù)碼管引腳圖和實(shí)物圖: 圖2.1.1(a)數(shù)碼管引腳 圖2.1.2(b)實(shí)物圖 2

9、、 軟件設(shè)計(jì)2.1 DS18B20程序設(shè)計(jì)對(duì)于DS18B20的程序編寫要特別注意時(shí)序問(wèn)題,如果采用C語(yǔ)言編程,其對(duì)時(shí)序要求很嚴(yán),倘若時(shí)序錯(cuò)誤會(huì)導(dǎo)致單片機(jī)讀不到數(shù)據(jù),或是讀到的數(shù)據(jù)都是錯(cuò)誤的,更嚴(yán)重就是傳感器不工作,無(wú)法進(jìn)行溫度采集;匯編語(yǔ)言對(duì)時(shí)序要求沒(méi)有那么嚴(yán)格,因?yàn)槌绦蜻\(yùn)行每一條匯編語(yǔ)句都會(huì)有一個(gè)機(jī)器周期。下面就是DS18B20各個(gè)狀態(tài)下得時(shí)序介紹:1、DS18B20復(fù)位初始化時(shí)序先通過(guò)單片機(jī)把DQ電平拉低,即DQ=0,然后通過(guò)一個(gè)480us到960us的延時(shí),再拉高電平等待15us,當(dāng)對(duì)傳感器進(jìn)行復(fù)位操作時(shí),成功了則DS18B20會(huì)自動(dòng)將DQ拉低,此時(shí)單片機(jī)對(duì)DQ溫度值進(jìn)行讀?。惶热舨怀晒?/p>

10、則DQ一直保持高電平,單片機(jī)無(wú)法從DS18B20讀取溫度值。復(fù)位時(shí)序如圖2.2.1(a)所示: 圖2.2.1(a)DS18B20復(fù)位初始化時(shí)序圖2、寫DS18B20溫度時(shí)序?qū)懼芷谝婚_始做為主機(jī)先把總線拉低1微秒表示寫周期開始。隨后若主機(jī)想寫0,則繼續(xù)拉低電平最少60微秒直至寫周期結(jié)束,然后釋放總線為高電平。若主機(jī)想寫1,在一開始拉低總線電平1微秒后就釋放總線為高電平,一直到寫周期結(jié)束。而做為從機(jī)的DS18B20則在檢測(cè)到總線被拉低等待15微秒然后從15us到45us開始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。溫度寫時(shí)序如圖2.2.1(b):圖2.2.1(b)寫D

11、S18B20溫度時(shí)序圖3、讀DS18B20溫度時(shí)序先將DQ電平拉低,然后單片機(jī)再將DQ電平拉高,如果DQ的數(shù)據(jù)是“1”時(shí),則單片機(jī)在采樣時(shí)就會(huì)采到一個(gè)高電平;如果在DQ的數(shù)據(jù)變成了“0”,則說(shuō)明DS18b20自動(dòng)將電平拉低,單片機(jī)采樣時(shí)就會(huì)得到一個(gè)低電平。溫度讀時(shí)序如圖2.2.1(c):圖2.2.1(c)讀DS18B20溫度時(shí)序圖2.2顯示部分程序設(shè)計(jì)顯示有靜態(tài)顯示和動(dòng)態(tài)顯示,兩者區(qū)別在于靜態(tài)顯示接線多,用到的IO口多,所以對(duì)單片機(jī)資源浪費(fèi)大,但是其編程簡(jiǎn)單;動(dòng)態(tài)顯示接線少,占用的IO口少,資源利用充分,但是其編程比較復(fù)雜。本實(shí)驗(yàn)采用動(dòng)態(tài)顯示,采用四位一體共陰極數(shù)碼管,段選端用P0口控制,位選

12、端用P2口控制,顯示圖如圖2.2.2(a)所示圖2.2.2(a)顯示圖 因此,整個(gè)的程序流程圖如圖2.2.2 (b),單片機(jī)上電,進(jìn)行單片機(jī)初始化,之后進(jìn)行DS18b20的初始化,將原有的溫度擦除。初始化完成后,當(dāng)總線接收到從高電平到低電平的脈沖時(shí),則溫度傳感器進(jìn)行寫操作,將溫度值寫入。溫度數(shù)據(jù)轉(zhuǎn)換完成后,單片機(jī)P1口將溫度值讀入單片機(jī)中,經(jīng)過(guò)程序處理顯示到數(shù)碼管上。在單片機(jī)進(jìn)行數(shù)據(jù)處理時(shí),倘若實(shí)際溫度大于設(shè)定溫度時(shí),觸發(fā)報(bào)警電路工作,產(chǎn)生報(bào)警,如果溫度正常則報(bào)警電路不工作。初始化DS18b20發(fā)44H溫度轉(zhuǎn)換指令發(fā)CCH 跳過(guò)ROM指令數(shù)碼管顯示80C51溫度數(shù)據(jù)處理開始延時(shí)等待溫度轉(zhuǎn)換完畢

13、初始化DS18b20發(fā)BEH溫度讀取指令發(fā)CCH 跳過(guò)ROM指令數(shù)據(jù)存入緩沖區(qū)圖2.2.2(b) 程序流程圖三、實(shí)驗(yàn)調(diào)試過(guò)程1、軟件調(diào)試1.1 顯示部分調(diào)試 為了減少錯(cuò)誤的發(fā)生,我們采用了分步調(diào)試,首先直接將一位數(shù)碼管接地選通,然后通過(guò)單片機(jī)控制顯示;如果沒(méi)有錯(cuò)誤,再進(jìn)行兩位顯示,在兩位顯示之前要將數(shù)據(jù)進(jìn)行處理,取出十位,個(gè)位,如此依次將三位溫度值顯示出來(lái)。但是在顯示過(guò)程中我們發(fā)現(xiàn)顯示的數(shù)據(jù)一直在閃爍,不是靜止的,我們?cè)囍蜒訒r(shí)時(shí)間延長(zhǎng),但是任然不起作用,沒(méi)有任何變化。經(jīng)過(guò)多番努力,江老師一語(yǔ)驚醒夢(mèng)中人,我們?cè)趯2口置了數(shù)選通數(shù)碼管之后,下一個(gè)數(shù)據(jù)在選通數(shù)碼管時(shí)沒(méi)有重新將P2口初始化即還原(

14、MOV P2, #0FFH)。程序如下:MOV A, 32H MOV DPTR, #SGTB1 MOVC A,A+DPTR MOV P2, #0FFH ;P2口復(fù)位 MOV P0,A ;顯示溫度個(gè)位值 MOV P2, #0FDH ;位選 LCALL DELAY有了P2口的復(fù)位這條程序,顯示的閃爍問(wèn)題就解決了,數(shù)據(jù)顯示變得穩(wěn)定。四、心得體會(huì) 在第十周星期五上午剛考完,江老師就過(guò)來(lái)布置課設(shè)任務(wù),講了很多很多,當(dāng)時(shí)聽完也很有興趣,應(yīng)為在實(shí)驗(yàn)室是個(gè)能出成就的地方,每當(dāng)你取得一點(diǎn)點(diǎn)的成功,你都會(huì)感覺(jué)很充實(shí),就會(huì)覺(jué)得這一天沒(méi)有虛度,學(xué)到了東西。下午,大家網(wǎng)上選題,什么事都講究效率,我們還在睡午覺(jué),二班的同

15、學(xué)就在選題了,看到那個(gè)題目我都暈了,不知道從何處下手,糾結(jié)啊,硬著頭皮選了個(gè)挑戰(zhàn)性的題目。搞得星期六上課都在想到底要怎么開始,自己什么都不懂,什么東西都得從開始學(xué)起,所以星期天開始從基礎(chǔ)開始學(xué)?;A(chǔ)就得從一些基礎(chǔ)軟件開始,起初我對(duì)畫電路圖用什么軟件,編程用什么軟件,程序,仿真用哪種軟件以及如何燒單片機(jī)程序一無(wú)所知。所以星期天慢慢的熟悉一下這些軟件的基本操作,這個(gè)過(guò)程很痛苦,什么東西都不懂要去問(wèn)別人是件很痛苦的事情。經(jīng)過(guò)一天的熟悉之后,我們弄了一個(gè)最簡(jiǎn)單的匯編語(yǔ)句,想讓數(shù)碼管顯示一個(gè)“5”,體驗(yàn)一下整個(gè)過(guò)程到底是怎么樣的,經(jīng)過(guò)一番折騰終于出來(lái)了,當(dāng)時(shí)很高興,慢慢的對(duì)自己的題目如何開展有了信心了。

16、經(jīng)過(guò)一到兩天的資料查詢,漸漸的對(duì)編程有了一點(diǎn)頭緒,一些特定的元器件,它的程度編寫都是固定的,只是需要把程序看懂,修改其中參數(shù),然后自己慢慢將數(shù)據(jù)處理部分和顯示部分程序編好。編程過(guò)程中經(jīng)常遇到問(wèn)題,想問(wèn)老師吧,老師又很忙,不可能一直都在實(shí)驗(yàn)室隨叫隨到,所以在編程的第一天沒(méi)什么進(jìn)展。后面請(qǐng)了一個(gè)對(duì)編程比較有經(jīng)驗(yàn)的同學(xué)在旁邊指導(dǎo)我,遇到問(wèn)題我們相互商量,然后解決,就這樣一條一條,一個(gè)模塊一個(gè)模塊,用了將近兩天的時(shí)間將程序的大體框架匯編了出來(lái)。到這個(gè)時(shí)候,我們就嘗試著開始仿真,在仿真過(guò)程中也經(jīng)常發(fā)現(xiàn)問(wèn)題,慢慢的找出問(wèn)題,將程序一點(diǎn)一點(diǎn)的完善,然后將整個(gè)調(diào)試完成。值得提得是,起初大家都并不知道如何開展自

17、己的題目,我們可以在QQ群上提出來(lái)跟大家一起交流,所有的同學(xué),包括指導(dǎo)老師都會(huì)給你提出一個(gè)如何開題的建議。每一天,老師要問(wèn)大家現(xiàn)在的進(jìn)展如何,雖然看起來(lái)是隨口一問(wèn),但我認(rèn)為是非常有意義的,這是有督促,鼓勵(lì)作用的。除此之外,我們還可以將這一天遇到的問(wèn)題大膽的在群上提出來(lái),老師現(xiàn)場(chǎng)給我們做出解答,也許這不僅僅是你一個(gè)人在實(shí)驗(yàn)中遇到這樣的問(wèn)題,其他同學(xué)一樣有這樣的困惑,通過(guò)這樣的方式,大家都可以在晨會(huì)上解決一些前一天遺留的問(wèn)題。我覺(jué)得這個(gè)平臺(tái)非常有必要,很有存在的意義,應(yīng)該繼續(xù)發(fā)揚(yáng),一屆一屆傳承,進(jìn)而成為測(cè)控專業(yè)的一個(gè)傳統(tǒng)??偟脕?lái)說(shuō),課設(shè)兩個(gè)星期下來(lái),真的心里有喜有悲,一個(gè)實(shí)物調(diào)試了一兩天都沒(méi)能調(diào)試

18、出來(lái),心里確實(shí)很有壓力,有時(shí)都不想再進(jìn)實(shí)驗(yàn)室了,很糾結(jié)。但是我們確實(shí)學(xué)到了很多東西,不僅僅簡(jiǎn)單的完成了一個(gè)課設(shè),精華是在這個(gè)過(guò)程,我們享受的是這個(gè)過(guò)程。在這個(gè)過(guò)程中,不僅認(rèn)識(shí)了實(shí)驗(yàn)室的器件,懂得了一些常用軟件件的操作,更重要的是我們動(dòng)手了,整個(gè)課設(shè)下來(lái),一個(gè)系統(tǒng)的完成是我們一點(diǎn)一滴動(dòng)手設(shè)計(jì)搭建出來(lái)的,想到這個(gè)你會(huì)很有成就感,會(huì)覺(jué)得實(shí)驗(yàn)室并沒(méi)有白待,幾個(gè)星期沒(méi)有白費(fèi)。同學(xué)之間交流多了,感情就會(huì)加重,同學(xué)情就變得更濃厚了,師生之間通過(guò)交流,解決問(wèn)題,聊天,慢慢的我們彼此之間就像是朋友了,師生情也變得融洽了。經(jīng)過(guò)這次課設(shè),我認(rèn)識(shí)到了團(tuán)隊(duì)的力量是無(wú)限的,對(duì)于你個(gè)人來(lái)說(shuō)很難解決的問(wèn)題,放在一個(gè)團(tuán)隊(duì)面前就

19、顯得很渺小了,許多個(gè)人無(wú)法解決的難題,經(jīng)過(guò)大家相互商量討論,問(wèn)題就會(huì)一步一步迎刃而解。課設(shè)過(guò)程中我們就是一個(gè)團(tuán)隊(duì),充分發(fā)揮合作精神,我們就能將課設(shè)徹底、完美的完成。五、致謝在課設(shè)的過(guò)程中,我遇到了很多很多的的問(wèn)題,多虧有我們這個(gè)團(tuán)隊(duì),我的同學(xué),我的老師,有他們的幫忙我才順利的完成了這次課設(shè)。首先要感謝的是我的指導(dǎo)老師江世明老師。在課設(shè)還沒(méi)開始的前一天下午,我們?cè)趯?shí)驗(yàn)室就遇到了江世明老師,跟他交流的過(guò)程中,我們慢慢的將顯示部分是采用靜態(tài)還是動(dòng)態(tài)決定下來(lái)了。除此之外在程序編寫過(guò)程中,程序仿真,實(shí)物調(diào)試,江老師都給我們很大的幫助,有一點(diǎn)不懂得地方,老師都會(huì)講解的很詳細(xì),讓我盡量的聽明白。還有李老師,

20、他組織的晨會(huì)讓我收獲很多,在會(huì)上,我從一點(diǎn)都不會(huì),慢慢的懂得了如何查資料,如何確定總體方案,如何根據(jù)實(shí)驗(yàn)室現(xiàn)有器材搭建實(shí)物等等,在實(shí)驗(yàn)過(guò)程中遇到的一些問(wèn)題也可以在晨會(huì)上得到解決。遇到了困難,晨會(huì)上大家相互鼓勵(lì),然后又信心滿滿了。其次要感謝李波同學(xué),我從剛開始的文盲,到現(xiàn)在初步了解一些軟件的操作,是他教會(huì)了我如何使用proteus,如何運(yùn)用keil編程,以及如何將程序燒入單片機(jī)等等。在實(shí)驗(yàn)過(guò)程中,遇到什么問(wèn)題可以想他請(qǐng)教,他也一一給我解答,在此非常感謝。最后還得感謝我的另一位同學(xué)談黎明,在編寫程序方面,他給了我很大的幫助。起初我對(duì)DS18B20的程序編寫幾乎毫無(wú)頭緒,是他給我慢慢講解,給我詳細(xì)的

21、解釋了DS18B20程序的編寫過(guò)程。在我編寫程序的兩三天中,他一直跟我一起討論,有什么問(wèn)題,他都能給我解答,他在編程這方面有了一定的經(jīng)驗(yàn),所以在程序編寫過(guò)程中我少走了很多彎路,所以在此非常感謝他。在這次課設(shè)中,由于有指導(dǎo)老師以及這些同學(xué)的幫助,我才能很順利的完成這次課設(shè)。六、參考文獻(xiàn)1 江世明.單片機(jī)原理及應(yīng)用.M.上海交通大學(xué)出版社(第一版),20132 孫傳友,孫曉斌. 測(cè)控系統(tǒng)原理與設(shè)計(jì)M. 北京航空航天大學(xué)出版社(第2版),2007.3 譚浩強(qiáng). C程序設(shè)計(jì)教程M. 清華大學(xué)出版社,2007.4 杜洋. 18B20溫度傳感器應(yīng)用解析R.2005-12-02/2007-03-16.七、附

22、錄附錄一 程序代碼#include #define uchar unsigned char#define uint unsigned intsbit DQ=P30; /接ds18b20數(shù)據(jù)端口sbit p20=P20;sbit p21=P21;sbit p22=P22;sbit p23=P23;code uchar tab=0xc0,0xF9,0xA4,0xB0,0x99,0x92, 0x82,0xF8,0x80,0x90;/09code uchar tab1=0x40,0x79,0x24,0x30,0x19,0x12, 0x02,0x78,0x00,0x10;uchar a,b,t;ucha

23、r bai,shi,ge;void delay(unsigned int i) while(i-); int_DS18B20()/對(duì)ds18b20初始化 unsigned char x=0; DQ=1; /DQ復(fù)位 delay(8); /延時(shí) DQ=0; /單片機(jī)將DQ拉低 delay(80); /精度延時(shí)大于480us DQ=1; /拉高總線 delay(10); x=DQ; /x=0則初始化成功,x=1則初始化失敗 delay(20); return x;read()/讀溫度數(shù)值 unsigned char i=0; unsigned char dat=0; for(i=8;i0;i-) DQ=0; dat=1; DQ=1; if(DQ) dat|=0x80; delay(4); return(dat);void write(unsigned char dat) unsigned char i=0; for(i=8;i0;i-) DQ=0; DQ=dat&0x01; delay(5); DQ=1; dat=1

溫馨提示

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

評(píng)論

0/150

提交評(píng)論