畢業(yè)論文格式 (1)
《畢業(yè)論文格式 (1)》由會(huì)員分享,可在線閱讀,更多相關(guān)《畢業(yè)論文格式 (1)(47頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 鄭州航空工業(yè)管理學(xué)院 畢 業(yè) 論 文(設(shè) 計(jì)) 2013 屆 電子信息 專業(yè) 0913083 班級(jí) 題 目 高溫加工設(shè)備中分布式溫度測(cè)試系統(tǒng) 姓 名 蔡傳婷 學(xué)號(hào)091308303 指導(dǎo)教師 張臻 職稱 副教授 二О 一三 年 五 月 二十四 日 內(nèi) 容 提 要 本次設(shè)計(jì)的題目名為高溫環(huán)境下的分布式溫度測(cè)試系統(tǒng),我們從實(shí)際運(yùn)用出發(fā),以基于DS18B20的多點(diǎn)溫度分布式測(cè)量系統(tǒng)進(jìn)行研究。而后,我們對(duì)高溫環(huán)境下的國(guó)內(nèi)
2、工業(yè)情況進(jìn)行展望。 本次設(shè)計(jì)系統(tǒng)地介紹了基于DS18B20的多點(diǎn)溫度分布式測(cè)量系統(tǒng)的組成、設(shè)計(jì)方案、電路原理、程序設(shè)計(jì)以及系統(tǒng)仿真過(guò)程。DS18B20多點(diǎn)溫度測(cè)量系統(tǒng)是以AT89C51單片機(jī)作為控制核心,智能溫度傳感DS18B20為控制對(duì)象,運(yùn)用匯編語(yǔ)言編程實(shí)現(xiàn)系統(tǒng)的各種功能。 該系統(tǒng)由單片機(jī)最小系統(tǒng)、傳感器電路、報(bào)警電路、LCD顯示電路、行列式鍵盤電路、電源電路六大部分組成。借助PROTEUS軟件,實(shí)現(xiàn)了系統(tǒng)電路設(shè)計(jì)和仿真。它適用于電力工業(yè)、煤礦、森林、火災(zāi)、高層建筑等場(chǎng)所,還可以用于環(huán)境惡劣的工業(yè)控制現(xiàn)場(chǎng)。通過(guò)DS18B20的單總線技術(shù),實(shí)現(xiàn)對(duì)遠(yuǎn)程環(huán)境的溫度測(cè)量與監(jiān)控。
3、關(guān)鍵詞 DS18B20; 仿真,;測(cè)量系統(tǒng);PROTEUS The distributed temperature measurement system under the environment of high temperature Author:Cai Chuanting Adviser:Zhang Zhen Abstract The topic of this design is called the distributed temperature measurement system in high temperature en
4、vironment. But starting from the practical application, we can study the distributed multipoint temperature measurement system based on DS18B20 . And then we can look forward to the domestic industry under the environment of high temperature. The system introduces design scheme, circuit princip
5、le , program design and system simulation process of the design of distributed multi-point temperature measurement system based on DS18B20 the composition. DS18B20 multi-point temperature measurement system based on AT89C51 use single chip microcomputer as control core, the intelligent temperature
6、 sensor DS18B20 as control object, and use assembly language programming to realize various functions of the system. System is made up of six important parts: single chip microcomputer minimum system, sensor circuit, alarm circuit, LCD display circuit, the determinant keyboard circuit, a
7、nd power circuit six major parts. With the aid of PROTEUS software, we have realized the circuit design and simulation system. It is suitable for the electric power industry, coal mine, forest, fire, high-rise building etc, and also can be used in industrial control field conditions. Through DS18B20
8、 single bus technology, we have realized the temperature measurement and monitoring of remote environment. Keywords DS18B20; Simulation ; Measurement system; PROTEUS 目 錄 第一章 緒論 3 1.1 課題設(shè)計(jì)背景 3 1.2 課題研究的目的意義 3 1.3 國(guó)內(nèi)外現(xiàn)狀及水平 4 1.4 課題研究?jī)?nèi)容 5 第二章 系統(tǒng)的需求分析與總體方案論證 7 2.1基于數(shù)字溫度傳感器設(shè)計(jì)方案 7
9、 2.2基于模擬溫度傳感器設(shè)計(jì)方案 9 2.3 方案論證 11 第三章 電路設(shè)計(jì) 13 3.1溫度傳感器DS18B20 14 3.1.1 DS18B20的引腳功能 14 3.1.2 DS18B20內(nèi)部結(jié)構(gòu) 14 3.1.3 DS18B20 的測(cè)溫原理 15 3.2顯示電路設(shè)計(jì) 16 3.3開(kāi)關(guān)電路設(shè)計(jì) 17 3.3.1開(kāi)關(guān)設(shè)計(jì) 17 3.3.1單片機(jī)的外部中斷擴(kuò)展 18 3.4.1時(shí)鐘電路 18 3.4.2報(bào)警電路 19 第四章 軟件設(shè)計(jì) 20 4.1主程序設(shè)計(jì) 20 4.2按鍵處理子程序 21 4.3顯示子程序 21 4.4溫度轉(zhuǎn)換程序及讀取溫度程序 22
10、 4.4.1 溫度傳感程序及讀取溫度程序的總體流程圖 22 4.4.2初始化子程序及應(yīng)答程序 23 4.4.3 DS18B20寫(xiě)子程序 24 4.2.4 DS18B20 讀子程序 26 第五章 PROTEUS仿真 28 5.1 PROTEUS仿真環(huán)境介紹 28 5.2 原理圖繪制 28 5.3 程序加載 29 5.3.1 程序編譯 29 5.3.2 程序加載 29 5.3.3仿真結(jié)果 30 結(jié)束語(yǔ)與展望 31 致 謝 32 參考文獻(xiàn) 33 附錄一 34 附錄二 35 高溫環(huán)境下的分布式溫度測(cè)試系統(tǒng)
11、 作者:蔡傳婷 指導(dǎo)教師:張臻 職稱:副教授 第一章 緒論 1.1 課題設(shè)計(jì)背景 溫度是表示物體冷熱程度的物理量,和人們的生活環(huán)境密切的關(guān)系,同時(shí),也是在生產(chǎn)生活科研等領(lǐng)域中需要測(cè)量控制的重要標(biāo)量,更是國(guó)際單位制中七個(gè)基本量之一,另一方面,溫度又是一種基本的環(huán)境參數(shù)。工業(yè)中有著重要應(yīng)用,比如,化工廠一些器件的生產(chǎn)必須控制在一定的溫度范圍內(nèi)。沒(méi)有合適的溫度環(huán)境,許多電子設(shè)備不能正常工作??梢?jiàn),研究溫度的測(cè)量具有重要的生產(chǎn)實(shí)踐意義。這之中,高溫環(huán)境更是經(jīng)常運(yùn)用在工業(yè)生產(chǎn)之中,所以高溫環(huán)境中溫度的測(cè)量研究,尤為重要。 隨著現(xiàn)代科技的發(fā)展,溫度傳感器的作用日益突出。溫度傳感器逐漸
12、成為自動(dòng)檢測(cè)、自動(dòng)控制系統(tǒng)和計(jì)量測(cè)試中重要必須的工具。本設(shè)計(jì)目的在于高溫環(huán)境中溫度的測(cè)量。 本設(shè)計(jì)從時(shí)基應(yīng)用出發(fā),以四點(diǎn)對(duì)溫度進(jìn)行測(cè)試,每個(gè)測(cè)試點(diǎn)有一個(gè)開(kāi)關(guān)控制,從而模擬實(shí)現(xiàn)分布式,另外介于高溫設(shè)備不宜實(shí)現(xiàn),我們以日常溫度模擬高溫。 1.2 課題研究的目的意義 隨著科技技術(shù)飛快地發(fā)展,測(cè)量在現(xiàn)代控制設(shè)備在性能和結(jié)構(gòu)上均有了顯著的作用。在這個(gè)信息高速發(fā)展的時(shí)代,測(cè)量技術(shù)被廣泛應(yīng)用于各個(gè)領(lǐng)域,本次設(shè)計(jì)的目的在于: (1)對(duì)常用數(shù)字溫度傳感器DS18B20的原理、性能、使用特點(diǎn)和方法等進(jìn)一步了解掌握,同時(shí)利用C51進(jìn)行編程,對(duì)機(jī)械語(yǔ)言進(jìn)一步熟悉。 (2)本課題的研究可以使學(xué)生更好地掌握基于
13、單片機(jī)應(yīng)用系統(tǒng)的分析與設(shè)計(jì)方法,培養(yǎng)創(chuàng)新意識(shí),增強(qiáng)電子信息專業(yè)休養(yǎng)能力。 (3)本課題不僅綜合了現(xiàn)代測(cè)控、電子信息、計(jì)算機(jī)技術(shù)專業(yè)領(lǐng)域方方面面的知識(shí),而且具有科學(xué)性、綜合性、代表性,可全面檢測(cè)所學(xué)知識(shí),加強(qiáng)實(shí)際應(yīng)用能力。 1.3 國(guó)內(nèi)外現(xiàn)狀及水平 傳感器作為信息技術(shù)的前沿尖端產(chǎn)品,在社會(huì)各個(gè)領(lǐng)域有著廣泛的應(yīng)用,而社會(huì)生產(chǎn)中隨處可見(jiàn)溫度傳感器的使用,數(shù)量更是各傳感器之首。溫度傳感器經(jīng)過(guò)三個(gè)階段的發(fā)展以后,新型溫度傳感器不僅開(kāi)始具有分辨力高、線性度好、成本低等優(yōu)點(diǎn),同時(shí)更由模擬式向數(shù)字式、由集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展。而我國(guó)更為新型傳感器的研究奠定了基礎(chǔ)。 DS18B20是美國(guó)DAL
14、LAS公司生產(chǎn)的單總線數(shù)字溫度傳感器,可把溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)供微機(jī)處理,而且可以在一條總線上掛接任意多個(gè)DS18B20芯片,構(gòu)成分布式溫度檢測(cè)系統(tǒng)無(wú)需任何外加硬件(《單總線數(shù)字溫度傳感器DS18B20及其在單片機(jī)系統(tǒng)的應(yīng)用》)。 單總線數(shù)字溫度傳感器,具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易于與微控制器接口優(yōu)點(diǎn),適合于各種溫度測(cè)控系統(tǒng)(《數(shù)字溫度傳感器DS18B20及其應(yīng)用》)。以DS18B20為例,介紹數(shù)字式溫度傳感器的功能特點(diǎn)及由DS18B20組成的溫度測(cè)控網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)。 隨著社會(huì)的發(fā)展、農(nóng)業(yè)生產(chǎn)也進(jìn)人了工廠化、數(shù)字化時(shí)代,人們開(kāi)始“使用人工設(shè)施、人工控制環(huán)境因素,使
15、植物獲得最適宜的生長(zhǎng)條件,從而延長(zhǎng)生產(chǎn)季節(jié),獲得最佳產(chǎn)出”,由此“工廠化農(nóng)業(yè)”應(yīng)運(yùn)而生并被廣泛接受(《單總線溫度傳感器DS18B20及其在溫室系統(tǒng)中的應(yīng)用》)。 基于DS18B20設(shè)計(jì)的溫度檢測(cè)系統(tǒng)就可以實(shí)現(xiàn)溫度測(cè)試的需求。另外作為工業(yè)生產(chǎn)中經(jīng)常被要求的高溫環(huán)境,此檢測(cè)更具有實(shí)際 應(yīng)用意義。 1.4 課題研究?jī)?nèi)容 軟件和硬件兩個(gè)方面是本次設(shè)計(jì)的難點(diǎn)。軟件開(kāi)發(fā)的難點(diǎn)在于DS18B20的時(shí)序設(shè)置,對(duì)于正確讀出溫度值有著重大影響,而硬件則在于各種元器件的選擇如電阻、電容等及其使用方法。故可將本設(shè)計(jì)研究的主要內(nèi)容分為如下: (1)在廣泛查閱溫度檢測(cè)控制理論和方法、測(cè)溫技術(shù)和溫度控制技
16、術(shù)等資料的基礎(chǔ)上,根據(jù)不同的控制要求及應(yīng)用領(lǐng)域完成對(duì)系統(tǒng)方案的總體設(shè)計(jì)。本設(shè)計(jì)采用以AT89C51為核心的單片機(jī)系統(tǒng),來(lái)實(shí)現(xiàn)對(duì)溫度的檢測(cè)、報(bào)警等功能。 (2)系統(tǒng)硬件設(shè)計(jì)。系統(tǒng)硬件設(shè)計(jì)主要包括:溫度檢測(cè)、單片機(jī)數(shù)據(jù)采集處理、顯示、按鍵控制、報(bào)警電路等部分。研究需要比較各相關(guān)元器件的功能與特點(diǎn),選擇合適的元器件。 (3)系統(tǒng)軟件設(shè)計(jì)。本課題采用匯編語(yǔ)言,利用Keil編譯器進(jìn)行編程及調(diào)試。主要研究DS18B20與單片機(jī)的通信協(xié)議等。 1 第二章 系統(tǒng)的需求分析與總體方案論證 2.1基于數(shù)字溫度傳感器設(shè)計(jì)方案 該方案使用了AT89C51單片機(jī)作為控制核心,以智能溫度傳感器DS
17、18B20為溫度測(cè)量元件,采用多個(gè)溫度傳感器對(duì)各點(diǎn)溫度進(jìn)行檢測(cè),多線連接,就是多個(gè)DS18B20分別連接到單片機(jī)的多個(gè)IO口,這種方案雖然占用單片機(jī)的多個(gè)IO口,但采用這種方案大大的簡(jiǎn)化了編程難度,縮短了設(shè)計(jì)周期,同時(shí)也能保證系統(tǒng)的穩(wěn)定。 溫度傳感器DS18B20 單 片 機(jī) LCD顯示電路 溫度傳感器 溫度傳感器 溫度傳感器 報(bào)警器 集成功效 溫度傳感器 4×4鍵盤 圖2.1 基于數(shù)字溫度傳感器測(cè)量系統(tǒng)方案 本課題采用數(shù)字溫度傳感器DS1
18、8B20作為測(cè)為測(cè)溫元件,它具有如下特點(diǎn): (1)只要求一個(gè)端口即可實(shí)現(xiàn)通信。 (2)在DS18B20中的每個(gè)器件上都有獨(dú)一無(wú)二的序列號(hào)。 (3)實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫。 (4)測(cè)量溫度范圍在-55℃到+128℃之間。 (5)數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇。 (6)內(nèi)部有溫度上、下限告警設(shè)置。 43 2.2基于模擬溫度傳感器設(shè)計(jì)方案 本方案采用模擬溫度傳感器AD590作為測(cè)溫元件,傳感器將測(cè)量的溫度變換轉(zhuǎn)換成電流的變化,再通過(guò)電路轉(zhuǎn)換成電壓的變化,再通過(guò)運(yùn)算放大器交將信號(hào)進(jìn)行適當(dāng)?shù)姆糯?,最后通過(guò)模數(shù)轉(zhuǎn)換器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),
19、傳給給單片機(jī),單片機(jī)將溫度值進(jìn)行處理之后用LCD顯示 ,當(dāng)溫度值超過(guò)設(shè)定值時(shí),系統(tǒng)開(kāi)始報(bào)警。如圖2.1所示,該方案由模擬溫度傳感器AD590、多路運(yùn)算放大器、A/D轉(zhuǎn)換器、4×4鍵盤、單片機(jī)、LCD顯示電路、集成功率放大器、報(bào)警器組成。 模擬傳感器AD590 多 路 運(yùn) 算 放大器 LCD顯示電路 單 片 機(jī) A/D 轉(zhuǎn) 換 多路選擇器 模擬溫度傳感器 模擬溫度傳感器 模擬溫度傳感器 報(bào)警器 集成功放 模擬溫度傳感器 4×4鍵盤
20、 圖2.2 基于模擬溫度傳感器的測(cè)量系統(tǒng)方案 本方案使用的測(cè)溫元件的性能指標(biāo)如下: (1)AD590的測(cè)溫范圍為﹣55℃~+150℃。 (2)AD590的電源電壓范圍為4V~30V,電源電壓可在4V~6V范圍變化,電流變化1mA,相當(dāng)于溫度變化1K。AD590可以承受44V正向電壓和20V反向電壓,因而器件反接也不會(huì)被損壞。 (3)輸出電阻為710MW。? (4)精度高,AD590共有I、J、K、L、M五檔,其中M檔精度最高,在﹣55℃~+150℃范圍內(nèi),非線性誤差為±0.3℃。 2.3 方案論證 本設(shè)計(jì)要求測(cè)量的點(diǎn)數(shù)為4,測(cè)溫范圍為-55℃~+128℃,精度為0.
21、1℃,其中100℃以上可近似作為高溫環(huán)境。綜合集成電路的性能指標(biāo)兩種方案均可實(shí)現(xiàn)。 方案一采用了數(shù)字溫度傳感器DS18B20,相對(duì)而言,改變了傳統(tǒng)溫度的測(cè)量方式。把DS18B20的四個(gè)DQ端分別接到單片機(jī)的四個(gè)不同的IO口,這種接法雖然占用的IO口比較多,但時(shí)序比較簡(jiǎn)單,不需要讀取ROM序列號(hào)程序,搜索ROM序列號(hào)程序,匹配ROM序列號(hào)程序,軟件上簡(jiǎn)化了很多。因而使用DS18B20可使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高,大大提高系統(tǒng)的抗干擾能力。DS18B20體積小、經(jīng)濟(jì)、使用方便靈活,測(cè)試精度高,較高的性能價(jià)格比,有CRC校驗(yàn),系統(tǒng)簡(jiǎn)明直觀。適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)試,如:環(huán)境控制等。
22、 另外,對(duì)于DS18B20,大學(xué)學(xué)習(xí)中,有過(guò)深入學(xué)習(xí),會(huì)使用PROTEUS實(shí)現(xiàn)系統(tǒng)的仿真。因此,該方案完既具有可行性又體現(xiàn)了先進(jìn)的技術(shù),經(jīng)濟(jì)也更加節(jié)約。全綜上所述,本課題采用方案二對(duì)系統(tǒng)進(jìn)行設(shè)計(jì)。 第三章 電路設(shè)計(jì) 基于DS18B20分布式溫度測(cè)量系統(tǒng)以AT89C51為核心器件,以Keil為系統(tǒng)開(kāi)發(fā)平臺(tái),用匯編語(yǔ)言進(jìn)行程序設(shè)計(jì),以PROTEUS作為仿真軟件設(shè)計(jì)而成的。本課題研究的多點(diǎn)測(cè)溫系統(tǒng)是以單片機(jī)和單總線數(shù)字溫度傳感器DS18B20為核心,充分利用單片機(jī)優(yōu)越的內(nèi)部和外部資源及數(shù)字溫度傳感器DS18B20的優(yōu)越性能構(gòu)成一個(gè)完備的測(cè)溫系統(tǒng),實(shí)現(xiàn)對(duì)溫度的多點(diǎn)測(cè)量。本課題
23、設(shè)計(jì)了一種合理、可行的單片機(jī)監(jiān)控軟件,完成測(cè)量和顯示的任務(wù)。由于單片機(jī)具有強(qiáng)大的運(yùn)算和控制功能,使得整個(gè)系統(tǒng)具有模塊化、硬件電路簡(jiǎn)單以及操作方便等優(yōu)點(diǎn)。 本課題的整個(gè)系統(tǒng)是由單片機(jī)、顯示電路、鍵盤電路、驅(qū)動(dòng)電路,等構(gòu)成。系統(tǒng)原理圖如圖3.1所示。 圖3.1 系統(tǒng)原理圖 3.1溫度傳感器DS18B20 3.1.1 DS18B20的引腳功能 DS18B20的引腳功能描述見(jiàn)表3.1。 表3.1 DS18B20引腳功能描述 序號(hào) 名稱 引腳功能描述 1 GND 地信號(hào) 2 DQ 數(shù)字輸入輸出引腳,開(kāi)漏單總線接口引腳,當(dāng)使用寄生電源時(shí),可向電源提供電源
24、3 VDD 可選擇的VDD引腳,當(dāng)工作于寄生電源時(shí),該引腳必須接地 3.1.2 DS18B20內(nèi)部結(jié)構(gòu) 圖3.2為DS18B20 的內(nèi)部框圖,它主要包括寄生電源、溫度傳感器、64 位激光ROM 單線接口、存放中間數(shù)據(jù)的高速暫存器(內(nèi)含便箋式RAM),用于存儲(chǔ)用戶設(shè)定的溫度上下限值的TH 和TL 觸發(fā)器存儲(chǔ)與控制邏輯、8 位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等七部分。64位光刻ROM 的排列是:開(kāi)始8位是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼。光刻ROM 的作用是使每一個(gè)DS18B20都各不相同,這可實(shí)現(xiàn)一根總線上掛接多個(gè)DS18
25、B20的目的。暫存存儲(chǔ)器包含了8個(gè)連續(xù)字節(jié),前2個(gè)字節(jié)是測(cè)得的溫度信息,第1個(gè)字節(jié)的內(nèi)容是溫度的低8位,第2個(gè)字節(jié)是溫度的高8位。第3個(gè)和第4個(gè)字節(jié)是TH、TL的易失性拷貝,第5個(gè)字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這3個(gè)字節(jié)的內(nèi)容在每一次上電復(fù)位時(shí)被刷新。第6、7、8個(gè)字節(jié)用于內(nèi)部計(jì)算。第9個(gè)字節(jié)是冗余檢驗(yàn)字節(jié) 存儲(chǔ)器和控制器 64位ROM和單線接口 高速 緩存 存儲(chǔ)器 溫度靈敏元件 低溫觸發(fā)器TL 高溫觸發(fā)器TH 電 源檢測(cè) 配置寄存器
26、 8位CRC生成器 圖3.2 DS18B20內(nèi)部結(jié)構(gòu)圖 3.1.3 DS18B20 的測(cè)溫原理 DS18B20測(cè)溫原理如圖3.3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。 計(jì)數(shù)器1 預(yù)置 比較 =0 溫度寄存器 計(jì)數(shù)器2 =0 高溫度系數(shù)晶振 低溫度系數(shù)晶振 斜率累加器 預(yù)置 圖3.3 DS18B20測(cè)溫原理圖 計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),
27、當(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è)溫度。 3.2顯示電路設(shè)計(jì) CPU輸出端口控制的4位數(shù)碼顯示電路如圖3.4所示。該電路中4位數(shù)碼管的字型由P0口送出,字位由P2口送出。數(shù)碼管采用4位共陰極LED顯示器,數(shù)碼顯示采用動(dòng)態(tài)顯示方式。先由P2口送出要顯示的字位,然后由P0口送出要顯示的字型碼,根據(jù)人眼的分辨率,設(shè)置閃爍時(shí)間間隙。通常人眼的分辨率在25次以上,據(jù)此設(shè)定合適的時(shí)間。也可以自己設(shè)置一個(gè)較短的時(shí)間間隔
28、,但占用CPU時(shí)間比較長(zhǎng),而且占用CPU接口資源,不適合在多個(gè)外部擴(kuò)展電路中使用。 P0口的P0.0-P0.6分別對(duì)應(yīng)數(shù)碼管的a、b、c、d、e、f、g七個(gè)字段,P2口的P2.0-P2.3分別對(duì)應(yīng)低到高的4位數(shù)碼管的字位。 圖3.4 顯示電路 3.3開(kāi)關(guān)電路設(shè)計(jì) 3.3.1開(kāi)關(guān)設(shè)計(jì) 對(duì)于這次設(shè)計(jì),我們采用四個(gè)按鍵來(lái)控制LED數(shù)碼顯示管的實(shí)時(shí)顯示,他們一端接地,另一端分別與P1.0,P1.1,P1.2,P1.3四個(gè)端口連接。如圖3.5 圖3.5 按鍵電路 3.3.1單片機(jī)的外部中斷擴(kuò)展 如圖3.6所示,四個(gè)開(kāi)關(guān)均接地,當(dāng)
29、有一個(gè)開(kāi)關(guān)按下時(shí),按下開(kāi)關(guān)輸入低電平,通過(guò)四輸入與門產(chǎn)生外部中斷,而后通過(guò)開(kāi)關(guān)與單片機(jī)接口,判斷中斷,從而實(shí)現(xiàn)四個(gè)按鍵各自控制LED溫度顯示。 圖3.6外部中斷擴(kuò)展電路 3.4單片機(jī)系統(tǒng)設(shè)計(jì) 本次設(shè)計(jì)利用Intel的89C51控制整個(gè)系統(tǒng)。89C51單片機(jī)包含下列幾個(gè)部件:1個(gè)8位CPU、1個(gè)片內(nèi)震蕩器及時(shí)鐘電路、4KB ROM程序存儲(chǔ)器、128B RAM數(shù)據(jù)存儲(chǔ)器、可尋址64KB外部數(shù)據(jù)存儲(chǔ)器和64KB外部程序存儲(chǔ)器的控制電路、32條可編程的I/O線、2個(gè)16位的定時(shí)/計(jì)數(shù)器、1個(gè)可編程全雙工串行接口、5個(gè)中斷源、2個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。此次設(shè)計(jì)包含晶振,報(bào)警燈板塊
30、。 3.4.1時(shí)鐘電路 本次設(shè)計(jì)的時(shí)鐘電路如圖3.789C51單片機(jī)的時(shí)鐘信號(hào)通常用內(nèi)部振蕩和外部振蕩方式。在引腳XTAL1和XTAX2外接晶體振蕩器,就夠成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖。晶振通常選用6MHZ、12MHZ或24MHZ。內(nèi)部振蕩器方式如下。 圖3.7時(shí)鐘電路 電容器C1、C2起穩(wěn)定振蕩頻率、快速起振的作用,電容值一般為5-30PF。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定。外部振蕩方式是把已有的時(shí)鐘信號(hào)引入單片機(jī)內(nèi),這種方式適用于用來(lái)使單片機(jī)的時(shí)鐘與外部信號(hào)保持一致。 3.4.2報(bào)警電路 當(dāng)
31、實(shí)際溫度超過(guò)設(shè)置的溫度值時(shí),單片機(jī)引腳輸出一定頻率的信號(hào),經(jīng)由三極管發(fā)出報(bào)警聲。 圖3.8 報(bào)警裝置 第四章 軟件設(shè)計(jì) 4.1主程序設(shè)計(jì) 開(kāi)始 主程序的功能就是通過(guò)調(diào)用各個(gè)模塊的子程序,來(lái)完成對(duì)溫度的采集、轉(zhuǎn)換,計(jì)算以及實(shí)時(shí)顯示,并通過(guò)主程序的不斷循環(huán)來(lái)檢測(cè)外界環(huán)境溫度的變化,按照命令執(zhí)行顯示,主程序模塊可以分為三個(gè)部分,即程序說(shuō)明部分,調(diào)用子程序部分。在程序說(shuō)明部分主要是aj11,aj21,aj31,aj41,aj1變量進(jìn)行初始化即全部置1.調(diào)用子程序部分,在程序說(shuō)明部分就是要依次調(diào)用讀取溫度子程序,溫度轉(zhuǎn)換程序,按鍵子程序,以及顯示子程序,這樣就完成溫度的測(cè)量與顯示,主程序流
32、程圖如4.1所示。 圖4.1 主流程圖 返回 返回 返回 返回 顯示第四路溫度 顯示第三路溫度 顯示第二路溫度 顯示第一路溫度 調(diào)用讀取DS18B20溫度程序 調(diào)用讀取DS18B20溫度程序 調(diào)用讀取DS18B20溫度程序 調(diào)用讀取DS18B20溫度程序 調(diào)用溫度轉(zhuǎn)換程序 調(diào)用溫度轉(zhuǎn)換程序 調(diào)用溫度轉(zhuǎn)換程序 調(diào)用溫度轉(zhuǎn)換程序 如果按按鍵4產(chǎn)生外部中斷1000us 如果按按鍵3產(chǎn)生外部中斷1000us 如果按按鍵2 產(chǎn)生外部中斷 如果按按鍵1按產(chǎn)生外部中斷 初始化aj11,aj21,aj31,aj41全置1,aj1置1 4.2按鍵處理子程序
33、這一模塊主要進(jìn)行的是對(duì)按鍵的識(shí)別,在程序中定義了一個(gè)可位尋址片內(nèi)RAM數(shù)據(jù)FLAGO。當(dāng)按鍵一按下時(shí),只有按鍵一對(duì)應(yīng)的那一比特為1,其它比特全為0。當(dāng)按鍵二按下時(shí),只有按鍵二對(duì)應(yīng)的那個(gè)比特為1,其他比特全為0,以此類推。按鍵處理程序框圖如圖4.2所示。 返回 aj41=0---aj1=1,aj2=1,aj3=1,aj4=0 aj31=0---aj1=1,aj2=1,aj4=1,aj3=0 aj21=0---aj3=1,aj1=1,aj4=1,aj2=0 aj11=0---aj2=1,aj3=1,aj4=1,aj1=0 開(kāi)始
34、 圖4.2 按鍵處理流程 4.3顯示子程序 在該次設(shè)計(jì)中,單片機(jī)和LED數(shù)碼管顯示器采用動(dòng)態(tài)顯示掃描方法,即逐個(gè)地循環(huán)地點(diǎn)亮各個(gè)顯示器,這樣雖然在任一時(shí)刻只有一位顯示器被點(diǎn)亮,但是由于人眼具有視覺(jué)殘留效應(yīng),使人眼看起來(lái)就好像在同時(shí)顯示,其流程圖如圖4.3所示。 返回 位選小數(shù)位,段選顯示小數(shù)位,延時(shí) 位選個(gè)位,段選顯示個(gè)位,延時(shí) 位選十位,段選顯示十位,延時(shí) 位選回路數(shù),段選顯示回路數(shù),延時(shí) 取十位=a,個(gè)位=b,小數(shù)=c 開(kāi)始
35、 圖4.4顯示流程圖 4.4溫度轉(zhuǎn)換程序及讀取溫度程序 4.4.1 溫度傳感程序及讀取溫度程序的總體流程圖 由于四片DS18B20是串接在不同的I/O口上,因此它們的讀溫子程序是各自獨(dú)立的,但其工作原理是相同的。以第一片DS18B20為例介紹讀溫塊的設(shè)計(jì)思路。 溫度轉(zhuǎn)換程序首先要調(diào)用DS18B20的初始化子程序以及應(yīng)答信號(hào)程序。對(duì)DS18B20進(jìn)行初始化操作;然后再判斷DS18B20是否存在,若存在則程序往下繼續(xù)進(jìn)行;不存在則返回主程序,當(dāng)檢測(cè)到DS18B20的存在時(shí),就可以發(fā)跳過(guò)ROM命令,繼而發(fā)溫度轉(zhuǎn)換開(kāi)始命令,該命令主要是完成溫度的A/D轉(zhuǎn)換。 讀取溫度程序
36、是在A/D轉(zhuǎn)換結(jié)束后,對(duì)鍵盤進(jìn)行多次掃描,然后進(jìn)行初始化操作,初始化結(jié)束后再發(fā)跳過(guò)ROM指令后才能讀取當(dāng)前溫度值,并將該值放入一個(gè)特定單元。 依次類推,其它DS18B20的溫度轉(zhuǎn)換程序及讀取溫度程序過(guò)程也是如此,四片DS18B20的存放溫度值特定單元:TEMPERH,TEMPEL。下面的圖4.5和圖4.6分別為DS18B20的溫度轉(zhuǎn)換程序和讀取程序。 開(kāi)始 開(kāi)始 初 始 化 初始化DS18B201 讀取應(yīng)答信號(hào)脈沖,延時(shí)脈沖 讀取應(yīng)答脈沖 寫(xiě)命令:跳過(guò)序列號(hào) 寫(xiě)命令:讀溫度數(shù)據(jù) 延時(shí) 寫(xiě)命令:跳過(guò)序列號(hào) 寫(xiě)命令:?jiǎn)?dòng)溫度轉(zhuǎn)換 Y乘以0.0625
37、轉(zhuǎn)為實(shí)際溫度值 返回 讀溫度低值,讀溫度高值 結(jié)束 把溫度值送入y 圖4.5 溫度轉(zhuǎn)換程序 圖4.6 讀取程序 4.4.2初始化子程序及應(yīng)答程序 首先介紹DS18B20的初始化程序,初始化程序是完全按照DS18B20的時(shí)序來(lái)編寫(xiě)的。 主機(jī)總線開(kāi)始發(fā)送一復(fù)位脈沖(最短為480us的低電平信號(hào)),接著在480us之后釋放總線并進(jìn)入接收狀態(tài)。 應(yīng)答信號(hào)程序是:在DS18B20檢測(cè)到總線的上升沿之后等待15-16us,接著DS18B20在上升沿等待之后,發(fā)出存在脈沖(低電平持續(xù)60-
38、240us)。在本課題中的晶振為12M。 開(kāi) 始 開(kāi)始 下面的圖4.6和圖4.7分別是DS18B20初始化程序和應(yīng)答信號(hào)程序。 如果temp=1,等待 DS18B20置1 如果temp1=0,延時(shí) 稍作延時(shí) 結(jié) 束 DS18B20清零 主機(jī)發(fā)出480us復(fù)位延時(shí)脈沖 圖4.7應(yīng)答信號(hào)程序。 DS18B20置1 延時(shí)3個(gè)機(jī)器周期,等待應(yīng)答信號(hào)啊 結(jié) 束 圖4.6初始化程序 4.4.3 DS18B20寫(xiě)子程序 當(dāng)主機(jī)把數(shù)據(jù)從高邏輯電平拉至低
39、邏輯電平時(shí)產(chǎn)生寫(xiě)時(shí)間片,有兩種類型的寫(xiě)時(shí)間片,寫(xiě)1時(shí)間片和寫(xiě)0時(shí)間片,所有時(shí)間片必須有最短為60us的持續(xù)期。在各寫(xiě)周期之間必須有最短為1us的回復(fù)時(shí)間。在I/O線由高電平變?yōu)榈碗娖街驞S18B20在15s至16s的窗口之間對(duì)I/O線采樣,如果線為高電平寫(xiě)1就發(fā)生,如果為低電平便發(fā)生寫(xiě)0。 結(jié)束 結(jié)束 拉低temp1,15us,拉高temp1,60us 拉低temo1,延時(shí)60us,拉高temp1 是否btemp=0? b>>1 要寫(xiě)的數(shù)b與0X01相與,送入btemp字符 設(shè)置參數(shù)循環(huán)8次 拉高temp1位 單片機(jī)對(duì)DS18B20的寫(xiě)程序也是一個(gè)比特一個(gè)比特完成的,先從
40、單片機(jī)中的B中把一位比特寫(xiě)到DS18B20中,再讓B右移一位,直至所有比特全部移至DS18B20,下面的圖4.8就是所描述的DS18B20的寫(xiě)程序。 結(jié)束 結(jié)束 拉低temp1,15us,拉高temp1,60us 拉低temo1,延時(shí)60us,拉高temp1 是否btemp=0? b>>1 要寫(xiě)的數(shù)b與0X01相與,送入btemp字符 設(shè)置參數(shù)循環(huán)8次 拉高temp1位 開(kāi) 始 圖 4.8寫(xiě)程序流程 4.2.4 DS18B20 讀子程序 當(dāng)從DS18B20讀數(shù)據(jù)時(shí)主機(jī)產(chǎn)生讀時(shí)間片,當(dāng)主機(jī)把數(shù)據(jù)線
41、從邏輯高電平拉至低電平時(shí)產(chǎn)生讀時(shí)間片,數(shù)據(jù)線必須保持在低邏輯電平至少1us,來(lái)自DS18B20的輸出數(shù)據(jù)在讀時(shí)間片下降沿之后15us有效,因此為了讀出從讀時(shí)間片開(kāi)始算起15us的狀態(tài)主機(jī)必須停止把I/O引腳驅(qū)動(dòng)至低電平,在讀時(shí)間片結(jié)束時(shí)I/O引腳經(jīng)過(guò)外部的上拉電阻拉回至高電平所有讀時(shí)間片的最短持續(xù)期限為60us,各個(gè)讀時(shí)間片之間必須有最短為1us的回復(fù)時(shí)間,把主機(jī)采樣時(shí)間定在15us期間的末尾系統(tǒng)時(shí)序關(guān)系就有最大的余地。 主機(jī)從DS18B20中讀取數(shù)據(jù)是一個(gè)比特一個(gè)比特讀的,每讀進(jìn)一個(gè)比特的數(shù)據(jù)到單片機(jī)的特定單元A,A左移1次與B相或,直至DS18B20的數(shù)據(jù)全部移到B中,到此單片機(jī)就對(duì)DS
42、18B20完成了讀字節(jié)操作。下面的圖4.9和圖4.10分別是讀比特和讀細(xì)節(jié)程序。 返回b 把數(shù)據(jù)送到b,延時(shí)60us 拉高temo1 15us DS18B20輸出數(shù)據(jù) 拉低temp1至少1us 拉高temp1,稍作延時(shí) 開(kāi)始 圖4.9讀比特程序 a左移i次與b相或(把8次的a值合并一字節(jié)送入b) 調(diào)用讀DS18B20送入 設(shè)置循環(huán)參數(shù)8次 開(kāi)始 返回b 圖4.10 讀細(xì)節(jié)流程 第五章 PROTEUS仿真 5.
43、1 PROTEUS仿真環(huán)境介紹 Proteus是英國(guó)Labcenter electronics公司研發(fā)的EDA設(shè)計(jì)軟件, 是一個(gè)基于ProSPICE混合模型仿真器的,完整的嵌入式系統(tǒng)軟、硬件設(shè)計(jì)仿真平臺(tái)。 Proteus不僅可以做數(shù)字電路、模擬電路、數(shù)?;旌想娐返姆抡?,還可進(jìn)行多種CPU的仿真,涵蓋了51、PIC、AVR、HC11、ARM等處理器,真正實(shí)現(xiàn)了在計(jì)算機(jī)上從原理設(shè)計(jì)、電路分析、系統(tǒng)仿真、測(cè)試到PCB板完整的電子設(shè)計(jì),實(shí)現(xiàn)了從概念到產(chǎn)品的全過(guò)程。 5.2 原理圖繪制 (1)新建文件:打開(kāi)PROTEUS, 點(diǎn)FILE,在彈出的下拉菜單中選擇NEW DESIGN,在彈出的圖幅選
44、擇對(duì)話框中選Landscape A4。 (2)元器件選取:按設(shè)計(jì)要求,在對(duì)象選擇窗口中點(diǎn)P,彈出PICK DEVICES對(duì)話框,在KEYWORDS中填寫(xiě)要選擇的元器件,然后在右邊對(duì)話框中選中要選的元器件,則元器件列在對(duì)象選擇的窗口中。 (3)放置元器件、電源和地、連線,得到如圖5.3所示的系統(tǒng)電路圖,最后進(jìn)行電氣檢測(cè)。 圖5.1 系統(tǒng)電路仿真圖 5.3 程序加載 5.3.1 程序編譯 (1)啟動(dòng)KEIL,選擇Project->New Project,在彈出的對(duì)話框中輸入工程的名字,點(diǎn)擊保存;選擇ATMEL公司的AT89C51單片機(jī)。 (2)在Source Group 1上點(diǎn)擊右
45、鍵,選擇“Add Files to Group Source Group 1 ”,把所有的源文件加進(jìn)來(lái)。 (3)點(diǎn)擊Project->Build target或者使用快捷鍵F9,編譯工程。當(dāng)Output Windows中提示“0 Error”時(shí),則程序編譯成功,生成可執(zhí)行文件.HEX。 5.3.2 程序加載 在編輯環(huán)境中雙擊AT89C51,在彈出的對(duì)話框中將編譯生成可執(zhí)行文件.HEX加載進(jìn)芯片中,設(shè)單片機(jī)的時(shí)鐘工作頻率為12MHZ。 5.3.3仿真結(jié)果 仿真結(jié)果見(jiàn)附錄 結(jié)束語(yǔ)與展望 本次設(shè)計(jì)雖然實(shí)現(xiàn)了多點(diǎn)分布式溫度測(cè)試,但是由于DS18B20所測(cè)的溫度有限,最高只能達(dá)到一百多
46、度,與高溫設(shè)備中的高溫還有這一定得差距,而測(cè)高溫的傳感器多為模擬溫度傳感器,如熱電偶傳感器,其所測(cè)溫度最高達(dá)1600攝氏度,并且種類多、適應(yīng)性強(qiáng)、結(jié)果簡(jiǎn)單、經(jīng)濟(jì)方便,但多為模擬傳感器,需要對(duì)所得模擬數(shù)據(jù)進(jìn)行轉(zhuǎn)化,從而加重了電路及程序的復(fù)雜性,另外非接觸式傳感器,也具有測(cè)量高溫范圍大,不干擾被測(cè)溫度等特點(diǎn)。而本次設(shè)計(jì)為了便于實(shí)現(xiàn),只從便于簡(jiǎn)單應(yīng)用出發(fā)。本次設(shè)計(jì)若用于高溫,在傳感器選擇上,跟據(jù)事實(shí)應(yīng)用,應(yīng)有所專選。 分布式是多點(diǎn)測(cè)試,以求測(cè)得的數(shù)據(jù)更加準(zhǔn)確。本次設(shè)計(jì)只選用了四點(diǎn)。而實(shí)際中,我們可以應(yīng)用更多的探測(cè)點(diǎn),測(cè)取更加全面的溫度值,使所測(cè)更接近于實(shí)際。對(duì)此,實(shí)際應(yīng)用中,我們可以應(yīng)用總線設(shè)計(jì),
47、因?yàn)榭偩€上可以加載更多的傳感器。 本次畢業(yè)設(shè)計(jì)讓我對(duì)大學(xué)所學(xué)知識(shí)有了進(jìn)一步了解,更加加強(qiáng)了實(shí)際應(yīng)用。對(duì)于此次設(shè)計(jì)的主題溫度檢測(cè),雖然只做了簡(jiǎn)單的設(shè)計(jì),但在工業(yè)生產(chǎn)和實(shí)驗(yàn)研究中,如電力、化工等對(duì)所需溫度進(jìn)行檢測(cè),從而對(duì)實(shí)際要求環(huán)境進(jìn)行控制,有著實(shí)際的價(jià)值。 致 謝 在這里我要感謝所有曾經(jīng)關(guān)心和幫助過(guò)我的人,這篇論文的完成和他們中的任何一位都是分不開(kāi)的。 首先,我要向張臻老師和其他老師致以由衷的感謝和誠(chéng)摯的敬意,老師們?yōu)槲覀兲峁┝嗽S多巧妙的設(shè)計(jì)思想。 再者,我還要感謝設(shè)計(jì)中幫主我的同學(xué)們,真心的和他們說(shuō)聲謝謝。 在寫(xiě)這篇畢業(yè)設(shè)計(jì)論文的過(guò)程中,我也遇到了許多的困難
48、,之所以能堅(jiān)持至今,這都離不開(kāi)我的導(dǎo)師和同學(xué)的幫助??梢哉f(shuō)我的論文凝結(jié)了老師的辛勤汗水,張老師的淵博知識(shí)和對(duì)學(xué)生的負(fù)責(zé)的態(tài)度深深地影響了我,也將永遠(yuǎn)是我學(xué)習(xí)的榜樣。在寫(xiě)本次畢業(yè)論文期間,我還得到了同學(xué)的幫助,在此也對(duì)他們表示衷心的感謝,感謝他們能在自己繁忙的工作中還給予了我這么多的幫助,并使我深切地感受到你們給我的溫暖,這也將留給了我許多美好的回憶。 最后,感謝我的母校;感謝在這四年來(lái)教給我知識(shí)的所有老師;也感謝所有在本次畢業(yè)設(shè)計(jì)中給過(guò)我?guī)椭睦蠋?、同學(xué),是你們的鼓勵(lì)、支持和幫助,才使得我能堅(jiān)持完成畢業(yè)論文。 衷心祝愿鄭州航院的明天會(huì)更好! 愿各位老師們都能幸福安康!愿各位
49、同學(xué)們前程似錦,策馬平川! 參考文獻(xiàn) 【1】吳秀清 主編.微型計(jì)算機(jī)原理與接口技術(shù).中國(guó)科學(xué)技術(shù)出版社,2001 【2】 鄧亞平 主編.微型計(jì)算機(jī)接口技術(shù)編.清華大學(xué)出版社, 2001 【3】張毅 主編.基于proteus的單片機(jī)課程的基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì). 人民郵電出版社 ,2012 【4】朱清慧、張鳳蕊 主編.proteus教程——電子線路設(shè)計(jì)、制版與仿真.清華大學(xué)出版社 ,2008 【5】程琤 編.單片機(jī)原理與應(yīng)用系統(tǒng)開(kāi)發(fā). 國(guó)防工業(yè)出版社, 2010 【6】魏立峰、王寶興編 單片機(jī)原理與應(yīng)用技術(shù).北京大學(xué)出版社 2006 【7】 吳
50、永春 著. 單總線數(shù)字溫度傳感器DS18B20及其在單片機(jī)系統(tǒng)的應(yīng)用[J].三明高等??茖W(xué)校學(xué)報(bào), 2010.02.
附錄一
仿真結(jié)果
附錄二
系統(tǒng)程序:
1.主程序
#include
51、lude "ds18b20-1.h" #include "ds18b20-2.h" #include "ds18b20-3.h" #include "ds18b20-4.h" uchar table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//數(shù)碼管的段碼表 uchar table1[]={0xbF,0x86,0xdB,0xcF,0xe6,0xeD,0xfD,0x87,0xfF,0xeF};//帶小數(shù)點(diǎn) sbit button1 = P1^0; sbit button2 = P1^1; sbit button3
52、 = P1^2;
sbit button4 = P1^3;
uchar button=0xff;
uchar tempP =0xff;
void display(uint temp);//函數(shù)聲明
//延時(shí)函數(shù)
void delay_1ms(uint n)
{
uint i,j;
for(i=0;i 53、/外部中斷0的初始化函數(shù)
while(1)
{
//判斷哪個(gè)按鍵被按下,顯示不同的DS18B20的溫度
switch(button)
{
case 0xFE: display(ReadTemperature1());break;
case 0xFD: display(ReadTemperature2());break;
case 0xFB: display(ReadTemperature3());break;
case 0xF7: display(ReadTemperature4());break;
default:displa 54、y(ReadTemperature1());
}
delay_1ms(5);
}
}
//數(shù)碼管顯示函數(shù)
void display(uint temp)
{
//計(jì)算百十個(gè)位
uchar qian,bai,shi,ge;
qian = temp/1000;
bai = temp%1000/100;
shi = temp%100/10;
ge = temp%10;
//控制顯示
P0 = 0x00; //顯示百位
P2 = 0xfe;
P0 = table[qian];
delay_1ms(3);
55、
P0 = 0x00;
P2 = 0xfd;
P0 = table1[bai];
delay_1ms(3);
P0 = 0x00;
P2 = 0xfb;
P0 = table[shi];
delay_1ms(3);
P0 = 0x00;
P2 = 0xf7;
P0 = table[ge];
delay_1ms(3);
P0=0x00;
}
//外部中斷0 中斷服務(wù)程序
void ex0_in() interrupt 3
{
EX0 = 0; //先屏蔽中斷,中斷處理
P0 = 0x00;
//判斷是哪個(gè)按 56、鍵按下
if(button1 == 0) //button1 按下
{
button = 0xFE;
}
if(button2 == 0) //button2 按下
{
button = 0xFD;
}
if(button3 == 0) //button3 按下
{
button = 0xFB;
}
if(button4 == 0) //button4 按下
{
button = 0xF7;
}
EX0 = 1; //中斷處理完畢,打開(kāi)中斷
}
2.DS18B20.1的程序
#includ 57、e "ds18b20-1.h"
uchar tempL=0;
uchar tempH=0;
bit zfflag;
void delay(uint i)
{
while(i--);
}
bit Init_DS18B20(void)
{
uchar x=0;
DQ1=1;
delay(8);
DQ1=0;
delay(80);
DQ1=1;
delay(14);
x=DQ1;
delay(20);
return x;
}
ReadOneChar(void)
{
uchar i=0;
uchar dat=0;
f 58、or(i=8;i>0;i--)
{
DQ1=1;
delay(1);
DQ1=0;
dat>>=1;
DQ1=1;
if(DQ1)
dat|=0x80;
delay(4);
}
return dat;
}
void WriteOneChar(uchar dat)
{
uchar i=0;
for(i=8;i>0;i--)
{
DQ1=0;
DQ1=dat&0x01;
delay(5);
DQ1=1;
dat>>=1;
}
delay(4); 59、
}
uint ReadTemperature1(void)
{
uint temp;
Init_DS18B20();
WriteOneChar(0xcc);
WriteOneChar(0x44);
delay(120);
Init_DS18B20();
WriteOneChar(0xcc);
WriteOneChar(0xbe);
tempL=ReadOneChar();
tempH=ReadOneChar();
temp =tempH;
temp <<= 8;
temp |= tempL;
if(temp&0 60、x8000)
{
zfflag=0;
temp=~temp;
temp+=1;
}
else
{
zfflag=1;
}
temp*=6.25; //將溫度值擴(kuò)大10倍以顯示小數(shù)點(diǎn)后一位
return temp;
}
3.DS18B20.2的程序
#include "ds18b20-2.h"
void delay2(uint i)
{
while(i--);
}
bit Init_DS18B202(void)
{
uchar x=0;
DQ2=1;
delay2(8);
DQ2=0;
61、 delay2(80);
DQ2=1;
delay2(14);
x=DQ2;
delay2(20);
return x;
}
ReadOneChar2(void)
{
uchar i=0;
uchar dat=0;
for(i=8;i>0;i--)
{
DQ2=1;
delay2(1);
DQ2=0;
dat>>=1;
DQ2=1;
if(DQ2)
dat|=0x80;
delay2(4);
}
return dat;
}
void WriteOneChar2(uch 62、ar dat)
{
uchar i=0;
for(i=8;i>0;i--)
{
DQ2=0;
DQ2=dat&0x01;
delay2(5);
DQ2=1;
dat>>=1;
}
delay2(4);
}
uint ReadTemperature2(void)
{
uchar tempL=0;
uchar tempH=0;
bit zfflag;
uint temp;
Init_DS18B202();
WriteOneChar2(0xcc);
WriteOneChar2(0x44) 63、;
delay2(120);
Init_DS18B202();
WriteOneChar2(0xcc);
WriteOneChar2(0xbe);
tempL=ReadOneChar2();
tempH=ReadOneChar2();
temp =tempH;
temp <<= 8;
temp |= tempL;
if(temp&0x8000)
{
zfflag=0;
temp=~temp;
temp+=1;
}
else
{
zfflag=1;
}
temp*=6.25; //將溫度值擴(kuò)大1 64、0倍以顯示小數(shù)點(diǎn)后一位
return temp;
}
3.DS18B20.3的程序
include "ds18b20-3.h"
void delay3(uint i)
{
while(i--);
}
bit Init_DS18B203(void)
{
uchar x=0;
DQ3=1;
delay3(8);
DQ3=0;
delay3(80);
DQ3=1;
delay3(14);
x=DQ3;
delay3(20);
return x;
}
ReadOneChar3(void)
{
uchar i=0;
65、 uchar dat=0;
for(i=8;i>0;i--)
{
DQ3=1;
delay3(1);
DQ3=0;
dat>>=1;
DQ3=1;
if(DQ3)
dat|=0x80;
delay3(4);
}
return dat;
}
void WriteOneChar3(uchar dat)
{
uchar i=0;
for(i=8;i>0;i--)
{
DQ3=0;
DQ3=dat&0x01;
delay3(5);
DQ3=1;
dat> 66、>=1;
}
delay3(4);
}
uint ReadTemperature3(void)
{
uchar tempL=0;
uchar tempH=0;
bit zfflag;
uint temp;
Init_DS18B203();
WriteOneChar3(0xcc);
WriteOneChar3(0x44);
delay3(120);
Init_DS18B203();
WriteOneChar3(0xcc);
WriteOneChar3(0xbe);
tempL=ReadOneChar3();
tempH=ReadOneChar3();
temp =tempH;
temp <<= 8;
temp |= tempL;
if(temp&0x8000)
{
zfflag=0;
temp=~temp;
temp+=1;
}
else
{
zfflag=1;
}
temp*=6.25; //將溫度值擴(kuò)大10倍以顯示小數(shù)點(diǎn)后一位
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 必修1-分子與細(xì)胞-第2節(jié)-細(xì)胞的分化課件
- 西門子自動(dòng)化簡(jiǎn)述
- 一積貧積弱的北宋
- 移動(dòng)中音數(shù)字音樂(lè)渠道推廣營(yíng)銷方案
- 軟件工程之Visio2003教程
- 【素材】《告別小馬虎》克服小馬虎有辦法(蘇教)
- 人教版化學(xué)《水的凈化》
- 生產(chǎn)計(jì)劃與控制之需求管理教材
- 手術(shù)室的應(yīng)急預(yù)案3
- 六西格瑪講解
- (2016年秋季版)《次北固山下》課件
- 導(dǎo)入_確定位置
- 制定采購(gòu)戰(zhàn)略流程優(yōu)化管理的定義
- 4公關(guān)程序之策劃
- 某傳媒公司非公開(kāi)發(fā)行股票基本情況介紹