亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種智能電熱水器的制作方法

文檔序號(hào):11194232閱讀:630來(lái)源:國(guó)知局
一種智能電熱水器的制造方法與工藝
本實(shí)用新型涉及一種電熱水器。
背景技術(shù)
:現(xiàn)有的儲(chǔ)水式電熱水器,一般包括帶有加熱裝置及保溫層的儲(chǔ)水罐構(gòu)成,通過(guò)保溫的作用,長(zhǎng)時(shí)間保持儲(chǔ)水罐內(nèi)的高溫水,以滿足使用者的要求,此種電熱水器,一般是通過(guò)設(shè)定溫度來(lái)控制水溫的,由于家庭使用熱水一般是集中在某個(gè)時(shí)間段內(nèi)的(如晚上7點(diǎn)到11點(diǎn)間),大部分時(shí)間,電熱水器都處于靜止?fàn)顟B(tài),在這過(guò)程中,水溫會(huì)慢慢下降,當(dāng)下降到設(shè)定值后,加熱裝置會(huì)啟動(dòng)加熱,使水溫保持在設(shè)定的溫度下,由于需要經(jīng)常加熱來(lái)保持水溫在設(shè)定的溫度,這樣,就會(huì)浪費(fèi)大量的電能,特別是較長(zhǎng)時(shí)間都沒(méi)有人使用熱水器時(shí),電能消耗會(huì)更大。技術(shù)實(shí)現(xiàn)要素:本實(shí)用新型的發(fā)明目的在于提供一種既能滿足使用者對(duì)熱水的需要求同時(shí)又能節(jié)能的智能電熱水器。本實(shí)用新型是這樣實(shí)現(xiàn)的,包括帶有電加熱裝置的且外包裹保溫層的儲(chǔ)水罐、控制裝置,其特別之處在于控制裝置包括帶有時(shí)鐘的單片機(jī)最小系統(tǒng)模塊、溫度檢測(cè)模塊、獨(dú)立按鍵模塊、顯示模塊、電源模塊,電源模塊供5V直流電,加熱裝置需要接通220V交流電,用以快速地進(jìn)行加熱;溫度檢測(cè)模塊的作用是不斷將水溫信號(hào)采集回來(lái),并完成將采集到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)最后傳輸給單片機(jī)進(jìn)行計(jì)算處理的任務(wù);獨(dú)立按鍵模塊與顯示模塊是給用戶進(jìn)行指令下達(dá)的,用戶通過(guò)獨(dú)立按鍵設(shè)置水溫或倒計(jì)時(shí);加熱模塊主要由單片機(jī)輸出一個(gè)高或低的電平信號(hào)來(lái)控制繼電器的接通或斷開(kāi),然后再由繼電器控制加熱裝置的開(kāi)關(guān);工作時(shí),單片機(jī)最小系統(tǒng)模塊依據(jù)使用者當(dāng)前長(zhǎng)時(shí)間使用熱水的記錄時(shí)間或者使用者按鍵輸入的使用熱水的時(shí)間確定使用者下一次使用熱水的習(xí)慣時(shí)間,然后依據(jù)該時(shí)間提前1—2個(gè)小時(shí)啟動(dòng)加熱裝置,使熱水水溫達(dá)到設(shè)定的水溫,當(dāng)使用者長(zhǎng)時(shí)間使用熱水時(shí),單片機(jī)最小系統(tǒng)模塊啟動(dòng)加熱裝置工作,直至水溫達(dá)到設(shè)定的水溫,當(dāng)時(shí)間到了下一次使用熱水的習(xí)慣時(shí)間,使用者沒(méi)有使用熱水時(shí),單片機(jī)最小系統(tǒng)模塊將該習(xí)慣時(shí)間歸零,直至使用者重新長(zhǎng)時(shí)間使用熱水或者使用者按鍵輸入的使用熱水的時(shí)間以重新確定下一次的使用熱水的習(xí)慣時(shí)間。與現(xiàn)有技術(shù)相比,本實(shí)用新型的有益效果為:(1)通過(guò)單片機(jī)的獨(dú)立按鍵實(shí)現(xiàn)溫度以及加熱倒計(jì)時(shí)的設(shè)定;(2)控制器不斷檢測(cè)水溫,并根據(jù)設(shè)計(jì)值控制加熱裝置的開(kāi)關(guān);(3)采用倒計(jì)時(shí)加熱,則根據(jù)用戶需求或者依據(jù)只能判斷,時(shí)間到再加熱并且保溫,從而有效地解決約長(zhǎng)時(shí)間維持水溫所消耗的能量;(4)溫度的設(shè)定值,實(shí)時(shí)水溫以及加熱倒計(jì)時(shí)實(shí)時(shí)顯示在液晶屏上面。附圖說(shuō)明圖1為本實(shí)用新型的控制裝置方框圖;圖2為單片機(jī)最小系統(tǒng)模塊電路圖;圖3為獨(dú)立按鍵模塊電路圖;圖4為顯示模塊電路圖;圖5為溫度檢測(cè)模塊電路圖;圖6為電加熱裝置控制電路圖;圖7為蜂鳴報(bào)警模塊電路圖;圖8為主程序流程圖;圖9為倒計(jì)時(shí)啟動(dòng)程序流程圖;圖10為L(zhǎng)CD1602寫(xiě)操作時(shí)序圖;圖11為L(zhǎng)CD1602RAM地址映射圖;圖12為DS18B20時(shí)序圖;圖13為DS18B20寫(xiě)操作時(shí)序圖;圖14為DS18B20讀操作時(shí)序圖。具體實(shí)施方式:現(xiàn)結(jié)合附圖和實(shí)施例對(duì)本實(shí)用新型做進(jìn)一步詳細(xì)描述:本實(shí)用新型是這樣實(shí)現(xiàn)的,包括帶有電加熱裝置的且外包裹保溫層的儲(chǔ)水罐、控制裝置,如圖1所示,其特別之處在于控制裝置包括帶有時(shí)鐘的單片機(jī)最小系統(tǒng)模塊、溫度檢測(cè)模塊、獨(dú)立按鍵模塊、顯示模塊、電源模塊以及以及蜂鳴報(bào)警模塊,電源模塊供5V直流控制電源,加熱裝置需要接通220V交流電,用以快速地進(jìn)行加熱;溫度檢測(cè)模塊的作用是不斷將水溫信號(hào)采集回來(lái),并完成將采集到的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)最后傳輸給單片機(jī)進(jìn)行計(jì)算處理的任務(wù);如圖3所示,獨(dú)立按鍵模塊與顯示模塊是給用戶進(jìn)行指令下達(dá)的,用戶通過(guò)獨(dú)立按鍵設(shè)置水溫或倒計(jì)時(shí);加熱模塊主要由單片機(jī)輸出一個(gè)高或低的電平信號(hào)來(lái)控制繼電器的接通或斷開(kāi),然后再由繼電器控制加熱裝置的開(kāi)關(guān),如圖7所示,聲音報(bào)警模塊主要由蜂鳴器構(gòu)成,實(shí)現(xiàn)當(dāng)溫度超限時(shí)發(fā)聲報(bào)警的功能,工作時(shí),單片機(jī)最小系統(tǒng)模塊依據(jù)使用者當(dāng)前長(zhǎng)時(shí)間使用熱水的記錄時(shí)間或者使用者按鍵輸入的使用熱水的時(shí)間確定使用者下一次使用熱水的習(xí)慣時(shí)間,然后依據(jù)該時(shí)間提前1—2個(gè)小時(shí)啟動(dòng)加熱裝置,使熱水水溫達(dá)到設(shè)定的水溫,當(dāng)使用者長(zhǎng)時(shí)間使用熱水時(shí),單片機(jī)最小系統(tǒng)模塊啟動(dòng)加熱裝置工作,直至水溫達(dá)到設(shè)定的水溫,當(dāng)時(shí)間到了下一次使用熱水的習(xí)慣時(shí)間,使用者沒(méi)有使用熱水時(shí),單片機(jī)最小系統(tǒng)模塊將該習(xí)慣時(shí)間歸零,直至使用者重新長(zhǎng)時(shí)間使用熱水或者使用者按鍵輸入的使用熱水的時(shí)間以重新確定下一次的使用熱水的習(xí)慣時(shí)間。這里,控制裝置中,(1)如圖2所示,單片機(jī)最小系統(tǒng)模塊的CPU的選擇:要實(shí)現(xiàn)電熱水器控制器的功能,單片機(jī)的中央處理器應(yīng)至少具有一個(gè)定時(shí)器中斷,用以實(shí)現(xiàn)倒計(jì)時(shí)的功能,內(nèi)部存儲(chǔ)空間應(yīng)大于4K,還有,需要4個(gè)8位并行I/O接口來(lái)給單片機(jī)與繼電器、液晶顯示屏、蜂鳴器、獨(dú)立按鍵等進(jìn)行通信。選用STC公司生產(chǎn)的STC89C52RC作為控制器,該芯片使用經(jīng)典的MCS-51內(nèi)核,指令代碼與傳統(tǒng)的51單片機(jī)完全兼容,經(jīng)STC公司改進(jìn)后,它相比于傳統(tǒng)8051單片機(jī),不僅擁有更多的定時(shí)器和更大的片內(nèi)數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器,而且性價(jià)比超高,完全可以滿足本系統(tǒng)CPU的要求。STC89C52RC單片機(jī)最小系統(tǒng)由電源電路、復(fù)位電路、時(shí)鐘電路、晶振電路和52單片機(jī)芯片組成,本系統(tǒng)采用STC公司生產(chǎn)的8位STC89C52RC芯片,該芯片的特性如下:有一個(gè)串口通信接口;有掉電模式、空閑模式、正常工作模式3種工作模式;內(nèi)部還有3個(gè)16位定時(shí)/計(jì)數(shù)器,5個(gè)中斷源和32個(gè)I/O口;256字節(jié)的數(shù)據(jù)存儲(chǔ)器,8K容量的程序存儲(chǔ)器足夠我們編程使用。復(fù)位是對(duì)單片機(jī)進(jìn)行初始化的操作,它把PC的地址初始化為0000H,使單片機(jī)的程序從0000H開(kāi)始執(zhí)行,復(fù)位最重要的作用是當(dāng)程序運(yùn)行出錯(cuò)或者造作不當(dāng)導(dǎo)致系統(tǒng)處于死鎖狀態(tài)時(shí),為了回歸正常運(yùn)行狀態(tài),也需要按下復(fù)位鍵重新啟動(dòng)。該系統(tǒng)的晶振電路的晶振頻率是12MHz,STC89C52RC片內(nèi)的振蕩電路由一個(gè)高增益反向放大器構(gòu)成,振蕩電路的輸入輸出端分別為XTAL1和XTAL2。(2)如圖4所示,顯示模塊中的液晶顯示LCD1602:本控制器只需要顯示溫度的設(shè)定值、實(shí)時(shí)值和倒計(jì)時(shí)剩余時(shí)間,因此采用編程簡(jiǎn)單,價(jià)格便宜的LCD1602,它雖然不能顯示中文字符,但可以顯示2行,每行16個(gè)字符,足以滿足本控制器的顯示需求。(3)如圖5所示,溫度檢測(cè)模塊的DS18B20:本控制器作為電熱水器的控制器,主要控制作用就是溫度的測(cè)量和控制,因此,對(duì)溫度傳感器的要求是必須具有防水性能,探測(cè)芯片不會(huì)在探測(cè)的過(guò)程中進(jìn)水;測(cè)量數(shù)據(jù)精準(zhǔn),而測(cè)溫范圍需求不大,只要0℃到80℃;安裝要求簡(jiǎn)單快捷;最關(guān)鍵的要求是它最好由一條線就可以完成數(shù)據(jù)交換和控制。DS18B20是單線數(shù)字溫度傳感器,它最大的優(yōu)點(diǎn)是僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊,即系統(tǒng)中的數(shù)據(jù)交換,控制都由這根線完成;在-10~85℃的溫度范圍內(nèi),測(cè)量精度為0.5℃;還可以在一條單線上并聯(lián)接多個(gè)DS18B20,節(jié)省單片機(jī)I/O口資源。DS18B20是在高速暫存寄存器里以二字節(jié)補(bǔ)碼的形式來(lái)存放轉(zhuǎn)換后的溫度值,高速暫存寄存器一共有9個(gè)字節(jié),其中,D0,D1為分別用來(lái)存放溫度的低8位數(shù)據(jù)和溫度的高8位數(shù)據(jù),因此轉(zhuǎn)換一次溫度一共是16位數(shù)據(jù);如果我們只想讀取溫度的數(shù)據(jù),那么我們只要讀取D0,D1這兩個(gè)字節(jié)就可以了??梢酝ㄟ^(guò)修改DS18B20的配置寄存器中的R1,R0來(lái)改DS18B20的分辨率,如果不改,R1,R0默認(rèn)是1,也就是12位的分辨率,那么,一位就代表0.0625攝氏度。DS18B20的電路引腳圖如圖5所示。(4)如圖6所示,電加熱裝置控制中的繼電器的選擇:由于繼電器是用來(lái)控制使用220V交流電的加熱裝置的通斷的,因此其安全性能十分重要,松樂(lè)的型號(hào)為SRD-05VDC-SL-C的繼電器,該繼電器在負(fù)載區(qū)域與控制區(qū)域之間增加了隔離槽,使得爬行距離與安全距離都符合國(guó)際標(biāo)準(zhǔn),安全性更有保障。而且,要控制此繼電器的通斷只需要由單片機(jī)其中一個(gè)沒(méi)有定義的I/O口(在程序中定義)傳輸來(lái)一個(gè)高低電平信號(hào),這大大節(jié)省了單片機(jī)I/O口的資源,使得控制加熱裝置的開(kāi)關(guān)變得簡(jiǎn)易。由以上各元件組成的實(shí)物圖如圖6所示。繼電器控制電路的工作原理是:繼電器控制區(qū)域的光感PCB17的接口2與單片機(jī)的其中一個(gè)I/O口相連,當(dāng)這個(gè)I/O口傳來(lái)一個(gè)低電平信號(hào),1,2兩端就接通了,LED發(fā)光,光感感應(yīng)到后3和4兩端也接通,這時(shí)負(fù)載區(qū)域的T73線圈也接通,負(fù)載加熱裝置也就接通了。圖中D5是一個(gè)續(xù)流二極管,斷電時(shí),起到消耗線圈電流的作用,保護(hù)三極管Q5不被燒壞。繼電器控制電路圖如圖6所示。(5)如圖3所示,關(guān)于鍵盤(pán)的選擇,單片機(jī)里有獨(dú)立按鍵和矩陣鍵盤(pán)可供選擇,矩陣鍵盤(pán)有16個(gè)按鍵,需要占用單片機(jī)8個(gè)I/O口,由于本設(shè)計(jì)只需要用到啟動(dòng)倒計(jì)時(shí)和對(duì)時(shí)間、溫度進(jìn)行設(shè)定,對(duì)按鍵需求不多,因此,采用容易編程,響應(yīng)速度快和占用I/O口資源小的獨(dú)立按鍵。本控制器用到4個(gè)獨(dú)立按鍵,4個(gè)按鍵均占用一個(gè)I/O口,這4個(gè)按鍵的功能分別是:K1為倒計(jì)時(shí)啟動(dòng)鍵,K2選擇設(shè)定溫度/小時(shí)/分鐘的切換鍵,K3為加1鍵,可用于小時(shí)、分鐘或溫度的加1,K4為減1鍵,可用于小時(shí)、分鐘或溫度的減1。由圖2單片機(jī)最小系統(tǒng)電路引腳圖可知TXD,RXD分別是MCU的P3.1和P3.0口,由圖3可知,單片機(jī)通過(guò)P3.1、P3.0、P3.2、P3.3這4個(gè)I/O口檢測(cè)K1,K2,K3,K4這4個(gè)按鍵的狀態(tài),當(dāng)K1沒(méi)有按下的時(shí)候,P3.1為高電平,而當(dāng)P3.1為低電平時(shí),表示K1被按下從而接通了GND,其他3個(gè)按鍵同理。(6)如圖4所示,要將時(shí)間與溫度清晰,準(zhǔn)確地顯示出來(lái),在單片機(jī)中可采用數(shù)碼管顯示或液晶屏顯示。因?yàn)閱纹瑱C(jī)的數(shù)碼管只能同時(shí)顯示8個(gè)數(shù)字,不能滿足本設(shè)計(jì)要同時(shí)顯示8位時(shí)間與兩個(gè)溫度值的需求,因此,采用LCD1602液晶顯示,可以清晰地顯示2行,每行16位的ASCII碼,即可以顯示英文,數(shù)字或符號(hào)。LCD1602的主要技術(shù)參數(shù)如下表3-1所示,接口信號(hào)說(shuō)明如下表3-2所示,LCD1602與單片機(jī)連接的引腳圖如圖4所示。表3-1LCD1602主要技術(shù)參數(shù)顯示容量:16×2個(gè)字符芯片工作電壓:4.5~5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(WXH)mm表3-2LCD1602接口信號(hào)說(shuō)明編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2DataI/O2VDD電源正極10D3DataI/O3VL液晶顯示偏壓信號(hào)11D4DataI/O4RS數(shù)據(jù)/命令選擇端12D5DataI/O5R/W讀/寫(xiě)選擇端13D6DataI/O6E使能信號(hào)14D7DataI/O7D0DataI/O15BLA背光源正極8D1DataI/O16BLK背光源負(fù)極從上面的LCD1602與單片機(jī)連接的引腳圖可以看出,LCD1602的第一個(gè)引腳VSS,第二個(gè)引腳VDD分別接電源地和電源正極,第三個(gè)引腳VL是液晶顯示偏壓信號(hào),它連接一個(gè)電位器然后接地,我們可以調(diào)節(jié)這個(gè)電位器來(lái)調(diào)節(jié)LCD1602的顯示對(duì)比度,第4個(gè)引腳數(shù)據(jù)/命令選擇端,當(dāng)它是高電平的時(shí)候選擇的是數(shù)據(jù),當(dāng)它是低電平的時(shí)候選擇的是命令,第5個(gè)引腳RS是讀/寫(xiě)選擇端,當(dāng)它是高電平的時(shí)候是選擇讀,當(dāng)它是低電平的時(shí)候是選擇寫(xiě),第6個(gè)引腳是寫(xiě)入數(shù)據(jù)或者命令的使能端。LCD1602與STC89C52RC單片機(jī)芯片的連線需要使用11個(gè)I/O口,分別是P0.1~P0.7、P2.5、P2.6和P2.7,其中,P0.1~P0.7與LCD1602的8個(gè)數(shù)據(jù)I/O口DB0—DB7相連,RS接單片機(jī)的P2.6,RW接單片機(jī)的P2.5,發(fā)送使能端E接單片機(jī)芯片的P2.7。由于本控制器不需要從液晶屏LCD1602中讀取數(shù)據(jù),只需要對(duì)LCD1602進(jìn)行寫(xiě)操作(即顯示),因此讀/寫(xiě)選擇端RW應(yīng)置為低電平。(7)如圖7所示,蜂鳴器電路,其中BZ接的是單片機(jī)的P1.5口,當(dāng)給一個(gè)低電平BZ時(shí),電路接通,高電平則不通,該蜂鳴器的工作原理就是通過(guò)P1.5口給蜂鳴器一定頻率的脈沖信號(hào)從而使它發(fā)出聲響,改變這個(gè)聲音的大小可以通過(guò)修改脈沖的頻率來(lái)實(shí)現(xiàn),即改變每個(gè)高低電平的時(shí)間??刂破鬈浖O(shè)計(jì):為了完成控制器所需要的基本功能,使軟件設(shè)計(jì)思路更加清晰,目的更加明確,程序設(shè)計(jì)按照控制器的功能分成幾個(gè)模塊,然后由主程序調(diào)用它們,例如有溫度檢測(cè)子模塊、液晶顯示模塊、按鍵掃描模塊、蜂鳴器報(bào)警模塊、計(jì)時(shí)模塊等。列出了系統(tǒng)的各個(gè)功能子模塊后,為使編寫(xiě)程序的時(shí)候條理清晰,減少出錯(cuò),故先將后面需要設(shè)計(jì)的各個(gè)子模塊需要用到的I/O進(jìn)行定義,歸納。本系統(tǒng)中單片機(jī)的I/O口資源主要用于五個(gè)模塊,按鍵檢測(cè)模塊使用4個(gè)獨(dú)立按鍵,定義了4個(gè)端口;液晶顯示模塊要定義8根數(shù)據(jù)線和3根控制線,定義了11個(gè)I/O端口;溫度檢測(cè)模塊則定義了DS18B20的控制線;加熱模塊只需要一根控制線把信號(hào)傳輸給繼電器;蜂鳴器報(bào)警模塊同樣只要定義一個(gè)I/O口就夠了。單片機(jī)系統(tǒng)資源分配系統(tǒng)資源分配如下表所示。表4-1單片機(jī)系統(tǒng)資源分配主程序:控制器如何進(jìn)行控制主要是由程序決定的,系統(tǒng)控制加熱裝置是否加熱作出判斷要根據(jù)一定的優(yōu)先級(jí),時(shí)刻檢測(cè)是否有按鍵按下為最高優(yōu)先級(jí),第二優(yōu)先級(jí)是檢測(cè)用戶是否通過(guò)按鍵開(kāi)了定時(shí)功能,最后再判斷時(shí)間是否到了和當(dāng)前溫度是否低于設(shè)定值。當(dāng)然這些檢測(cè)工作都是在一瞬間完成的,控制器在很短的時(shí)間內(nèi)就可以做出決定是否加熱,然后再控制繼電器的工作。本系統(tǒng)的主程序流程圖如圖8所示。按鍵掃描程序:本控制器一共設(shè)定了4個(gè)獨(dú)立按鍵,4個(gè)按鍵的功能如下:K1為啟用定時(shí)器鍵;K2為設(shè)置時(shí)間/小時(shí)/分鐘的切換鍵;K3,K4分別為加1,減1鍵。通過(guò)這4個(gè)按鍵進(jìn)行溫度,時(shí)間的設(shè)定的原理是:K1是啟動(dòng)倒計(jì)時(shí)加熱的功能鍵,當(dāng)用戶需要設(shè)置倒計(jì)時(shí)加熱,這時(shí)只要按一下K1,TR0就置為1,啟動(dòng)了單片機(jī)內(nèi)部的定時(shí)器0計(jì)時(shí),倒計(jì)時(shí)時(shí)鐘也就啟動(dòng)了,此時(shí)若要調(diào)整倒計(jì)時(shí)時(shí)間,可通過(guò)按K2來(lái)進(jìn)行溫度,小時(shí)和分鐘的選定切換,接著再通過(guò)按K3,K4可進(jìn)行小時(shí)/分鐘的修改,效果分別是加1和減1。由于單片機(jī)的運(yùn)行速度很快,檢測(cè)按鍵是否按下的程序語(yǔ)句只需要幾微妙,按鍵的抖動(dòng)很容易讓單片機(jī)檢測(cè)到,以為有按下按鍵,導(dǎo)致錯(cuò)誤地執(zhí)行動(dòng)作。為了防止這種情況的發(fā)生,按鍵檢測(cè)子程序需要加上一段延時(shí)程序再判斷一次,確認(rèn)是否真的按下了按鍵,按鍵檢測(cè)子程序流程圖如圖9所示。LCD1602顯示程序:要將字符顯示在LCD1602液晶屏上,要對(duì)LCD1602進(jìn)行的操作步驟是:初始化,寫(xiě)命令,寫(xiě)數(shù)據(jù)。1.初始化LCD1602顯示模式的初始化如下表所示。表4-2顯示模式初始化指令碼表顯示開(kāi)/關(guān)及光標(biāo)設(shè)置如下表。表4-3顯示開(kāi)/關(guān)及光標(biāo)設(shè)置指令碼表數(shù)據(jù)指針設(shè)置的指令碼如下表所示。表4-4數(shù)據(jù)指針設(shè)置指令碼表指令碼功能80H+地址碼(第一行0-27H,第二行40H-67H)設(shè)置數(shù)據(jù)地址指針對(duì)LCD1602進(jìn)行初始化一共有5個(gè)步驟:1.發(fā)送第一個(gè)命令0x38(即顯示模式初始化化的指令碼00111000),設(shè)置成8位數(shù)據(jù)接口,5×7點(diǎn)陣,16×2顯示;2.第二步要設(shè)置的是顯示開(kāi)/關(guān)及光標(biāo),我們需要開(kāi)顯示(D=1),不用顯示光標(biāo)(C=0),光標(biāo)不閃爍(B=0),對(duì)應(yīng)于指令碼00001DCB就是00001100,轉(zhuǎn)換成16進(jìn)制數(shù)就是0x0c,因此,第二條命令是發(fā)送0x0c。3.同樣的,根據(jù)顯示開(kāi)/關(guān)及光標(biāo)指令碼,當(dāng)每寫(xiě)一個(gè)字符后需要地址指針加一,應(yīng)置N=1,還有,當(dāng)寫(xiě)一個(gè)字符后,整個(gè)屏幕不需要移動(dòng),所以置S=0,由指令碼000001NS,得出00000110,轉(zhuǎn)換成16進(jìn)制數(shù)是0x06,第3條命令是發(fā)送0x06。4.第4步操作是進(jìn)行顯示清屏,指令碼是01H,直接發(fā)送命令01H就可以了。5.最后一步是設(shè)置數(shù)據(jù)指針的起始地址,假如要顯示在第一行的第一位上,由LCD1602RAM地址映射圖可知,第一位的RAM地址是80H,因?yàn)榍懊嬉呀?jīng)設(shè)置了每寫(xiě)一個(gè)字符后指針地址加一,如果要寫(xiě)入坐標(biāo)連續(xù)的字符,就不需要再發(fā)送地址命令了,它的光標(biāo)會(huì)自動(dòng)加一。2.寫(xiě)命令要對(duì)LCD1602進(jìn)行寫(xiě)操作的時(shí)序圖如圖10所示,從LCD1602寫(xiě)操作時(shí)序圖可以看出,如果我們要寫(xiě)命令,首先把數(shù)據(jù)/命令選擇端RS設(shè)置為低電平,接著把讀/寫(xiě)選擇端RW也置低電平選擇寫(xiě),然后將要寫(xiě)入的數(shù)據(jù)放進(jìn)I/O口DB0—DB7,然后至少要延時(shí)幾十納秒,再操作使能端產(chǎn)生一個(gè)高脈沖,這里的高脈沖是有時(shí)間限制的,最小值為150納秒,因此需要再延時(shí)一下,最后把使能端E拉低,這就完成了命令的寫(xiě)入。3.寫(xiě)數(shù)據(jù)寫(xiě)入數(shù)據(jù)的過(guò)程跟寫(xiě)入命令的過(guò)程同理,只是把RS改為高電平就可以了。如果要想在LCD1602可以顯示兩排16個(gè)字符的屏幕上,在具體的坐標(biāo)上顯示字符,就要先寫(xiě)命令(即定位坐標(biāo))再寫(xiě)數(shù)據(jù),LCD1602的第一排的坐標(biāo)是80H+00H,第二排的坐標(biāo)是80H加40H,其余的逐一往后加,LCD1602RAM地址映射圖如圖11所示。DS18B20溫度檢測(cè)程序:DS18B20的操作步驟為:初始化,ROM操作指令,發(fā)送存儲(chǔ)器操作指令,最后再進(jìn)行數(shù)據(jù)傳輸。在使用DS18B20之前,首先要進(jìn)行初始化,目的是確認(rèn)DS18B20是否可以正常工作,由于DS18B20是一個(gè)對(duì)時(shí)間很敏感的器件,因此程序里發(fā)送脈沖的時(shí)候要嚴(yán)格遵循它的時(shí)鐘規(guī)律。DS18B20初始化時(shí)序圖如下,步驟如下,首先由單片機(jī)發(fā)送一個(gè)時(shí)間大致為480ns到960ns的低脈沖,之后再拉高15-60ns等待DS18B20的回應(yīng),如果DS18B20有回應(yīng),它會(huì)把總線拉低60-240ns。說(shuō)明DS18B20狀態(tài)正常,最后釋放總線。如果只要簡(jiǎn)單地讀取溫度值,則不需要對(duì)ROM進(jìn)行操作,步驟如下:1.跳過(guò)ROM操作,指令碼是發(fā)送0CCH;2.發(fā)送溫度轉(zhuǎn)換命令,發(fā)送指令代碼44H開(kāi)始轉(zhuǎn)換,因?yàn)槟J(rèn)使用的是12位的分辨率,因此最大的轉(zhuǎn)換時(shí)間是750ms;3.等待750微秒后,在此跳過(guò)ROM操作;4.發(fā)送讀取溫度的命令;5.讀取溫度值,讀取溫度值要分兩次讀取,先讀取低8位字節(jié),再讀高8位字節(jié),返回的讀取值要連正負(fù)號(hào)一起返回。由于DS18B2020存儲(chǔ)的溫度值是以補(bǔ)碼的形式存儲(chǔ)的,所以我們要得出實(shí)際的溫度值就要先把補(bǔ)碼轉(zhuǎn)換成原碼,因?yàn)檎龜?shù)的補(bǔ)碼是正數(shù)本身,而負(fù)數(shù)的補(bǔ)碼是原碼取反后再加1,因此,在默認(rèn)的12位的分辨率之下(一位就代表0.0625攝氏度),正溫度的實(shí)際值等于讀取值乘以0.0625;負(fù)溫度的實(shí)際值等于讀取值減1,再取反,最后乘以0.0625。定時(shí)中斷計(jì)時(shí)程序:本控制器的倒計(jì)時(shí)功能由STC89C52RC單片機(jī)內(nèi)部的定時(shí)器實(shí)現(xiàn),它相比使用時(shí)鐘芯片DS1302編程更簡(jiǎn)單,且不需要使用單片機(jī)的I/O口資源。使用定時(shí)器也是要進(jìn)行初始化的,操作步驟有如下5步:1.選擇工作方式,選擇控制方式,選擇定時(shí)器或計(jì)數(shù)器模式,這三個(gè)方式的設(shè)定可以通過(guò)給工作方式寄存器一個(gè)值來(lái)同時(shí)設(shè)置好,本程序需要使用定時(shí)器0,且僅由TR0控制定時(shí)器0的中斷,工作方式1,要把C/T位置0;GATE位置為0;M1,M0的值為0,1;指令碼是00000001,即令TMOD=0x01;2.給定時(shí)器/計(jì)數(shù)器賦初值,若要定時(shí)50ms,需要通過(guò)計(jì)算給TH0,TL0賦一個(gè)初值;3.開(kāi)啟定時(shí)器中斷,令ET0=1;4.開(kāi)啟總中斷,令EA=1;5.打開(kāi)定時(shí)器0,令TR0=1,設(shè)置好這5步,定時(shí)器0就開(kāi)始定時(shí)了,且每50ms中斷一次。有了這個(gè)定時(shí)器之后,若需要設(shè)置一個(gè)時(shí)鐘,只要定時(shí)器每中斷一次,利用程序中的變量進(jìn)行計(jì)數(shù),算出一秒鐘需要計(jì)數(shù)多少次即可實(shí)現(xiàn)時(shí)鐘的編程。蜂鳴器報(bào)警程序及控制繼電器程序:查看蜂鳴器電路圖和繼電器電路圖可知,它們都是由單片機(jī)的一個(gè)I/O口控制,而且都是低電平觸發(fā),蜂鳴器由P1.5口控制,單片機(jī)的I/O在使用時(shí)不能沖突,程序中定義沒(méi)有被占用的P3.6為繼電器控制端口,用線把繼電器的控制區(qū)域的信號(hào)端IN與單片機(jī)的P3.6口相連接,就可以實(shí)現(xiàn)用單片機(jī)控制繼電器的通斷,即只要在程序中令P3.6為0,就可以控制加熱了;同理令P1.5為零可使蜂鳴器發(fā)聲。結(jié)果分析:通過(guò)上述硬件電路設(shè)計(jì)與軟件程序設(shè)計(jì)相結(jié)合,本控制器基本能完成電熱水器的基本功能,獨(dú)立按鍵模塊可以實(shí)現(xiàn)啟動(dòng)定時(shí)以及溫度與倒計(jì)時(shí)時(shí)間的設(shè)定;液晶顯示模塊可以準(zhǔn)確,清晰地顯示時(shí)間、溫度的設(shè)定值、溫度的實(shí)時(shí)值和熱水器當(dāng)前的工作狀態(tài);溫度檢測(cè)模塊可以把水溫準(zhǔn)確地檢測(cè)出來(lái);加熱控制模塊可以順利控制加熱裝置的通斷;當(dāng)溫度超出設(shè)定值5℃時(shí),蜂鳴器可以發(fā)聲報(bào)警。倒計(jì)時(shí)時(shí)間未到不加熱,時(shí)間到則進(jìn)行加熱。設(shè)定溫度60度,倒計(jì)時(shí)時(shí)間未到,繼電器關(guān)閉,綠燈不亮,不加熱。當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1