基于51單片機(jī)的智能熱水器控制系統(tǒng).._第1頁
基于51單片機(jī)的智能熱水器控制系統(tǒng).._第2頁
基于51單片機(jī)的智能熱水器控制系統(tǒng).._第3頁
基于51單片機(jī)的智能熱水器控制系統(tǒng).._第4頁
基于51單片機(jī)的智能熱水器控制系統(tǒng).._第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余21頁可下載查看

下載本文檔

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

文檔簡介

1、摘要IABSTRACTII引言1.1智能熱水器控制系統(tǒng)的總體設(shè)計(jì)方案1.1.1 方案的分析與選擇1.1.2 系統(tǒng)總體設(shè)計(jì)概述2.1.3 各功能模塊介紹3.1.3.1 控制模塊3.1.3.2 顯示模塊3.1.3.3 輸入模塊4.1.3.4 其它模塊5.1.4 本章小結(jié)6.2硬件電路的設(shè)計(jì)與實(shí)現(xiàn)6.1 單片機(jī)最小系統(tǒng)硬件電路設(shè)計(jì).6.1 顯示模塊硬件電路設(shè)計(jì)7.1 溫度傳感器DS18B20電路設(shè)計(jì)71 電子式水位開關(guān)硬件電路設(shè)計(jì)8.1 時(shí)鐘芯片電路設(shè)計(jì)8.1 聲光報(bào)警電路設(shè)計(jì)9.1 按鍵設(shè)置模塊電路設(shè)計(jì).101 電源和開關(guān)模塊設(shè)計(jì)1.01 本章小結(jié)1.13熱水器控制系統(tǒng)的軟件設(shè)計(jì)與算法實(shí)現(xiàn)111.

2、1.3 軟件總體流程圖1.11.2.3 顯示模塊程序設(shè)計(jì)1.21 寫命令子函數(shù)1.21 寫數(shù)據(jù)子函數(shù)1.31.3.3 溫度傳感器模塊程序設(shè)計(jì)141.4.3 時(shí)鐘芯片相關(guān)程序設(shè)計(jì).141.5.3 按鍵設(shè)置程序設(shè)計(jì)151.6.3 主程序和中斷服務(wù)程序設(shè)計(jì)151.7.3 本章小結(jié)164測試、總結(jié)與評價(jià)1.6軟件平臺(tái)仿真測試1.6面包板電路搭建測試1.7系統(tǒng)方案總結(jié)與評價(jià)175結(jié)束語17參考文獻(xiàn)19致謝20基于51單片機(jī)的智能熱水器控制系統(tǒng)摘要隨著科技的進(jìn)步和人們生活水平的不斷提高,熱水器越來越普遍地走進(jìn)千家萬戶,給人們的生活帶來了極大的方便。同時(shí),人們對熱水器的智能化和安全性都提出了更高的要求。這就

3、要求熱水器具有一個(gè)智能控制系統(tǒng),能夠自動(dòng)獲取當(dāng)前水溫和水位信息,判斷實(shí)際溫度與預(yù)設(shè)溫度關(guān)系,從而實(shí)現(xiàn)加熱的自動(dòng)控制。本文提出了一種基于51單片機(jī)的智能熱水器控制系統(tǒng)的解決方案,該方案采用DS18B20單線數(shù)字溫度傳感器來對水溫進(jìn)行檢測,使用DS1302時(shí)鐘芯片實(shí)現(xiàn)計(jì)數(shù)和定時(shí)功能,同時(shí)加入了水位判斷和報(bào)警設(shè)計(jì)。用戶通過按鍵和顯示屏來完成系統(tǒng)的參數(shù)設(shè)置,從而實(shí)現(xiàn)定時(shí)加熱、自動(dòng)恒溫等功能。關(guān)鍵詞:單片機(jī),熱水器,控制,DS18B20Theintelligentwaterheatercontrolsystembasedon51singlechipmicrocomputerAbstractWiththe

4、progressofscienceandtechnologyandthecontinuousimprovementofpeople'slivingstandard,thewaterheaterismoreandmorewidelyintothethousands,hasbroughtgreatconveniencetopeople'slife.Atthesametime,peoplealsohopethatthewaterheaterisnotjustsimplybyswitchorbuttoncommands,toheatwater,alsocanaccordingtothe

5、peoplesetthetemperatureoftheautomaticconstanttemperature,timing,heating,automaticjudgmentfunctionsuchaswaterlevel,thewaterheaterofintelligenceandsecurityareputforwardhigherrequirements.Thisrequiresawaterheaterhasaintelligentcontrolsystem,canautomaticallyaccesstocurrentinformation,watertemperatureand

6、waterleveldeterminetheactualtemperatureandthepresettemperaturerelations,soastorealizetheautomaticcontrolofheating.Thispaperputsforwardakindofintelligentwaterheatercontrolsystembasedon51singlechipsolution,theschemeadoptsDS18B20singlelinedigitaltemperaturesensortotestthewatertemperature,usingDS1302clo

7、ckchiprealizecountingandtimingfunctions,atthesametimejoinedthewaterjudgmentandalarmdesign.Theuserthroughthebuttonsandscreentocompletethesystemparametersetting,soastorealizethefunctionsuchastiming,automaticconstanttemperatureheating.KeyWords:singlechipmicrocomputer,waterheater,control,DS18B20引言隨著人們對生

8、活質(zhì)量的要求不斷提高,熱水器逐漸成為了城市居民生活的一個(gè)不可或缺的東西。經(jīng)過多年的發(fā)展和技術(shù)積累,整個(gè)熱水器行業(yè)也不斷涌現(xiàn)出新的產(chǎn)品,熱水器的種類也越來越多,從最初的燃?xì)鉄崴饕患要?dú)大,到現(xiàn)在的燃?xì)鉄崴鳌㈦姛崴?、太陽能熱水器等多種熱水器都有一定的市場占有率。在熱水器的使用效果上,功能也越來越豐富,使用更加人性化,甚至結(jié)合最新的智能家居和物聯(lián)網(wǎng)理念,智能化程度大大提高,給人們的生活帶來了極大的方便?,F(xiàn)在的熱水器向著安全、節(jié)能、穩(wěn)定、高效、人性化的方向快速發(fā)展著。單片機(jī)是一種微控制器,體積小、功耗低、通過編程和外圍電路設(shè)計(jì),可以完成多種智能控制任務(wù)。隨著單片機(jī)技術(shù)的迅速發(fā)展,越來越多的家用電器

9、采用各種型號的單片機(jī)為控制核心,來完成和人類的交互,并通過相應(yīng)的程序和內(nèi)部運(yùn)算,實(shí)現(xiàn)一些智能化的控制,使家用電器的操作更加人性化,控制更加智能化。在熱水器中,也廣泛采用了單片機(jī)作為控制核心,通過相應(yīng)的溫度傳感器,在熱水器的溫度控制上達(dá)到了更高的精度,完成了從最初的旋鈕調(diào)節(jié)逐漸向數(shù)字化調(diào)節(jié)方向轉(zhuǎn)變。同時(shí),通過不同的傳感器,由單片機(jī)控制并指示熱水器的各種工作狀態(tài),在發(fā)生缺水、水溫過熱等情況時(shí)及時(shí)向用戶給出聲光報(bào)警,從而防止發(fā)生意外,保障了用戶的安全。本文所提出的智能熱水器控制系統(tǒng),以51系列單片機(jī)為控制核心,通過溫度傳感器、水位傳感器感知熱水器狀態(tài),并通過按鍵、顯示屏和用戶進(jìn)行人機(jī)交互,實(shí)現(xiàn)了定時(shí)

10、加熱、自動(dòng)恒溫的功能,同時(shí)也有過熱、缺水的報(bào)警設(shè)計(jì),給用戶帶來方便。本設(shè)計(jì)具有成本低、實(shí)用性強(qiáng)、溫度控制精度高的特點(diǎn)。1智能熱水器控制系統(tǒng)的總體設(shè)計(jì)方案本設(shè)計(jì)所提到的智能熱水器控制系統(tǒng)主要是實(shí)現(xiàn)對溫度的自動(dòng)控制、定時(shí)加熱控制和智能報(bào)警的功能,因此,智能熱水器控制系統(tǒng)主要分為控制模塊、顯示模塊、信息輸入模塊、加熱模塊、聲光報(bào)警模塊等幾部分構(gòu)成。方案的分析與選擇對于主控芯片,本方案選擇最簡單的8位51系列的單片機(jī),性能可靠,成本低,完全可以滿足本系統(tǒng)的要求。而且由于51系列的單片機(jī)在電子相關(guān)專業(yè)中的基礎(chǔ)性地位,對其使用和編程都比較熟練,可以極大縮短開發(fā)周期,更好地完成設(shè)計(jì)任務(wù)。對于顯示模塊,LED

11、液晶顯示屏、LCD1602字符型液晶、LCD12864點(diǎn)陣型液晶三者都是簡單的、小型的顯示器件,均可完成顯示任務(wù)。LED液晶顯示的內(nèi)容過于簡單,LCD1284更適合顯示圖像類信息,而LCD1602非常適合顯示少量的、豐富的字符信息。因此,選擇LCD1602字符型液晶。對于輸入模塊,分為用戶信息輸入和傳感器信息輸入。用戶信息輸入方面,使用按鍵進(jìn)行輸入要比旋鈕更容易控制,用戶也更易于接受,通過設(shè)置相應(yīng)的調(diào)節(jié)按鍵,可以十分精確地定位到用戶所希望達(dá)到的溫度。當(dāng)然,按鍵也有機(jī)械按鍵、電容按鍵等許多不同的種類,因?yàn)楸鞠到y(tǒng)處于實(shí)驗(yàn)調(diào)試階段,故選取最簡單的機(jī)械按鍵。傳感器信息輸入分為兩個(gè)部分,第一部分是溫度信

12、息輸入,使用溫度傳感器,用于告訴單片機(jī)當(dāng)前的水溫,實(shí)現(xiàn)溫度的自動(dòng)控制;第二部分是水位信息輸入,使用水位傳感器,用來告訴單片機(jī)水量信息,達(dá)到缺水報(bào)警的目的。溫度傳感器一般有熱敏電阻和數(shù)字式溫度傳感器DS18B20可供選擇。熱敏電阻的可靠性差,且輸出的是模擬量,需要進(jìn)行相應(yīng)的A/D轉(zhuǎn)換后才能輸入,比較麻煩,而相比之下,數(shù)字式溫度傳感器測溫范圍寬、以單線串行方式與單片機(jī)進(jìn)行通信,節(jié)約了單片機(jī)的I/O口資源,且直接輸出數(shù)字量,外圍電路簡單,因此最符合要求。水位信息輸入只需考慮是否是缺水狀態(tài),因此只要對是否缺水給出一個(gè)電平信息即可,直接封裝一個(gè)斷觸電點(diǎn),一端接地,當(dāng)有水時(shí),單片機(jī)對應(yīng)端口被拉低,無水時(shí)端

13、口電平被拉高,來完成是否缺水的判斷即可。同時(shí),為了實(shí)現(xiàn)精確的定時(shí)加熱功能,引入專門的時(shí)鐘芯片DS1302進(jìn)行計(jì)時(shí),為單片機(jī)提供日期和時(shí)間基準(zhǔn)。為了保證使用者的安全,加入聲光報(bào)警提示模塊,在加熱、缺水時(shí)給出提示。系統(tǒng)總體設(shè)計(jì)概述本系統(tǒng)采用51系列單片機(jī)為控制核心,以DS18B20單線數(shù)字式溫度傳感器獲取溫度信息,采用DS1302時(shí)鐘芯片為單片機(jī)提供日期基準(zhǔn),顯示方面采用LCD1602液晶顯示屏,以機(jī)械按鍵的形式供用戶輸入,設(shè)置當(dāng)前的系統(tǒng)時(shí)間、定時(shí)加熱的開始時(shí)間、水溫設(shè)定等,來完成整個(gè)控制器的控制工作。系統(tǒng)整體的結(jié)構(gòu)框圖如下圖1.1所示。5V電源模塊單片機(jī)及其最小系統(tǒng)及電源接口聲光報(bào)警模塊溫度傳感

14、器模塊水位傳感器模塊圖1.1系統(tǒng)整體框圖各功能模塊介紹要順利完成整個(gè)系統(tǒng)的設(shè)計(jì)工作,就要對所采用的各個(gè)模塊的元器件進(jìn)行具體的選型,并通過元器件的數(shù)據(jù)手冊、操作說明的資料,詳細(xì)地了解各個(gè)元器件的性能、操作方法、硬件連接要求的內(nèi)容??刂颇K本設(shè)計(jì)采用的主控芯是51系列的單片機(jī)處理器STC89C52RC,這是一款采用了CMOS工藝進(jìn)行生產(chǎn)的8位處理器,該處理器具有相當(dāng)可靠的工作性能,正常工作的功耗極低,而且有著相當(dāng)豐富的系統(tǒng)資源,片內(nèi)的程序存儲(chǔ)空間達(dá)到了4K、具有512字節(jié)的RAM空間,可以滿足大多數(shù)的程序要求。指令系統(tǒng)完全兼容傳統(tǒng)的8051單片機(jī)內(nèi)核,有2K+的EEPROM存儲(chǔ)空間。要建立完整的控

15、制模塊,還要為單片機(jī)配置其最小系統(tǒng)的外圍電路,主要包括晶振和復(fù)位電路,單片機(jī)才能正常的工作。顯示模塊本設(shè)計(jì)所采用的LCD1602液晶顯示屏,是一種小型的、集成度很高的液晶顯示屏,可以顯示字母、數(shù)字、符號等,其特點(diǎn)是功耗低、體積小、輕薄、模塊化,而且由于其自帶字符庫,在顯示方面的實(shí)現(xiàn)上只需要按照要求對其進(jìn)行初始化、設(shè)定相關(guān)的顯示位置和顯示內(nèi)容即可,操作簡單。作為一個(gè)集成化的顯示模塊,具相應(yīng)的管腳的具體定義可以查閱操作手冊獲取,而與單片機(jī)的具體連接方式將在硬件設(shè)計(jì)部分詳細(xì)介紹。如下圖1.2所示為LCD1602的控制器接口的時(shí)序說明,在液晶的初始化、讀寫操作的相關(guān)的編程中,要參考該時(shí)序圖,結(jié)合單片機(jī)

16、晶振的選取情況作出必要調(diào)整,只有正確的時(shí)序才能保證單片機(jī)給出正確的控制指令。圖1.2字符型液晶LCD1602的讀寫操作時(shí)序圖LCD1602自帶字符庫,這就在很大程度上方便了用戶的開發(fā),同時(shí)也節(jié)省了單片機(jī)的程序存儲(chǔ)空間,不需要在程序中對字符的顯示進(jìn)行定義。如下圖1.3所示。圖1.3字符型液晶LCD1602的字符庫輸入模塊對于單片機(jī)而言,要對其進(jìn)行一定是設(shè)置,就必須要有用戶進(jìn)行相關(guān)的指令輸入,單片機(jī)要對熱水器的熱水溫度狀態(tài)和是否缺水進(jìn)行感知,要有相關(guān)的傳感器進(jìn)行信號輸入。輸入模塊分別為用戶指令輸入、溫度數(shù)據(jù)輸入和是否缺水的信號輸入。指令輸入由4個(gè)獨(dú)立按鍵完成,溫度輸入由DS18B20來完成,是否缺

17、水的信號由電子式水位開關(guān)提供。指令輸入模塊采用4個(gè)獨(dú)立按鍵完成。獨(dú)立按鍵的觸發(fā)方式為低電平有效,在平時(shí)的系統(tǒng)開啟狀態(tài)下,單片機(jī)相應(yīng)端口保持高電平狀態(tài),當(dāng)按鍵被按下,獨(dú)立按鍵兩端連通,然后接地,單片機(jī)的相應(yīng)的連接端口的電平被地線拉低,從而能夠被單片機(jī)捕捉到按鍵動(dòng)作。4個(gè)獨(dú)立按鍵分別是設(shè)定鍵、鍵值增加、鍵值減小、確認(rèn)這個(gè)4個(gè)功能定義,通過這4個(gè)按鍵,結(jié)合軟件和算法編程,進(jìn)行按鍵狀態(tài)掃描,然后對相應(yīng)的鍵值動(dòng)作設(shè)定正確的響應(yīng)邏輯,就能夠?yàn)橛脩籼峁┩暾膮?shù)設(shè)置功能。溫度輸入模塊主要采用的是一種數(shù)字式集成單線溫度傳感器,型號為DS18B20O圖1.4數(shù)字式單線溫度傳感器DS18B20封裝及引腳圖在DS1

18、8B20的芯片手冊中,閱讀單線傳輸協(xié)議的時(shí)序要求,如下圖1.5所示。圖1.5DS18B20的讀寫操作時(shí)序水位信號輸入選擇電子式水位開關(guān)BZ2401,供電電壓范圍在5V-24V,有三根線,電源線、地線和信號線。該產(chǎn)品通過內(nèi)置芯片檢測水位信號,由內(nèi)部芯片處理,當(dāng)判斷到有水時(shí),芯片輸出與電源電壓相同的高電平,當(dāng)判斷到無水時(shí),芯片輸出0V,產(chǎn)品正常供電后,與單片機(jī)通過數(shù)據(jù)線和地線連接。其它模塊為了實(shí)現(xiàn)準(zhǔn)確的定時(shí)功能,本系統(tǒng)采用了專門的時(shí)鐘芯片DS1302,來提供詳細(xì)的日期和時(shí)間基準(zhǔn)。同時(shí),設(shè)置3個(gè)LED燈和蜂鳴器,組成其聲光提示和報(bào)警模塊。DS1302是一款涓流充電時(shí)鐘保持芯片,由DALLAS公司出品

19、,可以通過簡單的串口同單片機(jī)進(jìn)行通信,芯片內(nèi)部有自己的獨(dú)立時(shí)鐘電路和一個(gè)31字節(jié)的靜態(tài)RAM,能夠向單片機(jī)提供詳細(xì)的時(shí)鐘信息,如日期年月日,時(shí)間時(shí)分秒等,對于每月的天數(shù)和閏年能夠自動(dòng)進(jìn)行處理,保證日期記錄的準(zhǔn)確性。在硬件連接上,其使用三個(gè)數(shù)據(jù)線同單片機(jī)的相應(yīng)端口進(jìn)行連接,分別為復(fù)位、數(shù)據(jù)和串行時(shí)鐘。其芯片正常工作的功率極低,在日期時(shí)間數(shù)據(jù)的保持和記錄時(shí)消耗的功率不足1mW。具封裝形式和管腳定義如下圖1.6所示。DS13028-PINDIP(300MIL)管腳描述XLX232.76WKHz晶沙仁泮,腳GND地RST復(fù)位腳I/O數(shù)據(jù)輸入/輸出引腳SCLK串行時(shí)鐘Vccl,Vcc2電源供電管腳圖1.

20、6DS1302的封裝和管腳定義在使用時(shí),該芯片要外接32.768KHZ的晶振,需要簡單的外圍電路。如下圖1.7所示為其一種典型的應(yīng)用電路。圖1.7一種典型的DS1302應(yīng)用電路圖聲光報(bào)警模塊所采用的LED燈和小型的蜂鳴器就比較常見,電路特性也很容易掌握,在LED燈的使用時(shí),要注意選擇合適的顏色,同時(shí)要根據(jù)最大電流限制,加上合適的限流電阻,從而保護(hù)LED燈工作在正常的電壓電流條件下。蜂鳴器的驅(qū)動(dòng)無法靠單片機(jī)的端口直接完成,要使用相應(yīng)型號的三極管進(jìn)行放大,如9012、8550等型號,通過三極管驅(qū)動(dòng)蜂鳴器,才能正常發(fā)聲。本章小結(jié)本章對系統(tǒng)的總體方案進(jìn)行了設(shè)計(jì),同時(shí)詳細(xì)確定了系統(tǒng)所應(yīng)該具有的功能模塊,

21、對控制模塊、顯示模塊、輸入模塊等模塊的主要實(shí)現(xiàn)方案和元器件的選擇方案進(jìn)行了分析與比較,從而確定了系統(tǒng)所需要使用的各個(gè)元器件。同時(shí),根據(jù)元器件的資料和數(shù)據(jù)手冊,對主要元器件的硬件連接、使用和操作方法進(jìn)行了重點(diǎn)研究,為硬件電路的搭建和軟件編程提供了基礎(chǔ)。2硬件電路的設(shè)計(jì)與實(shí)現(xiàn)單片機(jī)最小系統(tǒng)硬件電路設(shè)計(jì)單片機(jī)最小系統(tǒng)包括晶振、復(fù)位電路等。單片機(jī)內(nèi)部已經(jīng)具有時(shí)鐘震蕩電路,因此,我們搭建單片機(jī)最小系統(tǒng),只需要在其XTAL1和XTAL2兩個(gè)引腳之間加入反饋電路,就可以讓單片機(jī)得到時(shí)鐘信號。一般的反饋電路就是石英晶體振蕩器和兩個(gè)30uf的旁路電容,電容值的大小是根據(jù)其晶振頻率高低進(jìn)行調(diào)整的。在單片機(jī)的最小系

22、統(tǒng)的電路中,石英晶體振蕩器的頻率越高,單片機(jī)內(nèi)部時(shí)鐘信號的周期就越短,單片機(jī)的指令執(zhí)行速度就越快。本設(shè)計(jì)中在單片機(jī)時(shí)鐘頻率的設(shè)置方面采用12MHz,同時(shí)對單片機(jī)的復(fù)位引腳設(shè)置相應(yīng)的復(fù)位按鍵,以供用戶在必要的時(shí)候?qū)纹瑱C(jī)進(jìn)行重啟操作。對于本系統(tǒng)的各個(gè)傳感器接口,也要進(jìn)行引出,以供各個(gè)傳感器、電源、數(shù)據(jù)線接口使用。最小系統(tǒng)可以在萬用板上手工搭建,也可以直接使用PCB板上焊接好的成品模塊,具硬件原理圖如下圖2.1所示。、口E1、k口"1X上j、SELT4TZKTTfD<、_tn1Ett3-iroaX<7X_餐krisjTTiinxjJXI3SCK1,t/ilanCT-IT1H后

23、1j4LA國20Pi.oPi.iP1.2PLSPlJPLSPL6Pi.7RSTRXDiPJ.OTXD.T3J叵亙Tn而立PaTW3JT1T3.5甌P3石BD.P3.7XTAL2XTAL1Vss.VccPO-.DPG,IPO.2POlIP&JPft7EAVppALEZPggG再示6543210P2P2.P2P2,P2.P2P2P2.10429h272bHEAL"CHECK24ERROR23譚afE良2?】XJBBEEP圖2.1單片機(jī)最小系統(tǒng)及其接口電路設(shè)計(jì)顯示模塊硬件電路設(shè)計(jì)本設(shè)計(jì)選用字符型液晶LCD1602為顯示器件,將LCD1602的數(shù)據(jù)引腳都接入單片機(jī)的P0端口,即P0.

24、0P0.7分別對應(yīng)地和1602顯示屏的8根數(shù)據(jù)線DB0DB7相連接。如圖2.2所示,特殊功能端RS、RW、E通過網(wǎng)絡(luò)標(biāo)號,分別接P1.0,P1.1和P1.2。模塊的VEE端可以調(diào)節(jié)顯示模塊顯示字符的亮度和對比度,在實(shí)際電路中采用10K歐姆藍(lán)白臥式可調(diào)電阻102,通過擰動(dòng),可以改變顯示字符的效果2.3溫度傳感器DS18B20溫度傳感器與單片機(jī)的連接比較簡單,直接將其數(shù)據(jù)線連接到單片機(jī)的P2.1端口上,即網(wǎng)絡(luò)標(biāo)號DQ,電源和地線也連接到單片機(jī)主板上,同時(shí)數(shù)據(jù)線用電源電壓通過4.7K的電阻上拉。圖2.3溫度傳感器及其接口電路設(shè)計(jì)電子式水位開關(guān)硬件電路設(shè)計(jì)缺水判斷由電子式水位開關(guān)完成,有水時(shí)輸出高電平

25、,無水時(shí)輸出低電平。高電平等于電源電壓,因此其供電選擇為5V,數(shù)據(jù)線和地線接入單片機(jī)主板,如下圖2.4所示,網(wǎng)絡(luò)標(biāo)號WATER對應(yīng)單片機(jī)的P2.2端口。時(shí)鐘芯片電路設(shè)計(jì)時(shí)鐘芯片DS1302的RST、SCLK和I/O三個(gè)端口與單片機(jī)相連,進(jìn)行數(shù)據(jù)交換,如下圖2.5所示,網(wǎng)絡(luò)標(biāo)號分別為RST、SCK和。分別與單片機(jī)的P3.7、P3.5和P3.6相連,實(shí)現(xiàn)與單片機(jī)的通信。通過參考DS1302時(shí)鐘芯片的經(jīng)典電路設(shè)計(jì)方案,設(shè)計(jì)本系統(tǒng)所需要電路結(jié)構(gòu)。DS1302具有涓流充電功能,可以設(shè)置雙電源,其中VCC1為備用電源,在電路中另外引出,接一塊型號為CR2302的紐扣電池。VCC2在主板上直接取電。在X1和

26、X2兩個(gè)引腳之間接入32.768KHz的晶振,為芯片提供基本時(shí)鐘信號聲光報(bào)警電路設(shè)計(jì)報(bào)警電路分為燈光報(bào)警和聲音報(bào)警,用于對系統(tǒng)的各種需要報(bào)警的狀態(tài)進(jìn)行響應(yīng),并通過聲音和燈光對用戶進(jìn)行提示。如下圖2.6所示為聲音報(bào)警模塊電路設(shè)計(jì),蜂鳴器使用與單片機(jī)相同的+5V電源,使用三極管9013進(jìn)行控制,集電極接單片機(jī)端口,網(wǎng)絡(luò)標(biāo)號為BEEP對應(yīng)單片機(jī)的P2.0端口。燈光報(bào)警和提示選用高亮度高壽命的LED燈,共陽極接法,單片機(jī)給出低電平點(diǎn)亮。設(shè)置3個(gè)LED燈,串接510歐姆電阻,D1用于指示加熱狀態(tài);D2用來指示水位狀態(tài);D3用來指示溫度過熱狀態(tài)。這三個(gè)燈分別接單片機(jī)的端口P2.5、P2.4和P2.3來完成

27、相關(guān)的功能。按鍵設(shè)置模塊電路設(shè)計(jì)本系統(tǒng)的時(shí)鐘設(shè)置、溫度設(shè)置都需要通過按鍵來完成,采用4個(gè)獨(dú)立按鍵的設(shè)計(jì),一端接地,按下后將單片機(jī)的端口電平拉低,由單片機(jī)完成按鍵動(dòng)作的捕捉。功能定義為設(shè)置鍵、確定鍵、值增加鍵和值減小鍵,網(wǎng)絡(luò)標(biāo)號分別為SELT、ENTER、UP和DOWN,對應(yīng)接單片機(jī)的P1.3、P1.4、P1.5和P1.6四個(gè)端口。電源和開關(guān)模塊設(shè)計(jì)本系統(tǒng)的外接+5V電源工作,為了控制方便,加入電源總開關(guān),同時(shí)使用一個(gè)LED燈指示電源狀態(tài)。在電源與地線之間并聯(lián)兩個(gè)濾波電容,濾除電源紋波。本章小結(jié)本章主要在PROTEL99SE的軟件環(huán)境下完成了電路硬件原理圖的設(shè)計(jì),通過對主要元器件電氣特性的研究,

28、合理、規(guī)范、安全地構(gòu)建了系統(tǒng)功能實(shí)現(xiàn)的硬件平臺(tái)。3熱水器控制系統(tǒng)的軟件設(shè)計(jì)與算法實(shí)現(xiàn)軟件設(shè)計(jì)是整個(gè)系統(tǒng)的靈魂,優(yōu)秀、可靠的軟件設(shè)計(jì)能夠充分發(fā)揮硬件的資源,并能夠出色完成系統(tǒng)的預(yù)期功能。軟件系統(tǒng)主要的設(shè)計(jì)思路如下:1、在系統(tǒng)打開后,顯示當(dāng)前的系統(tǒng)時(shí)間信息和水溫信息,如果水溫低于設(shè)定值則開始加熱;如果水溫高于設(shè)定值或狀態(tài)為缺水就進(jìn)行聲光報(bào)警。2、響應(yīng)按鍵操作。當(dāng)用戶按下設(shè)置鍵時(shí),進(jìn)入功能選擇菜單,功能選擇菜單有三個(gè),第一個(gè)是設(shè)置時(shí)間,第二個(gè)是設(shè)置定時(shí)加熱開始的時(shí)間和結(jié)束的時(shí)間,第三個(gè)是設(shè)置溫度范圍的上限和下限。在軟件程序的設(shè)計(jì)中,充分體現(xiàn)了模塊化的設(shè)計(jì)思想,整個(gè)軟件系統(tǒng)主要包括了整體初始化函數(shù)、L

29、CD1602基礎(chǔ)函數(shù)、DS18B20基礎(chǔ)函數(shù)、DS1302基礎(chǔ)函數(shù)、按鍵掃描設(shè)置策略基礎(chǔ)函數(shù)幾個(gè)大的部分,然后在主程序中進(jìn)行相關(guān)模塊的函數(shù)調(diào)用,如傳感器狀態(tài)讀取、溫度智能判斷、報(bào)警處理策略、鍵盤掃描等,完成系統(tǒng)所預(yù)期的操作功能。軟件總體流程圖開始圖3.1軟件系統(tǒng)總體流程圖顯示模塊程序設(shè)計(jì)顯示模塊程序主要包括初始化、寫命令子函數(shù)、寫數(shù)據(jù)子函數(shù)都是其重要的基礎(chǔ)功能函數(shù),因此都要在軟件系統(tǒng)程序設(shè)計(jì)的底層庫中進(jìn)行包含。LCD設(shè)置參數(shù)及端口定義sbitrs=P1A0;/LCD1602sbitrw=P1Al;/LCD1602sbite=P1A2;/LCD1602寫命令子函數(shù)1602的操作需要對其進(jìn)行命令輸

30、入,它有自己的指令庫。而對于這些命令的寫入,需要編寫特定的寫命令子函數(shù)。寫指令函數(shù)voidwrite_com(ucharcom)(rw=0;delay1(5);rs=0;delay1(5);e=1;delay1(5);P0=com;delay1(5);e=0;delay1(5);其中delay1為編寫的延時(shí)函數(shù),如下所示:voiddelay1(uintz)延時(shí)函數(shù)(uintx,y;for(x=z;x>0;x-)for(y=10;y>0;y-);寫數(shù)據(jù)子函數(shù)對命令進(jìn)行寫入之后,緊接著就要進(jìn)行所要顯示的字符數(shù)據(jù)的輸入,通過寫數(shù)據(jù)子函數(shù)來完成。voidwrite_dat(uchardat

31、)(rs=1;/選擇寫數(shù)據(jù)rw=0;P0=dat;e=1;delay(5);/無延時(shí)不能正常工作e=0;根據(jù)以上兩個(gè)基本函數(shù),來編寫1602的初始化函數(shù)、顯示字符串函數(shù)、顯示兩位十進(jìn)制數(shù)字函數(shù),完成在時(shí)間設(shè)定、溫度設(shè)定的過程中進(jìn)行的各種顯示,如以下為時(shí)間顯示部分的程序代碼。voidTime_Display(void)(read_rtc();Date_dispaly(0x80+0x40+12,time_data6);顯示秒Date_dispaly(0x80+0x40+9,time_data5);顯示分Date_dispaly(0x80+0x40+6,time_data4);顯示時(shí)Date_dis

32、paly(0x80+14,time_data3);顯示日Date_dispaly(0x80+11,time_data2);顯示月Week_dispaly(0x80+0x40+15,time_data1);/顯示周Date_dispaly(0x80+8,time_data0);顯示年/Year/10*16+Year%10Hour=time_data4/16*10+time_data4%16;Minute=time_data5/16*10+time_data5%16;Second=time_data6/16*10+time_data6%16;除此之外,還要編寫在進(jìn)行時(shí)間設(shè)定過程中和在溫度設(shè)定過程中

33、要顯示的內(nèi)容,結(jié)合用戶的輸入,設(shè)置合適的光標(biāo)顯示處理。溫度傳感器模塊程序設(shè)計(jì)溫度傳感器的端口定義在P2.1端口。sbitDQ=P2A1;在溫度傳感器的基礎(chǔ)函數(shù)設(shè)計(jì)里邊,主要是進(jìn)行溫度獲取和處理,讀取溫度的函數(shù)包括讀整數(shù)部分和讀小數(shù)部分,通過對DS18B20的數(shù)據(jù)格式進(jìn)行解析,編寫合適的讀取溫度子函數(shù)。主要基礎(chǔ)函數(shù)設(shè)計(jì)包括模塊初始化函數(shù)、單線串行傳輸協(xié)議延時(shí)函數(shù)、總線協(xié)議配置、字節(jié)數(shù)據(jù)發(fā)送、字節(jié)數(shù)據(jù)接收等多個(gè)部分。在主程序中對這些函數(shù)進(jìn)行調(diào)用,配合LCD顯示函數(shù),來完成對溫度顯示、判斷等多種功能。時(shí)鐘芯片相關(guān)程序設(shè)計(jì)時(shí)鐘芯片的數(shù)據(jù)傳輸定義在單片機(jī)的P3.5、P3.6和P3.7這三個(gè)端口。sbit

34、sck=P3A5;/時(shí)鐘端口sbitio=P3A6;時(shí)鐘端口sbitrst=P3A7;時(shí)鐘端口在DS1302相關(guān)的程序設(shè)計(jì)中,主要就是對芯片的寫入數(shù)據(jù)和讀取數(shù)據(jù)的函數(shù)進(jìn)行編寫,然后再編寫相應(yīng)的日期設(shè)定函數(shù)。使用write_ds1302_byt函數(shù)進(jìn)行數(shù)據(jù)準(zhǔn)備工作,使用write_ds1302函數(shù)對數(shù)據(jù)進(jìn)行寫入,使用read_ds1302函數(shù)對時(shí)間數(shù)據(jù)進(jìn)行讀出,使用set_rtc函數(shù)對時(shí)間進(jìn)行設(shè)置。按鍵設(shè)置程序設(shè)計(jì)按鍵設(shè)置程序主要是按鍵掃描策略,因?yàn)榘存I掃描和定義邏輯比較復(fù)雜,不僅要識(shí)別按下按鍵的次數(shù)、哪個(gè)按鍵,還要配合LCD顯示函數(shù),對不同的鍵值和狀態(tài)進(jìn)行顯示,并通過控制LCD1602的光標(biāo)位

35、置與開閉,提示用戶進(jìn)行設(shè)置。按鍵掃描和設(shè)置程序單獨(dú)做成一個(gè)子函數(shù),在主程序中循環(huán)調(diào)用。在進(jìn)行按鍵編程操作中,因?yàn)槭褂玫氖菣C(jī)械按鍵,會(huì)存在抖動(dòng)的現(xiàn)象,造成檢測不準(zhǔn)確或按下次數(shù)誤判,一般采用軟件去抖的方式,即通過延時(shí)的方式,保證單片機(jī)讀取到的鍵值的準(zhǔn)確性。按鍵定義為4個(gè),分別是設(shè)置鍵、確認(rèn)鍵、鍵值增加和鍵值減小。使用變量SELT表示設(shè)置鍵狀態(tài),同時(shí)設(shè)定一個(gè)全局變量Select_num記錄設(shè)置鍵被按下的次數(shù),不同的次數(shù)就對應(yīng)著不同的設(shè)置功能,根據(jù)按鍵功能設(shè)定,設(shè)置鍵按下的次數(shù)為1時(shí),光標(biāo)指向設(shè)置時(shí)間功能,同時(shí)標(biāo)記進(jìn)入調(diào)節(jié)模式;當(dāng)按下次數(shù)為2時(shí),光標(biāo)指向設(shè)置定時(shí)功能;當(dāng)按下次數(shù)為3時(shí),光標(biāo)指向設(shè)置溫度

36、功能;當(dāng)按下次數(shù)為4時(shí),取消標(biāo)記調(diào)節(jié)模式,并回到正常模式。使用變量ENTER表示確認(rèn)鍵的狀態(tài),同時(shí)使用Enter_num記錄該鍵被按下的次數(shù)。對于Enter_num的每一個(gè)取值,都要首先檢查變量Select_num的值,來判斷處于哪有功能設(shè)定的模式下,進(jìn)而顯示不同的內(nèi)容,并控制光標(biāo)的移動(dòng)。并根據(jù)不同功能模式下按下確認(rèn)鍵的次數(shù),判斷系統(tǒng)當(dāng)前要修改的數(shù)據(jù)是哪一個(gè),該不該結(jié)束調(diào)試,返回正常狀態(tài)。通過設(shè)置鍵和確認(rèn)鍵按下次數(shù)的排列組合,構(gòu)建了系統(tǒng)在調(diào)試模式下的每一個(gè)具體的調(diào)試狀態(tài),也就是說Select_num和Enter_num值的組合就確定了當(dāng)前調(diào)整的數(shù)據(jù)。對于鍵值增加和鍵值減小的按鍵,當(dāng)這兩個(gè)按鍵按

37、下時(shí),使用if條件判斷Select_num和Enter_num值的組合情況,執(zhí)行相應(yīng)的數(shù)據(jù)增加1或者是數(shù)據(jù)減小1的操作。由于鍵盤檢測循環(huán)進(jìn)行,連續(xù)按增加或減小按鍵可以起到連續(xù)調(diào)節(jié)的效果。同時(shí),注意每一個(gè)數(shù)據(jù)的范圍,防止設(shè)置超出范圍。主程序和中斷服務(wù)程序設(shè)計(jì)主程序中主要包含各個(gè)功能函數(shù)的調(diào)用。在程序運(yùn)行開始,對各個(gè)模塊、端口和定時(shí)器初始化操作,然后進(jìn)入循環(huán)結(jié)構(gòu)。循環(huán)結(jié)構(gòu)中通過標(biāo)志位判斷系統(tǒng)處于調(diào)節(jié)模式還是正常模式,并不斷執(zhí)行鍵盤掃描函數(shù)。正常模式下執(zhí)行溫度顯示和時(shí)間顯示,調(diào)用報(bào)警模塊的子函數(shù),進(jìn)行溫度、水位狀態(tài)的檢測和判斷。在程序中設(shè)置了相應(yīng)的判斷標(biāo)志位,通過這些變量值的判斷來確定是否達(dá)到報(bào)警條件。水溫低于設(shè)定溫度則開啟加熱指示燈,高于設(shè)定溫度則報(bào)警,如果缺水的話,也進(jìn)行報(bào)警。中斷服務(wù)程序主要使用了定時(shí)器中斷,使用定時(shí)器T0定時(shí)50ms,并在其中斷服務(wù)程序中進(jìn)行計(jì)數(shù),為系統(tǒng)的正常模式下的顯示數(shù)據(jù)更新提供時(shí)間基準(zhǔn)。本章小結(jié)本章主

溫馨提示

  • 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

提交評論