一款自動太陽能熱水器溫控設計
溫度顯示系統及水位指示系統如圖2 ,顯示電路用兩個數碼管顯示溫度,采用動態顯示方案,兩個數碼管為共陽型,兩個三極管為PNP型,7個I/O端口輸出段碼,小數點不用,2個I/O端口輸出位控制信號低電平有效,顯示溫度設定值、實際溫度測量值。用六個發光二極管作為六檔水位指示(10%、30%、50%、70%、90%、100%),由89C51 直接驅動。
水位選擇電路、鍵盤電路及輸出控制電路的組成如圖3 。
CPU 根據數據采集系統采集的數據,當水位低于10 %時,自動報警并停止電加熱,當水位高于90%時,自動報警并停止加水。根據水位傳感器的數據,自動加水至水位設定的檔位。通常,用LED顯示器顯示實際水溫,當水溫低于3 ℃時,為防凍自動電加熱,當無手動加熱標志時,加熱至25 ℃,當有手動加熱標志時,加熱至設定的溫度,設定溫度的范圍為25℃至65℃。
3 軟件設計
全部程序采用89C51匯編語言編寫,由主程序、鍵盤服務程序、水溫水位采樣計算程序、水位調節程序、顯示程序、報警程序等模塊組成。程序中加入了防死機及抗干擾措施。
水溫水位采樣計算程序為抗干擾均采用了去極值平均濾波的數字濾波算法,分別連續10次采樣,將其累加求和,同時找出其中的最大值和最小值,再從累加和中減去最大值和最小值,按8個采樣值求平均值,在RAM中開辟出水溫水位各10個數據的暫存區。
鍵盤服務程序對于去抖動、連擊等情況都做了妥善處理。
4 結語
該系統投入實際應用以來效果良好,深受用戶的歡迎,收到了良好的經濟及社會效益。
評論