【優(yōu)秀畢業(yè)設(shè)計(jì)】基于AT89C51單片機(jī)的多點(diǎn)溫度檢測系統(tǒng)的設(shè)計(jì)
《【優(yōu)秀畢業(yè)設(shè)計(jì)】基于AT89C51單片機(jī)的多點(diǎn)溫度檢測系統(tǒng)的設(shè)計(jì)》由會員分享,可在線閱讀,更多相關(guān)《【優(yōu)秀畢業(yè)設(shè)計(jì)】基于AT89C51單片機(jī)的多點(diǎn)溫度檢測系統(tǒng)的設(shè)計(jì)(70頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 南 京 理 工 大 學(xué) 畢業(yè)設(shè)計(jì)說明書(論文) 作 者 : 孫露 學(xué) 號: 104910252060 教 研 室 : 機(jī)電教研室 專 業(yè) : 機(jī)電一體化工程 題 目 : 多點(diǎn)溫度檢測系統(tǒng)的設(shè)計(jì) 指導(dǎo)者: 謝聰 工程師 評閱者: 2012 年 5 月 中 文 摘 要 本設(shè)計(jì)系統(tǒng)地介紹了基于 DS18B20 的多點(diǎn)溫度測量系統(tǒng)的組成、設(shè)計(jì)方案、 電路原理、程序設(shè)計(jì)以及系統(tǒng)仿真過程。DS18B20 多點(diǎn)溫度測量系統(tǒng)是以 AT89C51 單片機(jī)作為控制核心,智能溫度傳感 DS18B20 為控制對象,運(yùn)用匯編 語言編程實(shí)現(xiàn)系統(tǒng)的各種功能。 該系統(tǒng)由單片機(jī)最小系統(tǒng)、傳感器電路、報(bào)警電路、LCD 顯示電路
2、、行列 式鍵盤電路、電源電路六大部分組成。借助 PROTEUS 軟件,實(shí)現(xiàn)了系統(tǒng)電路設(shè) 計(jì)和仿真。它適用于電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑等場所,還可以 用于環(huán)境惡劣的工業(yè)控制現(xiàn)場。通過 DS18B20 的單總線技術(shù),實(shí)現(xiàn)對遠(yuǎn)程環(huán)境 的溫度測量與監(jiān)控。 關(guān)鍵詞 DS18B20, 仿真, 測量系統(tǒng), PROTEUS 英 文 摘 要 Title MULTI-POINT TEMPERATURE DETECTION SYSTEM DESIGN Abstract This system introduced on the DS18B20 multi-point temperature measure
3、ment system components, design, circuit theory, program design and product development process. DS18B20 multi-point temperature measurement system is controlled by the core AT89C51 SCM , smart temperature sensing DS18B20 targets for the control, and is used of Edit collected materials language progr
4、amming system functions. The system is the smallest MCU system, sensor circuit, alarm circuits, LCD display circuit, the five major determinant keyboard circuit components. The system is constituted from PROTEUS software, and the system design and simulation, and the eventual adoption of hardware ve
5、rification six big part. It is applicable to electric power industry, coal mine, forest, a fire, key figures building etc. place, return can used for environment bad of industry control the spot. DS18B20 through a single bus technology, to achieve the long-range environmental temperature measurement
6、 and monitoring. Key words DS18B20, simulation, measurement system,PROTEUS 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 I 頁 共 II 頁 目 錄 1 緒論 .1 1.1 課題設(shè)計(jì)背景 .1 1.2 課題研究的目的意義 .1 1.3 國內(nèi)外現(xiàn)狀及水平 .2 1.4 課題研究內(nèi)容 .2 2 系統(tǒng)的需求分析與總體方案論證 .4 2.1 基于模擬溫度傳感器設(shè)計(jì)方案 .4 2.2 基于數(shù)字溫度傳感器設(shè)計(jì)方案 .5 2.3 方案論證 .5 3 電路設(shè)計(jì) .7 3.1 工作原理 .7 3.2 DS18B20 與單片機(jī)接
7、口技術(shù) .8 3.2.1 DS18B20 的引腳功能 .8 3.2.2 DS18B20 與單片機(jī)接口電路 .8 3.2.3 溫度寄存器格式和溫度/數(shù)據(jù)對應(yīng)關(guān)系 .9 3.2.4 單片機(jī)對 DS18B20 的控制方法 .10 3.3 鍵盤電路設(shè)計(jì) .13 3.3.1 行列式鍵盤與單片機(jī)接口電路 .13 3.3.2 鍵盤面板 .13 3.4 顯示電路設(shè)計(jì) .14 3.4.1 LCD 引腳分布及功能 .14 3.4.2 單片機(jī)與圖形液晶的接口電路 .15 3.5 報(bào)警電路設(shè)計(jì) .16 3.6 電源電路設(shè)計(jì) .17 4 程序設(shè)計(jì) .18 4.1 系統(tǒng)資源分配 .18 4.1.1 系統(tǒng)硬件資源分配 .1
8、8 4.1.2 系統(tǒng)軟件資源分配 .18 4.2 系統(tǒng)流程設(shè)計(jì) .18 4.2.1 主程序流程設(shè)計(jì) .18 4.2.2 DS18B20 程序流程設(shè)計(jì) .20 4.2.3 顯示程序流程 .21 4.2.4 鍵盤程序程序流程 .22 4.3 程序設(shè)計(jì) .24 4.3.1 主程序設(shè)計(jì) .24 5 系統(tǒng)仿真 .25 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 II 頁 共 II 頁 5.1 PROTEUS 仿真環(huán)境介紹 .25 5.2 原理圖繪制 .26 5.3 程序加載 .27 5.3.1 程序編譯 .27 5.3.2 程序加載 .27 5.4 系統(tǒng)仿真 .28 5.5 仿真結(jié)果分析 .
9、33 結(jié)束語 .34 致 謝 .35 參考文獻(xiàn) .36 附錄一 .38 附錄二 .39 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 1 頁 共 61 頁 1 緒論 1.1 課題設(shè)計(jì)背景 溫度是一個和人們生活環(huán)境有著密切關(guān)系的物理量,也是一種在生產(chǎn)、科研、 生活中需要測量和控制的重要物理量,是國際單位制七個基本量之一,同時(shí)它也是 一種最基本的環(huán)境參數(shù)。人民的生活與環(huán)境溫度息息相關(guān),物理、化學(xué)、生物等學(xué) 科都離不開溫度。在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中,在電力、化工、石油、冶金、機(jī)械制 造、大型倉儲室、實(shí)驗(yàn)室、農(nóng)場塑料大棚甚至人們的居室里經(jīng)常需要對環(huán)境溫度進(jìn) 行檢測,并根據(jù)實(shí)際的要求對環(huán)境溫度進(jìn)
10、行控制。比如,發(fā)電廠鍋爐的溫度必須控 制在一定的范圍之內(nèi);許多化學(xué)反應(yīng)的工藝過程必須在適當(dāng)?shù)臏囟认虏拍苷_M(jìn)行。 煉油過程中,原油必須在不同的溫度和壓力條件下進(jìn)行分流才能得到汽油、柴油、 煤油等產(chǎn)品;沒有合適的溫度環(huán)境,許多電子設(shè)備不能正常工作,糧倉的儲糧就會 變質(zhì)霉?fàn)€,酒類的品質(zhì)就沒有保障??梢?,研究溫度的測量具有重要的理論意義和 推廣價(jià)值。 隨著現(xiàn)代計(jì)算機(jī)和自動化技術(shù)的發(fā)展,作為各種信息的感知、采集、轉(zhuǎn)換、傳 輸相處理的功能器件,溫度傳感器的作用日益突出,成為自動檢測、自動控制系統(tǒng) 和計(jì)量測試中不可缺少的重要技術(shù)工具,其應(yīng)用已遍及工農(nóng)業(yè)生產(chǎn)和日常生活的各 個領(lǐng)域。本設(shè)計(jì)就是為了滿足人們在生
11、活生產(chǎn)中對溫度測量系統(tǒng)方面的需求。 本設(shè)計(jì)要求系統(tǒng)測量的溫度的點(diǎn)數(shù)為 4 個,測量精度為 0.1,測溫范圍為 -55+128。采用液晶顯示溫度值和路數(shù),顯示格式為:溫度的符號位,整數(shù)部分,小 數(shù)部分,最后一位顯示。顯示數(shù)據(jù)每一秒刷新一次。 1.2 課題研究的目的意義 21 世紀(jì)科學(xué)技術(shù)的發(fā)展日新月異,科技的進(jìn)步帶動了測量技術(shù)的發(fā)展,現(xiàn)代控 制設(shè)備的性能和結(jié)構(gòu)發(fā)生了巨大的變化,我們已經(jīng)進(jìn)入了高速發(fā)展的信息時(shí)代,測 量技術(shù)也成為當(dāng)今科技的主流之一,被廣泛地應(yīng)用于生產(chǎn)的各個領(lǐng)域。對于本次設(shè) 計(jì),其目的在于: (1)掌握數(shù)字溫度傳感器 DS18B20 的原理、性能、使用特點(diǎn)和方法,利用 C51 對系統(tǒng)
12、進(jìn)行編程。 (2)本課題綜合了現(xiàn)代測控、電子信息、計(jì)算機(jī)技術(shù)專業(yè)領(lǐng)域方方面面的知識, 具有綜合性、科學(xué)性、代表性,可全面檢驗(yàn)和促進(jìn)學(xué)生的理論素養(yǎng)和工作能力。 (3) 本課題的研究可以使學(xué)生更好地掌握基于單片機(jī)應(yīng)用系統(tǒng)的分析與設(shè)計(jì) 方法,培養(yǎng)創(chuàng)新意識、協(xié)作精神和理論聯(lián)系實(shí)際的學(xué)風(fēng),提高電子產(chǎn)品研發(fā)素質(zhì)、 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 2 頁 共 61 頁 增強(qiáng)針對實(shí)際應(yīng)用進(jìn)行控制系統(tǒng)設(shè)計(jì)制作的能力。 1.3 國內(nèi)外現(xiàn)狀及水平 傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工農(nóng)業(yè)生 產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量高居各種傳感器之首。溫度傳感器的發(fā)展大致經(jīng) 歷
13、了以下三個階段:傳統(tǒng)的分立式溫度傳感器(含敏感元件);模擬集成溫度傳感器 控制器;數(shù)字溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數(shù)字式、由 集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展,同時(shí)具有抑制串模干擾能力強(qiáng)、分辨力高、 線性度好、成本低等優(yōu)點(diǎn)。隨著我國四個現(xiàn)代化和經(jīng)濟(jì)發(fā)展,我國在科技和生產(chǎn)各 領(lǐng)域都取得了飛速的發(fā)展和進(jìn)步,發(fā)展以溫度傳感器為載體的溫度測量技術(shù)具有重 大意義。 DS18B20 是美國 DALLAS 公司生產(chǎn)的單總線數(shù)字溫度傳感器,可把溫度信號直接 轉(zhuǎn)換成串行數(shù)字信號供微機(jī)處理,而且可以在一條總線上掛接任意多個 DS18B20 芯片,構(gòu) 成多點(diǎn)溫度檢測系統(tǒng)無需任何外加硬件(單總線
14、數(shù)字溫度傳感器 DS18B20 及其在 單片機(jī)系統(tǒng)的應(yīng)用 ) 。 單總線數(shù)字溫度傳感器,具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易于與 微控制器接口優(yōu)點(diǎn),適合于各種溫度測控系統(tǒng)(數(shù)字溫度傳感器 DS18B20 及其應(yīng)用 ) 。以 DS18B20 為例,介紹數(shù)字式溫度傳感器的功能特點(diǎn)及由 DS18B20 組成的溫度測 控網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)。 隨著社會的發(fā)展、農(nóng)業(yè)生產(chǎn)也進(jìn)人了工廠化、數(shù)字化時(shí)代,人們開始“使用人工 設(shè)施、人工控制環(huán)境因素,使植物獲得最適宜的生長條件,從而延長生產(chǎn)季節(jié),獲得最 佳產(chǎn)出”,由此“工廠化農(nóng)業(yè)”應(yīng)運(yùn)而生并被廣泛接受(單總線溫度傳感器 DS18B20 及其在溫室系統(tǒng)中的應(yīng)用 )
15、 。 我國是一個人口眾多的農(nóng)業(yè)大國 ,糧食生產(chǎn)、需求與儲備量很大 ,糧食在儲備 的過程中常因糧食的濕度過大而升溫發(fā)熱 ,又由于檢測手段的落后造成溫檢系統(tǒng)錯 報(bào)或漏報(bào) ,從而導(dǎo)致糧食大量的腐爛變質(zhì) ,給國家?guī)砭薮蟮膿p失。這就對糧情檢 測系統(tǒng)提出了較高的要求( 一種基于單線數(shù)字溫度傳感器 DS18B20 的儲糧溫度檢 測系統(tǒng)的設(shè)計(jì) ) 。而基于 DS18B20 設(shè)計(jì)的溫度檢測系統(tǒng)就可以實(shí)現(xiàn)這一需求。 1.4 課題研究內(nèi)容 本設(shè)計(jì)研究的主要內(nèi)容如下: (1)在廣泛查閱溫度檢測控制理論和方法、測溫技術(shù)和溫度控制技術(shù)等資料的 基礎(chǔ)上,根據(jù)不同的控制要求及應(yīng)用領(lǐng)域完成對系統(tǒng)方案的總體設(shè)計(jì)。本設(shè)計(jì)采用 以
16、 AT89C51 為核心的單片機(jī)系統(tǒng),來實(shí)現(xiàn)對溫度的檢測、報(bào)警等功能。 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 3 頁 共 61 頁 (2)研究比較各相關(guān)元器件的功能與特點(diǎn),選擇合適的元器件。 (3)系統(tǒng)硬件設(shè)計(jì)。系統(tǒng)硬件設(shè)計(jì)主要包括:溫度檢測、單片機(jī)數(shù)據(jù)采集處理、 顯示、鍵盤設(shè)定、報(bào)警電路等部分。 (4)系統(tǒng)軟件設(shè)計(jì)。本課題采用匯編語言,利用 Keil 編譯器進(jìn)行編程及調(diào)試。 主要研究 DS18B20 與單片機(jī)的通信協(xié)議、時(shí)序及一些通用程序等。 本設(shè)計(jì)的難點(diǎn)分為硬件和軟件兩個方面。其中硬件開發(fā)的難點(diǎn)在于各種元器件 的選擇和使用,如各種電阻、電容等的選擇。軟件開發(fā)的難點(diǎn)在于 D
17、S18B20 的時(shí)序, 如果時(shí)序不正確,將無法讀出正確的溫度值,對系統(tǒng)產(chǎn)生很大的影響。 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 4 頁 共 61 頁 2 系統(tǒng)的需求分析與總體方案論證 2.1 基于模擬溫度傳感器設(shè)計(jì)方案 該方案由單片機(jī)、模擬溫度傳感器 AD590、運(yùn)算放大器、AD 轉(zhuǎn)換器、44 鍵盤、LCD 顯示電路、集成功率放大器、報(bào)警器組成,如圖 2.1 所示。 本方案采用模擬溫度傳感器 AD590 作為測溫元件,傳感器將測量的溫度變 換轉(zhuǎn)換成電流的變化,再通過電路轉(zhuǎn)換成電壓的變化,使用運(yùn)算放大器交將信 號進(jìn)行適當(dāng)?shù)姆糯?,最后通過模數(shù)轉(zhuǎn)換器將模擬信號轉(zhuǎn)換成數(shù)字信號,傳給給
18、單片機(jī),單片機(jī)將溫度值進(jìn)行處理之后用 LCD 顯示 ,當(dāng)溫度值超過設(shè)置值時(shí), 系統(tǒng)開始報(bào)警。 單片機(jī) 模擬溫度傳感器 模擬溫度傳感器 L C D 顯示電路 集 成 功 放 報(bào) 警 器 4 4 鍵盤 模擬傳感器 A D 5 9 0 模擬溫度傳感器 模擬溫度傳感器 運(yùn) 算 放 大 器 多 路 選 擇 器 A / D 轉(zhuǎn) 換 圖 2.1 基于模擬溫度傳感器的測量系統(tǒng)方案 本方案使用的測溫元件的性能指標(biāo)如下: (1)AD590 的測溫范圍為55+150。 (2)AD590 的電源電壓范圍為 4V30V,電源電壓可在 4V6V 范圍變化, 電流 變化 1mA,相當(dāng)于溫度變化 1K。AD590 可以承受
19、44V 正向電壓和 20V 反向 電壓,因而器件反接也不會被損壞。 (3)輸出電阻為 710MW。 (4)精度高,AD590 共有 I、J、K、L、M 五檔,其中 M 檔精度最高,在 55+150范圍內(nèi),非線性誤差為0.3。 集成溫度傳感器具有線性好、精度適中、靈敏度高、體積小、使用方便, 溫度測量范圍廣等優(yōu)點(diǎn),得到廣泛應(yīng)用。集成溫度傳感器的輸出形式分為電壓 輸出和電流輸出兩種。電壓輸出型的靈敏度一般為 10mV/K,溫度 0時(shí)輸出為 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 5 頁 共 61 頁 0,溫度 25時(shí)輸出 2.982V。電流輸出型的靈敏度一般為 1mA/K。 2.2
20、 基于數(shù)字溫度傳感器設(shè)計(jì)方案 該方案使用了 AT89C51 單片機(jī)作為控制核心,以智能溫度傳感器 DS18B20 為 溫度測量元件,采用多個溫度傳感器對各點(diǎn)溫度進(jìn)行檢測,通過 44 鍵盤模塊 對正常溫度進(jìn)行設(shè)置顯示電路采用 12864 LCD 模塊,使用 LM386 作為報(bào)警電 路中的功率放大器。 圖 2.2 基于數(shù)字溫度傳感器測量系統(tǒng)方案 本課題采用數(shù)字溫度傳感器 DS18B20 作為測為測溫元件,它具有如下特點(diǎn): (1)只要求一個端口即可實(shí)現(xiàn)通信。 (2)在 DS18B20 中的每個器件上都有獨(dú)一無二的序列號。 (3)實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測溫。 (4)測量溫度范圍在55到
21、128之間。 (5)數(shù)字溫度計(jì)的分辨率用戶可以從 9 位到 12 位選擇。 (6)內(nèi)部有溫度上、下限告警設(shè)置。 2.3 方案論證 本設(shè)計(jì)要求測量的點(diǎn)數(shù)為 4,測溫范圍為-55+128,精度為 0.1。 采用液晶顯示,同時(shí)顯示路數(shù)和溫度,每秒刷新 1 次顯示數(shù)據(jù)。 綜合模擬溫度傳感器和數(shù)字溫度傳感器的性能指標(biāo),以上兩個方案都能達(dá) 到設(shè)計(jì)的要求。 方案一采用模擬溫度傳感器 AD590,轉(zhuǎn)換結(jié)果需要經(jīng)過運(yùn)算放大器和 AD 轉(zhuǎn) 換器傳送給處理器。它控制雖然簡單,成本低,但是后續(xù)電路復(fù)雜,且需要進(jìn) 單片機(jī)溫 度 傳 感 器溫 度 傳 感 器 LCD顯 示 電 路集成功放 報(bào)警器4鍵 盤溫 度 傳 感 器
22、DS18B20溫 度 傳 感 器溫 度 傳 感 器 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 6 頁 共 61 頁 行溫度標(biāo)定,集成溫度傳感器 AD590 輸出為電流信號,且輸出信號較弱,所以需 要后續(xù)放大及 A/D 轉(zhuǎn)換電路,如采用普通運(yùn)放則精度難以保證,而測量放大器 價(jià)格較高,這樣會使系統(tǒng)成本升高。 方案二采用了數(shù)字溫度傳感器 DS18B20,改變了傳統(tǒng)溫度測試方法。它能 在現(xiàn)場采集溫度數(shù)據(jù),直接將溫度物理量變換為數(shù)字信號并以總線方式傳送到 單片機(jī)進(jìn)行數(shù)據(jù)處理,并且可根據(jù)實(shí)際要求通過簡單的編程實(shí)現(xiàn) 9-12 位的數(shù)字 式讀數(shù)方式,因而使用 DS18B20 可使系統(tǒng)結(jié)構(gòu)更趨簡單
23、,可靠性更高,大大提 高系統(tǒng)的抗干擾能力。DS18B20 體積小、經(jīng)濟(jì)、使用方便靈活,測試精度高, 較高的性能價(jià)格比,有 CRC 校驗(yàn),系統(tǒng)簡明直觀。適合于惡劣環(huán)境的現(xiàn)場溫度 測試,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費(fèi)電子產(chǎn)品等。 方案二程序設(shè)計(jì)稍微復(fù)雜一些,但在畢業(yè)設(shè)計(jì)期間我用 DS18B20 做過溫度 計(jì),也調(diào)試過 LCD,并且已經(jīng)用 PROTEUS 實(shí)現(xiàn)了系統(tǒng)的仿真。因此,該方案完 全具有可行性,同時(shí)體現(xiàn)了技術(shù)的先進(jìn)性,經(jīng)濟(jì)上也有很大的優(yōu)勢。 綜上所述,本課題采用方案二對系統(tǒng)進(jìn)行設(shè)計(jì)。 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 7 頁 共 61 頁 3 電路設(shè)計(jì) 3.1
24、 工作原理 基于 DS18B20 多點(diǎn)溫度測量系統(tǒng)以 AT89C51 為核心器件,以 KEIL 為系統(tǒng)開 發(fā)平臺,用匯編語言進(jìn)行程序設(shè)計(jì),以 PROTEUS 作為仿真軟件設(shè)計(jì)而成的。系 統(tǒng)主要由傳感器電路、液晶顯示電路、鍵盤電路、報(bào)警電路、電源電路組成, 系統(tǒng)原理圖如圖 3.1 所示。 圖 3.1 系統(tǒng)原理圖 DS18B20 是數(shù)字溫度傳感器,它的輸入/輸出采用數(shù)字量,以單總線技術(shù), 接收主機(jī)發(fā)送的命令,根據(jù) DS18B20 內(nèi)部的協(xié)議進(jìn)行相應(yīng)的處理,將轉(zhuǎn)換的溫 度以串口發(fā)送給主機(jī)。主機(jī)按照通信協(xié)議用一個 IO 口模擬 DS18B20 的時(shí)序,發(fā) 送命令(初始化命令、ROM 命令、RAM 命令
25、)給 DS18B20,轉(zhuǎn)換完成之后讀取溫 度值,在內(nèi)部進(jìn)行相應(yīng)的數(shù)值處理,用圖形液晶模塊顯示各點(diǎn)的溫度。在系統(tǒng) 啟動之時(shí),可以通過 44 鍵盤設(shè)置各點(diǎn)溫度的上限值,當(dāng)某點(diǎn)溫度超過設(shè)置值 時(shí),報(bào)警器開始報(bào)警,液晶顯示該傳感器的路數(shù)、設(shè)置溫度值、實(shí)際溫度值, 從而實(shí)現(xiàn)了對各點(diǎn)溫度的實(shí)時(shí)監(jiān)控。 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 8 頁 共 61 頁 每個 DS18B20 有自己的序列號,因此本系統(tǒng)可以在一根總線上掛接了 4 個 DS18B20,通過 CRC 校驗(yàn),對各個 DS18B20 的 ROM 進(jìn)行尋址,地址符合的 DS18B20 才作出響應(yīng),接收主機(jī)的命令,向主機(jī)發(fā)送轉(zhuǎn)換
26、的溫度。采用這種 DS18B20 尋址技術(shù),使系統(tǒng)硬件電路更加簡單。 3.2 DS18B20 與單片機(jī)接口技術(shù) 3.2.1 DS18B20 的引腳功能 DS18B20 的引腳功能描述見表 3.1。 表 3.1DS18B20 引腳功能描述 序號 名稱 引腳功能描述 1 GND 地信號 2 DQ 數(shù)字輸入輸出引腳,開漏單總線接口引腳,當(dāng)使用寄生 電源時(shí),可向電源提供電源 3 VDD 可選擇的 VDD 引腳,當(dāng)工作于寄生電源時(shí),該引腳必須 接地 3.2.2 DS18B20 與單片機(jī)接口電路 如圖 3.2 所示,為單片機(jī)與 DS18B20 的接口電路。DS18B20 只有三個引腳, 一個接地,一個接電
27、源,一個數(shù)字輸入輸出引腳接單片機(jī)的 P1.7 口,電源與數(shù) 字輸入輸出腳間需要接一個 4.7K 的電阻。 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 9 頁 共 61 頁 圖 3.2 DS18B20 與單片機(jī)接口電路 3.2.3 溫度寄存器格式和溫度/數(shù)據(jù)對應(yīng)關(guān)系 DS18B20 溫度寄存器如表 3.2 所示。其寄存器有 16 位,高 5 位為符號位,低 13 位為數(shù)據(jù)位。當(dāng)寄存器高 5 位為 1 時(shí),表示溫度為負(fù),否則為正。 表 3.2 溫度寄存器格式 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LS Byte 表 3.3 溫度/數(shù)據(jù)的關(guān)系 B
28、 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS Byte 如果測得的溫度大于 0,只要將測到的數(shù)值乘于 0.0625 即可得到實(shí)際溫度; 如果溫度小于 0,測得的數(shù)值需要取反加 1 再乘 0.0625,即可得到實(shí)際的溫度 值。如表 3.3 所示,是 DS18B20 的溫度與數(shù)據(jù)的對應(yīng)關(guān)系。 23 22 21 20 2-1 2-2 2-3 2-4 S S S S S 26 25 24 DS18B20 單 片 機(jī)P1.7VDGNQ4.7K 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 10 頁 共 61 頁 3.2.4 單片機(jī)對 DS1
29、8B20 的控制方法 DS18B20 采用嚴(yán)格的單總線通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義 了 幾種信號類型:復(fù)位脈沖、應(yīng)答脈沖、寫 0、寫 1、讀 0 和讀 1。除了應(yīng)答脈沖 所有 這些信號都由主機(jī)發(fā)出同步信號??偩€上傳輸?shù)乃袛?shù)據(jù)和命令都是以字 節(jié)為單位。且低位在前,高位在后。 (1)初始化序列:復(fù)位脈沖和應(yīng)答脈沖 在初始化過程中,主機(jī)通過拉低單總線至少 480s,以產(chǎn)生復(fù)位脈沖(TX), 然 后主機(jī)釋放總線并進(jìn)入接收(RX)模式。當(dāng)總線被釋放后,5k 的上拉電阻將單 總線拉高。DS18B20 檢測到這個上升沿后,延時(shí) 15s60s,通過拉低總線 60s240s 產(chǎn)生應(yīng)答脈沖。初始化脈
30、沖如圖 3.3 所示。 溫度 輸出(2 進(jìn)制) 輸出(16 進(jìn)制) +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +20.0625 0000 0001 1001 0001 0191H +10.125 0000 0000 1010 0010 00A2H +0.5 0000 0000 0000 1000 0008H 0 0000 0000 0000 0000 0000H -0.5 1111 1111 1111 1000 FFF8H -10.125 1111 1111 0101 1110 FF5EH 25.0625 1110
31、 1110 0110 1111 EE6FH -55 1111 1110 1001 0000 FE90H 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 11 頁 共 61 頁 圖 3.3 DS18B20 初始化時(shí)序 (2)DS18B20 的讀寫控制 在寫時(shí)序期間,主機(jī)向 DS18B20 寫入數(shù)據(jù);而在讀時(shí)序期間,主機(jī)讀入來自 DS18B20 的數(shù)據(jù)。在每一個時(shí)序,總線只能傳輸一位數(shù)據(jù)。讀/寫時(shí)序如圖 3.4 所示。 DS18B20 寫時(shí)序 DS18B20 存在兩種寫時(shí)序:“寫 1”和“寫 0”。主機(jī)在寫 1 時(shí)序向 DS18B20 圖 3.4 DS18B20 讀寫時(shí)序 寫入邏輯 1,而
32、在寫 0 時(shí)序向 DS18B20 寫入邏輯 0。所有寫時(shí)序至少需要 60s,且在兩次寫時(shí)序之間至少需要 1s 的恢復(fù)時(shí)間。兩種寫時(shí)序均以主機(jī)拉 低總線開始。 產(chǎn)生寫 1 時(shí)序:主機(jī)拉低總線后,必須在 15s 內(nèi)釋放總線,然后由上拉電 阻將總線拉至高電平。產(chǎn)生寫 0 時(shí)序:主機(jī)拉低總線后,必須在整個時(shí)序期間 至 少 480us 至 少 480us主 機(jī) 初 始 化 主 機(jī) 初 應(yīng) 答Presnce pulse60-24 主 機(jī) 寫 ”0時(shí) 序 主 機(jī) 寫 ”1時(shí) 序 主 機(jī) 讀 ”0時(shí) 序 主 機(jī) 讀 ”1時(shí) 序30us15us15us 15us15us30us30us15us15us 15us
33、15us30us 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 12 頁 共 61 頁 保持低電平(至少 60s) 。 在寫時(shí)序開始后的 15s60s 期間,DS18B20 采樣總線的狀態(tài)。如果總線 為高電平,則邏輯 1 被寫入 DS18B20;如果總線為低電平,則邏輯 0 被寫入 DS18B20。 讀時(shí)序 DS18B20 只能在主機(jī)發(fā)出讀時(shí)序時(shí)才能向主機(jī)傳送數(shù)據(jù)。所以主機(jī)在發(fā)出 讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時(shí)序,以便 DS18B20 能夠傳送數(shù)據(jù)。所有讀時(shí) 序至少 60s,且在兩次獨(dú)立的讀時(shí)序之間至少需要 1s 的恢復(fù)時(shí)間。 每次讀時(shí)序由主機(jī)發(fā)起,拉低總線至少 1s。在主機(jī)發(fā)起讀時(shí)
34、序之后, DS18B20 開始在總線上傳送 1 或 0。若 DS18B20 發(fā)送 1,則保持總線為高電平; 若發(fā)送 0,則拉低總線。當(dāng)傳送 0 時(shí),DS18B20 在該時(shí)序結(jié)束時(shí)釋放總線,再由 上拉電阻將總線拉回空閑高電平狀態(tài)。DS18B20 發(fā)出的數(shù)據(jù)在讀時(shí)序下降沿起 始后的 15s 內(nèi)有效,因此主機(jī)必須在讀時(shí)序開始后的 15s 內(nèi)釋放總線,并且 采樣總線狀態(tài)。 DS18B20 的命令序列 根據(jù) DS18B20 的通訊協(xié)議,主機(jī)(單片機(jī))控制 DS18B20 完成溫度轉(zhuǎn)換必 須經(jīng)過三個步驟:每一次讀寫之前都要對 DS18B20 進(jìn)行復(fù)位操作,復(fù)位成功后 發(fā)送一條 ROM 指令,最后發(fā)送 RA
35、M 指令,這樣才能對 DS18B20 進(jìn)行預(yù)定的操作。 ROM 命令通過每個器件 64-bit 的 ROM 碼,使主機(jī)指定某一特定器件(如果 有多個器件掛在總線上)與之進(jìn)行通信。DS18B20 的 ROM 如表 3.4 所示,每個 ROM 命令都是 8 bit 長。 表 3.4 DS18B20 ROM 命令 指令 協(xié)議 功能 讀 ROM 33H 讀 DS18B20 中的編碼(即 64 位地址) 符合 ROM 55H 發(fā)出此命令后,接著發(fā)出 64 位 ROM 編碼,訪問單總線上 與該編碼相對應(yīng)的 DS18B20,使之作出響應(yīng),為下一步對 該 DS18B20 的讀寫作準(zhǔn)備 搜索 ROM 0F0H
36、用于確定掛接在同一總線上 DS18B20 的個數(shù)和識別 64 位 ROM 地址,為操作各器件作好準(zhǔn)備 跳過 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS18B20 溫度轉(zhuǎn)換命令,適 用于單個 DS18B20 工作 告警搜索命 令 0ECH 執(zhí)行后,只有溫度超過廟宇值上限或下限的片子才做出響 應(yīng) 溫度轉(zhuǎn)換 44H 啟動 DS18B20 進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時(shí)間最長為 500ms(典 型為 200ms),結(jié)果豐入內(nèi)部 9 字節(jié) RAM 中 讀暫存器 BEH 讀內(nèi)部 RAM 中 9 字節(jié)的內(nèi)容 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 13 頁 共 61 頁 寫暫存器 4
37、EH 發(fā)出向內(nèi)部 RAM 的第 3、4 字節(jié)寫上、下溫度數(shù)據(jù)命令, 緊該溫度命令之后,傳達(dá)兩字節(jié)的數(shù)據(jù) 復(fù)制暫存 器 48H 將 RAM 中第 3、4 字內(nèi)容復(fù)制到 E2PROM 中 重調(diào) E2PROM 0B8H 將 E2PROM 中內(nèi)容恢復(fù)到 RAM 中的第 3、4 字節(jié) 讀供電方式 0B4H 讀 DS18B20 的供電模式,寄生供電時(shí) DS18B20 發(fā)送“0” , 外部供電時(shí) DS18B20 發(fā)送“1” 3.3 鍵盤電路設(shè)計(jì) 3.3.1 行列式鍵盤與單片機(jī)接口電路 根據(jù)本設(shè)計(jì)需要,本系統(tǒng)采用了 44 鍵盤實(shí)現(xiàn)對溫度值和功能鍵的設(shè)定。 行列式鍵盤與單片機(jī)的接口電路如圖 3.5 所示,H0-
38、H3 為行線,接單片機(jī) P2 口的高 4 位,L0-L3 為列線,接單片機(jī) P2 口的低 4 位。初始化時(shí)鍵盤行線為 高電 平,列線為低電平。鍵盤的行線接 4 輸入與門,4 輸入與門的輸出接單片機(jī)的 外部中斷 0 引腳 P3.2 口。當(dāng)有鍵按下時(shí),將產(chǎn)生中斷,在中斷程序里對按鍵進(jìn) 行 掃描,得到按鍵的鍵值。 圖 3.5 44 鍵盤結(jié)構(gòu) 3.3.2 鍵盤面板 鍵盤面板如圖 3.6 所示,本系統(tǒng)使用的鍵盤有 10 數(shù)字鍵,5 個功能按鍵。 在系統(tǒng)啟動時(shí),先按“設(shè)置”鍵,然后按相應(yīng)的數(shù)字鍵,按“左移”或者“右 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 14 頁 共 61 頁 移”鍵改變
39、其他溫度的值。按“確認(rèn)”鍵之后系統(tǒng)正式啟動。系統(tǒng)在運(yùn)行過程 之中可以通過按“重新設(shè)置”鍵,對溫度重新進(jìn)行設(shè)置。 圖 3.6 鍵盤面板 3.4 顯示電路設(shè)計(jì) 3.4.1 LCD 引腳分布及功能 (1) 12864 液晶顯示屏共有 20 個引腳,其引腳名稱及引腳編號的對應(yīng)關(guān) 系如圖 3.7 所示: 圖 3.7 12864 液晶顯示模塊引腳分布圖 123456789101213145161781920VSDVORS/WEDB0 DB7DB6DB5DB4DB3DB2DB1 CS1CS2/RTVEAK 0 21 3設(shè) 置 確 認(rèn) 右 移左 移 重 新設(shè) 置98 7645 本 科 畢 業(yè) 設(shè) 計(jì) 說 明
40、書 ( 論 文 ) 第 15 頁 共 61 頁 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 16 頁 共 61 頁 (2)引腳功能如表 3.5 所示: 表 3.5 12864 液晶顯示模塊引腳功能 引腳 符 號 引 腳 功 能 引腳 符 號 引 腳 功 能 1 VSS 電源地 15 CS1 CS1=1 芯片選擇左邊 64*64點(diǎn) 2 VDD 電源正+5V 16 CS2 CS2=1 芯片選擇右邊 64*64點(diǎn) 3 VO 液晶顯示驅(qū)動電源 17 /RST 復(fù)位(低電平有效) 4 RS H:數(shù)據(jù)輸入;L:指令碼輸入 18 VEE LCD 驅(qū)動負(fù)電源 5 R/W H:數(shù)據(jù)讀?。籐:數(shù)據(jù)寫入
41、 19 A 背光電源(+) 6 E 使能信號。 20 K 背光電源(-) 7-14 DB0-DB7 數(shù)據(jù)線 有些型號的模塊 19、20 腳為空腳 3.4.2 單片機(jī)與圖形液晶的接口電路 LCD 與單片機(jī)的接口電路如圖 3.8 所示: 單片機(jī)對 LCD 的控制方法將在下一章中詳細(xì)介紹。 圖 3.8 LCD 與單片機(jī)的接口電路 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 17 頁 共 61 頁 3.5 報(bào)警電路設(shè)計(jì) 本系統(tǒng)設(shè)計(jì)中有報(bào)警器,使用 LM386 作為報(bào)警器的功率放大器,如圖 3.9 所示。 LM386 是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電 壓范圍大、外接
42、元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用于錄音機(jī)和收音機(jī)之 中。 LM386 的輸入端接單片機(jī)的引腳 P3.4,輸出端接揚(yáng)聲器。當(dāng)實(shí)際溫度超過 設(shè)置的溫度值時(shí),單片機(jī)引腳輸出一定頻率的信號,信號經(jīng)過音頻功放放大之 后,發(fā)出報(bào)警聲。 圖 3.9 LM386 功放電路 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 18 頁 共 61 頁 3.6 電源電路設(shè)計(jì) 電源是整個系統(tǒng)的能量來源,它直接關(guān)系到系統(tǒng)能否運(yùn)行。在本系統(tǒng)中單 片機(jī)、液晶顯示、報(bào)警等電路需要 5V 的電源,因此電路中選用穩(wěn)壓芯片 7805,其最大輸出電流為 1.5A,能夠滿足系統(tǒng)的要求,其電路如圖 3.10 所示。 圖 3.10
43、 電源電路 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 19 頁 共 61 頁 4 程序設(shè)計(jì) 4.1 系統(tǒng)資源分配 4.1.1 系統(tǒng)硬件資源分配 本系統(tǒng)電路連接及硬件資源分配如圖 4.1 所示。采用 AT89C51 單片機(jī)作為 核心器件,DS18B20 作為溫度測量裝置,通過 AT89C51 的 P1.7 口將溫度值送入 單片機(jī)處理,利用 12864LCD 顯示器和 44 鍵盤作為人機(jī)接口。 圖 4.1 系統(tǒng)硬件資源分配 4.1.2 系統(tǒng)軟件資源分配 本系統(tǒng)采用了匯編語言進(jìn)行程序設(shè)計(jì),系統(tǒng)自動為各個變量分配內(nèi)存區(qū)域。 用戶可以將變量定義在 data 區(qū)、IDATA 區(qū)、PDATA
44、區(qū)、XDATA 區(qū),常量定義在 CODE 區(qū)。 4.2 系統(tǒng)流程設(shè)計(jì) 4.2.1 主程序流程設(shè)計(jì) 主程序先對系統(tǒng)資源進(jìn)行初始化,調(diào)用 LCD 顯示子程序,顯示啟動畫面。然 后進(jìn)入鍵盤設(shè)置界面。當(dāng)設(shè)置鍵按下后,開始設(shè)置各點(diǎn)的溫度,設(shè)置完之后, 如果確認(rèn)鍵按下,則系統(tǒng)開始工作。首先調(diào)用 DS18B20 初始化子程序,再發(fā)送 ROM 命令,讀取 DS18B20 轉(zhuǎn)換的溫度值。當(dāng)讀取的溫度大于設(shè)置的溫度值時(shí),報(bào) 警器開始報(bào)警,LCD 顯示溫度的實(shí)際值、設(shè)置值、路數(shù)、狀態(tài)。接下來對第二、 三、四路溫度進(jìn)行采集,處理,顯示。 P0. P0.7 12864LCD顯 示 模 塊P3.4P3. 報(bào) 警 器P3.
45、5 .734鍵 盤 P2.0 P2.3P2.4 P2.744L0 3H0 3 P3.2/INT0A89C1 P1.7四 輸 入 與 門DS18B20 3.0 3.12 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 20 頁 共 61 頁 主程序流程如圖 4.2 所示: 圖 4.2 主程序流程 初 始 化設(shè) 置 鍵 按 下 ?設(shè) 置 各 點(diǎn) 溫 度 確 認(rèn) 鍵 按 下 ?YN 讀 取 溫 度 值溫 度 值 高 于 設(shè) 置 值 調(diào) 用 LCD顯 示報(bào) 警 YN 初 始 化 命 令發(fā) 送 ROM命 令匹 配 第 一 路 讀 取 溫 度 值溫 度 值 高 于 設(shè) 置 值 調(diào) 用 LCD顯 示
46、報(bào) 警 YN 初 始 化 命 令發(fā) 送 ROM命 令匹 配 第 二 路 讀 取 溫 度 值溫 度 值 高 于 設(shè) 置 值 調(diào) 用 LCD顯 示報(bào) 警 YN 初 始 化 命 令發(fā) 送 ROM命 令匹 配 第 三 路 讀 取 溫 度 值溫 度 值 高 于 設(shè) 置 值 調(diào) 用 LCD顯 示報(bào) 警 YN 初 始 化 命 令發(fā) 送 ROM命 令匹 配 第 四 路 開 始 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 21 頁 共 61 頁 4.2.2 DS18B20 程序流程設(shè)計(jì) 由上一章單片機(jī)對 DS18B20 的控制方法,設(shè)計(jì)出如下程序流程: 圖 4.3 寫命令子程序流程圖 圖 4.4 D
47、S18B20 復(fù)位子程序流程 圖 圖 4.5 DS18B20 讀溫度子程序流程圖 DQ置 1置 0延 時(shí) 573微 秒DQ置 1 延 時(shí) , 等 待 DS18B20響 應(yīng)DQ=0?初 始 化 成 功 返 回 DQ初 始 化 不 成 功YNi=8置 DQ0=AT處理后的八位符號值溫度度存放單元 TEMPL DATA 25H ;實(shí)時(shí)溫度低八位存放單元 TEMPH DATA 26H ;實(shí)時(shí)溫度高八位存放單元 TEMP_TH DATA 27H ;高溫報(bào)警值存放單元 TEMP_TL DATA 28H ;低溫報(bào)警值存放單元 TEMPHC DATA 29H ;百位和十位 BCD 碼存放單元 TEMPLC D
48、ATA 2AH ;個位和小數(shù) BCD 碼存放單元 LCD_X EQU 2FH ;LCD 地址變量 LCD_RS EQU P1.0 ;LCD RS 端 LCD_RW EQU P1.1 ;LCD RW 端 LCD_EN EQU P1.2 ;LCD EN 端 FLAG1 EQU 20H.0 ;DS18B20 存在標(biāo)志位 FLAG2 EQU 20H.2 ;負(fù)數(shù)標(biāo)志位 FLAG3 EQU 20H.3 ;負(fù)數(shù)時(shí),十位為零(滅 0 顯示標(biāo)志位) FLAG4 EQU 20H.4 ;正數(shù)時(shí),百位為零、十位也為零(滅 0 顯 示標(biāo)志位) FLAG5 EQU 20H.1 ;負(fù)溫度下限標(biāo)志位 FLAG6 EQU 21
49、H.0 ;按鍵 1 操作標(biāo)志位 FLAG7 EQU 21H.1 ;按鍵 2 操作標(biāo)志位 FLAG8 EQU 21H.2 ;按鍵 3 操作標(biāo)志位 FLAG9 EQU 21H.3 ;按鍵 4 操作標(biāo)志位 DATE_LINE EQU P3.7 ;DS18B20 總線 ;* ORG 0000H JMP MAIN MAIN: MOV SP,#60H MOV A,#00H 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 42 頁 共 61 頁 MOV R0,#20H ;將 20H-2FH 單元清零 MOV R1,#10H CLEAR: MOV R0,A INC R0 DJNZ R1,CLEAR C
50、ALL SET_LCD CALL RE_18B20 MOV TEMP_TH,#50H ;設(shè)置溫度上限報(bào)警值為 80 度 MOV TEMP_TL,#14H ;設(shè)置溫度下限報(bào)警值為 20 度 SETB FLAG5 ;FLAG5=0 正溫度下限,F(xiàn)LAG5=1 負(fù)溫度下限 START: CALL RESET ;18B20 復(fù)位子程序 JNB FLAG1,START1 ;DS1820 不存在 CALL MENU_OK CALL READ_E2 ;溫度報(bào)警值拷貝到暫存器 JMP START2 START1: CALL MENU_ERROR CALL TEMP_BJ ;顯示溫度標(biāo)記 JMP $ START
51、2: CALL RESET JNB FLAG1,START1 ;DS1820 不存在 MOV A,#0CCH ; 跳過 ROM 匹配 CALL WRITE MOV A,#44H ; 發(fā)出溫度轉(zhuǎn)換命令 CALL WRITE ;* ;由單片機(jī)向單總線發(fā)送四個 DS18B20 的 ROM 序列號 CALL DELAY 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 43 頁 共 61 頁 LCALL RESET MOV A,#55H LCALL WRITE MOV A,#28H LCALL WRITE MOV A,#24H LCALL WRITE MOV A,#0C5H LCALL WRIT
52、E MOV A,#39H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#05FH LCALL WRITE MOV A,#0BEH LCALL WRITE LCALL READ MOV 74H,TEMPL MOV 75H,TEMPH LCALL RESET MOV A,#55H LCALL WRITE MOV A,#28H LCALL WRITE MOV A,#30H LCALL WRITE 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 44 頁 共 61
53、頁 MOV A,#0C5H LCALL WRITE MOV A,#0B8H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#08EH LCALL WRITE MOV A,#0BEH LCALL WRITE LCALL READ MOV 76H,TEMPL MOV 77H,TEMPH LCALL RESET MOV A,#55H LCALL WRITE MOV A,#28H LCALL WRITE MOV A,#31H LCALL WRITE MOV A,#0C5H L
54、CALL WRITE MOV A,#0B8H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#00H 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 45 頁 共 61 頁 LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#0B9H LCALL WRITE MOV A,#0BEH LCALL WRITE LCALL READ MOV 78H,TEMPL MOV 79H,TEMPH LCALL RESET MOV A,#55H LCALL WRITE MOV A,#28H LCALL WRITE MOV A,#32H
55、LCALL WRITE MOV A,#0C5H LCALL WRITE MOV A,#0B8H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#00H LCALL WRITE MOV A,#0E0H LCALL WRITE MOV A,#0BEH LCALL WRITE 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 46 頁 共 61 頁 LCALL READ MOV 7AH,TEMPL MOV 7BH,TEMPH LCALL RESET ;* ;2*2 鍵盤 ;* SMKEY: MOV P2,#030
56、H MOV A,P2 ANL A,#0F0H CJNE A,#030H,HKEY SJMP J_00 HKEY: CALL CLR_2LINE ;先對 LCD 第二行進(jìn)行清屏 LCALL DELAY10 MOV A,P2 ANL A,#0F0H MOV B,A CJNE A,#030H,WKEY SJMP J_00 WKEY: MOV P2,#03H MOV A,P2 ANL A,#0FH ORL A,B JB ACC.0,BANWE4 JMP BANWE5 BANWE4: JB ACC.4,XUANZE4 JMP XUANZE3 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 47
57、頁 共 61 頁 BANWE5: JB ACC.5, XUANZE1 JMP XUANZE2 ;* JMP J_00 XUANZE1: SETB FLAG6 CLR FLAG7 CLR FLAG8 CLR FLAG9 JMP J_00 XUANZE2: SETB FLAG7 CLR FLAG6 CLR FLAG8 CLR FLAG9 JMP J_00 XUANZE3: SETB FLAG8 CLR FLAG7 CLR FLAG6 CLR FLAG9 JMP J_00 XUANZE4: SETB FLAG9 CLR FLAG7 CLR FLAG8 CLR FLAG6 J_00:NOP JB FL
58、AG6 ,TEMPH11 JB FLAG7 ,TEMPH22 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 48 頁 共 61 頁 JB FLAG8 ,TEMPH33 JB FLAG9 ,TEMPH44 JMP ST_00 ;* TEMPH11: MOV DPTR,#T_1 ;指針指到顯示消息“TEMP :” MOV A,#2 ;顯示在第二行 CALL LCD_PRINT ;調(diào)字符串顯示子程序 MOV TEMPL,74H ;把從 DS18B20 讀出的初始溫度低八位送 TEMPL MOV TEMPH,75H ;把從 DS18B20 讀出的初始溫度高八位送 TEMPH LCALL ST
59、ART3 ;調(diào)溫度轉(zhuǎn)換、顯示子程序 JMP ST_00 ;回到 START2,重新發(fā)出溫度轉(zhuǎn)換命令 TEMPH22: MOV DPTR,#T_2 ;指針指到顯示消息“TEMP :” MOV A,#2 ;顯示在第二行 CALL LCD_PRINT MOV TEMPL,76H MOV TEMPH,77H LCALL START3 JMP ST_00 TEMPH33: MOV DPTR,#T_3 ;指針指到顯示消息“TEMP :” MOV A,#2 ;顯示在第二行 CALL LCD_PRINT MOV TEMPL,78H MOV TEMPH,79H LCALL START3 JMP ST_00 TE
60、MPH44: MOV DPTR,#T_4 ;指針指到顯示消息“TEMP :” 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 49 頁 共 61 頁 MOV A,#2 ;顯示在第二行 CALL LCD_PRINT MOV TEMPL,7AH MOV TEMPH,7BH LCALL START3 JMP ST_00 ST_00: JMP START2 ;* START3: CALL CONVTEMP ;把從 DS18B20 讀到的初始溫度轉(zhuǎn)換組合成兩 個字節(jié)的 BCD 碼 CALL DISPBCD ;把溫度折分成單個 BCD 碼并設(shè)滅零顯示標(biāo)志位 CALL TEMP_COMP ;顯示溫度
61、比較結(jié)果符號 CALL TEMP_BJ ;顯示溫度標(biāo)記 CALL LCD_DISP ;顯示溫度百位、十位、個位、小數(shù)點(diǎn)及小數(shù)位 還有符號 RET ;*; SET_LCD: ;對 LCD 做初始化設(shè)置及測試 CLR LCD_EN CALL INIT_LCD ;初始化 LCD CALL STORE_DATA ;將自定義字符存入 LCD 的 CGRAM RET INIT_LCD: ;8 位 I/O 控制 LCD 接口初始化 MOV A,#38H ;雙列顯示,字形 5*7 點(diǎn)陣 CALL WCOM CALL DELAY1 MOV A,#0EH CALL WCOM CALL DELAY1 本 科 畢 業(yè)
62、 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 50 頁 共 61 頁 MOV A,#38H ;雙列顯示,字形 5*7 點(diǎn)陣 CALL WCOM CALL DELAY1 MOV A,#0CH ;開顯示,顯示光標(biāo),光標(biāo)不閃爍 CALL WCOM CALL DELAY1 MOV A,#01H ;清除 LCD 顯示屏 CALL WCOM CALL DELAY1 RET ;* WCOM: ;以 8 位控制方式將命令寫至 LCD MOV P0,A ;寫入命令 CLR LCD_RS ;RS=L,RW=L,D0-D7=指令碼,E= 高脈沖 CLR LCD_RW SETB LCD_EN ACALL DELAY1 C
63、LR LCD_EN RET ;* WDATA: ;以 8 位控制方式將數(shù)據(jù)寫至 LCD MOV P0,A ;寫入數(shù)據(jù) SETB LCD_RS CLR LCD_RW SETB LCD_EN CALL DE CLR LCD_EN CALL DE RET DE: MOV R7,#250 DJNZ R7,$ 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 51 頁 共 61 頁 RET ;* DELAY: MOV R0,#100 DEL2:MOV R1,#100 DEL3:DJNZ R1,DEL3 DJNZ R0,DEL2 RET DELAY10: MOV R6,#20H Q6:MOV R5,
64、#0BBH Q5:DJNZ R5,Q5 DJNZ R6,Q6 RET DELAY1: ;延時(shí) 5MS MOV R6,#25 DL2:MOV R7,#100 DJNZ R7,$ DJNZ R6,DL2 RET ;* STORE_DATA: MOV A,#40H CALL WCOM MOV R2,#08H MOV DPTR,#D_DATA MOV R3,#00H S_DATA: MOV A,R3 MOVC A,A+DPTR CALL WDATA ;寫入數(shù)據(jù) 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 52 頁 共 61 頁 INC R3 DJNZ R2,S_DATA RET ;* D_
65、DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00H ;* RE_18B20: JB FLAG1,RE_18B20A RET RE_18B20A: CALL RESET MOV A,#0CCH ;跳過 ROM 匹配 LCALL WRITE MOV A,#4EH ;寫暫存寄存器 LCALL WRITE MOV A,TEMP_TH ;TH(報(bào)警上限) LCALL WRITE MOV A,TEMP_TL ;TL(報(bào)警下限) LCALL WRITE MOV A,#7FH ;12 位精確度 LCALL WRITE RET RESET: SETB DATE_LINE NOP C
66、LR DATE_LINE MOV R0,#6BH ;主機(jī)發(fā)出延時(shí)復(fù)位低脈沖 MOV R1,#04H TSR1:DJNZ R0,$ MOV R0,#6BH 本 科 畢 業(yè) 設(shè) 計(jì) 說 明 書 ( 論 文 ) 第 53 頁 共 61 頁 DJNZ R1,TSR1 SETB DATE_LINE ;然后拉高數(shù)據(jù)線 NOP NOP NOP MOV R0,#32H TSR2:JNB DATE_LINE,TSR3 ;等待 DS18B20 回應(yīng) DJNZ R0,TSR2 JMP TSR4 ; 延時(shí) TSR3:SETB FLAG1 ; 置標(biāo)志位,表示 DS1820 存在 JMP TSR5 TSR4:CLR FLAG1 ; 清標(biāo)志位,表示 DS1820 不存在 JMP TSR7 TSR5:MOV R0,#06BH TSR6:DJNZ R0,$ ; 時(shí)序要求延時(shí)一段時(shí)間 TSR7:SETB DATE_LINE RET ;* WRITE: MOV R2,#8 ;一共 8 位數(shù)據(jù) CLR C WR1: CLR DATE_LINE ;開始寫入 DS18B20 總線要處于復(fù)位(低)狀 態(tài) MOV R3,#07 DJ
- 溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外研版(一起)英語一年級上冊Module-5課件
- 外研版(一起)五上Module-10《Unit-1-You-should-tidy-your課件
- 認(rèn)識線段課件
- 患者病情評估培訓(xùn)完整
- 早產(chǎn)兒的護(hù)理教學(xué)
- 我們吃的食物安全嗎
- 鹽酸硫酸—浙教版九級科學(xué)上冊課件1
- 人工智能遺傳算法
- 硬質(zhì)景觀的細(xì)部處理龍湖
- 人教版小學(xué)二年級上冊數(shù)學(xué)8的乘法口訣
- 郵輪旅游世界郵輪產(chǎn)業(yè)經(jīng)濟(jì)的發(fā)展
- 如何繪制出高品質(zhì)的學(xué)科思維導(dǎo)圖
- 美國癲癇學(xué)會驚厥性癲癇持續(xù)狀態(tài)治療指南解讀
- 城市公共空間設(shè)計(jì)理論及方法課件
- (課件)正弦定理公開課