找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

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

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

摘    要

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

關(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 課題背景及實(shí)際意義

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

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

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

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

2.1.1溫度測(cè)量的選擇

2.1.2顯示電路的選擇

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

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

第三章 硬件設(shè)計(jì)

3.1單片機(jī)AT89C52

3.1.1簡(jiǎn)介

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

3.2溫度傳感器DS18B20

3.2.1 簡(jiǎn)介

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

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

3.3.1 LCD1602簡(jiǎn)介

3.3.2  LCD1602與單片機(jī)的接口電路

3.4報(bào)警器的設(shè)計(jì)

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

4.1Keil軟件概述

4.2主程序

4.3讀出溫度子程序

4.4溫度報(bào)警命令子程序

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

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

5.1Proteus簡(jiǎn)介

5.2調(diào)試與仿真

結(jié)論與展望

致謝

參考文獻(xiàn)

附錄A:電路原理圖繪制

附錄B:一篇引用的引文文獻(xiàn)及翻譯

附錄C:主要參考文獻(xiàn)與摘要

附錄D:程序




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


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


1




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

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

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


0.png

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




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

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

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

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


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

符號(hào)

引腳說(shuō)明

編號(hào)

符號(hào)

引腳說(shuō)明
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

讀/寫(xiě)選擇

13

D6

數(shù)據(jù)
6

E

使能信號(hào)

14

D7

數(shù)據(jù)
7

D0

數(shù)據(jù)

15

BLA

背光源正極
8

D1

數(shù)據(jù)

16

BLK

背光源負(fù)極

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

表格 5控制命令表
序號(hào)
指令

RS

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

0

0
0
0
0
0
0
0
0
1
2
光標(biāo)返回

0

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

0

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

0

0
0
0
0
0
1
D
C
B
5
光標(biāo)或字符移位

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
讀忙標(biāo)志或地址

0

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

1

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

1

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

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

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

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






4.2主程序

0.png


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











4.4溫度報(bào)警命令子程序


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






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


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















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


                                             作者:

                                              2016年    6 月  25日
1




安徽工程科技學(xué)院畢業(yè)設(shè)計(jì)(論文)
參考文獻(xiàn)
[1] 朱群峰,王曉芳,黃磊基于DS18B20的多路溫度采集系統(tǒng)[J].船電技術(shù).2009,2:7-9
[2] 江太輝,鄧展威.DS18B20數(shù)字溫度傳感器的特征與應(yīng)用[J].電子技術(shù),2003,12:46-49
[3]  袁東等編著.51單片機(jī)應(yīng)用開(kāi)發(fā)實(shí)戰(zhàn)手冊(cè)[C].北京:電子工業(yè)出版社,2011:376-419
[4]  陶冶,袁永超,羅平.基于DS18B20的單片機(jī)溫度測(cè)量系統(tǒng)[J].農(nóng)機(jī)化研究,2007.10:160-164
[5]  易麗華,黃俊.基于AT89C51單片機(jī)與DS18B20的溫度測(cè)量系統(tǒng)[J].電子與封裝,2009.5,9(5):39-43
[6]  李廣明,袁華強(qiáng).基于嵌入式和DS18B20的溫度采集系統(tǒng)[J].東莞理工學(xué)院學(xué)報(bào),2009.6,16(3):1-4
[7]   樊強(qiáng),張敏,李霞.基于DS18B20的溫度采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].農(nóng)機(jī)化研究,2011,12:161-164.
[8]  陰志國(guó),袁兵,陳云輝.基于DS18B20多點(diǎn)溫度采集兼紅外無(wú)線傳輸系統(tǒng)研究[J].現(xiàn)代商貿(mào)工業(yè),2010,16:373-373.
[9]  陳桂友等編著.單片微型計(jì)算機(jī)原理及接口技術(shù),2012.4
[10] 邢鵬康,劉彥華.基于Proteus和LabVIEW軟件的溫度采集系統(tǒng)的設(shè)計(jì)與仿真
[11] 郭慶鋒,基于單片機(jī)溫度采集系統(tǒng)的開(kāi)發(fā)與應(yīng)用,2015:1671-7341
[12] 曠愛(ài)華,李萍,基于單片機(jī)的遠(yuǎn)程多路溫度采集系統(tǒng),2015:1007-9416
[13] DS18B20數(shù)據(jù)手冊(cè).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:一篇引用的引文文獻(xiàn)及翻譯
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ù)字溫度計(jì)
(P1 ~ P4)

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

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

+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

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

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

  50. uchar tempread(void)   //讀1個(gè)字節(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ù)最低位在最前面,這樣剛好一個(gè)字節(jié)在DAT里
  58.   }
  59.   return(dat);
  60. }

  61. void tempwritebyte(uchar dat)   //向18B20寫(xiě)一個(gè)字節(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)    //寫(xiě) 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;       //寫(xiě) 0
  80.       i=8;while(i>0)i--;
  81.       ds=1;
  82.       i++;i++;
  83.     }

  84.   }
  85. }

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

  93. uint get_temp()        //讀取寄存器中存儲(chǔ)的溫度數(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;           //兩個(gè)字節(jié)組合為1個(gè)字
  104.   temp=temp|a;
  105.   f_temp=temp*0.0625;     //溫度在寄存器中為12位 分辨率位0.0625°
  106.   temp=f_temp*10+0.5;    //乘以10表示小數(shù)點(diǎn)后面只取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點(diǎn)陣,8位數(shù)據(jù)接口
  123.               write_com(0x0c);//設(shè)置開(kāi)顯示,不顯示光標(biāo)
  124.               write_com(0x06);//寫(xiě)一個(gè)字符后地址指針加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)  //蜂鳴器報(bào)警聲音 ,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. }
復(fù)制代碼




評(píng)分

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

查看全部評(píng)分

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

我也是的
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

同感。。。。。。。。。。。。。
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

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

麻煩問(wèn)一下錯(cuò)誤解決了嗎?
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表