基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控(DOC畢設(shè)論文).doc_第1頁(yè)
基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控(DOC畢設(shè)論文).doc_第2頁(yè)
基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控(DOC畢設(shè)論文).doc_第3頁(yè)
基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控(DOC畢設(shè)論文).doc_第4頁(yè)
基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控(DOC畢設(shè)論文).doc_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2010 2011學(xué)年第 一 學(xué)期畢業(yè)設(shè)計(jì)課題名稱:基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控總目錄第一部分 任務(wù)書 第二部分 開(kāi)題報(bào)告第三部分 畢業(yè)設(shè)計(jì)正文 第 一 部 分任務(wù)書揚(yáng)州工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)任務(wù)書系 部電子系指導(dǎo)老師馬梅職稱講師學(xué)生姓名劉興龍班級(jí)0802應(yīng)用電子學(xué)號(hào)0805170224設(shè)計(jì)題目基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控設(shè)計(jì)內(nèi)容目標(biāo)和要求設(shè)計(jì)內(nèi)容目標(biāo):1、以AT89S52單片機(jī)為測(cè)溫CPU,以DS18B20為溫度傳感器,組成由鍵盤及顯示電路、溫度測(cè)量電路、串口通信電路等組成的多點(diǎn)溫度監(jiān)測(cè)系統(tǒng)。2、完成程序設(shè)計(jì)及實(shí)物調(diào)試。設(shè)計(jì)要求:1、提出選題的初步設(shè)想和研究目的。2、收集、整理與理論和實(shí)際有關(guān)的、完整的、準(zhǔn)確的信息資料。3、掌握MCS-51單片機(jī)的結(jié)構(gòu)與原理。4、確定設(shè)計(jì)多點(diǎn)溫度測(cè)量與監(jiān)控的整體方案。5、完成多點(diǎn)溫度測(cè)量與監(jiān)控的軟硬件設(shè)計(jì)。教研室審核系部審核第 二 部 分開(kāi)題報(bào)告揚(yáng)州工業(yè)職業(yè)技術(shù)學(xué)院 電子信息工程 系11屆畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告書(表1)學(xué)生姓名劉興龍專業(yè)應(yīng)用電子班級(jí)0802應(yīng)用電子學(xué)號(hào)0805170224題 目基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控指導(dǎo)教師馬梅職稱講師學(xué) 位碩士題目類別 工程設(shè)計(jì) 基礎(chǔ)研究 應(yīng)用研究 其它【課題的內(nèi)容與要求】本次畢業(yè)設(shè)計(jì)主要應(yīng)用MCS-51系列單片機(jī)原理和控制理論設(shè)計(jì)簡(jiǎn)易溫度測(cè)量與監(jiān)控模型的電路仿真及實(shí)物,并利用C語(yǔ)言進(jìn)行程序設(shè)計(jì)。以單片機(jī)AT89S52為控制器的數(shù)碼管動(dòng)態(tài)顯示及串口通信部分,可實(shí)時(shí)顯示溫度并將數(shù)值傳給電腦?!厩把浴侩S著信息技術(shù)革命的深入和計(jì)算機(jī)技術(shù)的飛速發(fā)展,單片機(jī)的應(yīng)用越來(lái)越廣泛,并逐漸發(fā)展成為一門關(guān)鍵的技術(shù)學(xué)科。單片機(jī)具有一些突出優(yōu)點(diǎn):體積小、重量輕、耗電少、電源單一、功能強(qiáng)、價(jià)格低、運(yùn)行速度快、抗干擾能力強(qiáng)、可靠性高,所以在通信、家電、工業(yè)控制、儀器儀表、汽車等產(chǎn)品中都可以看到單片機(jī)的身影。在工業(yè)生產(chǎn)及日常生活中,多點(diǎn)溫度檢測(cè)系統(tǒng)的應(yīng)用十分廣泛,例如消防電氣的非破壞性溫度檢測(cè),電力設(shè)備的過(guò)熱故障預(yù)知檢測(cè),空調(diào)系統(tǒng)的溫度檢測(cè),大型糧庫(kù)的溫度監(jiān)測(cè),各類運(yùn)輸工具組件的過(guò)熱檢測(cè),醫(yī)療與診斷設(shè)備的溫度測(cè)試等。數(shù)字溫度傳感器DSl8820的多點(diǎn)溫度檢測(cè)系統(tǒng)利用單總線的特點(diǎn),可以方便地組建傳感器網(wǎng)絡(luò),從而實(shí)現(xiàn)多點(diǎn)溫度的測(cè)量。系統(tǒng)設(shè)計(jì)靈活、抗干擾性好,可以在惡劣的工作環(huán)境中進(jìn)行溫度測(cè)量?!痉桨傅谋容^與評(píng)價(jià)】溫度傳感器有:傳統(tǒng)熱敏溫度傳感器和IC溫度傳感器。價(jià)格:毫無(wú)疑問(wèn),單個(gè)的熱敏溫度傳感器比IC溫度傳感器有很大的價(jià)格優(yōu)勢(shì)。但如果要以數(shù)字方式來(lái)讀取熱敏溫度傳感器的溫度值,就要安裝有模數(shù)轉(zhuǎn)換模塊。另外,隨著工藝水平不斷提高,IC溫度傳感器的價(jià)格也不斷下降,其價(jià)格也逐漸可以和熱敏溫度傳感器相媲美。例如,美國(guó)國(guó)家半導(dǎo)體公司的LM19, 其價(jià)格與熱敏溫度傳感器相相當(dāng)。封裝:IC溫度傳感器的封裝多種多樣,且占用空間小。精度:IC溫度傳感器的精度高(熱敏溫度傳感器如加裝精確的外加電路也是可以的)。另外,熱敏溫度傳感器往往需要使用者逐個(gè)校調(diào),而IC溫度傳感器在出廠時(shí)已完成這一步?;谝陨蠋c(diǎn),本次畢業(yè)設(shè)計(jì)選擇IC溫度傳感器。在IC溫度傳感器中選擇平時(shí)接觸較多的DS18B20?!绢A(yù)期的效果及指標(biāo)】對(duì)Proteus V7.1、Keil 4軟件有了更深的理解,不僅是對(duì)軟件,對(duì)高頻電子線路和模擬電子有更進(jìn)一步的理解。先電腦上做好仿真之后,然后對(duì)其進(jìn)行實(shí)物調(diào)試,能實(shí)現(xiàn)系統(tǒng)各性能指標(biāo)均符合要求。【進(jìn)度安排】2010 年 9 月 21 日 - 2010 年 9 月 30 日 選題、調(diào)研、收集資料2010 年 10 月 8 日 - 2010 年 10 月 15 日 論證、開(kāi)題2010 年 10 月 16 日 - 2010 年 11 月 30 日 設(shè)計(jì)(寫作初稿)2010 年 12 月 1 日 - 2010 年 12 月 10 日 修改、定稿、打印【參考文獻(xiàn)】1 DALLAS公司的DS18B20芯片資料.2009年2 段向東、毋茂盛、毋玉芝.Keil C51 程序設(shè)計(jì)中幾種精確延時(shí)方法.單片機(jī)與嵌入式系統(tǒng)應(yīng)用.2007 年,第12 期:33頁(yè)-35頁(yè)3 王學(xué)梅、金廣鋒.數(shù)字溫度傳感器DSl820在糧倉(cāng)溫度智能控制系統(tǒng)中的應(yīng)用.科技廣場(chǎng).2009年,第5期:217頁(yè)-218頁(yè)4 陳生翰、劉其洪、丁柱.單總線數(shù)字溫度傳感器DSl820自動(dòng)識(shí)別的設(shè)計(jì)與實(shí)現(xiàn).儀表技術(shù)與傳感器.2009年,第5期:16頁(yè)-18頁(yè)5 雷建龍.數(shù)字溫度傳感器DSl820讀出數(shù)據(jù)錯(cuò)誤分析.電子器件.2007年,第30卷(第6期):2183頁(yè)-2185頁(yè)【指導(dǎo)教師意見(jiàn)】(有針對(duì)性地說(shuō)明選題意義及工作安排是否恰當(dāng)?shù)龋┒帱c(diǎn)溫度監(jiān)控系統(tǒng)的應(yīng)用在實(shí)際中很廣泛,因此選題很有意義,并且工作進(jìn)度安排合理,能保障按時(shí)完成畢業(yè)設(shè)計(jì)。同意提交開(kāi)題論證 修改后提交 不同意提交(請(qǐng)說(shuō)明理由)指導(dǎo)教師簽章: 年 月 日 【系部意見(jiàn)】同意指導(dǎo)教師意見(jiàn) 不同意指導(dǎo)教師意見(jiàn)(請(qǐng)說(shuō)明理由) 其它(請(qǐng)說(shuō)明)隊(duì)系(部)主任簽章: 年 月 日第 三 部 分畢業(yè)設(shè)計(jì)正文基于AT89S52單片機(jī)的多點(diǎn)溫度測(cè)量與監(jiān)控劉興龍0802應(yīng)用電子摘 要隨著電子產(chǎn)品智能化程度越來(lái)越高,采用單片機(jī)來(lái)溫度監(jiān)控已成為當(dāng)今的主流。本文介紹了數(shù)字溫度測(cè)量及監(jiān)控的系統(tǒng)設(shè)計(jì)。本文采用單片機(jī)來(lái)實(shí)現(xiàn)對(duì)溫度的控制。它的主要組成部分有: AT89S52單片機(jī)、鍵盤及顯示電路、溫度測(cè)量電路、串口通信電路等組成。它可以實(shí)時(shí)的顯示和設(shè)定溫度,實(shí)現(xiàn)對(duì)溫度的自動(dòng)控制。通過(guò)測(cè)試表明,本設(shè)計(jì)對(duì)溫度的控制有方便、簡(jiǎn)單的特點(diǎn),從而大幅提高了被控溫度的技術(shù)指標(biāo)。關(guān)鍵詞單片機(jī) 單總線數(shù)字溫度傳感器 串口發(fā)送 上位機(jī)AT89S52 Microcontroller based multi-point temperature measurement and monitoringLiu Xinglong0802 application of electronicAbstract:With more and more intelligent electronic products, using SCM to temperature monitoring has become mainstream. This article describes the digital temperature measurement and control system design. In this paper, single chip to achieve the temperature control. Its main components are: AT89S52 microcontroller, keyboard and display circuit, the temperature measurement circuit, serial communication circuit. It can be real-time display and set temperature, to achieve automatic control of temperature. Test shows that the design of temperature control are easy, simple features, which significantly increased the temperature was charged with technical indicators.Key words: SCM Single-bus digital temperature sensor Serial port PC目 錄第一章 系統(tǒng)的總體設(shè)計(jì)11.1 設(shè)計(jì)背景11.2 電路的總體工作原理1第二章 方案論證42.1 題目分析42.2 具體控制要求42.3 溫度傳感器的選擇42.4 DSl820簡(jiǎn)介4第三章 系統(tǒng)的硬件電路63.1 最小系統(tǒng)63.2 溫度傳感電路63.3 鍵盤、顯示、報(bào)警電路73.4 串口通信電路93.5 實(shí)物圖10第四章 系統(tǒng)的軟件設(shè)計(jì)154.1下位機(jī)程序設(shè)計(jì)164.2上位機(jī)程序設(shè)計(jì)17第五章 全文總結(jié)195.1 經(jīng)濟(jì)效益分析195.2 社會(huì)效益分析19致謝21參考文獻(xiàn)22附錄I 元器件清單23附錄II 主程序24附錄 子程序29附錄 上位機(jī)程序39第一章 系統(tǒng)的總體設(shè)計(jì)1.1 設(shè)計(jì)背景溫度控制廣泛應(yīng)用于人們的生產(chǎn)和生活中,人們使用傳統(tǒng)溫度計(jì)來(lái)采集溫度,通過(guò)人工操作加熱、通風(fēng)和降溫設(shè)備來(lái)控制溫度,這樣控制精度低、實(shí)時(shí)性差,在某些對(duì)溫度的要求較高行業(yè)中,由于工作環(huán)境溫度不合理而引發(fā)的事故時(shí)有發(fā)生。對(duì)工業(yè)生產(chǎn)可靠進(jìn)行造成影響,甚至操作人員的安全。為了避免這些缺點(diǎn),需要在某些特定的環(huán)境里安裝數(shù)字溫度測(cè)量及控制設(shè)備。本設(shè)計(jì)以單總線的DS18B20為溫度傳感器,允許在一根數(shù)據(jù)線上掛接多個(gè)DS18B20,尤其在大范圍多點(diǎn)測(cè)溫的情況下,其電路連接及其方便,易于維修、更換。51系列單片機(jī)價(jià)格低廉,購(gòu)買方便,具有多種封裝形式,可將系統(tǒng)進(jìn)一步微型化。本設(shè)計(jì)是一個(gè)數(shù)字溫度測(cè)量及監(jiān)控系統(tǒng),能夠進(jìn)行大范圍的溫度測(cè)量,并能在超限的情況下進(jìn)行控制、調(diào)整,并報(bào)警。保證環(huán)境保持在限定的溫度中。1.2 電路的總體工作原理系統(tǒng)采用AT89S52測(cè)溫CPU,采用獨(dú)立鍵盤把設(shè)定溫度的最高值和最低值存入單片機(jī)的數(shù)據(jù)存儲(chǔ)器,再由單片機(jī)將溫度最高值和最低值存入DS18B20,由于大范圍的溫度值可能有很多,系統(tǒng)自身顯示模塊很難完全顯示,完成測(cè)量后將本次所測(cè)得的數(shù)據(jù)通過(guò)串口傳給上位機(jī),由上位機(jī)對(duì)溫度進(jìn)行控制、調(diào)整乃至儲(chǔ)統(tǒng)計(jì)等高級(jí)功能。也可進(jìn)一步完善上位機(jī)的軟件功能,單個(gè)上位機(jī)可接多個(gè)下位機(jī),從而完成更大范圍的溫度監(jiān)測(cè)。測(cè)溫電路鍵盤顯示電路報(bào)警電路串口發(fā)送電路AT89S52圖1-1 硬件框圖開(kāi)機(jī)設(shè)置高低溫限設(shè)置成功返回測(cè)溫串口發(fā)送高溫則斷電低溫則加電串口數(shù)據(jù)發(fā)送及上位機(jī)數(shù)據(jù)處理溫度是否正常否是圖1-2 程序框圖根據(jù)系統(tǒng)的設(shè)計(jì)要求,選擇DS18B20作為本系統(tǒng)的溫度傳感器,選擇AT89S52單片機(jī)為測(cè)溫來(lái)完成數(shù)據(jù)采集、處理、顯示、報(bào)警等功能。DS18B20采用單總線傳輸數(shù)據(jù),一根線上可掛接多個(gè)DS18B20,省卻了采樣保持電路、運(yùn)放、數(shù)模轉(zhuǎn)換電路以及進(jìn)行長(zhǎng)距離傳輸時(shí)的串并轉(zhuǎn)換電路,簡(jiǎn)化了電路,降低了系統(tǒng)的硬件成本。中央微處理器 AT89S52:低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52單片機(jī)為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。按照實(shí)際需要,同時(shí)也考慮到設(shè)計(jì)成本與整個(gè)系統(tǒng)的精巧性,所以在本系統(tǒng)中就選用價(jià)格較低、工作穩(wěn)定的AT89S52單片機(jī)作為整個(gè)系統(tǒng)的控制器。第二章 方案論證本章對(duì)畢業(yè)設(shè)計(jì)題目進(jìn)行分析,根據(jù)要實(shí)現(xiàn)的功能,提出了實(shí)現(xiàn)系統(tǒng)功能的實(shí)現(xiàn)方案。2.1 題目分析本設(shè)計(jì)是一個(gè)數(shù)字多點(diǎn)溫度監(jiān)控系統(tǒng),能夠?qū)崿F(xiàn)多點(diǎn)溫度測(cè)量,能在超限的情況下進(jìn)行控制、調(diào)整,并報(bào)警,并可以將溫度數(shù)據(jù)通過(guò)串口發(fā)送給上位機(jī)。2.2 具體控制要求根據(jù)設(shè)計(jì)的要求,要利用溫度傳感器實(shí)時(shí)溫度。當(dāng)溫度高于設(shè)定的溫度時(shí),關(guān)閉電源或打開(kāi)降溫裝置進(jìn)行調(diào)整使溫度在設(shè)定的范圍內(nèi);當(dāng)溫度低于設(shè)定的溫度時(shí),打開(kāi)電源或升溫裝置進(jìn)行調(diào)整使溫度在設(shè)定的范圍內(nèi)。同時(shí)要求能設(shè)定溫度限制。該設(shè)計(jì)的主要任務(wù)是能對(duì)溫度進(jìn)行自動(dòng)的監(jiān)控,并通過(guò)串口把溫度值傳給上位機(jī)。硬件電路有溫度采集電路,鍵盤及顯示電路,溫控及報(bào)警電路等幾個(gè)部分。2.3 溫度傳感器的選擇溫度傳感器有:傳統(tǒng)熱敏溫度傳感器和IC溫度傳感器。價(jià)格:毫無(wú)疑問(wèn),單個(gè)的熱敏溫度傳感器比IC溫度傳感器有很大的價(jià)格優(yōu)勢(shì)。但如果要以數(shù)字方式來(lái)讀取熱敏溫度傳感器的溫度值,就要安裝有模數(shù)轉(zhuǎn)換模塊。增加硬件開(kāi)支,降低系統(tǒng)穩(wěn)定性。另外,隨著工藝水平不斷提高,IC溫度傳感器的價(jià)格也不斷下降,其價(jià)格也逐漸可以和熱敏溫度傳感器相媲美。例如,美國(guó)國(guó)家半導(dǎo)體公司的LM19, 其價(jià)格與熱敏溫度傳感器相相當(dāng)。封裝:IC溫度傳感器的封裝多種多樣,且占用空間小。精度:IC溫度傳感器的精度高(熱敏溫度傳感器如加裝精確的外加電路也是可以的)。另外,熱敏溫度傳感器往往需要使用者逐個(gè)校調(diào),而IC溫度傳感器在出廠時(shí)已完成這一步?;谝陨蠋c(diǎn),本次畢業(yè)設(shè)計(jì)選擇IC溫度傳感器。在IC溫度傳感器中選擇平時(shí)接觸較多的DS18B20。2.4 DSl8B20簡(jiǎn)介DSl8B20,它是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,測(cè)溫范圍為一55+125,測(cè)溫分辨率可達(dá)0062 5,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等特點(diǎn),特別適合于構(gòu)成多點(diǎn)溫度測(cè)控系統(tǒng)。DS18B20有如下特點(diǎn): 單線結(jié)構(gòu),只需一根信號(hào)線和CPU相連。 不需要外部元件,直接輸出串行數(shù)據(jù)。 可不需要外部電源,直接通過(guò)信號(hào)線供電,電源電壓范圍為3.3V5V。 高測(cè)溫范圍:-55+125,在-10+85范圍內(nèi),精度為O.5。 測(cè)溫分辨率高,當(dāng)選用12位轉(zhuǎn)換位數(shù)時(shí),溫度分辨率可達(dá)00625。 數(shù)字量的轉(zhuǎn)換精度及轉(zhuǎn)換時(shí)間可通過(guò)簡(jiǎn)單的編程來(lái)控制:9位精度的轉(zhuǎn)換時(shí)間為9375 ms:10位精度的轉(zhuǎn)換時(shí)間187.5ms:12位精度的轉(zhuǎn)換時(shí)間750ms。 具有非易失性上、下限報(bào)警設(shè)定的功能,用戶可方便地通過(guò)編程修改上、下限的數(shù)值。 可通過(guò)報(bào)警搜索命令識(shí)別哪片DS18820采集的溫度超越上、下限。第三章 系統(tǒng)的硬件電路3.1 最小系統(tǒng)圖3-1 單片機(jī)最小系統(tǒng)3.2 溫度傳感電路DS18B20的性能特點(diǎn):采用單總線專用技術(shù),既可通過(guò)串行口線,也可通過(guò)其它I/O口線與微機(jī)接口,無(wú)須經(jīng)過(guò)其它變換電路,直接輸出被測(cè)溫度值(9位二進(jìn)制數(shù),含符號(hào)位)測(cè)溫范圍為-55-+125,測(cè)量分辨率為0.0625內(nèi)含64位經(jīng)過(guò)激光修正的只讀存儲(chǔ)器ROM適配各種單片機(jī)或系統(tǒng)機(jī)用戶可分別設(shè)定各路溫度的上、下限內(nèi)含寄生電源。DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報(bào)警觸發(fā)器TH和TL,高速暫存器。DS18B20的管腳排列如圖所示:圖3-2 DS18B20引腳圖引腳說(shuō)明:VDD:可選電源DQ:數(shù)據(jù)GND:地圖3-3 溫度傳感電路3.3 鍵盤、顯示、報(bào)警電路圖3-4 鍵盤電路圖3-5顯示電路(數(shù)碼管為共陽(yáng)極數(shù)碼管)圖3-6 蜂鳴器報(bào)警電路圖3-7 繼電器部分3.4 串口通信電路圖3-8 串口通信3.5 實(shí)物圖圖3-9 圖片左下方的萬(wàn)能板上的元件為DS18B20圖3-10 串口線連接上位機(jī)用于通信,USB線接上位機(jī)USB口作為電源線使用圖3-11此圖為電路通電時(shí)的狀態(tài),圖中顯示的溫度為22.5000攝氏度圖3-12 萬(wàn)能板上的DS18B20及連接線圖3-13 萬(wàn)能板上的DS18B20圖3-14 萬(wàn)能板上的DS18B20圖3-15 單片機(jī)實(shí)驗(yàn)板全貌圖3-16 VB程序的編劇環(huán)境圖3-17 上位機(jī)程序的實(shí)現(xiàn)效果第四章 系統(tǒng)的軟件設(shè)計(jì)開(kāi)機(jī)設(shè)置高低溫限設(shè)置成功返回測(cè)溫串口發(fā)送高溫則斷電低溫則加電串口數(shù)據(jù)發(fā)送及上位機(jī)數(shù)據(jù)處理溫度是否正常否是圖4-1 程序框圖程序分為兩個(gè)部分:下位機(jī)程序和上位機(jī)程序。下位機(jī)程序既單片機(jī)程序,包括:主程序部分,DS18B20復(fù)位、寫、讀程序,顯示程序,鍵盤掃描程序,高低溫限設(shè)定程序,延時(shí)程序,精確延時(shí)程序,編碼轉(zhuǎn)換程序,報(bào)警程序,串口發(fā)送程序,中斷程序。上位機(jī)程序使用Microsoft Visual Basic 6.0編寫,使用MSComm控件控制,因程序簡(jiǎn)單,下面再做詳細(xì)介紹。4.1下位機(jī)程序設(shè)計(jì)開(kāi)機(jī)外部中斷、定時(shí)器、串口初始化發(fā)送溫度轉(zhuǎn)換命令取出溫度值并存儲(chǔ)顯示串口發(fā)送溫度值斷電/加電,報(bào)警串口發(fā)送將第j個(gè)溫度與高低溫限對(duì)j5取出高低溫限j5發(fā)送第j個(gè)序列號(hào)發(fā)送第j個(gè)序列號(hào)YNYN不正常YN顯示20秒后無(wú)條件轉(zhuǎn)移圖4-2 主程序框圖復(fù)位發(fā)送對(duì)應(yīng)的序列號(hào)讀出高低溫限并存儲(chǔ)發(fā)送對(duì)應(yīng)的序列號(hào)退出中斷進(jìn)入中斷選擇一個(gè)DS18B20將高低溫限寫入對(duì)應(yīng)的DS18B20設(shè)置高溫限制設(shè)置低溫限制圖4-3 設(shè)置高低溫限程序框圖主程序請(qǐng)參見(jiàn)附錄II,子程序請(qǐng)參見(jiàn)附錄。4.2上位機(jī)程序設(shè)計(jì)上位機(jī)程序較之下位機(jī)簡(jiǎn)單,用MSComm 控件進(jìn)行控制。因本文著重單片機(jī)的程序設(shè)計(jì),故此處僅簡(jiǎn)單介紹,具體程序請(qǐng)參見(jiàn)附錄4。MSComm控件提供下列兩種處理通訊的方式:事件驅(qū)動(dòng)方式和查詢方式。 事件驅(qū)動(dòng)方式:事件驅(qū)動(dòng)通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)需要得到通知,例如,在串口接收緩沖區(qū)中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 線上一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí)。在這些情況下,可以利用 MSComm 控件的 OnComm 事件捕獲并處理這些通訊事件。OnComm 事件還可以檢查和處理通訊錯(cuò)誤。所有通訊事件和通訊錯(cuò)誤的列表,參閱 CommEvent 屬性。在編程過(guò)程中,就可以在OnComm事件處理函數(shù)中加入自己的處理代碼。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。每個(gè)MSComm 控件對(duì)應(yīng)著一個(gè)串行端口。如果應(yīng)用程序需要訪問(wèn)多個(gè)串行端口,必須使用多個(gè) MSComm 控件。查詢方式:查詢方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)關(guān)鍵功能之后,可以通過(guò)檢查 CommEvent 屬性的值來(lái)查詢事件和錯(cuò)誤。如果應(yīng)用程序較小,并且是自保持的,這種方法可能是更可取的。例如,如果寫一個(gè)簡(jiǎn)單的電話撥號(hào)程序,則沒(méi)有必要對(duì)每接收一個(gè)字符都產(chǎn)生事件,因?yàn)槲ㄒ坏却邮盏淖址钦{(diào)制解調(diào)器的“確定”響應(yīng)。圖4-4 VB程序環(huán)境圖4-5 上位機(jī)程序的實(shí)現(xiàn)效果第五章 全文總結(jié)5.1 經(jīng)濟(jì)效益分析本系統(tǒng)的設(shè)計(jì),是為了保證某特定環(huán)境溫度維持在設(shè)定的范圍內(nèi),以保證工作系統(tǒng)在穩(wěn)定的狀態(tài)下工作。本系統(tǒng)的設(shè)計(jì)成本很低,零件成本不超過(guò)26塊(AT89S52一片7塊5 +萬(wàn)能板一塊2元+DS18B20一個(gè)7塊+8個(gè)共陽(yáng)極數(shù)碼管4塊+電阻、按鈕等元件5塊25.5元)如果用2051代替AT89S52和話,只要20.5元。如果采用大批量生產(chǎn)的話,生產(chǎn)成本會(huì)更低。在市場(chǎng)上的溫度自動(dòng)控制系統(tǒng)的價(jià)格在百元人民幣以上,故本系統(tǒng)具有高性價(jià)比。只要配上適當(dāng)?shù)睦^電器,這個(gè)系統(tǒng)便還可以實(shí)現(xiàn)很多領(lǐng)域的溫度自動(dòng)控制。這對(duì)于提高系統(tǒng)的利用率,避免重復(fù)設(shè)計(jì)有很大的幫助的。在本系統(tǒng)的作用下,可以為工作系統(tǒng)提供一個(gè)良好的環(huán)境,使產(chǎn)品的數(shù)量和質(zhì)量有很大的提高。使得產(chǎn)品的生產(chǎn)成本降低,從而使系統(tǒng)的使用者獲得的利潤(rùn)提高了。分析表明:本系統(tǒng)是一個(gè)性價(jià)比比較好的系統(tǒng),不論對(duì)于生產(chǎn)者還是使用者來(lái)說(shuō),它都可以帶來(lái)好的經(jīng)濟(jì)效益。5.2 社會(huì)效益分析本設(shè)計(jì)是以AT89S52為核心,是軟硬件相結(jié)合的自動(dòng)控制的典型例子。在單片機(jī)自動(dòng)控制已經(jīng)廣泛的應(yīng)用于人們的生產(chǎn)和生活的今天,傳統(tǒng)用模擬電路來(lái)控制溫度的做法,已經(jīng)逐漸被淘汰。這個(gè)系統(tǒng)的實(shí)現(xiàn),改變了傳統(tǒng)的溫度控制方法,為溫度的控制開(kāi)辟了一條新的道路。根據(jù)我國(guó)的科技和工業(yè)水平,這個(gè)系統(tǒng)的設(shè)計(jì)是符合工業(yè)生產(chǎn)的需要。實(shí)現(xiàn)我國(guó)的工業(yè)化,自動(dòng)控制是其中的一個(gè)重要目標(biāo),自動(dòng)控制系統(tǒng)正廣泛的應(yīng)用于工業(yè)生產(chǎn)和人們的日常生活。本系統(tǒng)的設(shè)計(jì)成功知識(shí)實(shí)現(xiàn)自動(dòng)控制的“冰山一角”,但它為以后更加智能化、人性化的自動(dòng)控制系統(tǒng)的設(shè)計(jì),作了鋪墊。因此這種系統(tǒng)的設(shè)計(jì)具有比較好的社會(huì)效益。經(jīng)過(guò)兩個(gè)月的方案論證、系統(tǒng)的硬件和軟件的設(shè)計(jì)、系統(tǒng)的調(diào)試。查閱了大量的關(guān)于傳感器、單片機(jī)及其接口電路、以及控制方面的理論。經(jīng)過(guò)了一番特殊的體驗(yàn)后,經(jīng)歷了失敗的痛苦,也嘗到了成功的喜悅。第一次靠用所學(xué)的專業(yè)知識(shí)來(lái)解決問(wèn)題。檢查了自己的知識(shí)水平,使我對(duì)自己有一個(gè)全新的認(rèn)識(shí)。通過(guò)這次畢業(yè)設(shè)計(jì),不僅鍛煉自己分析問(wèn)題、處理問(wèn)題的能力,還提高了自己的動(dòng)手能力。這些培養(yǎng)和鍛煉對(duì)于我們這些即將走向工作崗位的大學(xué)生來(lái)說(shuō),是很重要的。這次畢業(yè)設(shè)計(jì)基本的完成了任務(wù)書的要求,實(shí)現(xiàn)了溫度的控制。通過(guò)測(cè)試表明系統(tǒng)的設(shè)計(jì)是正確的,可行的。但是由于設(shè)計(jì)者的設(shè)計(jì)經(jīng)驗(yàn)和知識(shí)水平有限,系統(tǒng)還存在許多不足和缺陷。致謝本次畢業(yè)設(shè)計(jì),得到了很多老師和同學(xué)的支持,為我創(chuàng)造了很多有利條件,在這里,我要特別感謝我的導(dǎo)師馬梅老師,馬梅老師給了我很多幫助,指導(dǎo)我了解了很多單片機(jī)的相關(guān)知識(shí),并在當(dāng)我設(shè)計(jì)遇到困難時(shí),給予幫助和鼓勵(lì),給了我莫大的信心,為我順利完成畢業(yè)設(shè)計(jì)起到了非常重要的作用。同時(shí)還要感謝幫助我的同學(xué),在我遇到困難時(shí)給予我耐心的幫助。再次對(duì)在本次畢業(yè)設(shè)計(jì)中給予過(guò)我?guī)椭睦蠋熀屯瑢W(xué)至上我最真摯的謝意。參考文獻(xiàn)1 DALLAS公司的DS18B20芯片資料.2009年2 段向東、毋茂盛、毋玉芝.Keil C51 程序設(shè)計(jì)中幾種精確延時(shí)方法.單片機(jī)與嵌入式系統(tǒng)應(yīng)用.2007 年,第12 期:33頁(yè)-35頁(yè)3 王學(xué)梅、金廣鋒.數(shù)字溫度傳感器DSl820在糧倉(cāng)溫度智能控制系統(tǒng)中的應(yīng)用.科技廣場(chǎng).2009年,第5期:217頁(yè)-218頁(yè)4 陳生翰、劉其洪、丁柱.單總線數(shù)字溫度傳感器DSl820自動(dòng)識(shí)別的設(shè)計(jì)與實(shí)現(xiàn).儀表技術(shù)與傳感器.2009年,第5期:16頁(yè)-18頁(yè)5 雷建龍.數(shù)字溫度傳感器DSl820讀出數(shù)據(jù)錯(cuò)誤分析.電子器件.2007年,第30卷(第6期):2183頁(yè)-2185頁(yè)附錄I 元器件清單51單片機(jī)實(shí)驗(yàn)板一塊萬(wàn)能板一塊DS18B20 四個(gè)串口線一條USB下載線一條導(dǎo)線若干附錄II 主程序#includereg52.hsbit DQ=P12;sbit NPN=P34;/高溫限制sbit PNP=P35;/低溫限制sbit BUZZ=P36;/蜂鳴器報(bào)警void delay8zus(unsigned char);void delay(unsigned char z);void display(unsigned char *);void deal(unsigned char,unsigned char,bit);void restart();void timer0_init(void);void RS232_init(void);void send(unsigned char);void write_DS18B20(unsigned char z);void send(unsigned char z);void temperature_send(unsigned char,unsigned char,bit);unsigned char read_DS18B20(void);bit select_a_ds18b20();bit ii,zf;unsigned int count;unsigned char date8,ca12=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0xbf,0xff;/09,負(fù)號(hào),全高電位。unsigned char ROMdate58=0x28,0xb5,0x1d,0x31,0x02,0x00,0x00,0xea,0x28,0xA8,0x48,0xC3,0x02,0x00,0x00,0xCA, 0X28,0XB5,0X73,0XC3,0X02,0X00,0X00,0X2F,0X28,0X84,0X8C,0XC3,0X02,0X00,0X00,0X3C, 0X28,0X82,0X42,0XC3,0X02,0X00,0X00,0X0E;typedef structunsigned char H;unsigned char L;char alarm_flog;/警報(bào)標(biāo)志位,超過(guò)正常溫度,則致1,低于正常溫度,則致-1,溫度正常,則致0temperature;temperature T5;/使用結(jié)構(gòu)體來(lái)保存溫度數(shù)據(jù)void main()unsigned char i,j,temp,Tmax,Tmin;IT1=1;/外部中斷1下降沿有效EX1=1;/開(kāi)外部中斷0timer0_init();RS232_init();loop1:restart();write_DS18B20(0xcc);write_DS18B20(0x44);delay(200);TR0=0;/先停止timer0,以免對(duì)測(cè)溫產(chǎn)生干擾for(j=0;j5;j+)restart();write_DS18B20(0x55);for(i=0;i16)zf=0;Tj.H=!Tj.H;Tj.L=!Tj.L+1;temp=Tj.L&0xf0;temp=4;Tj.H=Tj.HTmax) Tj.alarm_flog=1;NPN=1;BUZZ=0;if(Tj.LTmax) Tj.alarm_flog=-1;PNP=1;BUZZ=0;if(Tj.HTmax) Tj.alarm_flog=0;PNP=0;BUZZ=1;temperature_send(Tj.H,Tj.L,zf);deal(Tj.H,Tj.L,zf);TR0=1;for(j=0;j2300)/300大約是2秒,2300大約是20秒count=0;ii=0;附錄 子程序DS18B20復(fù)位.c#includereg52.hvoid delay8zus(unsigned char);sbit DQ=P12;void restart()DQ=1;delay8zus(50);DQ=0;delay8zus(800/8);DQ=1;delay8zus(950/8);DS18B20寫.c#includereg52.h#includeINTRINS.Hsbit DQ=P12;void delay8zus(unsigned char);void write_DS18B20(unsigned char z)unsigned char i;for(i=8;i0;i-)DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DQ=z&0x01;delay8zus(40/8);DQ=1;z=1;DS18B20讀.c#includereg52.h#includeINTRINS.Hsbit DQ=P12;void delay8zus(unsigned char);unsigned char readdate=0;unsigned char read_DS18B20(void)unsigned char i;readdate=0;for(i=0;i=1;DQ=1;if(DQ) readdate|=0x80;delay8zus(110/8);return readdate;精確8us級(jí)延時(shí).c/延時(shí)時(shí)間為8*z+2+1個(gè)us,2為函數(shù)調(diào)用時(shí)間,1為函數(shù)返回時(shí)間void delay8zus(unsigned char z)for(;z1;z-);延時(shí).c/*z的單位為毫秒,適用于11.0592M的晶振,單片機(jī)的機(jī)器周期為12個(gè)晶振周期*/void delay(unsigned char z)unsigned char a,b;for(a=z+1;a1;a-)for(b=125;b1;b-);8位共陽(yáng)極數(shù)碼管顯示.c#includereg52.h /指針*p為指向一個(gè)擁有8個(gè)數(shù)組元素的數(shù)組。unsigned char p38=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/該數(shù)組為段選數(shù)組。void delay(unsigned char);void display(unsigned char *p)unsigned char j;for(j=0;j8;P2=p3j,P0=pj,delay(2),j+);設(shè)置高低溫限制.cextern unsigned char ca12;extern unsigned char ROMdate58;#includereg52.hsbit up=P13;/加鍵sbit down=P11;/減鍵sbit sure=P14;/確定鍵sbit cancel=P10;/取消鍵void restart();void write_DS18B20(unsigned char z);unsigned char read_DS18B20(void);void delay(unsigned char);void set(unsigned char *);bit select_a_ds18b20()/返回值為1則表示修改成功,0表示失敗bit i=1;unsigned char num=1;while(i)if(down=0) delay(5);if(down=0) while(!down);num-;if(num=0) num=5;if(up=0) delay(5);if(up=0) while(!up);num+;if(num=6) num=1;if(sure=0) delay(5);if(sure=0) while(!sure);i=0;if(cancel=0) delay(5);if(cancel=0) while(!cancel);goto loop;/取消,則無(wú)條件轉(zhuǎn)移到最后P2=0Xfe;P0=canum;delay(1);set(ROMdatenum-1);loop:if(i)return 0;elsereturn 1;void set(unsigned char *p)/傳送要修改的ds18b20的序列號(hào)的入口地址char i=1,TH,TL,th,tl;restart();/先讀出高低溫限write_DS18B20(0x55);for(i=0;i99)P2=0X0fb;P0=ca1;delay(1);if(TH99)P2=0Xfb;P0=ca1;delay(1);if(TL0)P2=0Xfb;P0=0xbf;delay(1);restart();write_DS18B20(0x55);for(i=0;i8;write_DS18B20(pi),i+);write_DS18B20(0x4e);write_DS18B20(TH);write_DS18B20(TL);restart();write_DS18B20(0xcc);write_DS18B20(0x48);delay(200);delay(200);定時(shí)器初始化.c#includereg52.hvoid timer0_init(void)TMOD=TMOD|0X01;/這樣做可不影響定時(shí)器1的值TH0=0;TL0=0;EA=1;TR0=1;ET0=1;溫度轉(zhuǎn)換成顯示編碼.c/預(yù)處理,將要顯示的十進(jìn)制數(shù)預(yù)先轉(zhuǎn)換成8位數(shù)碼管可以顯示的編碼。#includereg52.hextern unsigned char date8;/staticextern unsigned char ca12;void deal(unsigned char TH,unsigned char TL,bit zhengfu)unsigned char i;for(i=0;i8;datei=0xff,i+);if(zhengfu=0)/加負(fù)號(hào)if(TH=10) date6=0XBF;date4=caTH%10;if(TH10) date5=caTH/10%10;if(TH100) date6=caTH/100%10;date0=ca(TL*625)%10;date1=ca(TL*625)/10%10;date2=ca(TL*625)/100%10;date3=ca(TL*625)/1000%10;date4=date4&0x7f;/date4=(date4)+0x80);/加小數(shù)點(diǎn)串口初始化.c#includereg52.hvoid RS232_init(void)TMOD=0X20;TH1=0XFD;TL1=0XFD;TR1=1;SM1=1;SM0=0;REN=1;EA=1;ES=1;串口發(fā)送.c#includereg52.hvoid send(unsigned char z)ES=0;SBUF=z;while(!TI);TI=0;ES=1;串口溫度數(shù)據(jù)發(fā)送.cvoid send(unsigned char);void temperature_send(unsigned char TH,unsigned char TL,bit zhengfu)if(zhengfu=0) send(-);send(TH/10%10+48);send(TH%10+48);send(.);send(TL*625)/1000%10+48);send(TL*625)/100%10+48);send(TL*625)/10%10+48);send(TL*625)%10+48);send( );/換行附錄 上位機(jī)程序編程界面Private Sub Form_Load()MSComm1.Settings = 9600,N,8,1 波特率9600bit/s,無(wú)校驗(yàn),8位數(shù)據(jù),1位停止位MSComm1.CommPort = 1

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論