




已閱讀5頁,還剩10頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學年論文(設計) 數字溫度測量電路的設計及實現(作者:JYQ) 摘要 本文提出了采用單總線數字式溫度傳感器DS18B20和單片機組成的數字溫度測量電路的設計。介紹了溫度傳感器DS18B20的結構、特點和工作原理,其靈敏度高,精度高,硬件電路簡單,可以直接與單片機相連。其次,設計了DS18B20和AT89C52單片機的溫度測量系統硬件電路和軟件編程,主要包括溫度采集、溫度顯示及報警控制等功能。整個系統具有結構簡單,測量精度高,傳輸距離遠,抗干擾能力強,溫度讀取方便和造價低等一系列優點,適用于生產生活及科學研究中對溫度的測量,應用前景十分廣闊。關鍵詞 溫度測量;單片機;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 引言溫度是一個基本物理量,也是一個與人們的生活環境、生產活動密切相關的重要物理量。溫度檢測系統也已廣泛應用于諸多領域。單片機具有體積小,價格便宜,通用性和靈活性強的特點,利用單片機設計溫度測量系統,既可以滿足功能要求,又經濟實惠。數字溫度測量傳感器DS18B20是單一總線的高精度測量器件,它克服了以前模擬式傳感器與微機接口時需要的AD轉換器及其他復雜外圍電路的缺點。本文就是運用單片機及其接口和集成單總線溫度傳感器DS18B20構建一個數字溫度測量和顯示系統,并且通過開關進行溫度上下限的設置,如果溫度超過設定值就會報警或進行相應的控制命令。設計的電路簡單,易于實現,而且還具有一定的擴展功能,可以擴展成多點采集和更復雜的功能。1 系統方案論證方案一由于本設計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應,將隨被測溫度變化的電壓或電流采集過來,進行A/D轉換后,就可以用單片機進行數據的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩。方案二用溫度傳感器DS18B20,此傳感器可以很容易直接讀取被測溫度值,進行轉換,易滿足設計要求。比較以上兩方案,采用方案二,電路簡單,軟件設計也簡單。2 系統硬件設計整個系統主要由主控中心(單片機)、溫度傳感器DS18B20、及數碼管顯示等功能模塊組成。可以通過調節DS18B20報警溫度的上下限,既可以使上下限增加,也可以使上下限減小,這樣就可以用于不同場合,系統的框圖如圖2.1所示。AT89C52DS18B20溫度傳感器溫度顯示報警系統圖2.1 系統硬件框圖2.1 溫度傳感器DS18B20 LSBMSB111100110DS18B20是美國Dallas半導體公司生產的數字式溫度傳感器,提供9位溫度讀數,指示溫度。溫度信息通過單線接口送入DS18B20或者從DS18B20送出,所以從處理器到DS18B20僅需連接一條線。讀、寫和完成溫度變換所需的電源可以由數據本身提供,而不需要外部電源。這使得DS18B20與單片機接口變得很簡單,克服了模擬式傳感器與微機接口時需要的AD轉換及其他復雜外圍電路的缺點,而且它具有結構簡單、成本低、體積小、抗干擾能力強、使用簡單等優點。最重要的是DS18B20的ROM中存有其芯片的惟一標識碼,即任意兩個DS18B20的標識碼是不同的,特別適合與微處理芯片構成多點溫度測量控制系統。DS18B20是DS1820的改進型,分辨率為912位可編程控制,由其寄存器R0,R1的兩位狀態決定。測量范圍從-55+125,在-1085范圍內誤差為0.5。DS18B20在內部以時鐘周期個數計數來測量溫度,并且提供0.5的分辨率。溫度讀數以16位、符號擴展的二進制補碼讀數形式提供。需要注意的是在DS18B20中溫度以1/2LSB(最低有效位)形式表示時,產生以下9位格式:LSBMSB1111001102.1.1 DS18B20初始化時序圖主機首先發出一個480-960us的低電平脈沖,然后釋放總線變為高電平,并在隨后的480us時間內對總線進行檢測,如果有低電平出現說明總線上有器件已做出應答,若無低電平出現一直都是高電平說明總線上無器件應答。作為從器件的DS18B20在一上電后就一直在檢測總線上是否有480-960us的低電平出現,如果有,在總線轉為高電平后等待15-60us后將總線電平拉低60-240us做出響應存在脈沖,告訴主機該器件已做好準備,若沒有檢測到就一直在檢測等待。圖2.2 初始化時序圖2.1.2 DS18B20寫數據時序圖寫周期最少為60us,最長不超過120us,寫周期一開始作為主機先把總線拉低1us表示寫周期開始,隨后若主機想寫0,則繼續拉低電平最少60us直至寫周期結束,然后釋放總線為高電平;若主機想寫1,在一開始拉低總線電平1us后就釋放總線為高電平,一直到寫周期結束。而作為從機的DS18B20則在檢測到總線被拉低后等待15us然后從15us到45us開始對總線采樣,在采樣期內總線為高電平則為1,若采樣期內總線為低電平則為0。圖2.3 寫數據時序圖2.1.3 DS18B20讀數據時序圖對于讀數據操作時序也分為讀0時序和讀1時序兩個過程,讀時序是從主機把單總線拉低之后,在1us之后就得釋放單總線為高電平,以讓DS18B20把數據傳輸到單總線上。DS18B20在檢測到總線被拉低1us后,便開始送出數據,若是要送出0就把總線拉為低電平直到讀周期結束;若要送出1則釋放總線為高電平。主機在一開始拉低總線1us后釋放總線,然后在包括前面的拉低總線電平1us在內的15us時間內完成對總線進行采樣檢測,采樣期內總線為低電平則確認為0,采樣期內總線為高電平則確認為1,完成一個讀時序過程,至少需要60us才能完成。圖2.4 讀數據時序圖2.2 溫度和報警系統系統主要采用的是1602LCD液晶顯示測量的溫度值,由發光二極管和蜂鳴器進行報警。如果測的溫度值高于設定值1,報警系統就會報警(發光二極管點亮,蜂鳴器鳴響)。這樣可以從聲音和視覺上收到系統的警報。2.3 顯示電路顯示電路采用1602LCD液晶顯示,P0口作為液晶顯示器的數據端口,讀寫端口,使能端分別連接單片機P2.5,P2.6,P2.7口,如圖2.5所示:圖2.5 顯示電路3 系統軟件設計系統開始工作時,首先進行IO口初始化、報警值初始化,由單片機控制軟件發出溫度讀取指令,通過數字溫度傳感器DS18B20采集當前溫度值,轉換后經過單總線傳輸給單片機,單片機經過處理由1602LCD顯示,如果超出設置的報警值1,系統就會報警(發光二極管點亮、蜂鳴器鳴響)。系統的軟件部分主要是由讀寫DB18B20程序、顯示程序和報警系統三部分組成,主程序流程圖如圖3.1所示。報警值的設置初始化DS18B20讀出溫度值處理顯示刷新比較報警值結束溫度的轉換開機顯示“85”圖3.1 主程序流程圖3.1讀溫度程序流程讀出溫度子程序的主要功能是讀出RAM的2字節,讀出溫度的低八位和高八位,在讀出時需進行CRC校驗,校驗有錯時不進行溫度數據的改寫,其程序流程圖如圖3.2所示:初始化發跳過ROM指令開始溫度轉換延時2ms初始化寫入跳過ROM、讀取暫存器和CRC字節指令讀取溫度的低八位和高八位取中間八位結束圖3.2 讀溫度程序圖3.2 寫時序子程序流程延時10usdat&0x01dat1de延時40us結束DQ=0DQ=1圖3.3 寫時序子程序流程圖4 系統聯調與仿真結果高于70報警電路仿真如下圖:圖4.1 高于70報警電路仿真圖低于-10報警電路仿真如下圖: 圖4.2 低于20報警電路仿真圖正常溫度顯示電路圖:圖4.3 無報警時仿真圖5 結論與展望在深入分析了數字溫度測量電路原理的基礎上,完成了該系統的設計任務,該設計以單總線為基本結構,采用AT89C51單片機實現與DS18B20的總線接口,并提供具體電路設計。軟件編程采用模塊化、結構化思想,便于修改和維護,而且系統結構簡單,成本低廉。但由于時間和精力有限,對于該電路的設計還應在應用軟件方面逐步完善。DS18B20還可以在遠距離多點測溫控制方面進行應用開發,具有很好的發展前景。6設計體會通過這次對數字溫度計的設計,讓我了解了設計電路的程序,也讓我了解了關于數字溫度計的原理與設計理念,要設計一個完整的電路總要經過多次的失敗才能成功,在設計中,也遇到了許多匪夷所思的問題,我深刻認識到,在以后的學習中,要理論聯系實際,把所學的理論知識用到實際中,學習單片機更是如此,程序只有在經常的寫與讀的過程中才能提高。這次學年論文設計是我的又一次全新的嘗試,也是一個小小的成功,更是一次很好的鍛煉,讓我有了全方位的提高和進步。參考文獻1 于永,戴佳等.51單片機實例精講. 電子工業出版社.2 薛慶軍,張秀娟等. 單片機原理實驗教程. 北京航天航空大學出版社.3 馬忠梅,張凱等. 單片機C語言應用程序設計(第四版). 北京航天航空大學出版社.4 何立民. 單片機應用技術選編M. 北京:北京航空航天大學出版社,2004.5 李業德. 單片機和DS18B20組成的多點溫度測控系統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)可調uchar num16;uchar code num1=0123456789;uchar code table=temperature:;void Feng_led(uint t,uint n ); /聲明函數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) /寫一個字節 uchar i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat=1; uint ReadTemperature(void) /讀取溫度并轉換uchar a=0;uchar b=0; uint t=0,temp,result;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號列號的操作WriteOneChar(0x44); / 啟動溫度轉換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忙碌無法接收數據或指令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設置總線數位為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寫入新數據后光標右移,db0=s=0寫 入新數據后顯示屏不移動。否則整體右移一個字*/ 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輸入數據RW = 0;/0向LCD寫入指令或數據,1從LCD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年年石化倉儲項目投資申請報告代可行性研究報告
- 2024年短周期地震計項目投資申請報告代可行性研究報告
- 保健按摩師合集練習測試題附答案
- 2024年新課標Ⅰ卷英語真題(含聽力)(純答案版)
- 社會學的未來發展方向試題及答案
- 電焊考試題講解及答案
- 山東省gcp考試試題及答案
- 移動l1基站認證考試試題及答案
- 新時代中國的社會變革試題及答案
- 點外賣面試題目及答案
- 電飯煲檢測大綱
- 勞動合同書電子版pdf正規范本(通用版)
- JGJT10-2011 混凝土泵送技術規程
- 自發性腎破裂的護理查房
- 醫院保潔、中央運輸服務投標方案(技術方案)
- 房屋維修工程應急施工方案
- 人教版小學道德與法治二年級下冊第二單元《我們好好玩》作業設計
- 辦公家具供貨安裝、保障實施及售后服務方案
- 研究生高分論文寫作(下篇)
- 精益改善周五階段
- 《AutoCAD機械繪圖課件》課件-8-25-3 普通平鍵連接的畫法
評論
0/150
提交評論