《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 業(yè)界動(dòng)態(tài) > 太陽(yáng)能熱水器中輔助電熱水裝置控制器的開(kāi)發(fā)

太陽(yáng)能熱水器中輔助電熱水裝置控制器的開(kāi)發(fā)

2008-09-09
作者:李向陽(yáng) 莫鴻強(qiáng) 肖 逕 史

??? 摘 要: 介紹了太陽(yáng)能熱水器中輔助電熱水裝置控制器的開(kāi)發(fā),給出了其硬件結(jié)構(gòu)和軟件框圖。硬件電路主要由單片機(jī)AT89C51、時(shí)鐘芯片DS12887、數(shù)/模轉(zhuǎn)換器ADC0809、并行接口82C55、溫度傳感器、水位傳感器和繼電器等組成。該控制器具有時(shí)間顯示、水溫顯示和水位顯示以及三段保溫時(shí)間設(shè)定和溫度設(shè)定功能,還具有加熱器短路保護(hù)" title="短路保護(hù)">短路保護(hù)、漏電流保護(hù)和防干燒等功能。該控制器簡(jiǎn)單可靠,成本較低,已在實(shí)際中應(yīng)用。
??? 關(guān)鍵詞: 控制器? AT89C51? DS12887? ADC0809? 82C55

?

??? 太陽(yáng)能因其具有綠色環(huán)保、無(wú)污染、廉價(jià)等特點(diǎn),越來(lái)越受到人們的喜歡,許多家庭和公共場(chǎng)所都在使用太陽(yáng)能熱水器。但是,太陽(yáng)能受天氣影響很大,當(dāng)夜晚或者陰天陽(yáng)光不足時(shí),水箱中的水可能達(dá)不到設(shè)定溫度。這時(shí)需要采用輔助加熱的方法把水箱中的水加熱到足夠的溫度,以滿(mǎn)足用戶(hù)全天候使用的要求。在輔助加熱方法中,電加熱是一種常用的方式。本文將介紹采用電加熱作為輔助加熱方式的太陽(yáng)能熱水器控制器的開(kāi)發(fā)過(guò)程。所設(shè)計(jì)的控制器具有時(shí)間顯示、水位顯示和溫度顯示,同時(shí)具有三段保溫起止時(shí)間設(shè)定和溫度設(shè)定功能,可以對(duì)一天的三個(gè)時(shí)間段進(jìn)行水箱溫度控制,達(dá)到節(jié)電和滿(mǎn)足不同用戶(hù)使用習(xí)慣的要求;此外,還具有短路保護(hù)、漏電保護(hù)、防干燒、掉電保護(hù)、故障報(bào)警和手動(dòng)控制等功能。
1 控制器的硬件電路設(shè)計(jì)
??? 對(duì)輔助電加熱控制器所要完成的功能進(jìn)行分析后,采用如圖1所示的設(shè)計(jì)方案。該方案以AT89C51單片機(jī)為核心,單片機(jī)在地址鎖存器74LS373的配合下,通過(guò)P1、P2口擴(kuò)展外圍接口電路。接口電路有A/D" title="A/D">A/D轉(zhuǎn)換器ADC0809、時(shí)鐘芯片DS12887以及并行擴(kuò)展接口82C55。ADC0809把熱水器水箱中的水面溫度傳感器(安裝在熱水出水口附近,作實(shí)時(shí)顯示之用)、防干燒溫度傳感器(安裝在加熱電阻絲附近,作防干燒保護(hù)之用)、水位傳感器、電流傳感器、漏電電流傳感器的模擬信號(hào)變成數(shù)字信號(hào),以便單片機(jī)進(jìn)行實(shí)時(shí)顯示、保護(hù)和控制。DS12887內(nèi)有鋰電池,并有114字節(jié)的RAM,可以在控制器斷電時(shí)進(jìn)行準(zhǔn)確計(jì)時(shí),并保存RAM中的數(shù)據(jù)。82C55用于對(duì)8個(gè)LED數(shù)碼管和具有8個(gè)按鍵的鍵盤(pán)進(jìn)行擴(kuò)展。

?


1.1 單片機(jī)與82C55的鍵盤(pán)和顯示接口
??? 鍵盤(pán)和顯示電路如圖2所示。8個(gè)數(shù)碼管采用共陰極連接,82C55的PA口輸出顯示字符的段碼,PB口選擇要顯示的位,它們分別通過(guò)兩片DS75491和兩片DS2003實(shí)現(xiàn)8個(gè)LED數(shù)碼管的段驅(qū)動(dòng)和位驅(qū)動(dòng)。數(shù)碼管的字符顯示采用軟件譯碼和軟件動(dòng)態(tài)掃描的方式,在同一時(shí)間只有一位數(shù)碼管被點(diǎn)亮。8個(gè)數(shù)碼管分別顯示時(shí)間(4位,小時(shí)和分鐘各占兩位)、水溫(兩位)、水位(1位)和設(shè)定標(biāo)識(shí)或者故障標(biāo)識(shí)(1位)。當(dāng)為故障狀態(tài)時(shí),設(shè)定/故障標(biāo)識(shí)位顯示故障代碼(漏電、短路、干燒等故障分別采用特殊的代碼來(lái)表示);當(dāng)為設(shè)定狀態(tài)時(shí),顯示目前設(shè)定內(nèi)容的代碼(如“1”表示進(jìn)行溫度設(shè)定)?鴉在正常工作狀態(tài)時(shí)(不是設(shè)定狀態(tài)和故障狀態(tài)時(shí)),該位滅。由于對(duì)水位的顯示精度要求不高,故水位采用一個(gè)數(shù)碼管顯示,一般情況顯示4段就足以滿(mǎn)足要求。

?


??? 82C55的PC口用于連接8個(gè)按鍵,采用軟件方式去除抖動(dòng)。8個(gè)按鍵分別為用于選擇設(shè)定參數(shù)類(lèi)型的“設(shè)定增加”和“設(shè)定減少”鍵、用于設(shè)定參數(shù)值的“參數(shù)增加”和“參數(shù)減少”鍵、用于設(shè)定完成后的“確認(rèn)”鍵、用于人工清除故障的“故障清除”鍵、用于手動(dòng)控制的“電加熱開(kāi)”和“電加熱關(guān)”鍵。當(dāng)控制器檢測(cè)到故障時(shí),如漏電和短路等,控制器關(guān)閉電加熱器" title="電加熱器">電加熱器,并進(jìn)行故障指示和報(bào)警。此時(shí),如果實(shí)際故障消失(如發(fā)生短路故障時(shí),控制器因保護(hù)作用而關(guān)閉電加熱器電源,此時(shí)短路現(xiàn)象消失),控制器仍然需要保持該故障狀態(tài),則等待用戶(hù)檢查維修完畢后,用戶(hù)按“故障清除”鍵后就能清除保存在控制器中的故障狀態(tài),使控制器繼續(xù)正常工作。這樣可以避免在維修人員沒(méi)有排除故障時(shí),控制器自動(dòng)開(kāi)啟電熱器" title="電熱器">電熱器而引起不必要的事故?!半娂訜衢_(kāi)”和“電加熱關(guān)”的設(shè)置是為了方便用戶(hù)更加自由地使用熱水器,通過(guò)這兩個(gè)鍵,用戶(hù)可以在任何時(shí)間開(kāi)關(guān)電加熱器(不要求在三段保溫時(shí)間之內(nèi)),而且此時(shí)控制器同樣對(duì)溫度進(jìn)行控制和保護(hù),如在手動(dòng)加熱時(shí),如果水溫超過(guò)設(shè)定溫度,控制器自動(dòng)關(guān)閉電加熱。這樣可以避免用戶(hù)手動(dòng)開(kāi)啟電加熱后,忘記關(guān)閉電加熱而浪費(fèi)電能。
1.2 單片機(jī)與ADC0809的接口
??? A/D轉(zhuǎn)換器ADC0809與單片機(jī)的連接如圖3所示。 ADC0809的8個(gè)模擬量輸入采用了其中的5個(gè)通道,分別連接水溫、電流、漏電、干燒和水位的測(cè)量和變換電路的輸出。ADC0809的時(shí)鐘由AT89C51的ALE信號(hào)提供,根據(jù)ACD0809對(duì)工作時(shí)鐘的要求和控制器對(duì)漏電和短路信號(hào)的反應(yīng)速度的要求,ADC0809時(shí)鐘頻率取為667kHz,則AT89C51的時(shí)鐘頻率選為4MHz,這樣?熏若A/D轉(zhuǎn)換的時(shí)間為0.1ms,則控制器循環(huán)采樣完5個(gè)模擬輸入信號(hào)需要0.5ms時(shí)間。這樣的采樣速度足夠滿(mǎn)足漏電和短路的保護(hù)要求。

?


1.3 單片機(jī)與時(shí)鐘芯片DS12887的接口和控制輸出電路
??? AT89C51與DS12887的接口和控制輸出電路如圖4所示。單片機(jī)的P1口為電熱水器和報(bào)警器的控制輸出,對(duì)電熱水器的控制是通過(guò)三極管進(jìn)行功率放大后驅(qū)動(dòng)大功率繼電器然后再驅(qū)動(dòng)電加熱絲來(lái)實(shí)現(xiàn)的,對(duì)報(bào)警器的控制是通過(guò)三極管驅(qū)動(dòng)直流蜂鳴器來(lái)實(shí)現(xiàn)的,通過(guò)控制蜂鳴器的接通和斷開(kāi)時(shí)間可以發(fā)出不同長(zhǎng)短的斷續(xù)報(bào)警聲。

?


??? DS12887是內(nèi)部帶有不易失性RAM的實(shí)時(shí)時(shí)鐘電路,在控制器中用于進(jìn)行實(shí)時(shí)計(jì)時(shí)并在掉電時(shí)保存用戶(hù)設(shè)置參數(shù)和故障狀態(tài)參數(shù)等重要參數(shù)。圖4中DS12887的MOT腳接地。由于DS12887與AT89C51的復(fù)位信號(hào)剛好相反,所以要通過(guò)一個(gè)反相器進(jìn)行連接。DS12887內(nèi)部有地址鎖存器,不需要像82C55那樣通過(guò)74LS373把地址和數(shù)據(jù)分開(kāi),可以按照?qǐng)D4的方式進(jìn)行直接連接,通過(guò)連接AT89C51的ALE腳和DS12887的AS腳來(lái)進(jìn)行地址和數(shù)據(jù)的識(shí)別。
2 控制器的軟件設(shè)計(jì)
??? 從控制器的功能和硬件設(shè)計(jì)可以看出,控制器的軟件部分可以自然地分成初始化模塊、模擬輸入和計(jì)時(shí)模塊、故障判斷和控制邏輯處理模塊、鍵盤(pán)處理" title="鍵盤(pán)處理">鍵盤(pán)處理和LED顯示模塊等,這些模塊通過(guò)單片機(jī)的RAM和DS12887的非易失RAM交換數(shù)據(jù)。圖5為控制器的主程序框圖。

??? 初始化模塊對(duì)單片機(jī)的堆棧指針、中斷寄存器、全局變量和初始化定時(shí)器0等進(jìn)行初始化。定時(shí)器0作為動(dòng)態(tài)顯示和鍵盤(pán)掃描定時(shí)之用。輸出控制子程序把控制邏輯模塊的運(yùn)算結(jié)果輸出到單片機(jī)的P1口,執(zhí)行電熱器的控制和報(bào)警功能。
??? 鍵盤(pán)處理和LED顯示模塊包括鍵盤(pán)處理和LED數(shù)碼管顯示兩部分,其程序框圖如圖6所示。單片機(jī)通過(guò)82C55的PC口讀取按鍵狀態(tài),去除抖動(dòng)后得到按鍵狀態(tài),根據(jù)按鍵狀態(tài)得到用戶(hù)輸入的鍵值,然后根據(jù)不同的鍵值進(jìn)行散轉(zhuǎn)處理,包括設(shè)定參數(shù)類(lèi)型、設(shè)置電熱器手動(dòng)開(kāi)關(guān)、參數(shù)設(shè)置和故障清除等處理。在參數(shù)設(shè)置部分還根據(jù)目前設(shè)置參數(shù)的種類(lèi)對(duì)參數(shù)進(jìn)行修改和保存(保存在DS12887的RAM中),按“確認(rèn)”鍵后,當(dāng)前的設(shè)定值代替原來(lái)的設(shè)定值;若不按“確認(rèn)”鍵,原來(lái)的設(shè)定值不改變。當(dāng)超過(guò)20s無(wú)鍵按下,則控制器自動(dòng)退出設(shè)定狀態(tài)。顯示部分根據(jù)控制器的工作狀態(tài)和用戶(hù)的操作情況進(jìn)行實(shí)時(shí)顯示,當(dāng)同時(shí)有多個(gè)內(nèi)容需要顯示時(shí),故障指示狀態(tài)優(yōu)先。

?

??? 單片機(jī)通過(guò)模擬輸入和計(jì)時(shí)模塊得到溫度、電流和時(shí)間數(shù)據(jù),以便進(jìn)行顯示和保護(hù)。圖7為模擬輸入和計(jì)時(shí)模塊程序流程圖。單片機(jī)周期地讀取A/D轉(zhuǎn)換的值并進(jìn)行數(shù)字濾波,然后根據(jù)每個(gè)物理量的相應(yīng)的測(cè)量計(jì)算公式將其轉(zhuǎn)換成水面溫度(用于顯示和加熱控制)、干燒溫度(用于干燒保護(hù))、電熱器電流(用于短路保護(hù))、漏電電流(用于漏電保護(hù))和水位(用于顯示、報(bào)警和低水位加熱保護(hù))的具體數(shù)值。該模塊還通過(guò)與DS12887通信得到實(shí)時(shí)時(shí)間,用于顯示和三段時(shí)間段內(nèi)的溫度自動(dòng)控制。

?


??? 圖8為故障判斷和控制邏輯處理程序流程圖,包括故障判斷和控制邏輯處理兩部分。當(dāng)故障判斷程序檢測(cè)到漏電、短路、干燒、低水位等故障,則關(guān)閉加熱器電源、在故障指示位顯示故障代碼、發(fā)出相應(yīng)的聲音報(bào)警、保存故障狀態(tài);如果溫度低于低溫報(bào)警溫度設(shè)定值,并且在三段保溫設(shè)定時(shí)間段內(nèi),則顯示低溫報(bào)警,但不進(jìn)行聲音報(bào)警,以免過(guò)多打擾用戶(hù)。當(dāng)不在三段保溫時(shí)間內(nèi)時(shí),不進(jìn)行溫度控制。當(dāng)沒(méi)有漏電、短路、干燒、低水位故障發(fā)生時(shí),控制器根據(jù)用戶(hù)設(shè)置的三段保溫時(shí)間、三段保溫時(shí)間內(nèi)的設(shè)定溫度和當(dāng)前溫度測(cè)量值進(jìn)行溫度控制。由于對(duì)控制水溫的精度要求不高,采用簡(jiǎn)單的開(kāi)關(guān)控制。其控制算法如下:當(dāng)水溫低于設(shè)定溫度2℃時(shí)啟動(dòng)電熱器;當(dāng)水溫高于設(shè)定溫度2℃時(shí)停止電熱器加熱;當(dāng)水溫在設(shè)定溫度±2℃時(shí)保持加熱器原來(lái)狀態(tài)。需要注意的是,該模塊的控制輸出結(jié)果是寫(xiě)入到單片機(jī)的RAM中的,在控制輸出模塊中再把這些結(jié)果輸出到單片機(jī)的P1口,實(shí)現(xiàn)真正的輸出,這與許多PLC的模塊化軟件設(shè)計(jì)是一樣的。

?


??? 本文介紹了一種太陽(yáng)能熱水器中輔助電熱水裝置控制器的開(kāi)發(fā),給出了硬件設(shè)計(jì)和軟件框圖。從控制器的功能和硬件設(shè)計(jì)來(lái)看,該控制器功能全面、技術(shù)成熟可靠、經(jīng)濟(jì)實(shí)用,它的成功開(kāi)發(fā)使用戶(hù)能全天候地使用太陽(yáng)能熱水器。
參考文獻(xiàn)
1 余永權(quán).ATMEL89系列Flash單片機(jī)原理及應(yīng)用.北京:電子工業(yè)出版社,1997
2 李 華.MCS-51系列單片機(jī)實(shí)用接口技術(shù).北京:北京航空航天大學(xué)出版社,1993
3 王福瑞.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全.北京:北京航空航天大學(xué)出版社,1999
4 屠立德.操作系統(tǒng)基礎(chǔ).北京:清華大學(xué)出版社,1997

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118;郵箱:aet@chinaaet.com。