天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234

技術支持

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

更新時間: 2019-03-23

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

       本文介紹了用PIC16C57單片機設計的一種多功能熱水控制器,具有自動和手動加水、設置水溫、實時顯示水量及溫度和報警功能,并且具有結構簡單、可靠性高、成本低等特點。



       關鍵詞: PIC單片機;DS1820數字溫度傳感器;熱水控制器

       引言

       當前市場上的熱水控制器基本上采用雙金屬片溫控,控溫精度低、可靠性差、功能單一。隨著微電子技術的發展,單片微處理器功能日益增強,價格低廉,在各方面得到廣泛應用。在熱水控制器中應用單片機,具有設計簡單、可靠性高、功能易擴展等優點。

  熱水控制器主要實現對水溫的控制,并滿足不同用戶的個性需求。因此一個較完善的控制器應具有以下功能:

  水溫的測量與顯示;

  水量的測量與顯示;

  用戶設定功能(如水溫設定,定時設定等);

  對電加熱管的控制功能;

  一些功能鍵(如定時自動加水,恒溫控制,手動加水,手動加熱等)。

  安全措施(漏電檢測,安全失效保護,限溫保護等)。

2016062716592490122.jpg

圖1 總體布局圖

2016062716592422697.jpg

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

2016062716592453120.jpg

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

2016062716592417987.jpg

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



  硬件電路設計

  根據熱水控制器的功能要求,并結合對PIC16C5X系列單片機的資源分析,采用此系列中的主流型號PIC16C57作為電路系統的控制核心。電熱水控制器的總體布局如圖1所示。

  基本硬件電路圖如圖2(a)~(c)所示。在本系統中,RA0~RA3用于七段碼顯示,RB6控制水閘開關,RB7控制電加熱管,RC3~RC5用于按鍵設計和讀取水量,RC0~RC2用于跟DS1820通信進行水溫測量,RB0~RB1對七段碼進行掃描,RB2~RB5 LED指示燈顯示,RC6漏電檢測,RC7控制揚聲器用于報警和指示。

  水溫測量電路

  測溫元件采用DALLAS的單線數字溫度傳感器DS1820。DS1820提供九位溫度讀數,測量范圍-55℃~125℃,采用獨特1-WIRE 總線協議,只需一根口線即實現與MCU的雙向通訊,具有連接簡單,高精度,高可靠性等特點。在工作時,通過總線向其提供電源,單片機發出指令碼讀取溫度值。

  鍵盤與水量測量電路

  由于在本系統中,只要求顯示四個檔位的水量值,因此水量傳感器采用的是開關式傳感器,當水量達到某一檔時會拉低該檔電平,接口電路與按鍵按下類似。因此在電路設計中,將水量檔位信號與按鍵通過一片74HC148優先編碼器連接到單片機的I/O口上。按鍵的優先權高于水量信號,水量高檔位信號優先權高于低檔位信號,以保證能優先響應按鍵。

  顯示電路

  溫度采用二位七段碼顯示,顯示范圍0℃~99℃。水量采用一位七段顯示,顯示1、2、3、4,四檔水位。對溫度和水量進行循環掃描顯示。四個LED用于當前按鍵功能設定。

  水溫和水量控制電路

  單片機通過光電耦合對繼電器進行控制,用來切斷或接通加熱管電源,關閉或打開水閥,從而達到對水溫和水量的控制。

  漏電檢測及報警電路

  由于熱水器工作在潮濕的場合,因此需具備漏電檢測與報警功能。漏電檢測由漏電檢測線圈的輸出經整形后輸入到RC6口,電路原理圖如圖3(a)所示。當漏電流超過一定閾值時,比較器輸出低電平,否則保持高電平,再通過一單穩態觸發器電路產生如圖3(b)所示波形,低電平保持時間t可由單穩態觸發器進行調整設定。在本系統中t為10ms,由于PIC16C57沒有中斷功能,因此程序中必須每隔一定時間(小于10ms)對RC6口進行查詢,以檢測是否漏電,一旦檢測到RC6變低,經過確認后切斷加熱管電流,同時進行報警。報警電路還在傳感器出現故障、超溫時報警提示。

  PIC16C57本身具有看門狗定時器,當系統出現異常時,能自動進行掉電保護和系統復位。

2016062716592440561.jpg


圖3(a)電路原理圖

2016062716592463135.jpg

圖3(b)波形圖

2016062716592485709.jpg

圖4 系統流程圖

2016062716592475991.jpg

圖5 RTCC原理圖

    

  系統軟件設計

  系統軟件采用PIC16C5X精簡指令編寫。由于PIC16C57沒有中斷功能,因此本系統中鍵盤掃描、漏電檢測等子程序都通過查詢實現,并采用4MHz的時鐘頻率,對指令的運行時間進行了精確計算和設計,保證軟件的可靠性和穩定性。系統主程序框圖如圖4所示,本文討論鍵盤顯示與水溫測量兩個模塊。

  鍵盤和顯示

  本系統中,有四個功能按鍵:定時加水、恒溫控制、手動加水和手動加熱;三個七段碼顯示與四個LED燈指示。

  a) 按下定時加水按鈕時,定時LED變亮,并以當前時間為定時時標,每24小時自動加水至設定水量;若長按此鈕超過5秒,定時LED滅,并聽到“嘟”一聲進行水量設定,此后每按一下鈕,水量顯示加一檔,1~4檔循環顯示,不按此鈕超過5秒,再次聽到“嘟”一聲,水量設定完畢。系統的定時功能主要通過軟件完成。PIC16C5X內帶一個8位定時器/計數器RTCC,在進行24小時定時加水時采用了該定時器,RTCC及其相關電路如圖5所示。

  由圖5可知,RTCC工作狀態由OPTION寄存器控制,其中OPTION寄存器的RTS位用來選擇RTCC的計數信號源,當RTS為“1”時,信號源為來自RTCC引腳的外部信號,RTS為“0”時,信號源為內部時鐘。OPTION寄存器的PSA位控制預分頻器分配對象,當PSA為“1”,分配給RTCC,即外部或內部信號經過預分頻器分頻后再輸出給RTCC。預分頻器的分頻比率由OPTION內的PS0~PS2決定。OPTION的RTE位用于選擇外部計數脈沖的觸發沿,當RTE為"1"時下降沿觸發,“0“時為上升沿觸發。RTCC計數器采用遞增方式計數,當計數至FFH時,在下一個計數發生后,將自動復零,重新開始計數,以此循環下去。在實際設計中,OPTION寄存器為“00100111“,即定時器的信號源來自RTCC引腳的外部信號,預分頻器的分頻比率為1:256,上升沿觸發。RTCC引腳信號的輸入頻率為1kHz,因此RTCC計數至FFH時需65536ms。通用寄存器F0EH、F0FH用作定時暫存。

  當設置定時加水功能時,初始化RTCC、OPTION、F0EH、F0FH,開始進行定時,每隔256ms查詢一次RTCC的值,RTCC每循環一次,F0EH-F0FH增1,當增到1318時,24小時定時到,寄存器復位,自動加水。

  b) 按下恒溫控制鈕,恒溫LED變亮,表示進行恒溫控制,再按一下LED滅,取消恒溫控制。與水量設定類似,長按后,進行溫度設定。

  c) 按下手動加熱鈕時,加熱LED變亮,加熱至65℃,如水量少于1檔,則先加水到1檔,再按一次取消加熱。

  d) 按下手動加水鈕時,加水至設定水量值,長按可設定水量。手動加水過程中,再次按下取消加水。

  正常情況下,兩個七段碼顯示當前水溫,另一個顯示當前水位。

  水溫測量

  溫度讀取是通過與DS1820通信完成。DS1820通信功能是分時完成的,它有嚴格的時隙概念。因此系統對DS1820的各種操作必須按協議進行。操作協議為:初始化DS1820(發復位脈沖 →發ROM功能命令 →發存儲器操作命令 →處理數據)。各操作時序圖如圖6和圖7所示。

  本程序中需用到的操作命令如下:

  SKIPROM命令(CCH):此命令執行后,表示以后的存儲器操作命令將針對在線的所有DS1820,由于本系統中只有一片DS1820,因此發出此命令后,就可對其進行操作。

  CONVERT命令代碼[44H]:啟動在線DS1280進行溫度A/D轉換。
  
  READSCRATCHPAD命令代碼[BEH]:讀取溫度寄存器的溫度值。

  對DS1820操作的總體流程圖如圖8所示。

  其他功能程序

  漏電檢測、數據處理、定時計數等其他功能程序都根據程序運行時間進行了統籌設計,在此不再進行詳述。

2016062716592483839.jpg

圖6 讀寫時序圖

2016062716592438988.jpg

圖7 初始化時序

2016062716592593855.jpg

圖8 DS1820操作流程圖

    

  結語

  電熱水器單片機控制器具有新穎、價廉、安全、實用等優點,并且在國產電熱水器上獲得了成功應用。本文的一些方法也適用于冰箱、空調等家用電器的電腦控制設計中。


404
返回首頁 |  返回上一頁
联系我们: 芜湖市| 旅游| 雷波县| 昭平县| 陇川县| 南康市| 晋城| 汉中市| 漳州市| 航空| 光泽县| 正安县| 太谷县| 称多县| 尼木县| 报价| 麻城市| 井陉县| 综艺| 普洱| 黄山市| 荣昌县| 永吉县| 吉林市| 方城县| 施甸县| 印江| 高青县| 桐梓县| 吴川市| 昌黎县| 贺州市| 邵武市| 汾阳市| 五大连池市| 珲春市| 夏津县| 塔城市| 陆河县| 开封县| 平罗县|