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

下載本文檔

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

文檔簡介

1、單片機課程設(shè)計報告題目:基于單片機的數(shù)字溫度計設(shè)計教 學 系:*年級、專業(yè):2010級電子科學和技術(shù)(1)班姓名學號:二*指導教師:*完成時間: 2012年6月基于單片機的數(shù)字溫度計設(shè)計作者:* 指導老師:*(年級專業(yè):2010級電子科學和技術(shù)一班)摘 要:本文介紹一種基于 AT89S52單片機的一種溫度測量及報警電路,該電路采用DS18B20作為溫度監(jiān)測元件,測量范圍 -55C-1+125C,使用4位LED模塊顯示,能通過鍵 盤設(shè)置溫度報警上下限。 正文著重給出了軟硬件系統(tǒng)的各部分電路, 介紹了集成溫度傳感器 DS18B20的原理,AT89S52單片機功能和使用。該電路設(shè)計新穎、功能強大、結(jié)

2、構(gòu)簡單。關(guān)鍵詞:溫度測量 DS18B20 AT89S52Abstract : The introduction of a cost-based AT89S52 MCU a temperatur measurement circuits, the circuits used DS18B20 high-precision temperatur sensor , measuring scope -55 C -單片機課程設(shè)計報告+125 C ,can use the keybord set the warning limitation, the use of four bits seven segme

3、nts LED that can be display the current temperature. The paper focuses on providing a software and hardware system components circuit, introduced the theory of DS18B20, the founctions and applications of AT89S52 .This circuit design innovative, powerful, can be expansionary strong. Key Words : Tempe

4、ratur measurement DS18B20 AT89S52目 錄1前言32方案設(shè)計33系統(tǒng)的硬件設(shè)計43.1 主控制器43.2 顯示電路53.3 溫度傳感器工作原理63.4 溫度傳感器接口電路94系統(tǒng)的軟件設(shè)計94.1 主程序94.2 溫度測量94.2.1 初始化 DS18B2094.2.2 等待應答信號104.2.3 DS18B2瞇字節(jié)104.2.4 DS18B20W字節(jié)114.2.5 啟動溫度測量124.2.6 讀取測量結(jié)果134.2.7 各算法流程圖144.3 數(shù)碼管顯示155系統(tǒng)的測試和總結(jié)165.1 測試時的圖片165.2 總結(jié)17參考文獻18致謝詞19附錄1原理圖20附錄

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

6、度測量裝置的工作原理及程序設(shè)計 作了詳細的介紹。該設(shè)計控制器使用ATME公司的AT89S52單片機,測溫傳 感器使用DALLAS司DS18B20用數(shù)碼管來實現(xiàn)溫度顯示。2方案設(shè)計本設(shè)計主要是介紹了單片機控制下的溫度檢測系統(tǒng),詳細介紹了其硬件和軟 件設(shè)計,并對其各功能模塊做了詳細介紹,其主要功能和指標如下:利用溫度傳感器(DS18B20測量某一點環(huán)境溫度測量范圍為-55C+ 125,精度為± 0.5 C用數(shù)碼管進行實際溫度值顯示采用AT89S52單片機P3.5 口控制溫度傳感器DS18B20勺溫度測量,以四位 數(shù)碼感形式輸出測量溫度,原理圖如下圖 2.1所示: Cl I 110圖2.1

7、 DS18B20和單片機接口單片機復位LED顯示七時鐘振蕩溫 度 傳 感 器圖2.2總體設(shè)計方框圖3系統(tǒng)的硬件設(shè)計3.1主控制器AT89S52是一種低功耗、高性能CMOS的微控制器,具有8K在系統(tǒng)可 編程Flash存儲器。使用 Atmel公司高密度非易失性存儲器技術(shù)制造, 和工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash ,使得AT89S52為眾多嵌入式控制使用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節(jié)Flash , 256字節(jié)RAM 32 位I/O 口線

8、,看門狗定時器, 2個 數(shù)據(jù)指針,三個16位 定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工 用行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,RAM內(nèi)容被保存, 振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。8位微控制器8K字節(jié)在系統(tǒng)可編程 Flash AT89S52FW 1111 3F12 3P3 4Pl飛 3百( rie 7Fl#總nrriimTHTQJ。FiorrPll/T0 12 3popopopo4 5 6 7PDPOP

9、OPO算加Qas pci37 即23& FW35 . P04E4困532 FO7R2910kTMS 9IbTTlINTOTlTOEA/VPXIX2RESET豆d- 5 6 72 2 2 2p p p pRXDTXD ALEFSENAT3PS52圖3.1時鐘電路和復位電路3.2顯示電路21 FZJ22 FQ12M I、24匕占25 ?加 東一市云27 ry:23 P2710 FM0LI TX口 配一 &LE顯示采用4位數(shù)碼管,圖3.2.1為數(shù)碼管段驅(qū)動,圖3.2.2為數(shù)碼 管位驅(qū)動,圖3.2.3為溫度顯示電路VCCO戶】m J6P00 2VCC PU1、P02 4P03 5P04

10、 6HRU-P(j5 *LOK PQ6 7PtT OE-PJ4.11LUAo 1 2 3 4 5 6 7 -E EDDDDDDDDOLE0 12 3 4 5 6 7Q Q Q Q Q Q QQC'ONl 圖 3.2.1數(shù)碼管段驅(qū)動o o o o圖3.2.2數(shù)碼管位驅(qū)動圖3.2.3溫度顯示電路3.3 溫度傳感器工作原理DS18B20M度傳感器是美國 DALLAS導體公司最新推出的一種改進型智能 溫度傳感器,和傳統(tǒng)的熱敏電阻等測溫元件相比, 它能直接讀出被測溫度,并且 可根據(jù)實際要求通過簡單的編程實現(xiàn)91 2位的數(shù)字值讀數(shù)方式。DS18B20勺性能特點如下:?獨特的單線接口僅需一個端口引腳

11、進行通訊?簡單的多點分布使用?無需外部器件?可通過數(shù)據(jù)線供電?零待機功耗?測溫范圍-55+125C,以0.5 C遞增。華氏器件-67+2570F,以0.90F遞增 ?溫度以9位數(shù)字量讀出?溫度數(shù)字量轉(zhuǎn)換時間200ms (典型值)?用戶可定義的非易失性溫度報警設(shè)置?報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件DS18B20J部結(jié)構(gòu)主要由四部分組成:64位光刻ROM溫度傳感器、非揮發(fā)的 溫度報警觸發(fā)器THKTL、配置寄存器。DS18B2的管腳排列、各種封裝形式如圖 3.3.1所示,DQ為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生 電源下,也可以向器件提供電源; GND;

12、地信號;VD3可選擇的VDDH腳。當工 作于寄生電源時,此引腳必須接地。其電路圖 3.3.2所示。DS18B2DTO-92PACKAGEDALLASDS1820NCnc rnn 2vDD nr 3dq rrr 4NC7 II NC5 GNDS1BB2DZ8-PIN SO IC (150-MILIUD>oa圖3.3.1外部封裝形式圖3.3.2傳感器電路圖DS18B20勺測溫原理如圖3.3.3所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計

13、數(shù)門打開時,DS18B2CM對低溫度系數(shù)振蕩器產(chǎn)生的 時鐘脈沖后進行計數(shù),進而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩 器來決定,每次測量前,首先將-55 C所對應的基數(shù)分別置入減法計數(shù)器 1和溫 度寄存器中,減法計數(shù)器1和溫度寄存器被預置在-55 C所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù) 器1的預置值減到0時溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝 入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循 環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中 的數(shù)值即為所測溫圖2中的斜率累加器用于

14、補償和修正測溫過程中的非線性其 輸出用,于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關(guān)閉就重復上述過程, 直 至溫度寄存器值達到被測溫度值,這就是 DS18B20勺測溫原理。另外,由于DS18B20I線通信功能是分時完成的,他有嚴格的時隙概念,因 此讀寫時序很重要。系統(tǒng)對 DS18B20勺各種操作必須按協(xié)議進行。操作協(xié)議為: 初始化DS18B20(發(fā)復位脈沖)一發(fā)ROMfe能命令一發(fā)存儲器操作命令一處理數(shù) 據(jù)。圖3.3.3 DS18B20測溫原理圖在正常測溫情況下,DS1820的測溫分辨力為0.5 C ,可采用下述方法獲得高 分辨率的溫度測量結(jié)果:首先用DS1820s供的讀暫存器指令(BEH讀出以

15、0.5C 為分辨率的溫度測量結(jié)果,然后切去測量結(jié)果中的最低有效位 (LSB),得到所測 實際溫度的整數(shù)部分Tz,然后再用BEH指令取計數(shù)器1的計數(shù)剩余值Cs和每度 計數(shù)值CD考慮到DS1820M量溫度的整數(shù)部分以0.25 C、0.75 C為進位界限的 關(guān)系,實際溫度Ts可用下式計算:Ts=(Tz-0.25 C) + (CD-CS /CD3.4 溫度傳感器接口電路=-XrC'CH圖3.4.1溫度傳感器接口電路4系統(tǒng)的軟件設(shè)計4.1主程序/* 主函數(shù)*/ void main()while(1)Convert。; 調(diào)用啟動溫度轉(zhuǎn)換函數(shù)RdTemp(); /調(diào)用讀取溫度信函數(shù)4.2 溫度測量4

16、.2.1 .初始化 DS18B20/* 初始化 DS18B20*/void TxReset()uint i;DQ=0; /發(fā)送復位脈沖i=100;while(i>0) i-; /拉低 900usDQ=1; /釋放總線單片機課程設(shè)計報告i=4;while(i>0) i-;4.2.2 ,等待應答信號/* 等待DS18B2皿答 */void RxWait()uint i;while(DQ); / 等待 15-60uswhile(DQ); /DS18B20發(fā)出存在脈沖 60-240usi=4;while(i>0) i-;4.2.3 . DS18B2皺字節(jié)/* 讀取一位數(shù)據(jù)*/bit

17、RdBit()uchar i;bit b;DQ = 0; / 讀開始 1usi+;DQ = 1; / 產(chǎn)生讀時間隙15usi+;i+;b = DQ; 讀位1 = 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;4.2.4 . DS18B20f字節(jié)/* 寫入字節(jié)數(shù)據(jù)*/void WrByte(uc

18、har d)uint i;uchar j;bit btmp;for(j=0;j<8;j+) /各位由低向高寫入 DS18B20btmp=d&0x01;d=d>>1;if(btmp) / 寫 1DQ=0; / 延時 15usi+;i+;10單片機課程設(shè)計報告DQ=1; / 寫1時隙不低于60ui=8;while(i>0) i-;else / 寫 0 DQ=0; i=8;while(i>0) i-; /保持低電平 60us 到 120usDQ=1; /釋放總線i+; i+; 4.2.5 .啟動溫度測量 /* 啟動溫度測量*/void Convert。 uint

19、 i;Delay(125); / 延時 1msTxReset(); /初始化 DS18B20RxWait(); / 等待51832*應Delay(125); /延時WrByte(0xcc); /跳過 ROMftr令WrByte(0x44); /溫度轉(zhuǎn)換命令for(i=0;i<250;i+) / 延時 1s Display。; 11單片機課程設(shè)計報告4.2.6 .讀取測量結(jié)果/* 讀取溫度值*/void RdTemp(void)short int temp;uint x;bit flag = 1;TxReset(); /初始化 DS18B20RxWait(); / 等待 DS18B2CE答

20、Delay(125); / 延時WrByte(0xcc); /跳過 ROMftr令WrByte(0xbe); /讀暫存存儲器命令templow = RdByte(); /溫度值低字節(jié),低4位為小數(shù)temphigh = RdByte(); /溫度值高字節(jié)temp = (temphigh << 8) | templow; /溫度為 16 位補碼if(temp<0) / 負溫度flag = 0;temp = temp + 1;tempzheng = temp >> 4; /溫度值整數(shù)x = temp & 0x000f;tempxiao = (x*10)/16;

21、/ 溫度值小數(shù)if(flag) / 正溫度disp0 = tempzheng/100; / 百位else / 負溫度disp0 = 16; / 負號disp1 = (tempzheng%100)/10; / 十位disp2 = tempzheng%10; / 個位單片機課程設(shè)計報告disp3 = tempxiao; / 小數(shù) 圖4.2.7.1 主程序流程圖圖4.2.7.2讀溫度流程圖發(fā)DS18B20復位命令發(fā)跳過ROM命令發(fā)溫度轉(zhuǎn)換開始命令結(jié)束圖4.2.7.3溫度轉(zhuǎn)換流程圖圖4.2.7.4計算溫度流程圖4.3數(shù)碼管顯示/*數(shù)碼管顯示*/void Display。uchar i,j;j=0x08

22、;for(i=0;i<4;i+)P1=j; /數(shù)碼管位碼輸出LOCK=1; 打開鎖存if(i=2) P0=leddispi0x01; 顯示小數(shù)點else P0=leddispi; /數(shù)碼管段碼輸出LOCK=0; /關(guān)閉鎖存j=j>>1; /調(diào)整位碼Delay(125);P0=0x00;5系統(tǒng)的測試和總結(jié)5.1 測試時的圖片圖5.1.1溫度傳感器圖5.1.2 測試時室內(nèi)溫度顯示圖5.1.3 測試時手握住傳感器時的溫度顯示5.2 總結(jié)通過此次課程設(shè)計,使我更加扎實的掌握了有關(guān)基于單片機的數(shù)字溫度計設(shè) 計方面的知識,在設(shè)計過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考, 一遍又一

23、遍所在,課程設(shè)計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決問題,鍛 煉實踐能力的重要環(huán)節(jié),是對我們學生實際工作能力的具體訓練和考察過程,隨著科學技術(shù)發(fā)展的越來越快,單片機已經(jīng)成為當今計算機使用中空前活躍的領(lǐng) 域,在生活中可以說無出不在,因此學習和使用單片機的開發(fā)技術(shù)是十分重要的。 回顧起此次課程設(shè)計,至今我仍然感觸良多,的確,從理論到實踐,在整整一個 星期里,可以說苦多甜少,但是我卻學到了很多很多的東西, 同時還鞏固了學的 知識,通過這次課程設(shè)計使我懂得了理論和實踐相結(jié)合很重要的道理,只有理論是遠遠不夠的,只有把理論知識和實踐結(jié)合起來, 從實踐中得出理論知識,才能 真正為社會服務,從而

24、提高至今的實際的動手能力和獨立思考能力。在設(shè)計的過程中遇到的問題,可以說是困難重重,在做的過程中難免會遇到各種各樣的問題, 同時在設(shè)計中發(fā)現(xiàn)自己的不足之處, 等等,通過這次課程設(shè)計之后,一定可以把 以前所學的知識理解通透。參考文獻1謝維成.單片機原理和使用及C51程序設(shè)計.北京:清華大學出版社,2009 2李朝青.單片機原理及接口技術(shù)M.北京:北京航空航天大學出版社,2005 3馬忠梅.單片機的C語言使用程序設(shè)計(第4版)M.北京:北京航空航天大 學出版社,20074江世明.基于Proteus的單片機使用技術(shù)M.北京:電子工業(yè)出版社,2009 5彭偉.單片機C語言程序設(shè)計實訓100例M.北京:

25、電子工業(yè)出版社,2009 6張毅剛.新編MCS-5憚片機使用設(shè)計(第3版)M.哈爾濱:哈爾濱工業(yè)大學出 版社,2008致謝詞在我寫本論文的過程中,周聘麟、蔣春雷老師給我提供了許多資料,并對實 踐中出現(xiàn)的問題給予耐心的解答,完稿之后在百忙之中仔細閱讀,給出修改意見。 周老師、蔣老師愛崗敬業(yè),治學嚴謹,思維嚴密,平易近人是我十分尊敬的老師, 在此對他表示感謝。在本文錄入的過程中,得到了其他同學的幫助,在這里對他們也表示的感謝!附 錄1原理圖18匕23彳3石78P1CUTPl LIT1132-oINTIP201 k54T1TOP243IEA/VPP26kg1B9EtE5ETT'TITk叵WR

26、ALE/F PSEWI 2 3 a- 5 7 小PCLPO-poiFOpaFO附 錄2源程序清單#include <reg52.h>#define ulong unsigned long#define uint unsigned int#define uchar unsigned charuchar code led= 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6, 0xee,0x3e,0x9G0x7a,0x9e,0x8e,0x02,0x00 ; /數(shù)碼管碼表uchar disp4=1,2,3,4; /數(shù)碼管顯示緩沖區(qū)/數(shù)碼管位

27、選P1低四位,段選P0sbit LOCK=P1A4; /74573 鎖存端sbit DQ=P3A5; /DS18B20 數(shù)據(jù)端uchar templow; /溫度值低字節(jié)uchar temphigh; /溫度值高字節(jié)char tempzheng; /溫度值整數(shù)char tempxiao; /溫度值小數(shù)void Delay(uint x);void Display。;void TxReset();void RxWait();bit RdBit();單片機課程設(shè)計報告uchar RdByte();void WrBit(bit b);void WrByte(uchar d);void Convert

28、。;void RdTemp();sbit ACC0 = ACCA0;sbit ACC7 = ACCA7;/* 主函數(shù)*/void main()while(1)Convert。"/調(diào)用啟動溫度轉(zhuǎn)換函數(shù)RdTemp(); / 調(diào)用讀取溫度信函數(shù)/* 初始化 DS18B20*/void TxReset()uint i;DQ=0; /發(fā)送復位脈沖i=100;while(i>0) i-; / 拉低 900usDQ=1; /釋放總線i=4;while(i>0) i-;/* 等待DS18B2皿答*/ void RxWait()18單片機課程設(shè)計報告uint i;while(DQ); 等

29、待 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; /產(chǎn)生讀時間隙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+) / 各位由低向高讀出 DS18B2020j=RdBit

30、();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+) /各位由低向高寫入 DS18B20btmp=d&0x01;d=d>>1;if(btmp) / 寫 1DQ=0; / 延時 15usi+;i+;DQ=1; /寫1時隙不低于60ui=8;while(i>0) i-;else / 寫 0DQ=0;i=8;單片機課程設(shè)計報告while(i>0) i-; 保持低電平 60us 到 120us DQ=1; /釋放總線 i+; i+; /* 啟動溫度轉(zhuǎn)換*/void Co

溫馨提示

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

評論

0/150

提交評論