基于51單片機(jī)和DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第1頁
基于51單片機(jī)和DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第2頁
基于51單片機(jī)和DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第3頁
基于51單片機(jī)和DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第4頁
基于51單片機(jī)和DS18B20的數(shù)字溫度計(jì)設(shè)計(jì)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢 業(yè) 設(shè) 計(jì) (論 文)課題名稱:基于51單片機(jī)和DS18B20的溫度計(jì)設(shè)計(jì)指導(dǎo)教師: 系 別: 電 子 信 息 系 專 業(yè): 樓 宇 智 能 化 工 程 技 術(shù) 班 級: 14 樓 宇 1 班 姓 名: 摘 要隨著科技的不斷發(fā)展,電子設(shè)備的應(yīng)用已經(jīng)取得了非凡的成就。即使是高度集成化的今天,單片機(jī)技術(shù)依舊在我們的日常生活中占據(jù)著重要的地位。溫度是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護(hù)、化工、石油等領(lǐng)域最常用到的一個物理量。測量溫度的基本方法是使用溫度計(jì)直接讀取溫度。最常見到得測量溫度的工具是各種各樣的溫度計(jì)。它們常常以刻度的形式表示溫度的高低,人們必須通過讀取刻度值的多少來測量溫度。利用單片機(jī)和溫度

2、傳感器構(gòu)成的電子式智能溫度計(jì)就可以直接測量溫度,得到溫度的數(shù)字值,既簡單方便,有直觀準(zhǔn)確。本文介紹了一個基于STC89C51單片機(jī)和數(shù)字溫度傳感器DS18B20的測溫系統(tǒng),并用LED數(shù)碼管顯示溫度值,易于讀數(shù)。系統(tǒng)電路簡單、操作簡便,系統(tǒng)具有可靠性高、成本低、功耗小等優(yōu)點(diǎn)。通過Proteus畫圖以及Keil編程,成功的仿真出了能夠?qū)崟r測量溫度并顯示溫度的數(shù)字溫度計(jì)。關(guān)鍵詞:單片機(jī)、數(shù)字溫度傳感器、溫度計(jì)目 錄摘 要2目 錄3第一章 緒言111 課題背景112 課題研究的目的和意義113 國內(nèi)外研究現(xiàn)狀2第二章 設(shè)計(jì)要求32.1設(shè)計(jì)任務(wù)32.2 基本要求3第三章 課程設(shè)計(jì)方案及器材選用分析43.

3、1設(shè)計(jì)總體方案43.1.1方案論證43.1.2總體框圖設(shè)計(jì)53.2器材選用分析53.2.1DS18B20溫度傳感器53.2.2AT89S52單片機(jī)介紹91.AT89S52的主要性能92.AT89S52的功能特性93.3系統(tǒng)硬件設(shè)計(jì)103.3.1 主電路搭建103.3.2 顯示電路113.3.3總體電路12第四章 軟件設(shè)計(jì)134.1主程序134.2讀出溫度子程序134.3溫度轉(zhuǎn)換命令子程序144.4 計(jì)算溫度子程序155.4 鍵盤掃描流程圖15第五章 仿真與調(diào)試165.1仿真與調(diào)試165.2調(diào)試與運(yùn)行16致 謝17主要參考文獻(xiàn):18附錄1:元件清單19附錄2:原理圖20附錄3:實(shí)物圖21附錄4:

4、程序22第一章 緒言11 課題背景工農(nóng)業(yè)生產(chǎn)中經(jīng)常需要測量溫度。在設(shè)計(jì)溫度測量系統(tǒng)時,通*要采用電池供電的極低功耗模塊。傳統(tǒng)的溫度測量手段比較多,但不論是采用分立晶體管,或者是熱電偶,功耗都降不下來。為達(dá)到低功耗要求,采用一枚極低功耗的、帶Flash存儲器的MCU,以及熱敏電阻傳感器、日歷時鐘和液晶模塊(LCD)組成測量系統(tǒng)。采用負(fù)溫度系數(shù)(NTC)熱敏電阻,具有測量靈敏度高、體積小,電阻值大、價格便宜等特點(diǎn),且溫度范圍可以從-40125,精度可達(dá)1,基本上滿足了行業(yè)中對溫度的測量需求。系統(tǒng)兼顧了溫度測量精度和低功耗方面的要求。溫度控制系統(tǒng)在國內(nèi)各行各業(yè)的應(yīng)用雖然已經(jīng)十分廣泛,但從國內(nèi)生產(chǎn)的溫

5、度控制器來講,總體發(fā)展水平仍然不高,同日本、美國、德國等先進(jìn)國家相比,仍然有著較大的差距。成熟的溫控產(chǎn)品主要以點(diǎn)位控制及常規(guī)的PID控制器為主,它們只能適應(yīng)一般溫度系統(tǒng)控制,而用于較高控制場合的智能化、自適應(yīng)控制儀表,國內(nèi)技術(shù)還不十分成熟,形成商品化并廣泛應(yīng)用的控制儀表較少。隨著我國經(jīng)濟(jì)的發(fā)展及加入WTO,我國政府及企業(yè)對此都非常重視,對相關(guān)企業(yè)資源進(jìn)行了重組,相繼建立了一些國家、企業(yè)的研發(fā)中心,開展創(chuàng)新性研究,使我國儀表工業(yè)得到了迅速的發(fā)展。12 課題研究的目的和意義溫度是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護(hù)、化工、石油等領(lǐng)域最常用到的一個物理量。測量溫度的基本方法是使用溫度計(jì)直接讀取溫度。最常見

6、到得測量溫度的工具是各種各樣的溫度計(jì),例如:水銀玻璃溫度計(jì),熱電偶或熱電阻溫度計(jì)等。它們常常以刻度的形式表示溫度的高低,人們必須通過讀取刻度值的多少來測量溫度。傳統(tǒng)的方式是采用熱電偶或熱電阻。利用單片機(jī)和溫度傳感器構(gòu)成的電子式智能溫度計(jì)就可以直接測量溫度,得到溫度的數(shù)字值,既簡單方便,有直觀準(zhǔn)確。隨著社會的不斷發(fā)展,人們對自動化集成中調(diào)空的要求日益提高。即使是高度集成化的今天,單片機(jī)技術(shù)依舊在我們的日常生活中占據(jù)著重要的地位??萍疾粩喟l(fā)展,現(xiàn)代社會對各種信息參數(shù)的采集的準(zhǔn)確度和精確度的要求都有了巨大的增長,然而如何準(zhǔn)確卻又快速的獲取需要的闡述卻受限于當(dāng)代信息基礎(chǔ)的發(fā)展水平。在三大信息技術(shù)中心急

7、采集(傳感器技術(shù))、信息傳遞(通信技術(shù))和信息的處理技術(shù)(計(jì)算機(jī)技術(shù))中,傳感器技術(shù)屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感技術(shù),在我國各個領(lǐng)域已經(jīng)引用的非常廣泛,可以說是滲透到社會的每一個領(lǐng)域,人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實(shí)時測量溫度,農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量,因此研究溫度的測量方法和裝置具有重要的意義。單片機(jī)自問世以來,性能不斷提高和完善,其資源又能滿足很多應(yīng)用場合的需要,加之單片機(jī)具有集成度高、功能強(qiáng)、速度快、體積小、功耗低、使用方便、價格低廉等特點(diǎn),因此,在工業(yè)控制、智能儀器儀表、數(shù)據(jù)采集和處理、通信系統(tǒng)、高級計(jì)算器、家用電器等領(lǐng)域的應(yīng)用日益廣泛,并且正在

8、逐步取代現(xiàn)有的多片微機(jī)應(yīng)用系統(tǒng)例如:單片機(jī)LPC2148目前在移動產(chǎn)品中有還是具有優(yōu)勢的4。單片機(jī)的潛力越來越被人們所重視。特別是當(dāng)前用CMOS工藝制成的各種單片機(jī),由于功耗低,使用的溫度范圍大,抗干擾能力強(qiáng),能滿足一些特殊要求的應(yīng)用場合,更加擴(kuò)大了單片機(jī)的應(yīng)用范圍,也進(jìn)一步促使單片機(jī)性能的發(fā)展。而現(xiàn)在的單片機(jī)在農(nóng)業(yè)上頁有了很多的應(yīng)用。13 國內(nèi)外研究現(xiàn)狀單片機(jī)是指一個集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計(jì)算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實(shí)時時鐘等外圍設(shè)備。而現(xiàn)

9、在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機(jī)也被稱為微控制器(Microcontroller),是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)域。單片機(jī)具有低的處理速度和存儲容量小的特點(diǎn)。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器發(fā)展而來。最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚(yáng)鑣。早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因?yàn)楹唵慰煽慷阅懿诲e獲得了很大的好評。此后在

10、8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當(dāng)代單片機(jī)

11、系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。第二章 設(shè)計(jì)要求2.1設(shè)計(jì)任務(wù)現(xiàn)代社會生活中,多功能的數(shù)字溫度計(jì)可以給我們的生活帶來很大的方便;支持“一線總線”接口的溫度傳感器簡化了數(shù)字溫度計(jì)的設(shè)計(jì),降低了成本;以美國MAXIM/DALLAS半導(dǎo)體公司的單總線溫度傳感器DS18B20為核心,以ATMEL公司的AT89S52為控制器設(shè)計(jì)的DS18B20溫度控制器結(jié)構(gòu)簡單、測溫準(zhǔn)確、具有一定控制功能的智能溫度控制器。此次課程設(shè)計(jì),就是用單片機(jī)1實(shí)現(xiàn)溫度控制

12、,傳統(tǒng)的溫度檢測大多以熱敏電阻為溫度傳感器,但熱敏電阻的可靠性差,測量溫度準(zhǔn)確率低,而且必須經(jīng)過專門的接口電路轉(zhuǎn)換成數(shù)字信號才能由單片機(jī)進(jìn)行處理。本次采用DS18B20數(shù)字溫度傳感器來實(shí)現(xiàn)基于51單片機(jī)的數(shù)字溫度計(jì)的設(shè)計(jì)。該數(shù)字溫度計(jì)利用AD590集成溫度傳感器及其接口電路完成溫度的測量并轉(zhuǎn)換成模擬電壓信號,經(jīng)由模數(shù)轉(zhuǎn)換器ADC0804轉(zhuǎn)換成單片機(jī)能夠處理的數(shù)字信號,然后送到單片機(jī)AT89C51中進(jìn)行處理變換,最后將溫度值顯示在D4、D3、D2、D1共4位七段碼LED顯示器上。系統(tǒng)以AT89C51單片機(jī)為控制核心,加上AD590測溫電路、ADC模數(shù)轉(zhuǎn)換電路、4位溫度數(shù)據(jù)顯示電路以及外圍電源、時

13、鐘電路等組成。2.2 基本要求實(shí)現(xiàn)實(shí)時溫度顯示,4位LED顯示;設(shè)計(jì)溫度控制器原理圖,學(xué)習(xí)用PROTEL畫出該原理圖,并用proteus進(jìn)行仿真;設(shè)計(jì)和繪制軟件流程圖,用C語言進(jìn)行程序編寫;焊接硬件電路,進(jìn)行調(diào)試。第三章 課程設(shè)計(jì)方案及器材選用分析3.1設(shè)計(jì)總體方案顯示器件:LED8位數(shù)碼管,LED液晶屏12864由于本設(shè)計(jì)的需要,僅僅需要顯示溫度值,而且在顯示方面8為數(shù)碼管有著直觀清晰容易分辨的特性,并且綜合考慮8為數(shù)碼管價格便宜,體積小巧等優(yōu)點(diǎn),所以當(dāng)前選取LED8為數(shù)碼管作為顯示器件。提及到溫度的檢測,我們首先會考慮傳統(tǒng)的測溫元件有熱電偶和熱電阻,而熱電偶和熱電阻測出的一般都是電壓,再轉(zhuǎn)

14、換成對應(yīng)的溫度,需要比較多的外部硬件支持,硬件電路復(fù)雜,軟件調(diào)試也復(fù)雜,制作成本高。因此,本數(shù)字溫度計(jì)設(shè)計(jì)采用智能溫度傳感器DS18B20作為檢測元件,測溫范圍為-55C至+125C,最大分辨率可達(dá)0.0625C。DS18B20可以直接讀出被測量的溫度值,而采用三線制與單片機(jī)相連,減少了外部的硬件電路,具有低成本和易使用的特點(diǎn)。按照系統(tǒng)設(shè)計(jì)功能的要求,確定系統(tǒng)由三個模塊組成:主控制器STC89C51,溫度傳感器DS18B20,驅(qū)動顯示電路。總體電路框圖如下:圖3-1 系統(tǒng)總體框圖3.1.1方案論證方案一:由于本設(shè)計(jì)是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或

15、電流采集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計(jì)需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。所以,他的設(shè)計(jì)理論不符合本次設(shè)計(jì)的方案要求,應(yīng)繼續(xù)考慮另一可行方案。方案二:進(jìn)而考慮到用溫度傳感器,在單片機(jī)電路設(shè)計(jì)中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計(jì)要求。因此,從以上兩種方案很容易看出,方案二,電路比較簡單,軟件設(shè)計(jì)也比較簡單,故采用了方案二。3.1.2總體框圖設(shè)計(jì)溫度計(jì)電路設(shè)計(jì)總體設(shè)計(jì)方框圖如圖3-2所示,控制器采用單片機(jī)

16、AT89S52,溫度傳感器采用DS18B20,用3位LED數(shù)碼管以串口傳送數(shù)據(jù)實(shí)現(xiàn)溫度顯示。DS18B20采用3腳PR-35封裝或8腳SOIC封裝。圖3-2 總設(shè)計(jì)方框圖主控制器:單片機(jī)AT89S51具有低電壓供電和體積小等特點(diǎn),四個端口只需要兩個口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。顯示電路:顯示電路采用3位共陽LED數(shù)碼管,從P3口RXD,TXD串口輸出段碼。3.2器材選用分析3.2.1DS18B20溫度傳感器本設(shè)計(jì)的測溫系統(tǒng)采用芯片DS18B20,DS18B20是DALLAS公司的最新單線數(shù)字溫度傳感器,它的體積更小,適用電壓更寬,更經(jīng)濟(jì)。實(shí)現(xiàn)

17、方法簡介:DS18B20采用外接電源方式工作,一線測溫一線與STC89C51連接,測出的數(shù)據(jù)放在寄存器中,將數(shù)據(jù)經(jīng)過BCD碼轉(zhuǎn)換后送到LED顯示。DS18B20溫度傳感器是美國DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式。DS18B20的性能特點(diǎn)如下:獨(dú)特的單線接口僅需要一個端口引腳進(jìn)行通信;多個DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無須外部器件;可通過數(shù)據(jù)線供電,電壓范圍為3.05.5;零待機(jī)功耗;溫度以9或12位數(shù)字;用戶可定義報警設(shè)置; 報警搜

18、索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;負(fù)電壓特性,電源極性接反時,溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作; DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖3-3所示。64位光刻ROM是出廠前被光刻好的,它可以看作是該DS18B20的地址序列號。不同的器件地址序列號不同。圖3-3 DS18B20引腳圖64位ROM的結(jié)構(gòu)開始8位是產(chǎn)品類型的編號,接著是每個器件的惟一的序號,共有48位,最后8位是前面56位的CRC檢驗(yàn)碼,這也是多個DS18B20可以采用一線進(jìn)行通信的原因。溫度報警觸發(fā)

19、器和,可通過軟件寫入戶報警上下限。圖3-4 DS18B20的內(nèi)部結(jié)構(gòu)圖DS18B20溫度傳感器的內(nèi)部存儲器還包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結(jié)構(gòu)為8字節(jié)的存儲器。頭2個字節(jié)包含測得的溫度信息,第3和第4字節(jié)TH和TL的拷貝,是易失的,每次上電復(fù)位時被刷新。第5個字節(jié),為配置寄存器,它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率。DS18B20工作時寄存器中的分辨率轉(zhuǎn)換為相應(yīng)精度的溫度數(shù)值。該字節(jié)各位的定義如下圖3-5所示。低5位一直為1,TM是工作模式位,用于設(shè)置DS18B20在工作模式還是在測試模式,DS18B20出廠時該位被設(shè)置為0,用戶要去改動,R1和

20、0決定溫度轉(zhuǎn)換的精度位數(shù),來設(shè)置分辨率。以12位轉(zhuǎn)化為例說明溫度高低字節(jié)存放形式及計(jì)算:12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在DS18B20的兩個高低兩個8位的RAM中,二進(jìn)制中的前面5位是符號位。如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625才能得到實(shí)際溫度。DSl8B20的內(nèi)部存儲器是由8個單元組成,其中第0、1個存放測量溫度值,第2、3分別存放報警溫度的上下限值,第4單元為配置單元,5、6、7單元在DSl8B20這里沒有被用到。對于第4個寄存器,用戶可以設(shè)置溫度轉(zhuǎn)換精度,系統(tǒng)默認(rèn)12b

21、it轉(zhuǎn)換精度,相當(dāng)于十進(jìn)制的00625,其轉(zhuǎn)換時間大約為750ms。由表3-1可見,DS18B20溫度轉(zhuǎn)換的時間比較長,而且分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時間越長。因此,在實(shí)際應(yīng)用中要將分辨率和轉(zhuǎn)換時間權(quán)衡考慮。高速暫存RAM的第6、7、8字節(jié)保留未用,表現(xiàn)為全邏輯1。第9字節(jié)讀出前面所有8字節(jié)的CRC碼,可用來檢驗(yàn)數(shù)據(jù),從而保證通信數(shù)據(jù)的正確性。表3-1 溫度精度配置當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機(jī)可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625

22、LSB形式表示。當(dāng)符號位S0時,表示測得的溫度值為正值,可以直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)符號位S1時,表示測得的溫度值為負(fù)值,要先將補(bǔ)碼變成原碼,再計(jì)算十進(jìn)制數(shù)值。表2-4-2是一部分溫度值對應(yīng)的二進(jìn)制溫度數(shù)據(jù)。表3-2 溫度精度配置DS18B20完成溫度轉(zhuǎn)換后,就把測得的溫度值與RAM中的TH、TL字節(jié)內(nèi)容作比較。若TTH或TTL,則將該器件內(nèi)的報警標(biāo)志位置位,并對主機(jī)發(fā)出的報警搜索命令作出響應(yīng)。因此,可用多只DS18B20同時測量溫度并進(jìn)行報警搜索。在64位ROM的最高有效字節(jié)中存儲有循環(huán)冗余檢驗(yàn)碼(CRC)。主機(jī)ROM的前56位來計(jì)算CRC值,并和存入DS18B20的CRC值作比較,以

23、判斷主機(jī)收到的ROM數(shù)據(jù)是否正確。DS18B20的測溫原理是這這樣的,器件中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計(jì)數(shù)器1;高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號作為減法計(jì)數(shù)器2的脈沖輸入。器件中還有一個計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖進(jìn)行計(jì)數(shù)進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將55所對應(yīng)的一個基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,計(jì)數(shù)器1和溫度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。減法計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1的預(yù)

24、置值減到0時,溫度寄存器的值將加1,減法計(jì)數(shù)器1的預(yù)置將重新被裝入,減法計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器計(jì)數(shù)到0時,停止溫度寄存器的累加,此時溫度寄存器中的數(shù)值就是所測溫度值。其輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)器門仍未關(guān)閉就重復(fù)上述過程,直到溫度寄存器值大致被測溫度值。另外,由于DS18B20單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作按協(xié)議進(jìn)行。操作協(xié)議為:初使化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。由于DS18B20采用的“一線總線”結(jié)構(gòu),所以數(shù)據(jù)的傳輸

25、與命令的通訊只要通過微處理器的一根雙向Io口就可以實(shí)現(xiàn)。DSl8B20約定在每次通信前必須對其復(fù)位。表3-3 DS18B20的ROM操作指令主機(jī)一旦檢測到DS18B20的存在,根據(jù)DS18B2的工作協(xié)議,就應(yīng)對ROM進(jìn)行操作,接著對存儲器操作,最后進(jìn)行數(shù)據(jù)處理。在DS18B20中規(guī)定了5條對ROM的操作命令。見表3-3。表3-4 DS18B20的存儲器操作指令主機(jī)在發(fā)送完ROM操作指令之后,就可以對DS18B20內(nèi)部的存儲器進(jìn)行操作,同樣DS18B20規(guī)定了6條操作指令。3.2.2AT89S52單片機(jī)介紹1.AT89S52的主要性能與MCS-51單片機(jī)產(chǎn)品兼容,8K字節(jié)在系統(tǒng)可編程Flash存

26、儲器、1000次擦寫周期、全靜態(tài)操作:0Hz33Hz、三級加密程序存儲器、32個可編程I/O口線、三個16位定時器/計(jì)數(shù)器八個中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時器、雙數(shù)據(jù)指針、掉電標(biāo)識符。2.AT89S52的功能特性AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)

27、用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計(jì)數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。8位微控制器8K字節(jié)在系統(tǒng)可編程FlashAT89S52P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,

28、每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時器/計(jì)數(shù)器2的觸發(fā)輸入(P1.1/T2EX)。P1.0T2(定時器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時鐘輸出

29、。P1.1T2EX(定時器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)。P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個。TTL邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVXRI)訪問外部

30、數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。RST復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機(jī)器周期以上高電平將是單片機(jī)復(fù)位。EA/VPP外部訪問允許,欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程

31、序存儲器的指令。3.3系統(tǒng)硬件設(shè)計(jì)3.3.1 主電路搭建主電路主要是:測溫電路以及單片機(jī)最小系統(tǒng)測溫電路:由于每片DS18B20含有唯一的硅串行通信口。加上溫度傳感器DS18B20的高集成度,導(dǎo)致測量電路非常簡單。僅需要用單口與單片機(jī)通信即可。圖3-5 測溫電路單片機(jī)最小系統(tǒng):單片機(jī)最小系統(tǒng)主要包括3個主要部分,復(fù)位電路,電源電路以及時鐘電路。單片機(jī)的時鐘信號用來提供單片機(jī)片內(nèi)各種微操作的時間基準(zhǔn),時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。本系統(tǒng)設(shè)計(jì)采用內(nèi)部振蕩方式。圖3-6 時鐘電路RST端的外部復(fù)位電路有兩種操作方式:上電自動復(fù)位和按鍵手動復(fù)位。按鍵手動復(fù)位有電平方式和脈沖方式兩

32、種,本系統(tǒng)設(shè)計(jì)采用上電復(fù)位。圖3.7 復(fù)位電路 3.3.2 顯示電路顯示電路:顯示電路用四位一體的共陽極數(shù)碼管顯示。圖3-8 顯示電路3.3.3總體電路當(dāng)接通電源以后,溫度傳感器正常工作,溫度傳感器將根據(jù)被測溫度的不同來采集不同的數(shù)據(jù),然后將所采集到的數(shù)據(jù)傳送到比較器到中,然后由比較器將采集到的數(shù)據(jù)轉(zhuǎn)變成高低電平,在送入單片機(jī),單片機(jī)通過控制各個引腳電平的高低來來控制溫度的顯示輸出。整機(jī)電路圖如圖3-9所示。圖3-9 總體電路第四章 軟件設(shè)計(jì)整個系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型的時候軟件也基本定下拉了,從軟件的功能不同,可以分為兩的類:一是主程序,它是整個軟件的核心,專門

33、用來協(xié)調(diào)各個執(zhí)行模塊和操作者的聯(lián)系。二是子程序,它是用來完成各種實(shí)質(zhì)性的工作的,如測量、計(jì)算、顯示、通訊等。每一個執(zhí)行軟件就是一個小的執(zhí)行模塊,這里將每一個模塊一一列出來,并為每個執(zhí)行模塊進(jìn)行功能定義和接口定義。4.1主程序主程序的主要功能是負(fù)責(zé)讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度的實(shí)時顯示,并根據(jù)設(shè)置的上下限判斷是否報警。系統(tǒng)開始運(yùn)行時,溫度傳感器測量并計(jì)算溫度值通過P1.0口傳輸進(jìn)單片機(jī)里進(jìn)行處理,經(jīng)過處理后的數(shù)據(jù)再通過P0口傳輸?shù)綌?shù)碼管進(jìn)行顯示。通過按鍵設(shè)置溫度報警界限,當(dāng)超過報警界限時單片機(jī)將相應(yīng)的數(shù)據(jù)通過P1.1口傳輸進(jìn)行聲光報警。溫度測量每1s進(jìn)行一次。這樣可以在一秒之

34、內(nèi)測量一次被測溫度,其程序流程見圖4-1所示。圖4-1 主程序流程圖4.2讀出溫度子程序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進(jìn)行CRC校驗(yàn),校驗(yàn)有錯時不進(jìn)行溫度數(shù)據(jù)的改寫。其程序流程圖如圖4-2示圖4-2 讀溫度流程圖4.3溫度轉(zhuǎn)換命令子程序溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計(jì)中采用1s顯示程序延時法等待轉(zhuǎn)換的完成16。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖4-3所示。 圖 4-3 溫度轉(zhuǎn)換流程圖4.4 計(jì)算溫度子程序計(jì)算溫度子程序?qū)AM中讀取值進(jìn)行BCD碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定. 圖4-4計(jì)算溫度

35、流程圖5.4 鍵盤掃描流程圖圖 4-5 按鍵掃描流程圖第五章 仿真與調(diào)試5.1仿真與調(diào)試此設(shè)計(jì)的電路在Proteus軟件中進(jìn)行仿真,運(yùn)行 Proteus 的 ISIS 程序后,進(jìn)入該仿真軟件的主界面。主界面由菜單欄、工具欄、預(yù)覽窗口、元件選擇按鈕、元件列表窗口、原理圖繪制窗口和仿真進(jìn)程控制按鈕組成(如圖7-2所示)。通過元件選擇按鈕 P (從庫中選擇元件命令) 命令,在彈出的 Pick Devices 窗口中選擇電路所需的元件,放置元件并調(diào)整其相對位置,對元件參數(shù)設(shè)置及元器件間連線,完成單片機(jī)系統(tǒng)的硬件原理圖繪制。5.2調(diào)試與運(yùn)行(1)首先啟動KEIL C51軟件的集成開發(fā)環(huán)境,從桌面上雙擊u

36、Vision圖標(biāo)以啟動軟件。(2)建立工程文件。通常單片機(jī)應(yīng)用系統(tǒng)軟件包含多個源程序文件,KEIL C51使用工程這一概念,將這些參數(shù)設(shè)置和所需的所有文件都加在一個工程中。因此,需要建立一個工程文件,并為這個工程選擇CPU,確定編譯,匯編,連接的參數(shù),指定調(diào)試的方式。(3)建立并添加源文件。使用菜單或者單擊工具欄的新建文件按鈕,出現(xiàn)文本便捷窗口,在該窗口中輸入新編制的源程序并保存該文件。然后,我打開已經(jīng)畫好的仿真圖,再將生成的HEX文件導(dǎo)入單片機(jī)里,點(diǎn)擊開始按鈕,電路正常工作,并且能夠?qū)崿F(xiàn)預(yù)先設(shè)想的所有功能,而且效果很好,從而驗(yàn)證了我的程序的正確性。圖5.1 仿真結(jié)果圖致 謝值此論文撰寫即將結(jié)

37、束之際,回想2年半的學(xué)習(xí)和研究生活,本人感慨頗深,深感時間的短促。在此次的論文撰寫過程中,許多熟識的或僅僅是認(rèn)識的人向本人提供了無私熱情的幫助和支持,這是由于這些人的鼓勵和默默支持,才使本人能夠較為順利的完成了此次論文的編寫。在本文即將完成之際,我在此向所有為本文的完成提供了有益的建議和全力的幫助的人們致以最為由衷的謝意以及表達(dá)本人的感激之情。在本論文的撰寫過程中,我首先要對李艷華導(dǎo)師表示最誠摯的感謝。在論文選題及早期的準(zhǔn)備工作期間,老師無私的分享了所掌握的相關(guān)研究資料,并對資料內(nèi)容進(jìn)行了詳細(xì)而有效的分析,為本人的論文撰寫提供較好的背景資料。在論文撰寫期間,老師為課題的進(jìn)行提供了盡可能多的物質(zhì)

38、和理論的支持,并在算法的研究過程中給予了啟發(fā)性的指導(dǎo)。沒有老師的潛心指導(dǎo)和悉心照料,本課題根本無法進(jìn)行。在此再次對老師表示謝意。我還要感謝同學(xué)們對我的幫助,他們用豐富的理論和實(shí)踐經(jīng)驗(yàn)為本人提供了良好的學(xué)習(xí)氛圍和參考價值,正是在與他們的實(shí)際接觸中讓我逐漸完善自己的不足,并不斷取得進(jìn)步。同時,還要感謝我身邊的朋友們,在我生活和學(xué)習(xí)彷徨的時候給我有力的支持和幫助。我還要要感謝我的父母,是他們在精神、學(xué)業(yè)和生活上給我全力的關(guān)心和鼓勵,論文的順利完成也有他們的一份功勞。最后,衷心的向給予我無私幫助的所有老師和同學(xué)致以謝意,向本人就讀的安徽工商職業(yè)學(xué)院致謝,它的嚴(yán)格、嚴(yán)肅、認(rèn)真的教育態(tài)度和良好的學(xué)習(xí)設(shè)施及

39、氛圍讓本人受益匪淺??傊?jīng)過長時間的論文撰寫,我不僅提高了理論分析的能力,同時也提高了動手實(shí)踐的能力,作為這段學(xué)習(xí)生活的總結(jié),本論文的完成對于本人有著無法替代的重要意義。主要參考文獻(xiàn):1、王小立.單片機(jī)應(yīng)用技術(shù)一體化教程 中國科學(xué)技術(shù)大學(xué)出版社 20062、孫育才. MCS-51系列單片微型計(jì)算機(jī)及其應(yīng)用. 第3版.南京:東南大學(xué)出版社 20033、畢萬新.單片機(jī)原理與接口技術(shù) 第2版 大連理工出版社4、譚浩強(qiáng).C語言程序設(shè)計(jì)(第三版).北京:清華大學(xué)出版社,20055、譚浩強(qiáng).C語言設(shè)計(jì)解題與上機(jī)指導(dǎo)(第二版).北京:清華大學(xué)出版社,19996、單片機(jī)學(xué)習(xí)網(wǎng).http:/www.mcust

40、7、DS18B20使用說明書附錄1:元件清單序號元件名稱代號規(guī)格數(shù)量1單片機(jī)U1AT89C5212溫度計(jì)U2DS18B2013四位一體共陽數(shù)碼管U30.5614晶振Y112MHz15三極管Q1、Q2、Q3、Q4901246電阻R1、R610K27電阻R2、R3、R4、R52.2K48瓷片電容C2、C330pF29電容C110uF110萬用板7*9111圓孔母座3PIN112電源插座DC113電源線USB114小按鍵K1115自鎖開關(guān)S1116IC座40腳1附錄2:原理圖附錄3:實(shí)物圖附錄4:程序#include #define ui unsigned int#define uc

41、unsigned char /宏定義sbit DQ =P37; /定義DS18B20總線I/Obit bdata fuhao;uc qian,bai,shi,ge;uc code led=0x5F,0x44,0x9D, 0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7;uc code led_dian=0x7f,0x64, 0xbd,0xf5,0xe6,0xf3,0xfb,0x67,0xff,0xf7;/*延時子程序*/void Delay(int num)while(num-) ;/*初始化DS18B20*/void Init_DS18B20()DQ = 1; /DQ復(fù)位Delay(8); /稍做延時DQ = 0; /單片機(jī)將DQ拉低Delay(80); /精確延時,大于480usDQ = 1; /拉高總線Delay(40);/*讀一個字節(jié)*/uc ReadOneChar()uc i=0;uc dat = 0;for (i=8;i0;i-)DQ = 0; / 給脈沖信號da

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論