已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目 錄 摘 要 I ABSTRACT II 引言 1 1 智能熱水器控制系統(tǒng)的總體設(shè)計方案 1 1 1 方案的分析與選擇 1 1 2 系統(tǒng)總體設(shè)計概述 2 1 3 各功能模塊介紹 3 1 3 1 控制模塊 3 1 3 2 顯示模塊 3 1 3 3 輸入模塊 5 1 3 4 其它模塊 6 1 4 本章小結(jié) 8 2 硬件電路的設(shè)計與實現(xiàn) 8 2 1 單片機最小系統(tǒng)硬件電路設(shè)計 8 2 2 顯示模塊硬件電路設(shè)計 8 2 3 溫度傳感器 DS18B20 電路設(shè)計 9 2 4 電子式水位開關(guān)硬件電路設(shè)計 10 2 5 時鐘芯片電路設(shè)計 10 2 6 聲光報警電路設(shè)計 11 2 7 按鍵設(shè)置模塊電路設(shè)計 11 2 8 電源和開關(guān)模塊設(shè)計 12 2 9 本章小結(jié) 12 3 熱水器控制系統(tǒng)的軟件設(shè)計與算法實現(xiàn) 12 3 1 軟件總體流程圖 13 3 2 顯示模塊程序設(shè)計 14 3 2 1 寫命令子函數(shù) 14 3 2 2 寫數(shù)據(jù)子函數(shù) 14 3 3 溫度傳感器模塊程序設(shè)計 15 3 4 時鐘芯片相關(guān)程序設(shè)計 16 3 5 按鍵設(shè)置程序設(shè)計 16 3 6 主程序和中斷服務(wù)程序設(shè)計 17 3 7 本章小結(jié) 17 4 測試 總結(jié)與評價 17 4 1 軟件平臺仿真測試 17 4 2 面包板電路搭建測試 18 4 3 系統(tǒng)方案總結(jié)與評價 19 5 結(jié)束語 19 參考文獻 20 致 謝 21 I 基于 51 單片機的智能熱水器控制系統(tǒng) 摘 要 隨著科技的進步和人們生活水平的不斷提高 熱水器越來越普遍地走進千 家萬戶 給人們的生活帶來了極大的方便 同時 人們對熱水器的智能化和安 全性都提出了更高的要求 這就要求熱水器具有一個智能控制系統(tǒng) 能夠自動 獲取當(dāng)前水溫和水位信息 判斷實際溫度與預(yù)設(shè)溫度關(guān)系 從而實現(xiàn)加熱的自 動控制 本文提出了一種基于 51 單片機的智能熱水器控制系統(tǒng)的解決方案 該方案 采用 DS18B20 單線數(shù)字溫度傳感器來對水溫進行檢測 使用 DS1302 時鐘芯片 實現(xiàn)計數(shù)和定時功能 同時加入了水位判斷和報警設(shè)計 用戶通過按鍵和顯示 屏來完成系統(tǒng)的參數(shù)設(shè)置 從而實現(xiàn)定時加熱 自動恒溫等功能 關(guān)鍵詞 單片機 熱水器 控制 DS18B20 II The intelligent water heater control system based on 51 single chip microcomputer Abstract With the progress of science and technology and the continuous improvement of people s living standard the water heater is more and more widely into the thousands has brought great convenience to people s life At the same time people 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 security 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 heating 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 the 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 DS18B20 1 引言 隨著人們對生活質(zhì)量的要求不斷提高 熱水器逐漸成為了城市居民生活的 一個不可或缺的東西 經(jīng)過多年的發(fā)展和技術(shù)積累 整個熱水器行業(yè)也不斷涌 現(xiàn)出新的產(chǎn)品 熱水器的種類也越來越多 從最初的燃氣熱水器一家獨大 到 現(xiàn)在的燃氣熱水器 電熱水器 太陽能熱水器等多種熱水器都有一定的市場占 有率 在熱水器的使用效果上 功能也越來越豐富 使用更加人性化 甚至結(jié) 合最新的智能家居和物聯(lián)網(wǎng)理念 智能化程度大大提高 給人們的生活帶來了 極大的方便 現(xiàn)在的熱水器向著安全 節(jié)能 穩(wěn)定 高效 人性化的方向快速 發(fā)展著 單片機是一種微控制器 體積小 功耗低 通過編程和外圍電路設(shè)計 可 以完成多種智能控制任務(wù) 隨著單片機技術(shù)的迅速發(fā)展 越來越多的家用電器 采用各種型號的單片機為控制核心 來完成和人類的交互 并通過相應(yīng)的程序 和內(nèi)部運算 實現(xiàn)一些智能化的控制 使家用電器的操作更加人性化 控制更 加智能化 在熱水器中 也廣泛采用了單片機作為控制核心 通過相應(yīng)的溫度 傳感器 在熱水器的溫度控制上達到了更高的精度 完成了從最初的旋鈕調(diào)節(jié) 逐漸向數(shù)字化調(diào)節(jié)方向轉(zhuǎn)變 同時 通過不同的傳感器 由單片機控制并指示 熱水器的各種工作狀態(tài) 在發(fā)生缺水 水溫過熱等情況時及時向用戶給出聲光 報警 從而防止發(fā)生意外 保障了用戶的安全 本文所提出的智能熱水器控制系統(tǒng) 以 51 系列單片機為控制核心 通過溫 度傳感器 水位傳感器感知熱水器狀態(tài) 并通過按鍵 顯示屏和用戶進行人機 交互 實現(xiàn)了定時加熱 自動恒溫的功能 同時也有過熱 缺水的報警設(shè)計 給用戶帶來方便 本設(shè)計具有成本低 實用性強 溫度控制精度高的特點 1 智能熱水器控制系統(tǒng)的總體設(shè)計方案 本設(shè)計所提到的智能熱水器控制系統(tǒng)主要是實現(xiàn)對溫度的自動控制 定時 加熱控制和智能報警的功能 因此 智能熱水器控制系統(tǒng)主要分為控制模塊 顯示模塊 信息輸入模塊 加熱模塊 聲光報警模塊等幾部分構(gòu)成 1 1 方案的分析與選擇 對于主控芯片 本方案選擇最簡單的 8 位 51 系列的單片機 性能可靠 成 本低 完全可以滿足本系統(tǒng)的要求 而且由于 51 系列的單片機在電子相關(guān)專業(yè) 2 中的基礎(chǔ)性地位 對其使用和編程都比較熟練 可以極大縮短開發(fā)周期 更好 地完成設(shè)計任務(wù) 對于顯示模塊 LED 液晶顯示屏 LCD1602 字符型液晶 LCD12864 點陣 型液晶三者都是簡單的 小型的顯示器件 均可完成顯示任務(wù) LED 液晶顯示 的內(nèi)容過于簡單 LCD1284 更適合顯示圖像類信息 而 LCD1602 非常適合顯 示少量的 豐富的字符信息 因此 選擇 LCD1602 字符型液晶 對于輸入模塊 分為用戶信息輸入和傳感器信息輸入 用戶信息輸入方面 使用按鍵進行輸入要比旋鈕更容易控制 用戶也更易于接受 通過設(shè)置相應(yīng)的 調(diào)節(jié)按鍵 可以十分精確地定位到用戶所希望達到的溫度 當(dāng)然 按鍵也有機 械按鍵 電容按鍵等許多不同的種類 因為本系統(tǒng)處于實驗調(diào)試階段 故選取 最簡單的機械按鍵 傳感器信息輸入分為兩個部分 第一部分是溫度信息輸入 使用溫度傳感 器 用于告訴單片機當(dāng)前的水溫 實現(xiàn)溫度的自動控制 第二部分是水位信息 輸入 使用水位傳感器 用來告訴單片機水量信息 達到缺水報警的目的 溫 度傳感器一般有熱敏電阻和數(shù)字式溫度傳感器 DS18B20 可供選擇 熱敏電阻的 可靠性差 且輸出的是模擬量 需要進行相應(yīng)的 A D 轉(zhuǎn)換后才能輸入 比較麻 煩 而相比之下 數(shù)字式溫度傳感器測溫范圍寬 以單線串行方式與單片機進 行通信 節(jié)約了單片機的 I O 口資源 且直接輸出數(shù)字量 外圍電路簡單 因 此最符合要求 水位信息輸入只需考慮是否是缺水狀態(tài) 因此只要對是否缺水 給出一個電平信息即可 直接封裝一個斷觸電點 一端接地 當(dāng)有水時 單片 機對應(yīng)端口被拉低 無水時端口電平被拉高 來完成是否缺水的判斷即可 同時 為了實現(xiàn)精確的定時加熱功能 引入專門的時鐘芯片 DS1302 進行 計時 為單片機提供日期和時間基準(zhǔn) 為了保證使用者的安全 加入聲光報警 提示模塊 在加熱 缺水時給出提示 1 2 系統(tǒng)總體設(shè)計概述 本系統(tǒng)采用 51 系列單片機為控制核心 以 DS18B20 單線數(shù)字式溫度傳感 器獲取溫度信息 采用 DS1302 時鐘芯片為單片機提供日期基準(zhǔn) 顯示方面采 用 LCD1602 液晶顯示屏 以機械按鍵的形式供用戶輸入 設(shè)置當(dāng)前的系統(tǒng)時間 定時加熱的開始時間 水溫設(shè)定等 來完成整個控制器的控制工作 系統(tǒng)整體 的結(jié)構(gòu)框圖如下圖 1 1 所示 3 5V 電源模塊 1602 顯示 單片機及其最小系統(tǒng) 及電源接口 溫度傳感器模塊 水位傳感器模塊聲光報警模塊 按鍵輸入 時鐘電路 圖 1 1 系統(tǒng)整體框圖 1 3 各功能模塊介紹 要順利完成整個系統(tǒng)的設(shè)計工作 就要對所采用的各個模塊的元器件進行 具體的選型 并通過元器件的數(shù)據(jù)手冊 操作說明的資料 詳細地了解各個元 器件的性能 操作方法 硬件連接要求的內(nèi)容 1 3 1 控制模塊 本設(shè)計采用的主控芯是 51 系列的單片機處理器 STC89C52RC 這是一款采 用了 CMOS 工藝進行生產(chǎn)的 8 位處理器 該處理器具有相當(dāng)可靠的工作性能 正常工作的功耗極低 而且有著相當(dāng)豐富的系統(tǒng)資源 片內(nèi)的程序存儲空間達 到了 4K 具有 512 字節(jié)的 RAM 空間 可以滿足大多數(shù)的程序要求 指令系統(tǒng) 完全兼容傳統(tǒng)的 8051 單片機內(nèi)核 有 2K 的 EEPROM 存儲空間 要建立完整 的控制模塊 還要為單片機配置其最小系統(tǒng)的外圍電路 主要包括晶振和復(fù)位 電路 單片機才能正常的工作 1 3 2 顯示模塊 本設(shè)計所采用的 LCD1602 液晶顯示屏 是一種小型的 集成度很高的液晶 顯示屏 可以顯示字母 數(shù)字 符號等 其特點是功耗低 體積小 輕薄 模 塊化 而且由于其自帶字符庫 在顯示方面的實現(xiàn)上只需要按照要求對其進行 初始化 設(shè)定相關(guān)的顯示位置和顯示內(nèi)容即可 操作簡單 作為一個集成化的顯示模塊 其相應(yīng)的管腳的具體定義可以查閱操作手冊 獲取 而與單片機的具體連接方式將在硬件設(shè)計部分詳細介紹 如下圖 1 2 所示為 LCD1602 的控制器接口的時序說明 在液晶的初始化 4 讀寫操作的相關(guān)的編程中 要參考該時序圖 結(jié)合單片機晶振的選取情況作出 必要調(diào)整 只有正確的時序才能保證單片機給出正確的控制指令 圖 1 2 字符型液晶 LCD1602 的讀寫操作時序圖 LCD1602 自帶字符庫 這就在很大程度上方便了用戶的開發(fā) 同時也節(jié)省 了單片機的程序存儲空間 不需要在程序中對字符的顯示進行定義 如下圖 1 3 所示 圖 1 3 字符型液晶 LCD1602 的字符庫 1 3 3 輸入模塊 對于單片機而言 要對其進行一定是設(shè)置 就必須要有用戶進行相關(guān)的指 令輸入 單片機要對熱水器的熱水溫度狀態(tài)和是否缺水進行感知 要有相關(guān)的 傳感器進行信號輸入 輸入模塊分別為用戶指令輸入 溫度數(shù)據(jù)輸入和是否缺 水的信號輸入 指令輸入由 4 個獨立按鍵完成 溫度輸入由 DS18B20 來完成 是否缺水的信號由電子式水位開關(guān)提供 指令輸入模塊采用 4 個獨立按鍵完成 獨立按鍵的觸發(fā)方式為低電平有效 在平時的系統(tǒng)開啟狀態(tài)下 單片機相應(yīng)端口保持高電平狀態(tài) 當(dāng)按鍵被按下 獨立按鍵兩端連通 然后接地 單片機的相應(yīng)的連接端口的電平被地線拉低 從而能夠被單片機捕捉到按鍵動作 4 個獨立按鍵分別是設(shè)定鍵 鍵值增加 鍵值減小 確認這個 4 個功能定義 通過這 4 個按鍵 結(jié)合軟件和算法編程 進行按鍵狀態(tài)掃描 然后對相應(yīng)的鍵值動作設(shè)定正確的響應(yīng)邏輯 就能夠為用 戶提供完整的參數(shù)設(shè)置功能 溫度輸入模塊主要采用的是一種數(shù)字式集成單線溫度傳感器 型號為 DS18B20 圖 1 4 數(shù)字式單線溫度傳感器 DS18B20 封裝及引腳圖 在 DS18B20 的芯片手冊中 閱讀單線傳輸協(xié)議的時序要求 如下圖 1 5 所 示 圖 1 5 DS18B20 的讀寫操作時序 水位信號輸入選擇電子式水位開關(guān) BZ2401 供電電壓范圍在 5V 24V 有 三根線 電源線 地線和信號線 該產(chǎn)品通過內(nèi)置芯片檢測水位信號 由內(nèi)部 5 芯片處理 當(dāng)判斷到有水時 芯片輸出與電源電壓相同的高電平 當(dāng)判斷到無 水時 芯片輸出 0V 產(chǎn)品正常供電后 與單片機通過數(shù)據(jù)線和地線連接 1 3 4 其它模塊 為了實現(xiàn)準(zhǔn)確的定時功能 本系統(tǒng)采用了專門的時鐘芯片 DS1302 來提供 詳細的日期和時間基準(zhǔn) 同時 設(shè)置 3 個 LED 燈和蜂鳴器 組成其聲光提示和 報警模塊 DS1302 是一款涓流充電時鐘保持芯片 由 DALLAS 公司出品 可以通過 簡單的串口同單片機進行通信 芯片內(nèi)部有自己的獨立時鐘電路和一個 31 字節(jié) 的靜態(tài) RAM 能夠向單片機提供詳細的時鐘信息 如日期年月日 時間時分秒 等 對于每月的天數(shù)和閏年能夠自動進行處理 保證日期記錄的準(zhǔn)確性 在硬 件連接上 其使用三個數(shù)據(jù)線同單片機的相應(yīng)端口進行連接 分別為復(fù)位 數(shù) 據(jù)和串行時鐘 其芯片正常工作的功率極低 在日期時間數(shù)據(jù)的保持和記錄時 消耗的功率不足 1mW 其封裝形式和管腳定義如下圖 1 6 所示 圖 1 6 DS1302 的封裝和管腳定義 在使用時 該芯片要外接 32 768KHz 的晶振 需要簡單的外圍電路 如下 圖 1 7 所示為其一種典型的應(yīng)用電路 圖 1 7 一種典型的 DS1302 應(yīng)用電路圖 聲光報警模塊所采用的 LED 燈和小型的蜂鳴器就比較常見 電路特性也很 6 容易掌握 在 LED 燈的使用時 要注意選擇合適的顏色 同時要根據(jù)最大電流 限制 加上合適的限流電阻 從而保護 LED 燈工作在正常的電壓電流條件下 蜂鳴器的驅(qū)動無法靠單片機的端口直接完成 要使用相應(yīng)型號的三極管進行放 大 如 9012 8550 等型號 通過三極管驅(qū)動蜂鳴器 才能正常發(fā)聲 1 4 本章小結(jié) 本章對系統(tǒng)的總體方案進行了設(shè)計 同時詳細確定了系統(tǒng)所應(yīng)該具有的功 能模塊 對控制模塊 顯示模塊 輸入模塊等模塊的主要實現(xiàn)方案和元器件的 選擇方案進行了分析與比較 從而確定了系統(tǒng)所需要使用的各個元器件 同時 根據(jù)元器件的資料和數(shù)據(jù)手冊 對主要元器件的硬件連接 使用和操作方法進 行了重點研究 為硬件電路的搭建和軟件編程提供了基礎(chǔ) 2 硬件電路的設(shè)計與實現(xiàn) 2 1 單片機最小系統(tǒng)硬件電路設(shè)計 單片機最小系統(tǒng)包括晶振 復(fù)位電路等 單片機內(nèi)部已經(jīng)具有時鐘震蕩電 路 因此 我們搭建單片機最小系統(tǒng) 只需要在其 XTAL1 和 XTAL2 兩個引腳 之間加入反饋電路 就可以讓單片機得到時鐘信號 一般的反饋電路就是石英 晶體振蕩器和兩個 30uf 的旁路電容 電容值的大小是根據(jù)其晶振頻率高低進行 調(diào)整的 在單片機的最小系統(tǒng)的電路中 石英晶體振蕩器的頻率越高 單片機內(nèi)部 時鐘信號的周期就越短 單片機的指令執(zhí)行速度就越快 本設(shè)計中在單片機時 鐘頻率的設(shè)置方面采用 12MHz 同時對單片機的復(fù)位引腳設(shè)置相應(yīng)的復(fù)位按鍵 以供用戶在必要的時候?qū)纹瑱C進行重啟操作 對于本系統(tǒng)的各個傳感器接口 也要進行引出 以供各個傳感器 電源 數(shù)據(jù)線接口使用 最小系統(tǒng)可以在萬 用板上手工搭建 也可以直接使用 PCB 板上焊接好的成品模塊 其硬件原理圖 如下圖 2 1 所示 7 圖 2 1 單片機最小系統(tǒng)及其接口電路設(shè)計 2 2 顯示模塊硬件電路設(shè)計 本設(shè)計選用字符型液晶 LCD1602 為顯示器件 將 LCD1602 的數(shù)據(jù)引腳都 接入單片機的 P0 端口 即 P0 0 P0 7 分別對應(yīng)地和 1602 顯示屏的 8 根數(shù)據(jù)線 DB0 DB7 相連接 如圖 2 2 所示 特殊功能端 RS RW E 通過網(wǎng)絡(luò)標(biāo)號 分 別接 P1 0 P1 1 和 P1 2 模塊的 VEE 端可以調(diào)節(jié)顯示模塊顯示字符的亮度和對 比度 在實際電路中采用 10K 歐姆藍白臥式可調(diào)電阻 102 通過擰動 可以改 變顯示字符的效果 圖 2 2 顯示模塊及其接口電路設(shè)計 2 3 溫度傳感器 DS18B20 電路設(shè)計 8 DS18B20 溫度傳感器與單片機的連接比較簡單 直接將其數(shù)據(jù)線連接到單 片機的 P2 1 端口上 即網(wǎng)絡(luò)標(biāo)號 DQ 電源和地線也連接到單片機主板上 同 時數(shù)據(jù)線用電源電壓通過 4 7K 的電阻上拉 圖 2 3 溫度傳感器及其接口電路設(shè)計 2 4 電子式水位開關(guān)硬件電路設(shè)計 缺水判斷由電子式水位開關(guān)完成 有水時輸出高電平 無水時輸出低電平 高電平等于電源電壓 因此其供電選擇為 5V 數(shù)據(jù)線和地線接入單片機主板 如下圖 2 4 所示 網(wǎng)絡(luò)標(biāo)號 WATER 對應(yīng)單片機的 P2 2 端口 圖 2 4 電子式水位開關(guān)接口電路設(shè)計 2 5 時鐘芯片電路設(shè)計 時鐘芯片 DS1302 的 RST SCLK 和 I O 三個端口與單片機相連 進行數(shù)據(jù) 交換 如下圖 2 5 所示 網(wǎng)絡(luò)標(biāo)號分別為 RST SCK 和 IO 分別與單片機的 P3 7 P3 5 和 P3 6 相連 實現(xiàn)與單片機的通信 通過參考 DS1302 時鐘芯片的 經(jīng)典電路設(shè)計方案 設(shè)計本系統(tǒng)所需要電路結(jié)構(gòu) DS1302 具有涓流充電功能 可以設(shè)置雙電源 其中 VCC1 為備用電源 在電路中另外引出 接一塊型號為 9 CR2302 的紐扣電池 VCC2 在主板上直接取電 在 X1 和 X2 兩個引腳之間接 入 32 768KHz 的晶振 為芯片提供基本時鐘信號 圖 2 5 時鐘芯片電路設(shè)計 2 6 聲光報警電路設(shè)計 報警電路分為燈光報警和聲音報警 用于對系統(tǒng)的各種需要報警的狀態(tài)進 行響應(yīng) 并通過聲音和燈光對用戶進行提示 如下圖 2 6 所示為聲音報警模塊電路設(shè)計 蜂鳴器使用與單片機相同的 5V 電源 使用三極管 9013 進行控制 集電極接單片機端口 網(wǎng)絡(luò)標(biāo)號為 BEEP 對 應(yīng)單片機的 P2 0 端口 圖 2 6 蜂鳴器電路設(shè)計 燈光報警和提示選用高亮度高壽命的 LED 燈 共陽極接法 單片機給出低 電平點亮 設(shè)置 3 個 LED 燈 串接 510 歐姆電阻 D1 用于指示加熱狀態(tài) D2 用來指示水位狀態(tài) D3 用來指示溫度過熱狀態(tài) 這三個燈分別接單片機的端口 P2 5 P2 4 和 P2 3 來完成相關(guān)的功能 10 圖 2 7 指示燈電路設(shè)計 2 7 按鍵設(shè)置模塊電路設(shè)計 本系統(tǒng)的時鐘設(shè)置 溫度設(shè)置都需要通過按鍵來完成 采用 4 個獨立按鍵 的設(shè)計 一端接地 按下后將單片機的端口電平拉低 由單片機完成按鍵動作 的捕捉 功能定義為設(shè)置鍵 確定鍵 值增加鍵和值減小鍵 網(wǎng)絡(luò)標(biāo)號分別為 SELT ENTER UP 和 DOWN 對應(yīng)接單片機的 P1 3 P1 4 P1 5 和 P1 6 四 個端口 圖 2 8 按鍵模塊電路設(shè)計 2 8 電源和開關(guān)模塊設(shè)計 本系統(tǒng)的外接 5V 電源工作 為了控制方便 加入電源總開關(guān) 同時使用 一個 LED 燈指示電源狀態(tài) 在電源與地線之間并聯(lián)兩個濾波電容 濾除電源紋 波 11 圖 2 9 電源模塊電路設(shè)計 2 9 本章小結(jié) 本章主要在 PROTEL99SE 的軟件環(huán)境下完成了電路硬件原理圖的設(shè)計 通 過對主要元器件電氣特性的研究 合理 規(guī)范 安全地構(gòu)建了系統(tǒng)功能實現(xiàn)的 硬件平臺 3 熱水器控制系統(tǒng)的軟件設(shè)計與算法實現(xiàn) 軟件設(shè)計是整個系統(tǒng)的靈魂 優(yōu)秀 可靠的軟件設(shè)計能夠充分發(fā)揮硬件的 資源 并能夠出色完成系統(tǒng)的預(yù)期功能 軟件系統(tǒng)主要的設(shè)計思路如下 1 在系統(tǒng)打開后 顯示當(dāng)前的系統(tǒng)時間信息和水溫信息 如果水溫低于設(shè) 定值則開始加熱 如果水溫高于設(shè)定值或狀態(tài)為缺水就進行聲光報警 2 響應(yīng)按鍵操作 當(dāng)用戶按下設(shè)置鍵時 進入功能選擇菜單 功能選擇菜 單有三個 第一個是設(shè)置時間 第二個是設(shè)置定時加熱開始的時間和結(jié)束的時 間 第三個是設(shè)置溫度范圍的上限和下限 在軟件程序的設(shè)計中 充分體現(xiàn)了模塊化的設(shè)計思想 整個軟件系統(tǒng)主要 包括了整體初始化函數(shù) LCD1602 基礎(chǔ)函數(shù) DS18B20 基礎(chǔ)函數(shù) DS1302 基 礎(chǔ)函數(shù) 按鍵掃描設(shè)置策略基礎(chǔ)函數(shù)幾個大的部分 然后在主程序中進行相關(guān) 模塊的函數(shù)調(diào)用 如傳感器狀態(tài)讀取 溫度智能判斷 報警處理策略 鍵盤掃 描等 完成系統(tǒng)所預(yù)期的操作功能 3 1 軟件總體流程圖 12 開始 LCD 顯示屏 1302 時鐘芯片 定時器 獨立 按鍵 溫度傳感器 各種端口初始化 正常模式 調(diào)用時間顯示函數(shù) 0 5s 時間到 調(diào)用溫度讀取函數(shù) 溫度顯示函數(shù) 調(diào)用報警模塊函數(shù) 調(diào)用按鍵掃描函數(shù) N N Y Y 圖 3 1 軟件系統(tǒng)總體流程圖 3 2 顯示模塊程序設(shè)計 顯示模塊程序主要包括初始化 寫命令子函數(shù) 寫數(shù)據(jù)子函數(shù)都是其重要的基礎(chǔ)功能 函數(shù) 因此都要在軟件系統(tǒng)程序設(shè)計的底層庫中進行包含 LCD 設(shè)置參數(shù)及端口定義 sbit rs P1 0 LCD1602 sbit rw P1 1 LCD1602 sbit e P1 2 LCD1602 3 2 1 寫命令子函數(shù) 1602 的操作需要對其進行命令輸入 它有自己的指令庫 而對于這些命令的寫入 需 要編寫特定的寫命令子函數(shù) 13 void write com uchar com 寫指令函數(shù) rw 0 delay1 5 rs 0 delay1 5 e 1 delay1 5 P0 com delay1 5 e 0 delay1 5 其中 delay1 為編寫的延時函數(shù) 如下所示 void delay1 uint z 延時函數(shù) uint x y for x z x 0 x for y 10 y 0 y 3 2 2 寫數(shù)據(jù)子函數(shù) 對命令進行寫入之后 緊接著就要進行所要顯示的字符數(shù)據(jù)的輸入 通過寫數(shù)據(jù)子函 數(shù)來完成 void write dat uchar dat rs 1 選擇寫數(shù)據(jù) rw 0 P0 dat e 1 delay 5 無延時不能正常工作 e 0 根據(jù)以上兩個基本函數(shù) 來編寫 1602 的初始化函數(shù) 顯示字符串函數(shù) 顯示兩位十進 制數(shù)字函數(shù) 完成在時間設(shè)定 溫度設(shè)定的過程中進行的各種顯示 如以下為時間顯示部 分的程序代碼 void Time Display void 14 read rtc Date dispaly 0 x80 0 x40 12 time data 6 顯示秒 Date dispaly 0 x80 0 x40 9 time data 5 顯示分 Date dispaly 0 x80 0 x40 6 time data 4 顯示時 Date dispaly 0 x80 14 time data 3 顯示日 Date dispaly 0 x80 11 time data 2 顯示月 Week dispaly 0 x80 0 x40 15 time data 1 顯示周 Date dispaly 0 x80 8 time data 0 顯示年 Year 10 16 Year 10 Hour time data 4 16 10 time data 4 16 Minute time data 5 16 10 time data 5 16 Second time data 6 16 10 time data 6 16 除此之外 還要編寫在進行時間設(shè)定過程中和在溫度設(shè)定過程中要顯示的內(nèi)容 結(jié)合 用戶的輸入 設(shè)置合適的光標(biāo)顯示處理 3 3 溫度傳感器模塊程序設(shè)計 溫度傳感器的端口定義在 P2 1 端口 sbit DQ P2 1 在溫度傳感器的基礎(chǔ)函數(shù)設(shè)計里邊 主要是進行溫度獲取和處理 讀取溫 度的函數(shù)包括讀整數(shù)部分和讀小數(shù)部分 通過對 DS18B20 的數(shù)據(jù)格式進行解析 編寫合適的讀取溫度子函數(shù) 主要基礎(chǔ)函數(shù)設(shè)計包括模塊初始化函數(shù) 單線串行傳輸協(xié)議延時函數(shù) 總 線協(xié)議配置 字節(jié)數(shù)據(jù)發(fā)送 字節(jié)數(shù)據(jù)接收等多個部分 在主程序中對這些函 數(shù)進行調(diào)用 配合 LCD 顯示函數(shù) 來完成對溫度顯示 判斷等多種功能 3 4 時鐘芯片相關(guān)程序設(shè)計 時鐘芯片的數(shù)據(jù)傳輸定義在單片機的 P3 5 P3 6 和 P3 7 這三個端口 sbit sck P3 5 時鐘端口 sbit io P3 6 時鐘端口 sbit rst P3 7 時鐘端口 在 DS1302 相關(guān)的程序設(shè)計中 主要就是對芯片的寫入數(shù)據(jù)和讀取數(shù)據(jù)的 函數(shù)進行編寫 然后再編寫相應(yīng)的日期設(shè)定函數(shù) 使用 write ds1302 byt 函數(shù) 進行數(shù)據(jù)準(zhǔn)備工作 使用 write ds1302 函數(shù)對數(shù)據(jù)進行寫入 使用 read ds1302 函數(shù)對時間數(shù)據(jù)進行讀出 使用 set rtc 函數(shù)對時間進行設(shè)置 15 3 5 按鍵設(shè)置程序設(shè)計 按鍵設(shè)置程序主要是按鍵掃描策略 因為按鍵掃描和定義邏輯比較復(fù)雜 不僅要識別按下按鍵的次數(shù) 哪個按鍵 還要配合 LCD 顯示函數(shù) 對不同的鍵 值和狀態(tài)進行顯示 并通過控制 LCD1602 的光標(biāo)位置與開閉 提示用戶進行設(shè) 置 按鍵掃描和設(shè)置程序單獨做成一個子函數(shù) 在主程序中循環(huán)調(diào)用 在進行按鍵編程操作中 因為使用的是機械按鍵 會存在抖動的現(xiàn)象 造 成檢測不準(zhǔn)確或按下次數(shù)誤判 一般采用軟件去抖的方式 即通過延時的方式 保證單片機讀取到的鍵值的準(zhǔn)確性 按鍵定義為 4 個 分別是設(shè)置鍵 確認鍵 鍵值增加和鍵值減小 使用變 量 SELT 表示設(shè)置鍵狀態(tài) 同時設(shè)定一個全局變量 Select num 記錄設(shè)置鍵被按 下的次數(shù) 不同的次數(shù)就對應(yīng)著不同的設(shè)置功能 根據(jù)按鍵功能設(shè)定 設(shè)置鍵 按下的次數(shù)為 1 時 光標(biāo)指向設(shè)置時間功能 同時標(biāo)記進入調(diào)節(jié)模式 當(dāng)按下 次數(shù)為 2 時 光標(biāo)指向設(shè)置定時功能 當(dāng)按下次數(shù)為 3 時 光標(biāo)指向設(shè)置溫度 功能 當(dāng)按下次數(shù)為 4 時 取消標(biāo)記調(diào)節(jié)模式 并回到正常模式 使用變量 ENTER 表示確認鍵的狀態(tài) 同時使用 Enter num 記錄該鍵被按 下的次數(shù) 對于 Enter num 的每一個取值 都要首先檢查變量 Select num 的值 來判斷處于哪有功能設(shè)定的模式下 進而顯示不同的內(nèi)容 并控制光標(biāo)的移動 并根據(jù)不同功能模式下按下確認鍵的次數(shù) 判斷系統(tǒng)當(dāng)前要修改的數(shù)據(jù)是哪一 個 該不該結(jié)束調(diào)試 返回正常狀態(tài) 通過設(shè)置鍵和確認鍵按下次數(shù)的排列組合 構(gòu)建了系統(tǒng)在調(diào)試模式下的每 一個具體的調(diào)試狀態(tài) 也就是說 Select num 和 Enter num 值的組合就確定了當(dāng) 前調(diào)整的數(shù)據(jù) 對于鍵值增加和鍵值減小的按鍵 當(dāng)這兩個按鍵按下時 使用 if 條件判斷 Select num 和 Enter num 值的組合情況 執(zhí)行相應(yīng)的數(shù)據(jù)增加 1 或者是數(shù)據(jù)減 小 1 的操作 由于鍵盤檢測循環(huán)進行 連續(xù)按增加或減小按鍵可以起到連續(xù)調(diào) 節(jié)的效果 同時 注意每一個數(shù)據(jù)的范圍 防止設(shè)置超出范圍 3 6 主程序和中斷服務(wù)程序設(shè)計 主程序中主要包含各個功能函數(shù)的調(diào)用 在程序運行開始 對各個模塊 端口和定時器初始化操作 然后進入循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)中通過標(biāo)志位判斷系 16 統(tǒng)處于調(diào)節(jié)模式還是正常模式 并不斷執(zhí)行鍵盤掃描函數(shù) 正常模式下執(zhí)行溫 度顯示和時間顯示 調(diào)用報警模塊的子函數(shù) 進行溫度 水位狀態(tài)的檢測和判 斷 在程序中設(shè)置了相應(yīng)的判斷標(biāo)志位 通過這些變量值的判斷來確定是否達 到報警條件 水溫低于設(shè)定溫度則開啟加熱指示燈 高于設(shè)定溫度則報警 如 果缺水的話 也進行報警 中斷服務(wù)程序主要使用了定時器中斷 使用定時器 T0 定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 施工招標(biāo)文件范本
- 建筑工程施工質(zhì)量驗收標(biāo)準(zhǔn)和規(guī)范
- 2024高中地理第四章自然環(huán)境對人類活動的影響3自然資源與人類活動學(xué)案湘教版必修1
- 2024高中生物第6章生態(tài)環(huán)境的保護第1節(jié)人口增長對生態(tài)環(huán)境的影響課堂演練含解析新人教版必修3
- 2024高考歷史一輪復(fù)習(xí)方案專題三現(xiàn)代中國的政治建設(shè)祖國統(tǒng)一與對外關(guān)系第8講現(xiàn)代中國的對外關(guān)系教學(xué)案+練習(xí)人民版
- 2024高考地理一輪復(fù)習(xí)第一部分自然地理-重在理解第一章行星地球第5講地球公轉(zhuǎn)及其地理意義學(xué)案新人教版
- (譯林版)二年級英語上冊期中檢測卷-附參考答案
- 變頻技術(shù)及應(yīng)用 課件 學(xué)習(xí)情境1、2 變頻器的基礎(chǔ)知識、認識變頻器
- 部編版九年級上冊語文期中復(fù)習(xí):文學(xué)類文本閱讀-專項練習(xí)題(文本版-含答案)
- 農(nóng)業(yè)土地政策資料講解
- 床上用品材料采購合同
- 民航概論5套模擬試卷考試題帶答案
- 2024屆中國電建地產(chǎn)校園招聘網(wǎng)申平臺高頻500題難、易錯點模擬試題附帶答案詳解
- 2024包鋼(集團)公司招聘941人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 基于信創(chuàng)底座的智慧交通行業(yè)解決方案
- 2024年青海省中考生物地理合卷試題(含答案解析)
- COCA20000詞匯音標(biāo)版表格
- 滬教版七年級數(shù)學(xué)上冊專題06圖形的運動(原卷版+解析)
- 大學(xué)美育-美育賞湖南智慧樹知到期末考試答案章節(jié)答案2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院
- 數(shù)據(jù)結(jié)構(gòu)期末考試題及答案
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
評論
0/150
提交評論