




已閱讀5頁,還剩19頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目 錄 摘 要 I ABSTRACT II 引言 1 1 智能熱水器控制系統的總體設計方案 1 1 1 方案的分析與選擇 1 1 2 系統總體設計概述 2 1 3 各功能模塊介紹 3 1 3 1 控制模塊 3 1 3 2 顯示模塊 3 1 3 3 輸入模塊 5 1 3 4 其它模塊 6 1 4 本章小結 8 2 硬件電路的設計與實現 8 2 1 單片機最小系統硬件電路設計 8 2 2 顯示模塊硬件電路設計 8 2 3 溫度傳感器 DS18B20 電路設計 9 2 4 電子式水位開關硬件電路設計 10 2 5 時鐘芯片電路設計 10 2 6 聲光報警電路設計 11 2 7 按鍵設置模塊電路設計 11 2 8 電源和開關模塊設計 12 2 9 本章小結 12 3 熱水器控制系統的軟件設計與算法實現 12 3 1 軟件總體流程圖 13 3 2 顯示模塊程序設計 14 3 2 1 寫命令子函數 14 3 2 2 寫數據子函數 14 3 3 溫度傳感器模塊程序設計 15 3 4 時鐘芯片相關程序設計 16 3 5 按鍵設置程序設計 16 3 6 主程序和中斷服務程序設計 17 3 7 本章小結 17 4 測試 總結與評價 17 4 1 軟件平臺仿真測試 17 4 2 面包板電路搭建測試 18 4 3 系統方案總結與評價 19 5 結束語 19 參考文獻 20 致 謝 21 I 基于 51 單片機的智能熱水器控制系統 摘 要 隨著科技的進步和人們生活水平的不斷提高 熱水器越來越普遍地走進千 家萬戶 給人們的生活帶來了極大的方便 同時 人們對熱水器的智能化和安 全性都提出了更高的要求 這就要求熱水器具有一個智能控制系統 能夠自動 獲取當前水溫和水位信息 判斷實際溫度與預設溫度關系 從而實現加熱的自 動控制 本文提出了一種基于 51 單片機的智能熱水器控制系統的解決方案 該方案 采用 DS18B20 單線數字溫度傳感器來對水溫進行檢測 使用 DS1302 時鐘芯片 實現計數和定時功能 同時加入了水位判斷和報警設計 用戶通過按鍵和顯示 屏來完成系統的參數設置 從而實現定時加熱 自動恒溫等功能 關鍵詞 單片機 熱水器 控制 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 引言 隨著人們對生活質量的要求不斷提高 熱水器逐漸成為了城市居民生活的 一個不可或缺的東西 經過多年的發展和技術積累 整個熱水器行業也不斷涌 現出新的產品 熱水器的種類也越來越多 從最初的燃氣熱水器一家獨大 到 現在的燃氣熱水器 電熱水器 太陽能熱水器等多種熱水器都有一定的市場占 有率 在熱水器的使用效果上 功能也越來越豐富 使用更加人性化 甚至結 合最新的智能家居和物聯網理念 智能化程度大大提高 給人們的生活帶來了 極大的方便 現在的熱水器向著安全 節能 穩定 高效 人性化的方向快速 發展著 單片機是一種微控制器 體積小 功耗低 通過編程和外圍電路設計 可 以完成多種智能控制任務 隨著單片機技術的迅速發展 越來越多的家用電器 采用各種型號的單片機為控制核心 來完成和人類的交互 并通過相應的程序 和內部運算 實現一些智能化的控制 使家用電器的操作更加人性化 控制更 加智能化 在熱水器中 也廣泛采用了單片機作為控制核心 通過相應的溫度 傳感器 在熱水器的溫度控制上達到了更高的精度 完成了從最初的旋鈕調節 逐漸向數字化調節方向轉變 同時 通過不同的傳感器 由單片機控制并指示 熱水器的各種工作狀態 在發生缺水 水溫過熱等情況時及時向用戶給出聲光 報警 從而防止發生意外 保障了用戶的安全 本文所提出的智能熱水器控制系統 以 51 系列單片機為控制核心 通過溫 度傳感器 水位傳感器感知熱水器狀態 并通過按鍵 顯示屏和用戶進行人機 交互 實現了定時加熱 自動恒溫的功能 同時也有過熱 缺水的報警設計 給用戶帶來方便 本設計具有成本低 實用性強 溫度控制精度高的特點 1 智能熱水器控制系統的總體設計方案 本設計所提到的智能熱水器控制系統主要是實現對溫度的自動控制 定時 加熱控制和智能報警的功能 因此 智能熱水器控制系統主要分為控制模塊 顯示模塊 信息輸入模塊 加熱模塊 聲光報警模塊等幾部分構成 1 1 方案的分析與選擇 對于主控芯片 本方案選擇最簡單的 8 位 51 系列的單片機 性能可靠 成 本低 完全可以滿足本系統的要求 而且由于 51 系列的單片機在電子相關專業 2 中的基礎性地位 對其使用和編程都比較熟練 可以極大縮短開發周期 更好 地完成設計任務 對于顯示模塊 LED 液晶顯示屏 LCD1602 字符型液晶 LCD12864 點陣 型液晶三者都是簡單的 小型的顯示器件 均可完成顯示任務 LED 液晶顯示 的內容過于簡單 LCD1284 更適合顯示圖像類信息 而 LCD1602 非常適合顯 示少量的 豐富的字符信息 因此 選擇 LCD1602 字符型液晶 對于輸入模塊 分為用戶信息輸入和傳感器信息輸入 用戶信息輸入方面 使用按鍵進行輸入要比旋鈕更容易控制 用戶也更易于接受 通過設置相應的 調節按鍵 可以十分精確地定位到用戶所希望達到的溫度 當然 按鍵也有機 械按鍵 電容按鍵等許多不同的種類 因為本系統處于實驗調試階段 故選取 最簡單的機械按鍵 傳感器信息輸入分為兩個部分 第一部分是溫度信息輸入 使用溫度傳感 器 用于告訴單片機當前的水溫 實現溫度的自動控制 第二部分是水位信息 輸入 使用水位傳感器 用來告訴單片機水量信息 達到缺水報警的目的 溫 度傳感器一般有熱敏電阻和數字式溫度傳感器 DS18B20 可供選擇 熱敏電阻的 可靠性差 且輸出的是模擬量 需要進行相應的 A D 轉換后才能輸入 比較麻 煩 而相比之下 數字式溫度傳感器測溫范圍寬 以單線串行方式與單片機進 行通信 節約了單片機的 I O 口資源 且直接輸出數字量 外圍電路簡單 因 此最符合要求 水位信息輸入只需考慮是否是缺水狀態 因此只要對是否缺水 給出一個電平信息即可 直接封裝一個斷觸電點 一端接地 當有水時 單片 機對應端口被拉低 無水時端口電平被拉高 來完成是否缺水的判斷即可 同時 為了實現精確的定時加熱功能 引入專門的時鐘芯片 DS1302 進行 計時 為單片機提供日期和時間基準 為了保證使用者的安全 加入聲光報警 提示模塊 在加熱 缺水時給出提示 1 2 系統總體設計概述 本系統采用 51 系列單片機為控制核心 以 DS18B20 單線數字式溫度傳感 器獲取溫度信息 采用 DS1302 時鐘芯片為單片機提供日期基準 顯示方面采 用 LCD1602 液晶顯示屏 以機械按鍵的形式供用戶輸入 設置當前的系統時間 定時加熱的開始時間 水溫設定等 來完成整個控制器的控制工作 系統整體 的結構框圖如下圖 1 1 所示 3 5V 電源模塊 1602 顯示 單片機及其最小系統 及電源接口 溫度傳感器模塊 水位傳感器模塊聲光報警模塊 按鍵輸入 時鐘電路 圖 1 1 系統整體框圖 1 3 各功能模塊介紹 要順利完成整個系統的設計工作 就要對所采用的各個模塊的元器件進行 具體的選型 并通過元器件的數據手冊 操作說明的資料 詳細地了解各個元 器件的性能 操作方法 硬件連接要求的內容 1 3 1 控制模塊 本設計采用的主控芯是 51 系列的單片機處理器 STC89C52RC 這是一款采 用了 CMOS 工藝進行生產的 8 位處理器 該處理器具有相當可靠的工作性能 正常工作的功耗極低 而且有著相當豐富的系統資源 片內的程序存儲空間達 到了 4K 具有 512 字節的 RAM 空間 可以滿足大多數的程序要求 指令系統 完全兼容傳統的 8051 單片機內核 有 2K 的 EEPROM 存儲空間 要建立完整 的控制模塊 還要為單片機配置其最小系統的外圍電路 主要包括晶振和復位 電路 單片機才能正常的工作 1 3 2 顯示模塊 本設計所采用的 LCD1602 液晶顯示屏 是一種小型的 集成度很高的液晶 顯示屏 可以顯示字母 數字 符號等 其特點是功耗低 體積小 輕薄 模 塊化 而且由于其自帶字符庫 在顯示方面的實現上只需要按照要求對其進行 初始化 設定相關的顯示位置和顯示內容即可 操作簡單 作為一個集成化的顯示模塊 其相應的管腳的具體定義可以查閱操作手冊 獲取 而與單片機的具體連接方式將在硬件設計部分詳細介紹 如下圖 1 2 所示為 LCD1602 的控制器接口的時序說明 在液晶的初始化 4 讀寫操作的相關的編程中 要參考該時序圖 結合單片機晶振的選取情況作出 必要調整 只有正確的時序才能保證單片機給出正確的控制指令 圖 1 2 字符型液晶 LCD1602 的讀寫操作時序圖 LCD1602 自帶字符庫 這就在很大程度上方便了用戶的開發 同時也節省 了單片機的程序存儲空間 不需要在程序中對字符的顯示進行定義 如下圖 1 3 所示 圖 1 3 字符型液晶 LCD1602 的字符庫 1 3 3 輸入模塊 對于單片機而言 要對其進行一定是設置 就必須要有用戶進行相關的指 令輸入 單片機要對熱水器的熱水溫度狀態和是否缺水進行感知 要有相關的 傳感器進行信號輸入 輸入模塊分別為用戶指令輸入 溫度數據輸入和是否缺 水的信號輸入 指令輸入由 4 個獨立按鍵完成 溫度輸入由 DS18B20 來完成 是否缺水的信號由電子式水位開關提供 指令輸入模塊采用 4 個獨立按鍵完成 獨立按鍵的觸發方式為低電平有效 在平時的系統開啟狀態下 單片機相應端口保持高電平狀態 當按鍵被按下 獨立按鍵兩端連通 然后接地 單片機的相應的連接端口的電平被地線拉低 從而能夠被單片機捕捉到按鍵動作 4 個獨立按鍵分別是設定鍵 鍵值增加 鍵值減小 確認這個 4 個功能定義 通過這 4 個按鍵 結合軟件和算法編程 進行按鍵狀態掃描 然后對相應的鍵值動作設定正確的響應邏輯 就能夠為用 戶提供完整的參數設置功能 溫度輸入模塊主要采用的是一種數字式集成單線溫度傳感器 型號為 DS18B20 圖 1 4 數字式單線溫度傳感器 DS18B20 封裝及引腳圖 在 DS18B20 的芯片手冊中 閱讀單線傳輸協議的時序要求 如下圖 1 5 所 示 圖 1 5 DS18B20 的讀寫操作時序 水位信號輸入選擇電子式水位開關 BZ2401 供電電壓范圍在 5V 24V 有 三根線 電源線 地線和信號線 該產品通過內置芯片檢測水位信號 由內部 5 芯片處理 當判斷到有水時 芯片輸出與電源電壓相同的高電平 當判斷到無 水時 芯片輸出 0V 產品正常供電后 與單片機通過數據線和地線連接 1 3 4 其它模塊 為了實現準確的定時功能 本系統采用了專門的時鐘芯片 DS1302 來提供 詳細的日期和時間基準 同時 設置 3 個 LED 燈和蜂鳴器 組成其聲光提示和 報警模塊 DS1302 是一款涓流充電時鐘保持芯片 由 DALLAS 公司出品 可以通過 簡單的串口同單片機進行通信 芯片內部有自己的獨立時鐘電路和一個 31 字節 的靜態 RAM 能夠向單片機提供詳細的時鐘信息 如日期年月日 時間時分秒 等 對于每月的天數和閏年能夠自動進行處理 保證日期記錄的準確性 在硬 件連接上 其使用三個數據線同單片機的相應端口進行連接 分別為復位 數 據和串行時鐘 其芯片正常工作的功率極低 在日期時間數據的保持和記錄時 消耗的功率不足 1mW 其封裝形式和管腳定義如下圖 1 6 所示 圖 1 6 DS1302 的封裝和管腳定義 在使用時 該芯片要外接 32 768KHz 的晶振 需要簡單的外圍電路 如下 圖 1 7 所示為其一種典型的應用電路 圖 1 7 一種典型的 DS1302 應用電路圖 聲光報警模塊所采用的 LED 燈和小型的蜂鳴器就比較常見 電路特性也很 6 容易掌握 在 LED 燈的使用時 要注意選擇合適的顏色 同時要根據最大電流 限制 加上合適的限流電阻 從而保護 LED 燈工作在正常的電壓電流條件下 蜂鳴器的驅動無法靠單片機的端口直接完成 要使用相應型號的三極管進行放 大 如 9012 8550 等型號 通過三極管驅動蜂鳴器 才能正常發聲 1 4 本章小結 本章對系統的總體方案進行了設計 同時詳細確定了系統所應該具有的功 能模塊 對控制模塊 顯示模塊 輸入模塊等模塊的主要實現方案和元器件的 選擇方案進行了分析與比較 從而確定了系統所需要使用的各個元器件 同時 根據元器件的資料和數據手冊 對主要元器件的硬件連接 使用和操作方法進 行了重點研究 為硬件電路的搭建和軟件編程提供了基礎 2 硬件電路的設計與實現 2 1 單片機最小系統硬件電路設計 單片機最小系統包括晶振 復位電路等 單片機內部已經具有時鐘震蕩電 路 因此 我們搭建單片機最小系統 只需要在其 XTAL1 和 XTAL2 兩個引腳 之間加入反饋電路 就可以讓單片機得到時鐘信號 一般的反饋電路就是石英 晶體振蕩器和兩個 30uf 的旁路電容 電容值的大小是根據其晶振頻率高低進行 調整的 在單片機的最小系統的電路中 石英晶體振蕩器的頻率越高 單片機內部 時鐘信號的周期就越短 單片機的指令執行速度就越快 本設計中在單片機時 鐘頻率的設置方面采用 12MHz 同時對單片機的復位引腳設置相應的復位按鍵 以供用戶在必要的時候對單片機進行重啟操作 對于本系統的各個傳感器接口 也要進行引出 以供各個傳感器 電源 數據線接口使用 最小系統可以在萬 用板上手工搭建 也可以直接使用 PCB 板上焊接好的成品模塊 其硬件原理圖 如下圖 2 1 所示 7 圖 2 1 單片機最小系統及其接口電路設計 2 2 顯示模塊硬件電路設計 本設計選用字符型液晶 LCD1602 為顯示器件 將 LCD1602 的數據引腳都 接入單片機的 P0 端口 即 P0 0 P0 7 分別對應地和 1602 顯示屏的 8 根數據線 DB0 DB7 相連接 如圖 2 2 所示 特殊功能端 RS RW E 通過網絡標號 分 別接 P1 0 P1 1 和 P1 2 模塊的 VEE 端可以調節顯示模塊顯示字符的亮度和對 比度 在實際電路中采用 10K 歐姆藍白臥式可調電阻 102 通過擰動 可以改 變顯示字符的效果 圖 2 2 顯示模塊及其接口電路設計 2 3 溫度傳感器 DS18B20 電路設計 8 DS18B20 溫度傳感器與單片機的連接比較簡單 直接將其數據線連接到單 片機的 P2 1 端口上 即網絡標號 DQ 電源和地線也連接到單片機主板上 同 時數據線用電源電壓通過 4 7K 的電阻上拉 圖 2 3 溫度傳感器及其接口電路設計 2 4 電子式水位開關硬件電路設計 缺水判斷由電子式水位開關完成 有水時輸出高電平 無水時輸出低電平 高電平等于電源電壓 因此其供電選擇為 5V 數據線和地線接入單片機主板 如下圖 2 4 所示 網絡標號 WATER 對應單片機的 P2 2 端口 圖 2 4 電子式水位開關接口電路設計 2 5 時鐘芯片電路設計 時鐘芯片 DS1302 的 RST SCLK 和 I O 三個端口與單片機相連 進行數據 交換 如下圖 2 5 所示 網絡標號分別為 RST SCK 和 IO 分別與單片機的 P3 7 P3 5 和 P3 6 相連 實現與單片機的通信 通過參考 DS1302 時鐘芯片的 經典電路設計方案 設計本系統所需要電路結構 DS1302 具有涓流充電功能 可以設置雙電源 其中 VCC1 為備用電源 在電路中另外引出 接一塊型號為 9 CR2302 的紐扣電池 VCC2 在主板上直接取電 在 X1 和 X2 兩個引腳之間接 入 32 768KHz 的晶振 為芯片提供基本時鐘信號 圖 2 5 時鐘芯片電路設計 2 6 聲光報警電路設計 報警電路分為燈光報警和聲音報警 用于對系統的各種需要報警的狀態進 行響應 并通過聲音和燈光對用戶進行提示 如下圖 2 6 所示為聲音報警模塊電路設計 蜂鳴器使用與單片機相同的 5V 電源 使用三極管 9013 進行控制 集電極接單片機端口 網絡標號為 BEEP 對 應單片機的 P2 0 端口 圖 2 6 蜂鳴器電路設計 燈光報警和提示選用高亮度高壽命的 LED 燈 共陽極接法 單片機給出低 電平點亮 設置 3 個 LED 燈 串接 510 歐姆電阻 D1 用于指示加熱狀態 D2 用來指示水位狀態 D3 用來指示溫度過熱狀態 這三個燈分別接單片機的端口 P2 5 P2 4 和 P2 3 來完成相關的功能 10 圖 2 7 指示燈電路設計 2 7 按鍵設置模塊電路設計 本系統的時鐘設置 溫度設置都需要通過按鍵來完成 采用 4 個獨立按鍵 的設計 一端接地 按下后將單片機的端口電平拉低 由單片機完成按鍵動作 的捕捉 功能定義為設置鍵 確定鍵 值增加鍵和值減小鍵 網絡標號分別為 SELT ENTER UP 和 DOWN 對應接單片機的 P1 3 P1 4 P1 5 和 P1 6 四 個端口 圖 2 8 按鍵模塊電路設計 2 8 電源和開關模塊設計 本系統的外接 5V 電源工作 為了控制方便 加入電源總開關 同時使用 一個 LED 燈指示電源狀態 在電源與地線之間并聯兩個濾波電容 濾除電源紋 波 11 圖 2 9 電源模塊電路設計 2 9 本章小結 本章主要在 PROTEL99SE 的軟件環境下完成了電路硬件原理圖的設計 通 過對主要元器件電氣特性的研究 合理 規范 安全地構建了系統功能實現的 硬件平臺 3 熱水器控制系統的軟件設計與算法實現 軟件設計是整個系統的靈魂 優秀 可靠的軟件設計能夠充分發揮硬件的 資源 并能夠出色完成系統的預期功能 軟件系統主要的設計思路如下 1 在系統打開后 顯示當前的系統時間信息和水溫信息 如果水溫低于設 定值則開始加熱 如果水溫高于設定值或狀態為缺水就進行聲光報警 2 響應按鍵操作 當用戶按下設置鍵時 進入功能選擇菜單 功能選擇菜 單有三個 第一個是設置時間 第二個是設置定時加熱開始的時間和結束的時 間 第三個是設置溫度范圍的上限和下限 在軟件程序的設計中 充分體現了模塊化的設計思想 整個軟件系統主要 包括了整體初始化函數 LCD1602 基礎函數 DS18B20 基礎函數 DS1302 基 礎函數 按鍵掃描設置策略基礎函數幾個大的部分 然后在主程序中進行相關 模塊的函數調用 如傳感器狀態讀取 溫度智能判斷 報警處理策略 鍵盤掃 描等 完成系統所預期的操作功能 3 1 軟件總體流程圖 12 開始 LCD 顯示屏 1302 時鐘芯片 定時器 獨立 按鍵 溫度傳感器 各種端口初始化 正常模式 調用時間顯示函數 0 5s 時間到 調用溫度讀取函數 溫度顯示函數 調用報警模塊函數 調用按鍵掃描函數 N N Y Y 圖 3 1 軟件系統總體流程圖 3 2 顯示模塊程序設計 顯示模塊程序主要包括初始化 寫命令子函數 寫數據子函數都是其重要的基礎功能 函數 因此都要在軟件系統程序設計的底層庫中進行包含 LCD 設置參數及端口定義 sbit rs P1 0 LCD1602 sbit rw P1 1 LCD1602 sbit e P1 2 LCD1602 3 2 1 寫命令子函數 1602 的操作需要對其進行命令輸入 它有自己的指令庫 而對于這些命令的寫入 需 要編寫特定的寫命令子函數 13 void write com uchar com 寫指令函數 rw 0 delay1 5 rs 0 delay1 5 e 1 delay1 5 P0 com delay1 5 e 0 delay1 5 其中 delay1 為編寫的延時函數 如下所示 void delay1 uint z 延時函數 uint x y for x z x 0 x for y 10 y 0 y 3 2 2 寫數據子函數 對命令進行寫入之后 緊接著就要進行所要顯示的字符數據的輸入 通過寫數據子函 數來完成 void write dat uchar dat rs 1 選擇寫數據 rw 0 P0 dat e 1 delay 5 無延時不能正常工作 e 0 根據以上兩個基本函數 來編寫 1602 的初始化函數 顯示字符串函數 顯示兩位十進 制數字函數 完成在時間設定 溫度設定的過程中進行的各種顯示 如以下為時間顯示部 分的程序代碼 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 除此之外 還要編寫在進行時間設定過程中和在溫度設定過程中要顯示的內容 結合 用戶的輸入 設置合適的光標顯示處理 3 3 溫度傳感器模塊程序設計 溫度傳感器的端口定義在 P2 1 端口 sbit DQ P2 1 在溫度傳感器的基礎函數設計里邊 主要是進行溫度獲取和處理 讀取溫 度的函數包括讀整數部分和讀小數部分 通過對 DS18B20 的數據格式進行解析 編寫合適的讀取溫度子函數 主要基礎函數設計包括模塊初始化函數 單線串行傳輸協議延時函數 總 線協議配置 字節數據發送 字節數據接收等多個部分 在主程序中對這些函 數進行調用 配合 LCD 顯示函數 來完成對溫度顯示 判斷等多種功能 3 4 時鐘芯片相關程序設計 時鐘芯片的數據傳輸定義在單片機的 P3 5 P3 6 和 P3 7 這三個端口 sbit sck P3 5 時鐘端口 sbit io P3 6 時鐘端口 sbit rst P3 7 時鐘端口 在 DS1302 相關的程序設計中 主要就是對芯片的寫入數據和讀取數據的 函數進行編寫 然后再編寫相應的日期設定函數 使用 write ds1302 byt 函數 進行數據準備工作 使用 write ds1302 函數對數據進行寫入 使用 read ds1302 函數對時間數據進行讀出 使用 set rtc 函數對時間進行設置 15 3 5 按鍵設置程序設計 按鍵設置程序主要是按鍵掃描策略 因為按鍵掃描和定義邏輯比較復雜 不僅要識別按下按鍵的次數 哪個按鍵 還要配合 LCD 顯示函數 對不同的鍵 值和狀態進行顯示 并通過控制 LCD1602 的光標位置與開閉 提示用戶進行設 置 按鍵掃描和設置程序單獨做成一個子函數 在主程序中循環調用 在進行按鍵編程操作中 因為使用的是機械按鍵 會存在抖動的現象 造 成檢測不準確或按下次數誤判 一般采用軟件去抖的方式 即通過延時的方式 保證單片機讀取到的鍵值的準確性 按鍵定義為 4 個 分別是設置鍵 確認鍵 鍵值增加和鍵值減小 使用變 量 SELT 表示設置鍵狀態 同時設定一個全局變量 Select num 記錄設置鍵被按 下的次數 不同的次數就對應著不同的設置功能 根據按鍵功能設定 設置鍵 按下的次數為 1 時 光標指向設置時間功能 同時標記進入調節模式 當按下 次數為 2 時 光標指向設置定時功能 當按下次數為 3 時 光標指向設置溫度 功能 當按下次數為 4 時 取消標記調節模式 并回到正常模式 使用變量 ENTER 表示確認鍵的狀態 同時使用 Enter num 記錄該鍵被按 下的次數 對于 Enter num 的每一個取值 都要首先檢查變量 Select num 的值 來判斷處于哪有功能設定的模式下 進而顯示不同的內容 并控制光標的移動 并根據不同功能模式下按下確認鍵的次數 判斷系統當前要修改的數據是哪一 個 該不該結束調試 返回正常狀態 通過設置鍵和確認鍵按下次數的排列組合 構建了系統在調試模式下的每 一個具體的調試狀態 也就是說 Select num 和 Enter num 值的組合就確定了當 前調整的數據 對于鍵值增加和鍵值減小的按鍵 當這兩個按鍵按下時 使用 if 條件判斷 Select num 和 Enter num 值的組合情況 執行相應的數據增加 1 或者是數據減 小 1 的操作 由于鍵盤檢測循環進行 連續按增加或減小按鍵可以起到連續調 節的效果 同時 注意每一個數據的范圍 防止設置超出范圍 3 6 主程序和中斷服務程序設計 主程序中主要包含各個功能函數的調用 在程序運行開始 對各個模塊 端口和定時器初始化操作 然后進入循環結構 循環結構中通過標志位判斷系 16 統處于調節模式還是正常模式 并不斷執行鍵盤掃描函數 正常模式下執行溫 度顯示和時間顯示 調用報警模塊的子函數 進行溫度 水位狀態的檢測和判 斷 在程序中設置了相應的判斷標志位 通過這些變量值的判斷來確定是否達 到報警條件 水溫低于設定溫度則開啟加熱指示燈 高于設定溫度則報警 如 果缺水的話 也進行報警 中斷服務程序主要使用了定時器中斷 使用定時器 T0 定
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- XXX石油服務集團股份有限公司ESG管理制度
- Pyripyropene-B-生命科學試劑-MCE
- 電力行業水電商業模式穩定低利率時代價值凸顯
- 2025年鄉村振興農村電子商務基礎設施建設資金申請指南
- 分布式能源系統生物質能源應用2025年與生物質能發電技術專利布局研究報告
- 2025年教育直播平臺教育平臺行業生態與政策環境研究報告
- 高校產學研合作技術轉移與成果轉化在海洋工程領域的應用研究報告
- 2025年茶飲市場品牌擴張中的消費者洞察與需求滿足研究報告
- 食品添加劑在飲料行業的安全性評估與合規使用報告
- 2025年工業互聯網平臺NFV在智能工廠設備狀態監測中的應用實踐報告
- TLYCY 3071-2024 森林草原防火無人機監測技術規范
- GB/T 45204-2025寵物經營場所環境清潔與消毒指南
- 《食品包裝紙》課件
- 模切品質培訓
- 人教版音樂六年級下冊全冊教學設計教案
- 2025山東菏澤事業單位招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 世界現代設計史(總結)
- 工地試驗室安全培訓內容
- 醫療設備維保服務項目組織機構及人員配備
- 射頻同軸連接器設計理論基礎
- 廣東省高速公路工程地質勘察技術規程(2024 版)
評論
0/150
提交評論