版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
基于單片機空調(diào)溫度控制系統(tǒng)設計作者姓名:楊耀武專業(yè)名稱:信息工程指引教師:黃宇講師摘要在自動控制領域中,溫度檢測與控制占有很重要地位。溫度測控系統(tǒng)在工農(nóng)業(yè)生產(chǎn)、科學研究和在人們生活領域,也得到了廣泛應用。因而,溫度傳感器應用數(shù)量居各種傳感器之首。當前,溫度傳感器正從模仿式向數(shù)字集成式方向飛速發(fā)展。本論文概述了溫控器發(fā)展及基本原理,簡介了溫度傳感器原理及特性。分析了DS18B20溫度傳感器優(yōu)劣。在此基本上描述了系統(tǒng)研制理論基本,溫度采集等某些電路設計,并對測溫系統(tǒng)某些重要參數(shù)進行了討論。同步在簡介溫度控制系統(tǒng)功能基本上,提出了系統(tǒng)總體構(gòu)成。針對測溫系統(tǒng)溫度采集、接受、解決、顯示某些總體設計方案進行了論證,進一步簡介了單片機在系統(tǒng)中應用,分析了系統(tǒng)各某些硬件及軟件實現(xiàn)。運用Proteus7.6進行了可行性仿真,運用單片機開發(fā)板驗證在實際電路中能起到效果。實驗證明,這套溫度控制器具備較強可操作性,較好可拓展性,控制簡樸以便。課題初步籌劃是在普通環(huán)境下測溫,系統(tǒng)設計及器件選取也正是在這個基本上進行。核心詞:DS18B20單片機溫度控制1602液晶顯示AbstractIntheautomaticcontrolarea,temperaturemonitoringandcontrolinghaveaveryimportantposition.Thetemperaturemonitoringsystemhasawildlyapplyinginindustry,agriculture,sciencereasearchinganddailylifeofpeople.Therefore,thenumberofapplyingofthetemperaturemonitoringcomesfirstofallkindsofsensor.Atpresent,thetemperaturemonitoringistransformedfromanalogtypetodigitalintegratedtypewithaveryfastspeed.Thispaperintroducesthedevelopingandfundamentalofthetemperaturemonitoring,includingthecharacterofthiskindofsensor.ItalsoanalysestheadvantageanddisadvantageofthetemperaturemonitoringwhichnamedDS18B20.Onthatbasis,thepaperalsohasafurtheranalysisofthetheoreticalbasisofthesystemdevelopingandthecircuitdesignoftemperaturemonitoring.Besides,somediscussionsabouttheimportantparametersalsotookondesk.Atthesametime,theautherofthispaperalsoputsforwardthecompositionoftotalityaboutthissystem,whichincludingthedifferentfunctionofthethermometersystem.ThenadetailedanalysiswhichisabouttheapplyingofMicrocontrollersandtheapplyingofdifferentpartsmadebydifferenthardwaresandsoftwaresinthesystem.InordertocheckthemaneuverabilityandtheexpansibilityoftheMicrocontrollerssystem,theautherusedProteus7.6todothetestingandgotaprettygoodresult.Thissystemputsthetemperaturemeasuredinnormalsituationasaconfirmcondition.Alldesignandselectionofcomponentisalsobasedonthissuppose.keywords:DS18B20,Microcontrollers,TemeperatureControling,1602LiquidCrystalDisplay目錄摘要 IAbstract II目錄 III前言 11系統(tǒng)總體設計方案及功能 21.1溫度傳感器產(chǎn)品分類與選取 21.1.1慣用測溫辦法 21.1.2溫度傳感器產(chǎn)品分類 21.1.3溫度傳感器選取 41.2總體方案擬定 61.3系統(tǒng)實現(xiàn)框圖 62系統(tǒng)單元電路設計 72.1系統(tǒng)工作原理 72.2系統(tǒng)有關硬件及模塊簡介 72.2.1溫度采集電路 72.2.2信號解決與控制電路 82.2.3溫度顯示電路 92.2.4按鍵功能設立電路 102.2.5繼電器控制電路 112.2.6存儲數(shù)據(jù)電路 112.2.7報警、音樂電路 122.2.8電動機電路 123仿真軟件簡介 143.1KeiluVision2軟件 143.2Proteus軟件 154系統(tǒng)硬件設計 175系統(tǒng)軟件設計 195.1DS18B20數(shù)據(jù)通信概述 195.2LCD1602液晶數(shù)據(jù)顯示概述 215.2.1接口信號闡明 215.2.2控制器接口闡明 215.2.3控制接口時序闡明 235.3存儲器24C02數(shù)據(jù)存儲概述 245.3.1I2C總線定義 245.3.2I2C總線時序 245.3.3數(shù)據(jù)傳送 255.4軟件程序設計 256仿真及實驗成果 286.1程序調(diào)試過程中遇到問題及解決辦法 286.2調(diào)試成果 28總結(jié) 30道謝 31參照文獻 32附件1系統(tǒng)硬件電路圖 33附件2系統(tǒng)軟件程序 34前言當代信息技術(shù)三大基本是信息采集控制(即溫度控制器技術(shù))、信息傳播(通信技術(shù))和信息解決(計算機技術(shù))。溫度控制器屬于信息技術(shù)前沿尖端產(chǎn)品,特別是溫度控制器被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學研究和生活等領域,數(shù)量日漸上升。溫度控制器是一種溫度控制裝置,它依照顧客所需溫度與設定溫度之差值來控制中央空調(diào)末端之水閥(風閥)及風機,從而達到變化顧客所需溫度目。實現(xiàn)以上目辦法理論上有諸多,但當前業(yè)界重要有機械式溫度控制器及智能電子式兩大系列。
普通風機盤管空調(diào)溫控器基本上是一種獨立閉環(huán)溫度調(diào)節(jié)系統(tǒng),重要由溫度傳感器、雙位控制器、溫度設定機構(gòu)、手動三速開關和冷熱切換裝置構(gòu)成。其控制原理是空調(diào)溫控器依照溫度傳感器測得室溫與設定值比較成果發(fā)生雙位控制信號,控制冷熱水循環(huán)管路電動水閥(兩通閥或三通閥)開關,即用切斷和打開盤管內(nèi)水流循環(huán)方式,調(diào)節(jié)送風溫度(供冷量)。
第一代空調(diào)溫控器重要是電氣式產(chǎn)品,空調(diào)溫控器溫度傳感器采用雙金屬片或氣動溫包,通過“給定溫度盤”調(diào)節(jié)預緊力來設定溫度,風機三速開關和季節(jié)轉(zhuǎn)換開關為潑檔式機械開關。此類空調(diào)溫控器產(chǎn)品普遍存在“溫度設定分度值過粗”、“時間常數(shù)太大”、“機械開關易損壞”等問題。
第二代空調(diào)溫控器為電子式產(chǎn)品,溫度傳感器采用熱敏電阻或熱電阻,某些產(chǎn)品溫度設定和風速開關通過觸摸鍵和液晶顯示屏實現(xiàn)人機交互界面,冷熱切換自動完畢,運算放大電路和開關電路實現(xiàn)雙位調(diào)節(jié)。此類智能空調(diào)溫控器產(chǎn)品改進了人機交互界面,解決了“溫度設定分度值過粗”等問題,但仍存在“控制精度不高”、“時間常數(shù)大”、“操作較復雜”等問題。
當前國內(nèi)外生產(chǎn)廠家正在研究開發(fā)第三代智能型室溫空調(diào)溫控器,應用新型控制模型和數(shù)控芯片實現(xiàn)智能控制。當前已有國內(nèi)廠家生產(chǎn)出了智能型室溫空調(diào)溫控器,并已應用于實際工程。1系統(tǒng)總體設計方案及功能1.1溫度傳感器產(chǎn)品分類與選取溫度是尋常生活中經(jīng)常遇到一種物理量,它也是科研和生產(chǎn)中最常用、最基本常量之一。在諸多場合都需要對溫度進行測控,而溫度測控離不開溫度傳感器,因而,掌握對的測溫辦法及溫度傳感器用法極為重要。1.1.1慣用測溫辦法物體受熱后溫度就要升高,任何兩個溫度不同物體相接觸都必然產(chǎn)生熱互換,直到兩者溫度達到平衡為止。據(jù)此,可以選取某種溫度傳感器與被測物體接觸進行溫度測量,這種辦法稱為接觸式測溫。接觸式測溫慣用于較低溫度測量。此外,物體受熱后溫度升高同步還伴有熱輻射,因而,可運用溫度傳感器接受被測物體在不同溫度下輻射能量不同來測量溫度,這種測溫辦法稱為非接觸式測溫。非接觸式測溫慣用于高溫測量。1.1.2溫度傳感器產(chǎn)品分類當前,溫度傳感器沒有統(tǒng)一分類辦法。按輸出量分類有模仿式溫度傳感器和數(shù)字式溫度傳感器。按測溫方式分類有接觸式溫度傳感器和非接觸式溫度傳感器。按類型分類有分立式溫度傳感器、模仿集成式溫度傳感器和智能溫度傳感器(數(shù)字溫度傳感器)。模仿式溫度傳感器輸出是隨溫度變化模仿量信號。其特點是輸出響應速度較快和MPU(微解決器)接口較復雜。數(shù)字式溫度傳感器輸出是隨溫度變化數(shù)字量,同模仿輸出相比,它輸出響應較慢,但容易與MPU接口。下面對工程中慣用溫度傳感器做簡樸簡介。1、熱敏電阻式溫度傳感器電阻式溫度傳感器分為熱電阻式溫度傳感器和熱敏電阻溫度傳感器,她們特點是自身電阻值隨溫度而變化。熱敏電阻式運用半導體材料制成敏感組件,普通所用熱敏電阻溫度傳感器都是具備負溫度系數(shù)熱敏電阻,它電阻率受溫度影響很大,并且隨溫度升高而減少,簡稱NTC。其長處是敏捷度高,體積小,壽命長,工作穩(wěn)定,易于實現(xiàn)遠距離;缺陷是互換性差,非線性嚴重。2、熱電阻式溫度傳感器運用熱電阻溫度系數(shù)隨溫度變化特性而制成溫度傳感器。稱為熱電阻溫度傳感器。對于大多數(shù)金屬導體,其電阻值都具備隨溫度升高而增大特性。由于純金屬溫度系數(shù)比合金高,因而均采用純金屬作為熱電阻組件。慣用金屬導體材料有鉑、銅、鐵和鎳。3、熱電偶式溫度傳感器熱電偶是一種老式溫度傳感器,其測溫范疇普通為-50到+1600℃,最高可達+2800℃,并且有較高測量精度。此外,熱電偶產(chǎn)品已實現(xiàn)原則化、系列化,使用時易于選取,可以便地用計算機做線性補償,因而,至今在測溫領域內(nèi)仍被廣泛使用。它理論基本是建立在熱電效應上,將熱能轉(zhuǎn)化為電能。4、模仿集成溫度傳感器集成傳感器是采用硅半導體集成工藝而制成,因而亦稱硅傳感器或單片集成傳感器。模仿集成溫度傳感器是在20世紀80年代問世。它是將溫度傳感器集成在一種芯片上、可完畢溫度測量及模仿信號輸出功能專用IC,它屬于最簡樸一種集成溫度傳感器。模仿集成溫度傳感器重要特點是功能單一(僅測量溫度)、測溫誤差小、價格低、響應速度快、傳播距離遠、體積小、微功耗,適合遠距離測溫、控溫,不需要進行非線性校準。外圍電路簡樸,它是當前在國內(nèi)外應用較為普遍一種集成傳感器。5、智能溫度傳感器智能溫度傳感器(亦稱數(shù)字溫度傳感器)是在20世紀90年代中期問世。智能溫度傳感器是微電子技術(shù)、計算機技術(shù)和自動測試技術(shù)結(jié)晶,它也是集成溫度傳感器領域中最具活力和發(fā)展前程一種新產(chǎn)品。當前,行許多知名集成電路生產(chǎn)已開發(fā)出上百種智能溫度傳感器產(chǎn)品。智能溫度傳感器具備如下三個明顯特點:第一,能輸出溫度數(shù)據(jù)及有關溫度控制量,適配各種微控制器(MCU);第二,能以最簡方式構(gòu)成高性價比、多功能智能化溫度測控系統(tǒng);第三,它是在硬件基本上通過軟件來實現(xiàn)測試功能,其智能化限度也取決于軟件開發(fā)水平。智能溫度傳感器內(nèi)部都包括溫度傳感器、A/D傳感器、存儲器(或寄存器)和接口電路。有產(chǎn)品還帶多路控制器、中央控制器(CPU)、隨機存取儲存器(RAM)和只讀存儲器(ROM)。1.1.3溫度傳感器選取在簡介溫度傳感器選取原則之前,一方面簡介在測控系統(tǒng)中選取傳感器總原則,本原則合用于各種傳感器選取。1、選取傳感器總原則當代傳感器在原理和構(gòu)造上千差萬別,如何依照詳細測控目、測控對象以及測控環(huán)境合理地選取傳感器,是單片機測控系統(tǒng)一方面要解決溫度。當傳感器選定之后,與之相配套測控電路也就可以擬定了。測控成果成敗,在很大限度取決于傳感器選取與否合理。作為單片機測控系統(tǒng)前向通道核心部件,在選取傳感器時應考慮一下幾種方面:(1)依照測控對象與測控環(huán)境擬定傳感器類型一方面要考慮采用何種原理傳感器,這需要分析多方面因素之后才干擬定。由于,雖然是測量同一物理量,也有各種原理傳感器可供選取,哪一種原理傳感器更為適當,則需要依照被測量對象特點和傳感器使用條件綜合考慮一下某些詳細問題:1)傳感器量程;2)被測位置對傳感器體積規(guī)定;3)測量方式為接觸式還是非接觸式;4)傳感器信號引出是有線還是無線;5)是購買傳感器還是自行研制傳感器以及價格因素等。在綜合考慮上述因素之后就能擬定選取何種類型傳感器,然后再考慮傳感器詳細性能指標。(2)敏捷度選取普通狀況下,在傳感器線性范疇內(nèi),但愿傳感器敏捷度越高越好。(3)頻率響應特性傳感器頻率響應特性決定了被測量頻率范疇,傳感器頻率響應好,可測信號頻率范疇就寬,傳感器輸出信號必要在容許頻率范疇內(nèi)保持不失真,事實上傳感器響應總有一定得延遲,但愿延遲時間越短越好。(4)線性范疇傳感器線形范疇是指輸出信號與輸入量成正比范疇。從理論上講,在此范疇內(nèi)敏捷度應保持定值。傳感器線性范疇越寬,其量程越大,并且能保證一定測量精度。在選取傳感器時,當傳感器種類擬定之后一方面要看其量程與否滿足規(guī)定。(5)穩(wěn)定性傳感器使用一段時間后,其性能保持不變化能力稱為穩(wěn)定性。影響傳感器長期穩(wěn)定性因素除傳感器自身構(gòu)造外,重要是傳感器使用環(huán)境。因而,要使傳感器具備良好穩(wěn)定性,傳感器必要要有較強環(huán)境適應能力。(6)精度選取精度是傳感器一種重要性能指標,它是關系到整個測控系統(tǒng)測量精度一種重要環(huán)節(jié)。傳感器精度越高,其價格越昂貴,因而,傳感器精度只要能滿足整個測控系統(tǒng)精度規(guī)定就可以了,不必選得太高。這樣就可以在滿足同一測量目諸多傳感器中選取比較便宜和簡樸傳感器。2、溫度傳感器選取溫度傳感器技術(shù)被廣泛應用于消費類電子產(chǎn)品、玩具、家用電子產(chǎn)品、工業(yè)測控系統(tǒng)以及個人計算機應用中。老式上分立式溫度傳感器是最慣用溫度傳感器元件,而集成溫度傳感器特點是測溫誤差小、價格低、響應速度快、傳播距離遠、體積小、微功耗,適合遠距離測溫、控溫,不需要進行非線性校準,外圍電路簡樸,它是當前在國內(nèi)外應用最為普遍一種溫度傳感器。綜上所述,不同傳感器具備不同應用場合,由于在溫度測控系統(tǒng)中,傳感器是前向通道核心部件,因而選取適當傳感器是非常重要。選取原則要考慮溫度范疇、溫控精度、測溫場合、價格等幾方面因素。1.2總體方案擬定考慮到該制冷控制系統(tǒng)功能比較少,由單片機控制即可實現(xiàn)。而89C52單片機體積小、重量輕、抗干擾能力強、對環(huán)境規(guī)定不高、價格低廉、可靠性高、靈活性好,故本系統(tǒng)選取采用89C52單片機。在溫度采集方面,采用單線數(shù)字溫度傳感器DS18B20進行數(shù)據(jù)采集。DSB18B20S數(shù)字溫度計提供9到12位溫度讀數(shù),批示器件溫度信息通過單線接口送入DS18B20送出,因而從中央解決器到DS18B20僅需連接一條線和地,讀寫和完畢溫度變換所需電源可以由數(shù)據(jù)線自身提供,甚至不需要外部電源。而總體方案和系統(tǒng)電路圖方面基本上和熱敏式傳感器相似,只在數(shù)據(jù)采集方面有所差別。在上面也已經(jīng)提及,熱敏電阻式溫度傳感器互換性差,非線性嚴重。而數(shù)字溫度傳感器DS18B20接線簡樸,數(shù)字輸出量能直接作為單片機輸入數(shù)據(jù),同步考慮到只是在普通環(huán)境下測量,無論在敏捷度、線性范疇、穩(wěn)定性,還是在精度方面,DS18B20強大功能已足夠滿足設計需要。但是DS18B20也有缺陷,就是軟件實行方面比較復雜,但相對于模仿量輸出硬件實現(xiàn)方面來說會簡樸諸多。在本次設計中,溫度數(shù)據(jù)采集用到傳感器是DS18B20。1.3系統(tǒng)實現(xiàn)框圖圖1單片機控制溫度調(diào)節(jié)系統(tǒng)構(gòu)造圖2系統(tǒng)單元電路設計2.1系統(tǒng)工作原理該空調(diào)控制系統(tǒng)用到89C52單片機作為系統(tǒng)CPU進行控制控制,由數(shù)字傳感器DS18B20進行數(shù)據(jù)采集,89C52對采集到數(shù)據(jù)進行解決,得到各種信號。而這些信號將分別作為1602液晶顯示信號輸入、啟動報警裝置信號輸入和啟動制冷設備、電暖設備輸入。同步將運用單片機其他使能端口實現(xiàn)系統(tǒng)復位,手動調(diào)節(jié)和自動調(diào)節(jié)。2.2系統(tǒng)有關硬件及模塊簡介2.2.1溫度采集電路本系統(tǒng)中采集溫度使用是DS18B20數(shù)字溫度傳感器。DS18B20是Dallas半導體公司生產(chǎn)世界上第一片支持“一線總線”接口溫度傳感器。與之前傳感器相比,DS18B20體積更小、合用電壓更寬、更經(jīng)濟。一線總線獨特并且經(jīng)濟特點,使顧客可輕松地組建傳感器網(wǎng)絡,為測量系統(tǒng)構(gòu)建引入全新概念。DS18B20“一線總線”數(shù)字化溫度傳感器支持“一線總線”接口,測量溫度范疇為-55℃到+125℃,在-10到+85℃范疇內(nèi),精度為±0.5℃?,F(xiàn)場溫度直接以“一線總線”數(shù)字方式傳播,大大提高了系統(tǒng)抗干擾性。適合于惡劣環(huán)境現(xiàn)場溫度測量,如:環(huán)境控制、設備或過程控制、測溫類消費電子產(chǎn)品等。與前一代產(chǎn)品不同,新產(chǎn)品支持3V到5.5V電壓范疇,使系統(tǒng)設計更靈活、以便。并且新一代產(chǎn)品更便宜,體積更小。DS18B20可以程序設定9到12位辨別率,精度為±0.5℃。當辨別率為12位時,轉(zhuǎn)換時間為750ms。使得顧客可選取更小封裝方式,更寬電壓合用范疇和辨別率設定,同步顧客設定報警溫度存儲在EEPROM中,掉電后依然保存。DS18B20普通為三極管型封裝,其引腳圖如圖4所示。這三個引腳分別為:GND——電源地;QD——數(shù)字信號輸入/輸出端;VDD——外接供電電源(可選5V)。圖2.1DS18B20引腳圖在該系統(tǒng)中,DS18B20數(shù)字信號輸入/輸出端連接到89C52P2.3中,作為89C52數(shù)據(jù)輸入。2.2.2信號解決與控制電路信號解決與控制采用52單片機基本電路。此電路以52單片機為核心,52詳細引腳圖如圖2.2。圖2.289C52引腳圖在該系統(tǒng)中,要使單片機實現(xiàn)信號解決與控制,則要使單片機20腳(GND)接地,40腳(Vcc)和31腳(/EA)接正5V電源。18、19腳(XTAL2、XTAL1)接12MHz晶振和兩個電容,構(gòu)成片內(nèi)振蕩電路,為單片機提供時鐘脈沖。9腳(RST)接按鍵復位電路,提供復位信號給單片機。89C52芯片內(nèi)部有一種高增益反相放大器,用于構(gòu)成振蕩器。反相放大器輸入端為XTAL1,輸出端為XTAL2,兩端跨接石英晶體及兩個電容就可以構(gòu)成穩(wěn)定自激振蕩器。兩個電容普通取30pF左右,穩(wěn)定頻率并對震蕩頻率有微調(diào)作用。如圖2.3所示。圖2.3時鐘電路手動復位是通過接通一按鈕開關,使單片機進入復位狀態(tài)。系統(tǒng)上電運營后,若需要復位,則通過手動復位來實現(xiàn)。如圖2.4所示。圖2.4復位電路2.2.3溫度顯示電路本系統(tǒng)中,溫度顯示硬件由lcd1602液晶和上拉電阻構(gòu)成。1602采用原則14腳接口,其中:涉及8根數(shù)據(jù)線(D0-D7),三根控制線(rs,rw,e)電源地,電源以及液晶驅(qū)動電壓引腳(VSS,VDD,VEE)。液晶顯示原理是運用液晶物理特性,通過電壓對其顯示區(qū)域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示屏具備厚度薄、合用于大規(guī)模集成電路直接驅(qū)動、易于實現(xiàn)全彩色顯示特點,當前已經(jīng)被廣泛應用在便攜式電腦、數(shù)字攝像機、PDA移動通信工具等眾多領域。圖2.5液晶顯示電路2.2.4按鍵功能設立電路溫度調(diào)節(jié)由三個不鎖按鍵電路實現(xiàn)。電路圖如圖2.6所示。按鍵K1一端與單片機外部中斷0(/INT0,12腳)相連,另一端接地。其功能是當按鍵按下一次時,給單片機一種低電平,進入溫度設定狀態(tài);再次按下時,進入風速設計狀態(tài),再次按下時則退出溫度設定狀態(tài)。按鍵K2、K3,一端接地,另一端與單片機13腳、14腳相連,其功能是每按下一次按鍵,顯示設定值加1或減1。圖2.6溫度設立電路2.2.5繼電器控制電路繼電器控制電路由兩個繼電器構(gòu)成,由單片機P3.0、P3.1輸出控制信號,控制繼電器。在該系統(tǒng)中,當溫度超過設定值,單片機P3.1輸出高電平,驅(qū)動制冷電路繼電器,啟動制冷設備。當溫度低于設定值時,單片機P3.0輸出高電平,驅(qū)動供暖繼電器,啟動電暖設備。當不滿足條件時,不工作。繼電器是一種電控制器件。它具備控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路)之間互動關系。普通應用于自動化控制電路中,它事實上是用小電流去控制大電流運作一種“自動開關”。故在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用。圖2.7繼電器原理圖2.2.6存儲數(shù)據(jù)電路儲存數(shù)據(jù)電路由24C02芯片構(gòu)成,有256字節(jié),由單片機P3.5、P3.6輸出信號。在該系統(tǒng)中,每隔20ms記錄一次測得溫度,實現(xiàn)實時溫度存儲。24C02是串行E2PROM,基于I2C-BUS存儲器件,遵循二線制合同,由于其具備接口以便,體積小,數(shù)據(jù)掉電不丟失等特點,在儀器儀表及工業(yè)自動化控制中得到大量應用。2.2.7報警、音樂電路蜂鳴器是一種一體化構(gòu)造電子訊響器,采用直流電壓供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設備、電話機、定期器等電子產(chǎn)品中作發(fā)聲器件。由單片機P3.7輸出信號。蜂鳴器重要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。通過輸出方波,這個方波輸入進蜂鳴器就會產(chǎn)生聲音,通過控制方波頻率、時間,還能產(chǎn)生簡樸音樂。圖2.8蜂鳴器報警電路2.2.8電動機電路步進電機由單片機P1.4、P1.5、P1.6、P1.7輸出信號。是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移開環(huán)控制元步進電機件。在非超載狀況下,電機轉(zhuǎn)速、停止位置只取決于脈沖信號頻率和脈沖數(shù),而不受負載變化影響,當步進驅(qū)動器接受到一種脈沖信號,它就驅(qū)動步進電機按設定方向轉(zhuǎn)動一種固定角度,稱為“步距角”,它旋轉(zhuǎn)是以固定角度一步一步運營??梢酝ㄟ^控制脈沖個數(shù)來控制角位移量,從而達到準擬定位目;同步可以通過控制脈沖頻率來控制電機轉(zhuǎn)動速度和加速度,從而達到調(diào)速目。普通電機轉(zhuǎn)子為永磁體,當電流流過定子繞組時,定子繞組產(chǎn)生一矢量磁場。該磁場會帶動轉(zhuǎn)子旋轉(zhuǎn)一角度,使得轉(zhuǎn)子一對磁場方向與定子磁場方向一致。當定子矢量磁場旋轉(zhuǎn)一種角度。轉(zhuǎn)子也隨著該磁場轉(zhuǎn)一種角度。每輸入一種電脈沖,電動機轉(zhuǎn)動一種角度邁進一步。它輸出角位移與輸入脈沖數(shù)成正比、轉(zhuǎn)速與脈沖頻率成正比。變化繞組通電順序,電機就會反轉(zhuǎn)。因此可用控制脈沖數(shù)量、頻率及電動機各相繞組通電順序來控制步進電機轉(zhuǎn)動。圖2.9步進電機工作原理圖3仿真軟件簡介3.1KeiluVision2軟件Keilc51開發(fā)工具提供數(shù)個十分有用特性,可以協(xié)助你迅速地成功開發(fā)嵌入式應用。這些工具使用簡樸并保證你達到你設計目uVision2IDE是一種基于Window開發(fā)平臺,包括一種高效編輯器,一種項目管理器和一種MAKE工具。uVision2支持所有KEIL8051工具,涉及C編譯器,宏匯編器,連接/定位器,目的代碼到HEX轉(zhuǎn)換器。uVision2通過如下特性加速你嵌入式系統(tǒng)開發(fā)過程:全功能源代碼編輯器。器件庫用來配備開發(fā)工具設立。項目管理器用來創(chuàng)立和維護你項目。集成MAKE工具可以匯編,編譯和連接你嵌入式應用。所有開發(fā)工具設立都是對話框形式。真正源代碼級對CPU和外圍器件調(diào)試器。高檔GDI(AGDI)接口用來在目的硬件上進行軟件調(diào)試,以及和Monitor-51進行通信。與開發(fā)工具手冊和器件數(shù)據(jù)手冊和顧客指南有直接鏈接。uVision2界面提供一種菜單,一種工具條以便你迅速選取命令按鈕,此外尚有源代碼顯示窗口,對話框和信息顯示。uVision2容許同步打開瀏覽各種源文獻。圖3.1keiluVision2軟件界面3.2Proteus軟件Proteus是英國Labcenter公司開發(fā)電路及單片機系統(tǒng)設計與仿真軟件。Proteus可以實現(xiàn)數(shù)字電路、模仿電路及微控制器系統(tǒng)與外設混合電路系統(tǒng)電路仿真、軟件仿真、系統(tǒng)協(xié)同仿真和PCB設計等功能。Proteus是當前唯一能對各種解決器進行實時仿真、調(diào)試與測試EDA工具,真正實現(xiàn)了在沒有目的原形時就可對系統(tǒng)進行調(diào)試、測試和驗證。Proteus軟件大大提高了公司產(chǎn)品開發(fā)效率,減少了開發(fā)風險。Proteus重要由兩個設計平臺構(gòu)成:ISIS(IntelligentSchematicInputSystem)——原理圖設計與仿真平臺,它用于電路原理圖設計以及交互式仿真。ARES(AdvancedRoutingandEditingSoftware)——高檔布線和編輯軟件平臺,它用于印制電路板設計,并產(chǎn)生光繪輸出文獻。 在Proteus中,從原理圖設計、單片機編程、系統(tǒng)仿真到PCB設計可以一氣呵成,具備從概念到產(chǎn)品完整設計能力。ProteusISIS工作界面是一種原則Windows界面,如圖所示。涉及:標題欄、主菜單、原則工具欄、繪圖工具欄、狀態(tài)欄、對象選取按鈕、預覽對象方位控制按鈕、仿真進程控制按鈕、預覽窗口、對象選取器窗口、圖形編輯窗口。圖3.2ProteusISIS軟件界面4系統(tǒng)硬件設計擬定了有關模塊功能、功能以及用到器件后,系統(tǒng)做如下連接設計:圖4.1總體硬件電路圖其中各引腳相應端口如下表所示:表4.1單片機引腳與各器件相應表接口相應器件引腳接口相應器件引腳P0.0接LCD1602D0端P2.4空置P0.1接LCD1602D1端P2.5接LCD1602RS端P0.2接LCD1602D2端P2.6接LCD1602R/W端P0.3接LCD1602D3端P2.7接LCD1602E端P0.4接LCD1602D4端P3.0接warm繼電器端接口相應器件引腳接口相應器件引腳P0.5接LCD1602D5端P3.1接cool繼電器端P0.6接LCD1602D6端P3.2接S1按鍵P0.7接LCD1602D7端P3.3接S2按鍵P1.0空置P3.4接S3按鍵P1.1空置P3.5接24C02SCK端P1.2空置P3.6接24C02SDA端P1.3空置P3.7接蜂鳴器報警電路P1.4接步進電機A極XTAL1接晶振時鐘電路P1.5接步進電機B極XPAL2接晶振時鐘電路P1.6接步進電機C極RST接復位電路P1.7接步進電機D極空置P2.0空置ALE空置P2.1空置空置P2.2空置VCC接電源P2.3接DS18B20DQ端GND接地5系統(tǒng)軟件設計5.1DS18B20數(shù)據(jù)通信概述和DS18B20通信,其命令序列有3步:初始化、ROM命令(跟隨需要互換數(shù)據(jù))和功能命令(跟隨需要互換數(shù)據(jù))。每次訪問DS18B20,必要嚴格遵守這個命令時序,如果浮現(xiàn)序列混亂,則單總線則單總線器件不會響應主機。這個準則對于搜索ROM命令和報警搜索命令例外,在執(zhí)行兩者中任何一條命令之后,主機不能執(zhí)行其后功能命令,而必要返回至第一步。1.初始化單總線上所有傳播過程都是以初始化開始,初始化過程由主機發(fā)出復位脈沖和從機響應應答脈沖構(gòu)成,應答脈沖使主機懂得總線上有從機設備且準備就緒。2.ROM命令在主機檢測到應答脈沖后,就可以發(fā)出ROM命令。ROM命令與各個從機設備唯一64位ROM代碼有關,容許主機在單總線上連接各種從機設備時,指定操作某個從機設備。ROM命令還容允許以檢測到總線上有多少個從機設備及其設備類型,或者有無設備處在報警狀態(tài)。(1)搜索ROM[F0h]當系統(tǒng)初始上電時,主機必要找出總線上所有從機設備ROM代碼,這樣主機才可以判斷出從機數(shù)目和類型。主機通過重復執(zhí)行搜索ROM循環(huán)(搜索ROM命令跟隨著位數(shù)據(jù)互換),以找出總線上所有從機設備。如果總線只有一種從機設備,則可以采用讀ROM命令來代替搜索ROM命令。在每次執(zhí)行完搜索ROM循環(huán)后,主機必要返回至命令序列第一步:初始化。(2)讀ROM[33h](僅適合于單節(jié)點)該命令僅合用于總線上只有一種從機設備,它容許主機直接讀出從機64位ROM代碼,而不必執(zhí)行搜索ROM過程。如果該命令用于多節(jié)點,系統(tǒng)則必然發(fā)生數(shù)據(jù)沖突,由于每個從機設備都會響應當命令。(3)匹配ROM[55h]匹配ROM命令跟隨64位ROM代碼,從而容許主機訪問多節(jié)點系統(tǒng)中某個指定從機設備。僅當從機完全匹配64位ROM代碼時,才會響應主機隨后發(fā)出功能命令,其她設備將處在等待復位脈沖狀態(tài)。(4)跳躍ROM[CCh](僅適合于單節(jié)點)主機可以采用該命令同步訪問總線上所有從機設備,而不必發(fā)出任何ROM代碼信息。例如,主機通過在發(fā)出跳越ROM命令后,跟隨轉(zhuǎn)換溫度命令[44h]就可以同步命令總線上所有DS18B20開始轉(zhuǎn)換速度,這樣大大節(jié)約了主機時間。注意:如果跳越ROM命令跟隨是讀操作命令,則該命令只能應用于單節(jié)點系統(tǒng),否則將由于各種節(jié)點都響應當命令而引起數(shù)據(jù)沖突。(5)報警搜索[Ech]除那些設立了報警標志從機響應外,該命令工作方式完全等同于搜索ROM命令,該命令容許主機設備判斷哪些從機設備發(fā)生了報警(如近來測量溫度過高或過低等)。同搜索ROM命令同樣,在完畢報警搜索循環(huán)后,主機必要返回至命令序列第一步。3.功能命令在主機發(fā)出ROM命令,以訪問某個指定DS18B20,接著就可以發(fā)出DS18B20某個功能命令。這些命令容許主機寫入或讀出DS18B20存儲器,啟動溫度轉(zhuǎn)換以及判斷從機供電方式。(1)讀RAM存儲器[BEh]此命令讀RAM存儲器內(nèi)容,開始讀字節(jié)0,并繼續(xù)讀到第九個字節(jié)(CRC)。如果不是所有位置均可讀,那么主機可以再任何時候發(fā)出一復位命令以中斷讀操作。(2)復制RAM存儲器(48h)此命令讀RAM存儲器內(nèi)容,開始讀字節(jié)0,并繼續(xù)讀到第九個字節(jié)(CRC)。如果不是所有位置均可讀,那么主機可以再任何時候發(fā)出一復位命令以中斷讀操作。(3)重新調(diào)出EERAM[B8h]此命令把存儲在EERAM中TH、TL、CONF值重新調(diào)至RAM存儲器。這種重新調(diào)出操作在對DS18B20上電時也自動發(fā)生,因而只要器件一接電,暫存存儲器內(nèi)就有有效數(shù)據(jù)可供使用。(4)讀電源[B4h]在此命令送至DS18B20之后最先發(fā)出讀數(shù)據(jù)時間片,器件都會給其電源方式信號:0=強上拉電阻供電;1=電源供電。(5)寫RAM存儲器[44h]寫數(shù)據(jù)到RAM存儲器,地址為第2、第3、第4字節(jié)(TH、TL、CONF)。(6)溫度變換[44h]此命令開始溫度變換,不需要此外數(shù)據(jù)。溫度變換將被執(zhí)行,接著DS18B20便保持在空閑狀態(tài)。5.2LCD1602液晶數(shù)據(jù)顯示概述5.2.1接口信號闡明表5.1編號符號引腳闡明編號符號引腳闡明1VSS電源地9D2DataI/O2VDD電源正極10D3DataI/O3VL液晶顯示偏壓信號11D4DataI/O4RS數(shù)據(jù)/命令選取端(H/L)12D5DataI/O5R/W讀/寫選取端(H/L)13D6DataI/O6E使能信號14D7DataI/O7D0DataI/O15BLA背光源正極8D1DataI/O16BLK背光源負極5.2.2控制器接口闡明1、基本操作時序讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0~D7=狀態(tài)字寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,E=高電平 輸出:無讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:D0~D7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),E=高脈沖 輸出:無2、狀態(tài)字闡明表5.2STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0STA0-6當前數(shù)據(jù)地址指針數(shù)值STA7讀寫操作時能1:禁止0:容許注:對控制器每次進行讀寫操作前,都必要進行讀寫檢測,保證STA7為03、指令闡明表5.3顯示模式設立指令碼功能00111000設立16×2顯示,5×7點陣,8位數(shù)據(jù)口表5.4初始化設立指令碼功能00001DCBD=1開顯示;D=0關顯示C=1顯示光標;C=0不顯示光標B=1光標閃爍;B=0光標不顯示000001NSN=1當讀或?qū)懸环N字符后地址指針加一,且光標加一N=0當讀或?qū)懸环N字符后地址指針減一,且光標減一S=1當寫一種字符,整屏顯示左移(N=1)或右移(N=0),以得到光標不移動而屏幕移動效果。S=0當寫一種字符,整屏顯示不移動4、數(shù)據(jù)控制控制器內(nèi)部設有一種數(shù)據(jù)地址指針,顧客可通過她們來訪問內(nèi)部所有80字節(jié)RAM。表5.5數(shù)據(jù)指針設立指令碼功能80H+地址碼(0-27H,40H-67H)設立數(shù)據(jù)地址指針5.2.3控制接口時序闡明1.讀操作時序圖5.12.寫操作時序圖5.25.3存儲器24C02數(shù)據(jù)存儲概述5.3.1I2C總線定義1、是PHLIPS公司推出一種兩線制串行總線,簡樸地說,就是用于連接到總線器件間傳遞信息通道。2、是一種多主機總線,具備多主機系統(tǒng)所需涉及總線裁決和高低速器件同步功能高性能串行總線。3、是一種雙向兩線總線,涉及一條串行數(shù)據(jù)線(SDA),一條串行時鐘線(SCL),總線空閑時這兩條線路都是高電平。I2C總線上所有外圍器件均有規(guī)范器件地址,器件地址由7位構(gòu)成。主機發(fā)送地址時,總線上每個從機都將這7位地址碼與自己地址進行比較,如果相似,則以為自己正被主機尋址,依照R/W位將自己擬定為發(fā)送器或接受器。其格式如下:表5.6D7D6D5D4D3D2D1D0DA3DA2DA1DA0A2A1A0R/W其中DA3~DA0是器件地址為廠家設立,A2~A0為引腳地址,最多可連8個,R/W位為數(shù)據(jù)傳播方向控制位。5.3.2I2C總線時序1、只有在總線空閑時才容許啟動數(shù)據(jù)傳送。圖5.3I2C總線時序圖2、在數(shù)據(jù)傳送過程中,當時鐘線為高電平時,數(shù)據(jù)線必要保持穩(wěn)定狀態(tài),不容許有跳變。時鐘線為高電平時,數(shù)據(jù)線任何電平變化將被看做總線起始或停止信號。起始信號:時鐘線保持高電平期間,數(shù)據(jù)線電平從高到低跳變作為I2C總線起始信號。停止信號:時鐘線保持高電平期間,數(shù)據(jù)線電平從低到高跳變作為I2C總線停止信號。5.3.3數(shù)據(jù)傳送I2C總線上數(shù)據(jù)傳送每一幀數(shù)據(jù)均為一字節(jié)。但啟動I2C總線后,傳送字節(jié)數(shù)沒有限制,只規(guī)定每傳送一字節(jié)后,對方回答一種應答位。有關響應時鐘脈沖由主機產(chǎn)生,在響應時鐘脈沖期間發(fā)送器釋放SDA線拉高。作為響應,在時鐘脈沖期間接受器必要將SDA線拉低,使它在這個時鐘脈沖高電平期間保持穩(wěn)定低電平。圖5.4數(shù)據(jù)傳送時序5.4軟件程序設計1、模塊流程圖 1.1主程序模塊流程圖(圖5.5) 1.2DS18B20通訊模塊流程圖(圖5.6) 1.3鍵掃描模塊流程圖(圖5.7)圖5.5主程序流程圖圖5.6DS18B20通訊模塊流程圖圖5.7鍵掃描模塊流程圖6仿真及實驗成果6.1程序調(diào)試過程中遇到問題及解決辦法1.較小硬件開銷需要相對復雜軟件進行補償,由于DS18B20與微解決器采用串行數(shù)據(jù)傳送,因而,在對DS18B20進行讀寫編程時,必要嚴格保證讀寫時序,否則將無法讀取測溫成果。2.在DS18B20測溫程序設計中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20返回信號,一旦某個DS18B20接觸不好或斷線,當程序讀該DS18B20時,將沒有返回信號,程序進入死循環(huán)。這一點在進行DS1820硬件連接和軟件設計時也要予以一定注重。3.編程時要注意,在程序開始時,要寫入各定期器中斷入口地址。4.編程過程中要注意加注釋或分割線,否則,在程序過長時容易變得很亂,不便于查找或更改。5.程序構(gòu)造要設計合理,避免上下亂調(diào)用現(xiàn)象,這樣會使程序更加清晰化。6.編程前要加流程圖,這樣會使思路清晰。6.2調(diào)試成果圖6.1開發(fā)板上顯示成果圖6.2仿真電路及成果圖6.3開發(fā)板上實驗成果
總結(jié)近三個月畢業(yè)設計即將結(jié)束,這意味著咱們大學生活也要結(jié)束了,但我學習沒有結(jié)束,在本次設計中,我所學過理論知識接受了實踐檢查,增強了我綜合運用所學知識能力及動手能力,為后來學習工作打下了良好基本。本設計使用AT80C52作為主控芯片進行控制,單片機具備集成度高,通用性好,功能強,特別是體積小,重量輕,耗能低可靠性高,抗干擾能力強和使用以便等獨特長處,在數(shù)字、智能化方面有廣泛用途。其中溫度控制系統(tǒng)采用DS18B20“一線總線”數(shù)字化溫度傳感器,支持“一線總線”接口,大大提高了系統(tǒng)抗干擾性測量溫度范疇為-55℃到+125℃,在-10到+85℃范疇內(nèi),精度為±0.5℃。并且體積小價格實惠,溫度設定采用按鍵設定,風速控制則由步進電機轉(zhuǎn)速控制得以實現(xiàn),軟件算法采用設定值和測量值相比較算法。在單片機應用基本上,實現(xiàn)了一種用帶有EEPROMAT89C52單片機控制傳感器自動化溫度監(jiān)控系統(tǒng)。最后敬請各位專家、教師和同窗對論文和此后研究工作提出寶貴指引意見和建議。
道謝在幾種月學習研究中,課題受到了許多教師和同窗熱心關注和支持。她們對空調(diào)溫度控制系統(tǒng)研究開發(fā)提出了寶貴意見,并在物質(zhì)和精神上予以了大力支持。在我即將結(jié)束對課題研究時,整個系統(tǒng)硬件和軟件系統(tǒng)已初步成型,并通過了實驗,這與支持我教師和同窗關懷是分不開。衷心感謝我導師教師,正是由于黃宇教師悉心指引和諄諄教誨,我設計才得以順利完畢。黃教師淵博知識、豐富科研經(jīng)驗、不計名利、兢兢業(yè)業(yè)治學精神使我受益非淺。她無私奉獻高貴品質(zhì)和平易近人長者作風,使我在學習科學知識同步也學會了做人道理。至此論文完畢之際,謹向教師表達由衷感謝。特別感謝我父母,無論我在順境還是逆境,她們始終是我最堅強后盾,感謝她們對我近年培養(yǎng)和支持。最后感謝所有曾經(jīng)勉勵過我,協(xié)助過我人們。
參照文獻姜志海,黃玉清,劉連鑫.單片機原理及應用(第2版)[M].電子工業(yè)出版社,.魏澤鼎.單片機應用技術(shù)與實例[M].電子工業(yè)出版社,.宋亞偉.基于DS18B29溫度控制采集系統(tǒng)[J].機電工程技術(shù),,37(09):89-91.齊建家,胡天明.基于DS18B20數(shù)字溫度設計及其應用[J].黑龍江工程學院學報,,22(2):59-62.張洪潤,張亞凡.單片機原理及應用[M].清華大學出版社,.李玉峰.MCS-51系列單片機原理與接口技術(shù)[M].人民郵電出版社,.馬忠梅.單片機C語言應用程序設計[M].北京航空航天大學出版社,.附件1系統(tǒng)硬件電路圖附件2系統(tǒng)軟件程序/************************************************文獻名 :溫度采集DS18B20.C*描述 :實現(xiàn)用溫度傳感器DS18B20對溫度采集 并用1602液晶顯示*創(chuàng)立人 :楊耀武*教師 :黃宇***********************************************/#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#definejump_ROM0xcc#definestart0x44#defineread_EEROM0xbesbitscl=P3^5; //24c02SCLsbitsda=P3^6; //24c02SDAsbitDQ=P2^3; //DS18B20數(shù)據(jù)口sbitE=P2^7; //1602使能引腳sbitRW=P2^6; //1602讀寫引腳sbitRS=P2^5; //1602數(shù)據(jù)/命令sbitbeep=P3^7; //蜂鳴器報警sbits1=P3^2; //功能選取按鍵sbits2=P3^3; //溫度加sbits3=P3^4; //溫度減sbitwarm=P3^0; //升溫繼電器sbitcool=P3^1; //降溫繼電器ucharTMPH,TMPL,Count1,Count2,T,xie,s1num,s2num,s3num,BusyC;uinttemp,speed;ucharcodetable1[] ={"SETTINGT:22'C"};ucharcodetable2[]={"SP:LT:.-'C"};ucharcodedistab[]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};uchardatadisplay[]={0x00,0x00,0x00,0x00,0x00};ucharcodeF_Rotation[]={0x20,0x60,0x40,0xc0,0x80,0x90,0x10,0x30};//正轉(zhuǎn)表格ucharx24c02_read(ucharaddress);voidx24c02_write(ucharaddress,ucharinfo);voidkeyscan(void);//軟件延時/************************************************名稱:flash()*功能:延時大概為2US*輸入:無*輸出:無***********************************************/voidflash(void){ _nop_(); _nop_();}/************************************************名稱:delay_16us(uintA)單位us*功能:當使用11.0592MHz晶振時候調(diào)用大概要耗時24 us,每次計數(shù)耗時約為16us*輸入:要延時時間(Ax16)*輸出:無***********************************************/voiddelay_16us(uintN){ inti; for(i=0;i<N;i++);}/************************************************名稱:delay_1ms(uintA)單位us*功能:當使用11.0592MHz晶振時候每次計數(shù)延時約1ms*輸入:要延時時間ams*輸出:無***********************************************/voiddelay_1ms(uinta){ inti,j; for(i=a;i>0;i--) for(j=110;j>0;j--);}//定期器延時/************************************************名稱:Time1_Init()*功能:定期器初始化,11.0592MZ晶振,10ms*輸入:無*輸出:無***********************************************/voidTime1_Init(){ TMOD=0x10; IE =0x88; TH0=0xb8; TL0=0x00; }/************************************************名稱:Time1_Int()*功能:定期器中斷,中斷中實現(xiàn)Count加一*輸入:無*輸出:無***********************************************/voidTime1_Int()interrupt3{ TH0=0xb8; TL0=0x00; Count2++; if(Count2==50) { Count2=0; xie=1; //20ms寫一次 } }//DS18B20測溫顯示/************************************************名稱:Reset()*功能:復位DS18B20*輸入:無*輸出:無***********************************************/ucharReset(void){ ucharreceive_data; DQ=0; //把DQ拉低 delay_16us(29); //持續(xù)480us DQ=1; //使DQ回高 delay_16us(3); //等存在脈沖 receive_data=DQ; //得存在脈沖 delay_16us(25); return(receive_data);//返回時隙信號}/************************************************名稱:read_bit讀一位*功能:從DS18B20讀一種位值*輸入:無*輸出:一位位值***********************************************/ucharread_bit(void){ uchari; DQ=0; //讀開始 DQ=1; for(i=0;i<3;i++); //延時約15us return(DQ);}/************************************************名稱:write_bit()寫一位*功能:向DS18B20寫一種位值*輸入:bitval(要對DS18B20寫入位值)*輸出:無***********************************************/voidwrite_bit(ucharbitval){ DQ=0; //拉低DQ開始寫時隙 if(bitval==1) //若寫1就拉高DQ,否則反之 DQ=1; delay_16us(5); //延時采樣 DQ=1;}/************************************************名稱:read_byte()讀一字節(jié)*功能:從DS18B20讀一種字節(jié)值*輸入:無*輸出:讀到一種字節(jié)值***********************************************/ucharread_byte(void){ uchari,j,receive_data8; j=1; receive_data8=0; for(i=0;i<8;i++) { if(read_bit()) { receive_data8=receive_data8+(j<<i); } delay_16us(6); } return(receive_data8);}/************************************************名稱:write_byte()寫一字節(jié)*功能:向DS18B20寫一種字節(jié)值*輸入:val(要對DS18B20寫入命令值)*輸出:無***********************************************/voidwrite_byte(uintval){ uchari,temp; for(i=0;i<8;i++) { temp=val>>i; //分8次實現(xiàn)寫操作 temp=temp&0x01; //只保存末位,實現(xiàn)bit輸入 write_bit(temp); delay_16us(5); }}/************************************************名稱:tmp()*功能:獲得十進制溫度值*輸入:無*輸出:display[]***********************************************/voidtmp(void){ ucharn; n=0; Reset(); write_byte(jump_ROM); write_byte(start); Reset(); write_byte(jump_ROM); write_byte(read_EEROM); TMPL=read_byte(); TMPH=read_byte(); if(TMPH>127) { TMPH=(255-TMPH); TMPL=(255-TMPL+1); n=1; } display[4]=TMPL&0x0f; display[0]=distab[display[4]]; display[4]=((TMPL&0xf0)>>4)|((TMPH&0x0f)<<4); display[3]=(display[4]/100); display[2]=(display[4]%100)/10; display[1]=(display[4]%100)%10; if(n) display[3]=0x2d;}//1602液晶顯示/************************************************名稱:enable_1602()*功能:1602命令輸入*輸入:命令值*輸出:無***********************************************/voidenable_1602(uchara){ P0=a; RS=0; RW=0; E=0; delay_1ms(20); E=1; delay_1ms(20);}/************************************************名稱:write_1602()*功能:1602數(shù)據(jù)寫入*輸入:寫入數(shù)據(jù)*輸出:無***********************************************/voidwrite_1602(uchara){ P0=a; RS=1; RW=0; E=0; delay_1ms(20); E=1; delay_1ms(20);}/************************************************名稱:L1602_init()*功能:初始化1602*輸入:無*輸出:無***********************************************/voidL1602_init(void){ ucharnum,i; enable_1602(0x01); //清屏 enable_1602(0x38); //初始化5x7顯示 enable_1602(0x0c); //開或關光標設立 enable_1602(0x06); //地址指針加1 enable_1602(0x80); for(num=0;num<14;num++) { write_1602(table1[num]); delay_1ms(5); } enable_1602(0xc0); for(num=0;num<7;num++) { write_1602(table2[num]); delay_1ms(5); } for(i=3;i>0;i--) { write_1602(0x30+display[i]); delay_1ms(5); } write_1602(table2[10]); delay_1ms(5); write_1602(0x30+display[0]); delay_1ms(5); for(num=12;num<14;num++) { write_1602(table2[num]); delay_1ms(5); }}/************************************************名稱:L1602_char(ucharhang,ucharlie,ucharsign)*功能:變化液晶中某位值,如果要讓第一行,第五個 字符顯示"b",調(diào)用該函數(shù)如:L1602_char(1,5,'b')*輸入:行,列,要輸入1602數(shù)據(jù)*輸出:無***********************************************/voidL1602_char(ucharhang,ucharlie,ucharsign){ uchara; if(hang==1)a=0x80; if(hang==2) a=0xc0; a=a+lie-1; //設立數(shù)據(jù)指針 enable_1602(a); write_1602(sign);}/************************************************名稱:L1602_string(ucharhang,ucharlie,uchar*p)*功能:變化液晶中某位值*輸入:行,列,要輸入1602數(shù)據(jù)*輸出:無***********************************************/voidL1602_string(ucharhang,ucharlie,uchardate){ uchara; ucharshi,ge; shi=date/10; ge=date%10; if(hang==1)a=0x80; if(hang==2) a=0xc0; a=a+lie-1; enable_1602(a); write_1602(0x30+shi); write_1602(0x30+ge);}/************************************************名稱:write_display()*功能:顯示當前溫度*輸入:無*輸出:無***********************************************/voidwrite_display(void){ enable_1602(0xc0+7); write_1602(0x30+display[3]); write_1602(0x30+display[2]); write_1602(0x30+display[1]); enable_1602(0xc0+7+4); write_1602(0x30+display[0]);}//24C02數(shù)據(jù)儲存/************************************************名稱:x24c02_init()*功能:24c02初始化子程序*輸入:無*輸出:無***********************************************/voidx24c02_init(void){ scl=1;flash();sda=1;flash();}/************************************************名稱:start_24c02()*功能:啟動I2C總線*輸入:無*輸出:無***********************************************/voidstart_24c02(void){ sda=1;flash();scl=1;flash();sda=0;flash();scl=0;flash();}/************************************************名稱:stop_24c02()*功能:停止I2C總線*輸入:無*輸出:無***********************************************/voidstop_24c02(){ sda=0;flash();scl=1;flash();sda=1;flash();}/************************************************名稱:write_24c02()*功能:寫一種字節(jié)*輸入:寫入值*輸出:無***********************************************/voidwrite_24c02(ucharj){ uchari,k; k=j; for(i=0;i<8;i++) { k=k<<1;scl=0;flash();sda=CY;flash(); scl=1;flash(); } scl=0;flash();sda=1;flash();}/************************************************名稱:read_24c02()*功能:讀一種字節(jié)*輸入:無*輸出:讀出值***********************************************/ucharread_24c02(void){ uchari,j,k=0;scl=0;flash();sda=1; for(i=0;i<8;i++) { flash();scl=1;flash();if(sda==1) j=1; elsej=0; k=(k<<1)|j;scl=0; } flash();return(k);}/************************************************名稱:I2C_clock()*功能:I2C總線時鐘*輸入:無*輸出:無***********************************************/voidI2C_clock(void){ uchari=0;scl=1;flash(); while((sda==1)&&(i<255)) { i++;} scl=0;flash();}/************************************************名稱:x24c02_read()*功能:從24c02中讀出值*輸入:address(要在這個地址讀取值)*輸出:從24c02中讀出值***********************************************/ucharx24c02_read(ucharaddress){ uchari;start_24c02(); write_24c02(0xa0);I2C_clock(); write_24c02(address);I2C_clock(); start_24c02(); write_24c02(0xa1);I2C_clock(); i=read_24c02();stop_24c02(); delay_16us(10);return(i);}/************************************************名稱:x24c02_write()*功能:想24c02中寫入數(shù)據(jù)*輸入:address(地址),info(值)*輸出:無***********************************************/voidx24c02_write(ucharaddress,ucharinfo){ EA=0;start_24c02(); write_24c02(0xa0); I2C_clock();write_24c02(address); I2C_clock();write_24c02(info); I2C_clock();stop_24c02(); EA=1;delay_16us(50);}//報警/************************************************名稱:alert(ucharsign)*功能:報警電路*輸入:設立溫度值*輸出:調(diào)節(jié)后溫度值***********************************************/voidalert(ucharsign){ uchari,j; while((sign==27)|(sign==17)) { for(j=0;j<3;j++) { for(i=0;i<200;i++)//喇叭發(fā)聲時間循環(huán) { delay_16us(80);//參數(shù)決定發(fā)聲頻率,估算值 beep=!beep; } be
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年日照貨運資格證試題及答案
- 2025年阿勒泰駕駛資格證模擬考試
- 2025年甘肅貨運從業(yè)資格證年考試題及答案
- 2025年銅仁從業(yè)資格證模擬考試題貨運考題
- 監(jiān)理工程師考試合同(2篇)
- 電力實時監(jiān)測合同(2篇)
- 2024-2025學年高中生物第3章第1節(jié)細胞膜-系統(tǒng)的邊界練習含解析新人教版必修1
- 華師大版數(shù)學七年級下冊《多邊形的外角和》聽評課記錄3
- 學生暑假實習總結(jié)
- 幼兒園中班月工作總結(jié)月工作總結(jié)
- 現(xiàn)代漢語詞匯學精選課件
- PCB行業(yè)安全生產(chǎn)常見隱患及防范措施課件
- 上海音樂學院 樂理試題
- SAP中國客戶名單
- DB32∕T 186-2015 建筑消防設施檢測技術(shù)規(guī)程
- 2022年福建泉州中考英語真題【含答案】
- 汽車座椅骨架的焊接夾具畢業(yè)設計說明書(共23頁)
- 露天礦山職業(yè)危害預先危險分析表
- 淺談固定資產(chǎn)的審計
- WZCK-20系列微機直流監(jiān)控裝置使用說明書(v1.02)
- 模糊推理方法
評論
0/150
提交評論