【正文】
因為系統(tǒng)采用分段式水位檢測,若采用能量守恒的方法對提前加熱時間進(jìn)行預(yù)算,也同樣得不到精確的結(jié)果。這樣做至少有兩個優(yōu)點(diǎn):一是系統(tǒng)在不進(jìn)行設(shè)定時,就認(rèn)定該設(shè)定值和先前一次一樣,解決了每次開機(jī)總要從頭設(shè)定的問題,另一個是若系統(tǒng)在運(yùn)行中間停電而再次來電時,可以不用重新設(shè)定,就能按原設(shè)定值對溫度進(jìn)行控制,增強(qiáng)了控制器適應(yīng)外界變化的能力。用戶接收到實時溫度水位數(shù)據(jù),通過按鍵設(shè)定用戶所需的溫度和水位,按鍵信息輸入單片機(jī),單片機(jī)將用戶設(shè)定數(shù)據(jù)與傳感器輸入實際數(shù)據(jù)進(jìn)行分析計算,控制水閥調(diào)節(jié)熱水箱的水溫與水位,直到達(dá)到用戶設(shè)定的溫度水位值后返回。在主程序中采用了查表方法進(jìn)行輔助加熱提前量預(yù)。根據(jù)這一要求,控制器軟件設(shè)計采用模塊化結(jié)構(gòu),包括主程序、鍵盤中斷子程序、SD2200 更新周期結(jié)束中斷子程序、LED顯示子程序和提前加熱時間計算子程序等。 31 第四章:太陽能熱水器控制器的軟件設(shè)計熱水器不論在什么樣的天氣里,都能夠在設(shè)定的時間向用戶提供設(shè)定溫度的熱水,從而給用戶帶來便利。線路保護(hù)裝置采用帶字庫的 LCM12864ZK 液晶顯示器,顯示部分分為三個菜單分別為“溫度”,“水位”,“時間”,在用戶未進(jìn)入按鍵設(shè)置時,三個菜單分別顯示水箱的實時溫度,實時水位和時間。LCM12864的 CS為片選管腳,SDA 為數(shù)據(jù)輸入管腳,SCK脈沖輸入管腳 [9]。該模塊可實現(xiàn)漢字、ASCII碼、點(diǎn)陣圖形的同屏顯示,廣泛用于各種儀器儀表、家用電器及通信產(chǎn)品中 [8] 。為了適應(yīng)多種微處理器和單片機(jī)接口的需要,模塊提供了4位/8位并行、2線/3線串行多種接口方式。該模塊具有2 MB 的中文字型ROM(CGROM),共提供8192 個1616點(diǎn)陣中文字型;同時,為了便于英文和其他常用字符的顯示,具有16 KB半寬字型ROM(HCGROM),提供128個168點(diǎn)陣的字母符號字型;另外,繪圖顯示畫面還提供一個64256點(diǎn)陣的繪圖區(qū)域(GDRAM)及240點(diǎn)的ICONRAM,可以和文字畫面混合顯示,且內(nèi)含CGRAM可提供 4組軟件可編程的 1616點(diǎn)陣造字功能 [7] 。 顯示 器部分 顯示器 LCM12864ZK 簡介LCM12864ZK顯示器是具有串/并行接口,內(nèi)部含有中文字庫的圖形點(diǎn)陣液晶顯示模塊,其內(nèi)置的控制/驅(qū)動器采用中國臺灣矽創(chuàng)電子公司生產(chǎn)的ST7920,因而具有較強(qiáng)的控制顯示功能。 鍵盤電路部分 鍵盤電路 29 圖 321 鍵盤接口電路如圖,當(dāng)按鍵按下時,電容一端由高電平變?yōu)榈碗娖?,按鍵彈起式,又由低電平變?yōu)楦唠娖?,電容充電,相?yīng)的鍵盤電路接通。 玻璃封裝更可靠;水溫傳感器由于采用美國玻璃封裝,具有高精度和高穩(wěn)定性,可在高溫和高濕等惡劣環(huán)境下進(jìn)行精確測溫。 高溫一次模壓成型不滲水;傳感器在200℃高溫下一次壓成型避免了傳統(tǒng)傳感器因多種材料組成、手工封裝生產(chǎn),容易滲水而導(dǎo)致傳感器失靈現(xiàn)象的產(chǎn)生內(nèi)部使用熱縮材料,可靠性高;傳統(tǒng)傳感器采用熱縮材料進(jìn)行多層封裝,但因上水、加熱等因素帶來水箱水溫的變化,使得熱縮材料的性能發(fā)生變化(因材料膨脹系數(shù)不同,又經(jīng)多次的熱漲縮) ,致使傳統(tǒng)傳感器密封失效,最終導(dǎo)致其失靈。其信號線耐高溫,壽命長;傳感器內(nèi)部信號線全部采用耐高溫280℃高溫+5V R310R21MS9014OUT電 極圖 320 水位檢測裝置圖 319 水位檢測原理圖 28 導(dǎo)線,避免信號線高溫老化現(xiàn)象的產(chǎn)生,使用壽命更長。5VOUT當(dāng)水位達(dá)到檢測時, ?? 極 ?????<?,為低電平。水位檢測電路如圖312所示。圖 318 狀態(tài)寄存器_狀態(tài)寄存器 _2 讀/寫 27 水位檢測部分 水位檢測原理水位的檢測選用電極檢測方案。當(dāng)SD2200接收完秒數(shù)據(jù)同時發(fā)出ACK信號給CPU ,從此新的計時開始 [5] 。在實時時鐘數(shù)據(jù)寫入時,如有ACK信號緊跟著實時時鐘數(shù)據(jù)寫命令,則日歷和時間計數(shù)器將被復(fù)位,并將停止內(nèi)部時間累加操作。寫數(shù)據(jù)時,當(dāng)檢測到開始條件后,實時時鐘開始接收器件代碼和命令。當(dāng)讀/寫位為“1”時,此時進(jìn)入實時時鐘讀取模式或狀態(tài)寄存器讀取模式,數(shù)據(jù)則從LSB依次輸出。時鐘芯片與單片機(jī)接口電路如下圖所示。AVR單片機(jī)功能很強(qiáng)它帶有TWI接口,可以直接ATmega16的硬件I 2C接口來對外圍I 2C器件進(jìn)行操作,非常方便有效。 24 SD2200 的工作原理時鐘調(diào)整寄存器實時時鐘電路( 年 / 月 / 日 / 星期 / 時 / 分 / 秒 )低壓檢測電路電源切換電路振蕩電路定時中斷 2定時中斷 1串行E E P R O M( 2 K b i t 2 5 6 K b i t )S D 2 2 0 0 L 系列單片機(jī)S C L ES D A ES D AS C LI N T 2I N T 1V D D圖 314 SD2200 時鐘芯片工作原理框圖 時鐘芯片與單片機(jī)接口電路SD2200既有實時芯片的功能,又可以存儲數(shù)據(jù)到內(nèi)置E 2PROM中。 I 2C 總線 CPU 接口。年、月、日、星期、時、分、秒的 BCD碼輸入/輸出。SD2200 的引腳圖如 313 所示。內(nèi)置一次性電池,電池使用壽命可在五年左右(工業(yè)級和民用級時間不同)。5ppm(在 25177。 SD2200 系列實時時鐘芯片簡介SD2200L 系列是一種具有內(nèi)置晶振、支持 I2C 總線的高精度實時時鐘芯片。5ppm(在 25177。圖 312 DS18B20 并聯(lián)與單片機(jī)接口電路圖23 22 21 20 21 22 23 24S S S S S 26 25 24 23 圖 313 SD2200 時鐘芯片引腳圖 時鐘電路部分本設(shè)計選用時鐘芯片 SD2200。圖中為兩個DS18B20并聯(lián)情況。 DS18B20 溫度傳感器的多點(diǎn)測量本設(shè)計需要兩個DS1820溫度傳感器,分別測量水箱溫度和太陽能集熱器中的溫度。為了提高測量精度,DS18B20 采用 12 位 A/D 轉(zhuǎn)換方式,百分位的數(shù)據(jù)采用“四舍五入”的原則處理。7)256+A]℃。(2)精度處理DS18B20 完成對溫度的測量,以 16 位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,默認(rèn)以 ℃/LSB 形式表達(dá),其中 S 為符號位。首先將 DS18B20 與水銀溫度計一同放入溫水中,改變水溫并分別測定和校正,再執(zhí)行標(biāo)定程序?qū)囟扔嬜x數(shù)由鍵盤輸入,啟動DS18B20 并自動將溫度對應(yīng)的轉(zhuǎn)換值讀入 Atmega16 的 EEPROM 內(nèi)存,溫度轉(zhuǎn)換值的對應(yīng)值自動存儲,再執(zhí)行處理程序,計算出回歸方程的各個系數(shù),并存儲在另一文本中,開啟使用時控制器自動調(diào)用查詢。G N D 控制器寫 0 時間隙 6 0 T X ‘ 0 ’ 2 4 0 u s控制器寫 1 時間隙1 u s T r e c ∞ 1 u s1 5 u s1 5 u s3 0 u s1 5 u sD S 1 8 2 0M I N T Y P M A XD S 1 8 2 0 采樣M I N T Y P M A X1 5 u s3 0 u s圖 311 DS18B20 寫時序圖 溫度標(biāo)定與精度處理(1)溫度標(biāo)定水溫信號由 DS18B20 測量,將測量數(shù)據(jù)傳給 Atmega16 進(jìn)行相應(yīng)處理,存人 Atmega16 的 EEPROM,顯示于液晶顯示屏。再將數(shù)據(jù)線拉到高電平。G N D控制器采樣 1 u s1 5 u s1 5 u s 3 0 u s 1 5 u s 控制器讀 0 時間隙 控制器采樣控制器讀 1 時間隙1 u s T r e c ∞ 21 圖 310 DS18B20 讀時序圖DS18B20 的寫操作如圖 311 所示,數(shù)據(jù)線先置電平“0” ,延時確定的時間為 15 微秒然后按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位) 。 延時 15 微秒。延時 15 微秒。V C C單線總線控制器 T X 復(fù)位脈沖 4 8 0 u s m i n 9 6 0 u s m a x D S 1 8 2 0等待 1 5 6 0 u s D S 1 8 2 0 存在脈沖 6 0 2 4 0 u s 控制器 R X 4 8 0 u s m i n G N D圖 39 DS18B20 初始化時序圖DS18B20 讀程序如圖 310 所示,首先將數(shù)據(jù)線拉高“1” ,延時 2 微秒。DS18B20 檢測到上升沿后等待 15 到 60us,發(fā)出存在脈沖:拉低總線60240us。主機(jī)將總線拉低最短 480us,之后釋放總線。當(dāng)總線釋放后,5kΩ 的上拉電阻把單總線上的電平拉回高電平。在初始化步驟中,總線上的主機(jī)通過拉低單總線至少480μs 來產(chǎn)生復(fù)位脈沖。圖 38 闡述了這一點(diǎn)。 DS18B20 工作時序DS18B20 的所有通信都由復(fù)位脈沖組成的初始化序列開始。但使用外部電源可以提高測量速度。信息經(jīng)過單線接口入DS18B20或從DS18B20送出因此從主機(jī)CPU到DS18B20僅需一條線(和地線) 。DS18B20的測量范圍從55℃~ + 125℃,增量值為0. 5,可在1s (典型值) 內(nèi)把溫度變換成數(shù)字。DS18B20 可以廣泛用于工廠工業(yè)過程、大型糧倉、釀酒廠、食品加工廠的溫度檢測以及賓館、儀器儀表室等處的溫度檢測和控制。只需將DS18B20 信號線與單片機(jī) 1 位 I/O 線相連,且單片機(jī)的 1 位 I/O 線可掛接多個 DS18B20,就可實現(xiàn)單點(diǎn)或多點(diǎn)溫度檢測。各種操作都有相應(yīng)的時序圖。系統(tǒng)對 DS18B20 的操作以 ROM 命令(5 個)和存儲器命令(6 個)形式出現(xiàn)。單線信號包括復(fù)位脈沖,響應(yīng)脈沖,寫“0” ,寫“1” ,讀“1” 。如果門電路仍未關(guān)閉,則系統(tǒng)重復(fù)上述過程。計數(shù)器設(shè)置為55℃。低溫時,振蕩器的脈沖可以通過門電路。 18 DS18B20 測溫原理DS18B20 內(nèi)部結(jié)構(gòu)框圖,如圖 35 所示。(4) DS18B20 的測溫結(jié)果的數(shù)字量位數(shù)從 9~12 位,可編程進(jìn)行選擇。(2) DS18B20 支持組網(wǎng)功能,多個 DS18B20 可以并聯(lián)在唯一的單線上,實現(xiàn)多點(diǎn)測溫。溫度實時測控集裝箱的設(shè)計,在實現(xiàn)測控系統(tǒng)的溫度檢測方面就較好地利用DS18B20 的獨(dú)到特點(diǎn),使系統(tǒng)得到了極大的簡化。它具有體積小,分辨率高,轉(zhuǎn)換快等優(yōu)點(diǎn)。而且新一代產(chǎn)品更便宜,體積更小,大大提高了DS18B20產(chǎn)品的性價比,是本設(shè)計理想的選擇?!?,亦滿足條件。 17 圖 35 DS18B20 溫度傳感器外觀設(shè)計圖圖 34 太陽能熱水器智能控制器硬件總結(jié)構(gòu)圖 溫度檢測部分本設(shè)計中,筆者選用DS18B20溫度傳感器。特殊的處理器特點(diǎn):上電復(fù)位以及可編程的掉電檢測,片內(nèi)經(jīng)過標(biāo)定的RC振蕩器,片內(nèi) /片外中斷源, 6種睡眠模式。ATmega16 的主要特征:非易失性程序和數(shù)據(jù)存儲器:16K 字節(jié)的系統(tǒng)內(nèi)可編程 Flash,有 512 字節(jié)的 16 12345678ABCD87654321D C B ATitleNumberRevisionSize A3 Date:14Jun2010Shet of File:E:\上上上\上上\1820上上1061Drawn By:AGND28X18X27RESET4PD2 (INT0)1PD3 (INT1)12PD4 (OC1B)13PD5 (OC1A)14PB0 (T0)40PB1 (T1)41PB2 (AIN0)42PB3 (AIN1)43PB4 (S)4PB5 (MOSI)1PB6 (MISO)2PB7 (SCK)3(ADC0) PA037(ADC1) PA136(ADC2) PA235(ADC3) PA334(ADC4) PA43(ADC5) PA532(ADC6) PA631(ADC7) PA730PC019PC120PC221PC32PC423PC524(TOSC1) PC625(TOSC2) PC726PD7 (TOSC2)16PD6 (ICP)15AVC27AREF29PD1 (TXD)10PD0 (RXD)9GND 39VCC38 GND6GND 18VCC5 VCC17U1 ATMEGA16_TQFP4LCDK1LCDA2GND3VC4RS(CS) 6RW(