LED數(shù)顯溫度控制器畢業(yè)論文_第1頁
LED數(shù)顯溫度控制器畢業(yè)論文_第2頁
LED數(shù)顯溫度控制器畢業(yè)論文_第3頁
LED數(shù)顯溫度控制器畢業(yè)論文_第4頁
LED數(shù)顯溫度控制器畢業(yè)論文_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 . 本科畢業(yè)論文(設(shè)計(jì))LED數(shù)顯溫度控制器20 / 27畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作與取得的成果。盡我所知,除文中特別加以標(biāo)注和致的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得與其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說明并表示了意。作 者 簽 名:日 期:指導(dǎo)教師簽名: 日期:使用授權(quán)說明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本

2、;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉咳?。作者簽名: 日 期:學(xué)位論文原創(chuàng)性聲明本人重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期: 年 月 日學(xué)位論文使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)

3、校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名:日期: 年 月 日導(dǎo)師簽名: 日期: 年 月 日注意事項(xiàng)1.設(shè)計(jì)(論文)的容包括:1)封面(按教務(wù)處制定的標(biāo)準(zhǔn)封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300字左右)、關(guān)鍵詞4)外文摘要、關(guān)鍵詞5)目次頁(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結(jié)論7)參考文獻(xiàn)8)致9)附錄(對論文支持必要時(shí))2.論文字?jǐn)?shù)要求:理工類設(shè)計(jì)(論文)正文字?jǐn)?shù)不少于1萬字

4、(不包括圖紙、程序清單等),文科類論文正文字?jǐn)?shù)不少于1.2萬字。3.附件包括:任務(wù)書、開題報(bào)告、外文譯文、譯文原文(復(fù)印件)。4.文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體與大小符合要求,無錯(cuò)別字,不準(zhǔn)請他人代寫2)工程設(shè)計(jì)類題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)繪制,所有圖紙應(yīng)符合國家技術(shù)標(biāo)準(zhǔn)規(guī)。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準(zhǔn)用徒手畫3)畢業(yè)論文須用A4單面打印,論文50頁以上的雙面打印4)圖表應(yīng)繪制于無格子的頁面上5)軟件工程類課題應(yīng)有程序清單,并提供電子文檔5.裝訂順序1)設(shè)計(jì)(論文)2)附件:按照任務(wù)書、開題報(bào)告、外文譯文、譯文原文(復(fù)印

5、件)次序裝訂摘 要現(xiàn)代社會(huì),單片機(jī)技術(shù)已經(jīng)成為一種比較成熟的技術(shù),它已經(jīng)普與到我們生活、工作、科研、各個(gè)領(lǐng)域中,溫度也是日常生活中最基本的環(huán)境參數(shù),它與我們的生活工作密切相關(guān),本文主要介紹了一個(gè)基于AT89C51單片機(jī)的溫度控制報(bào)警系統(tǒng),采用溫度傳感器DS18B20的溫度上下限報(bào)警器,能夠自動(dòng)測量當(dāng)前環(huán)境溫度,由單片機(jī)AT89C2051控制,并通過三位段數(shù)碼管顯示提示,如果目前環(huán)境溫度超過此溫度,系統(tǒng)會(huì)發(fā)出報(bào)警。采用的單片機(jī)AT89C51做信號處理單元,其成本低廉,精確度高,LED顯示測量數(shù)值,選用紅外傳感器采集人體信號,經(jīng)過放大整形電路后傳送給單片機(jī)AT89C51來處理,最后該信號傳送至LE

6、D顯示屏。該系統(tǒng)能夠方便的實(shí)現(xiàn)溫度的采集和顯示,并根據(jù)需要可任意設(shè)定報(bào)警溫度,它使用起來非常方便,具有體積小、精度高、量程寬、靈敏度高、功耗低等優(yōu)點(diǎn),適用于我們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的溫度控制,也可以作為其他主系統(tǒng)的輔助擴(kuò)展,當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中。DS18B20與AT89C51的結(jié)合實(shí)現(xiàn)了最簡溫度控制系統(tǒng),該系統(tǒng)抗干擾能力強(qiáng),結(jié)構(gòu)簡單,對惡劣環(huán)境下進(jìn)行現(xiàn)場溫度的控制也適合,應(yīng)用前景較為廣泛。關(guān)鍵詞:單片機(jī);溫度控制;AT89C51;DS18B20;AbstractIn modern society, Single chip technology has become a matur

7、e technology, it has spread to our lives, work, research, in various fields, the most basic environmental parameters of temperature is in daily life, and it is closely related to our life and work, this paper introduces a control alarm system based on AT89C51 single-chip microcomputer temperature. U

8、sing the temperature sensor DS18B20 upper and lower limit alarm, can automatically measure the current ambient temperature, controlled by AT89C2051, and display the prompt by three segment digital tube, if the current ambient temperature over this temperature, the system will send out alarm. Uses th

9、e monolithic integrated circuit AT89C51 to do signal processing unit, its low cost, high accuracy, LED display measured value, using infrared sensors to collect signals of the human body, to deal with after amplifying and shaping circuit and then transmitted to the single chip microcomputer AT89C51,

10、 finally the signal is transmitted to the LED display.The system can facilitate the realization of temperature acquisition and display, and according to the need can be arbitrarily set the alarm temperature, it is very convenient to use, has the advantages of small volume, high precision, range wide

11、, high sensitivity, low power consumption, suitable for our daily lives and industrial and agricultural production in the temperature control, can also be used as other auxiliary the main system expansion, as the temperature processing module embedded in other systems. The combination of DS18B20 and

12、 AT89C51 to achieve the most simple temperature control system, the system has strong anti-interference capacity, simple structure, control of the on-site temperature under harsh environment is suitable, more extensive application prospects.Key words:single-chip microcomputerAT89C51; wireless transm

13、ission module; sickbed beeper目 錄摘 要IAbstractII目 錄III1 引言11.1 研究的背景與意義11.2 國外研究現(xiàn)狀12 系統(tǒng)的設(shè)計(jì)與安排12.1 設(shè)計(jì)要求與預(yù)期目標(biāo)12.2 設(shè)計(jì)可行性12.3 設(shè)計(jì)方案與步驟23 系統(tǒng)硬件的設(shè)計(jì)23.1 系統(tǒng)硬件設(shè)計(jì)的原理框圖23.2 單片機(jī)AT89C51簡介33.3 硬件模板設(shè)計(jì)54 系統(tǒng)軟件設(shè)計(jì)114.1 設(shè)計(jì)的軟件環(huán)境簡介124.2 單片機(jī)C語言程序設(shè)計(jì)步驟145 系統(tǒng)檢測與調(diào)試156 總結(jié)與展望16參考文獻(xiàn)18附 錄191 引言1.1 研究的背景與意義無論是在日常生活中,還是在工業(yè)生產(chǎn)過程中溫度控制都起著非

14、常重要的作用。本次畢業(yè)設(shè)計(jì)選題的目的主要是讓生活在信息發(fā)達(dá)時(shí)代的我們,把所學(xué)的知識(shí)應(yīng)用于生活生產(chǎn)當(dāng)中,熟練掌握系統(tǒng)總體設(shè)計(jì)的流程,方案的論證,選擇,實(shí)施與完善。隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展,現(xiàn)在越來越多的生產(chǎn)部門與生產(chǎn)環(huán)節(jié)對溫度控制精度的可靠性和穩(wěn)定性等有了更高的要求。由于苛刻的生產(chǎn)環(huán)節(jié)對溫度要求較高,而傳統(tǒng)的溫度控制器控制精度卻普遍不高,已經(jīng)不能滿足其要求。當(dāng)今社會(huì),溫度是工業(yè)對象中的一個(gè)重要的被控參數(shù),它的測量與控制系統(tǒng)在生產(chǎn)與生活的各個(gè)領(lǐng)域中扮演著越來越重要的角色,大到工業(yè)煉金,環(huán)境檢測,分離物質(zhì),機(jī)房電力,糧倉,凍庫,衛(wèi)生醫(yī)療等方面,小到家庭空調(diào),冰箱,電飯煲,太陽能熱水器等方面都得到了廣泛

15、的應(yīng)用,溫度控制系統(tǒng)的廣泛應(yīng)用也使得這方面研究意義非常的重要。1.2 國外研究現(xiàn)狀 雖然溫度控制系統(tǒng)在國各行各業(yè)己經(jīng)得到廣泛應(yīng)用,但從國生產(chǎn)的溫度控制器來說,總體發(fā)展水平仍然不高,同美國、日本、德國等先進(jìn)發(fā)達(dá)國家相比,仍有著較大的差距。20世紀(jì)70年代,國外就對溫度控制技術(shù)有研究。先是采用模擬式的組合儀表,采集現(xiàn)場信息并進(jìn)行指示、記錄和控制。80年代末就出現(xiàn)了分布式控制系統(tǒng)?,F(xiàn)在正在開發(fā)和研制計(jì)算機(jī)數(shù)據(jù)采集控制系統(tǒng)的多因子綜合控制系統(tǒng)。現(xiàn)在世界各國的溫度測控技術(shù)發(fā)展很快,一些國家在實(shí)現(xiàn)自動(dòng)化的基礎(chǔ)上正向著完全自動(dòng)化、無人化的方向發(fā)展。我國研究溫度測控技術(shù)較晚,20世紀(jì)80年代開始,在吸收發(fā)達(dá)國

16、家溫度測控技術(shù)的基礎(chǔ)上,我國工程技術(shù)人員才掌握了溫度室微機(jī)控制技術(shù),這項(xiàng)技術(shù)僅限于對溫度的單項(xiàng)環(huán)境因子的控制。我國溫度測控設(shè)施的計(jì)算機(jī)應(yīng)用,在總體上正從消化吸收、簡單應(yīng)用階段過渡和發(fā)展。在技術(shù)上,以單片機(jī)控制的單參數(shù)單回路系統(tǒng)居多,尚無真正意義上的多參數(shù)綜合控制系統(tǒng),與發(fā)達(dá)國家相比,存在較大差距。2 設(shè)計(jì)的容與性能指標(biāo) 本設(shè)計(jì)主要是介紹了單片機(jī)控制下的溫度報(bào)警系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:單片機(jī)實(shí)時(shí)檢測溫度傳感器DS18B20的狀態(tài),并將DS18820得到的數(shù)據(jù)進(jìn)行處理。上電后數(shù)碼管顯示當(dāng)前的環(huán)境溫度,通過按鍵可設(shè)置高低溫報(bào)警值,當(dāng)檢測到

17、的溫度高于設(shè)置的報(bào)警值的時(shí)候,蜂鳴器報(bào)警同時(shí)報(bào)警燈閃爍,溫度檢測精確到0.1度。并具有掉電保存功能,數(shù)據(jù)保存在單片機(jī)部EEPOM中,進(jìn)入設(shè)置界面后如果沒有鍵按下系統(tǒng)會(huì)在15秒后自動(dòng)退出設(shè)置界面。3 系統(tǒng)方案比較、設(shè)計(jì)與論證該系統(tǒng)主要由溫度測量和溫度設(shè)置與系統(tǒng)狀態(tài)顯示三部分電路組成,下面介紹實(shí)現(xiàn)此系統(tǒng)功能的方案。3.1主控制器模塊 采用STC89C52單片機(jī)作為整個(gè)系統(tǒng)的核心,用其控制行進(jìn)中的小車,以實(shí)現(xiàn)其既定的性能指標(biāo)。充分分析我們的系統(tǒng),其關(guān)鍵在于實(shí)現(xiàn)小車的自動(dòng)控制,而在這一點(diǎn)上,單片機(jī)就顯現(xiàn)出來它的優(yōu)勢控制簡單、方便、快捷。這樣一來,單片機(jī)就可以充分發(fā)揮其資源豐富、有較為強(qiáng)大的控制功能與可

18、位尋址操作功能、價(jià)格低廉等優(yōu)點(diǎn)。STC89C52單片機(jī)具有功能強(qiáng)大的位操作指令,I/O口均可按位尋址,程序空間多達(dá)8K,對于本設(shè)計(jì)也綽綽有余,更可貴的是STC89C52單片機(jī)價(jià)格非常低廉。3.2 溫度測量采用數(shù)字溫度芯片DS18B20 測量實(shí)際溫度,輸出信號全數(shù)字化。便于單片機(jī)處理與控制,省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測溫元件,此元件線形較好。在0100 攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器STC89C52構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計(jì)算

19、機(jī)連接。這樣,測溫系統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便。既可以單獨(dú)對多DS18B20控制工作,還可以與PC 機(jī)通信上傳數(shù)據(jù),另外AT89C51在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)與外圍功能電路的配合使用都很成熟。3.3 設(shè)置溫度 采用鍵盤輸入設(shè)置溫度,鍵盤則可以用4個(gè)按鍵,一個(gè)復(fù)位鍵,一個(gè)功能設(shè)定鍵,一個(gè)加減一個(gè)減鍵。四個(gè)鍵比較常用,而且用到的接口得到了極好的利用,僅需要4個(gè)接口。3.4 顯示模塊 用LED數(shù)碼管實(shí)現(xiàn)數(shù)值的顯示,LED數(shù)碼管顯示相對來說比較直觀、明亮,可以用動(dòng)態(tài)

20、顯示和靜態(tài)顯示兩種方法編程實(shí)現(xiàn),數(shù)碼管由于顯示速度快,使用簡單,顯示效果簡潔明了而得到了廣泛應(yīng)用。LCD雖然其顯示清晰,顯示容豐富、清晰,顯示信息量大,使用方便,顯示快速。但對于此系統(tǒng)我們不需要顯示豐富的容,而且LCD液晶價(jià)格貴,因此我們選擇用數(shù)碼管顯示。3.5 電源選取 采用干電池供電。干電池價(jià)格低廉、攜帶方便、運(yùn)用靈活,經(jīng)過實(shí)驗(yàn)驗(yàn)證系統(tǒng)工作時(shí),單片機(jī)、傳感器的工作電壓穩(wěn)定能夠滿足系統(tǒng)的要求,而且電池更換方便。3.6 報(bào)警設(shè)備的論證與選擇 采用聲、光同時(shí)報(bào)警,既可以利用不同顏色的等對應(yīng)不同的狀態(tài)判別出此時(shí)的溫度處于的狀況,又可以使工作人員在一定距離圍監(jiān)測到溫度異常進(jìn)行與時(shí)處理。4

21、系統(tǒng)器件選擇.溫度傳感器的選擇 由于傳統(tǒng)的熱敏電阻等測溫元件測出的一般都是電壓,再轉(zhuǎn)換成對應(yīng)的溫度,需要比較多的外部元件支持,且硬件電路復(fù)雜,制作成本相對較高。這里采用DALLAS公司的數(shù)字溫度傳感器DS18B20作為測溫元件。圖2 外部封裝形式 圖3 傳感器電路圖5 硬件實(shí)現(xiàn)與單元電路設(shè)計(jì)5.1主控制模塊主控制最系統(tǒng)電路如圖4所示。圖4 單片主控電路5.2 顯示模塊電路顯示采用四位數(shù)碼管顯示,當(dāng)位選打開時(shí),送入相應(yīng)的段碼,則相應(yīng)的數(shù)碼管打開,關(guān)掉位選,打開另一個(gè)位選,送入相應(yīng)的段碼,則數(shù)碼管打開,而每次打開關(guān)掉相應(yīng)的位選時(shí),時(shí)間間隔低于20ms,從人類視覺的角度上看,就仿佛是全部數(shù)碼管同時(shí)顯

22、示的一樣。顯示電路如圖5圖5 數(shù)碼管顯示5.3 數(shù)碼管顯示驅(qū)動(dòng)電路三極管8550來驅(qū)動(dòng)4位數(shù)碼管,不僅簡單,而且價(jià)格便宜。圖6 驅(qū)動(dòng)電路5.4 溫度傳感器(DS18B20)電路5.4.1 DS18B20基本介紹DS18B20是美國DALLAS半導(dǎo)體公司推出的第一片支持“一線總線”接口的溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可直接將溫度轉(zhuǎn)化成串行數(shù)字信號處理器處理。DS18B20進(jìn)行精確的溫度轉(zhuǎn)換,I/O線必須保證在溫度轉(zhuǎn)換期間提供足夠的能量,由于每個(gè)DS18B20在溫度轉(zhuǎn)換期間工作電流達(dá)到1mA,當(dāng)幾個(gè)溫度傳感器掛在同一根I/O線上進(jìn)行多點(diǎn)測溫時(shí),只靠4.

23、7K上拉電阻就無法提供足夠的能量,會(huì)造成無法轉(zhuǎn)換溫度或溫度誤差極大。因此,下圖電路只適應(yīng)于單一溫度傳感器測溫情況下使用,不適宜采用電池供電系統(tǒng)中。并且工作電源VCC必須保證在5V,當(dāng)電源電壓下降時(shí),寄生電源能夠汲取的能量也降低,會(huì)使溫度誤差變大。圖7 溫度傳感器電路引腳圖5.4.2 DS18B20控制方法DS18B20有六條控制命令:溫度轉(zhuǎn)換 44H 啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換 讀暫存器 BEH 讀暫存器9個(gè)字節(jié)容 寫暫存器 4EH 將數(shù)據(jù)寫入暫存器的TH、TL字節(jié) 復(fù)制暫存器 48H 把暫存器的TH、TL字節(jié)寫到E2RAM中 重新調(diào)E2RAM B8H 把E2RAM中的TH、TL字節(jié)寫到暫

24、存器TH、TL字節(jié) 讀電源供電方式 B4H 啟動(dòng)DS18B20發(fā)送電源供電方式的信號給主CPU 5.4.3 DS18B20供電方式DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖3.1所示單片機(jī)端口接單線總線,為保證在有效的DS18B20時(shí)鐘周期提供足夠的電流,可用一個(gè)三極管來完成對總線的上拉。本設(shè)計(jì)采用電源供電方式, P2.2口接單線總線為保證在有效的DS18B20時(shí)鐘周期提供足夠的電流,可用一個(gè)上拉電阻和STC89C52的P2.2來完成對總線的上拉。當(dāng)DS18B20處于寫存儲(chǔ)器操作和溫度A/

25、D變換操作時(shí),總線上必須有強(qiáng)的上拉,上拉開啟時(shí)間最大為10 s。采用寄生電源供電方式是VDD和GND端均接地。由于單線制只有一根線,因此發(fā)送接收口必須是三狀態(tài)的。主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3個(gè)步驟:。l 初始化。l ROM操作指令。l 存儲(chǔ)器操作指令。5.6 蜂鳴器、發(fā)光二極管報(bào)警電路電路如圖8主要是用來設(shè)定溫度報(bào)警溫度的、有高溫和低溫報(bào)警。圖8蜂鳴器、發(fā)光二極管驅(qū)動(dòng)引腳圖6 系統(tǒng)軟件設(shè)計(jì)6.1 程序結(jié)構(gòu)分析 主程序調(diào)用了3個(gè)子程序,分別是數(shù)碼管顯示程序、溫度信號處理程序、按鍵設(shè)定報(bào)警溫度程序。溫度信號處理程序:對溫度芯片送過來的數(shù)據(jù)進(jìn)行處理,進(jìn)行判斷和顯示。數(shù)碼管顯示程序:向

26、數(shù)碼管的顯示送數(shù),控制系統(tǒng)的顯示部分。按鍵設(shè)定程序:可以設(shè)定低溫和高溫報(bào)警可精確到0.1度。6.2 系統(tǒng)程序流圖主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進(jìn)行一次。這樣可以在一秒之測量一次被測溫度,主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示,讀出并處理DS18B20的當(dāng)前溫度值,與設(shè)定的報(bào)警溫度比較,其程序流程見圖9所示。通過調(diào)用讀溫度子程序把存入存儲(chǔ)中的整數(shù)部分與小數(shù)部分開分存放在不的的兩個(gè)單元中,然后通過調(diào)用顯示子程序顯示出來。 圖9 DS18B20溫度流程圖6.2.1 DS18B20初始化程序流程圖在DS18B20工作之前需要進(jìn)行初始化,流

27、程圖如下: 圖10 初始化程序流程圖6.2.2 讀溫度子程序流程圖讀溫度子程序的主要功能是從DS18B20中讀出溫度數(shù)據(jù),移入溫度暫存器保存。其程序流程圖如下:圖11 溫度子程序流程圖7 系統(tǒng)的安裝與調(diào)試7.1 安裝步驟1.檢查元件的好壞按電路圖買好元件后首先檢查買回元件的好壞,按各元件的檢測方法分別進(jìn)行檢測,一定要仔細(xì)認(rèn)真。而且要認(rèn)真核對原理圖是否一致,在檢查好后才可上件、焊件,防止出現(xiàn)錯(cuò)誤焊件后不便改正。2.放置、焊接各元件按原理圖的位置放置各元件,在放置過程中要先放置、焊接較低的元件,后焊較高的和要求較高的元件。特別是容易損壞的元件要后焊,在焊集成芯片時(shí)連續(xù)焊接時(shí)間不要超過10s,注意芯

28、片的安裝方向。7.2 電路的調(diào)試首先燒入顯示程序,看顯示正不正常。在調(diào)試程序時(shí),發(fā)現(xiàn)有的指令用的不正確,導(dǎo)致電路功能不能完全實(shí)現(xiàn),另外軟件程序中的延時(shí)有的過長、有的過短。類似的現(xiàn)象還有很多就不一一列舉了。7.3 本章小結(jié)本章的主要容是電路的測試和調(diào)試注意事項(xiàng)結(jié) 論 本溫度報(bào)警器,通過單片機(jī)實(shí)時(shí)檢測溫度傳感器DS18B20的狀態(tài),并將DS18820得到的數(shù)據(jù)進(jìn)行處理。上電后數(shù)碼管顯示當(dāng)前的環(huán)境溫度,通過按鍵可設(shè)置高低溫報(bào)警值,當(dāng)檢測到的溫度高于設(shè)置的報(bào)警值的時(shí)候,蜂鳴器報(bào)警同時(shí)報(bào)警燈閃爍,溫度檢測精確到0.1度。并具有掉電保存功能,數(shù)據(jù)保存在單片機(jī)部EEPOM中,進(jìn)入設(shè)置界面后如果沒有鍵按下系統(tǒng)

29、會(huì)在15秒后自動(dòng)退出設(shè)置界面。由于采用了4節(jié)干電池供電使系統(tǒng)的抗干擾性得到加強(qiáng)。在軟件上,充分利用了STC89C52的系統(tǒng)資源,系統(tǒng)運(yùn)行流暢。 本設(shè)計(jì)結(jié)構(gòu)簡單,調(diào)試方便,系統(tǒng)反映快速靈活,經(jīng)實(shí)驗(yàn)測試,該溫度報(bào)警系統(tǒng)設(shè)計(jì)方案正確、可行,各項(xiàng)指標(biāo)穩(wěn)定、可靠。參考文獻(xiàn)1巧媛主編. 單片機(jī)原理與應(yīng)用(第二版). :電子工業(yè),20022全國大學(xué)生電子設(shè)計(jì)競賽組委會(huì)編.第五屆全國大學(xué)生電子設(shè)計(jì)競賽獲獎(jiǎng)作品選編(2001), :理工大學(xué),20033何力民編. 單片機(jī)高級教程. :航空大學(xué),20004金發(fā)慶等編. 傳感器技術(shù)與應(yīng)用.機(jī)械工業(yè),20025坤、宋戈、洪波、憲棟編51單片機(jī)C語言應(yīng)用開發(fā)技術(shù)大全,:

30、人民郵電,20086譚浩強(qiáng)著C程序設(shè)計(jì):清華大學(xué),20077王忠飛,胥芳MCS-51 單片機(jī)原理與嵌入式系統(tǒng)應(yīng)用M:電子科技大學(xué),2007P268-2738 Peter Van Der Linden著,徐波譯.C專家編程,人民郵電,2003附錄1 整體電路原理圖附錄2 部分源程序#include <reg52.h>#include "eepom52.h"#define uchar unsigned char #define uint unsigned int/數(shù)碼管段選定義 0 1 2 3 4 56 7 8 9uchar code smg_du=0xc0,0xf

31、9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /斷碼/數(shù)碼管位選定義uchar code smg_we=0xef,0xdf,0xbf,0x7f;uchar dis_smg8 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;uchar smg_i = 3; /顯示數(shù)碼管的個(gè)位數(shù)sbit dq = P24;/18b20 IO口的定義sbit beep = P25; /蜂鳴器IO口定義uchar a_a;uint temperature ; /bit f

32、lag_300ms ;uchar key_can; /按鍵值的變量uchar menu_1; /菜單設(shè)計(jì)的變量uint t_high = 300,t_low = 100;bit flag_lj_en; /按鍵連加使能bit flag_lj_3_en; /按鍵連3次連加后使能 加的數(shù)就越大了 uchar key_time,flag_value; /用做連加的中間變量bit key_500ms ;uchar flag_clock;uchar zd_break_en,zd_break_value; /自動(dòng)退出設(shè)置界面/*1ms延時(shí)函數(shù)*/void delay_1ms(uint q)uint i,j;

33、for(i=0;i<q;i+)for(j=0;j<120;j+);/*小延時(shí)函數(shù)*/void delay_uint(uint q)while(q-);/*數(shù)碼顯示函數(shù)*/void display()uchar i;for(i=0;i<smg_i;i+) P3 = smg_wei; /位選P1 = dis_smgi; /段選 delay_1ms(1); P3 = 0xff; /位選P1 = 0xff; /消隱 /*把數(shù)據(jù)保存到單片機(jī)部eepom中*/void write_eepom()SectorErase(0x2000);byte_write(0x2000, t_high %

34、 256);byte_write(0x2001, t_high / 256);byte_write(0x2002, t_low % 256);byte_write(0x2003, t_low / 256);byte_write(0x2055, a_a);/*把數(shù)據(jù)從單片機(jī)部eepom中讀出來*/void read_eepom()t_high = byte_read(0x2001);t_high <<= 8;t_high |= byte_read(0x2000);t_low = byte_read(0x2003);t_low <<= 8;t_low |= byte_rea

35、d(0x2002);a_a = byte_read(0x2055);/*18b20初始化函數(shù)*/void init_18b20()bit q;dq = 1;/把總線拿高delay_uint(1); /15usdq = 0;/給復(fù)位脈沖delay_uint(80);/750usdq = 1;/把總線拿高 等待delay_uint(10);/110usq = dq;/讀取18b20初始化信號delay_uint(20);/200usdq = 1;/把總線拿高 釋放總線/*寫18b20的數(shù)據(jù)*/void write_18b20(uchar dat)uchar i;for(i=0;i<8;i+)

36、 /寫數(shù)據(jù)是低位開始dq = 0; /把總線拿低寫時(shí)間隙開始 dq = dat & 0x01; /向18b20總線寫數(shù)據(jù)了delay_uint(5); / 60usdq = 1; /釋放總線dat >>= 1;/*讀取18b20的數(shù)據(jù)*/uchar read_18b20()uchar i,value;for(i=0;i<8;i+)dq = 0; /把總線拿低讀時(shí)間隙開始 value >>= 1; /讀數(shù)據(jù)是低位開始dq = 1; /釋放總線if(dq = 1) /開始讀寫數(shù)據(jù) value |= 0x80;delay_uint(5); /60us讀一個(gè)時(shí)間隙

37、最少要保持60us的時(shí)間return value; /返回?cái)?shù)據(jù)/*讀取溫度的值 讀出來的是小數(shù)*/uint read_temp()uint value;uchar low; /在讀取溫度的時(shí)候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會(huì)影響到18b20的時(shí)序init_18b20(); /初始化18b20write_18b20(0xcc); /跳過64位ROMwrite_18b20(0x44); /啟動(dòng)一次溫度轉(zhuǎn)換命令delay_uint(50); /500usinit_18b20(); /初始化18b20write_18b20(0xcc); /跳過64位ROMwrite_18b20(0xbe

38、); /發(fā)出讀取暫存器命令EA = 0;low = read_18b20(); /讀溫度低字節(jié)value = read_18b20(); /讀溫度高字節(jié)EA = 1;value <<= 8; /把溫度的高位左移8位value |= low; /把讀出的溫度低位放到value的低八位中value *= 0.625; /轉(zhuǎn)換到溫度值 小數(shù)return value; /返回讀出的溫度 帶小數(shù)/*定時(shí)器0初始化程序*/void time_init() EA = 1; /開總中斷TMOD = 0X01; /定時(shí)器0、定時(shí)器1工作方式1ET0 = 1; /開定時(shí)器0中斷 TR0 = 1; /允

39、許定時(shí)器0定時(shí)/*獨(dú)立按鍵處理函數(shù)*/void key()static uchar key_new = 0,key_old = 0,key_value = 0;if(key_new = 0) /按鍵松開的時(shí)候做松手檢測if(P2 & 0x0f) = 0x0f)key_value +;else key_value = 0;if(key_value >= 10)write_eepom();key_value = 0;key_new = 1;flag_lj_en = 0;/關(guān)閉連加使能flag_lj_3_en = 0;/關(guān)閉3秒后使能flag_value = 0;/清零else if(

40、P2 & 0x0f) != 0x0f)key_value +; /按鍵按下的時(shí)候else key_value = 0;if(key_value >= 7)key_value = 0;key_new = 0;flag_lj_en = 1; /連加使能zd_break_en = 1; /自動(dòng)退出設(shè)置界使能zd_break_value = 0; /自動(dòng)退出設(shè)置界變量清零key_can = 20;if(key_500ms = 1)key_500ms = 0;zd_break_en = 1; /自動(dòng)退出設(shè)置界使能zd_break_value = 0; /自動(dòng)退出設(shè)置界變量清零key_new

41、 = 0;key_old = 1;if(key_new = 0) && (key_old = 1)switch(P2 & 0x0f)case 0x0e: key_can = 4; break; /得到k1鍵值case 0x0d: key_can = 3; break; /得到k2鍵值case 0x0b: key_can = 2; break; /得到k3鍵值case 0x07: key_can = 1; break; /得到k4鍵值 key_old = key_new; /*按鍵處理數(shù)碼管顯示函數(shù)*/void key_with()if(key_can = 4)menu_

42、1 +;if(menu_1 >= 3)menu_1 = 0;if(menu_1 = 0)dis_smg0 = smg_dutemperature % 10; /取溫度的小數(shù)顯示dis_smg1 = smg_dutemperature / 10 % 10 & 0x7f; /取溫度的個(gè)位顯示dis_smg2 = smg_dutemperature / 100 % 10 ; /取溫度的十位顯示smg_i = 3;if(menu_1 = 1)dis_smg0 = smg_dut_high % 10; /取小數(shù)顯示dis_smg1 = smg_dut_high / 10 % 10 &

43、; 0x7f; /取個(gè)位顯示dis_smg2 = smg_dut_high / 100 % 10 ; /取low十位顯示dis_smg3 = 0x89;smg_i = 4;if(menu_1 = 2)dis_smg0 = smg_dut_low % 10; /取low小數(shù)顯示dis_smg1 = smg_dut_low / 10 % 10 & 0x7f; /取個(gè)位顯示dis_smg2 = smg_dut_low / 100 % 10 ; /取十位顯示dis_smg3 = 0xc7;smg_i = 4;if(menu_1 = 1)/設(shè)置高溫報(bào)警if(key_can = 3)if(flag

44、_lj_3_en = 0)t_high + ;/按鍵按下未松開自動(dòng)加三次else t_high += 10;/按鍵按下未松開自動(dòng)加三次之后每次自動(dòng)加10if(t_high > 990)t_high = 990;dis_smg0 = smg_dut_high % 10; /取小數(shù)顯示dis_smg1 = smg_dut_high / 10 % 10 & 0x7f; /取個(gè)位顯示dis_smg2 = smg_dut_high / 100 % 10 ; /取十位顯示dis_smg3 = 0x89; /Hif(key_can = 1)if(flag_lj_3_en = 0)t_high

45、- ;/按鍵按下未松開自動(dòng)加三次else t_high -= 10;/按鍵按下未松開自動(dòng)減三次之后每次自動(dòng)減10if(t_high <= t_low)t_high = t_low + 1;dis_smg0 = smg_dut_high % 10; /取小數(shù)顯示dis_smg1 = smg_dut_high / 10 % 10 & 0x7f; /取個(gè)位顯示dis_smg2 = smg_dut_high / 100 % 10 ; /取十位顯示dis_smg3 = 0x89; /H/write_eepom();if(menu_1 = 2)/設(shè)置低溫報(bào)警if(key_can = 3)if(flag_lj_3_en = 0)t_low + ;else t_low += 10;if(t_low >= t_high)t_low = t_high - 1;dis_smg0 = smg_dut_low % 10; /取小數(shù)顯示dis_smg1 = smg_dut_low / 10 % 10 & 0x7f; /取個(gè)位顯示dis_smg2 = smg_dut_low / 100 % 10 ; /取十位顯示dis_smg3 = 0xc7; /Lif(key_can = 1)if(flag_lj_3_en = 0)t_low - ;else t_low -= 10;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論