課程設(shè)計(jì)(論文)基于DS18b20數(shù)字測(cè)溫儀的設(shè)計(jì)_第1頁(yè)
課程設(shè)計(jì)(論文)基于DS18b20數(shù)字測(cè)溫儀的設(shè)計(jì)_第2頁(yè)
課程設(shè)計(jì)(論文)基于DS18b20數(shù)字測(cè)溫儀的設(shè)計(jì)_第3頁(yè)
課程設(shè)計(jì)(論文)基于DS18b20數(shù)字測(cè)溫儀的設(shè)計(jì)_第4頁(yè)
課程設(shè)計(jì)(論文)基于DS18b20數(shù)字測(cè)溫儀的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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ù)字測(cè)溫儀的設(shè)計(jì)摘 要在日常生活及農(nóng)業(yè)生產(chǎn)中,經(jīng)常要用到溫度的檢測(cè)及控制,由此可見(jiàn)單片機(jī)在我們的生活中扮演十分重要的角色,讓我們認(rèn)識(shí)到單片機(jī)已經(jīng)深入各個(gè)領(lǐng)域。我們通過(guò)課程設(shè)計(jì)不僅能夠加強(qiáng)自己動(dòng)手操作能力和培養(yǎng)技術(shù)能力,而且加深對(duì)打片機(jī)的認(rèn)識(shí)增加自己知識(shí)面和激發(fā)對(duì)單片機(jī)的學(xué)習(xí)熱情以及對(duì)科學(xué)知識(shí)的探索。本次設(shè)計(jì)的內(nèi)容是基于單片機(jī)學(xué)習(xí)板的數(shù)字測(cè)溫儀設(shè)計(jì),采用溫度傳感器ds18b20作為環(huán)境溫度檢測(cè)元件,其中主控器為stc89c52rc、顯示電路是經(jīng)d8255ac-2擴(kuò)展連接數(shù)碼管,再由蜂鳴器作為溫度報(bào)警部分。溫度傳感器檢測(cè)到環(huán)境溫度進(jìn)行轉(zhuǎn)換保存高速緩存ram中,主控器在發(fā)出命令后在讀取數(shù)據(jù)進(jìn)行處理,

2、再輸出數(shù)據(jù)到顯示部分控制其顯示的具體溫度值。關(guān)鍵詞:stc89c52rc;ds18b20;d8255;主控制器;溫度傳感器;目 錄設(shè)計(jì)要求錯(cuò)誤!未定義書(shū)簽。1 方案論證與對(duì)比錯(cuò)誤!未定義書(shū)簽。1.1 方案一錯(cuò)誤!未定義書(shū)簽。1.2 方案二11.3 設(shè)計(jì)方案對(duì)比與選擇22 系統(tǒng)電路的設(shè)計(jì)22.1 主控制器22.2 顯示電路22.3 溫度傳感器23 系統(tǒng)程序的設(shè)計(jì)73.1 主程序73.2 溫度程序73.3 顯示程序84 系統(tǒng)調(diào)試及性能分析115 儀器件清單錯(cuò)誤!未定義書(shū)簽。6 總結(jié)與體會(huì)錯(cuò)誤!未定義書(shū)簽。參考文獻(xiàn)14附錄一:詳細(xì)系統(tǒng)源程序14設(shè)計(jì)要求本課題以單片機(jī)為核心,設(shè)計(jì)并制作出一臺(tái)數(shù)字測(cè)溫儀

3、,具有以下功能:1、單點(diǎn)溫度測(cè)試;2、測(cè)溫范圍: 040;3、分辨率:01;4、溫度輸出顯示:2 位;5、設(shè)定上下限,超出范圍時(shí)報(bào)警。1 方案論證與對(duì)比1.1 方案一采用標(biāo)準(zhǔn)at89c52單片機(jī)作為控制器;顯示倒計(jì)時(shí)顯示采用2位led數(shù)碼管;東西方向、南北方向通行指示燈采用接p1口的發(fā)光二極管;led顯示采用動(dòng)態(tài)掃描,以節(jié)約端口數(shù)。特種車(chē)輛通行采用實(shí)時(shí)中斷完成,識(shí)別方法采用人工識(shí)別。按以上系統(tǒng)構(gòu)架設(shè)計(jì),單片機(jī)端口資源滿足要求。該系統(tǒng)具有電路簡(jiǎn)單,設(shè)計(jì)方便,耗電較少,可靠性高等特點(diǎn)。1.2 方案二在日常生活及工農(nóng)業(yè)生產(chǎn)中經(jīng)常要用到溫度的檢測(cè)及控制,傳統(tǒng)的測(cè)溫元件有熱電偶和熱電阻。而熱電偶和熱電組

4、測(cè)出的一般都是電壓,再轉(zhuǎn)換成對(duì)應(yīng)得溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試復(fù)雜,制作成本高。本數(shù)字溫度計(jì)設(shè)計(jì)采用美國(guó)dallas半導(dǎo)體公司繼ds1820之后推出的一種改進(jìn)型智能溫度傳感器ds1820作為檢測(cè)元件,測(cè)溫范圍為-55125,分辨率最大可達(dá)0.0625。ds18b20可以直接讀出被測(cè)溫度值。而且采用3線制與單片機(jī)相連,減少了外部硬件電路,具有低成本和易使用的特點(diǎn)。按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由3個(gè)模塊組成:主控制器.測(cè)溫電路和顯示電路。數(shù)字溫度計(jì)總體電路結(jié)構(gòu)框圖如圖1所示。圖1 數(shù)字溫度計(jì)電路結(jié)構(gòu)框圖1.3 設(shè)計(jì)方案對(duì)比與選擇對(duì)比方案一與方案二可知道,二者所實(shí)現(xiàn)的功

5、能基本相同。方案二具有綜合設(shè)計(jì)優(yōu)點(diǎn),而且我們的芯片也是at89c52,最終我們選定方案二。 2 系統(tǒng)電路的設(shè)計(jì)2.1 主控制器單片機(jī)at89c51具有低電壓供電和小體積等特點(diǎn),兩個(gè)端口剛好滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜式產(chǎn)品的設(shè)計(jì)使用,系統(tǒng)可用二節(jié)電池供電。2.2 顯示電路顯示電路采用6位共陽(yáng)led數(shù)碼管,從p1口輸出段碼,列掃描用p3.0p3.來(lái)實(shí)現(xiàn),列驅(qū)動(dòng)用8255。2.3 溫度傳感器ds18b20溫度傳感器是美國(guó)dallas半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出北側(cè)溫度,并且可根據(jù)實(shí)際要求通過(guò)簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。

6、ds18b20的性能特點(diǎn)如下:獨(dú)特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)ds18b20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無(wú)須外部器件;可通過(guò)數(shù)據(jù)線供電,電壓范圍為3.05.5v;零待機(jī)功能;溫度以9或12位數(shù)字量讀出;用戶可定義的非易失性溫度報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過(guò)程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作;ds18b20采用3腳pr-35封裝或8腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖如圖2所示。 圖2 ds18b20內(nèi)部結(jié)構(gòu)圖64位rom的位結(jié)構(gòu)如圖3所示。開(kāi)始8位是產(chǎn)品類型的編號(hào),接著是每個(gè)器件的惟一的序號(hào),共有4

7、8位,最后8位是前面56位的crc檢驗(yàn)碼,這也是多個(gè)ds18b20可以采用一線進(jìn)行通信的原因。非易失性溫度報(bào)警器觸發(fā)器th和tl,可通過(guò)軟件寫(xiě)入戶報(bào)警上下限。圖3 64位rom結(jié)構(gòu)圖ds18b20溫度傳感器的內(nèi)部存儲(chǔ)器還包括一個(gè)高速暫存ram和一個(gè)非易失性的可擦除的eeram。高速暫存ram的結(jié)構(gòu)為8字節(jié)的存儲(chǔ)器,結(jié)構(gòu)如圖4所示。頭2個(gè)字節(jié)包含測(cè)得的溫度信息,第3和第4字節(jié)是th和tl的拷貝,是易失的,每次上電復(fù)位時(shí)被刷新。第5個(gè)字節(jié)為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。 ds18b20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義熱圖5所示。低5位一直

8、為1,tm是測(cè)試模式位,用于設(shè)置ds18b20在工作模式還是在測(cè)試模式。在ds18b20出廠時(shí)該位被設(shè)置為0,用戶不要改動(dòng),r1和r0決定溫度轉(zhuǎn)換得精度位數(shù),即用來(lái)設(shè)置分辨率,定義方法見(jiàn)表1。圖4 高速暫存ram結(jié)構(gòu)圖圖5 配置寄存器表1 ds18b20分辨率的定義規(guī)定由表1可見(jiàn),ds18b20溫度轉(zhuǎn)換的時(shí)間比較長(zhǎng),而且設(shè)定的分辨率越高,所需要的溫度轉(zhuǎn)換時(shí)間越長(zhǎng)。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。高速暫存ram的第6,7,8字節(jié)保存未用,表現(xiàn)為邏輯1。第9字節(jié)讀出前面所有8字節(jié)的crc碼,可用來(lái)檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。當(dāng)ds18b20接收溫度轉(zhuǎn)換命令后,開(kāi)始啟動(dòng)轉(zhuǎn)換。

9、轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1,2字節(jié)。單片機(jī)可以通過(guò)單線接口讀出數(shù)據(jù),讀數(shù)據(jù)時(shí)低位在先,高位在后,數(shù)據(jù)格式以0.0625/lsb形式表示。溫度值格式如圖6所示。 圖6 溫度數(shù)據(jù)值格式當(dāng)符號(hào)位s=0時(shí),表示測(cè)得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號(hào)位s=1時(shí),表示測(cè)得的溫度值為負(fù)值,要先將補(bǔ)碼轉(zhuǎn)換為原碼,再計(jì)算十進(jìn)制。表2是一部分溫度值對(duì)應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表2 ds18b20溫度與測(cè)得值對(duì)應(yīng)表ds18b20完成溫度轉(zhuǎn)換后,就把測(cè)得的溫度值與ram中的th,tl字節(jié)內(nèi)容作比較。若tth或ttl,則將該器件內(nèi)的報(bào)警標(biāo)志置位,并對(duì)主

10、機(jī)發(fā)出報(bào)警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時(shí)測(cè)量溫度并進(jìn)行報(bào)警搜索。在64位rom的最高有效字節(jié)中存儲(chǔ)有循環(huán)冗余檢驗(yàn)碼(crc)。主機(jī)根據(jù)rom的前56位來(lái)計(jì)算crc值,并和存入ds18b20的crc值作比較,以判斷主機(jī)收到rom數(shù)據(jù)是否正確。ds18b20的測(cè)溫原理如圖8所示。圖中第溫度系數(shù)晶振的震蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入.圖中還隱含著計(jì)數(shù)門(mén),當(dāng)計(jì)數(shù)門(mén)打開(kāi)時(shí),ds18b20就對(duì)低溫度系數(shù)震蕩器產(chǎn)生的時(shí)鐘脈沖計(jì)數(shù),進(jìn)而完成溫度測(cè)量。計(jì)數(shù)門(mén)的開(kāi)啟時(shí)間由高溫度系

11、數(shù)震蕩器來(lái)決定,每次測(cè)量前,首先將-55所對(duì)應(yīng)的一個(gè)基數(shù)分別置入減法計(jì)數(shù)器1,溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1所對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置值將被重新裝入,減法計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值就是所測(cè)溫度值。圖7中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線形性,其輸出用于減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門(mén)仍未關(guān)閉就重復(fù)上述過(guò)程,直到溫度寄存器值達(dá)到被預(yù)測(cè)值。另

12、外,由于ds18b20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫(xiě)時(shí)序很重要,系統(tǒng)對(duì)ds18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20發(fā)rom功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。圖7 ds18b20測(cè)溫原理圖ds18b20與單片機(jī)的接口電路 ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)ds18b20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式,如圖8所示.單片機(jī)端口接單線總線,為為保證有效ds18b20時(shí)鐘周期內(nèi)提供足夠的電流,可用一個(gè)mosfet管來(lái)完成對(duì)總線的上拉。圖8 ds18b20采用寄生電源的電路圖當(dāng)ds18b20

13、處于寫(xiě)存儲(chǔ)器操作和溫度a/d轉(zhuǎn)換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開(kāi)啟時(shí)間最大為10us。采用寄生電源供電方式時(shí)vdd和gnd端均接地。由于單線制只有一根線,因此發(fā)送接口必須是三態(tài)的。3 系統(tǒng)程序的設(shè)計(jì)3.1 主程序主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示,讀出并處理ds18b20的測(cè)量溫度值,溫度測(cè)量1s進(jìn)行一次,其程序流程圖見(jiàn)圖9。圖9 ds18b20溫度計(jì)主程序流程圖3.2 溫度程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12分辨率時(shí)轉(zhuǎn)換時(shí)間為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖10所示。圖10 溫度轉(zhuǎn)換命令子程序流程圖計(jì)算溫

14、度子程序?qū)am中讀取值進(jìn)行bcd碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判斷,其程序流程圖如圖11所示。圖11 計(jì)算溫度子程序流程圖3.3 顯示程序顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。程序流程圖如圖12所示。 圖12 顯示數(shù)據(jù)刷新子程序流程圖ds18b20的各個(gè)rom命令read rom33h這個(gè)命令允許總線控制器讀到ds18b20的8位系列編碼,惟一的序列號(hào)和8位crc碼。只有在總線上存在單只ds18b20的時(shí)候才能使用這個(gè)命令。如果總線上有不止一個(gè)從機(jī),當(dāng)所有從機(jī)試圖同時(shí)傳送信號(hào)時(shí),就會(huì)發(fā)生數(shù)據(jù)沖突。match rom55h這個(gè)是匹配rom命

15、令,后跟64位rom序列,讓總線控制器在多點(diǎn)總線上定位一只特定ds18b20,只有和64位rom序列完全匹配的ds18b20才能響應(yīng)隨后的存儲(chǔ)器操作。所有和64位rom序列不匹配的從機(jī)都將等待復(fù)位脈沖。這條命令在總線上有單個(gè)或三個(gè)器件時(shí)都可以使用。skip rom0cch這條命令允許總線控制器不用提供64位rom編碼就使用存儲(chǔ)器操作命令,在單點(diǎn)總線情況下,可以節(jié)省時(shí)間。如果總線上不止一個(gè)從機(jī),在skip rom命令之后跟著發(fā)一條讀命令,由于多個(gè)從機(jī)同時(shí)傳送信號(hào)??偩€上就會(huì)發(fā)生數(shù)據(jù)沖突。search rom0f0h當(dāng)一個(gè)系統(tǒng)初次啟動(dòng)時(shí),總線控制器可能并不知道單線總線上有多少器件或它們的64位ro

16、m編碼。搜索rom命令允許總線控制器用排除法識(shí)別總線所有從機(jī)的64位編碼。alarm search0ech這條命令的流程和search rom相同。然而,只有在最近一次測(cè)溫后遇到符合報(bào)警條件的情況,ds18b20 才會(huì)響應(yīng)這條命令。報(bào)警條件定義為溫度高于th或低于tl。只要ds18b20不掉電,報(bào)警狀態(tài)將一直保持,直到再一次測(cè)得的溫度值達(dá)不到報(bào)警條件。write scratchpad4eh這個(gè)命令向ds18b20的暫存器th和tl中寫(xiě)入數(shù)據(jù)??梢栽谌魏螘r(shí)刻發(fā)出復(fù)位命令來(lái)中止寫(xiě)入。read scratchpad0beh這個(gè)命令讀取暫存器的內(nèi)容。讀取將從第1個(gè)字節(jié)開(kāi)始,一直進(jìn)行下去,直到第9個(gè)字節(jié)

17、讀完。如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來(lái)中止讀取。copy scratchpad 48h這個(gè)命令把暫存器的內(nèi)容拷貝到ds18b20的eerom存儲(chǔ)器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲(chǔ)器里。如果總線控制器在這條命令之后跟著發(fā)出讀時(shí)間隙,而ds18b20又忙于把暫存器拷貝到ee存儲(chǔ)器,ds18b20就會(huì)輸出一個(gè)0,如果拷貝結(jié)束的話,ds18b20則輸出1。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后立即啟動(dòng)強(qiáng)上拉并最少保持10ms。convert t44h這條命令啟動(dòng)一次溫度轉(zhuǎn)換而無(wú)需其它數(shù)據(jù)。溫度轉(zhuǎn)換命令被執(zhí)行,而后ds18b20保持等待狀態(tài)。如果總線控制器在這條

18、命令之后跟著發(fā)出時(shí)間間隙,而ds18b20又忙于做時(shí)間轉(zhuǎn)換的話,ds18b20將在總線上輸出0,若溫度轉(zhuǎn)換完成,則輸出1。如果使用寄生電源,總線控制器必須在發(fā)出這條命令后立即啟動(dòng)強(qiáng)上拉,并保持500ms以上時(shí)間。recall 、ee0e8h這條命令把報(bào)警觸發(fā)器里的值拷貝回暫存器。這種拷貝操作在ds18b20上點(diǎn)時(shí)自動(dòng)執(zhí)行,這樣器件以上電暫存器里馬上就存在有效的數(shù)據(jù)了。若這條命令發(fā)出之后發(fā)出數(shù)據(jù)隙,器件會(huì)輸出溫度轉(zhuǎn)換忙的標(biāo)識(shí):0為忙,1為完成。read power supply0b4h若把這條命令發(fā)給ds18b20后發(fā)出讀時(shí)間隙,器件會(huì)返回他的電源模式:0為寄生電源,1為外部電源。從ds18b2

19、0讀取出的二進(jìn)制值必須先轉(zhuǎn)換成十進(jìn)制值,才能用于字符的顯示。因?yàn)閐s18b20的轉(zhuǎn)換精度為912位可選的,為了提高精度采用12位。在采用12位轉(zhuǎn)換精度時(shí),溫度寄存器里的值是以0.0625為步進(jìn)的,即溫度值為溫度寄存器里的二進(jìn)制值乘以0.0625,就是實(shí)際的十進(jìn)制溫度值。通過(guò)觀察表5.2可以發(fā)現(xiàn)一個(gè)十進(jìn)制值和二進(jìn)制值之間有很明顯的關(guān)系,就是把二進(jìn)制的高字節(jié)的低半字節(jié)和低字節(jié)的高半字節(jié)組成一個(gè)字節(jié),這個(gè)字節(jié)的二進(jìn)制值化為十進(jìn)制之后,就是溫度值的百、十、個(gè)位值,而剩下的低字節(jié)的低半字節(jié)化為十進(jìn)制后,就是溫度值得小數(shù)部分。小數(shù)部分因?yàn)槭前雮€(gè)字節(jié),所以二進(jìn)制值范圍是0f,轉(zhuǎn)換成十進(jìn)制小數(shù)值就是0.062

20、5的倍數(shù)(015倍)。這樣需要4位的數(shù)碼管來(lái)顯示小數(shù)部分,實(shí)際應(yīng)用不必有這么高的精度,采用1位數(shù)碼管來(lái)顯示小數(shù)部分,實(shí)際應(yīng)用不必有這么高的精度,采用1位數(shù)碼管來(lái)顯示小數(shù),可以精確到0.1。表下就是二進(jìn)制和十進(jìn)制的近似對(duì)應(yīng)關(guān)系表。表3 小數(shù)部分二進(jìn)制和十進(jìn)制的近似對(duì)應(yīng)關(guān)系表4 系統(tǒng)調(diào)試及性能分析系統(tǒng)的調(diào)試以程序?yàn)橹?,硬件調(diào)試比較簡(jiǎn)單,首先檢查電路的焊接是否正確,然后可用萬(wàn)用表測(cè)試或通電檢測(cè)。軟件調(diào)試可以先編寫(xiě)顯示程序并進(jìn)行硬件的正確性檢驗(yàn),然后分別進(jìn)行主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計(jì)算溫度子程序、顯示數(shù)據(jù)刷新等子程序的。編程及調(diào)試,由于ds18b20與單片機(jī)采用串行數(shù)據(jù)傳送,因此,對(duì)d

21、a18b20進(jìn)行讀寫(xiě)編程時(shí)必須嚴(yán)格的保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)量結(jié)果。本程序采用單片機(jī)匯編邊寫(xiě),用keil c51編譯器編程調(diào)試。軟件調(diào)試到能顯示溫度值,而且在有溫度變化時(shí)(例如用手去接觸)顯示溫度能改變就基本完成。性能測(cè)試可用制作的溫度計(jì)和已有的成品溫度計(jì)來(lái)同時(shí)測(cè)量比較,由于ds18b20的精度很高,所以誤差指標(biāo)可以限制在0.1以內(nèi),另外-55+125的測(cè)量范圍使得該溫度計(jì)完全適合一般的應(yīng)用場(chǎng)合,其低電壓供電特性可做成用電池供電的手持溫度計(jì)。ds18b20溫度計(jì)還可以在高低溫報(bào)警、遠(yuǎn)距離多點(diǎn)測(cè)溫控制等方面進(jìn)行應(yīng)用開(kāi)發(fā),但在實(shí)際設(shè)計(jì)中應(yīng)注意一下問(wèn)題。ds18b20工作時(shí)電流高達(dá)1.5ma,

22、總線上掛節(jié)點(diǎn)數(shù)較多且同時(shí)進(jìn)行轉(zhuǎn)換時(shí),要考慮增加總線驅(qū)動(dòng),可用單片機(jī)端口在溫度轉(zhuǎn)換時(shí)導(dǎo)通一個(gè)modfet供電。連接ds18b20的總線電纜是有長(zhǎng)度限制的,因此在用ds18b20進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí),要充分考慮總線分布電容和阻抗匹配等問(wèn)題。在ds18b20測(cè)溫程序設(shè)計(jì)中,向ds18b20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待ds18b20的返回信號(hào),一旦某個(gè)ds18b20接觸不好或短線,當(dāng)程序讀該ds18b20時(shí),將沒(méi)有返回信號(hào),程序進(jìn)行死循環(huán),這一點(diǎn)在進(jìn)行ds18b20硬件連接和軟件設(shè)計(jì)時(shí)要給予一定的重視。5 儀器件清單 本次設(shè)計(jì)所涉及元器件都是基于我們的單片機(jī)開(kāi)發(fā)板,其中最重要的主控制器89c5

23、2和溫度傳感器ds18b20;顯示電路由8255擴(kuò)展四個(gè)數(shù)碼顯示管構(gòu)成。雖然運(yùn)用到的元器件不多,但是做的過(guò)程中還是非常的艱難每個(gè)器件的結(jié)構(gòu)和功能都很難以理解弄懂,具體運(yùn)用到的元器件如表4所示。表4 儀器清單stc89c52芯片1塊ds18b20溫度傳感器1個(gè)電源線1根電源充電器1個(gè)電阻18個(gè)8255擴(kuò)展芯片1塊數(shù)碼管4個(gè)9015電容6個(gè)6 總結(jié)與體會(huì)課程設(shè)計(jì)已經(jīng)結(jié)束了,雖然我們的課題比較難,但是我們還是通過(guò)大家的努力還是圓滿的完成了,通過(guò)這次課程設(shè)計(jì)期間使我對(duì)單片機(jī)課上所學(xué)到的知識(shí)有了更深的認(rèn)識(shí),并且把我們平時(shí)在電子這一方面所學(xué)到的知識(shí)有了一個(gè)綜合的運(yùn)用,使我們真正的從實(shí)踐掌握了80c51的各

24、方面的知識(shí)。首先,當(dāng)老師給我們每個(gè)小組分配下各自的課程設(shè)計(jì)的課題是,我的是“ds18b20數(shù)字溫度計(jì)的設(shè)計(jì)”,拿到課題當(dāng)時(shí),我是一臉茫然,根本就不知道應(yīng)該從何開(kāi)始下手,對(duì)此經(jīng)過(guò)我們組大家的商量,分配好各自的任務(wù),我們開(kāi)始收集關(guān)于這方面的資料,而且幸運(yùn)的是我們找到了和我們課題相關(guān)的設(shè)計(jì)方案,下午我們把各自所收集到資料在一起經(jīng)過(guò)研究,討論,終于對(duì)課題有了初步的了解和想法。接下來(lái)的幾天我們?nèi)匀皇菍W(xué)習(xí)關(guān)于我們這次試驗(yàn)中所用到的各個(gè)芯片,和對(duì)于整個(gè)課題的設(shè)計(jì)方法和思路,經(jīng)過(guò)我們的討論和商議終于確定了我們的實(shí)際方案。然后我們就開(kāi)始編寫(xiě)所用到程序,畫(huà)粗略的電路圖,編寫(xiě)程序的流程圖。當(dāng)然初次的程序存在很多的錯(cuò)

25、誤,通過(guò)我們的仔細(xì)的檢查,終于完成了。最后我們就是寫(xiě)試驗(yàn)報(bào)告,對(duì)我們這次課程設(shè)計(jì)做一個(gè)歸納,總結(jié)。圓滿的完成了這次課程設(shè)計(jì)。參考文獻(xiàn)1 張?chǎng)?單片機(jī)原理及應(yīng)用。 北京:電子工業(yè)出版社,20072 樓然苗,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)。 北京:北京航空航天大學(xué)出版社,20073 謝四蓮.單片機(jī)原理及應(yīng)用實(shí)驗(yàn)指導(dǎo)書(shū)。 婁底:湖南人文科技學(xué)研,20104 周潤(rùn)景,袁偉亭.proteus應(yīng)用。 北京: 電子工業(yè)出版社,20065 彭介華.電子技術(shù)課程設(shè)計(jì)指導(dǎo)。 北京:高等教育出版社,1997附錄一:詳細(xì)系統(tǒng)源程序#include#include#include#define uchar unsigned

26、 char#define uint unsigned intsbit beer=p33;bit flag;uchar temprt_h,temprt_l;uchar decimal;/定義18b20數(shù)據(jù)端口 sbit dq=p17;/共陽(yáng)級(jí)管顯碼 uchar display_code20=0xa0,0xbb,0x62,0x2a,/0,1,2,30x39,0x2c,0x24,0xba,/4,5,6,70x20,0x28,0x30,0x25,/8,9,a,b0xe4,0x23,0x64,0x74,/c,d,e,f0x7f,0xe5,0x31,0xff;/-,l,h,滅/ds18b20溫度傳感器 void delay(uint i)while(i-);/初始化ds18b20void init_ds18b20(void)uchar x=0;do dq=1; delay(1); dq=0; delay(80); dq=1; delay(5); x=dq; while(x);delay(15);/讀一個(gè)字節(jié)uchar read_18b20_byte(void)uchar

溫馨提示

  • 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)論