ds8b20溫度傳感器課程設計報告_第1頁
ds8b20溫度傳感器課程設計報告_第2頁
ds8b20溫度傳感器課程設計報告_第3頁
ds8b20溫度傳感器課程設計報告_第4頁
ds8b20溫度傳感器課程設計報告_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設計報告設計題目:DS18B20溫度傳感器班級:09電信(2)班姓名:xxx學號:xxx指導教師:xxx調試地點:xxx目錄一、概述二、內容1、課程設計題目2、課程設計目的3、設計任務和要求4、正文(一)、方案選擇與論證三、系統的具體設計與實現(1)、系統的總體設計方案(2)、硬件電路設計a、單片機控制模塊b、溫度傳感器模塊四、軟件設計1、主程序2、讀出溫度子程序3、溫度轉換命令子程序4、計算溫度子程序五、完整程序如下:六、設計體會七、參考文獻一、概述2009年6月14日隨著時代的進步和發展,單片機技術已經普及到我們生活、工作、科研、各個領域,已經成為一種比較成熟的技術。本文主要介紹

2、了一個基于89S51單片機的測溫系統,詳細描述了利用液晶顯示器件傳感器DS18B20FF發測溫系統的過程,重點對傳感器在單片機下的硬件連接,軟件編程以及各模塊系統流程進行了詳盡分析,特別是數字溫度傳感DS18B20的數據采集過程。對各部分的電路也一一進行了介紹,該系統可以方便的實現實現溫度采集和顯示,并可根據需要任意設定上下限報警溫度,它使用起來相當方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優點,適合于我們日常生活和工、農業生產中的溫度測量,也可以當作溫度處理模塊嵌入其它系統中,作為其他主系統的輔助擴展。DS18B20tAT89C51結合實現最簡溫度檢測系統,該系統結構簡單,抗干擾能

3、力強,適合于惡劣環境下進行現場溫度測量,有廣泛的應用前景。關鍵詞:單片機AT89C51DS18B20a度傳感器、液晶顯示LCD1602二、內容1、課程設計題目基于DS18B20勺溫度傳感器2、課程設計目的通過基于MCS-51系列單片機AT89C5儕口DS18B2W度傳感器檢測溫度,熟悉芯片的使用,溫度傳感器的功能,數碼顯示管的使用,匯編語言的設計;并且把我們這一年所學的數字和模擬電子技術、檢測技術、單片機應用等知識,通過理論聯系實際,從題目分析、電路設計調試、程序編制調試到傳感器的選定等這一完整的實驗過程,培養了學生正確的設計思想,使學生充分發揮主觀能動性,去獨立解決實際問題,以達到提升學生的

4、綜合能力、動手能力、文獻資料查閱能力的作用,為畢業設計和以后工作打下一個良好的基礎。3、設計任務和要求以MCS-51系列單片機為核心器件,組成一個數字溫度計,采用數字溫度傳感器DS18B20為檢測器件,進行單點溫度檢測,檢測精度為土0.5攝氏度。溫度顯示采用LCD1602M示,兩位整數,一位小數。系統總體仿真圖板上實現效果圖4、正文(一)、方案選擇與論證根據設計任務的總體要求,本系統可以劃分為以下幾個基本模塊,針對各個模塊的功能要求,分別有以下一些不同的設計方案:(1)、溫度傳感模塊方案一:采用熱敏電阻,熱敏電阻精度、重復性、可靠性較差,對于檢測1攝氏度的信號是不適用的,也不能滿足測量范圍。在

5、溫度測量系統中,也常采用單片溫度傳感器,比如AD59QLM35等。但這些芯片輸出的都是模擬信號,必須經過A/D轉換后才能送給計算機,這樣就使測溫系統的硬件結構較復雜。另外,這種測溫系統難以實現多點測溫,也要用到復雜的算法,一定程度上也增加了軟件實現的難度。方案二:采用單總線數字溫度傳感器DS18B20M量溫度,直接輸出數字信號。便于單片機處理及控制,節省硬件電路。且該芯片的物理化學性很穩定,此元件線形性能好,在0100攝氏度時,最大線形偏差小于1攝氏度。DS18B20勺最大特點之一采用了單總線的數據傳輸,由數字溫度計DS18B2解口微控制器AT89C51構成的溫度裝置,它直接輸出溫度的數字信號

6、到微控制器。每只DS18B2CM有一個獨有白不可修改的64位序列號,根據序列號可訪問不同的器件。這樣一條總線上可掛接多個DS18B20專感器,實現多點溫度測量,輕松的組建傳感網絡。綜上分析,我們選用第二種方案。溫度傳感模塊仿真圖(2)、顯示模塊方案一:采用8位段數碼管,將單片機得到的數據通過數碼管顯示出來。該方案簡單易行,但所需的元件較多,且不容易進行操作,可讀性差,一旦設定后很難再加入其他的功能,顯示格式受限制,且大耗電量大,不宜用電池給系統供電。方案二:采用液晶顯示器件,液晶顯示平穩、省電、美觀,更容易實現題目要求,對后續的園藝通兼容性高,只需將軟件作修改即可,可操作性強,也易于讀數,采用

7、RT1602兩行十六個字符的顯示,能同時顯示其它的信息如日期、時間、星期、溫度。綜上分析,我們采用了第二個方案顯示模塊仿真圖三、系統的具體設計與實現(1)、系統的總體設計方案采用AT89S52單片機作為控制核心對溫度傳感器DS18B20空制,讀取溫度信號并進行計算處理,并送到液晶顯示器LCD1602a示。按照系統設計功能的要求,確定系統由3個模塊組成:主控制器、測溫電路和顯示電路。數字溫度計總體電路結構框圖如圖下所示。(2)、硬件電路設計a、單片機控制模塊該模塊由AT89C511片機組成在設計方面,AT89C51的EA接高電平,具外圍電路提供能使之工作的晶振脈沖、復位按鍵,四個I/O分別接8路

8、的單列IP座方便與外圍設備連接。當AT89C51E片接到來自溫度傳感器的信號時,其內部程序將根據信號的類型進行處理,并且將處理的結果送到顯示模塊,發送控制信號控制各模塊。b、溫度傳感器模塊DS18B20f目關資料1、DS18B20®理與分析DS18B2比美國DALLAS導體公司繼DS1820之后最新推出的一種改進型智能溫度傳感器。與傳統的熱敏電阻相比,它能夠直接讀出被測溫度并且可根據實際要求通過簡單的編程實現912位的數字值讀數方式。可以分別在93.75ms和750ms內完成9位和12位的數字量,并且從DS18B20賣出的信息或寫入DS18B20勺信息僅需要一根口線(單線接口)讀寫,

9、溫度變換功率來源于數據總線,總線本身也可以向所掛接的DS18B2以電,而無需額外電源。因而使用DS18B2M使系統結構更趨簡單,可靠性更高。他在測溫精度、轉換時間、傳輸距離、分辨率等方面較DS1820有了很大的改進,給用戶帶來了更方便的使用和更令人滿意的效果。以下是DS18B20勺特點:(1)獨特的單線接口方式:DS18B25微處理器連接時僅需要一條口線即可實現微處理器與DS18B20勺雙向通訊。(2)在使用中不需要任何外圍元件。(3)可用數據線供電,電壓范圍:+3.0+5.5V。(4)測溫范圍:-55-+125C。固有測溫分辨率為0.5C。(5)通過編程可實現9-12位的數字讀數方式。(6)

10、用戶可自設定非易失性的報警上下限值。(7)支持多點組網功能,多個DS18B20T以并聯在惟一的三線上,實現多點測溫。(8)負壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作。2、DS18B20勺測溫原理DS18B20勺測溫原理上圖所示,圖中低溫度系數晶振的振蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,圖中還隱含著計數門,當計數門打開時,DS18B2CM對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量。計數門的開啟時間由高溫度系數振蕩器來決定,每次測量前,首先將-

11、55C所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55C所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫度。圖中的斜率累加器用于補償和修正測溫過程中的非線性,具輸出用于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20勺測溫原理。另外,由

12、于DS18B2M線通信功能是分時完成的,他有嚴格的時隙概念,因此讀寫時序很重要。系統對DS18B20勺各種操作必須按協議進行。操作協議為:初始化DS18B20(發復位脈沖)f發ROMfe能命令-發存儲器操作命令-處理數據。DS18B20工作過程一般遵循以下協議:初始化一一ROM操作命令一一存儲器操作命令一一處理數據初始化單總線上的所有處理均從初始化序列開始。初始化序列包括總線主機發出一復位脈沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線控制器知道DS1820在總線上且已準備好操作。ROMM作命令一旦總線主機檢測到從屬器件的存在,它便可以發出器件ROMM乍命令之一。所有ROM操作命令均為8位長。

13、這些命令如下:ReadROM(tROM)33h此命令允許總線主機讀DS18B20勺8位產品系列編碼,唯一的48位序列號,以及8位的CRC此命令只能在總線上僅有一個DS18B20勺情況下可以使用。如果總線上存在多于一個的從屬器件,那么當所有從片企圖同時發送時將發生數據沖突的現象(漏極開路會產生線與的結果)。MatchROM(符合ROM)55h此命令后繼以64位的ROMS據序列,允許總線主機對多點總線上特定的DS1尋址。只有與64位ROMP列嚴格相符的DS18B2討能對后繼的存貯器操作命令作出響應。所有與64位ROMff列不符的從片將等待復位脈沖。此命令在總線上有單個或多個器件的情況下均可使用。S

14、kipROM(跳過ROM)CCh在單點總線系統中,此命令通過允許總線主機不提供64位RO姍碼而訪問存儲器操作來節省時間。如果在總線上存在多于一個的從屬器件而且在SkipROM命令之后發出讀命令,那么由于多個從片同時發送數據,會在總線上發生數據沖突(漏極開路下拉會產生線與的效果)。SearchROM(搜索ROM)F0h當系統開始工作時,總線主機可能不知道單線總線上的器件個數或者不知道其64位RO啕碼。搜索ROMk令允許總線控制器用排除法識別總線上的所有從機的64位編碼。AlarmSearch(告警搜索)ECh此命令的流程與搜索RO嘛令相同。但是,僅在最近一次溫度測量出現告警的情況下,DS18B2

15、0t對此命令作出響應。告警的條件定義為溫度高于TH或低于TL。只要DS18B20一上電,告警條件就保持在設置狀態,直到另一次溫度測量顯示出非告警值或者改變TH或TL的設置,使得測量值再一次位于允許的范圍之內。貯存在EEPRO闞的觸發器信用丁口目。存儲器操作命令WriteScratchpad(寫暫存存儲器)4Eh這個命令向DS18B20勺暫存器中寫入數據,開始位置在地址2。接下來寫入的兩個字節將被存到暫存器中的地址位置2和3。可以在任何時刻發出復位命令來中止寫入。ReadScratchpad(讀暫存存儲器)BEh這個命令讀取暫存器的內容。讀取將從字節0開始,一直進行下去,直到第9(字節8,CRC

16、字節讀完。如果不想讀完所有字節,控制器可以在任何時間發出復位命令來中止讀取。CopyScratchpad(復制暫存存儲器)48h這條命令把暫存器的內容拷貝到DS18B20勺E2存儲器里,即把溫度報警觸發字節存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發出讀時間隙,而DS18B20又正在忙于把暫存器拷貝到E2存儲器,DS18B20a會輸出一個“0”,如果拷貝結束的話,DS18B20則輸出“1”。如果使用寄生電源,總線控制器必須在這條命令發出后立即起動強上拉并最少保持10msConvertT(溫度變換)44h這條命令啟動一次溫度轉換而無需其他數據。溫度轉換命令被執行,而后DS18B2賀持

17、等待狀態。如果總線控制器在這條命令之后跟著發出讀時間隙,而DS18B20又忙于做時間轉換的話,DS18B20等在總線上輸出“0”,若溫度轉換完成,則輸出“1”。如果使用寄生電源,總線控制器必須在發出這條命令后立即起動強上拉,并保持500msRecallE2(重新調整E2)B8h這條命令把貯存在E2中溫度觸發器的值重新調至暫存存儲器。這種重新調出的操作在又tDS18B20上電時也自動發生,因此只要器件一上電,暫存存儲器內就有了有效的數據。在這條命令發出之后,對于所發出的第一個讀數據時間片,器件會輸出溫度轉換忙的標識:“0”=忙,“1”=準備就緒。ReadPowerSupply(讀電源)B4h對于

18、在此命令發送至DS18B2四后所發出的第一讀數據的時間片,器件都會給出其電源方式的信號:“0"=寄生電源供電,“1"=外部電源供電。處理數據DS18B20勺高速暫存存儲器由9個字節組成,其分配如圖3所示。當溫度轉換命令發布后,經轉換所得的溫度值以二字節補碼形式存放在高速暫存存儲器的第0和第1個字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后。DS18B2W度數據表上表是DS18B2濕度采集轉化后得到的12位數據,存儲在DS18B20勺兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于或等于0,這5位為0,只要將測到的數值乘于0.0625即可得

19、到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際溫度。溫度轉換計算方法舉例:例如當DS18B20采集到+125C的實際溫度后,輸出為07D0H則:實際溫度=07D0H<0.0625=2000X0.0625=1250Co例如當DS18B20采集到-55C的實際溫度后,輸出為FC90H則應先將11位數據位取反加1得370H(符號位不變,也不作為計算),則:實際溫度=370H<0.0625=880X0.0625=550。2、顯示模塊LCD160流料(這里主要介紹下指令說明及時序)1602液晶模塊內部的控制器共有11條控制指令,如表10-14所示

20、:丁P指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關控制0000001DCB5光標或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發生存貯器地址0001字符發生存貯器地址8置數據存貯器地址001顯示數據存貯器地址9讀忙標志或地址01BF計數器地址10寫數到CGRAM或DDRAM)10要寫的數據內容11從CGRAM或DDRAM讀數11讀出的數據內容表10-14:控制命令表1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電

21、平)指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F

22、:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發生器RAM地址設置。指令8:DDRAM地址設置。指令9:讀忙信號和光標地址BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。指令10:寫數據。指令11:讀數據。與HD44780相J啟容的芯片時序表如卜.:讀狀態輸入RS=L,R/W=H,E=H輸出D0D7=狀態字寫指令輸入RS=L,R/W=L,D0一口7=指令碼,E=高脈沖輸出無讀數據輸入RS=H,R/W=H,E=H輸出D0D7=數據寫數據輸入RS=H,R/W=L,D0D7=數據,E=高脈沖輸出無表10-15:基本操作時序表讀寫操作時

23、序如圖10-55和10-56所示:圖10-55讀操作時序圖10-56寫操作時序四、軟件設計系統程序主要包括主程序、讀出溫度子程序、溫度轉換子程序、計算溫度子程序、顯示等等。1、主程序主要功能是完成DS18B20勺初始化工作,并進行讀溫度,將溫度轉化成為壓縮BCD3并在顯示器上顯示傳感器所測得的實際溫度。2、讀出溫度子程序讀出溫度子程序的主要功能是讀出RAMfr的9字節,在讀出時需要進行CRCK驗,校驗有錯時不進行溫度數據的改寫。其程序流程圖如下圖所示。3、溫度轉換命令子程序溫度轉換命令子程序主要是發溫度轉換開始命令,當采用12位分辯率時轉換時間約為750m6在本程序設計中采用1s顯示程序延時法

24、等待轉換的完成。流程圖圖如下4、計算溫度子程序計算溫度子程序將RAW讀取值進行BC叩的轉換運算,并進行溫度值正負的判定。流程圖如下:五、完整程序如下:#include<reg52.h>#include<intrins.h>typedefunsignedcharuint8;#defineuintunsignedint#defineucharunsignedcharsbitDQ=P3A3;/定義DCS唧為P3.3ucharcodeBw10=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;/百位編碼ucharcodeXsw1

25、6=0x30,0x31,0x31,0x32,0x33,0x33,0x34,0x34,0x35,0x36,0x36,0x37,0x38,0x38,0x39,0x39;/小數位編碼sbitRS=P2A0;sbitRW=P2A1;sbitEN=P2A2;sbitBUSY=P0A7;ucharwendu;uchartemp_g,temp_d;unsignedcharcodeword1="Temperature:“;voiddelay(uintxms)uinti,j;for(i=xms;i>0;-i)for(j=110;j>0;-j);)voidDelayus(intt)/在11.

26、059MHz的晶振條件下調用本函數需要24仙s,然后每次計數需16sints;for(s=0;s<t;s+);)等待繁忙標志voidwait(void)P0=0xFF;doRS=0;RW=1;EN=0;EN=1;while(BUSY=1);EN=0;寫數據voidw_dat(uint8dat)wait();EN=0;P0=dat;RS=1;RW=0;EN=1;EN=0;寫命令voidw_cmd(uint8cmd)wait();EN=0;P0=cmd;RS=0;RW=0;EN=1;EN=0;發送字符串到LCDvoidw_string(uint8addr_start,uint8*p)w_cm

27、d(addr_start);while(*p!='0')(w_dat(*p+);.初始化1602voidInit_LCD1602(void)w_cmd(0x38)w_cmd(0x0c)w_cmd(0x06)w_cmd(0x01)/16*2顯示,5*7點陣,8位數據接口/顯示器開、光標開、光標允許閃爍/文字不動,光標自動右移/清屏ucharReset()/完成單總線的復位操作。(uchard;DQ=0;/將DQ線拉低Delayus(29);/保持480s.復位時間為480s,因此延時時間為(480-24)/16=28.5,取29仙s。DQ=1;/DQ返回高電平Delayus(3)

28、;/等待存在脈沖.經過70仙s之后檢測存在脈沖,因此延時時間為(70-24)/16=2.875,取3s。d=DQ;/獲得存在信號Delayus(25);/等待時間隙結束return(d);/返回存在信號,0=器件存在,1=無器件voidwrite_bit(ucharbitval)/向單總線寫入1位值:bitval(.DQ=0;/將DQ拉低開始寫時間隙if(bitval=1)DQ=1;/如果寫1,DQ返回高電平Delayus(5);/在時間隙內保持電平值,DQ=1;/Delayus函數每次循環延時16仙s,因止匕Delayus(5)=5*16+24=104avoidds18write_byte(

29、charval)/向單總線寫入一個字節值:val(.uchari;寫入字節,每次寫入一位uchartemp;for(i=0;i<8;i+)/(temp=val>>i;temp&=0x01;write_bit(temp);Delayus(5);)ucharread_bit()/從單總線上讀取一位信號,所需延時時間為15(is,因此無法調用前面定義/的Delayus()函數,而采用一個for()循環來實現延時。uchari;DQ=0;/將DQ拉低開始讀時間隙DQ=1;/然后返回高電平for(i=0;i<3;i+);/延時15(isreturn(DQ);/返回DQ線上

30、的電平值)uchards18read_byte()/從單總線讀取一個字節的值uchari;ucharvalue=0;for(i=0;i<8;i+)/讀取字節,每次讀取一個字節if(read_bit()value|=0x01<<i;/然后將其左移Delayus(6);)return(value);)intReadtemperature()/如果單總線節點上只有一個器件則可以直接掉用本函數。如果節點上有多個器/件,為了避免數據沖突,應使用MatchROhfi數來選中特定器件uchartemp_d,temp_g,k,get2,temp;/跳過ROM/啟動溫度轉換/跳過ROM/讀暫存

31、器Reset();ds18write_byte(0xcc);ds18write_byte(0x44);Delayus(5);Reset();ds18write_byte(0xcc);ds18write_byte(0xbe);for(k=0;k<2;k+)getk=ds18read_byte();)temp_d=get0;/低位temp_g=get1;/高位if(temp_g&0xf0)=0xf0)/正負號判斷temp_d=temp_d;一一temp_d=temp_d+0x01;/00000000temp_g=-temp_g;/00000010temp_g=temp_g+0x01;

32、/00000011)一一else(temp_d=temp_d+0x01;temp_g=-temp_g;)一一w_cmd(0xc5);w_dat(Xswtemp_d&0x0f);/查表得小數位的值temp=(temp_d&0xf0)>>4)|(temp_g&0x0f)<<4);w_cmd(0xc1);w_dat(0x2d);/負號)else/正數(w_cmd(0xc5);w_dat(Xswtemp_d&0x0f);/查表得小數位的值temp=(temp_d&0xf0)>>4)|(temp_g&0x0f)<<4

溫馨提示

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

最新文檔

評論

0/150

提交評論