基于單片機的單總線多點溫度測控系統(tǒng)_第1頁
基于單片機的單總線多點溫度測控系統(tǒng)_第2頁
基于單片機的單總線多點溫度測控系統(tǒng)_第3頁
基于單片機的單總線多點溫度測控系統(tǒng)_第4頁
基于單片機的單總線多點溫度測控系統(tǒng)_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要 本課題主要介紹基于 at89c51 單片機和 ds18b20 數(shù)字溫度傳感器的多點溫 度測量系統(tǒng)。該系統(tǒng)利用 at89c51 單片機分別采集各個溫度點的溫度,實現(xiàn)溫 度顯示、報警等功能。它以 at89c51 單片機為主控制芯片,采用數(shù)字溫度傳感器 ds18b20 實現(xiàn)多路溫度的檢測,測量精度可以達到 0.5。該系統(tǒng)采用了 lcd1602a 液晶顯示模塊,lcd1602a 作為顯示器 ,形象直觀的顯示測出的溫度值。 本文首先在緒論中介紹了此系統(tǒng)的背景以及功能。第二章確定設(shè)計方案。在第 三章論述了總體的設(shè)計過程,確定了技術(shù)指標(biāo)及器件的選擇并且描述了系統(tǒng)硬 件電路設(shè)計、硬件設(shè)計框圖及所使用的

2、各種芯片功能與特性。第四章重點剖析 了軟件設(shè)計的過程。最后一章中具體論述了系統(tǒng)的調(diào)試軟件及調(diào)試中出現(xiàn)的問 題?;?at89c51 單片機的單總線多點溫度測控系統(tǒng)具有硬件組成簡單、多點 溫度檢測、讀數(shù)方便、精度高、測溫范圍廣等特點,在實際工程中得到廣泛應(yīng) 用。 關(guān)鍵詞關(guān)鍵詞:數(shù)字溫度傳感器,at89c51 單片機,單總線 abstract the problem introduces at89c51 monolithic machine and the ds18b20 figure temperature sensor-based multiple spot temperature measu

3、rement system mainly. at89c51 single chip using the system were collected at various temperatures of the temperature, temperature display and alarm functions. it at89c51 mcu-based control chip, digital temperature sensor ds18b20 the realization of multi-channel temperature detection, measurement acc

4、uracy can reach 0.5 . the system uses lcd1602a liquid crystal display modules,lcd1602a as a display, the display of visual images to measure the temperature. this article first described in the introduction of this system, as well as background features. the second chapter to determine the design. i

5、n the third chapter discusses the overall design process to determine the technical specifications and the choice of devices and a description of the hardware circuit design, hardware design and diagram used in a variety of features and functions of the chip. chapter iv analyzes the key software des

6、ign process. the final chapter discusses the specific system debugging and debug software problems. at89c51 single chip based on single- bus multi-point temperature measurement and control system with simple hardware components, multi-point temperature, easy reading, high-accuracy, wide temperature

7、range, and other characteristics of the actual projects are widely used key words:digital temperature sensor, at89c51 single chip, single-bus 目錄目錄 摘 要.i i abstract.iiii 第 1 章 緒 論.1 1 第 2 章 系統(tǒng)方案設(shè)計.3 3 2.1 方案設(shè)計 .3 2.2 方案論證 .4 第 3 章 系統(tǒng)設(shè)計.5 5 3.1 工作原理 .5 3.2 單元電路設(shè)計 .6 3.2.1 ds18b20 與單片機接口電路設(shè)計.6 3.2.2 鍵盤

8、電路設(shè)計.14 3.2.3 顯示電路設(shè)計.16 3.2.4 報警電路設(shè)計 .19 第 4 章 系統(tǒng)軟件設(shè)計.2121 4.1 軟件設(shè)計總體思路及主程序流程圖 .21 4.2 測溫模塊流程圖 .22 4.2.1 溫度的采集 .23 4.2.2 多點溫度的測量 .23 4.3 顯示模塊流程圖 .24 4.4 鍵盤掃描流程圖 .25 第 5 章 元器件安裝及調(diào)試.2727 5.1 元器件安裝 .27 5.2 產(chǎn)品調(diào)試 .29 5.2.1 測試環(huán)境及工具.29 5.2.2 溫度檢測部分測試.29 5.2.3 電路主板測試.30 5.2.4 統(tǒng)一調(diào)試.30 總 結(jié).3131 參考資料.3333 致 謝.

9、3434 附錄一.3535 附錄二.3636 第 1 章 緒 論 21 世紀,科學(xué)技術(shù)的發(fā)展日新月異,科技的進步帶動了測量技術(shù)的發(fā)展, 現(xiàn)代控制設(shè)備的性能和結(jié)構(gòu)發(fā)生了翻天覆地的變化。我們已經(jīng)進入了高速發(fā)展 的信息時代,測量技術(shù)也成為當(dāng)今科技的一個主流,廣泛地深入到研究和應(yīng)用 工程的各個領(lǐng)域。 溫度是一個和人們生活環(huán)境有著密切關(guān)系的物理量,也是一種在生產(chǎn)、科 研、生活中需要測量和控制的重要物理量,是國際單位制七個基本量之一。溫 度的變化會給我們的生活、工作、生產(chǎn)等帶來重大影響,因此對溫度的測量至 關(guān)重要。其測量控制一般使用各式各樣形態(tài)的溫度傳感器。隨著現(xiàn)代計算機和 自動化技術(shù)的發(fā)展,作為各種信息

10、的感知、采集、轉(zhuǎn)換、傳輸相處理的功能器 件,溫度傳感器的作用日顯突出,已成為自動檢測、自動控制系統(tǒng)和計量測試 中不可缺少的重要技術(shù)工具,其應(yīng)用已遍及工農(nóng)業(yè)生產(chǎn)和日常生活的各個領(lǐng)域。 分布式溫度傳感器在電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑、航空、航 天飛行器等有著重要的應(yīng)用前景,引起研究人員的廣泛關(guān)注。近年來,已經(jīng)有 不少分布式溫度傳感器的報道,包括基于光纖非線性效應(yīng)的拉曼溫度傳感器等, 但由于其昂貴的成本而無法得到廣泛的應(yīng)用。本設(shè)計使用了美國 dallas 半導(dǎo) 體公司的新一代數(shù)字式溫度傳感器 ds18b20,它具有獨特的單總線接口方式 ,即 允許在一條信號線上掛接數(shù)十甚至上百個數(shù)字式傳感器

11、,從而使測溫裝置與各 傳感器的接口變得十分簡單 ,克服了模擬式傳感器與微機接口時需要的 a/d 轉(zhuǎn) 換器及其它復(fù)雜外圍電路的缺點。工作時由控制信號進行具體測量點識別,這使 得布線工作大大簡化,可以方便地構(gòu)成多傳感器測量網(wǎng)絡(luò)。此外與傳統(tǒng)的熱敏電 阻傳感器相比,ds18b20 具有更高的測量精度。所以,相對于傳統(tǒng)溫度傳感器而 言,ds18b20 數(shù)字溫度傳感器具有更高的經(jīng)濟性、靈活性、抗干擾性和精確度, 在科學(xué)研究和生產(chǎn)實際中得到了廣泛的應(yīng)用。 隨著電子技術(shù)以及應(yīng)用需求的發(fā)展,單片機技術(shù)得到了迅速的發(fā)展,在高 集成度,高速度,低功耗以及高性能方面取得了很大的進展。伴隨著科學(xué)技術(shù) 的發(fā)展,電子技術(shù)有

12、了更高的飛躍,我們現(xiàn)在完全可以運用單片機來代替人工 測量,這樣既省時又省力。 本設(shè)計是心 at89c51 為單片機作為控制核心,提出了一種基于 ds18b20 的單總線多點溫度測控系統(tǒng),多個溫度傳感節(jié)點通過單總線與單片機相聯(lián)形成 分布式系統(tǒng)。單片機通過實時監(jiān)控溫度的變化,通過 lcd1602 字符型 液晶顯 示各節(jié)點溫度的數(shù)值,當(dāng)溫度值超出所設(shè)定的值時,報警器開始報警,從而遠 程實現(xiàn)對整個溫度系統(tǒng)的管理和控制。這種分布式溫度測量系統(tǒng)具有成本低廉、 傳感精度高、系統(tǒng)穩(wěn)定、易于管理等優(yōu)點。 第 2 章 系統(tǒng)方案設(shè)計 2.1 方案設(shè)計 方案一:該案由單片機、模擬溫度傳感器 ad590、運算放大器、a

13、d 轉(zhuǎn)換 器、44 鍵盤、lcd 顯示電路、集成功率放大器、報警器組成。 本方案采用模擬溫度傳感器 ad590 作為測溫元件,傳感器將測量的溫度變 換轉(zhuǎn)換成電流的變化,再通過電路轉(zhuǎn)換成電壓的變化,使用運算放大器交將信 號進行適當(dāng)?shù)姆糯螅詈笸ㄟ^模數(shù)轉(zhuǎn)換器將模擬信號轉(zhuǎn)換成數(shù)字信號,傳給給 單片機,單片機將溫度值進行處理之后用 lcd 顯示 ,當(dāng)溫度值超過設(shè)置值時, 系統(tǒng)開始報警。如圖 1-1 所示: 圖 1-1 方案一溫度測量系統(tǒng)方案框圖 方案二:該方案使用了 at89c51 單片機作為控制核心,以智能溫度傳感器 ds18b20 為溫度測量元件,采用多個溫度傳感器對各點溫度進行檢測,通過 44

14、鍵盤模塊對溫度進行上、下限設(shè)置,超過其溫度值就報警。顯示電路采用 lcd1602 模塊,使用 8550 三極管為中心組成的報警電路。如圖 1-2 所示 單 片 機 lcd 顯示模塊 集成功放報警器 鍵盤模塊 ad轉(zhuǎn)換 運算 放大器 模擬溫度 傳感器 溫度傳感器 溫度傳感器 溫度傳感器 溫度傳感器 單片機 44 鍵盤 lcd 液晶 顯示電路 報警 電路 圖 1-2 方案二溫度測量系統(tǒng)方案框 2.2 方案論證 方案一采用模擬溫度傳感器,轉(zhuǎn)換結(jié)果需要經(jīng)過運算放大器和 ad 轉(zhuǎn)換器 傳送給處理器。它控制雖然簡單,但電路復(fù)雜,不容易實現(xiàn)對多點溫度進行測 量和監(jiān)控。由于采用了多個分立元件和模數(shù)轉(zhuǎn)換器,容易

15、出現(xiàn)誤差,測量結(jié)果 不是很準確,因此本方案并不可取。 方案二采用智能溫度傳感器 ds18b20,它直接輸出數(shù)字量,精度高,電路 簡單,只需要模擬 ds18b20 的讀寫時序,根據(jù) ds18b20 的協(xié)議讀取轉(zhuǎn)換的溫 度。 此方案硬件電路非常簡單,但程序設(shè)計復(fù)雜一些,但是在課外對 ds18b20、字符型液晶顯示、44 鍵盤的程序有所了解,而且曾經(jīng)在網(wǎng)上看到 過此類程序程序設(shè)計,并且我們已經(jīng)使用開發(fā)工具 keil 用 c 語言對系統(tǒng)進行 了程序設(shè)計,用仿真軟件 proteus 對系統(tǒng)進行了仿真,達到了預(yù)期的結(jié)果。 由此可見,該方案完成具有可行性,體現(xiàn)了技術(shù)的先進性,經(jīng)濟上也沒有任何 問題。 綜上所

16、述,本課題應(yīng)當(dāng)采用方案二對系統(tǒng)進行設(shè)計。 第 3 章 系統(tǒng)設(shè)計 3.1 工作原理 基于單片機的單總線多點溫度測控系統(tǒng)以 at89c51 為中心器件,以 keil 為系統(tǒng)程序開發(fā)平臺,用 c 語言進行程序設(shè)計,以 proteus 作為仿真軟件設(shè) 計而成的。系統(tǒng)主要由溫度傳感器電路、液晶顯示電路、鍵盤電路、報警電路 組成,電路原理圖如附錄一所示。 ds18b20 是智能溫度傳感器,它的輸入/輸出采用數(shù)字量,通過單總線,接 收主機發(fā)送的命令,根據(jù) ds18b20 內(nèi)部的協(xié)議進行相應(yīng)的處理,將轉(zhuǎn)換的溫度 數(shù)值以串口形式發(fā)送給主機。主機按照通信協(xié)議用一個 io 口模擬 ds18b20 的 時序,發(fā)送命令

17、(初始化命令、rom 命令、功能命令)給 ds18b20,并讀取 溫度值,在內(nèi)部進行相應(yīng)的數(shù)值處理,用字符型液晶模塊顯示各點的溫度。在 系統(tǒng)啟動之時,可以通過 44 鍵盤設(shè)置各點溫度的上限值和下限值,當(dāng)某點溫 度超過設(shè)置值時,報警器開始報警,從而實現(xiàn)了對各點溫度的實時監(jiān)控。 每個 ds18b20 有自己的序列號,因此本系統(tǒng)可以在一根總線上掛接了 4 個 ds18b20,通過 crc 校驗,對各個 ds18b20 的 rom 進行尋址,地址符合 的 ds18b20 才作出響應(yīng),接收主機的命令,向主機發(fā)送轉(zhuǎn)換的溫度。采用這種 ds18b20 尋址技術(shù),使系統(tǒng)硬件電路更加簡單。 ds18b20 雖然

18、有測溫簡單的特點,但在實際應(yīng)用中應(yīng)注意一下幾點: (1)較小 的硬件開銷需要相對復(fù)雜的軟件進行補償, 由于 ds1820 與微處理器間采用串行 數(shù)據(jù)傳送,因此,在對 ds1820 進行讀寫編程時,必須嚴格的保證讀寫. (2)在 ds1820 的有關(guān)資料中均未提及單總線上所掛 ds1820 數(shù)量問題,容易使人誤認 為可以掛任意多個 ds1820,在實際應(yīng)用中并非如此。當(dāng)單總線上所掛 ds1820 超過 8 個時,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系 統(tǒng)設(shè)計時要加以注意。(4)在 ds18 20 測溫程序設(shè)計中,向 ds1820 發(fā)出溫度轉(zhuǎn) 換命令后,程序總要等待 ds1820

19、 的返回信號,一旦某個 ds1820 接觸不好或斷 線,當(dāng)程序讀該 ds1820 時,將沒有返回信號,程序進入死循環(huán)。這一點在進 行 ds1820 硬件連接和軟件設(shè)計時也要給予一的重視. 3.2 單元電路設(shè)計 3.2.1 ds18b20 與單片機接口電路設(shè)計 (1) ds18b20 與單片機的接口技術(shù) 如圖 3-1 所示:ds18b20 與單片機的接口電路非常簡單。ds18b20 只有三 個引腳,一個接地,一個接電源,一個數(shù)字輸入輸出引腳接單片機的 i/o 口, 電源與數(shù)字輸入輸出腳間需要接一個 4.7k 的電阻。 圖 3-1 ds18b20 與單片機接口電路 (2) 中央處理器 at89c5

20、1 簡介 at89c51 的特點 at89c51 具有以下幾個特點: at89c51 與 mcs-51 系列的單片機在指令系統(tǒng)和引腳上完全兼容; 片內(nèi)有 4k 字節(jié)在線可重復(fù)編程快擦寫程序存儲器; 全靜態(tài)工作,工作范圍:0hz24mhz; 三級程序存儲器加密; 1288 位內(nèi)部 ram; 32 位雙向輸入輸出線; 兩個十六位定時器/計數(shù)器 五個中斷源,兩級中斷優(yōu)先級; 一個全雙工的異步串行口; 間歇和掉電兩種工作方式。 at89c51 的功能描述 at89c51 是一種低損耗、高性能、cmos 八位微處理器,片內(nèi)有 4k 字節(jié) 的在線可重復(fù)編程、快速擦除快速寫入程序的存儲器,能重復(fù)寫入/擦除

21、1000 次, 數(shù)據(jù)保存時間為十年。它與 mcs-51 系列單片機在指令系統(tǒng)和引腳上完全 兼容,不僅可完全代替 mcs-51 系列單片機,而且能使系統(tǒng)具有許多 mcs-51 系列產(chǎn)品沒有的功能。 at89c51 可構(gòu)成真正的單片機最小應(yīng)用系統(tǒng),縮小系統(tǒng)體積,增加系統(tǒng)的 可靠性,降低系統(tǒng)的成本。只要程序長度小于 4k,四個 i/o 口全部提供給用戶。 可用 5v 電壓編程,而且擦寫時間僅需 10 毫秒,僅 為 8751/87c51 的擦除時間的百分之一,與 8751/87c51 的 12v 電壓擦寫相比,不易損壞器件, 沒有兩種電源的要求,改寫時不拔下芯片,適合 許多嵌入式控制領(lǐng)域。工作電壓范圍

22、寬 (2.7v6v) ,全靜態(tài)工作,工作頻率寬在 0hz24mhz 之間,比 8751/87c51 等 51 系列的 6mhz12mhz 更具有靈活性,系統(tǒng)能快能慢。 at89c51 芯片提供三級程序存儲器加密,提供了 方便靈活而可靠的硬加密手段,能完全保證程序 或系統(tǒng)不被仿制。p0 口是三態(tài)雙向口,通稱數(shù)據(jù)總 線口,因為只有該口能直接用于對外部存儲器的讀/ 寫操作。 at89c51 引腳功能 at89c51 單片機 40 引腳分布如右圖所示。 at89c51 是一種低損耗、高性能、cmos 八位微處理器,片內(nèi)有 4k 字節(jié) 的在線可重復(fù)編程、快速擦除快速寫入程序的存儲器,能重復(fù)寫入/擦除 1

23、000 次,數(shù)據(jù)保存時間為十年。它與 mca-51 系列單片機在指令系統(tǒng)和引腳上完全 兼容,不僅可完全代替 mcs-51 系列單片機,而且能使系統(tǒng)具有許多 mcs-51 系列產(chǎn)品沒有的功能。 at89c51 可構(gòu)成真正的單片機最小應(yīng)用系統(tǒng),縮小系統(tǒng)體積,增加系統(tǒng)的 可靠性,降低系統(tǒng)的成本。只要程序長度小于 4k,四個 i/o 口全部提供給用戶。 可用 5v 電壓編程,而且擦寫時間僅需 10 毫秒,僅為 8751/87c51 的擦除時間的 百分之一,與 8751/87c51 的 12v 電壓擦寫相比,不易損壞器件,沒有兩種電源 的要求,改寫時不拔下芯片,適合許多嵌入式控制領(lǐng)域。工作電壓范圍寬 (

24、2.7v6v) ,全靜態(tài)工作,工作頻率寬在 0hz24mhz 之間,比8751/87c51 等 51 系列的 6mhz12mhz 更具有靈活性,系統(tǒng)能快能慢。at89c51 芯片提供 三級程序存儲器加密,提供了方便靈活而可靠的硬加密手段,能完全保證程序 或系統(tǒng)不被仿制。p0 口是三態(tài)雙向口,通稱數(shù)據(jù)總線口,因為只有該口能直接用 于對外部存儲器的讀/寫操作。 (3)ds18b20 的工作原理 ds18b20 數(shù)字溫度傳感器概述 ds18b20 數(shù)字溫度傳感器是 dallas 公司生產(chǎn)的 1wire,即單總線器件,具有線路簡單,體積小的特點。因此 用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線

25、,可以 掛很多這樣的數(shù)字溫度計,十分方便。 ds18b20 產(chǎn)品的特點 只要求一個端口即可實現(xiàn)通信。 在 ds18b20 中的每個器件上都有獨一無二的序列號。 實際應(yīng)用中不需要外部任何元器件即可實現(xiàn)測溫。 測量溫度范圍在55.c 到125.c 之間。 數(shù)字溫度計的分辨率用戶可以從 9 位到 12 位選擇。 內(nèi)部有溫度上、下限告警設(shè)置。 to92 封裝的 ds18b20 的引腳排列見右圖,其引腳功能描述見表 序號名稱引腳功能描述 表 2 p3 口的第二功能 1gnd地信號 2dq數(shù)字輸入輸出引腳,開漏單總線接口引腳,當(dāng)使用寄生電源時, 可向電源提供電源 3vdd可選擇的 vdd 引腳,當(dāng)工作于寄

26、生電源時,該引腳必須接地 表 3-2ds18b20 詳細引腳功能描述 ds18b20 的內(nèi)部結(jié)構(gòu) ds18b20 的內(nèi)部框圖下圖所示。64 位 rom 存儲器件獨一無二的序列號。 暫存器包含兩字節(jié)(0 和 1 字節(jié))的溫度寄存器,用于存儲溫度傳感器的數(shù)字 輸出。暫存器還提供一字節(jié)的上線警報觸發(fā)(th)和下線警報觸發(fā)(tl)寄存 器(2 和 3 字節(jié)) ,和一字節(jié)的配置寄存器(4 字節(jié)) ,使用者可以通過配置寄存 器來設(shè)置溫度轉(zhuǎn)換的精度。暫存器的 5、6 和 7 字節(jié)器件內(nèi)部保留使用。第八字 節(jié)含有循環(huán)冗余碼(crc ) 。使用寄生電源時,ds18b20 不需額外的供電電源; 當(dāng)總線為高電平時,

27、功率由單總線上的上拉電阻通過 dq 引腳提供;高電平總 線信號同時也向內(nèi)部電容 cpp 充電,cpp 在總線低電平時為器件供電。 (4)ds18b20 的 4 個主要數(shù)據(jù)部件: 光刻 rom 中的 64 位序列號是出廠前被光刻好的,它可以看作是該 ds18b20 的地址序列碼。64 位光刻 rom 的排列是:開始 8 位(28h)是產(chǎn)品 類型標(biāo)號,接著的 48 位是該 ds18b20 自身的序列號,最后 8 位是前面 56 位的 循環(huán)冗余校驗碼(crc=x8+x5+x4+1) 。光刻 rom 的作用是使每一個 ds18b20 都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個 ds18b20 的目的

28、。 ds18b20 中的溫度傳感器可完成對溫度的測量,以 12 位轉(zhuǎn)化為例:用 16 位符號擴展的二進制補碼讀數(shù)形式提供,以 0.0625/lsb 形式表達,其中 s 為符號位。 這是 12 位轉(zhuǎn)化后得到的 12 位數(shù)據(jù),存儲在 18b20 的兩個 8 比特的 ram 中,二進制中的前面 5 位是符號位,如果測得的溫度大于 0,這 5 位為 0,只要 將測到的數(shù)值乘于 0.0625 即可得到實際溫度;如果溫度小于 0,這 5 位為 1, 測到的數(shù)值需要取反加 1 再乘于 0.0625 即可得到實際溫度。 例如+125的數(shù)字輸出為 07d0h,+25.0625的數(shù)字輸出為 0191h,- 25.

29、0625的數(shù)字輸出為 ff6fh,-55的數(shù)字輸出為 fc90h。 表 3-4ds18b20 溫度數(shù)據(jù)表 temperaturedigital outputdigital output +1250000 0111 1101 000007d0h +850000 0101 0101 00000550h +25.06250000 0001 1001 00010191h +10.1250000 0000 1010 001000a2h +0.50000 0000 0000 10000008h 00000 0000 0000 00000000h -0.51111 1111 1111 1000fff8h -

30、10.1251111 1111 0101 1110ff5eh -25.06251111 1110 0110 1111fe6fh -551111 1100 1001 0000fc90h ds18b20 溫度傳感器的存儲器 ds18b20 溫度傳感器的內(nèi)部存儲器包括一個高速暫存 ram 和一個非易失 性的可電擦除的 eepram,后者存放高溫度和低溫度觸發(fā)器 th、tl 和結(jié)構(gòu)寄 存器。 配置寄存器 表 3-5 配置寄存器 0r1r011111 低五位一直都是1,tm 是測試模式位,用于設(shè)置 ds18b20 在工作模式還 是在測試模式。在 ds18b20 出廠時該位被設(shè)置為 0,用戶不要去改動。r

31、1 和 r0 用來設(shè)置分辨率,如下表所示:(ds18b20 出廠時被設(shè)置為 12 位) 表 3-6r1 與 r0 確定傳感器分辨率設(shè)置表 r1r0 傳感器精度/bit轉(zhuǎn)換時間/ms 00993.75 0110187.5 1011375 1112750 (5)ds18b20 的工作過程 初始化 rom 命令跟隨著需要交換的數(shù)據(jù); 功能命令跟隨著需要交換的數(shù)據(jù)。 訪問 ds18b20 必須嚴格遵守這一命令序列,如果丟失任何一步或序列混亂, ds18b20 都不會響應(yīng)主機(除了 search rom 和 alarm search 這兩個命令,在 這兩個命令后,主機都必須返回到第一步) 。 a初始化:

32、 ds18b20 所有的數(shù)據(jù)交換都由一個初始化序列開始。由主機發(fā)出的復(fù)位脈 沖和跟在其后的由 ds18b20 發(fā)出的應(yīng)答脈沖構(gòu)成。當(dāng) ds18b20 發(fā)出響應(yīng)主機 的應(yīng)答脈沖時,即向主機表明它已處在總線上并且準備工作。 b. rom 命令: rom 命令通過每個器件 64-bit 的 rom 碼,使主機指定某一特定器件(如 果有多個器件掛在總線上)與之進行通信。ds18b20 的 rom 如表 3-4 所示, 每個 rom 命令都是 8 bit 長。 c. 功能命令: 主機通過功能命令對 ds18b20 進行讀/寫 scratchpad 存儲器,或者啟動溫 度轉(zhuǎn)換。ds18b20 的功能命令如

33、表 3-7 所示。 指令協(xié)議功能 讀 rom 33h 讀 ds18b20 中的編碼(即 64 位地址) 發(fā)出此命令后,接著發(fā)出 64 位 rom 編碼,訪問單總線上與該編碼 符合 rom 55h 相對應(yīng)的 ds18b20,使之作出響應(yīng),為下一步對該 ds18b20 的讀寫 作準備 搜索 rom 0f0h 用于確定掛接在同一總線上 ds18b20 的個數(shù)和識別 64 位 rom 地址, 為操作各器件作好準備 跳過 rom 0cch 忽略 64 位 rom 地址,直接向 ds18b20v 溫度轉(zhuǎn)換命令,適用于單 個 ds18b20 工作 報警搜索命令 0ech 執(zhí)行后,只有溫度超過廟宇值上限或下限

34、的片子才做出響應(yīng) 溫度轉(zhuǎn)換 44h 啟動 ds18b20 進行溫度轉(zhuǎn)換,轉(zhuǎn)換時間最長為 500ms(典型為 200ms),結(jié)果豐入內(nèi)部 9 字節(jié) ram 中 讀暫存器 beh 讀內(nèi)部 ram 中 9 字節(jié)的內(nèi)容 寫暫存器 4eh 發(fā)出向內(nèi)部 ram 的第 3、4 字節(jié)寫上、下溫度數(shù)據(jù)命令,緊該溫度 命令之后,傳達兩字節(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 的供電模式,寄生供電時 ds18b20 發(fā)送“0” ,外部供

35、 電時 ds18b20 發(fā)送“1” 表 3-7 (6)ds18b20 的信號方式 ds18b20 采用嚴格的單總線通信協(xié)議,以保證數(shù)據(jù)的完整性。該協(xié)議定義 了幾種信號類型:復(fù)位脈沖、應(yīng)答脈沖、寫 0、寫 1、讀 0 和讀 1。除了應(yīng)答脈 沖所有這些信號都由主機發(fā)出同步信號??偩€上傳輸?shù)乃袛?shù)據(jù)和命令都是以 字節(jié)的低位在前。 a.初始化序列:復(fù)位脈沖和應(yīng)答脈沖 在初始化過程中,主機通過拉低單總線至少 480s,以產(chǎn)生復(fù)位脈沖(tx)。 然后主機釋放總線并進入接收(rx)模式。當(dāng)總線被釋放后,5k 的上拉電阻將 單總線拉高。ds18b20 檢測到這個上升沿后,延時 15s60s,通過拉低總線 60

36、s240s 產(chǎn)生應(yīng)答脈沖。初始化波形如圖 3-8 所示。 圖 3-8 初始化脈沖 b.讀和寫時序 在寫時序期間,主機向 ds18b20 寫入指令;而在讀時序期間,主機讀入來 自 ds18b20 的指令。在每一個時序,總線只能傳輸一位數(shù)據(jù)。讀/寫時序如圖 3-9 所示。 寫時序 存在兩種寫時序:“寫 1”和“寫 0” 。主機在寫 1 時序向 ds18b20 寫入邏 輯 1,而在寫 0 時序向 ds18b20 寫入邏輯 0。所有寫時序至少需要 60s,且在 兩次寫時序之間至少需要 1s 的恢復(fù)時間。兩種寫時序均以主機拉低總線開始。 產(chǎn)生寫 1 時序:主機拉低總線后,必須在 15s 內(nèi)釋放總線,然后

37、由上拉電 阻將總線拉至高電平。產(chǎn)生寫 0 時序:主機拉低總線后,必須在整個時序期間 保持低電平(至少 60s) 。 在寫時序開始后的 15s60s 期間,ds18b20 采樣總線的狀態(tài)。如果總線 為高電平,則邏輯 1 被寫入 ds18b20;如果總線為低電平,則邏輯 0 被寫入 ds18b20。 讀時序 圖 3-9ds18b20 讀/寫時序圖 ds18b20 只能在主機發(fā)出讀時序時才能向主機傳送數(shù)據(jù)。所以主機在發(fā)出 讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時序,以便 ds18b20 能夠傳送數(shù)據(jù)。所有讀時 序至少 60s,且在兩次獨立的讀時序之間至少需要 1s 的恢復(fù)時間。 每次讀時序由主機發(fā)起,拉低總線

38、至少 1s。在主機發(fā)起讀時序之后, ds18b20 開始在總線上傳送 1 或 0。若 ds18b20 發(fā)送 1,則保持總線為高電平; 若發(fā)送 0,則拉低總線。當(dāng)傳送 0 時,ds18b20 在該時序結(jié)束時釋放總線,再 由上拉電阻將總線拉回空閑高電平狀態(tài)。ds18b20 發(fā)出的數(shù)據(jù)在讀時序下降沿 起始后的 15s 內(nèi)有效,因此主機必須在讀時序開始后的 15s 內(nèi)釋放總線,并 且采樣總線狀態(tài)。 ds18b20 在使用時,一般都采用單片機來實現(xiàn)數(shù)據(jù)采集。只需將ds18b20 信號線與單片機1 位i/o線相連,且單片機的1 位i/o 線可掛接多個ds18b20 ,就可實現(xiàn)單點或多點溫度檢測。 (7)d

39、s18b20 的溫度計算 ds18b20 允許通過程序?qū)鞲衅鞯姆直媛?溫度報警的上、下限等參數(shù)進行 配置。它的內(nèi)部存儲器包括一個高速暫存存儲器和一個非易失性可擦除 eprom。速暫存存儲器共有 8 個字節(jié)(byte),每個字節(jié) 8 位(bit)。 根據(jù)溫度的計算方法如下: s s s s s = 11111 b 溫度值: t = (msb and 7) 256 + lsb 0.0625 sssss = 00000 b 溫度值: t = - (256 - msb) 256 - lsb 0.0625 如果,存儲器高位寄存器 ms 的 s s s s s 均為 1 ,則被測溫度為正值,用上面 第

40、1 個公式來計算溫度。如果存儲器高位寄存器 msb 的 s s s s s 均為 0,則被 測溫度為負值,用上面第 2 個公式來計算溫度。在這里,有兩點應(yīng)當(dāng)注意:一是公 式中中括號內(nèi)的數(shù)值為二進制,在計算口號內(nèi)計算完成后應(yīng)轉(zhuǎn)化為十進制;二是這 里的 7 與 0.0625 是假設(shè)傳感器的分辨率設(shè)置 0.0625 時的計算值。如果分辨率的 設(shè)置值不是 0.0625,那么就應(yīng)當(dāng)作相應(yīng)的變化。第 3 和第 4 個字節(jié)分別用來存放 溫度報警的上限(th)和下限值(tl)。ds18b20 在完成溫度變換后,會將所測溫度 值與貯存在 th 和 tl 內(nèi)的上下限值相比較,如果測溫結(jié)果高于 th 或低于 tl,

41、ds18b20 內(nèi)部的告警標(biāo)志就會被置位,表示溫值超出了測量范圍。并且該值 在掉電后不會丟失,而是記憶其設(shè)定的上下限值。第 5 字節(jié)是配置寄存器,如表 2.3 所示,該寄存器用于對溫度轉(zhuǎn)換值的分辨率進行設(shè)置。其中,最高位用于設(shè)置 傳感器是工作模式還是測試模式,是生產(chǎn)廠家為便于檢驗使用。其出廠時的默認 值為 0,為工作模式(即用戶使用時的模式)。并且在用戶使用中,該位總是保持為 0。r1 與 r0 確定傳感器的分辨率,如表 2.4 所示,ds18b20 有 4 種分辨率可供選 擇。使用時可以根據(jù)實際需要來設(shè)置,出廠時的默認設(shè)置是 12 位。最后 5 位總 保持為 1 3.2.2 鍵盤電路設(shè)計 根

42、據(jù)設(shè)計任務(wù)書中要求實現(xiàn)的功能,我選擇了 4x4=16 個鍵盤的矩陣鍵盤 來設(shè)置溫度的上、下限值,此鍵盤設(shè)計符合系統(tǒng)設(shè)置要求,所以我選擇此鍵盤 完成本設(shè)計。 矩陣鍵盤結(jié)構(gòu): 鍵盤實際上是一組按鍵開關(guān)的集合,平時按鍵開關(guān)總是處于斷開狀態(tài),當(dāng) 按下鍵時它才閉合。矩陣鍵盤又稱行列式鍵盤,這種行列式鍵盤結(jié)構(gòu)能夠有效 的提高單片機系統(tǒng)中 i/o 口的利用率。它的結(jié)構(gòu)和產(chǎn)生的波形如圖 3-11 所示。 圖 3-11 鍵盤結(jié)構(gòu)及產(chǎn)生的波形圖 矩陣鍵盤工作原理: 在鍵盤中按鍵數(shù)量較多時,為了減少 i/o 口的占用,通常將按鍵排列成矩 陣形式,如圖 3-12 所示。 在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直

43、接連通,而是通過一 個按鍵來連通。利用這種行列矩陣結(jié)構(gòu)只需 n 條行線和 m 條列線,即可組成 具有 n*m 個按鍵的鍵盤。這樣,一個端口就可以構(gòu)成 4x4=16 個按鍵,比直接 將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條 線就可以構(gòu)成 20 鍵的鍵盤,而直接用端口線則只能多出一鍵(9 鍵) 。由此可 見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵 盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,圖 3-12 中,行線所接的單片機 的 i/o 口作為輸出端,而列線所接的 i/o 口則作為輸入。這樣,當(dāng)按鍵沒有按 下時,所有的輸出端都是高電平,代表無鍵

44、按下。行線輸出是低電平,一旦有 鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有 鍵按下了。 圖 3-12 鍵盤電路原理圖 鍵盤按鍵的判斷: 上面是一個 4x4 的鍵盤,公用 4+4=8 條接口線,如果按下鍵 8,則第一行 的線與第一列的線接通,當(dāng)前第一行如果是低電平則第一列也輸出低電平,而 其他沒有的列輸出為高電平,根據(jù)行列線的電平,就可以判斷按下的鍵的行位 置。 a)判斷有無鍵按下。 b)去除鍵的機械抖動。方法是判別到有鍵按下,延時 10ms 在讀,如仍有 鍵按下,再確定為鍵按下,否則為抖動。 c)判別按下鍵的鍵號。 d)cpu 對鍵的一次閉合只作一次處理。方法是等鍵釋

45、放后再把鍵值作有 效處理。 列掃描法識別鍵號的工作原理如下: 將第 0 列變?yōu)榈碗娖?,其余列為高電平,輸出編碼為 1110。然后讀取行的 電平,辨別第 0 列是否有鍵按下。在第 0 列上若有某一個按鍵按下,則相應(yīng)的 行被拉到低電平,則表示第 0 列和此行相交的位置上有鍵按下。若沒有任一條 行線為低電平,則說明列上無鍵按下。 將第 1 列變?yōu)榈碗娖?,其余列為高電平,輸出編碼為本 1101。然后通過輸 入口讀取各行的電平。檢測其中是否有變?yōu)榈碗娖降男芯€。若有鍵按下,則進 而辨別哪一行有鍵按下,確定按鍵位置。 將第 2 列變?yōu)榈碗娖剑溆嗔袨榈碗姇r平,輸出編碼為本 1011。辨別是否 有哪一行按鍵按

46、下的方法同上。 將第 3 列邊為第電平,其余列為低電平時,輸出編碼為本 0111。辨別是否 有哪一行按鍵按下的方法同上。 3.2.3 顯示電路設(shè)計 溫度顯示工作原理: lcd1602 可以采用兩種方式與單片機連接,一種是采用 8 位數(shù)據(jù)總線 d0d7,和 rs、r/w、en 三個控制端口;另一種是只用 d4-d7 作為四位數(shù) 據(jù)分兩次傳送。本實驗將使用并采用八位數(shù)據(jù)方式來控制 1602 顯示,如圖 3-13 所示: 圖 3-13 at89c51與 lcd1602 接口電路圖 進行 lcd 設(shè)計主要是 lcd 的控制/驅(qū)動和外界的接口設(shè)計??刂浦饕峭?過接口與外界通信、管理內(nèi)/外顯示 ram,

47、控制驅(qū)動器,分配顯示數(shù)據(jù);驅(qū)動 主要是根據(jù)控制器要求,驅(qū)動 lcd 進行顯示。控制器還常含有內(nèi)部 ascii 字 符庫,或可外擴的大容量漢字庫。 at89c51 的 p3.7 與 lcd1602 的使能端 e 相連,p3.6 與讀寫選擇端 r/w 相連,p3.5 與 rs 相連,當(dāng)使能端使能時,再通過命令選擇端來控制讀數(shù)據(jù), 寫數(shù)據(jù),寫命令??刂?p2 端口與 lcd1602a 的數(shù)據(jù)端口相連,傳輸數(shù)據(jù)。 lcd1602 的性能參數(shù) lcd1602a 的管腳排列如圖 3-14、 ,它共有 16 個腳,各引腳功能如下: vss: 電源地 vdd:電源正極 vl:液晶顯示偏壓信號,對比度調(diào)整端,

48、接地時最高,接正電源最低,可接 10k 電位器調(diào)整 rs: 寄存器選擇,高電平選擇數(shù)據(jù)寄存器 低電平選擇指令寄存器 r/w 讀/寫選擇端,高電平讀操作,低電平寫操作 e 使能信號,當(dāng) e 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令 bla 背光源正極圖 blk 背光源負極 圖 3-14 lcd1602a 的管腳 d0d7 數(shù)據(jù)端口 芯片的主要技術(shù)參數(shù)及應(yīng)用配置: 顯示容量:162 個字符 芯片工作電壓:4.55.5v 工作電流: 2.0ma(5.0v) 模塊最佳工作電壓: 5.0v 字符尺寸:2.954.35(wxh)mm 表 3-15lcd1602a 主要技術(shù)參數(shù) 表 lcd 1602a 顯

49、示模式 指令碼功能 00111000 設(shè)置 16*2 顯示,5*7 點陣, 8 位數(shù)據(jù) 接口 指令碼功能 00001dcb d=1 開顯示 d=0 關(guān)顯示 c=1 顯示光標(biāo) c=0 不顯示光標(biāo) b=1 光標(biāo)閃爍 b=0 光標(biāo)不閃爍 000001ns n=1 當(dāng)讀/寫一個字符后,地址指針加 1,且光標(biāo)加 1; n=0 當(dāng)讀/寫一個字符后,地址指針減 1,且光標(biāo)減 1; s=1 當(dāng)寫一個字符,整屏顯示左移(n=1) 或者右移(n=0),以得到光標(biāo)不移動而整 屏移動的效果; s=0 當(dāng)寫一個字符,整屏顯示不移動。 表 3-17 lcd1602a 顯示開/關(guān)及光標(biāo)設(shè)置 編號符號引腳說明 1vss 電源

50、地 2vdd 電源正極 3vl 液晶顯示偏壓信號, 4rs 數(shù)據(jù)/命令選擇端(h/l) 5r/w 讀/寫選擇端(h/l) 6e 使能信號 7d0data i/o 8d1data i/o 9d2data i/o 10d3data i/o 11d4data i/o 12d5data i/o 13d6data i/o 14d7data i/o 15bla 背光源正 16blk 背光源負 表 3-18 lcd1602a 接口信號說明 lcd1602 的顯示與控制命令 1602 液晶模塊內(nèi)部的字符發(fā)生內(nèi)存(cgrom)已經(jīng)存儲了 160 個不同的 點陣字符圖形,如下圖所示,這些字符有:阿拉伯?dāng)?shù)字、英文字

51、母的大小寫、 常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英 文字母“a”的代碼是 01000001b(41h) ,顯示時模塊把地址 41h 中的點陣字符 圖形顯示出來,我們就能看到字母“a”。 1602 液晶模塊內(nèi)部的控制器共有 11 條控制指令,如表 2 所示,它的讀寫 操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。 (說明:1 為高電平、0 為低電平) 指令 1:清顯示,指令碼 01h,光標(biāo)復(fù)位到地址 00h 位置; 指令 2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00h; 指令 3:光標(biāo)和顯示模式設(shè)置 i/d:光標(biāo)移動方向,高電平右移,低電平左 移 s:屏幕上所有文字是否左

52、移或者右移。高電平表示有效,低電平則無效; 指令 4:顯示開關(guān)控制。d:控制整體顯示的開與關(guān),高電平表示開顯示, 低電平表示關(guān)顯示 c:控制光標(biāo)的開與關(guān),高電平表示有游標(biāo),低電平表示無 游標(biāo) b:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍; 指令 5:光標(biāo)或顯示移位元 s/c:高電平時移動顯示的文字,低電平時移動 光標(biāo); 指令 6:功能設(shè)置命令 dl:高電平時為 4 位總線,低電平時為 8 位總線 n:低電平時為單行顯示,高電平時雙行顯示 f:低電平時顯示 5x7 的點陣字符, 高電平時顯示 5x10 的點陣字符; 指令 7:字符發(fā)生器 ram 地址設(shè)置; 指令 8:ddram 地址設(shè)置; 指

53、令 9:讀忙信號和光標(biāo)地址 bf:為忙標(biāo)志位,高電平表示忙,此時模塊 不能接收命令或者數(shù)據(jù),如果為低電平表示不忙; 指令 10:寫數(shù)據(jù); 指令 11:讀數(shù)據(jù); 液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模 塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯 示字符地址,也就是告訴模塊在哪里顯示字符。 3.2.4 報警電路設(shè)計 電路板上的 550(q1)三極管驅(qū)動一個無源蜂鳴器,構(gòu)成一個簡單的音響電 路,該電路利用單片機的一個引腳作為驅(qū)動來源,經(jīng) q1 驅(qū)動后發(fā)聲,這一引 腳是 p1.1 腳。由于采用了無源蜂鳴器,所以 p1.1 輸出低電平時,蜂鳴器不會 發(fā)

54、聲,需要輸出一個脈沖信號蜂鳴器才會發(fā)聲,脈沖信號的頻率決定了蜂鳴器 發(fā)出的聲音的音調(diào)的高低。電路如圖 3-19 所示: 第 4 章 系統(tǒng)軟件設(shè)計 4.1 軟件設(shè)計總體思路及主程序流程圖 本系統(tǒng)采用 c 語言編寫,主程序主要由四部分構(gòu)成,系統(tǒng)通電后首先初始化 系統(tǒng),依次完成溫度采集、溫度處理、數(shù)據(jù)顯示、鍵盤處理等四項功能。溫度采 集部分主要完成 4 個溫度測試點的溫度數(shù)據(jù)采集任務(wù);溫度處理部分主要是將 采集到的溫度數(shù)據(jù)與用戶設(shè)定的各點上下限溫度值進行比較處理,并判斷是否 超出設(shè)定的上下限值,如果超出則蜂鳴器報警;數(shù)據(jù)顯示部分主要實現(xiàn)溫度數(shù) 據(jù)的顯示,顯示方式根據(jù)設(shè)計要求支持 1 到 4 個溫度測

55、試點的輪流循環(huán)顯示和 固定顯示兩種方式;鍵盤處理部分主要實現(xiàn)用戶對系統(tǒng)參數(shù)的設(shè)置,結(jié)合顯示 部分,實現(xiàn)用戶與系統(tǒng)之間的人機接口。系統(tǒng)軟件主流程如圖 4-1 所示: 開始 系統(tǒng)初始化 溫度采集 溫度處理 數(shù)據(jù)顯示 鍵盤處理 圖 4-1 系統(tǒng)軟件總流程圖 4.2 測溫模塊流程圖 讀溫度 初始化溫度傳感器 掃描鍵盤選定所需芯片 選定所需芯片 進行溫度轉(zhuǎn)換 讀取溫度 調(diào)試顯示子程序 子程序返回 圖 4-2 dsl8b20 操作流程圖 4.2.1 溫度的采集 每一片 dsl8b20 在其 rom 中都存有其唯一的 48 位序列號,在出廠前已寫 入片內(nèi) rom 中,主機在進入操作程序前必須逐一接入 dsl

56、8b20,用讀 rom(33h)命令將該 dsl8b20 的序列號讀出并登錄。當(dāng)主機需要對眾多在線 dsl8b20 的某一個進行操作時首先要發(fā)出匹配 rom 命令(55h),緊接著主機提 供 64 位序列(包括該 dsl8b20 的 48 位序列號)之后的操作就是針對該 dsl8b20 的,而所謂跳過 rom 命令即為之后的操作,是對所有 dsl8b20 的框圖中先有 跳過 rom 即是啟動所有 dsl8b20 進行溫度變換之后通過匹配 rom 再逐一地 讀回每個 dsl8b20 的溫度數(shù)據(jù)在 dsl8b20 組成的測溫系統(tǒng)中主機在發(fā)出跳過 rom 命令之后再發(fā)出統(tǒng)一的溫度轉(zhuǎn)換啟動碼 44h

57、就可以實現(xiàn)所有 dsl8b20 的 統(tǒng)一轉(zhuǎn)換再經(jīng)過 1s 后就可以用很少的時間去逐一讀取這種方式,使其 t 值往往 小于傳統(tǒng)方式。由于采取公用的放大電路和 a/d 轉(zhuǎn)換器只能逐一轉(zhuǎn)換,顯然通 道數(shù)越多這種省時效應(yīng)就越明顯。 4.2.2 多點溫度的測量 單總線 已經(jīng)掛接了 4 個 ds18b20。由于已經(jīng)在上面獲取了多個 ds18b20 的 rom 代碼并在 at89c51 單片機內(nèi)部的中建立了測量位置點和傳感器 64 位 rom 代碼之間的關(guān)系表,因此對多個溫度的巡回測量的步驟如下: (1)發(fā)跳過 rom 命令 cch。 (2)發(fā)啟動所有在線的 ds18b20 進行溫度轉(zhuǎn)換命令 44h。 (3

58、)延遲 1s。 (4)發(fā)匹配 rom 命令 55h。 (5)按照 at89c51 中建立的關(guān)系表的順序取出 64 位 rom 代碼發(fā)送到單總 線。 (6)發(fā)讀溫度值命令 beh,讀取溫度值。 (7)進行 crc 校驗和數(shù)據(jù)處理后送 lcd 顯示器顯示。 (8)重復(fù)第 4 步到第 7 步,直到所有的 ds18b20 測量處理完。 (9)再重復(fù)第 1 步到第 8 步,進行下一輪的巡回測量。 如果只對某一個 ds18b20 進行溫度測量,只要將第 1 步跳過 rom 命令 cch,改為匹配 rom 命令 55h,將撥動開關(guān)撥到和要測量的 ds18b20 的編號相 對應(yīng)的數(shù)值上,單片機讀取撥動開關(guān)的數(shù)

59、值(編號)n,到 at89c51 建立的關(guān)系表中 從(n -1)8 開始的單元取出 rom 代碼發(fā)送到總線,去掉第 8 步,其余和上面步驟 相似即可。測試中,ds18b20 選擇芯片出廠時默認的 12 位轉(zhuǎn)換精度,轉(zhuǎn)換的結(jié)果 用 16 位符號擴展的二進制補碼讀數(shù)形式提供。 初始化 跳過 rom 等待 1s 初始化 設(shè)置 18b20 個數(shù) 符合 rom 讀存儲器 緩沖指針增一 初始化 b1=0? 否 圖 4-3 多路溫度測量電路流程圖 4.3 顯示模塊流程圖 開始 初始化 lcd1602 寫顯示地址 寫顯示字符 子程序返回 圖 4-4 lcd1602a 操作流程圖 是 4.4 鍵盤掃描流程圖 按

60、鍵處理程序通過掃描按鍵情況,讀取鍵值。主要完成各點溫度傳感器上 下限報警參數(shù)設(shè)置和顯示模式設(shè)置。 (1)通過掃描鍵盤讀取鍵值,流程圖如圖 4-5 所示: 鍵盤掃描 有鍵閉合 延時去鍵抖動 動 掃描鍵盤 找到閉合鍵 計算鍵值 閉合鍵釋放 建立有效標(biāo)志 返回 建立無 效標(biāo)志 n y n y 圖 4-5 鍵盤掃描程序流程圖 (2)設(shè)置報警上、下限值 ds18b20 設(shè)有溫度上下限報警功能。dsl8b20 的存儲器由兩部分組成:一 個是 9 字節(jié)的靜態(tài) ram,其中第 0 和第 1 字節(jié)用于存儲 16 位的溫度轉(zhuǎn)換值, 第 2(高溫限 th)和第 3 字節(jié)(低溫限 tl)作為溫度報警限值或通用存儲器單

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論