




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目 錄摘 要.IABSTRACT .II引言.11 智能熱水器控制系統(tǒng)的總體設計方案.11.1 方案的分析與選擇.11.2 系統(tǒng)總體設計概述.21.3 各功能模塊介紹.31.3.1 控制模塊.31.3.2 顯示模塊.31.3.3 輸入模塊.51.3.4 其它模塊.61.4 本章小結.82 硬件電路的設計與實現(xiàn).82.1 單片機最小系統(tǒng)硬件電路設計.82.2 顯示模塊硬件電路設計.82.3 溫度傳感器 DS18B20 電路設計.92.4 電子式水位開關硬件電路設計.102.5 時鐘芯片電路設計.102.6 聲光報警電路設計.112.7 按鍵設置模塊電路設計.112.8 電源和開關模塊設計.122
2、.9 本章小結.123 熱水器控制系統(tǒng)的軟件設計與算法實現(xiàn).123.1 軟件總體流程圖.133.2 顯示模塊程序設計.143.2.1 寫命令子函數(shù).143.2.2 寫數(shù)據子函數(shù).143.3 溫度傳感器模塊程序設計.153.4 時鐘芯片相關程序設計.163.5 按鍵設置程序設計.163.6 主程序和中斷服務程序設計.173.7 本章小結.174 測試、總結與評價.174.1 軟件平臺仿真測試.174.2 面包板電路搭建測試.184.3 系統(tǒng)方案總結與評價.195 結束語.19參考文獻.20致 謝.21I基于 51 單片機的智能熱水器控制系統(tǒng)摘 要隨著科技的進步和人們生活水平的不斷提高,熱水器越來
3、越普遍地走進千家萬戶,給人們的生活帶來了極大的方便。同時,人們對熱水器的智能化和安全性都提出了更高的要求。這就要求熱水器具有一個智能控制系統(tǒng),能夠自動獲取當前水溫和水位信息,判斷實際溫度與預設溫度關系,從而實現(xiàn)加熱的自動控制。本文提出了一種基于 51 單片機的智能熱水器控制系統(tǒng)的解決方案,該方案采用 DS18B20 單線數(shù)字溫度傳感器來對水溫進行檢測,使用 DS1302 時鐘芯片實現(xiàn)計數(shù)和定時功能,同時加入了水位判斷和報警設計。用戶通過按鍵和顯示屏來完成系統(tǒng)的參數(shù)設置,從而實現(xiàn)定時加熱、自動恒溫等功能。關鍵詞:單片機,熱水器,控制,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引言隨著人們對生活質量的要求不斷提高,熱水器逐漸成為了城市居民
9、生活的一個不可或缺的東西。經過多年的發(fā)展和技術積累,整個熱水器行業(yè)也不斷涌現(xiàn)出新的產品,熱水器的種類也越來越多,從最初的燃氣熱水器一家獨大,到現(xiàn)在的燃氣熱水器、電熱水器、太陽能熱水器等多種熱水器都有一定的市場占有率。在熱水器的使用效果上,功能也越來越豐富,使用更加人性化,甚至結合最新的智能家居和物聯(lián)網理念,智能化程度大大提高,給人們的生活帶來了極大的方便?,F(xiàn)在的熱水器向著安全、節(jié)能、穩(wěn)定、高效、人性化的方向快速發(fā)展著。單片機是一種微控制器,體積小、功耗低、通過編程和外圍電路設計,可以完成多種智能控制任務。隨著單片機技術的迅速發(fā)展,越來越多的家用電器采用各種型號的單片機為控制核心,來完成和人類的
10、交互,并通過相應的程序和內部運算,實現(xiàn)一些智能化的控制,使家用電器的操作更加人性化,控制更加智能化。在熱水器中,也廣泛采用了單片機作為控制核心,通過相應的溫度傳感器,在熱水器的溫度控制上達到了更高的精度,完成了從最初的旋鈕調節(jié)逐漸向數(shù)字化調節(jié)方向轉變。同時,通過不同的傳感器,由單片機控制并指示熱水器的各種工作狀態(tài),在發(fā)生缺水、水溫過熱等情況時及時向用戶給出聲光報警,從而防止發(fā)生意外,保障了用戶的安全。本文所提出的智能熱水器控制系統(tǒng),以 51 系列單片機為控制核心,通過溫度傳感器、水位傳感器感知熱水器狀態(tài),并通過按鍵、顯示屏和用戶進行人機交互,實現(xiàn)了定時加熱、自動恒溫的功能,同時也有過熱、缺水的
11、報警設計,給用戶帶來方便。本設計具有成本低、實用性強、溫度控制精度高的特點。1 智能熱水器控制系統(tǒng)的總體設計方案本設計所提到的智能熱水器控制系統(tǒng)主要是實現(xiàn)對溫度的自動控制、定時加熱控制和智能報警的功能,因此,智能熱水器控制系統(tǒng)主要分為控制模塊、顯示模塊、信息輸入模塊、加熱模塊、聲光報警模塊等幾部分構成。1.1 方案的分析與選擇對于主控芯片,本方案選擇最簡單的 8 位 51 系列的單片機,性能可靠,成本低,完全可以滿足本系統(tǒng)的要求。而且由于 51 系列的單片機在電子相關專業(yè)2中的基礎性地位,對其使用和編程都比較熟練,可以極大縮短開發(fā)周期,更好地完成設計任務。對于顯示模塊,LED 液晶顯示屏、LC
12、D1602 字符型液晶、LCD12864 點陣型液晶三者都是簡單的、小型的顯示器件,均可完成顯示任務。LED 液晶顯示的內容過于簡單,LCD1284 更適合顯示圖像類信息,而 LCD1602 非常適合顯示少量的、豐富的字符信息。因此,選擇 LCD1602 字符型液晶。對于輸入模塊,分為用戶信息輸入和傳感器信息輸入。用戶信息輸入方面,使用按鍵進行輸入要比旋鈕更容易控制,用戶也更易于接受,通過設置相應的調節(jié)按鍵,可以十分精確地定位到用戶所希望達到的溫度。當然,按鍵也有機械按鍵、電容按鍵等許多不同的種類,因為本系統(tǒng)處于實驗調試階段,故選取最簡單的機械按鍵。傳感器信息輸入分為兩個部分,第一部分是溫度信
13、息輸入,使用溫度傳感器,用于告訴單片機當前的水溫,實現(xiàn)溫度的自動控制;第二部分是水位信息輸入,使用水位傳感器,用來告訴單片機水量信息,達到缺水報警的目的。溫度傳感器一般有熱敏電阻和數(shù)字式溫度傳感器 DS18B20 可供選擇。熱敏電阻的可靠性差,且輸出的是模擬量,需要進行相應的 A/D 轉換后才能輸入,比較麻煩,而相比之下,數(shù)字式溫度傳感器測溫范圍寬、以單線串行方式與單片機進行通信,節(jié)約了單片機的 I/O 口資源,且直接輸出數(shù)字量,外圍電路簡單,因此最符合要求。水位信息輸入只需考慮是否是缺水狀態(tài),因此只要對是否缺水給出一個電平信息即可,直接封裝一個斷觸電點,一端接地,當有水時,單片機對應端口被拉
14、低,無水時端口電平被拉高,來完成是否缺水的判斷即可。同時,為了實現(xiàn)精確的定時加熱功能,引入專門的時鐘芯片 DS1302 進行計時,為單片機提供日期和時間基準。為了保證使用者的安全,加入聲光報警提示模塊,在加熱、缺水時給出提示。1.2 系統(tǒng)總體設計概述本系統(tǒng)采用 51 系列單片機為控制核心,以 DS18B20 單線數(shù)字式溫度傳感器獲取溫度信息,采用 DS1302 時鐘芯片為單片機提供日期基準,顯示方面采用 LCD1602 液晶顯示屏,以機械按鍵的形式供用戶輸入,設置當前的系統(tǒng)時間、定時加熱的開始時間、水溫設定等,來完成整個控制器的控制工作。系統(tǒng)整體的結構框圖如下圖 1.1 所示。35V 電源模塊
15、1602 顯示單片機及其最小系統(tǒng)及電源接口溫度傳感器模塊水位傳感器模塊聲光報警模塊按鍵輸入時鐘電路圖 1.1 系統(tǒng)整體框圖1.3 各功能模塊介紹要順利完成整個系統(tǒng)的設計工作,就要對所采用的各個模塊的元器件進行具體的選型,并通過元器件的數(shù)據手冊、操作說明的資料,詳細地了解各個元器件的性能、操作方法、硬件連接要求的內容。1.3.1 控制模塊本設計采用的主控芯是 51 系列的單片機處理器 STC89C52RC,這是一款采用了 CMOS 工藝進行生產的 8 位處理器,該處理器具有相當可靠的工作性能,正常工作的功耗極低,而且有著相當豐富的系統(tǒng)資源,片內的程序存儲空間達到了 4K、具有 512 字節(jié)的 R
16、AM 空間,可以滿足大多數(shù)的程序要求。指令系統(tǒng)完全兼容傳統(tǒng)的 8051 單片機內核,有 2K+的 EEPROM 存儲空間。要建立完整的控制模塊,還要為單片機配置其最小系統(tǒng)的外圍電路,主要包括晶振和復位電路,單片機才能正常的工作。1.3.2 顯示模塊本設計所采用的 LCD1602 液晶顯示屏,是一種小型的、集成度很高的液晶顯示屏,可以顯示字母、數(shù)字、符號等,其特點是功耗低、體積小、輕薄、模塊化,而且由于其自帶字符庫,在顯示方面的實現(xiàn)上只需要按照要求對其進行初始化、設定相關的顯示位置和顯示內容即可,操作簡單。作為一個集成化的顯示模塊,其相應的管腳的具體定義可以查閱操作手冊獲取,而與單片機的具體連接
17、方式將在硬件設計部分詳細介紹。如下圖 1.2 所示為 LCD1602 的控制器接口的時序說明,在液晶的初始化、4讀寫操作的相關的編程中,要參考該時序圖,結合單片機晶振的選取情況作出必要調整,只有正確的時序才能保證單片機給出正確的控制指令。圖 1.2 字符型液晶 LCD1602 的讀寫操作時序圖LCD1602 自帶字符庫,這就在很大程度上方便了用戶的開發(fā),同時也節(jié)省了單片機的程序存儲空間,不需要在程序中對字符的顯示進行定義。如下圖 1.3所示。圖 1.3 字符型液晶 LCD1602 的字符庫1.3.3 輸入模塊對于單片機而言,要對其進行一定是設置,就必須要有用戶進行相關的指令輸入,單片機要對熱水
18、器的熱水溫度狀態(tài)和是否缺水進行感知,要有相關的傳感器進行信號輸入。輸入模塊分別為用戶指令輸入、溫度數(shù)據輸入和是否缺水的信號輸入。指令輸入由 4 個獨立按鍵完成,溫度輸入由 DS18B20 來完成,是否缺水的信號由電子式水位開關提供。指令輸入模塊采用 4 個獨立按鍵完成。獨立按鍵的觸發(fā)方式為低電平有效,在平時的系統(tǒng)開啟狀態(tài)下,單片機相應端口保持高電平狀態(tài),當按鍵被按下,獨立按鍵兩端連通,然后接地,單片機的相應的連接端口的電平被地線拉低,從而能夠被單片機捕捉到按鍵動作。4 個獨立按鍵分別是設定鍵、鍵值增加、鍵值減小、確認這個 4 個功能定義,通過這 4 個按鍵,結合軟件和算法編程,進行按鍵狀態(tài)掃描
19、,然后對相應的鍵值動作設定正確的響應邏輯,就能夠為用戶提供完整的參數(shù)設置功能。溫度輸入模塊主要采用的是一種數(shù)字式集成單線溫度傳感器,型號為DS18B20。圖 1.4 數(shù)字式單線溫度傳感器 DS18B20 封裝及引腳圖在 DS18B20 的芯片手冊中,閱讀單線傳輸協(xié)議的時序要求,如下圖 1.5 所示。圖 1.5 DS18B20 的讀寫操作時序水位信號輸入選擇電子式水位開關 BZ2401,供電電壓范圍在 5V-24V,有三根線,電源線、地線和信號線。該產品通過內置芯片檢測水位信號,由內部5芯片處理,當判斷到有水時,芯片輸出與電源電壓相同的高電平,當判斷到無水時,芯片輸出 0V,產品正常供電后,與單
20、片機通過數(shù)據線和地線連接。1.3.4 其它模塊為了實現(xiàn)準確的定時功能,本系統(tǒng)采用了專門的時鐘芯片 DS1302,來提供詳細的日期和時間基準。同時,設置 3 個 LED 燈和蜂鳴器,組成其聲光提示和報警模塊。DS1302 是一款涓流充電時鐘保持芯片,由 DALLAS 公司出品,可以通過簡單的串口同單片機進行通信,芯片內部有自己的獨立時鐘電路和一個 31 字節(jié)的靜態(tài) RAM,能夠向單片機提供詳細的時鐘信息,如日期年月日,時間時分秒等,對于每月的天數(shù)和閏年能夠自動進行處理,保證日期記錄的準確性。在硬件連接上,其使用三個數(shù)據線同單片機的相應端口進行連接,分別為復位、數(shù)據和串行時鐘。其芯片正常工作的功率
21、極低,在日期時間數(shù)據的保持和記錄時消耗的功率不足 1mW。其封裝形式和管腳定義如下圖 1.6 所示。圖 1.6 DS1302 的封裝和管腳定義在使用時,該芯片要外接 32.768KHz 的晶振,需要簡單的外圍電路。如下圖 1.7 所示為其一種典型的應用電路。圖 1.7 一種典型的 DS1302 應用電路圖聲光報警模塊所采用的 LED 燈和小型的蜂鳴器就比較常見,電路特性也很6容易掌握,在 LED 燈的使用時,要注意選擇合適的顏色,同時要根據最大電流限制,加上合適的限流電阻,從而保護 LED 燈工作在正常的電壓電流條件下。蜂鳴器的驅動無法靠單片機的端口直接完成,要使用相應型號的三極管進行放大,如
22、 9012、8550 等型號,通過三極管驅動蜂鳴器,才能正常發(fā)聲。1.4 本章小結本章對系統(tǒng)的總體方案進行了設計,同時詳細確定了系統(tǒng)所應該具有的功能模塊,對控制模塊、顯示模塊、輸入模塊等模塊的主要實現(xiàn)方案和元器件的選擇方案進行了分析與比較,從而確定了系統(tǒng)所需要使用的各個元器件。同時,根據元器件的資料和數(shù)據手冊,對主要元器件的硬件連接、使用和操作方法進行了重點研究,為硬件電路的搭建和軟件編程提供了基礎。2 硬件電路的設計與實現(xiàn)2.1 單片機最小系統(tǒng)硬件電路設計單片機最小系統(tǒng)包括晶振、復位電路等。單片機內部已經具有時鐘震蕩電路,因此,我們搭建單片機最小系統(tǒng),只需要在其 XTAL1 和 XTAL2
23、兩個引腳之間加入反饋電路,就可以讓單片機得到時鐘信號。一般的反饋電路就是石英晶體振蕩器和兩個 30uf 的旁路電容,電容值的大小是根據其晶振頻率高低進行調整的。在單片機的最小系統(tǒng)的電路中,石英晶體振蕩器的頻率越高,單片機內部時鐘信號的周期就越短,單片機的指令執(zhí)行速度就越快。本設計中在單片機時鐘頻率的設置方面采用 12MHz,同時對單片機的復位引腳設置相應的復位按鍵,以供用戶在必要的時候對單片機進行重啟操作。對于本系統(tǒng)的各個傳感器接口,也要進行引出,以供各個傳感器、電源、數(shù)據線接口使用。最小系統(tǒng)可以在萬用板上手工搭建,也可以直接使用 PCB 板上焊接好的成品模塊,其硬件原理圖如下圖 2.1 所示
24、。7圖 2.1 單片機最小系統(tǒng)及其接口電路設計2.2 顯示模塊硬件電路設計本設計選用字符型液晶 LCD1602 為顯示器件,將 LCD1602 的數(shù)據引腳都接入單片機的 P0 端口,即 P0.0P0.7 分別對應地和 1602 顯示屏的 8 根數(shù)據線DB0DB7 相連接。如圖 2.2 所示,特殊功能端 RS、RW、E 通過網絡標號,分別接 P1.0,P1.1 和 P1.2。模塊的 VEE 端可以調節(jié)顯示模塊顯示字符的亮度和對比度,在實際電路中采用 10K 歐姆藍白臥式可調電阻 102,通過擰動,可以改變顯示字符的效果。圖 2.2 顯示模塊及其接口電路設計2.3 溫度傳感器 DS18B20 電路
25、設計8DS18B20 溫度傳感器與單片機的連接比較簡單,直接將其數(shù)據線連接到單片機的 P2.1 端口上,即網絡標號 DQ,電源和地線也連接到單片機主板上,同時數(shù)據線用電源電壓通過 4.7K 的電阻上拉。圖 2.3 溫度傳感器及其接口電路設計2.4 電子式水位開關硬件電路設計缺水判斷由電子式水位開關完成,有水時輸出高電平,無水時輸出低電平。高電平等于電源電壓,因此其供電選擇為 5V,數(shù)據線和地線接入單片機主板,如下圖 2.4 所示,網絡標號 WATER 對應單片機的 P2.2 端口。圖 2.4 電子式水位開關接口電路設計2.5 時鐘芯片電路設計時鐘芯片 DS1302 的 RST、SCLK 和 I
26、/O 三個端口與單片機相連,進行數(shù)據交換,如下圖 2.5 所示,網絡標號分別為 RST、SCK 和 IO,分別與單片機的P3.7、P3.5 和 P3.6 相連,實現(xiàn)與單片機的通信。通過參考 DS1302 時鐘芯片的經典電路設計方案,設計本系統(tǒng)所需要電路結構。DS1302 具有涓流充電功能,可以設置雙電源,其中 VCC1 為備用電源,在電路中另外引出,接一塊型號為9CR2302 的紐扣電池。VCC2 在主板上直接取電。在 X1 和 X2 兩個引腳之間接入 32.768KHz 的晶振,為芯片提供基本時鐘信號。圖 2.5 時鐘芯片電路設計2.6 聲光報警電路設計報警電路分為燈光報警和聲音報警,用于對
27、系統(tǒng)的各種需要報警的狀態(tài)進行響應,并通過聲音和燈光對用戶進行提示。如下圖 2.6 所示為聲音報警模塊電路設計,蜂鳴器使用與單片機相同的+5V電源,使用三極管 9013 進行控制,集電極接單片機端口,網絡標號為 BEEP 對應單片機的 P2.0 端口。圖 2.6 蜂鳴器電路設計燈光報警和提示選用高亮度高壽命的 LED 燈,共陽極接法,單片機給出低電平點亮。設置 3 個 LED 燈,串接 510 歐姆電阻,D1 用于指示加熱狀態(tài);D2用來指示水位狀態(tài);D3 用來指示溫度過熱狀態(tài)。這三個燈分別接單片機的端口P2.5、P2.4 和 P2.3 來完成相關的功能。10圖 2.7 指示燈電路設計2.7 按鍵
28、設置模塊電路設計本系統(tǒng)的時鐘設置、溫度設置都需要通過按鍵來完成,采用 4 個獨立按鍵的設計,一端接地,按下后將單片機的端口電平拉低,由單片機完成按鍵動作的捕捉。功能定義為設置鍵、確定鍵、值增加鍵和值減小鍵,網絡標號分別為SELT、ENTER、UP 和 DOWN,對應接單片機的 P1.3、P1.4、P1.5 和 P1.6 四個端口。圖 2.8 按鍵模塊電路設計2.8 電源和開關模塊設計本系統(tǒng)的外接+5V 電源工作,為了控制方便,加入電源總開關,同時使用一個 LED 燈指示電源狀態(tài)。在電源與地線之間并聯(lián)兩個濾波電容,濾除電源紋波。11圖 2.9 電源模塊電路設計2.9 本章小結本章主要在 PROT
29、EL99SE 的軟件環(huán)境下完成了電路硬件原理圖的設計,通過對主要元器件電氣特性的研究,合理、規(guī)范、安全地構建了系統(tǒng)功能實現(xiàn)的硬件平臺。3 熱水器控制系統(tǒng)的軟件設計與算法實現(xiàn)軟件設計是整個系統(tǒng)的靈魂,優(yōu)秀、可靠的軟件設計能夠充分發(fā)揮硬件的資源,并能夠出色完成系統(tǒng)的預期功能。軟件系統(tǒng)主要的設計思路如下:1、在系統(tǒng)打開后,顯示當前的系統(tǒng)時間信息和水溫信息,如果水溫低于設定值則開始加熱;如果水溫高于設定值或狀態(tài)為缺水就進行聲光報警。2、響應按鍵操作。當用戶按下設置鍵時,進入功能選擇菜單,功能選擇菜單有三個,第一個是設置時間,第二個是設置定時加熱開始的時間和結束的時間,第三個是設置溫度范圍的上限和下限。
30、在軟件程序的設計中,充分體現(xiàn)了模塊化的設計思想,整個軟件系統(tǒng)主要包括了整體初始化函數(shù)、LCD1602 基礎函數(shù)、DS18B20 基礎函數(shù)、DS1302 基礎函數(shù)、按鍵掃描設置策略基礎函數(shù)幾個大的部分,然后在主程序中進行相關模塊的函數(shù)調用,如傳感器狀態(tài)讀取、溫度智能判斷、報警處理策略、鍵盤掃描等,完成系統(tǒng)所預期的操作功能。3.1 軟件總體流程圖12開始LCD 顯示屏、1302 時鐘芯片、定時器、獨立按鍵、溫度傳感器、各種端口初始化正常模式?調用時間顯示函數(shù)0.5s 時間到?調用溫度讀取函數(shù)溫度顯示函數(shù)調用報警模塊函數(shù)調用按鍵掃描函數(shù)NNYY圖 3.1 軟件系統(tǒng)總體流程圖3.2 顯示模塊程序設計顯
31、示模塊程序主要包括初始化、寫命令子函數(shù)、寫數(shù)據子函數(shù)都是其重要的基礎功能函數(shù),因此都要在軟件系統(tǒng)程序設計的底層庫中進行包含。LCD 設置參數(shù)及端口定義sbit rs=P10; /LCD1602sbit rw=P11; /LCD1602sbit e=P12; /LCD16023.2.1 寫命令子函數(shù)1602 的操作需要對其進行命令輸入,它有自己的指令庫。而對于這些命令的寫入,需要編寫特定的寫命令子函數(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ù),如下所示:void delay1(uint z) /延時函數(shù)uint x,y;for(x=z;x0;x-)for(y=10;y0;y-);3.2.2 寫數(shù)據子函數(shù)對命令進行寫入之后,緊接著就要進行所要顯示的字符數(shù)據的輸入,通過寫數(shù)據子函數(shù)來完成。void write_dat(uchar dat) rs=1;/選擇寫數(shù)據 rw=0; P0=dat; e=1; delay(5);/無延時不能正常工作 e=0;根據以上兩個基本函數(shù),來編寫 1602 的初始化函數(shù)、顯示字符串函數(shù)、顯示兩位十進制數(shù)字函數(shù),完成在時間設定、溫度設定的過程中進行的
33、各種顯示,如以下為時間顯示部分的程序代碼。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); /顯示時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;除此之外,還要編寫在進行時間設定過程中和在溫度設定過程中要顯示的內容,結合用戶的輸入,設置合適的光標顯示處理。3.3 溫度傳感器模塊程序設計溫度傳感器的端口定義在 P2.1 端口。sbit DQ = P21;在溫度傳感器的基礎函數(shù)設計
35、里邊,主要是進行溫度獲取和處理,讀取溫度的函數(shù)包括讀整數(shù)部分和讀小數(shù)部分,通過對 DS18B20 的數(shù)據格式進行解析,編寫合適的讀取溫度子函數(shù)。主要基礎函數(shù)設計包括模塊初始化函數(shù)、單線串行傳輸協(xié)議延時函數(shù)、總線協(xié)議配置、字節(jié)數(shù)據發(fā)送、字節(jié)數(shù)據接收等多個部分。在主程序中對這些函數(shù)進行調用,配合 LCD 顯示函數(shù),來完成對溫度顯示、判斷等多種功能。3.4 時鐘芯片相關程序設計時鐘芯片的數(shù)據傳輸定義在單片機的 P3.5、P3.6 和 P3.7 這三個端口。sbit sck=P35; /時鐘端口sbit io=P36; /時鐘端口sbit rst=P37; /時鐘端口在 DS1302 相關的程序設計中
36、,主要就是對芯片的寫入數(shù)據和讀取數(shù)據的函數(shù)進行編寫,然后再編寫相應的日期設定函數(shù)。使用 write_ds1302_byt 函數(shù)進行數(shù)據準備工作,使用 write_ds1302 函數(shù)對數(shù)據進行寫入,使用 read_ds1302函數(shù)對時間數(shù)據進行讀出,使用 set_rtc 函數(shù)對時間進行設置。153.5 按鍵設置程序設計按鍵設置程序主要是按鍵掃描策略,因為按鍵掃描和定義邏輯比較復雜,不僅要識別按下按鍵的次數(shù)、哪個按鍵,還要配合 LCD 顯示函數(shù),對不同的鍵值和狀態(tài)進行顯示,并通過控制 LCD1602 的光標位置與開閉,提示用戶進行設置。按鍵掃描和設置程序單獨做成一個子函數(shù),在主程序中循環(huán)調用。在進
37、行按鍵編程操作中,因為使用的是機械按鍵,會存在抖動的現(xiàn)象,造成檢測不準確或按下次數(shù)誤判,一般采用軟件去抖的方式,即通過延時的方式,保證單片機讀取到的鍵值的準確性。按鍵定義為 4 個,分別是設置鍵、確認鍵、鍵值增加和鍵值減小。使用變量 SELT 表示設置鍵狀態(tài),同時設定一個全局變量 Select_num 記錄設置鍵被按下的次數(shù),不同的次數(shù)就對應著不同的設置功能,根據按鍵功能設定,設置鍵按下的次數(shù)為 1 時,光標指向設置時間功能,同時標記進入調節(jié)模式;當按下次數(shù)為 2 時,光標指向設置定時功能;當按下次數(shù)為 3 時,光標指向設置溫度功能;當按下次數(shù)為 4 時,取消標記調節(jié)模式,并回到正常模式。使用
38、變量 ENTER 表示確認鍵的狀態(tài),同時使用 Enter_num 記錄該鍵被按下的次數(shù)。對于 Enter_num 的每一個取值,都要首先檢查變量 Select_num 的值,來判斷處于哪有功能設定的模式下,進而顯示不同的內容,并控制光標的移動。并根據不同功能模式下按下確認鍵的次數(shù),判斷系統(tǒng)當前要修改的數(shù)據是哪一個,該不該結束調試,返回正常狀態(tài)。通過設置鍵和確認鍵按下次數(shù)的排列組合,構建了系統(tǒng)在調試模式下的每一個具體的調試狀態(tài),也就是說 Select_num 和 Enter_num 值的組合就確定了當前調整的數(shù)據。對于鍵值增加和鍵值減小的按鍵,當這兩個按鍵按下時,使用 if 條件判斷Select
39、_num 和 Enter_num 值的組合情況,執(zhí)行相應的數(shù)據增加 1 或者是數(shù)據減小 1 的操作。由于鍵盤檢測循環(huán)進行,連續(xù)按增加或減小按鍵可以起到連續(xù)調節(jié)的效果。同時,注意每一個數(shù)據的范圍,防止設置超出范圍。3.6 主程序和中斷服務程序設計主程序中主要包含各個功能函數(shù)的調用。在程序運行開始,對各個模塊、端口和定時器初始化操作,然后進入循環(huán)結構。循環(huán)結構中通過標志位判斷系16統(tǒng)處于調節(jié)模式還是正常模式,并不斷執(zhí)行鍵盤掃描函數(shù)。正常模式下執(zhí)行溫度顯示和時間顯示,調用報警模塊的子函數(shù),進行溫度、水位狀態(tài)的檢測和判斷。在程序中設置了相應的判斷標志位,通過這些變量值的判斷來確定是否達到報警條件。水溫低于設定溫度則開啟加熱指示燈,高于設定溫度則報警,如果缺水的話,也進行報警。中斷服務程序主要使用了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45222-2025食品安全事故應急演練要求
- 上下鋪銷售合同范本
- 臨汾購房合同范本
- 2025年寧夏貨運從業(yè)資格證模擬考
- 勞務派人員合同范本
- 代理經紀服務合同范本
- 農村水電改造施工合同范本
- 修房勞動安全合同范本
- 醬菜批發(fā)合同范本
- 包租協(xié)議合同范例
- 2025年湖南高速鐵路職業(yè)技術學院單招職業(yè)傾向性測試題庫附答案
- 《高鐵乘務安全管理與應急處置(第3版)》全套教學課件
- 歷年湖北省公務員筆試真題2024
- 學校食品安全長效管理制度
- 2.2 說話要算數(shù) 第二課時 課件2024-2025學年四年級下冊道德與法治 統(tǒng)編版
- 2024-2025年第二學期學校教導處工作計劃(二)
- 提綱作文(解析版)- 2025年天津高考英語熱點題型專項復習
- 2025年蘇州衛(wèi)生職業(yè)技術學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年南京機電職業(yè)技術學院高職單招數(shù)學歷年(2016-2024)頻考點試題含答案解析
- 二零二五年度博物館場地租賃與文物保護合作協(xié)議3篇
- 2025年浙江臺州機場管理有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論