基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第1頁
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第2頁
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第3頁
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第4頁
基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)課程設(shè)計(jì)報(bào)告單片機(jī)課程設(shè)計(jì)報(bào)告 姓 名: 學(xué) 號(hào): 班 級(jí): 學(xué) 院:機(jī)電學(xué)院 指導(dǎo)老師:基于單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)摘 要:本文介紹一種基于AT89S51單片機(jī)的一種溫度測(cè)量電路,該電路采用DS18B20作為溫度監(jiān)測(cè)元件,測(cè)量范圍099,使用2位LED模塊顯示。正文著重給出了軟硬件系統(tǒng)的各部分電路,介紹了集成溫度傳感器DS18B20的原理,AT89S51單片機(jī)功能和應(yīng)用。該電路設(shè)計(jì)新穎、功能強(qiáng)大、結(jié)構(gòu)簡單。關(guān)鍵詞:溫度測(cè)量 DS18B20 AT89S52目 錄1前言··········&#

2、183;·················································&#

3、183;·32方案設(shè)計(jì)···············································&#

4、183;··········33 系統(tǒng)的硬件設(shè)計(jì)·····································

5、3;··············4 3.1 主控制器··································

6、···················4 3.2 顯示電路·····························&#

7、183;························5 3.3 溫度傳感器工作原理·······················

8、;·····················6 3.4 溫度傳感器接口電路··························&#

9、183;·················94 系統(tǒng)的軟件設(shè)計(jì)······························

10、3;·····················9 4.1 主流程圖···························

11、···························9 4.2 主程序·····················

12、83;·································105 總結(jié)···············

13、83;·············································16參考文獻(xiàn)···

14、83;·················································

15、83;·····171 前言數(shù)字溫度計(jì)(Digital Thermometer)簡稱DTM,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的溫度值轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。傳統(tǒng)的溫度計(jì)功能單一、精度低,不能滿足數(shù)字化時(shí)代的需求,采用單片機(jī)的數(shù)字溫度計(jì),由于精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便得到了廣泛的應(yīng)用。溫度是許多監(jiān)控系統(tǒng)中的一個(gè)重要參數(shù)。DS18B20直接把溫度信息轉(zhuǎn)換成相應(yīng)的數(shù)字信號(hào)。數(shù)據(jù)采集、處理模塊主要由AT89S52單片機(jī)構(gòu)成,完成溫度數(shù)據(jù)的讀取和顯示。本文將介紹智能集成溫度傳感器DS18B20的結(jié)構(gòu)特征及控制方法,并對(duì)

16、AT89S51單片機(jī)為控制器構(gòu)成的數(shù)字溫度測(cè)量裝置的工作原理及程序設(shè)計(jì)作了詳細(xì)的介紹。2方案設(shè)計(jì)本設(shè)計(jì)主要是介紹了單片機(jī)控制下的溫度檢測(cè)系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對(duì)其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:l 利用溫度傳感器(DS18B20)測(cè)量某一點(diǎn)環(huán)境溫度l 測(cè)量范圍為099,精度為1l 用數(shù)碼管進(jìn)行實(shí)際溫度值顯示采用AT89S51單片機(jī)P3 .7口控制溫度傳感器DS18B20的溫度測(cè)量,以兩位數(shù)碼感形式輸出測(cè)量溫度,原理圖如下圖2.1所示:圖2.1 DS18B20與單片機(jī)接口圖2.2總體設(shè)計(jì)方框圖3 系統(tǒng)的硬件設(shè)計(jì)3.1 主控制器 AT89S51 是一種低功耗、高性能CM

17、OS8位微控制器,具有4K在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S51為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。AT89S51具有以下標(biāo)準(zhǔn)功能: 4k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,AT89S51 可降至0H

18、z 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷為止。8 位微控制器 4K 字節(jié)在系統(tǒng)可編程 Flash AT89S51圖3.1 時(shí)鐘電路3.2 顯示電路 顯示采用2位數(shù)碼管,圖3.2.1為數(shù)碼管段驅(qū)動(dòng),圖3.2.2為數(shù)碼管位驅(qū)動(dòng),圖3.2.3為溫度顯示電路圖3.2.1 數(shù)碼管段驅(qū)動(dòng)圖3.2.2 數(shù)碼管位驅(qū)動(dòng)圖3.2.3溫度顯示電路3.3 溫度傳感器工作原理DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫

19、度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下: 獨(dú)特的單線接口僅需一個(gè)端口引腳進(jìn)行通訊 簡單的多點(diǎn)分布應(yīng)用 無需外部器件 可通過數(shù)據(jù)線供電 零待機(jī)功耗 溫度以9 位數(shù)字量讀出 溫度數(shù)字量轉(zhuǎn)換時(shí)間200ms(典型值)DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖 3.3.1所示,DQ 為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源;GND為地信號(hào)

20、;VDD為可選擇的VDD引腳。當(dāng)工作于寄生電源時(shí),此引腳必須接地。其電路圖 3.3.2所示。 圖 3.3.1外部封裝形式 圖3.3.2傳感器電路圖DS18B20的測(cè)溫原理如圖3.3.3所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B20就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖后進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測(cè)量.計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測(cè)量前,首先將-55 所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1和溫度寄存器中,減法計(jì)數(shù)

21、器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重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫圖2中的斜率累加器用于補(bǔ)償和修正測(cè)溫過程中的非線性其輸出用,于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測(cè)溫度值,這就是DS18B20的測(cè)溫原理。另外,由于DS18B20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,

22、因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。圖3.3.3 DS18B20測(cè)溫原理圖在正常測(cè)溫情況下,DS1820的測(cè)溫分辨力為0.5,可采用下述方法獲得高分辨率的溫度測(cè)量結(jié)果:首先用DS1820提供的讀暫存器指令(BEH)讀出以0.5為分辨率的溫度測(cè)量結(jié)果,然后切去測(cè)量結(jié)果中的最低有效位(LSB),得到所測(cè)實(shí)際溫度的整數(shù)部分Tz,然后再用BEH指令取計(jì)數(shù)器1的計(jì)數(shù)剩余值Cs和每度計(jì)數(shù)值CD。考慮到DS1820測(cè)量溫度的整數(shù)部分以0.25、0.75為進(jìn)位界限的關(guān)系,實(shí)際溫度Ts可用下式計(jì)

23、算: Ts=(Tz-0.25)+(CD-Cs)/CD 3.4 溫度傳感器接口電路圖3.4.1溫度傳感器接口電路4 系統(tǒng)的軟件設(shè)計(jì)4.1 主流程圖 主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理測(cè)量的當(dāng)前溫度值,其程序流程見圖.Y發(fā)DS18B20復(fù)位命令發(fā)跳過ROM命令發(fā)讀取溫度命令讀取操作,CRC校驗(yàn)9字節(jié)完?CRC校驗(yàn)正?確?移入溫度暫存器結(jié)束NNY初始化調(diào)用顯示子程序1S到?初次上電讀出溫度值溫度計(jì)算處理顯示數(shù)據(jù)刷新發(fā)溫度轉(zhuǎn)換開始命令NYNY 圖4.1.1主程序流程圖圖4.1.2讀溫度流程圖 4.2 主程序#include <reg52.h>#define ulong uns

24、igned long#define uint unsigned int#define uchar unsigned charuchar code led= 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x02,0x00 ; /數(shù)碼管碼表uchar disp4=1,2,3,4; /數(shù)碼管顯示緩沖區(qū) /數(shù)碼管位選P1低四位,段選P0sbit LOCK=P14; /74573鎖存端sbit DQ=P35; /DS18B20數(shù)據(jù)端uchar templow; /溫度值低字節(jié)uchar t

25、emphigh; /溫度值高字節(jié)char tempzheng; /溫度值整數(shù)void Delay(uint x);void Display();void TxReset();void RxWait();bit RdBit();uchar RdByte();void WrBit(bit b);void WrByte(uchar d);void Convert();void RdTemp();sbit ACC0 = ACC0;sbit ACC7 = ACC7;/*- 主函數(shù) -*/void main()while(1)Convert(); /調(diào)用啟動(dòng)溫度轉(zhuǎn)換函數(shù)RdTemp(); /調(diào)用讀取溫度值

26、函數(shù)/*- 初始化DS18B20 -*/void TxReset() uint i;DQ=0;/發(fā)送復(fù)位脈沖i=100;while(i>0) i-; /拉低900us DQ=1; /釋放總線i=4;while(i>0) i-;/*- 等待DS18B20應(yīng)答 -*/void RxWait() uint i;while(DQ); /等待15-60uswhile(DQ); /DS18B20發(fā)出存在脈沖60-240usi=4;while(i>0) i-;/*- 讀取一位數(shù)據(jù) -*/bit RdBit()uchar i;bit b;DQ = 0; /讀開始1usi+;DQ = 1; /

27、產(chǎn)生讀時(shí)間隙15usi+;i+;b = DQ; /讀位i = 8;while(i>0) i-; /等待60usDQ = 1; /釋放總線return b;/*- 讀取字節(jié)數(shù)據(jù) -*/uchar RdByte()uchar i,j,d;d=0;for(i=0;i<8;i+) /各位由低向高讀出DS18B20j=RdBit();d=(j<<7)|(d>>1);return d;/*- 寫入字節(jié)數(shù)據(jù) -*/void WrByte(uchar d)uint i;uchar j;bit btmp;for(j=0;j<8;j+) /各位由低向高寫入DS18B20b

28、tmp=d&0x01;d=d>>1;if(btmp) /寫1DQ=0; /延時(shí)15usi+;i+;DQ=1; /寫1時(shí)隙不低于60ui=8;while(i>0) i-;else /寫0DQ=0;i=8;while(i>0) i-; /保持低電平60us到120usDQ=1; /釋放總線i+;i+;/*- 啟動(dòng)溫度轉(zhuǎn)換 -*/void Convert()uint i;Delay(125); /延時(shí)1msTxReset(); /初始化DS18B20RxWait(); /等待DS18B20應(yīng)答Delay(125); /延時(shí)WrByte(0xcc); /跳過ROM命令W

29、rByte(0x44); /溫度轉(zhuǎn)換命令for(i=0;i<250;i+) /延時(shí)1sDisplay();/*- 讀取溫度值 -*/void RdTemp(void)short int temp;uint x;bit flag = 1;TxReset(); /初始化DS18B20RxWait(); /等待DS18B20應(yīng)答Delay(125); /延時(shí)WrByte(0xcc); /跳過ROM命令WrByte(0xbe); /讀暫存存儲(chǔ)器命令temphigh = RdByte(); /溫度值高字節(jié)temp = (temphigh << 8) | templow; /溫度為16位補(bǔ)碼if(temp<0) /負(fù)溫度flag = 0;temp = temp + 1;tempzheng = temp >> 4; /溫度值整數(shù) x = temp & 0x000f; if(flag) disp0 = tempzheng/100; /百位else disp0 = 16;disp1 = (tempzheng%100)/10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論