<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于PIC單片機的熱水控制器設計

基于PIC單片機的熱水控制器設計

作者:上海交通大學(xué)電子信息與電氣工程學(xué)院,甘賢海,丁國清 時(shí)間:2004-06-25 來(lái)源:電子設計應用2003年第5期 收藏
摘 要 : 本文介紹了用PIC16C57單片機設計的一種多功能,具有自動(dòng)和手動(dòng)加水、設置水溫、實(shí)時(shí)顯示水量及溫度和報警功能,并且具有結構簡(jiǎn)單、可靠性高、成本低等特點(diǎn)。

關(guān)鍵詞: ;;

引言
當前市場(chǎng)上的基本上采用雙金屬片溫控,控溫精度低、可靠性差、功能單一。隨著(zhù)微電子技術(shù)的發(fā)展,單片微處理器功能日益增強,價(jià)格低廉,在各方面得到廣泛應用。在熱水控制器中應用單片機,具有設計簡(jiǎn)單、可靠性高、功能易擴展等優(yōu)點(diǎn)。
熱水控制器主要實(shí)現對水溫的控制,并滿(mǎn)足不同用戶(hù)的個(gè)性需求。因此一個(gè)較完善的控制器應具有以下功能:
水溫的測量與顯示;
水量的測量與顯示;
用戶(hù)設定功能(如水溫設定,定時(shí)設定等);
對電加熱管的控制功能;
一些功能鍵(如定時(shí)自動(dòng)加水,恒溫控制,手動(dòng)加水,手動(dòng)加熱等)。
安全措施(漏電檢測,安全失效保護,限溫保護等)。


圖1 總體布局圖


2(a)基本溫度水溫測量電路


圖2 (b)基本顯示電路圖圖


圖2(c)水閘加熱管控制電路

硬件電路設計
根據熱水控制器的功能要求,并結合對PIC16C5X系列單片機的資源分析,采用此系列中的主流型號PIC16C57作為電路系統的控制核心。電熱水控制器的總體布局如圖1所示。
基本硬件電路圖如圖2(a)~(c)所示。在本系統中,RA0~RA3用于七段碼顯示,RB6控制水閘開(kāi)關(guān),RB7控制電加熱管,RC3~RC5用于按鍵設計和讀取水量,RC0~RC2用于跟DS1820通信進(jìn)行水溫測量,RB0~RB1對七段碼進(jìn)行掃描,RB2~RB5 LED指示燈顯示,RC6漏電檢測,RC7控制揚聲器用于報警和指示。
水溫測量電路
測溫元件采用DALLAS的單線(xiàn)數字溫度傳感器DS1820。DS1820提供九位溫度讀數,測量范圍-55℃~125℃,采用獨特1-WIRE 總線(xiàn)協(xié)議,只需一根口線(xiàn)即實(shí)現與MCU的雙向通訊,具有連接簡(jiǎn)單,高精度,高可靠性等特點(diǎn)。在工作時(shí),通過(guò)總線(xiàn)向其提供電源,單片機發(fā)出指令碼讀取溫度值。
鍵盤(pán)與水量測量電路
由于在本系統中,只要求顯示四個(gè)檔位的水量值,因此水量傳感器采用的是開(kāi)關(guān)式傳感器,當水量達到某一檔時(shí)會(huì )拉低該檔電平,接口電路與按鍵按下類(lèi)似。因此在電路設計中,將水量檔位信號與按鍵通過(guò)一片74HC148優(yōu)先編碼器連接到單片機的I/O口上。按鍵的優(yōu)先權高于水量信號,水量高檔位信號優(yōu)先權高于低檔位信號,以保證能優(yōu)先響應按鍵。
顯示電路
溫度采用二位七段碼顯示,顯示范圍0℃~99℃。水量采用一位七段顯示,顯示1、2、3、4,四檔水位。對溫度和水量進(jìn)行循環(huán)掃描顯示。四個(gè)LED用于當前按鍵功能設定。
水溫和水量控制電路
單片機通過(guò)光電耦合對繼電器進(jìn)行控制,用來(lái)切斷或接通加熱管電源,關(guān)閉或打開(kāi)水閥,從而達到對水溫和水量的控制。
漏電檢測及報警電路
由于熱水器工作在潮濕的場(chǎng)合,因此需具備漏電檢測與報警功能。漏電檢測由漏電檢測線(xiàn)圈的輸出經(jīng)整形后輸入到RC6口,電路原理圖如圖3(a)所示。當漏電流超過(guò)一定閾值時(shí),比較器輸出低電平,否則保持高電平,再通過(guò)一單穩態(tài)觸發(fā)器電路產(chǎn)生如圖3(b)所示波形,低電平保持時(shí)間t可由單穩態(tài)觸發(fā)器進(jìn)行調整設定。在本系統中t為10ms,由于PIC16C57沒(méi)有中斷功能,因此程序中必須每隔一定時(shí)間(小于10ms)對RC6口進(jìn)行查詢(xún),以檢測是否漏電,一旦檢測到RC6變低,經(jīng)過(guò)確認后切斷加熱管電流,同時(shí)進(jìn)行報警。報警電路還在傳感器出現故障、超溫時(shí)報警提示。
PIC16C57本身具有看門(mén)狗定時(shí)器,當系統出現異常時(shí),能自動(dòng)進(jìn)行掉電保護和系統復位。


圖3(a)電路原理圖


圖3(b)波形圖


圖4 系統流程圖


圖5 RTCC原理圖

系統軟件設計
系統軟件采用PIC16C5X精簡(jiǎn)指令編寫(xiě)。由于PIC16C57沒(méi)有中斷功能,因此本系統中鍵盤(pán)掃描、漏電檢測等子程序都通過(guò)查詢(xún)實(shí)現,并采用4MHz的時(shí)鐘頻率,對指令的運行時(shí)間進(jìn)行了精確計算和設計,保證軟件的可靠性和穩定性。系統主程序框圖如圖4所示,本文討論鍵盤(pán)顯示與水溫測量?jì)蓚€(gè)模塊。
鍵盤(pán)和顯示
本系統中,有四個(gè)功能按鍵:定時(shí)加水、恒溫控制、手動(dòng)加水和手動(dòng)加熱;三個(gè)七段碼顯示與四個(gè)LED燈指示。
a) 按下定時(shí)加水按鈕時(shí),定時(shí)LED變亮,并以當前時(shí)間為定時(shí)時(shí)標,每24小時(shí)自動(dòng)加水至設定水量;若長(cháng)按此鈕超過(guò)5秒,定時(shí)LED滅,并聽(tīng)到“嘟”一聲進(jìn)行水量設定,此后每按一下鈕,水量顯示加一檔,1~4檔循環(huán)顯示,不按此鈕超過(guò)5秒,再次聽(tīng)到“嘟”一聲,水量設定完畢。系統的定時(shí)功能主要通過(guò)軟件完成。PIC16C5X內帶一個(gè)8位定時(shí)器/計數器RTCC,在進(jìn)行24小時(shí)定時(shí)加水時(shí)采用了該定時(shí)器,RTCC及其相關(guān)電路如圖5所示。由圖5可知,RTCC工作狀態(tài)由OPTION寄存器控制,其中OPTION寄存器的RTS位用來(lái)選擇RTCC的計數信號源,當RTS為“1”時(shí),信號源為來(lái)自RTCC引腳的外部信號,RTS為“0”時(shí),信號源為內部時(shí)鐘。OPTION寄存器的PSA位控制預分頻器分配對象,當PSA為“1”,分配給RTCC,即外部或內部信號經(jīng)過(guò)預分頻器分頻后再輸出給RTCC。預分頻器的分頻比率由OPTION內的PS0~PS2決定。OPTION的RTE位用于選擇外部計數脈沖的觸發(fā)沿,當RTE為"1"時(shí)下降沿觸發(fā),“0“時(shí)為上升沿觸發(fā)。RTCC計數器采用遞增方式計數,當計數至FFH時(shí),在下一個(gè)計數發(fā)生后,將自動(dòng)復零,重新開(kāi)始計數,以此循環(huán)下去。在實(shí)際設計中,OPTION寄存器為“00100111“,即定時(shí)器的信號源來(lái)自RTCC引腳的外部信號,預分頻器的分頻比率為1:256,上升沿觸發(fā)。RTCC引腳信號的輸入頻率為1kHz,因此RTCC計數至FFH時(shí)需65536ms。通用寄存器F0EH、F0FH用作定時(shí)暫存。當設置定時(shí)加水功能時(shí),初始化RTCC、OPTION、F0EH、F0FH,開(kāi)始進(jìn)行定時(shí),每隔256ms查詢(xún)一次RTCC的值,RTCC每循環(huán)一次,F0EH-F0FH增1,當增到1318時(shí),24小時(shí)定時(shí)到,寄存器復位,自動(dòng)加水。
b) 按下恒溫控制鈕,恒溫LED變亮,表示進(jìn)行恒溫控制,再按一下LED滅,取消恒溫控制。與水量設定類(lèi)似,長(cháng)按后,進(jìn)行溫度設定。
c) 按下手動(dòng)加熱鈕時(shí),加熱LED變亮,加熱至65℃,如水量少于1檔,則先加水到1檔,再按一次取消加熱。
d) 按下手動(dòng)加水鈕時(shí),加水至設定水量值,長(cháng)按可設定水量。手動(dòng)加水過(guò)程中,再次按下取消加水。
正常情況下,兩個(gè)七段碼顯示當前水溫,另一個(gè)顯示當前水位。
水溫測量
溫度讀取是通過(guò)與DS1820通信完成。DS1820通信功能是分時(shí)完成的,它有嚴格的時(shí)隙概念。因此系統對DS1820的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS1820(發(fā)復位脈沖 →發(fā)ROM功能命令 →發(fā)存儲器操作命令 →處理數據)。各操作時(shí)序圖如圖6和圖7所示。
本程序中需用到的操作命令如下:
SKIPROM命令(CCH):此命令執行后,表示以后的存儲器操作命令將針對在線(xiàn)的所有DS1820,由于本系統中只有一片DS1820,因此發(fā)出此命令后,就可對其進(jìn)行操作。
CONVERT命令代碼[44H]:?jiǎn)?dòng)在線(xiàn)DS1280進(jìn)行溫度A/D轉換。
READSCRATCHPAD命令代碼[BEH]:讀取溫度寄存器的溫度值。
對DS1820操作的總體流程圖如圖8所示。
其他功能程序
漏電檢測、數據處理、定時(shí)計數等其他功能程序都根據程序運行時(shí)間進(jìn)行了統籌設計,在此不再進(jìn)行詳述。


圖6 讀寫(xiě)時(shí)序圖


圖7 初始化時(shí)序


圖8 DS1820操作流程圖

結語(yǔ)
電熱水器單片機控制器具有新穎、價(jià)廉、安全、實(shí)用等優(yōu)點(diǎn),并且在國產(chǎn)電熱水器上獲得了成功應用。本文的一些方法也適用于冰箱、空調等家用電器的電腦控制設計中?!?/P>

參考文獻
1 李東星,陳小牧. PIC16C5X系列單片機應用設計.北京:電子工業(yè)出版社.1996.1
2 Dallas Corp., DS18B20 Programmable Resolution One—Wire Digital Thermometer
3 《單線(xiàn)數字溫度傳感器資料》,武漢力源電子有限公司.1996.1
4 徐惠民等.單片微型計算機原理接口應用.北京郵電學(xué)院出版社.1989



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>