ds18b20數(shù)字溫度計(jì)的設(shè)計(jì)學(xué)士學(xué)位論文_第1頁
ds18b20數(shù)字溫度計(jì)的設(shè)計(jì)學(xué)士學(xué)位論文_第2頁
ds18b20數(shù)字溫度計(jì)的設(shè)計(jì)學(xué)士學(xué)位論文_第3頁
ds18b20數(shù)字溫度計(jì)的設(shè)計(jì)學(xué)士學(xué)位論文_第4頁
ds18b20數(shù)字溫度計(jì)的設(shè)計(jì)學(xué)士學(xué)位論文_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)單片機(jī)原理及應(yīng)用課程設(shè)計(jì)PAGE單片機(jī)原理及應(yīng)用單片機(jī)原理及應(yīng)用課程設(shè)計(jì)報(bào)告書課程設(shè)計(jì)報(bào)告書題目:DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)姓名:學(xué)號:專業(yè):電氣工程及其自動化指導(dǎo)老師:設(shè)計(jì)時(shí)間:2010年6月電子與信息工程學(xué)院電子與信息工程學(xué)院目錄TOC\o"1-3"\h\zHYPERLINK1. 引言 3HYPERLINK1.1. 設(shè)計(jì)意義 3HYPERLINK1.2. 系統(tǒng)功能要求 3HYPERLINK1.3. 本組成員所做的工作 3HYPERLINK2. 方案設(shè)計(jì) 3HYPERLINK3. 硬件設(shè)計(jì) 4HYPERLINK3.1. 主控制器 5HYPERLINK3.2. 顯示電路 5HYPERLINK3.3. 數(shù)字溫度傳感器DS18B20 5HYPERLINK4. 軟件設(shè)計(jì) 8HYPERLINK4.1. 主程序 9HYPERLINK4.2. 讀出溫度子程序 9HYPERLINK4.3. 溫度轉(zhuǎn)換命令子程序 10HYPERLINK4.4. 計(jì)算溫度子程序 10HYPERLINK4.5. 顯示數(shù)據(jù)刷新子程序 11HYPERLINK5. 系統(tǒng)調(diào)試 12HYPERLINK6. 設(shè)計(jì)總結(jié) 12HYPERLINK7. 附錄A;源程序 13HYPERLINK8. 附錄B;作品實(shí)物圖片 17HYPERLINK9. 參考文獻(xiàn) 17DS18B20數(shù)字溫度計(jì)的設(shè)計(jì)引言設(shè)計(jì)意義單片機(jī)原理及應(yīng)用是自動化專業(yè)的專業(yè)實(shí)踐課程。本課程的任務(wù)是使學(xué)生通過“簡易數(shù)字電壓表的設(shè)計(jì)”的設(shè)計(jì)過程,綜合所學(xué)課程,掌握目前自動化儀表的一般設(shè)計(jì)要求,工程設(shè)計(jì)方法,開發(fā)及設(shè)計(jì)工具的使用方法,通過這一設(shè)計(jì)實(shí)踐過程,鍛煉自己的動手能力和分析解決問題的能力;積累經(jīng)驗(yàn),培養(yǎng)一絲不茍的學(xué)習(xí)精神和對所學(xué)知識的綜合應(yīng)用能力。系統(tǒng)功能要求采用數(shù)字式溫度傳感器為檢測器件,進(jìn)行單點(diǎn)溫度檢測。用數(shù)碼管直接顯示溫度值,微機(jī)系統(tǒng)作為數(shù)字溫度計(jì)的控制系統(tǒng)。1.基本要求:(1)檢測的溫度范圍:0℃~100℃,檢測分辨率0.5℃。(2)用4位數(shù)碼管來顯示溫度值。(3)超過警戒值(自己定義)要報(bào)警提示。2.提高要求(1)擴(kuò)展溫度范圍。(2)增加檢測點(diǎn)的個數(shù),實(shí)現(xiàn)多點(diǎn)溫度檢測。本組成員所做的工作XX:焊接實(shí)驗(yàn)總體電路板以及修改錯誤;XX:實(shí)驗(yàn)線路布局以及撰寫實(shí)驗(yàn)報(bào)告;XX:調(diào)試與排除故障。方案設(shè)計(jì)在日常生活及工農(nóng)業(yè)生產(chǎn)中,經(jīng)常要用到溫度的檢測及控制,傳統(tǒng)的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)換成相對應(yīng)的溫度,需要比較多的外部硬件支持。其缺點(diǎn)如下:硬件電路復(fù)雜;軟件調(diào)試復(fù)雜;制作成本高。本數(shù)字溫度計(jì)設(shè)計(jì)采用美國DALLAS半導(dǎo)體公司繼DS1820之后推出的一種改進(jìn)型智能溫度傳感器DS18B20作為檢測元件,測溫范圍為-55~125℃,最高分辨率可達(dá)0.0625℃。DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本易使用的特點(diǎn)。按照系統(tǒng)功能設(shè)計(jì)的要求,確定系統(tǒng)有三個模塊組成:主控制器,測溫電路和顯示電路。數(shù)字溫度計(jì)總體電路結(jié)構(gòu)框圖如圖所示。硬件設(shè)計(jì)溫度及電路設(shè)計(jì)原理圖如圖4.2所示,控制器使用單片機(jī)AT89C2051,溫度傳感器使用DS18B20,用四位共陰極LED數(shù)碼管以動態(tài)掃描法實(shí)現(xiàn)溫度顯示。主控制器單片機(jī)AT89C2051具有低電壓供電和小體積等特點(diǎn),兩個端口剛好滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用。系統(tǒng)可用兩節(jié)電池供電。顯示電路顯示電路采用四位共陰極LED數(shù)碼管,從P1口輸出斷碼,列掃描用P3.0~P3.3口來實(shí)現(xiàn),列驅(qū)動用9012三極管。數(shù)字溫度傳感器DS18B20 由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,屬于新一代適配微處理器的智能溫度傳感器,可廣泛用于工業(yè)、民用、軍事等領(lǐng)域的溫度測量及控制儀器、測控系統(tǒng)和大型設(shè)備中。它具有體積小,接口方便,傳輸距離遠(yuǎn)等特點(diǎn)。DS18B20性能特點(diǎn)DS18B20的性能特點(diǎn):①采用單總線專用技術(shù),既可通過串行口線,也可通過其它I/O口線與微機(jī)接口,無須經(jīng)過其它變換電路,直接輸出被測溫度值(9位二進(jìn)制數(shù),含符號位),②測溫范圍為-55℃-+125℃,測量分辨率為0.0625℃,③內(nèi)含64位經(jīng)過激光修正的只讀存儲器ROM,④適配各種單片機(jī)或系統(tǒng)機(jī),⑤用戶可分別設(shè)定各路溫度的上、下限,⑥內(nèi)含寄生電源。DS18B20內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號。64位ROM結(jié)構(gòu)圖如圖2所示。不同的器件地址序列號不同。

DS18B20的管腳排列如圖1所示。LSBMSB8位檢驗(yàn)CRC48位序列號8位工廠代碼(10H)圖1LSBMSB8位檢驗(yàn)CRC48位序列號8位工廠代碼(10H)圖264位ROM結(jié)構(gòu)圖DS18B20高速暫存器共9個存儲單元,如表所示:序號寄存器名稱作

用序號寄存器名稱作

用0溫度低字節(jié)以16位補(bǔ)碼形式存放4配置寄存器1溫度高字節(jié)5、6、7保留2TH/用戶字節(jié)1存放溫度上限8CRC3HL/用戶字節(jié)2存放溫度下限

以12位轉(zhuǎn)化為例說明溫度高低字節(jié)存放形式及計(jì)算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個高低兩個8位的RAM中,二進(jìn)制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625才能得到實(shí)際溫度。高8位SSSSS262524低8位232221202-12-22-32-4DS18B20控制方法DS18B20有六條控制命令,如表所示:指

令約定代碼操

明溫度轉(zhuǎn)換44H啟動DS18B20進(jìn)行溫度轉(zhuǎn)換讀暫存器BEH讀暫存器9個字節(jié)內(nèi)容寫暫存器4EH將數(shù)據(jù)寫入暫存器的TH、TL字節(jié)復(fù)制暫存器48H把暫存器的TH、TL字節(jié)寫到E2RAM中重新調(diào)E2RAMB8H把E2RAM中的TH、TL字節(jié)寫到暫存器TH、TL字節(jié)讀電源供電方式B4H啟動DS18B20發(fā)送電源供電方式的信號給主CPUDS18B20的通信協(xié)議DS18B20器件要求采用嚴(yán)格的通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義了幾種信號類型:復(fù)位脈沖,應(yīng)答脈沖時(shí)隙;寫0,寫1時(shí)隙;讀0,讀1時(shí)隙。與DS18B20的通信,是通過操作時(shí)隙完成單總線上的數(shù)據(jù)傳輸。發(fā)送所有的命令和數(shù)據(jù)時(shí),都是字節(jié)的低位在前,高位在后。復(fù)位和應(yīng)答脈沖時(shí)隙每個通信周期起始于微控制器發(fā)出的復(fù)位脈沖,其后緊跟DS18B20發(fā)出的應(yīng)答脈沖,在寫時(shí)隙期間,主機(jī)向DS18B20器件寫入數(shù)據(jù),而在讀時(shí)隙期間,主機(jī)讀入來自DS18B20的數(shù)據(jù)。在每一個時(shí)隙,總線只能傳輸一位數(shù)據(jù)。時(shí)序圖見圖3。寫時(shí)隙當(dāng)主機(jī)將單總線DQ從邏輯高拉到邏輯低時(shí),即啟動一個寫時(shí)隙,所有的寫時(shí)隙必須在60~120us完成,且在每個循環(huán)之間至少需要1us的恢復(fù)時(shí)間。寫0和寫1時(shí)隙如圖所示。在寫0時(shí)隙期間,微控制器在整個時(shí)隙中將總線拉低;而寫1時(shí)隙期間,微控制器將總線拉低,然后在時(shí)隙起始后15us之釋放總線。時(shí)序圖見圖4。讀時(shí)隙

DS18B20器件僅在主機(jī)發(fā)出讀時(shí)隙時(shí),才向主機(jī)傳輸數(shù)據(jù)。所以在主機(jī)發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)隙,以便DS18B20能夠傳輸數(shù)據(jù)。所有的讀時(shí)隙至少需要60us,且在兩次獨(dú)立的讀時(shí)隙之間,至少需要1us的恢復(fù)時(shí)間。每個讀時(shí)隙都由主機(jī)發(fā)起,至少拉低總線1us。在主機(jī)發(fā)起讀時(shí)隙之后,DS18B20器件才開始在總線上發(fā)送0或1,若DS18B20發(fā)送1,則保持總線為高電平。若發(fā)送為0,則拉低總線當(dāng)發(fā)送0時(shí),DS18B20在該時(shí)隙結(jié)束后,釋放總線,由上拉電阻將總線拉回至高電平狀態(tài)。DS18B20發(fā)出的數(shù)據(jù),在起始時(shí)隙之后保持有效時(shí)間為15us。因而主機(jī)在讀時(shí)隙期間,必須釋放總線。并且在時(shí)隙起始后的15us之內(nèi)采樣總線的狀態(tài)。時(shí)序圖見圖4。 圖3復(fù)位和應(yīng)答脈沖時(shí)隙 圖4讀寫時(shí)序軟件設(shè)計(jì) 系統(tǒng)程序主要包括主程序、讀出溫度子程序、溫度轉(zhuǎn)換子程序、計(jì)算溫度子程序、顯示數(shù)據(jù)刷新子程序等等。 主程序 主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測量溫度值,溫度測量每1s進(jìn)行一次,其程序流程圖如圖6。 圖6主程序流程圖讀出溫度子程序 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需要進(jìn)行CRC校驗(yàn),校驗(yàn)有錯時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖7所示。 圖7讀出溫度子程序流程圖溫度轉(zhuǎn)換命令子程序 溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辯率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時(shí)法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如圖8所示。計(jì)算溫度子程序 計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,其流程圖如圖9所示。圖8溫度轉(zhuǎn)換命令子程序流程圖圖9計(jì)算溫度子程序流程圖顯示數(shù)據(jù)刷新子程序顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖區(qū)中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號顯示位移入下一位。程序流程圖如圖10所示。圖10顯示數(shù)據(jù)刷新子程序流程圖系統(tǒng)調(diào)試系統(tǒng)的調(diào)試主要以程序調(diào)試為主。硬件調(diào)試首先檢查焊接是否正確,然后可用萬用表測試或通電檢測。軟件調(diào)試可以先編寫顯示程序并進(jìn)行硬件的正確性檢測,然后分別進(jìn)行主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計(jì)算溫度子程序和顯示數(shù)據(jù)刷新子程序等的編輯及調(diào)試。由于DS18B20與單片機(jī)采用串行數(shù)據(jù)傳送,因此,對DS18B20進(jìn)行讀/寫編程時(shí)必須嚴(yán)格地保證讀/寫時(shí)序;否則將無法讀取測量結(jié)果。本程序采用C語言編寫,用keil編譯器編程調(diào)試。設(shè)計(jì)總結(jié)本設(shè)計(jì)利用89S51芯片控制溫度傳感器DS18B52,再輔之以部分外圍電路實(shí)現(xiàn)對環(huán)境溫度的控制,性能穩(wěn)定,精度較高,而且擴(kuò)展性很強(qiáng)。由于DS18B20支持單總線協(xié)議,我們可以將多個DS18B52并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B52通信,占用較少的微處理器的端口就可以實(shí)現(xiàn)多點(diǎn)測溫監(jiān)控系統(tǒng)。從這次的課程設(shè)計(jì)中,我真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們學(xué)習(xí)的理論知識用到實(shí)際中,學(xué)習(xí)單片機(jī)更是如此。附錄A;源程序/*********************************************************************/////DS18B20溫度計(jì)C程序//2005.2.28通過調(diào)試/*********************************************************************///使用AT89C2051單片機(jī),12MHZ晶振,用共陽LED數(shù)碼管//P1口輸出段碼,P3口掃描//#pragmasrc(d:\aa.asm)#include"reg51.h"#include"intrins.h"http://_nop_();延時(shí)函數(shù)用#defineDisdataP1//段碼輸出口#definediscanP3//掃描口#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//溫度輸入口sbitDIN=P1^7;//LED小數(shù)點(diǎn)控制uinth;//////*******溫度小數(shù)部分用查表法**********//ucharcodeditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};//ucharcodedis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};/*共陽LED段碼表"0""1""2""3""4""5""6""7""8""9""不亮""-"*/ucharcodescan_con[4]={0xfe,0xfd,0xfb,0xf7};//列掃描控制字uchardatatemp_data[2]={0x00,0x00};//讀出溫度暫放uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};//顯示單元數(shù)據(jù),共4個數(shù)據(jù),一個運(yùn)算暫存用///////***********11微秒延時(shí)函數(shù)**********///voiddelay(uintt){for(;t>0;t--);}///***********顯示掃描函數(shù)**********/scan(){chark;for(k=0;k<4;k++)//四位LED掃描控制{Disdata=dis_7[display[k]];if(k==1){DIN=0;}discan=scan_con[k];delay(90);discan=0xff;}}/////***********18B20復(fù)位函數(shù)**********/ow_reset(void){charpresence=1;while(presence){while(presence){ DQ=1;_nop_();_nop_(); DQ=0;// delay(50);//550us DQ=1;// delay(6);//66us presence=DQ;//presence=0繼續(xù)下一步}delay(45);//延時(shí)500uspresence=~DQ;}DQ=1;}/////**********18B20寫命令函數(shù)*********///向1-WIRE總線上寫一個字節(jié)voidwrite_byte(ucharval){uchari;for(i=8;i>0;i--)//{DQ=1;_nop_();_nop_();DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();//5usDQ=val&0x01;//最低位移出delay(6);//66usval=val/2;//右移一位}DQ=1;delay(1);}///*********18B20讀1個字節(jié)函數(shù)********///從總線上讀取一個字節(jié)ucharread_byte(void){uchari;ucharvalue=0;for(i=8;i>0;i--){DQ=1;_nop_();_nop_();value>>=1;DQ=0;//_nop_();_nop_();_nop_();_nop_();//4usDQ=1;_nop_();_nop_();_nop_();_nop_();//4usif(DQ)value|=0x80;delay(6);//66us}DQ=1;return(value);}///***********讀出溫度函數(shù)**********///read_temp(){ow_reset();//總線復(fù)位write_byte(0xCC);//發(fā)SkipROM命令write_byte(0xBE);//發(fā)讀命令temp_data[0]=read_byte();//溫度低8位temp_data[1]=read_byte();//溫度高8位ow_reset();write_byte(0xCC);//SkipROMwrite_byte(0x44);//發(fā)轉(zhuǎn)換命令}///***********溫度數(shù)據(jù)處理函數(shù)**********/work_temp(){ucharn=0;//if(temp_data[1]>127){temp_data[1]=(256-temp_data[1]);temp_data[0]=(256-temp_data[0]);n=1;}//負(fù)溫度求補(bǔ)碼display[4]=temp_data[0]&0x0f;display[0]=ditab[display

溫馨提示

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

評論

0/150

提交評論