基于51單片機(jī)的智能熱水器控制系統(tǒng)(共24頁)_第1頁
基于51單片機(jī)的智能熱水器控制系統(tǒng)(共24頁)_第2頁
基于51單片機(jī)的智能熱水器控制系統(tǒng)(共24頁)_第3頁
基于51單片機(jī)的智能熱水器控制系統(tǒng)(共24頁)_第4頁
基于51單片機(jī)的智能熱水器控制系統(tǒng)(共24頁)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目 錄摘 要.IABSTRACT .II引言.11 智能熱水器控制系統(tǒng)的總體設(shè)計(jì)方案.11.1 方案的分析與選擇.11.2 系統(tǒng)總體設(shè)計(jì)概述.21.3 各功能模塊介紹.31.3.1 控制模塊.31.3.2 顯示模塊.31.3.3 輸入模塊.51.3.4 其它模塊.61.4 本章小結(jié).82 硬件電路的設(shè)計(jì)與實(shí)現(xiàn).82.1 單片機(jī)最小系統(tǒng)硬件電路設(shè)計(jì).82.2 顯示模塊硬件電路設(shè)計(jì).82.3 溫度傳感器 DS18B20 電路設(shè)計(jì).92.4 電子式水位開關(guān)硬件電路設(shè)計(jì).102.5 時(shí)鐘芯片電路設(shè)計(jì).102.6 聲光報(bào)警電路設(shè)計(jì).112.7 按鍵設(shè)置模塊電路設(shè)計(jì).112.8 電源和開關(guān)模塊設(shè)計(jì).122

2、.9 本章小結(jié).123 熱水器控制系統(tǒng)的軟件設(shè)計(jì)與算法實(shí)現(xiàn).123.1 軟件總體流程圖.133.2 顯示模塊程序設(shè)計(jì).143.2.1 寫命令子函數(shù).143.2.2 寫數(shù)據(jù)子函數(shù).143.3 溫度傳感器模塊程序設(shè)計(jì).153.4 時(shí)鐘芯片相關(guān)程序設(shè)計(jì).163.5 按鍵設(shè)置程序設(shè)計(jì).163.6 主程序和中斷服務(wù)程序設(shè)計(jì).173.7 本章小結(jié).174 測(cè)試、總結(jié)與評(píng)價(jià).174.1 軟件平臺(tái)仿真測(cè)試.174.2 面包板電路搭建測(cè)試.184.3 系統(tǒng)方案總結(jié)與評(píng)價(jià).195 結(jié)束語.19參考文獻(xiàn).20致 謝.21I基于 51 單片機(jī)的智能熱水器控制系統(tǒng)摘 要隨著科技的進(jìn)步和人們生活水平的不斷提高,熱水器越來

3、越普遍地走進(jìn)千家萬戶,給人們的生活帶來了極大的方便。同時(shí),人們對(duì)熱水器的智能化和安全性都提出了更高的要求。這就要求熱水器具有一個(gè)智能控制系統(tǒng),能夠自動(dòng)獲取當(dāng)前水溫和水位信息,判斷實(shí)際溫度與預(yù)設(shè)溫度關(guān)系,從而實(shí)現(xiàn)加熱的自動(dòng)控制。本文提出了一種基于 51 單片機(jī)的智能熱水器控制系統(tǒng)的解決方案,該方案采用 DS18B20 單線數(shù)字溫度傳感器來對(duì)水溫進(jìn)行檢測(cè),使用 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ī),熱水器,控制,DS18B20IIThe intelligent water

4、heater control system based on 51 single chip microcomputer Abstract With the progress of science and technology and the continuous improvement of peoples living standard, the water heater is more and more widely into the thousands, has brought great convenience to peoples life.At the same time, peo

5、ple also hope that the water heater is not just simply by switch or button commands, to heat water, also can according to the people set the temperature of the automatic constant temperature, timing, heating, automatic judgment function such as water level, the water heater of intelligence and secur

6、ity are put forward higher requirements.This requires a water heater has a intelligent control system, can automatically access to current information, water temperature and water level determine the actual temperature and the preset temperature relations, so as to realize the automatic control of h

7、eating.This paper puts forward a kind of intelligent water heater control system based on 51 single chip solution, the scheme adopts DS18B20 single line digital temperature sensor to test the water temperature, using DS1302 clock chip realize counting and timing functions, at the same time joined th

8、e water judgment and alarm design.The user through the buttons and screen to complete the system parameter setting, so as to realize the function such as timing, automatic constant temperature heating.Key Words:single chip microcomputer, water heater, control, DS18B201引言隨著人們對(duì)生活質(zhì)量的要求不斷提高,熱水器逐漸成為了城市居民

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

10、交互,并通過相應(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í)加熱、自動(dòng)恒溫的功能,同時(shí)也有過熱、缺水的

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

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

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

14、低,無水時(shí)端口電平被拉高,來完成是否缺水的判斷即可。同時(shí),為了實(shí)現(xiàn)精確的定時(shí)加熱功能,引入專門的時(shí)鐘芯片 DS1302 進(jìn)行計(jì)時(shí),為單片機(jī)提供日期和時(shí)間基準(zhǔn)。為了保證使用者的安全,加入聲光報(bào)警提示模塊,在加熱、缺水時(shí)給出提示。1.2 系統(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 所示。35V 電源模塊

15、1602 顯示單片機(jī)及其最小系統(tǒng)及電源接口溫度傳感器模塊水位傳感器模塊聲光報(bào)警模塊按鍵輸入時(shí)鐘電路圖 1.1 系統(tǒng)整體框圖1.3 各功能模塊介紹要順利完成整個(gè)系統(tǒng)的設(shè)計(jì)工作,就要對(duì)所采用的各個(gè)模塊的元器件進(jìn)行具體的選型,并通過元器件的數(shù)據(jù)手冊(cè)、操作說明的資料,詳細(xì)地了解各個(gè)元器件的性能、操作方法、硬件連接要求的內(nèi)容。1.3.1 控制模塊本設(shè)計(jì)采用的主控芯是 51 系列的單片機(jī)處理器 STC89C52RC,這是一款采用了 CMOS 工藝進(jìn)行生產(chǎn)的 8 位處理器,該處理器具有相當(dāng)可靠的工作性能,正常工作的功耗極低,而且有著相當(dāng)豐富的系統(tǒng)資源,片內(nèi)的程序存儲(chǔ)空間達(dá)到了 4K、具有 512 字節(jié)的 R

16、AM 空間,可以滿足大多數(shù)的程序要求。指令系統(tǒng)完全兼容傳統(tǒng)的 8051 單片機(jī)內(nèi)核,有 2K+的 EEPROM 存儲(chǔ)空間。要建立完整的控制模塊,還要為單片機(jī)配置其最小系統(tǒng)的外圍電路,主要包括晶振和復(fù)位電路,單片機(jī)才能正常的工作。1.3.2 顯示模塊本設(shè)計(jì)所采用的 LCD1602 液晶顯示屏,是一種小型的、集成度很高的液晶顯示屏,可以顯示字母、數(shù)字、符號(hào)等,其特點(diǎn)是功耗低、體積小、輕薄、模塊化,而且由于其自帶字符庫,在顯示方面的實(shí)現(xiàn)上只需要按照要求對(duì)其進(jìn)行初始化、設(shè)定相關(guān)的顯示位置和顯示內(nèi)容即可,操作簡單。作為一個(gè)集成化的顯示模塊,其相應(yīng)的管腳的具體定義可以查閱操作手冊(cè)獲取,而與單片機(jī)的具體連接

17、方式將在硬件設(shè)計(jì)部分詳細(xì)介紹。如下圖 1.2 所示為 LCD1602 的控制器接口的時(shí)序說明,在液晶的初始化、4讀寫操作的相關(guān)的編程中,要參考該時(shí)序圖,結(jié)合單片機(jī)晶振的選取情況作出必要調(diào)整,只有正確的時(shí)序才能保證單片機(jī)給出正確的控制指令。圖 1.2 字符型液晶 LCD1602 的讀寫操作時(shí)序圖LCD1602 自帶字符庫,這就在很大程度上方便了用戶的開發(fā),同時(shí)也節(jié)省了單片機(jī)的程序存儲(chǔ)空間,不需要在程序中對(duì)字符的顯示進(jìn)行定義。如下圖 1.3所示。圖 1.3 字符型液晶 LCD1602 的字符庫1.3.3 輸入模塊對(duì)于單片機(jī)而言,要對(duì)其進(jìn)行一定是設(shè)置,就必須要有用戶進(jìn)行相關(guān)的指令輸入,單片機(jī)要對(duì)熱水

18、器的熱水溫度狀態(tài)和是否缺水進(jìn)行感知,要有相關(guān)的傳感器進(jìn)行信號(hào)輸入。輸入模塊分別為用戶指令輸入、溫度數(shù)據(jù)輸入和是否缺水的信號(hào)輸入。指令輸入由 4 個(gè)獨(dú)立按鍵完成,溫度輸入由 DS18B20 來完成,是否缺水的信號(hào)由電子式水位開關(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)掃描

19、,然后對(duì)相應(yīng)的鍵值動(dòng)作設(shè)定正確的響應(yīng)邏輯,就能夠?yàn)橛脩籼峁┩暾膮?shù)設(shè)置功能。溫度輸入模塊主要采用的是一種數(shù)字式集成單線溫度傳感器,型號(hào)為DS18B20。圖 1.4 數(shù)字式單線溫度傳感器 DS18B20 封裝及引腳圖在 DS18B20 的芯片手冊(cè)中,閱讀單線傳輸協(xié)議的時(shí)序要求,如下圖 1.5 所示。圖 1.5 DS18B20 的讀寫操作時(shí)序水位信號(hào)輸入選擇電子式水位開關(guān) BZ2401,供電電壓范圍在 5V-24V,有三根線,電源線、地線和信號(hào)線。該產(chǎn)品通過內(nèi)置芯片檢測(cè)水位信號(hào),由內(nèi)部5芯片處理,當(dāng)判斷到有水時(shí),芯片輸出與電源電壓相同的高電平,當(dāng)判斷到無水時(shí),芯片輸出 0V,產(chǎn)品正常供電后,與單

20、片機(jī)通過數(shù)據(jù)線和地線連接。1.3.4 其它模塊為了實(shí)現(xiàn)準(zhǔn)確的定時(shí)功能,本系統(tǒng)采用了專門的時(shí)鐘芯片 DS1302,來提供詳細(xì)的日期和時(shí)間基準(zhǔn)。同時(shí),設(shè)置 3 個(gè) LED 燈和蜂鳴器,組成其聲光提示和報(bào)警模塊。DS1302 是一款涓流充電時(shí)鐘保持芯片,由 DALLAS 公司出品,可以通過簡單的串口同單片機(jī)進(jìn)行通信,芯片內(nèi)部有自己的獨(dú)立時(shí)鐘電路和一個(gè) 31 字節(jié)的靜態(tài) RAM,能夠向單片機(jī)提供詳細(xì)的時(shí)鐘信息,如日期年月日,時(shí)間時(shí)分秒等,對(duì)于每月的天數(shù)和閏年能夠自動(dòng)進(jìn)行處理,保證日期記錄的準(zhǔn)確性。在硬件連接上,其使用三個(gè)數(shù)據(jù)線同單片機(jī)的相應(yīng)端口進(jìn)行連接,分別為復(fù)位、數(shù)據(jù)和串行時(shí)鐘。其芯片正常工作的功率

21、極低,在日期時(shí)間數(shù)據(jù)的保持和記錄時(shí)消耗的功率不足 1mW。其封裝形式和管腳定義如下圖 1.6 所示。圖 1.6 DS1302 的封裝和管腳定義在使用時(shí),該芯片要外接 32.768KHz 的晶振,需要簡單的外圍電路。如下圖 1.7 所示為其一種典型的應(yīng)用電路。圖 1.7 一種典型的 DS1302 應(yīng)用電路圖聲光報(bào)警模塊所采用的 LED 燈和小型的蜂鳴器就比較常見,電路特性也很6容易掌握,在 LED 燈的使用時(shí),要注意選擇合適的顏色,同時(shí)要根據(jù)最大電流限制,加上合適的限流電阻,從而保護(hù) LED 燈工作在正常的電壓電流條件下。蜂鳴器的驅(qū)動(dòng)無法靠單片機(jī)的端口直接完成,要使用相應(yīng)型號(hào)的三極管進(jìn)行放大,如

22、 9012、8550 等型號(hào),通過三極管驅(qū)動(dòng)蜂鳴器,才能正常發(fā)聲。1.4 本章小結(jié)本章對(duì)系統(tǒng)的總體方案進(jìn)行了設(shè)計(jì),同時(shí)詳細(xì)確定了系統(tǒng)所應(yīng)該具有的功能模塊,對(duì)控制模塊、顯示模塊、輸入模塊等模塊的主要實(shí)現(xiàn)方案和元器件的選擇方案進(jìn)行了分析與比較,從而確定了系統(tǒng)所需要使用的各個(gè)元器件。同時(shí),根據(jù)元器件的資料和數(shù)據(jù)手冊(cè),對(duì)主要元器件的硬件連接、使用和操作方法進(jìn)行了重點(diǎn)研究,為硬件電路的搭建和軟件編程提供了基礎(chǔ)。2 硬件電路的設(shè)計(jì)與實(shí)現(xiàn)2.1 單片機(jī)最小系統(tǒng)硬件電路設(shè)計(jì)單片機(jī)最小系統(tǒng)包括晶振、復(fù)位電路等。單片機(jī)內(nèi)部已經(jīng)具有時(shí)鐘震蕩電路,因此,我們搭建單片機(jī)最小系統(tǒng),只需要在其 XTAL1 和 XTAL2

23、兩個(gè)引腳之間加入反饋電路,就可以讓單片機(jī)得到時(shí)鐘信號(hào)。一般的反饋電路就是石英晶體振蕩器和兩個(gè) 30uf 的旁路電容,電容值的大小是根據(jù)其晶振頻率高低進(jìn)行調(diào)整的。在單片機(jī)的最小系統(tǒng)的電路中,石英晶體振蕩器的頻率越高,單片機(jī)內(nèi)部時(shí)鐘信號(hào)的周期就越短,單片機(jī)的指令執(zhí)行速度就越快。本設(shè)計(jì)中在單片機(jī)時(shí)鐘頻率的設(shè)置方面采用 12MHz,同時(shí)對(duì)單片機(jī)的復(fù)位引腳設(shè)置相應(yīng)的復(fù)位按鍵,以供用戶在必要的時(shí)候?qū)纹瑱C(jī)進(jìn)行重啟操作。對(duì)于本系統(tǒng)的各個(gè)傳感器接口,也要進(jìn)行引出,以供各個(gè)傳感器、電源、數(shù)據(jù)線接口使用。最小系統(tǒng)可以在萬用板上手工搭建,也可以直接使用 PCB 板上焊接好的成品模塊,其硬件原理圖如下圖 2.1 所示

24、。7圖 2.1 單片機(jī)最小系統(tǒng)及其接口電路設(shè)計(jì)2.2 顯示模塊硬件電路設(shè)計(jì)本設(shè)計(jì)選用字符型液晶 LCD1602 為顯示器件,將 LCD1602 的數(shù)據(jù)引腳都接入單片機(jī)的 P0 端口,即 P0.0P0.7 分別對(duì)應(yīng)地和 1602 顯示屏的 8 根數(shù)據(jù)線DB0DB7 相連接。如圖 2.2 所示,特殊功能端 RS、RW、E 通過網(wǎng)絡(luò)標(biāo)號(hào),分別接 P1.0,P1.1 和 P1.2。模塊的 VEE 端可以調(diào)節(jié)顯示模塊顯示字符的亮度和對(duì)比度,在實(shí)際電路中采用 10K 歐姆藍(lán)白臥式可調(diào)電阻 102,通過擰動(dòng),可以改變顯示字符的效果。圖 2.2 顯示模塊及其接口電路設(shè)計(jì)2.3 溫度傳感器 DS18B20 電路

25、設(shè)計(jì)8DS18B20 溫度傳感器與單片機(jī)的連接比較簡單,直接將其數(shù)據(jù)線連接到單片機(jī)的 P2.1 端口上,即網(wǎng)絡(luò)標(biāo)號(hào) DQ,電源和地線也連接到單片機(jī)主板上,同時(shí)數(shù)據(jù)線用電源電壓通過 4.7K 的電阻上拉。圖 2.3 溫度傳感器及其接口電路設(shè)計(jì)2.4 電子式水位開關(guān)硬件電路設(shè)計(jì)缺水判斷由電子式水位開關(guān)完成,有水時(shí)輸出高電平,無水時(shí)輸出低電平。高電平等于電源電壓,因此其供電選擇為 5V,數(shù)據(jù)線和地線接入單片機(jī)主板,如下圖 2.4 所示,網(wǎng)絡(luò)標(biāo)號(hào) WATER 對(duì)應(yīng)單片機(jī)的 P2.2 端口。圖 2.4 電子式水位開關(guān)接口電路設(shè)計(jì)2.5 時(shí)鐘芯片電路設(shè)計(jì)時(shí)鐘芯片 DS1302 的 RST、SCLK 和 I

26、/O 三個(gè)端口與單片機(jī)相連,進(jìn)行數(shù)據(jù)交換,如下圖 2.5 所示,網(wǎng)絡(luò)標(biāo)號(hào)分別為 RST、SCK 和 IO,分別與單片機(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 為備用電源,在電路中另外引出,接一塊型號(hào)為9CR2302 的紐扣電池。VCC2 在主板上直接取電。在 X1 和 X2 兩個(gè)引腳之間接入 32.768KHz 的晶振,為芯片提供基本時(shí)鐘信號(hào)。圖 2.5 時(shí)鐘芯片電路設(shè)計(jì)2.6 聲光報(bào)警電路設(shè)計(jì)報(bào)警電路分為燈光報(bào)警和聲音報(bào)警,用于對(duì)

27、系統(tǒng)的各種需要報(bào)警的狀態(tài)進(jìn)行響應(yīng),并通過聲音和燈光對(duì)用戶進(jìn)行提示。如下圖 2.6 所示為聲音報(bào)警模塊電路設(shè)計(jì),蜂鳴器使用與單片機(jī)相同的+5V電源,使用三極管 9013 進(jìn)行控制,集電極接單片機(jī)端口,網(wǎng)絡(luò)標(biāo)號(hào)為 BEEP 對(duì)應(yīng)單片機(jī)的 P2.0 端口。圖 2.6 蜂鳴器電路設(shè)計(jì)燈光報(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 來完成相關(guān)的功能。10圖 2.7 指示燈電路設(shè)計(jì)2.7 按鍵

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

29、EL99SE 的軟件環(huán)境下完成了電路硬件原理圖的設(shè)計(jì),通過對(duì)主要元器件電氣特性的研究,合理、規(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è)置溫度范圍的上限和下限。

30、在軟件程序的設(shè)計(jì)中,充分體現(xiàn)了模塊化的設(shè)計(jì)思想,整個(gè)軟件系統(tǒng)主要包括了整體初始化函數(shù)、LCD1602 基礎(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 軟件總體流程圖12開始LCD 顯示屏、1302 時(shí)鐘芯片、定時(shí)器、獨(dú)立按鍵、溫度傳感器、各種端口初始化正常模式?調(diào)用時(shí)間顯示函數(shù)0.5s 時(shí)間到?調(diào)用溫度讀取函數(shù)溫度顯示函數(shù)調(diào)用報(bào)警模塊函數(shù)調(diào)用按鍵掃描函數(shù)NNYY圖 3.1 軟件系統(tǒng)總體流程圖3.2 顯示模塊程序設(shè)計(jì)顯

31、示模塊程序主要包括初始化、寫命令子函數(shù)、寫數(shù)據(jù)子函數(shù)都是其重要的基礎(chǔ)功能函數(shù),因此都要在軟件系統(tǒng)程序設(shè)計(jì)的底層庫中進(jìn)行包含。LCD 設(shè)置參數(shù)及端口定義sbit rs=P10; /LCD1602sbit rw=P11; /LCD1602sbit e=P12; /LCD16023.2.1 寫命令子函數(shù)1602 的操作需要對(duì)其進(jìn)行命令輸入,它有自己的指令庫。而對(duì)于這些命令的寫入,需要編寫特定的寫命令子函數(shù)。13void write_com(uchar com) /寫指令函數(shù)rw=0;delay1(5);rs=0;delay1(5);e=1;delay1(5);P0=com;delay1(5);e=0

32、;delay1(5);其中 delay1 為編寫的延時(shí)函數(shù),如下所示:void delay1(uint z) /延時(shí)函數(shù)uint x,y;for(x=z;x0;x-)for(y=10;y0;y-);3.2.2 寫數(shù)據(jù)子函數(shù)對(duì)命令進(jìn)行寫入之后,緊接著就要進(jìn)行所要顯示的字符數(shù)據(jù)的輸入,通過寫數(shù)據(jù)子函數(shù)來完成。void write_dat(uchar dat) 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)行的

33、各種顯示,如以下為時(shí)間顯示部分的程序代碼。void Time_Display(void)14read_rtc();Date_dispaly(0 x80+0 x40+12,time_data6); /顯示秒Date_dispaly(0 x80+0 x40+9,time_data5); /顯示分Date_dispaly(0 x80+0 x40+6,time_data4); /顯示時(shí)Date_dispaly(0 x80+14,time_data3); /顯示日Date_dispaly(0 x80+11,time_data2); /顯示月Week_dispaly(0 x80+0 x40+15,time

34、_data1); /顯示周Date_dispaly(0 x80+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è)定過程中要顯示的內(nèi)容,結(jié)合用戶的輸入,設(shè)置合適的光標(biāo)顯示處理。3.3 溫度傳感器模塊程序設(shè)計(jì)溫度傳感器的端口定義在 P2.1 端口。sbit DQ = P21;在溫度傳感器的基礎(chǔ)函數(shù)設(shè)計(jì)

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

36、,主要就是對(duì)芯片的寫入數(shù)據(jù)和讀取數(shù)據(jù)的函數(shù)進(jìn)行編寫,然后再編寫相應(yīng)的日期設(shè)定函數(shù)。使用 write_ds1302_byt 函數(shù)進(jìn)行數(shù)據(jù)準(zhǔn)備工作,使用 write_ds1302 函數(shù)對(duì)數(shù)據(jù)進(jìn)行寫入,使用 read_ds1302函數(shù)對(duì)時(shí)間數(shù)據(jù)進(jìn)行讀出,使用 set_rtc 函數(shù)對(duì)時(shí)間進(jìn)行設(shè)置。153.5 按鍵設(shè)置程序設(shè)計(jì)按鍵設(shè)置程序主要是按鍵掃描策略,因?yàn)榘存I掃描和定義邏輯比較復(fù)雜,不僅要識(shí)別按下按鍵的次數(shù)、哪個(gè)按鍵,還要配合 LCD 顯示函數(shù),對(duì)不同的鍵值和狀態(tài)進(jìn)行顯示,并通過控制 LCD1602 的光標(biāo)位置與開閉,提示用戶進(jìn)行設(shè)置。按鍵掃描和設(shè)置程序單獨(dú)做成一個(gè)子函數(shù),在主程序中循環(huán)調(diào)用。在進(jìn)

37、行按鍵編程操作中,因?yàn)槭褂玫氖菣C(jī)械按鍵,會(huì)存在抖動(dòng)的現(xiàn)象,造成檢測(cè)不準(zhǔn)確或按下次數(shù)誤判,一般采用軟件去抖的方式,即通過延時(shí)的方式,保證單片機(jī)讀取到的鍵值的準(zhǔn)確性。按鍵定義為 4 個(gè),分別是設(shè)置鍵、確認(rèn)鍵、鍵值增加和鍵值減小。使用變量 SELT 表示設(shè)置鍵狀態(tài),同時(shí)設(shè)定一個(gè)全局變量 Select_num 記錄設(shè)置鍵被按下的次數(shù),不同的次數(shù)就對(duì)應(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è)置溫度功能;當(dāng)按下次數(shù)為 4 時(shí),取消標(biāo)記調(diào)節(jié)模式,并回到正常模式。使用

38、變量 ENTER 表示確認(rèn)鍵的狀態(tài),同時(shí)使用 Enter_num 記錄該鍵被按下的次數(shù)。對(duì)于 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ù)。對(duì)于鍵值增加和鍵值減小的按鍵,當(dāng)這兩個(gè)按鍵按下時(shí),使用 if 條件判斷Select

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論