久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 330765|回復: 15
收起左側(cè)

基于單片機的溫度采集系統(tǒng)設(shè)計論文

  [復制鏈接]
ID:128771 發(fā)表于 2016-7-5 03:11 | 顯示全部樓層 |閱讀模式
完整的word格式的論文下載:
基于單片機的溫度采集系統(tǒng)設(shè)計.docx (1.23 MB, 下載次數(shù): 287)

摘    要

溫度是一種最基本的環(huán)境參數(shù),日常生活和工農(nóng)業(yè)生產(chǎn)中經(jīng)常要檢測溫度。隨著半導體技術(shù)的飛速發(fā)展,各種數(shù)字化、智能化溫度測量技術(shù)的應(yīng)用范圍越來越廣,因此掌握溫度測控系統(tǒng)的硬件組成及系統(tǒng)軟件設(shè)計尤為重要。
整個系統(tǒng)采用模塊化設(shè)計,硬件結(jié)構(gòu)由DS18B20和單片機、LCD1602、蜂鳴器等裝置組成,DS18B20溫度傳感器將物理參量轉(zhuǎn)變?yōu)殡妷翰⑼瓿尚盘柕恼{(diào)理,調(diào)整為數(shù)字量,再送入單片機AT89C52讀取,單片機對數(shù)字量的溫度進行處理,并將數(shù)據(jù)通過LCD1602顯示,同時根據(jù)預設(shè)定的參數(shù)控制蜂鳴器是否報警,提醒工作人員注意。
本設(shè)計在proteus上畫出原理圖并進行仿真,實現(xiàn)了溫度采集的整體功能,包括溫度顯示和高溫報警。驗證本設(shè)計所使用方案的有效性和正確性,最終完成豐富發(fā)展了相應(yīng)的理論知識。

關(guān)鍵字AT89C52;LCD1602;RS-232;DS18B20

Design Of Digital Thermometer Based On MCU
Abstract

Temperature is one of the most basic environmental paramenters,and it usually must be measured in daily life and industrial & agricultural production. With the rapid development of semiconductor technology,more and more,digital & intelligent temperature measuring technology is widely applied.So it is particularly important to master the technology of designing a temperature measurement & control system in hardware and software.
In this project,a temperature measuring & transmition system controlled by SCM is designedll. At front end, the real-time temperature data acquired and converted to digital type through DS18B20 sensor are sent into SCM, and it is display on LCD1602 module . In addition , the acquired temperature data are transmitted to back end PC via RS-232 interface so as to be displayed ,storied an continued process.
The design achieved the results in proteus. It verify the validity and correctness of the proposed scheme. Finally, it complete and developed the theoretical knowledge.

Key words:AT89C52;LCD1602;RS-232;DS18B20

目錄

引言

第一章 緒論

1.1 課題背景及實際意義

1.2本課題的研究現(xiàn)狀及發(fā)展趨勢

1.3課題研究的主要內(nèi)容

第二章 總體設(shè)計方案

2.1系統(tǒng)方案選擇

2.1.1溫度測量的選擇

2.1.2顯示電路的選擇

2.1.3系統(tǒng)各模塊的最終方案

2.2方案的總體設(shè)計電路圖

第三章 硬件設(shè)計

3.1單片機AT89C52

3.1.1簡介

3.1.2單片機最小系統(tǒng)

3.2溫度傳感器DS18B20

3.2.1 簡介

3.2.2 DS18B20溫度傳感器與單片機的接口電路

3.3LCD1602顯示模塊設(shè)計

3.3.1 LCD1602簡介

3.3.2  LCD1602與單片機的接口電路

3.4報警器的設(shè)計

第四章 系統(tǒng)軟件設(shè)計

4.1Keil軟件概述

4.2主程序

4.3讀出溫度子程序

4.4溫度報警命令子程序

4.5顯示數(shù)據(jù)刷新子程序

第五章 調(diào)試與仿真

5.1Proteus簡介

5.2調(diào)試與仿真

結(jié)論與展望

致謝

參考文獻

附錄A:電路原理圖繪制

附錄B:一篇引用的引文文獻及翻譯

附錄C:主要參考文獻與摘要

附錄D:程序




插圖清單
圖 1  總體設(shè)計方案
圖 2  系統(tǒng)設(shè)計框圖
圖 3  AT89C52結(jié)構(gòu)框圖
圖 4   TMOD特殊功能寄存器
圖 5   PCON TCON 的控制字格式
圖 6   SCON特殊功能寄存器
圖 7   IE特殊功能寄存器
圖 8  IP特殊功能寄存器
圖 9  單片機最小系統(tǒng)
圖 10  DS18B20封裝
圖 11  溫度傳感器模塊
圖 12  LCD尺寸圖
圖 13  LCD 內(nèi)部顯示地址
圖 14  LCD模塊電路圖
圖 15  報警模塊電路圖


表格清單
表格 1  工作方式選擇表
表格 2 串口方式選擇
表格 3  配置寄存器結(jié)構(gòu)
表格 4  引腳接口說明
表格 5控制命令表
表格 6基本操作時序表


1




安徽工程科技學院畢業(yè)設(shè)計(論文)
引言
溫度是一種最基本的環(huán)境參數(shù),日常生活和工農(nóng)業(yè)生產(chǎn)中經(jīng)常要檢測溫度,隨著半導體技術(shù)的飛速發(fā)展,各種數(shù)字化、智能化溫度測量技術(shù)的應(yīng)用范圍越來越廣,因此掌握溫度測控系統(tǒng)的硬件組成及系統(tǒng)軟件設(shè)計尤為重要。而傳統(tǒng)的測溫方法多以熱電阻和熱電偶等為溫度敏感元件,但這些溫度傳感器構(gòu)成的測溫系統(tǒng)必須經(jīng)過A/D轉(zhuǎn)換環(huán)節(jié)獲得數(shù)字信號后才能與單片機等微機處理器接口,使得硬件電路結(jié)構(gòu)復雜,制作成本較高,本設(shè)計研究的是數(shù)字溫度計,它是通過一定的電路和溫度傳感器進行測控,將溫度用數(shù)字準確的顯示出來。數(shù)據(jù)顯示比較直觀而且測量精度也比較高,范圍比較大。
整個系統(tǒng)采用模塊化設(shè)計,硬件結(jié)構(gòu)由DS18B20和單片機、LCD、蜂鳴器等裝置組成,DS18B20溫度傳感器將物理參量轉(zhuǎn)變?yōu)殡妷翰⑼瓿尚盘柕恼{(diào)理,調(diào)整為數(shù)字量,再送入單片機AT89C52讀取,單片機對數(shù)字量的溫度進行處理,并將數(shù)據(jù)通LCD1602顯示,同時根據(jù)預設(shè)定的參數(shù)控制蜂鳴器是否報警,提醒工作人員注意。
本設(shè)計在POTEUS上畫出了原理圖并進行仿真,實現(xiàn)了溫度采集的整體功能,包括溫度顯示和高溫報警,此次設(shè)計驗證了所使用方案的有效性和正確性,最終完成豐富發(fā)展了相應(yīng)的理論知識。

第一章 緒論
1.1 課題背景及實際意義
溫度是一種最基本的環(huán)境參數(shù),日常生活和工農(nóng)業(yè)生產(chǎn)中經(jīng)常要檢測溫度,隨著半導體技術(shù)的飛速發(fā)展,各種數(shù)字化、智能化溫度測量技術(shù)的應(yīng)用范圍越來越廣,因此掌握溫度測控系統(tǒng)的硬件組成及系統(tǒng)軟件設(shè)計尤為重要。尤其在過程控制的實時監(jiān)測和監(jiān)控系統(tǒng)中,溫度的采集是很普片的,快速可靠的采集到工業(yè)現(xiàn)場中的高精度溫度數(shù)據(jù)可以為過程控制系統(tǒng)提供可靠的依據(jù)。而傳統(tǒng)的測溫方法多以熱電阻和熱電偶等為溫度敏感元件,但這些溫度傳感器構(gòu)成的測溫系統(tǒng)必須經(jīng)過A/D轉(zhuǎn)換環(huán)節(jié)獲得數(shù)字信號后才能與單片機等微機處理器接口,使得硬件電路結(jié)構(gòu)復雜,制作成本較高,而美國DALLAS公司生產(chǎn)的DS18B20數(shù)字溫度傳感器集溫度測量和A/D轉(zhuǎn)換于一體,直接輸出數(shù)字量,硬件電路結(jié)構(gòu)簡單,與單片機接口幾乎不需要外圍元件,廣泛使用與距離遠,節(jié)點分布多的場合,具有較強的推廣應(yīng)用價值。
數(shù)字溫度計有手持式,盤裝式,及醫(yī)用的小體積的等等,它是采用進口高精度、低溫漂、超低功耗集成電路和寬溫型液晶顯示器,內(nèi)置高能量電池連續(xù)工作≥5年無需敷設(shè)供電電纜,是一種精度高、穩(wěn)定性好、誤差≤0.5%、微功耗、不銹鋼外殼,防護堅固,美觀精致、適用性極強的新型現(xiàn)場溫度顯示儀。是傳統(tǒng)現(xiàn)場指針雙金屬溫度計的理想替代產(chǎn)品,廣泛應(yīng)用于各類工礦企業(yè)、大專院校、科研院所。
最早的溫度計是在1593年由意大利科學家伽利略發(fā)明的。后來又相繼出現(xiàn)華氏溫度及、列式溫度計、攝氏溫度計,均采用水銀和酒精等制作,現(xiàn)在英、美國家多用華氏溫度計,德國多用列式溫度計,而世界科技界和工農(nóng)業(yè)生產(chǎn)中,以及我國、法國等大多數(shù)國家則多用攝氏溫度計。隨著科學技術(shù)的發(fā)展和現(xiàn)代工業(yè)技術(shù)的需要,測溫技術(shù)也在不斷地改進和提高。由于測溫范圍變得越來越廣,根據(jù)不同的要求,又制造出不同的測溫儀器:氣體溫度計、電阻溫度計、溫差電偶溫度計、高溫溫度計等。耳本設(shè)計研究的是數(shù)字溫度計,它是通過一定的電路和溫度傳感器進行測控,將溫度用數(shù)字準確的顯示出來。數(shù)據(jù)顯示比較直觀而且測量精度也比較高,范圍比較大。
1.2課題的研究現(xiàn)狀及發(fā)展趨勢
國外對溫度控制技術(shù)研究較早,始于20世紀70年代。先是采用模擬式的組合儀表,采集現(xiàn)場信息并進行指示、記錄和控制。80年代末出現(xiàn)了分布式控制系統(tǒng)。目前正開發(fā)和研制計算機數(shù)據(jù)采集控制系統(tǒng)的多因子綜合控制系統(tǒng)。現(xiàn)在世界各國的溫度測控技術(shù)發(fā)展很快,一些國家在實現(xiàn)自動化的基礎(chǔ)上正向著完全自動化、無人化的方向發(fā)展。我國對于溫度測控技術(shù)的研究較晚,始于20世紀80年代。我國工程技術(shù)人員在吸收發(fā)達國家溫度測控技術(shù)的基礎(chǔ)上,才掌握了溫度室內(nèi)微機控制技術(shù),該技術(shù)僅限于對溫度的單項環(huán)境因子的控制。我國溫度測控設(shè)施計算機應(yīng)用,在總體上正從消化吸收、簡單應(yīng)用階段向?qū)嵱没⒕C合性應(yīng)用階段過渡和發(fā)展。在技術(shù)上,以單片機控制的單參數(shù)單回路系統(tǒng)居多,尚無真正意義上的多參數(shù)綜合控制系統(tǒng),與發(fā)達國家相比,存在較大差距。我國溫度測量控制現(xiàn)狀還遠遠沒有達到工廠化的程度,生產(chǎn)實際中仍然有許多問題困擾著我們,存在著裝備配套能力差,產(chǎn)業(yè)化程度低,環(huán)境控制水平落后,軟硬件資源不能共享和可靠性差等缺點。
溫度計的進一步完善和發(fā)展是沿著兩個方向進行的,一是測溫物質(zhì)的選擇;二是刻度標準的確定。
1.測溫物質(zhì)的研究和確定
除上述用酒精取代水作測溫物質(zhì)的嘗試外,1659年法國天文學家布(I.Boulliau)制造一個溫度計,他把玻璃泡的體積縮小,第一次使用水銀作測溫物質(zhì)。他本人從1658年5月起至1660年9月,連續(xù)進行了兩年多的溫度觀察記錄,僅次于開始于1655年的佛羅倫薩的溫度觀察記錄,成為現(xiàn)存最古老的溫度記錄之一。這樣的溫度計已具備了現(xiàn)在溫度計的雛形。
但到了18世紀,法國的勒奧默有鑒于水銀的膨脹系數(shù)小,曾強烈反對使用水銀作測溫物質(zhì)。他致力于制造一個既方便又能達到精度要求的酒精溫度計。但由于他的溫度計結(jié)果不好,并且不同的溫度計也不一致,日內(nèi)瓦的德呂斯(1727—1817)又恢復使用水銀,并以一個物理學家的身份熱情地呼喊:“自然界給我們這個礦物肯定是為了做溫度計”。
2.刻度標準的研究和確定
從伽利略到布里奧,測溫術(shù)從定性發(fā)展到定量,但讀數(shù)還沒有統(tǒng)一的標準。西曼托科學院的成員們?yōu)闇囟扔嬤x擇了兩個固定的溫度:一個是冬冷,一個是夏熱。冬冷是指最冷的冰凍時期的雪或冰的溫度,夏熱指奶牛或鹿的體溫。在兩個固定的溫度點之間,他們又分成80或40個相等的間隔。1829年,曾在舊的玻璃器皿中發(fā)現(xiàn)了當年佛羅倫薩的
溫度計的發(fā)展速度很快,從原來的煤油溫度計、酒精溫度計、水銀溫度計等發(fā)展到了現(xiàn)在的熱電阻溫度計、熱電偶溫度計、氣體溫度計、電子溫度計、電阻溫度計、溫差電偶溫度計、輻射溫度計和光測溫度計、雙金屬溫度計……這些溫度計都或多或少有著反應(yīng)速度慢、讀數(shù)麻煩、測量精度不高、誤差大等缺點。
傳統(tǒng)的指針式的溫度計雖然能指示溫度,但是精度低,使用不夠方便,顯示不夠直觀。目前市場上使用最為廣泛的測溫儀器類型莫過于是數(shù)字溫度計(digital thermometer),數(shù)字溫度計的出現(xiàn)可以讓人們直觀的了解自己想知道的溫度到底是多少度,它可以準確的判斷和測量溫度,以數(shù)字顯示,而非指針或水銀顯示。故稱數(shù)字溫度計或數(shù)字溫度表。
數(shù)字溫度計有手持式,盤裝式,及醫(yī)用的小體積的等等,它是采用進口高精度、低溫漂、超低功耗集成電路和寬溫型液晶顯示器,內(nèi)置高能量電池連續(xù)工作≥5年無需敷設(shè)供電電纜,是一種精度高、穩(wěn)定性好、誤差≤0.5%、微功耗、不銹鋼外殼,防護堅固,美觀精致、適用性極強的新型現(xiàn)場溫度顯示儀。是傳統(tǒng)現(xiàn)場指針雙金屬溫度計的理想替代產(chǎn)品,廣泛應(yīng)用于各類工礦企業(yè)、大專院校、科研院所。
數(shù)字溫度計采用溫度敏感元件也就是溫度傳感器(如鉑電阻,熱電偶,半導體,熱敏電阻等),將溫度的變化轉(zhuǎn)換成電信號的變化,如電壓和電流的變化,溫度變化和電信號的變化有一定的關(guān)系,如線性關(guān)系,一定的曲線關(guān)系等,這個電信號可以使用模數(shù)轉(zhuǎn)換的電路即A/D轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換為數(shù)字信號,數(shù)字信號再送給處理單元,如單片機或者PC機等,處理單元經(jīng)過內(nèi)部的軟件計算將這個數(shù)字信號和溫度聯(lián)系起來,成為可以顯示出來的溫度數(shù)值,如25.0攝氏度,然后通過顯示單元,如LED、LCD或者電腦屏幕等顯示出來給人觀察。這樣就完成了數(shù)字溫度計的基本測溫功能。
隨著時代的進步和電子技術(shù)的不斷發(fā)展,采用單片機控制進行采集溫度無疑是人們追求的目標之一,也是未來溫度計發(fā)展的主要方向。它所給人帶來的方便也是不可否認的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人生活、工作、學習、科研等社會各領(lǐng)域提供更好的更方便的“溫度計”,就需要從數(shù)單片機技術(shù)入手,將溫度測量技術(shù)一切向著數(shù)字化控制,智能化控制方向發(fā)展。綜合分析本次畢業(yè)設(shè)計(論文),可以預研作出該系統(tǒng)的發(fā)展趨勢如下:
1.溫度傳感器高精度化
由于采集溫度的精度必須高于控制處理的精確度,否則無從實現(xiàn)控制的精度要求。目前的溫度采集系統(tǒng)中溫度傳感器是它的重要組成部分,它的精度靈敏度基本決定了本溫度采集系統(tǒng)的精度、測量范圍、控制范圍和適用范圍等。數(shù)字溫度傳感器將會集成更好的模擬傳感器、轉(zhuǎn)換速度更快精度更高的A/D轉(zhuǎn)換器。傳感器應(yīng)用極其廣泛,目前已經(jīng)研制出多種新型傳感器。但是,作為應(yīng)用系統(tǒng)設(shè)計人員需要根據(jù)系統(tǒng)要求選用適宜的傳感器,并與自己設(shè)計的系統(tǒng)連接起來,從而構(gòu)成性能優(yōu)良的監(jiān)控系統(tǒng)。未來的溫度傳感器必然向高精度化、高集成化發(fā)展。
2.單片機微型化
常見單片機都是將中央處理器、隨機存取數(shù)據(jù)存儲、只讀程序存儲器、并行和串行通信接口、中斷系統(tǒng)、定時電路、時鐘電路等集成在一塊單一的芯片上。但是,隨著人們對電子產(chǎn)品的要求越來越高:要求體積小、質(zhì)量輕,這也就要求單片機除了功能強和功耗低外,還要求其體積要小、質(zhì)量輕。單片機廠商還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機芯片。現(xiàn)在的許多單片機都具有多種封裝形式,其中表面封裝越來越受歡迎,使得由單片機構(gòu)成的系統(tǒng)正朝微型化方向發(fā)展。此外,微型化的單片機還可以集成了如 A/D 轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機將 LED驅(qū)動電路都集成在一個單片機的芯片上,這樣單片機包含的單元電路就更多,功能就越強大,也逐漸實現(xiàn)微型化。
3.接口標準化
當前采用的通用標準接口主要有兩種:IEEE-488和CAMAC。以微處理器為基礎(chǔ)的數(shù)據(jù)采集與控制系統(tǒng)有許多是采用IEEE-488接口總線技術(shù)的。用這種總線一臺計算機接口就可連接多達15臺儀器而且它們之間還可相互通信。因此用這種總線可以組成一種多用途自動測試系統(tǒng), 從而使各個儀器都能充分發(fā)揮作用。對于一些對溫度把握非常嚴格和準確的場合,溫度測量系統(tǒng)的不準確會帶來非常大的麻煩。本溫度采集系統(tǒng)設(shè)計結(jié)構(gòu)簡單,價格低廉,精度高,使用方便,功能全,便于集成,可以廣泛地應(yīng)用于家庭、醫(yī)院以及電影院、廣場、汽車站、火車站等公共場所,將會受廣大消費者的喜愛。由于該系統(tǒng)便于集成,故可以作為單獨使用,也可以當作溫度處理模塊嵌入其它系統(tǒng)中,作為其他主系統(tǒng)的輔助擴展。因此,接口電路的標準化也是必然的發(fā)展趨勢之一。
4.系統(tǒng)模塊化
六十年代到七十年代中期,數(shù)據(jù)采集系統(tǒng)的器件主要還是半導體分立器件,但是到了七十年代末和八十年代初,隨著大規(guī)模和超大規(guī)模集成電路技術(shù)的發(fā)展而出現(xiàn)了單芯片器件以及高集成度的單芯片數(shù)據(jù)采集器件。由于出現(xiàn)了這些先進的器件,不僅劇烈地改變著傳統(tǒng)的老方法而且也大大地改變了數(shù)據(jù)采集系統(tǒng)元件的銷路。本次畢業(yè)設(shè)計的基于單片機的溫度采集系統(tǒng)完全可以發(fā)展成模塊化的器件,將會更廣的銷售市場。
5.智能化
現(xiàn)代數(shù)據(jù)采集系統(tǒng)主要是向與微型處理器或者微型計算機通信相兼容的方向發(fā)展,即實現(xiàn)由微處理器控制的或者以微處理器為基礎(chǔ)的智能化數(shù)據(jù)采集系統(tǒng)。現(xiàn)代數(shù)據(jù)采集系統(tǒng)隨著電子技術(shù)的發(fā)展獲得很大的成功和發(fā)展,尤其在配上微處理器或者微計算機后,其能力有了顯著的提高,而且與普通的數(shù)據(jù)采集系統(tǒng)很難區(qū)別開來。當前以微型計算機為中心的系統(tǒng)普遍采用數(shù)據(jù)記錄器組成復雜的分布監(jiān)控系統(tǒng), 用計算機進行控制和用數(shù)據(jù)記錄器進行數(shù)據(jù)采集或作為系統(tǒng)記錄裝置來實現(xiàn)工業(yè)過程自動化。
總之, 當前以微處理機或微型計算機為基礎(chǔ)的數(shù)據(jù)采集與處理系統(tǒng)大大提高了測試設(shè)備的靈活性、可靠性和經(jīng)濟益效性。隨著高性能機器的發(fā)展, 微型計算機控制邏輯能力大為提高, 而且能單獨完成數(shù)據(jù)采集和聯(lián)機有限數(shù)據(jù)處理, 并且還具有代碼浮動性、多處理功能和增強型指令和尋址能力。
6.軟件高級語言化
硬件的作用是要通過軟件編程調(diào)試運行發(fā)揮的, 因此溫度采集系統(tǒng)的軟件編程也是至關(guān)其要的。當前以單片機為控制核心的系統(tǒng)主要是采用匯編語言編寫程序。從長遠的發(fā)展看,為了能夠?qū)崿F(xiàn)測量與控制向高度自動化智能化發(fā)展,控制系統(tǒng)勢必要采用通用的高級語言,如C/C++等高級匯編語言編寫程序,實現(xiàn)系統(tǒng)軟件向高級語言發(fā)展。
1.3課題研究的主要內(nèi)容
本設(shè)計是基于單片機的溫度采集系統(tǒng),此系統(tǒng)以AT89C52單片機為控制核心,以數(shù)字傳感器DS18B20作為前端,采集溫度經(jīng)過單片機處理后,通過LCD1602液晶顯示器將溫度顯示出來。本設(shè)計將首先介紹系統(tǒng)的設(shè)計方案,接著對系統(tǒng)硬件進行選型,然后介紹系統(tǒng)的結(jié)構(gòu)框圖,詳細介紹系統(tǒng)的硬件設(shè)計,在給出系統(tǒng)的連接圖,通過PROTEL 99SE進行系統(tǒng)電路原理圖的繪制,生成相應(yīng)的PCB板,并分析系統(tǒng)的工作原理,在軟件方面對整體和各個模塊的程序進行設(shè)計,在KEIL中進行匯編語言程序的編寫與調(diào)試,最后,在仿真軟件PROTEUS中進行系統(tǒng)的仿真實驗。
此次設(shè)計是一種基于單片機的溫度采集系統(tǒng)設(shè)計,以溫度傳感器DS18B20自動對溫度進行采集,采集精度要求為0.001℃,控制溫度范圍為-55℃~ +120℃。同時采用了LCD顯示實時溫度。總體的設(shè)計方案如圖1所示:
0.png
圖 1  總體設(shè)計方案
具體章節(jié)介紹如下:
   第一章為緒論主要是介紹課題的背景與實際意義以及本課題的研究現(xiàn)狀與發(fā)展趨勢,和本課題所研究的主要內(nèi)容 。
                 第二章為總體設(shè)計方案,對應(yīng)本課題設(shè)計的兩種設(shè)計方案,綜合系統(tǒng)的硬件與軟件方面進行比較,第二種方案的硬件電路簡單,軟件設(shè)計也相對容易,所以課題最終方案采用第二種方案 ,本章也介紹了系統(tǒng)總體電路圖。
    第三章為硬件設(shè)計,主要包括單片機介紹,單片機最小系統(tǒng),溫度傳感器模塊與LCD顯示模塊的介紹。硬件電路的各個模塊的電路設(shè)計,畫出了與單片機的外圍連接圖。
第四章為軟件設(shè)計,Keil軟件簡介,系統(tǒng)的程序和程序的流程圖。
    第五章為調(diào)試與仿真主要包括Proteus軟件的簡介以及系統(tǒng)的調(diào)試與仿真。

第二章 總體設(shè)計方案2.1系統(tǒng)方案選擇
    整個系統(tǒng)采用模塊化設(shè)計,硬件結(jié)構(gòu)由傳感器和單片機、LCD、蜂鳴器等裝置組成,傳感器將物理參量轉(zhuǎn)變?yōu)殡妷翰⑼瓿尚盘柕恼{(diào)理,在送入下位單片機AT89C52讀取,單片機將數(shù)據(jù)通過LCD1602顯示,根據(jù)預想設(shè)定的參數(shù)決定要采取的措施。
2.1.1溫度測量的選擇
溫度測量一般有兩種方案,第一種采用熱電偶溫差電路測量溫度,溫度檢測部分可以使用低溫熱偶,熱電偶由兩個焊接在一起的異金屬導線所組成,熱電偶產(chǎn)生的熱電勢由兩種金屬的接觸電勢和單一的導體的溫差電勢組成。通過將參考結(jié)點保持在已知溫度并測量該電壓,便可推斷出檢測結(jié)點的溫度。數(shù)據(jù)采集部分則使用帶有A/D通道的單片機,在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就可以用單片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來。熱電偶的優(yōu)點是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小,容易遭受來自導線環(huán)路的噪聲影響以及飄移較高的缺點,并且種種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。
第二種是采用溫度芯片DS18B20測量溫度,輸出信號全數(shù)字化。便于單片機處理及控制,省去傳統(tǒng)的測量方法的很多外圍電路。DS18B20的最大優(yōu)點之一是采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器AT89S52構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計算機連接。這樣,測溫系統(tǒng)的就比較簡單,體積也不大。采用52單片機控制,軟件編程的自由度大,可通過編程實現(xiàn)各種各樣的算法和邏輯控制,且體積小,硬件實現(xiàn)簡單,安裝方便。
從以上兩種方案,很容易看出方熱電偶的測溫裝置可測溫度范圍寬、體積小,但是線性誤差較大,外圍電路復雜。而DS18B20的測溫裝置電路簡單、精確度較高、實現(xiàn)方便、軟件設(shè)計也比較簡單,故本設(shè)計采用DS18B20采集溫度。
2.1.2顯示電路的選擇
方案一是使用LED數(shù)碼管動態(tài)顯示,此方法需要外加外部驅(qū)動以此增加輸出電流來更好的驅(qū)動數(shù)碼管顯示,電路簡單,但成本較高,需要特定的編程來完成動態(tài)刷新,如果用靜態(tài)顯示,占用的I/O口多,最重要的是在進行多路的溫度采集實驗時,不能同時顯示多路溫度值,所以用數(shù)碼管顯示溫度弊多利少,本課題采用方案二作為顯示電路。
方案二是使用LCD1602液晶顯示,在單片機系統(tǒng)中應(yīng)用晶液顯示器作為輸出器件有以下幾個優(yōu)點:
(1)顯示質(zhì)量高,由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質(zhì)高且不會閃爍。
(2)數(shù)字式接口,液晶顯示器都是數(shù)字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。 體積小、重量輕  液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。
(3)功耗低 ,相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。
2.1.3系統(tǒng)各模塊的最終方案
最終確定了本設(shè)計的各模塊硬件選擇,總結(jié)如下,單片機選用AT89C52,溫度采集用DS18B20,顯示模塊用LCD1602,蜂鳴器實現(xiàn)報警功能。連接各模塊實現(xiàn)最終的溫度采集功能。
2.2方案的總體設(shè)計電路圖


0.png

圖 2  系統(tǒng)設(shè)計框圖
框圖中單片機采用的的是AT89C52單片機,首先單片機控制DS18B20數(shù)字溫度感器,把溫度信號通過單總線從數(shù)字溫度傳感器傳遞到單片機上,單片機數(shù)據(jù)處理后,發(fā)出控制信號改變報警即控制執(zhí)行模塊的狀態(tài),同時將當前溫度信息發(fā)送到LCD1602液晶屏進行顯示。本次設(shè)計的重點在于溫度采集系統(tǒng)和顯示系統(tǒng)部分,這兩個部分直接關(guān)系到設(shè)計的成功與否。




第三章 硬件設(shè)計3.1單片機AT89C523.1.1簡介
AT89C52 具有以下標準功能:8K 字節(jié) Flash,256 字節(jié) RAM,32 位 I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個 16 位定時器/計數(shù)器,一個 6 向量 2 級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89C52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式。空閑模式下,CPU 停止工作,允許 RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。8 位微控制器,8K 字節(jié)在系統(tǒng)可編程Flash。下面對本課題使用到的相關(guān)部分作詳細介紹。
一.結(jié)構(gòu)框圖
圖 3.1 是單片機 AT89C52 的內(nèi)部結(jié)構(gòu)總框圖。它可以劃分為 CPU、存儲器、并行口、串行口、定時器/計數(shù)器和中斷邏輯幾個部分。
1.013.jpg
圖 3  AT89C52結(jié)構(gòu)框圖
二.存儲器
MCS-51 器件有單獨的程序存儲器和數(shù)據(jù)存儲器。程序存儲器用來存放程序和始終要保留的常數(shù);數(shù)據(jù)存儲器常用來存放程序運行中所需要的常數(shù)或變量。
1.程序存儲器
AT89S52 具有 8Kbytes Flash 片內(nèi)程序存儲器,可以外接達到 64K 字節(jié)的外部程序存儲器。AT89S52 單片機復位后程序計數(shù)器 PC 的內(nèi)容為 0000H,系統(tǒng)從 0000H 單元開始取指令,并執(zhí)行程序。 若EA引腳接地,程序讀取只從外部存儲器開始。 對于 AT89S52 而言,如果EA接VCC,程序讀寫先從內(nèi)部存儲器(地址為0000H~1FFFH)開始,接著從外部尋址,尋址地址為:2000H~FFFFH。
2.數(shù)據(jù)存儲器
AT89S52 有 256 字節(jié)片內(nèi)數(shù)據(jù)存儲器。高 128 字節(jié)與特殊功能寄存器重疊。也就是說 128 字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。 AT89S52 數(shù)據(jù)存儲器根據(jù)不同的尋址方式和不同的功能分成四個部分,即 DATA區(qū)、特殊功能寄存器、IDATA 區(qū)、XDATA區(qū)。
三.定時器/計數(shù)器
AT89S52 有 3 個 16 位可編程定時計數(shù)器。
1.定時器方式寄存器 TMOD
其每位的定義如圖 3.2 所示。
1.014.jpg
圖 4   TMOD特殊功能寄存器
1)GATE:定時器/計數(shù)器運行控制位,用來確定對應(yīng)的外部中斷請求引腳 INT0,INT1 是否參與 T0、T1 的操作控制。 當 GATE=0時,只要定時器控制寄存器 TCON 中的 TR0 或 TR1 置 1 時,T0 或 T1 運行開始計數(shù); 當 GATE=1 時,不僅要定時器控制寄存器 TCON中的 TR0 或 TR1 被置 1 時,還需要P3 口中的 INT0 或 INT1 引腳為高電平,T0 或 T1 才被允許開始計數(shù)。
2)C/T:定時器或計數(shù)器方式選擇位。C/T=1 時,為計數(shù)器方式;C/T=0 時,為定時器方式。
3)M1M0:定時器/計數(shù)器四種工作方式的選擇。工作方式選擇如表 1 所示。
表格 1  工作方式選擇表
M1
M0
方式
說明
0
0
0
13位定時器/計數(shù)器
0
1
1
16位定時器/計數(shù)器
1
0
2
自動裝入時間常數(shù)的8位13位定時器/計數(shù)器
1
1
3
對T0分兩個8位計數(shù)器,對T1置方式3時停止工作
2.定時器控制寄存器 TCON:用于定時器操作及對定時器中斷控制。其中D0~D3 位與外部中斷有關(guān)。
TR0:T1 的運行控制位,給該位置 1 或清 0,用來實現(xiàn)啟動計數(shù)或停止計數(shù)。
TF0:T0 的溢出中斷標志位。當計數(shù)器溢出時由硬件自動置 1,在 CPU 中斷處理時由硬件清為 0。
TR1:T1 的運行控制位,功能同 TR0。
TF1:T1 的中斷標志位,功能同 TF0。
TMOD 和 TCON 寄存器在復位時每一位均清 0。
四.串行口
AT89S52 有 1 個全雙工串行口,串行口的寄存器有:一個發(fā)送 SBUF,一個接收SBUF,一個移位寄存器。發(fā)送和接收的 SBUF 對應(yīng)同一地址(99H),但在物理上是兩個分開的寄存器。串行口為全雙工工作方式,而且還要緩沖的作用。
    1.特殊功能寄存器 PCON:沒有位尋址能力,字節(jié)地址 87H。其中的 D7 位(稱為SMOD)為波特率的選擇位,其他無意義。復位時SMOD 為 0。當 SMOD=1 時,在串行口方式 1、2 或 3 的情況下,波特率提高一倍。如圖 3.4 所示。
1.015.jpg
圖 5   PCON TCON 的控制字格式
2.特殊功能寄存器 SCON:用于串口操作方式選擇和對它進行控制,其字節(jié)地址
為 98H。
1)RI:接收中斷標志。
在方式 0 中,當串行接收到第 8 位結(jié)束時由硬件置位;在其他方式中,在接收到停止位的中間時刻由硬件置位。當 RI=1 時,申請中斷,要求 CPU 取走數(shù)據(jù)。 在方式 1 中,SM2=1,若未收到有效的停止位,則不會 RI 置位,在任何方式下必須由軟件清零。
2)TI:發(fā)送中斷標志。在方式 0 中,串行發(fā)送完第 8 位數(shù)據(jù)時由硬件置位,在其他方式中,發(fā)送停止位的開始由硬件置位。當 TI=1時,申請中斷,CPU 響應(yīng)后,發(fā)送下一幀數(shù)據(jù)。任何方式下必須由軟件清零。
3)TB8:是在方式 2 和 3 中要發(fā)送的第 9 位數(shù)據(jù),可由軟件置位或清零。
4)RB8:是在方式 2 和 3 中已接收到的第 9 位數(shù)據(jù)。在方式 1 中,若 SM2=0,RB8轉(zhuǎn)載接收到的停止位。在方式 0 中 RB8 不被使用。
5)REN:允許串行接收,由軟件置位或清零,允許接收或禁止接收。
6)SM2:允許方式 2 和方式 3 進行多機通信。
7)SM0、SM1:串行口操作方式選擇位。兩個選擇位對應(yīng)于四種狀態(tài),所以串口能以四種工作方式工作,如表 2 所示。

表格 2 串口方式選擇
SM0
SM1
方式
功能說明
波特率
0
0
0
移位寄存器方式
fosc/12
0
1
1
8位UART
可變
1
0
2
9位UART
fosc/64或fosc/32
1
1
3
9位UART
可變
系統(tǒng)復位時,SCON 中的所有位都被清零。
五.中斷系統(tǒng)
當 CPU 正在處理某件事情的時候,外部發(fā)生的某一事件如電平變化,一個脈沖沿的發(fā)生或定時器的溢出等請求 CPU 迅速去處理,于是CPU 暫時中止當前的工作,轉(zhuǎn)去處理所發(fā)生的事件。處理完該事件之后,再回到原來被中止的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。
1.中斷源
AT89S52 共有 6 個中斷源,2 個外部中斷(INT0 和 INT1),三個定時器/計數(shù)器中斷(定時器/計數(shù)器 T0、T1 或 T2),和一個串口中斷(TXD 和 RXD)。 串口的中斷請求標記由可尋址串口控制寄存器 SCON 的 TI 和 RI 來設(shè)置。SCON 字節(jié)地址是 98H,如圖 3.4 所示。
1.016.jpg
圖 6   SCON特殊功能寄存器
2.中斷允許控制
中斷使能寄存器 IE 的各位如圖 3.5 所示。
1.017.jpg
圖 7   IE特殊功能寄存器
EA:使能標志位置位則所有中斷使能復位則禁止所有中斷;
—:保留;
ET2:定時器 2 中斷使能;
ES:串行通信中斷使能;
ET1:定時器 1 中斷使能;
EX1:外部中斷 1 使能;
ET0:定時器 0 中斷使能;
EX0:外部中斷 0 使能。
3.中斷優(yōu)先級
每個中斷源都可通過設(shè)置中斷優(yōu)先級寄存器 IP 來單獨設(shè)置中斷優(yōu)先級。如果每個中斷源的相應(yīng)位被置位,則該中斷源的優(yōu)先級為高。如果相應(yīng)的位被復位,則該中斷源的優(yōu)先級為低。圖 3.6 所示為 IP 寄存器的各位,此寄存器可位尋址。

1.018.jpg
圖 8  IP特殊功能寄存器
4.中斷執(zhí)行和中斷響應(yīng)
CPU 一旦響應(yīng)某一中斷,立即按查詢中得到的中斷優(yōu)先級置位“中斷優(yōu)先級狀態(tài)觸發(fā)器”優(yōu)先級別,供下一查詢周期進行判別,然后執(zhí)行一條硬件的長調(diào)用指令。在執(zhí)行長調(diào)用指令時,首先把當前程序計數(shù)器 PC 值壓棧,然后清中斷申請標志。最后把中斷源相應(yīng)的中斷矢量壓入程序計數(shù)器 PC,程序轉(zhuǎn)到中斷服務(wù)程序執(zhí)行。
在用戶編寫的中斷服務(wù)程序中,最后一條指令一般是 RETI(中斷返回)指令。執(zhí)行該指令時 CPU 首先清除中斷優(yōu)先級狀態(tài)觸發(fā)器,然后把棧頂上的兩個字節(jié)內(nèi)容彈入程序計數(shù)器 PC,程序由此繼續(xù)執(zhí)行。
5.AT89S52 晶振特性
AT89S52 單片機有一個用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1 和 XTAL2 分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來一起構(gòu)成自激振蕩器。從外部時鐘源驅(qū)動器件的話,XTAL2 可以不接,而從 XTAL1 接入。由于外部時鐘信號經(jīng)過二分頻觸發(fā)后作為外部時鐘電路輸入的,所以對外部時鐘信號的占空比沒有其它要求,最長低電平持續(xù)時間和最少高電平持續(xù)時間等還是要符合要求的。
3.1.2單片機最小系統(tǒng)
對于一個完整的電子設(shè)計來講,首要問題就是為整個系統(tǒng)提供電源供電模塊,電源模塊的穩(wěn)定可靠是系統(tǒng)平穩(wěn)運行的前提和基礎(chǔ)。單片機雖然使用時間最早、應(yīng)用范圍最廣,但是在實際用過程中,一個和典型的問題就是相比其他系列的單片機,單片機更容易受到干擾而出現(xiàn)程序跑飛的現(xiàn)象,克服這種現(xiàn)象出現(xiàn)的一個重要手段就是為單片機系統(tǒng)配置一個穩(wěn)定可靠的電源供電模塊。  此最小系統(tǒng)中的電源供電模塊的電源可以通過計算機的USB口供給,也可使用外部穩(wěn)定的5V電源供電模塊供給。
復位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合"電容電壓不能突變"的性質(zhì),可以知道,當系統(tǒng)一上電,RST腳將會出現(xiàn)高電平,并且,這個高電平持續(xù)的時間由電路的RC值來決定.典型的單片機當RST腳的高電平持續(xù)兩個機器周期以上就將復位,所以,適當組合RC的取值就可以保證可靠的復位.  一般教科書推薦C 取10u,R取8.2K.當然也有其他取法的,原則就是要讓RC組合可以在RST腳上產(chǎn)生不少于2個機周期的高電平。
XTAL1 和XTAL2 是獨立的輸入和輸出反相放大器,它們可以被配置為使用石英晶振的片內(nèi)振蕩器,或者是器件直接由外部時鐘驅(qū)動。單片機系統(tǒng)里都有晶振,在單片機系統(tǒng)里晶振作用非常大,全程叫晶體振蕩器,他結(jié)合單片機內(nèi)部電路產(chǎn)生單片機所需的時鐘頻率,單片機晶振提供的時鐘頻率越高,那么單片機運行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機晶振提供的時鐘頻率。  在通常工作條件下,普通的晶振頻率絕對精度可達百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內(nèi)調(diào)整頻率,稱為壓控振蕩器(VCO)。晶振用一種能把電能和機械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。單片機晶振的作用是為系統(tǒng)提供基本的時鐘信號。通常一個系統(tǒng)共用一個晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。晶振通常與鎖相環(huán)電路配合使用,以提供系統(tǒng)所需的時鐘頻率。如果不同子系統(tǒng)需要不同頻率的時鐘信號,可以用與同一個晶振相連的不同鎖相環(huán)來提供。單片機最小系統(tǒng)如圖3.7。
1.019.jpg
圖 9  單片機最小系統(tǒng)
3.2溫度傳感器DS18B203.2.1 簡介
DALLAS 最新單線數(shù)字溫度傳感器 DS18B20 是一種新型的“一線器件”,其體積更小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟。DALLAS 半導體公司的數(shù)字化溫度傳感器 DS18B20 是世界上第一片支持“一線總線”接口的溫度傳感器。
一.引腳排列極其內(nèi)部結(jié)構(gòu)
1.引腳排列
DS18B20 的 3 腳封裝如圖 3.8所示。其中,DQ 為數(shù)字信號輸入/輸出端;GND 為電源地;VDD 為外接供電電源輸入端。
1.020.jpg
圖 10  DS18B20封裝
2.內(nèi)部結(jié)構(gòu)
DS18B20主要由 64 位光刻 ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器 TH 和 TL、配置寄存器組成。
3.性能特點
1)獨特的單線接口,既可通過串行口線,也可通過其它 I/O 口線與微機接口,無需變換其它電路,直接輸出被測溫度值;
2)DS18B20 支持多點組網(wǎng)功能,多個 DS18B20 可用并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫;
3)DS18B20 在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);
4)適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V;
5) DS18B20 不需要備份電源,既可用數(shù)據(jù)線供電,也可采用外部電源供電;
6)測量范圍為-55℃~+125℃,固有測溫分辨率為 0.5℃;
7)可編程的分辨率為 9~12 位,對應(yīng)的可分辨溫度分別為 0.5℃、0.25℃、0.125℃和 0.0625℃,可實現(xiàn)高精度測溫;
8)測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給 CPU,同時可傳送 CRC 校驗碼,具有較強的抗干擾糾錯能力;
9)警告搜索命令能識別和尋址溫度在編訂的極限之外的器件(溫度警告情況);
10)應(yīng)用范圍包括恒溫控制、工業(yè)系統(tǒng)、消費類產(chǎn)品、溫度計或任何熱敏系統(tǒng);
11)DS18B20 具有負壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。
二.測溫原理
DS18B20 的測溫原理:低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器 1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變所產(chǎn)生的信號作為計數(shù)器 2 的脈沖輸入。計數(shù)器 1 和溫度寄存器被預置在-55℃所對應(yīng)的一個基數(shù)值。計數(shù)器 1 對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當計數(shù)器 1 的預置值減到 0 時,溫度寄存器的值將加 1,計數(shù)器 1 的預置將重新被裝入,計數(shù)器 1 重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器 2 計數(shù)到 0 時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器 1 的預置值。
三.DS18B20 控制接口介紹
1.64 位光刻 ROM
光刻 ROM 中的 64 位序列號是出廠前被光刻好的,它可以看作是該 DS18B20 的地址序列碼。64 位光刻 ROM 的排列是:開始 8 位(28H)是產(chǎn)品類型標號,接著的 48位是該 DS18B20 自身的序列號,最后 8 位是前面 56 位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一個 DS18B20 都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個 DS18B20 的目的。
2.溫度傳感器
DS18B20 加電后,處在空閑狀態(tài),要啟動溫度測量和模數(shù)轉(zhuǎn)換,處理器需要向其發(fā)出 Convert T[44h]命令,轉(zhuǎn)換完后DS18B20回到空閑狀態(tài),溫度數(shù)據(jù)以帶符號位的 16 位補碼存儲在溫度寄存器中。
溫度是正值還是負值,正值時 S=0,負值時 S=1,表 1 給出了一些數(shù)字輸出數(shù)據(jù)與對應(yīng)的溫度值的例子。以 12 位轉(zhuǎn)化為例:用 16 位符號擴展的二進制補碼讀數(shù)形式提供,以 0.0625℃/LSB 形式表達,其中 S 為符號位。例如+125℃的數(shù)字輸出為 07D0H,+25.0625℃的數(shù)字輸出為 0191H,-25.0625℃的數(shù)字輸出為 FF6FH,-55℃的數(shù)字輸出為 FC90H。
3.非揮發(fā)的溫度報警觸發(fā)器 TH 和 TL
    DS18B20 完成溫度轉(zhuǎn)換后,就把測得的溫度值與 TH、TL(TH 和 TL 分別為最高和最低檢測溫度)作比較。若 T〉TH 或 T〈TL,則將該器件內(nèi)的告警標志置位,并對主機發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只 DS18B20 同時測量溫度并進行告警探索搜索。一旦某測溫點越限,主機利用告警搜索命令即可識別正在告警器件。高低溫報警觸發(fā)器 TH 和 TL、配置寄存器均由一個字節(jié)的 EEPROM 組成,使用一個存儲器功能命令可對 TH、TL 或配置寄存器寫入。
4.配置寄存器
配置寄存器由R0和R1組成。該字節(jié)各位的意義如表3所示,低五位一直都是“1”,TM 是測試模式位,用于設(shè)置 DS18B20 在工作模式還是在測試模式。在 DS18B20 出廠時該位被設(shè)置為 0,用戶不要去改動。R1 和 R0 用來設(shè)置分辨率(DS18B20出廠時被設(shè)置為 12 位)。

表格 3  配置寄存器結(jié)構(gòu)
TM
R1
R0
1
1
1
1
1


5.高速暫存存儲器
高速暫存存儲器由 9 個字節(jié)組成。開始兩個字節(jié)包含被測溫度的數(shù)字量信息;第 3、4、5 字節(jié)分別是 TH、TL、配置寄存器的臨時復制,每一次上電復位時被刷新;第 6 字節(jié)未用,表現(xiàn)為全邏輯 1;第 7、8 字節(jié)為計數(shù)剩余值和每度計數(shù)值;第 9 字節(jié)讀出的是前面所有 8個字節(jié)的 CRC 碼,可用來保證通信正確。
根據(jù) DS18B20 的通訊協(xié)議,主機(單片機)控制 DS18B20 完成溫度轉(zhuǎn)換必須經(jīng)過三個步驟:每一次讀寫之前都要對 DS18B20 進行復位操作,復位成功后發(fā)送一條 ROM指令,最后發(fā)送 RAM 指令,這樣才能對 DS18B20 進行預定的操作。復位要求主 CPU將數(shù)據(jù)線下拉 500 微秒,然后釋放,當 DS18B20 收到信號后等待 16~60 微秒左右,后發(fā)出 60~240 微秒的存在低脈沖,主 CPU 收到此信號表示復位成功。
3.2.2 DS18B20溫度傳感器與單片機的接口電路
1.021.jpg
圖 11  溫度傳感器模塊
3.3LCD1602顯示模塊設(shè)計
在日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通過器件,如在計算器、萬用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號和圖形。在單片機的人機交流界面中,一般的輸出方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。發(fā)光管和LED數(shù)碼管比較常用,軟硬件都比較簡單,現(xiàn)在LCD1602已經(jīng)很普遍了,本章重點介紹字符型液晶顯示器的應(yīng)用。
在單片機系統(tǒng)中應(yīng)用液晶顯示器作為輸出器件有以下幾個優(yōu)點:
顯示質(zhì)量高
由于液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器畫質(zhì)高且不會閃爍。
數(shù)字式接口
液晶顯示器都是數(shù)字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方便。
體積小、重量輕
液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。
功耗低
相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其它顯示器要少得多。
3.3.1 LCD1602簡介
液晶顯示簡介
液晶顯示原理
液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示的特點,目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字攝像機、PDA移動通信工具等眾多領(lǐng)域。
液晶顯示器的分類
液晶顯示的分類方法有很多種,通常可按其顯示方式分為段式、字符式、點陣式等。除了黑白顯示外,液晶顯示器還有多灰度有彩色顯示等。如果根據(jù)驅(qū)動方式來分,可以分為靜態(tài)驅(qū)動、單純矩陣驅(qū)動和主動矩陣驅(qū)動三種。
液晶顯示器各種圖形的顯示原理:
線段的顯示
點陣圖形式液晶由M×N個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個點組成,屏上64×16個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H——00FH的16字節(jié)的內(nèi)容決定,當(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點;當(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。
字符的顯示
用LCD顯示一個字符時比較復雜,因為一個字符由6×8或8×8點陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標,在此送上該字符對應(yīng)的代碼即可。
漢字的顯示
漢字的顯示一般采用圖形的方式,事先從微機中提取要顯示的漢字的點陣碼(一般用字模提取軟件),每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5……右邊為2、4、6……根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)可找出顯示RAM對應(yīng)的地址,設(shè)立光標,送上要顯示的漢字的第一字節(jié),光標位置加1,送第二個字節(jié),換行按列對齊,送第三個字節(jié)……直到32B顯示完就可以LCD上得到一個完整漢字。
字符型LCD1602簡介
字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。
LCD1602的基本參數(shù)及引腳功能
LCD1602分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖3.10所示:
1.022.jpg
圖 12  LCD尺寸圖
LCD1602主要技術(shù)參數(shù)
顯示容量:16×2個字符;
芯片工作電壓:4.5—5.5V;
工作電流:2.0mA(5.0V);
模塊最佳工作電壓:5.0V;
字符尺寸:2.95×4.35(W×H)mm;
第1腳:VSS為地電源;
第2腳:VDD接5V正電源;
第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度;
第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器;
第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù);
第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令;
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線;
第15腳:背光源正極;
第16腳:背光源負極。
引腳功能說明
1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表4所示:
表格 4  引腳接口說明
編號

符號

引腳說明

編號

符號

引腳說明
1

VSS

電源地

9

D2

數(shù)據(jù)
2

VDD

電源正極

10

D3

數(shù)據(jù)
3

VL

液晶顯示偏壓

11

D4

數(shù)據(jù)
4

RS

數(shù)據(jù)/命令選擇

12

D5

數(shù)據(jù)
5

R/W

讀/寫選擇

13

D6

數(shù)據(jù)
6

E

使能信號

14

D7

數(shù)據(jù)
7

D0

數(shù)據(jù)

15

BLA

背光源正極
8

D1

數(shù)據(jù)

16

BLK

背光源負極

LCD1602的指令說明及時序
1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表5所示:

表格 5控制命令表
序號
指令

RS

R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清顯示

0

0
0
0
0
0
0
0
0
1
2
光標返回

0

0
0
0
0
0
0
0
1
*
3
置輸入模式

0

0
0
0
0
0
0
1
I/D
S
4
顯示開/關(guān)控制

0

0
0
0
0
0
1
D
C
B
5
光標或字符移位

0

0
0
0
0
1
S/C
R/L
*
*
6
置功能

0

0
0
0
1
DL
N
F
*
*
7
置字符發(fā)生存貯器地址

0

0
0
1
字符發(fā)生存貯器地址
8
置數(shù)據(jù)存貯器地址

0

0
1
顯示數(shù)據(jù)存貯器地址
9
讀忙標志或地址

0

1
BF
計數(shù)器地址
10
寫數(shù)到CGRAM或DDRAM)

1

0
要寫的數(shù)據(jù)內(nèi)容
11
從CGRAM或DDRAM讀數(shù)

1

1
讀出的數(shù)據(jù)內(nèi)容
1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)
指令1:清顯示,指令碼01H,光標復位到地址00H位置。
指令2:光標復位,光標返回到地址00H。
指令3:光標和顯示模式設(shè)置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。
指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標的開與關(guān),高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。
指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。
指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。
指令7:字符發(fā)生器RAM地址設(shè)置。
指令8:DDRAM地址設(shè)置。
指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。
指令10:寫數(shù)據(jù)。
指令11:讀數(shù)據(jù)。
與HD44780相兼容的芯片時序表如下:
表格 6基本操作時序表
讀狀態(tài)
輸入
RS=L,R/W=H,E=H
輸出
D0—D7=狀態(tài)字
寫指令
輸入
RS=L,R/W=L,D0—D7=指令碼,E=高脈沖
輸出
讀數(shù)據(jù)
輸入
RS=H,R/W=H,E=H
輸出
D0—D7=數(shù)據(jù)
寫數(shù)據(jù)
輸入
RS=H,R/W=L,D0—D7=數(shù)據(jù),E=高脈沖
輸出

LCD1602RAM地址映射及標準字庫表
液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,圖3.13是1602的內(nèi)部顯示地址。

1.023.jpg
圖 13  LCD 內(nèi)部顯示地址
3.3.2 LCD1602與單片機的接口電路
1.024.jpg
圖 14  LCD模塊電路圖
3.4報警器的設(shè)計
報警模塊采用了蜂鳴器報警,由軟件編程,當溫度高于預設(shè)值是蜂鳴器急促響起。提醒工作人員注意溫度過高,蜂鳴器與單片機的連接電路如圖3.19
1.025.jpg
圖 15  報警模塊電路圖

第四章 系統(tǒng)軟件設(shè)計4.1Keil軟件概述
單片機開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機器碼有兩種方法,一種是手工匯編,另一種是機器匯編,目前已極少使用手工匯編的方法了。機器匯編是通過匯編軟件將源程序變?yōu)闄C器碼,用于MCS-51單片機的匯編軟件有早期的A51,隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。
     1. 系統(tǒng)概述    Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。     Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。
2.Keil C51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)  C51工具包的整體結(jié)構(gòu), uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。






4.2主程序

0.png


4.3讀出溫度子程序
本次設(shè)計的重點在于溫度采集系統(tǒng)和顯示系統(tǒng)部分,這兩個部分直接關(guān)系到設(shè)計的成功與否











4.4溫度報警命令子程序


4.5顯示數(shù)據(jù)刷新子程序






第五章 調(diào)試與仿真5.1Proteus簡介
    Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。
Proteus提供了豐富的資源   
(1)Proteus可提供的仿真元器件資源:仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件,有30多個元件庫。   
(2)Proteus可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調(diào)試器、I2C調(diào)試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個電路中隨意的調(diào)用。   
(3)除了現(xiàn)實存在的儀器外,Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數(shù)指標,例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結(jié)果的影響。
5.2調(diào)試與仿真
繪制原理圖如附錄A
調(diào)試與仿真步驟如下:
第一步:啟動軟件,雙擊桌面的Keil C51快捷圖標,進入如圖5.1所示的Keil C51集成開發(fā)環(huán)境。 1.078.jpg
圖5.1
第二步:建立工程項目,選擇菜單欄的PROJECT,NEW PROJECT命令,建立一個新的UVISION3工程,命名為畢業(yè)設(shè)計,單擊保存按鈕,選擇CPU型號如圖5.2
1.079.jpg
圖5.2
第三步:建立項目文件,單擊FILE,NEW 新建一個名為Tewt1的空白文件,單擊FILE,save,如圖5.3所示。
1.080.jpg
圖5.3
第四步:添加項目文件,右擊Source Group1,選擇Add Files to Group “Source Group1”
如圖5.4。
1.081.jpg
圖5.4
然后找到剛才新建的源文件并選擇,單擊Add,加載完成后單擊Close。
第五步:工程的詳細設(shè)置,在uvision3的菜單PROJECT,OPTIONS FOR TARGET TAGET1的OUTPUT選項卡中,選擇Create HEX File以產(chǎn)生hex文件。
第六步:工程編譯,選擇菜單Project,Rebuild all target files后,程序會進行編譯。若沒有錯誤則生成相應(yīng)的工程名.HEX的文件,用于下載程序到單片機上單獨硬件運行,如圖5.5.
1.082.jpg
圖5.5
第七步:仿真,在proteus上畫好的原理圖上雙擊單片機,選擇剛才編譯好的.HEX文件確定,如圖5.6.
1.083.jpg
圖5.6
最后單擊run,進行仿真。結(jié)果如圖5.7所示。DS18B20溫度在LCD1602第一行實時顯示出來,第二行顯示本課題設(shè)計作者名字的拼音。
1.084.jpg
圖5.7


結(jié)論與展望
在本次測溫系統(tǒng)設(shè)計中,低成本、模塊化和可控性是主線。
一.在模塊化設(shè)計方面,按每個要求的功能,從單片機、顯示器、傳感器等都盡量選擇市場上通用性最好的產(chǎn)品,在滿足性能的前提下,盡量選擇低成本元件,最大限度地降低了整個系統(tǒng)的成本。特別是選用了 DS18B20 傳感器,它集溫度與 A/D 轉(zhuǎn)換于一身,大大提高了系統(tǒng)的可靠性,使整個電路變得簡潔。
二.在硬件電路設(shè)計方面,也預留了管腳空間,為以后的功能擴展做好準備。
三.在軟件設(shè)計中融入模塊化、通用化思想,核心的方法就是每個功能程序化,主程序只是對各個功能的標志位進行判斷,依照標志位來決定程序的走向,可以實現(xiàn)了溫度在液晶上顯示,不用的模塊進入休息狀態(tài)以最大限度地降低功耗。
隨著時代的進步和電子技術(shù)的不斷發(fā)展,采用單片機控制進行采集溫度無疑是人們追求的目標之一,也是未來溫度計發(fā)展的主要方向。它所給人帶來的方便也是不可否認的,其中數(shù)字溫度計就是一個典型的例子,但人們對它的要求越來越高,要為現(xiàn)代人生活、工作、學習、科研等社會各領(lǐng)域提供更好的更方便的“溫度計”,就需要從數(shù)單片機技術(shù)入手,將溫度測量技術(shù)一切向著數(shù)字化控制,智能化控制方向發(fā)展。















致謝
本課題是在導師查君君老師的悉心指導下完成的,從論文的選題、系統(tǒng)設(shè)計、到修改定稿都沒有離開查老師的無私幫助,本人從查老師那里學到了很多的知識,使本人受益匪淺,在此向查老師表以崇高的敬意和由衷的感謝。
本次課題設(shè)計的順利完成更是離不開安徽工程科技學院電氣工程系的老師們在平時嚴謹?shù)闹螌W和勤懇的教育,因此在此要向他們致以深深的謝意。
在課題進行期間,還得到了同學們無私的幫助和支持,在此同樣對他們表示深深的感謝。
還有就是要感謝,大學四年來一直支持我的親人,朋友,本次論文的完成也是離不開他們的鼓勵和支持的。


                                             作者:

                                              2016年    6 月  25日
1




安徽工程科技學院畢業(yè)設(shè)計(論文)
參考文獻
[1] 朱群峰,王曉芳,黃磊基于DS18B20的多路溫度采集系統(tǒng)[J].船電技術(shù).2009,2:7-9
[2] 江太輝,鄧展威.DS18B20數(shù)字溫度傳感器的特征與應(yīng)用[J].電子技術(shù),2003,12:46-49
[3]  袁東等編著.51單片機應(yīng)用開發(fā)實戰(zhàn)手冊[C].北京:電子工業(yè)出版社,2011:376-419
[4]  陶冶,袁永超,羅平.基于DS18B20的單片機溫度測量系統(tǒng)[J].農(nóng)機化研究,2007.10:160-164
[5]  易麗華,黃俊.基于AT89C51單片機與DS18B20的溫度測量系統(tǒng)[J].電子與封裝,2009.5,9(5):39-43
[6]  李廣明,袁華強.基于嵌入式和DS18B20的溫度采集系統(tǒng)[J].東莞理工學院學報,2009.6,16(3):1-4
[7]   樊強,張敏,李霞.基于DS18B20的溫度采集系統(tǒng)設(shè)計與實現(xiàn)[J].農(nóng)機化研究,2011,12:161-164.
[8]  陰志國,袁兵,陳云輝.基于DS18B20多點溫度采集兼紅外無線傳輸系統(tǒng)研究[J].現(xiàn)代商貿(mào)工業(yè),2010,16:373-373.
[9]  陳桂友等編著.單片微型計算機原理及接口技術(shù),2012.4
[10] 邢鵬康,劉彥華.基于Proteus和LabVIEW軟件的溫度采集系統(tǒng)的設(shè)計與仿真
[11] 郭慶鋒,基于單片機溫度采集系統(tǒng)的開發(fā)與應(yīng)用,2015:1671-7341
[12] 曠愛華,李萍,基于單片機的遠程多路溫度采集系統(tǒng),2015:1007-9416
[13] DS18B20數(shù)據(jù)手冊.pdf
[14]Halang W A.Measuring the Performance of Real-time Systems[J].The International Journal of Time-critical Computing Systems , 2000 , 18( 1): 59-68
[15]Stao N, Hasegawa K.A computer controlled irrigation system for muskmelon using stem diameter sensor[J].Acta Horticulturae, 1995, 226: 91-98.
[16]Kang Jianli, Wu Zhiqian. Methods of data fitt ing and graph draw ing in Visual Basic[ J].Comput er and Applied Chemistry , 2009, 26( 6) : 763- 766.
附錄A:電路原理圖繪制
1.085.jpg
附錄B:一篇引用的引文文獻及翻譯
DS18B20,Programmable Resolution,1-Wire® Digital Thermometer
(P1 ~ P4)
DESCRIPTION
The DS18B20 Digital Thermometer provides 9 to 12–bit centigrade temperature measurements and has an alarm function with nonvolatile user-programmable upper and lower trigger points.The DS18B20 communicates over a 1-wire bus that by definition requires only one data line (and ground) for communication with acentral microprocessor.It has an operating temperature range of –55°C to +125°C and is accurate to ±0.5°C over the range of –10°C to +85°C.In addition, the DS18B20 can derive power directly from the data line (“parasite power”), eliminating the need for an external power supply.
Each DS18B20 has a unique 64-bit serial code,which allows multiple DS18B20s to function on the same 1–wire bus;thus,it is simple to use one microprocessor to control many DS18B20s distributed over a large area.Applications that can benefit from this feature include HVAC environmental controls,temperature monitoring systems inside buildings,equipment or machinery,and process monitoring and control systems.
DETAILED PIN DESCRIPTIONS Table 1
8-PIN SOIC*
TO-92
SYMBOL
DESCRIPTION
5
1
GND
Ground.
4
2
DQ
Data Input/Outputpin.Open-drain 1-wire interface pin.Also provides power to the device when used in parasite power mode (see “Parasite Power” section.)
3
3
VDD
Optional VDDpin.VDD must begrounded for operation in parasite power mode.
*All pins not specified in this table are “No Connect” pins.
OVERVIEW
Figure 1 shows a block diagram of the DS18B20,and pin descriptions are given in Table 1.The 64-bit ROM stores the device’s unique serial code.Thescratchpad memory contains the 2-byte temperature register that stores the digital output from the temperature sensor.In addition,the scratchpad provides accessto the 1-byte upper and lower alarm trigger registers(TH and TL),and the 1-byte configuration register.The configuration register allows the user to set theresolution of the temperature-to-digital conversion to 9,10,11,or12 bits.The TH,TL and configuration registers are nonvolatile(EEPROM),so they will retain datawhen the device is powered down.
The DS18B20 uses Dallas’ exclusive 1-wire bus protocol that implements bus communication using one control signal.The control line requires a weak pullup resistor since all devices are linked to the bus via a 3-state or open-drain port(the DQ pin in the case of the DS18B20).In this bus system,the microprocessor(the master device)identifies and addresses devices on the bus using each device’s unique 64-bit code.Because each device has a unique code, the number of devices that can be addressed on one bus is virtually unlimited.The 1-wire bus protocol, including detailed explanations of the commands and “time slots,” is covered in the 1-WIRE BUS SYSTEM section of this datasheet.
Another feature of the DS18B20 is the ability to operate without an external power supply.Power is instead supplied through the 1-wire pullup resistor via the DQ pin when the bus is high.The high bus signal also charges an internal capacitor (CPP), which then supplies power to the device when the bus is low.This method of deriving power from the 1-wire bus is referred to as “parasite power.”As an alternative, the DS18B20 may also be powered by an external supply on VDD.
DS18B20 BLOCK DIAGRAM Figure 1
1.086.jpg
1.087.jpg OPERATION –MEASURINGTEMPERATURE
The core functionality of the DS18B20 is its direct-to-digitaltemperature sensor. The resolution of the temperature sensor isuser-configurable to 9,10,11,or 12 bits, corresponding toincrements of 0.5°C,0.25°C,0.125°C,and0.0625°C, respectively.The default resolution at power-up is 12 bit.The DS18B20 powers-up in a low-power idle state;to initiate a temperature measurement and A-to-D conversion, the master mustissue a Convert T[44h] command.Following the conversion, theresulting thermal data is stored in the 2-byte temperature register inthe scratchpad memory and the DS18B20 returns to its idle state.Ifthe DS18B20 is powered by an external supply, the master can issue “read time slots” (see the 1-WIRE BUS SYSTEM section) after the Convert T command and the DS18B20 will respond by transmitting 0 while the temperature conversion is in progress and 1 when the conversion is done.If the DS18B20 is poweredwith parasite power, this notification technique cannot be used since the bus must be pulled high by a strong pullup during the entire temperature conversion.The bus requirements for parasite power are explained in detail in the POWERING THE DS18B20 section of this datasheet.
The DS18B20 output temperature data is calibrated in degrees centigrade;for Fahrenheit applications,a lookup table or conversion routine must be used.The temperature data is stored as a 16-bit sign-extended two’s complement number in the temperature register (see Figure 2).The sign bits (S) indicate if the temperatureis positive or negative:for positive numbers S=0 and for negative numbers S=1.If the DS18B20 is configured for 12-bit resolution,all bits in the temperatureregister will contain valid data.For 11-bit resolution,bit 0 is undefined.For 10-bit resolution, bits 1 and 0 are undefined,and for 9-bit resolution bits 2,1 and 0 areundefined.Table 2 gives examples of digital output data and the corresponding temperature reading for 12-bit resolution conversions.
TEMPERATUREREGISTERFORMATFigure 2
1.088.jpg TEMPERATURE/DATARELATIONSHIPTable2
TEMPERATURE

DIGITALOUTPUT (Binary)

DIGITAL OUTPUT(Hex)

+125°C
0000 0111 1101 0000
07D0h
+85°C*
0000 0101 0101 0000
0550h
+25.0625°C
0000 0001 1001 0001
0191h
+10.125°C
0000 0000 1010 0010
00A2h
+0.5°C
0000 0000 0000 1000
0008h
0°C
0000 0000 0000 0000
0000h
-0.5°C
1111 1111 1111 1000
FFF8h
-10.125°C
1111 1111 0101 1110
FF5Eh
-25.0625°C
1111 1110 0110 1111
FE6Fh
-55°C
1111 1100 1001 0000
FC90h

*The power-on reset value of the temperature register is +85°C
OPERATION –ALARMSIGNALING
After the DS18B20 performs a temperature conversion, the temperature value is compared to the user-defined two’s complement alarm trigger values storedin the 1-byte TH and TL registers (see Figure 3).The sign bit(S) indicates if the value is positive or negative: for positive numbers S=0 and for negative numbersS=1.The TH and TL registers are nonvolatile (EEPROM) so they will retain data when the device is powered down.TH and TL can be accessed through bytes 2and 3 of the scratchpad as explained in the MEMORY section of this datasheet.
THAND TLREGISTER FORMATFigure 3
bit 7   bit 6                  bit 5     bit 4      bit 3      bit 2       bit 1      bit 0
S
26
25
25
25
22
21
20
Only bits 11 through 4 of the temperature register are used in the TH and TL comparison since TH and TL are 8-bit registers.If the result of a temperaturemeasurement is higher than TH or lower than TL,an alarm condition exists and an alarm flag is set inside the DS18B20.This flag is updated after every temperaturemeasurement; therefore, if the alarm condition goes away, the flag will be turned off after the next temperature conversion.
The master device can check the alarm flag status of all DS18B20s on the bus by issuing an Alarm Search [ECh] command.Any DS18B20s with a set alarmflag will respond to the command, so the master can determine exactly which DS18B20s have experienced an alarm condition.If an alarm condition exists and theTH or TL settings have changed,another temperature conversion should be done to validate the alarm condition.
POWERING THEDS18B20
The DS18B20 can be powered by an external supply on the VDD pin, or it can operate in “parasite power” mode, which allows the DS18B20 to functionwithout a local external supply.Parasite power is very useful for applications that require remote temperature sensing or that are very space constrained. Figure 1shows the DS18B20’s parasite-power control circuitry, which “steals” power from the 1-wire bus via the DQ pin when the bus is high.The stolen charge powers the DS18B20 while the bus is high, and some of the charge is stored on the parasite power capacitor (CPP) to provide power when the bus is low.When the DS18B20 is used in parasite power mode, the VDD pin must be connected to ground.
外文譯文:(From:DS18B20,Programmable Resolution,1-Wire® Digital Thermometer)
DS18B20,可編程的單總線數(shù)字溫度計
(P1 ~ P4)

描述
數(shù)字溫度計DS18B20可以提供9至12位攝氏溫度測量和非易失性用戶可編程上限和下限觸發(fā)點報警功能。DS18B20的通信使用單總線,只需要一個數(shù)據(jù)線(和地線)為與中央微處理器。它用于測量溫度的范圍為-55°C至+125°C,當被測溫度范圍為-10°C至+85°C時可以精確到±0.5℃以上。此外,DS18B20的可以直接從數(shù)據(jù)線(“寄生電源”)得到電壓,無需外部電源供應(yīng)器。
每個DS18B20都有一個唯一的64位串行代碼,這使得多個DS18B20在同一個單總線上運作,因此,使用一個微處理器控制多個DS18B20就變得很簡單。正因為DS18B20的這一特點,這使得包括暖通空調(diào)環(huán)境控制,溫度監(jiān)測系統(tǒng)內(nèi)的建筑物,機器設(shè)備,和過程的監(jiān)測和控制系統(tǒng)等都將受益于此應(yīng)用程序。
具體的芯片管腳說明如下表:
表-1
8SOIC*
TO-92
符號
說明
5
1
GND
4
2
DQ
單線應(yīng)用的數(shù)據(jù)輸入/輸出引腳:漏極開路,
還提供電源的裝置在使用寄生模式時(見“寄生電源”一節(jié))
3
3
VDD
可選VDD引腳:有關(guān)連接的細節(jié)見“寄生電源”一節(jié)
*本表中未指定的引腳是“無連接”引腳。
概述
圖1給出了DS18B20的內(nèi)部結(jié)構(gòu)框圖和引腳,表1已經(jīng)給出了引腳說明。64位的ROM中存儲設(shè)備的獨特串行碼。暫存存儲器包含雙字節(jié)溫度寄存器,用于存儲溫度傳感器的數(shù)字輸出。此外,暫存器還提供獲得1個字節(jié)的上限和下限報警觸發(fā)寄存器(TH和TL)和1個字節(jié)的寄存器配置。配置寄存器允許用戶設(shè)定的溫度到數(shù)字的決議轉(zhuǎn)換為9,10,11,或者12位。TH、TL和配置寄存器都是EEPROM,因此當丟電時將保留設(shè)備斷電時的數(shù)據(jù)。
DS18B20利用達拉斯獨家單總線協(xié)議,實現(xiàn)了用一個控制信號通信。由于所有設(shè)備連接到總線通過一個三態(tài)或漏極開路端口(DS18B20中DQ引腳),控制線需要一個弱上拉電阻。在這種總線系統(tǒng)中,微處理器(主設(shè)備)和地址識別設(shè)備的總線使用每個設(shè)備的唯一的64位代碼。因為每個裝置有一個唯一的代碼,一些設(shè)備可以在一個總線處理幾乎是無限的。這種單總線協(xié)議,包括命令和“時段”的詳細解釋,是在此資料的關(guān)于單總線系統(tǒng)部分。
DS18B20的另一個特點是無需外部電源進行工作。當總線電壓很高時,電源是由通過DQ引腳的一線上拉電阻來提供的。這個總線信號為高電平時,可以控制內(nèi)部電容(CPP),然后作為供電設(shè)備時總線信號為低電平。這種從一線總線產(chǎn)生電源的方法稱為“寄生電源”。此外,DS18B20也可由外部電源供電。
DS18B20框圖如圖1
1.089.jpg
1.090.jpg 應(yīng)用- 測量溫度
DS18B20的核心功能是它的直接數(shù)字式溫度傳感器。溫度傳感器的分辨率為用戶配置分別為9,10,11或12位,對應(yīng)增量為0.5℃,0.25°,0.125°C和0.0625°C,默認分辨率是12 位。DS18B20的電源在低功耗空閑狀態(tài);啟動溫度測量和A/D轉(zhuǎn)換時,主機必須發(fā)出一個轉(zhuǎn)換命令T[44H]。轉(zhuǎn)換后產(chǎn)生的熱數(shù)據(jù)存儲在2個字節(jié)的溫度寄存器暫存器,DS18B20的返回到其空閑狀態(tài)。如果DS18B20是由外部電源供電,當發(fā)出轉(zhuǎn)換T命令后,主機可以發(fā)出“讀時隙”(見單總線系統(tǒng)部分),此時DS18B20 將發(fā)送0以響應(yīng)正在進行溫度轉(zhuǎn)換,當變成1時表示轉(zhuǎn)換完成。如果DS18B20是寄生電源供電,上述通信技術(shù)不適用,因為在整個溫度的轉(zhuǎn)換過程中總線必須通過一個上拉電阻來保持高電平。總線對寄生電源要求高的原因已經(jīng)在本手冊的DS18B20的供電部分作了詳細解釋。
DS18B20的輸出溫度數(shù)據(jù)進行校準攝氏度輸出;為華氏應(yīng)用,必須使用查表或轉(zhuǎn)換例程。溫度數(shù)據(jù)存儲在溫度寄存器為一個16位符號擴展的補碼(見圖2)標志位(S)表示溫度是正還是負:零上(正)時,S= 0,零下(負)時,S = 1。如果為負數(shù)DS18B20的12位分辨率的配置,在溫度寄存器所有位將包含有效位。當分辨率為11位時,位0是不確定的。對于10位分辨率,位1和0是不確定的,并為9位位分辨率位2,1和0是不確定的。表2給出的數(shù)字輸出數(shù)據(jù)的例子和相應(yīng)的12位分辨率的溫度轉(zhuǎn)換。
溫度寄存器的格式如圖2
1.091.jpg 溫度數(shù)據(jù)關(guān)系2
溫度/°C

輸出數(shù)據(jù)(二進制)

輸出數(shù)據(jù)(十六進制)

+125°C
0000 0111 1101 0000
07D0h
+85°C*
0000 0101 0101 0000
0550h
+25.0625°C
0000 0001 1001 0001
0191h
+10.125°C
0000 0000 1010 0010
00A2h
+0.5°C
0000 0000 0000 1000
0008h
0°C
0000 0000 0000 0000
0000h
-0.5°C
1111 1111 1111 1000
FFF8h
-10.125°C
1111 1111 0101 1110
FF5Eh
-25.0625°C
1111 1110 0110 1111
FE6Fh
-55°C
1111 1100 1001 0000
FC90h

*以上電源復位溫度值寄存器是+ 85°C
應(yīng)用–報警信號
DS18B20進行溫度轉(zhuǎn)換后,溫度值和用戶定義的存儲在一個字節(jié)TH和TL存儲器中(見圖3)的報警觸發(fā)值相比較。符號位(S)表明溫度值是正數(shù)或負數(shù):正時,S=0,負時,S=1。TH和TL存儲器都是EEPROM,所以當設(shè)備丟電時,他們將保留數(shù)據(jù),TH和TL可以存儲在暫存器的字節(jié)2和3中,在本數(shù)據(jù)手冊的內(nèi)存部分已經(jīng)解釋過。
THTL寄存器格式3
第7位  第6位    第5位   第4位    第3位     第2位   第1位   第0位
S
26
25
25
25
22
21
20
由于TH和TL是8位寄存器,所以只有第11位通過4個溫度寄存器在TH和TL比較中有用。如果溫度測量結(jié)果高于TH或低于TL就會存在報警狀態(tài),同時報警標志被設(shè)置在DS18B20。每一個溫度測量這個標志都會更新;因此,如果報警條件消失,該標志將被關(guān)閉,直到下一個溫度轉(zhuǎn)換結(jié)束。
主設(shè)備可以通過發(fā)出報警搜索命令[ECh]檢查所有的DS18B20總線上的報警標志狀態(tài)。所有含有報警標志的DS18B20s都將響應(yīng)命令,因此主設(shè)備可以準確地確定哪些DS18B20已經(jīng)經(jīng)歷了一個報警狀態(tài)。如果存在報警條件并且TH或TL的設(shè)置已經(jīng)改變了,另一個溫度轉(zhuǎn)換應(yīng)該做驗證報警條件。
DS18B20的供電
DS18B20可以由VDD引腳上的外部電源供電,它可以工作在“寄生電源”模式下,它允許DS18B20的功能沒有本地外部電源供電。對于某些需要遠程溫度傳感或非常空間受限的情況下,寄生電源是非常有用的。圖1顯示了DS18B20的寄生蟲電源控制電路,當總線為高電平時,從單總線上“竊取”的電流通過DQ引腳。這些竊取”的電流給DS18B20供電。當總線為低電平時,一些存放在寄生電力電容器(CPP)電流提供電源。當DS18B20工作在寄生電源模式時,VDD引腳必須接地。

附錄C:主要參考文獻與摘要
[1] 周馳. 基于Atmega128單片機的機房空調(diào)溫度控制系統(tǒng)設(shè)計, 2015。
【摘 要】隨著信息化時代的到來,通信機房的數(shù)量也在急劇增多,作為通信機房主要的散熱設(shè)備,精密空調(diào)的控制也越來越受到廣大用戶的關(guān)注與重視。本文結(jié)合通信機房的溫度環(huán)境特征和控制系統(tǒng)的功能要求,給出了精密空調(diào)溫度控制系統(tǒng)的總體設(shè)計方案,并對溫度控制系統(tǒng)進行了控制算法研究和軟、硬件設(shè)計。控制系統(tǒng)采用了手操板加核心板的設(shè)計思路,兩板都以Atmega128單片機為控制核心,手操板則配以按鍵、顯示、通信等模塊電路,核心板上則設(shè)計了系統(tǒng)的溫濕度采集電路(通過DS18b20和DHT1l等數(shù)字溫濕度傳感器)、基于SPI通信的溫度控制電路、基于單片機PWM功能模塊的濕度控制電路、風機控制電路和通信模塊電路等外圍電路,詳細闡述了系統(tǒng)的軟件設(shè)計,重點給出了控制算法的實現(xiàn)過程和中斷服務(wù)過程。控制系統(tǒng)可實現(xiàn)信號采集、調(diào)濕裝置控制、調(diào)溫裝置控制、風機控制、數(shù)據(jù)計算、數(shù)據(jù)通信以及數(shù)據(jù)顯示等功能。
【關(guān)鍵詞】Atmega128;DS18b20;串行通信
[2]張博濤,劉華。基于單片機的溫度采集系統(tǒng)的設(shè)計,2008.
【摘 要】介紹了一種溫度采集系統(tǒng),分析了其測量原理。給出了其系統(tǒng)設(shè)計。本系統(tǒng)采用PT100熱電阻作為溫度傳感器,使用C8051F020單片機完成溫度采集,并給出了該系統(tǒng)的硬件結(jié)構(gòu)和軟件流程。經(jīng)現(xiàn)場調(diào)試、運行,溫度測量的準確度、精度都達到了設(shè)計要求,系統(tǒng)運行良好。
【關(guān)鍵詞】MCU;C8051F020;測溫
[3]劉永春,王秀碧。基于單片機的分布式溫度采集系統(tǒng)設(shè)計,2008.
【摘 要】本文分析和設(shè)計了一款基于單片機和集成單總線溫度傳感器DS18B20和支持I~2C技術(shù)的LED和鍵盤驅(qū)動模塊ZLG7290的分布式溫度采集系統(tǒng),主要包括系統(tǒng)控制、溫度信號采集、溫度信號顯示及控制等功能模塊。
【關(guān)鍵詞】AT89S52;LED;DS18B20
[4]劉瑩。基于單片機的精密儀器生產(chǎn)車間溫濕度自動控制系統(tǒng),2014
【摘 要】該設(shè)計是基于單片機的溫濕度檢測控制系統(tǒng),采用模塊化、層次化設(shè)計。采用新型的數(shù)字型溫濕度傳感器DHT11,它可以實現(xiàn)對溫度、濕度的采集,并將采集到的模擬信號轉(zhuǎn)換成數(shù)字信號;運用單片機STC89C52對數(shù)據(jù)進行分析和處理,為顯示提供信號;顯示部分采用字符型LCD1602液晶顯示器顯示所測溫度和濕度值。
【關(guān)鍵詞】智能化;DHT11;溫度濕度采集
[5]秋菜青。基于單片機AT89S52的溫度控制系統(tǒng),2010.
【摘 要】以水溫為主要控制目標,設(shè)計了溫度實時控制系統(tǒng),采用AT89S52單片機為核心控制器件,用線性度好、靈敏度高的集成溫度傳感器AD590及分辨率高、噪聲低的A/D轉(zhuǎn)換器進行溫度采集,實現(xiàn)對水溫40~90℃自動控制,系統(tǒng)具有設(shè)定溫度顯示、當前溫度實時顯示的功能,經(jīng)過實際運行表明,系統(tǒng)能夠較好地控制水溫。
【關(guān)鍵詞】單片機;AD590;A/D
[6] 劉永春,張峰。基于單片機的水溫控制系統(tǒng)設(shè)計,2008。
【摘 要】系統(tǒng)采用凌陽SPCE061A單片機作為水溫控制中心,水溫信號由DS18B20數(shù)字溫度傳感器采集,控制器采用數(shù)字增量式PID算法,控制信號經(jīng)繼電器實現(xiàn)對熱電爐工作狀態(tài)及水溫控制。系統(tǒng)采用上位機PC機實現(xiàn)多個控制對象的集中監(jiān)控。
【關(guān)鍵詞】智能化;DS18b20;SPCE061A
[7]馮少懷,周申輝。基于DS18B20的溫度測量系統(tǒng),2009.
【摘 要】以溫度的采集處理和顯示為目的,研究了基于AT89S51單片機的溫度檢測及顯示的設(shè)計方法,給出了硬件和軟件系統(tǒng)設(shè)計,包括溫度傳感器芯片的選取、單片機與溫度傳感器的接口設(shè)計以及實現(xiàn)溫度采集和數(shù)據(jù)傳輸?shù)能浖O(shè)計。該系統(tǒng)結(jié)構(gòu)簡單,成本較低,體積小,測溫范圍為-55℃~125℃,可以應(yīng)用在很多溫度檢測領(lǐng)域。
【關(guān)鍵詞】AT89S51;DS18b20;串行通信
[8]李淑華,高翠山。基于單片機的遠距離自編碼數(shù)據(jù)采集系統(tǒng)設(shè)計,1998.
【摘 要】本文介紹一種在遠距離數(shù)據(jù)采集系統(tǒng)中,為了提高抗干擾和可靠性,利用單片機和PC機進行傳輸信號自編碼,解碼的電路設(shè)計。本系統(tǒng)在北京譜儀的簇設(shè)電子學系統(tǒng)中,對溫度和電壓的監(jiān)控有重要意義。
【關(guān)鍵詞】溫度采集;DS18b20;單片機
[9]張長蓮,基于AT89C51單片機的溫度傳感器控制電路,2007
【摘 要】溫度是表征物體冷熱程度的物理量。本文簡要介紹了采用由 AT89C51單片機及溫度傳感器組成數(shù)據(jù)采集電路,加上顯示電路和控制電路等,根據(jù)溫度數(shù)據(jù)測量,通過控制電路對溫度進行控制。本系統(tǒng)具有快速顯示、測量準確、精度高、可調(diào)溫控范圍、硬件結(jié)構(gòu)簡單等優(yōu)點,是一種比較經(jīng)濟的溫度控制系統(tǒng)。該系統(tǒng)的設(shè)計使溫度傳感器正向單片集成化、智能化、網(wǎng)絡(luò)化和單片系統(tǒng)化方向發(fā)展。
【關(guān)鍵詞】AT89C51;單片機集成;溫度傳感器
[10]葉華,袁運連。基于單片機的高溫工業(yè)爐電視監(jiān)控裝置,2009
【摘 要】 針對高溫工業(yè)爐監(jiān)控性能自動化程度較低的問題,介紹了一種用ATMega128單片機為CPU組成的電視監(jiān)控裝置設(shè)計和實現(xiàn)的基本過程。從需求和功能入手分析系統(tǒng)整體框架,詳述了基于單片機的硬件主體設(shè)計,利用模數(shù)接口,采集現(xiàn)場溫度傳感器、冷卻氣流量及壓力、水壓力傳感器等標準4~20mA模擬量信號以獲取高溫工業(yè)爐運行參數(shù)。單片機一方面將獲取的實時參數(shù)顯示在控制箱的小型液晶屏上,另一方面與監(jiān)控主機實現(xiàn)實時數(shù)據(jù)通訊。并利用探頭裝置和限位開關(guān)等,控制探頭電機的正反轉(zhuǎn),進而實現(xiàn)高溫工業(yè)爐探頭在不同條件下的自動退出保護控制。最后就其硬件設(shè)計和功能需求開發(fā)了實現(xiàn)相應(yīng)功能的單片機C程序。
【關(guān)鍵詞】ATMega128;液晶;監(jiān)控裝置
附錄D:程序
  1. #include
  2. #include
  3. #define  uchar unsigned char
  4. #define  uint  unsigned int
  5. uint code table[]={0+0x30,1+0x30,2+0x30,3+0x30,4+0x30,5+0x30,6+0x30,7+0x30,8+0x30,9+0x30};

  6. uchar code table1[]="liujiantao";
  7. uchar code table2[]=".";
  8. uchar code table3[]="C";
  9. sbit ds=P2^2;     //溫度傳感器信號線
  10. sbit beep=P2^3;  //蜂鳴器
  11. sbit lcden=P3^4;              //液晶使能端
  12. sbit lcdrs=P3^5;              //液晶數(shù)據(jù)命令選擇端
  13. uchar num;
  14. uint temp;
  15. float f_temp;
  16. uint warn_l1=260;
  17. uint warn_l2=250;
  18. uint warn_h1=300;
  19. uint warn_h2=320;

  20. sbit led0=P1^0;
  21. sbit led1=P1^1;
  22. sbit led2=P1^2;
  23. sbit led3=P1^3;



  24. void delay(uint z)//延時函數(shù)
  25. {
  26.               uint x,y;
  27.               for(x=z;x>0;x--)
  28.                             for(y=110;y>0;y--);
  29. }



  30. void dsreset(void)    //18B20復位,初始化函數(shù)
  31. {
  32.   uint i;
  33.   ds=0;
  34.   i=103;
  35.   while(i>0)i--;
  36.   ds=1;
  37.   i=4;
  38.   while(i>0)i--;
  39. }

  40. bit tempreadbit(void)   //讀1位函數(shù)
  41. {
  42.    uint i;
  43.    bit dat;
  44.    ds=0;i++;         //i++ 起延時作用
  45.    ds=1;i++;i++;
  46.    dat=ds;
  47.    i=8;while(i>0)i--;
  48.    return (dat);
  49. }

  50. uchar tempread(void)   //讀1個字節(jié)
  51. {
  52.   uchar i,j,dat;
  53.   dat=0;
  54.   for(i=1;i<=8;i++)
  55.   {
  56.     j=tempreadbit();
  57.     dat=(j<<7)|(dat>>1);   //讀出的數(shù)據(jù)最低位在最前面,這樣剛好一個字節(jié)在DAT里
  58.   }
  59.   return(dat);
  60. }

  61. void tempwritebyte(uchar dat)   //向18B20寫一個字節(jié)數(shù)據(jù)
  62. {
  63.   uint i;
  64.   uchar j;
  65.   bit testb;
  66.   for(j=1;j<=8;j++)
  67.   {
  68.     testb=dat&0x01;
  69.     dat=dat>>1;
  70.     if(testb)    //寫 1
  71.     {
  72.       ds=0;
  73.       i++;i++;
  74.       ds=1;
  75.       i=8;while(i>0)i--;
  76.     }
  77.     else
  78.     {
  79.       ds=0;       //寫 0
  80.       i=8;while(i>0)i--;
  81.       ds=1;
  82.       i++;i++;
  83.     }

  84.   }
  85. }

  86. void tempchange(void)  //DS18B20 開始獲取溫度并轉(zhuǎn)換
  87. {
  88.   dsreset();
  89.   delay(1);
  90.   tempwritebyte(0xcc);  // 寫跳過讀ROM指令
  91.   tempwritebyte(0x44);  // 寫溫度轉(zhuǎn)換指令
  92. }

  93. uint get_temp()        //讀取寄存器中存儲的溫度數(shù)據(jù)
  94. {
  95.   uchar a,b;

  96.   dsreset();
  97.   delay(1);
  98.   tempwritebyte(0xcc);
  99.   tempwritebyte(0xbe);
  100.   a=tempread();         //讀低8位
  101.   b=tempread();         //讀高8位
  102.   temp=b;
  103.   temp<<=8;           //兩個字節(jié)組合為1個字
  104.   temp=temp|a;
  105.   f_temp=temp*0.0625;     //溫度在寄存器中為12位 分辨率位0.0625°
  106.   temp=f_temp*10+0.5;    //乘以10表示小數(shù)點后面只取1位,加0.5是四舍五入
  107.   f_temp=f_temp+0.05;
  108.   return temp;        //temp是整型
  109. }
  110. void write_com(uchar com)
  111. {
  112.               lcdrs=0;
  113.               P0=com;
  114.               delay(5);
  115.               lcden=1;
  116.               delay(5);
  117.               lcden=0;
  118. }
  119. void init()
  120. {
  121.               lcden=0;
  122.               write_com(0x38);//設(shè)置16X2顯示,5X7點陣,8位數(shù)據(jù)接口
  123.               write_com(0x0c);//設(shè)置開顯示,不顯示光標
  124.               write_com(0x06);//寫一個字符后地址指針加1
  125.               write_com(0x01);//顯示清零,數(shù)據(jù)指針清零
  126. }

  127. void write_data(uchar date)
  128. {
  129.               lcdrs=1;
  130.               P0=date;
  131.               delay(5);
  132.               lcden=1;
  133.               delay(5);
  134.               lcden=0;
  135. }
  136. ////////////////////顯示程序//////////////////////////
  137. void display(uint o,uint p,uint q )
  138. {
  139.               init();
  140.               write_com(0x80);
  141.               write_data(table[o]);
  142.               write_com(0x80+0x01);
  143.               write_data(table[p]);
  144.               write_com(0x80+0x02);
  145.               write_data(table2[0]);
  146.               write_com(0x80+0x03);
  147.               write_data(table[q]);
  148.               write_com(0x80+0x04);
  149.               write_data(table3[0]);
  150.               write_com(0x80+0x40);
  151.               for(num=0;num<10;num++)
  152.               {
  153.                             write_data(table1[num]);
  154.               }
  155.               delay(500);
  156. }

  157. void dis_temp(uint t)
  158. {
  159.   uint i,u,v;
  160.   i=t/100;
  161.   u=t%100/10;
  162.   v=t%100%10;
  163.   display(i,u,v);
  164. delay(500);

  165. }
  166. //////////////////////////////////////////////
  167. void warn(uint s,uchar led)  //蜂鳴器報警聲音 ,s控制音調(diào)
  168. {
  169.     uchar i;i=s;

  170.               beep=0;
  171.     P1=~(led);
  172.     while(i--)
  173.     {
  174.       dis_temp(get_temp());
  175.     }  
  176.               beep=1;
  177.     P1=0XFF;
  178.     i=s;
  179.      while(i--)
  180.     {
  181.       delay(5);
  182.     }
  183. }
  184. void deal(uint t)
  185. {
  186.   uchar i;
  187.   if((t>warn_l2)&&(t<=warn_l1)) //大于25度小于27度
  188.               {
  189.        warn(40,0x01);

  190.               }
  191.   else if(t<=warn_l2)                   //小于25度
  192.               {
  193.        warn(10,0x03);
  194.               }
  195.   else if((t=warn_h1)) //小于32度大于30度
  196.     {
  197.        warn(40,0x04);
  198.               }
  199.   else if(t>=warn_h2)                   //大于32度
  200.               {
  201.        warn(10,0x0c);
  202.               }
  203.   else
  204.     {
  205.        i=40;
  206.        while(i--)
  207.        {
  208.         delay(5);
  209.        }
  210.     }
  211. }




  212. void main()
  213. {
  214.   uchar i;
  215.   while(1)
  216. {   
  217.       dsreset();
  218.       tempchange();
  219.       for(i=10;i>0;i--)
  220.      {
  221.       dis_temp(get_temp());}
  222.       deal(temp);
  223.                


  224. }
  225. }
復制代碼




評分

參與人數(shù) 1黑幣 +5 收起 理由
lll111111 + 5 絕世好帖!

查看全部評分

相關(guān)帖子

回復

使用道具 舉報

ID:180796 發(fā)表于 2017-3-22 22:45 | 顯示全部樓層
二愛狗狗好啊 a
回復

使用道具 舉報

ID:185773 發(fā)表于 2017-4-3 14:47 | 顯示全部樓層
12313123123123123123123
回復

使用道具 舉報

ID:319850 發(fā)表于 2018-5-2 09:48 | 顯示全部樓層
發(fā)一篇這樣的文章收獲大概多少黑幣?缺幣...
回復

使用道具 舉報

ID:345834 發(fā)表于 2018-6-5 23:53 | 顯示全部樓層
很需要這個文件
可是黑幣不夠
回復

使用道具 舉報

ID:419834 發(fā)表于 2018-11-2 19:34 | 顯示全部樓層
感謝分享
回復

使用道具 舉報

ID:419834 發(fā)表于 2018-11-2 19:35 | 顯示全部樓層
908802403 發(fā)表于 2018-6-5 23:53
很需要這個文件
可是黑幣不夠

我也是的
回復

使用道具 舉報

ID:419834 發(fā)表于 2018-11-2 19:37 | 顯示全部樓層
黑筆不夠,啊啊啊啊啊啊啊,好難受
回復

使用道具 舉報

ID:419895 發(fā)表于 2018-11-2 20:50 | 顯示全部樓層
毛毛洋 發(fā)表于 2018-11-2 19:37
黑筆不夠,啊啊啊啊啊啊啊,好難受

同感。。。。。。。。。。。。。
回復

使用道具 舉報

ID:432109 發(fā)表于 2018-11-23 22:29 | 顯示全部樓層
黑筆不夠,哈哈
回復

使用道具 舉報

ID:448062 發(fā)表于 2018-12-17 16:18 | 顯示全部樓層
為什么我這顯示32個錯誤和2個警告????
回復

使用道具 舉報

ID:448062 發(fā)表于 2018-12-17 16:21 | 顯示全部樓層
毛毛洋 發(fā)表于 2018-11-2 19:37
黑筆不夠,啊啊啊啊啊啊啊,好難受

不是每天給兩個,三天6個這用5個還能剩一個????我新注冊的改個頭像就3個黑幣了,明天登錄給兩個我就夠了
回復

使用道具 舉報

ID:482218 發(fā)表于 2019-3-2 16:50 | 顯示全部樓層
點心呀 發(fā)表于 2018-12-17 16:18
為什么我這顯示32個錯誤和2個警告????

麻煩問一下錯誤解決了嗎?
回復

使用道具 舉報

ID:601864 發(fā)表于 2019-11-17 23:02 | 顯示全部樓層
問一下,怎么更改溫度范圍
回復

使用道具 舉報

ID:611931 發(fā)表于 2020-1-19 14:02 | 顯示全部樓層
這是51的,其實我想要的是32的,不過有個參考也好
回復

使用道具 舉報

ID:1007100 發(fā)表于 2022-2-27 16:46 | 顯示全部樓層
這是51的,其實我想要的是32的,不過有個參考也好
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕第一页 | 中文字幕精品一区 | 成人精品久久 | 中文字幕欧美日韩 | 欧美视频二区 | 欧美黄色网 | 超碰成人av | 在线成人av | 中文字幕在线视频免费视频 | 韩日在线视频 | 日韩1区2区 | 欧美精品在线播放 | 欧美日产国产成人免费图片 | 亚洲免费在线视频 | 日本成人二区 | 国产日产精品一区二区三区四区 | 国产精品亚洲欧美日韩一区在线 | 欧美成人一级 | 91偷拍精品一区二区三区 | 黄色免费在线观看网址 | 日韩视频专区 | 精品国产欧美一区二区三区成人 | 久久久久国产精品午夜一区 | 精品一区二区三区中文字幕 | 亚洲精品欧美精品 | 蜜桃视频在线观看免费视频网站www | 91免费观看国产 | 国产亚洲精品精品国产亚洲综合 | 日韩精品一区二区三区中文在线 | 成人中文字幕在线观看 | 成人av免费| 成人av网站在线观看 | 精精国产xxxx视频在线 | 国产精品精品视频一区二区三区 | 亚洲欧美在线一区 | 久久av一区二区三区 | 丝袜 亚洲 欧美 日韩 综合 | 99在线免费观看视频 | 永久网站 | 我要看一级片 | 午夜av电影 |