數(shù)字溫度的設計與實現(xiàn).doc_第1頁
數(shù)字溫度的設計與實現(xiàn).doc_第2頁
數(shù)字溫度的設計與實現(xiàn).doc_第3頁
數(shù)字溫度的設計與實現(xiàn).doc_第4頁
數(shù)字溫度的設計與實現(xiàn).doc_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學年論文(設計) 數(shù)字溫度測量電路的設計及實現(xiàn)(作者:JYQ) 摘要 本文提出了采用單總線數(shù)字式溫度傳感器DS18B20和單片機組成的數(shù)字溫度測量電路的設計。介紹了溫度傳感器DS18B20的結構、特點和工作原理,其靈敏度高,精度高,硬件電路簡單,可以直接與單片機相連。其次,設計了DS18B20和AT89C52單片機的溫度測量系統(tǒng)硬件電路和軟件編程,主要包括溫度采集、溫度顯示及報警控制等功能。整個系統(tǒng)具有結構簡單,測量精度高,傳輸距離遠,抗干擾能力強,溫度讀取方便和造價低等一系列優(yōu)點,適用于生產(chǎn)生活及科學研究中對溫度的測量,應用前景十分廣闊。關鍵詞 溫度測量;單片機;DS18B20溫度傳感器;LCD顯示Digital Temperature Measurement Circuit Design and ImplementationAuthor: JYQAbstract:The article proposes a single-bus digital temperature sensor DS18B20 and the design of microcontroller components digital temperature measurement circuit. The article describes the structure, characteristics and and working principle of temperature sensor DS18B20, its high sensitivity, high precision, and simple hardware circuit, can be directly connected with the microcontroller. Secondly, we designed the microcontroller DS18B20, AT89C52 temperature measurement hardware circuitry and software programming, including temperature acquisition, temperature display and alarm control and other functions. The whole system has advantages such as the simple structure, high accuracy, transmission distance, anti-interference ability, low cost and easy to read temperature, it can apply for the production of life and scientific research in the measurement of temperature, and it has a wide prospects of application.Key words:Temperature measurement; microcontroller; DS18B20 temperature sensor; LCD display 0 引言溫度是一個基本物理量,也是一個與人們的生活環(huán)境、生產(chǎn)活動密切相關的重要物理量。溫度檢測系統(tǒng)也已廣泛應用于諸多領域。單片機具有體積小,價格便宜,通用性和靈活性強的特點,利用單片機設計溫度測量系統(tǒng),既可以滿足功能要求,又經(jīng)濟實惠。數(shù)字溫度測量傳感器DS18B20是單一總線的高精度測量器件,它克服了以前模擬式傳感器與微機接口時需要的AD轉(zhuǎn)換器及其他復雜外圍電路的缺點。本文就是運用單片機及其接口和集成單總線溫度傳感器DS18B20構建一個數(shù)字溫度測量和顯示系統(tǒng),并且通過開關進行溫度上下限的設置,如果溫度超過設定值就會報警或進行相應的控制命令。設計的電路簡單,易于實現(xiàn),而且還具有一定的擴展功能,可以擴展成多點采集和更復雜的功能。1 系統(tǒng)方案論證方案一由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,將隨被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。方案二用溫度傳感器DS18B20,此傳感器可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,易滿足設計要求。比較以上兩方案,采用方案二,電路簡單,軟件設計也簡單。2 系統(tǒng)硬件設計整個系統(tǒng)主要由主控中心(單片機)、溫度傳感器DS18B20、及數(shù)碼管顯示等功能模塊組成??梢酝ㄟ^調(diào)節(jié)DS18B20報警溫度的上下限,既可以使上下限增加,也可以使上下限減小,這樣就可以用于不同場合,系統(tǒng)的框圖如圖2.1所示。AT89C52DS18B20溫度傳感器溫度顯示報警系統(tǒng)圖2.1 系統(tǒng)硬件框圖2.1 溫度傳感器DS18B20 LSBMSB111100110DS18B20是美國Dallas半導體公司生產(chǎn)的數(shù)字式溫度傳感器,提供9位溫度讀數(shù),指示溫度。溫度信息通過單線接口送入DS18B20或者從DS18B20送出,所以從處理器到DS18B20僅需連接一條線。讀、寫和完成溫度變換所需的電源可以由數(shù)據(jù)本身提供,而不需要外部電源。這使得DS18B20與單片機接口變得很簡單,克服了模擬式傳感器與微機接口時需要的AD轉(zhuǎn)換及其他復雜外圍電路的缺點,而且它具有結構簡單、成本低、體積小、抗干擾能力強、使用簡單等優(yōu)點。最重要的是DS18B20的ROM中存有其芯片的惟一標識碼,即任意兩個DS18B20的標識碼是不同的,特別適合與微處理芯片構成多點溫度測量控制系統(tǒng)。DS18B20是DS1820的改進型,分辨率為912位可編程控制,由其寄存器R0,R1的兩位狀態(tài)決定。測量范圍從-55+125,在-1085范圍內(nèi)誤差為0.5。DS18B20在內(nèi)部以時鐘周期個數(shù)計數(shù)來測量溫度,并且提供0.5的分辨率。溫度讀數(shù)以16位、符號擴展的二進制補碼讀數(shù)形式提供。需要注意的是在DS18B20中溫度以1/2LSB(最低有效位)形式表示時,產(chǎn)生以下9位格式:LSBMSB1111001102.1.1 DS18B20初始化時序圖主機首先發(fā)出一個480-960us的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480us時間內(nèi)對總線進行檢測,如果有低電平出現(xiàn)說明總線上有器件已做出應答,若無低電平出現(xiàn)一直都是高電平說明總線上無器件應答。作為從器件的DS18B20在一上電后就一直在檢測總線上是否有480-960us的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待15-60us后將總線電平拉低60-240us做出響應存在脈沖,告訴主機該器件已做好準備,若沒有檢測到就一直在檢測等待。圖2.2 初始化時序圖2.1.2 DS18B20寫數(shù)據(jù)時序圖寫周期最少為60us,最長不超過120us,寫周期一開始作為主機先把總線拉低1us表示寫周期開始,隨后若主機想寫0,則繼續(xù)拉低電平最少60us直至寫周期結束,然后釋放總線為高電平;若主機想寫1,在一開始拉低總線電平1us后就釋放總線為高電平,一直到寫周期結束。而作為從機的DS18B20則在檢測到總線被拉低后等待15us然后從15us到45us開始對總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。圖2.3 寫數(shù)據(jù)時序圖2.1.3 DS18B20讀數(shù)據(jù)時序圖對于讀數(shù)據(jù)操作時序也分為讀0時序和讀1時序兩個過程,讀時序是從主機把單總線拉低之后,在1us之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在檢測到總線被拉低1us后,便開始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結束;若要送出1則釋放總線為高電平。主機在一開始拉低總線1us后釋放總線,然后在包括前面的拉低總線電平1us在內(nèi)的15us時間內(nèi)完成對總線進行采樣檢測,采樣期內(nèi)總線為低電平則確認為0,采樣期內(nèi)總線為高電平則確認為1,完成一個讀時序過程,至少需要60us才能完成。圖2.4 讀數(shù)據(jù)時序圖2.2 溫度和報警系統(tǒng)系統(tǒng)主要采用的是1602LCD液晶顯示測量的溫度值,由發(fā)光二極管和蜂鳴器進行報警。如果測的溫度值高于設定值1,報警系統(tǒng)就會報警(發(fā)光二極管點亮,蜂鳴器鳴響)。這樣可以從聲音和視覺上收到系統(tǒng)的警報。2.3 顯示電路顯示電路采用1602LCD液晶顯示,P0口作為液晶顯示器的數(shù)據(jù)端口,讀寫端口,使能端分別連接單片機P2.5,P2.6,P2.7口,如圖2.5所示:圖2.5 顯示電路3 系統(tǒng)軟件設計系統(tǒng)開始工作時,首先進行IO口初始化、報警值初始化,由單片機控制軟件發(fā)出溫度讀取指令,通過數(shù)字溫度傳感器DS18B20采集當前溫度值,轉(zhuǎn)換后經(jīng)過單總線傳輸給單片機,單片機經(jīng)過處理由1602LCD顯示,如果超出設置的報警值1,系統(tǒng)就會報警(發(fā)光二極管點亮、蜂鳴器鳴響)。系統(tǒng)的軟件部分主要是由讀寫DB18B20程序、顯示程序和報警系統(tǒng)三部分組成,主程序流程圖如圖3.1所示。報警值的設置初始化DS18B20讀出溫度值處理顯示刷新比較報警值結束溫度的轉(zhuǎn)換開機顯示“85”圖3.1 主程序流程圖3.1讀溫度程序流程讀出溫度子程序的主要功能是讀出RAM的2字節(jié),讀出溫度的低八位和高八位,在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫,其程序流程圖如圖3.2所示:初始化發(fā)跳過ROM指令開始溫度轉(zhuǎn)換延時2ms初始化寫入跳過ROM、讀取暫存器和CRC字節(jié)指令讀取溫度的低八位和高八位取中間八位結束圖3.2 讀溫度程序圖3.2 寫時序子程序流程延時10usdat&0x01dat1de延時40us結束DQ=0DQ=1圖3.3 寫時序子程序流程圖4 系統(tǒng)聯(lián)調(diào)與仿真結果高于70報警電路仿真如下圖:圖4.1 高于70報警電路仿真圖低于-10報警電路仿真如下圖: 圖4.2 低于20報警電路仿真圖正常溫度顯示電路圖:圖4.3 無報警時仿真圖5 結論與展望在深入分析了數(shù)字溫度測量電路原理的基礎上,完成了該系統(tǒng)的設計任務,該設計以單總線為基本結構,采用AT89C51單片機實現(xiàn)與DS18B20的總線接口,并提供具體電路設計。軟件編程采用模塊化、結構化思想,便于修改和維護,而且系統(tǒng)結構簡單,成本低廉。但由于時間和精力有限,對于該電路的設計還應在應用軟件方面逐步完善。DS18B20還可以在遠距離多點測溫控制方面進行應用開發(fā),具有很好的發(fā)展前景。6設計體會通過這次對數(shù)字溫度計的設計,讓我了解了設計電路的程序,也讓我了解了關于數(shù)字溫度計的原理與設計理念,要設計一個完整的電路總要經(jīng)過多次的失敗才能成功,在設計中,也遇到了許多匪夷所思的問題,我深刻認識到,在以后的學習中,要理論聯(lián)系實際,把所學的理論知識用到實際中,學習單片機更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高。這次學年論文設計是我的又一次全新的嘗試,也是一個小小的成功,更是一次很好的鍛煉,讓我有了全方位的提高和進步。參考文獻1 于永,戴佳等.51單片機實例精講. 電子工業(yè)出版社.2 薛慶軍,張秀娟等. 單片機原理實驗教程. 北京航天航空大學出版社.3 馬忠梅,張凱等. 單片機C語言應用程序設計(第四版). 北京航天航空大學出版社.4 何立民. 單片機應用技術選編M. 北京:北京航空航天大學出版社,2004.5 李業(yè)德. 單片機和DS18B20組成的多點溫度測控系統(tǒng)N.山東理工大學學報,2001,(12).附錄:程序如下:#include#include#include#define uchar unsigned char #define uint unsigned intsbit DQ = P37;sbit beep= P15;sbit RS = P26;sbit RW = P25;sbit EN = P27;sbit led=P16;uint T, negativeflag;char tempH=70,tempL=10; /設置上下限溫度,以便上下限溫度(-10C120C)可調(diào)uchar num16;uchar code num1=0123456789;uchar code table=temperature:;void Feng_led(uint t,uint n ); /聲明函數(shù)void Delayms(uint ms) uchar i;while(ms-) for(i=0;i0;i-) DQ = 0; / 給脈沖信號 dat=1; DQ = 1; / 給脈沖信號 if(DQ) dat|=0x80; delay_18B20(4); return(dat);void WriteOneChar(uchar dat) /寫一個字節(jié) uchar i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat=1; uint ReadTemperature(void) /讀取溫度并轉(zhuǎn)換uchar a=0;uchar b=0; uint t=0,temp,result;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號列號的操作WriteOneChar(0x44); / 啟動溫度轉(zhuǎn)換delay_18B20(100);Init_DS18B20();WriteOneChar(0xCC); /跳過讀序號列號的操作WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀9個寄存器)前兩個就是溫度a=ReadOneChar();b=ReadOneChar();temp=b;temp=(temp8)+a;negativeflag=(b&0xf8);/檢查負標志 if(negativeflag=0)num0=0x20; /“+”位不顯示 result=temp*0.625; else num0=0x2d;/負號顯示位 temp=temp+1; result=temp*0.625+0.5; return( result );/*LCD顯示器的是否忙判定*/uchar Busy_Check() uchar LCD_Status; P0=0x00;RS = 0;RW = 1;EN = 1;Delayms(1); LCD_Status = P0;/rs=0,rw=1,db7=fb=1表示LCD忙碌無法接收數(shù)據(jù)或指令EN = 0;return LCD_Status;/*LCD顯示器寫指令*/void Write_LCD_Command(uchar cmd) while(Busy_Check()&0x80)=0x80);RS = 0;RW = 0;EN = 0;P0 = cmd;EN = 1;Delayms(1);EN = 0;/*LCD顯示器的初始化*/void Initialize_LCD() Write_LCD_Command(0x38); /*db4=dl=1設置總線數(shù)位為8,否則為4位;db3=n=1顯示兩行,否則1行;db2=f=0=5*7點陣/每字符,1=5*10點陣/每字符*/ Delayms(1); Write_LCD_Command(0x01); /清屏 Delayms(1); Write_LCD_Command(0x06); /*db1=I/D=1寫入新數(shù)據(jù)后光標右移,db0=s=0寫 入新數(shù)據(jù)后顯示屏不移動。否則整體右移一個字*/ Delayms(1);Write_LCD_Command(0x0c); /*db2=d=1顯示功能開;db1=c=0無光標;db0=b=0光標閃爍*/ Delayms(1);/*LCD顯示器的初始化寫指令*/void Write_LCD_Data(uchar dat) while(Busy_Check()&0x80)=0x80);RS = 1; /0輸入指令,1輸入數(shù)據(jù)RW = 0;/0向LCD寫入指令或數(shù)據(jù),1從LCD

溫馨提示

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

評論

0/150

提交評論