| 水位狀態(tài) | K1 | K2 | K3 | 黃燈 | 綠燈 | 紅燈 | VADI/VDD | ADDATA |
| 高水位 | 閉合 | 閉合 | 閉合 | 點(diǎn)亮 | 熄滅 | 熄滅 | 1/3 | 0X55 |
| 中水位 | 斷開 | 閉合 | 閉合 | 熄滅 | 點(diǎn)亮 | 熄滅 | 1/2 | 0X7F |
| 低水位 | 斷開 | 斷開 | 閉合 | 熄滅 | 熄滅 | 點(diǎn)亮 | 3/4 | 0XBF |
| 超低水位 | 斷開 | 斷開 | 斷開 | 熄滅 | 熄滅 | 閃亮 | 1 | 0XFF |
三、模數(shù)轉(zhuǎn)換器在太陽(yáng)能熱水器水位監(jiān)控系統(tǒng)中的應(yīng)用
目前的太陽(yáng)能熱水器大都由用戶手動(dòng)加水,給用戶帶來很大不便。為了解決這個(gè)問題,本文提出了一個(gè)基于單片機(jī)EM78P458的“水位監(jiān)控系統(tǒng)”。該系統(tǒng)成本低廉,能夠自動(dòng)監(jiān)測(cè)控制太陽(yáng)能熱水器的水箱水位,其原理如圖3所示。
如果箱內(nèi)水位低于下降水位K1而又沒有水注入時(shí),紅色指示燈將閃爍示警,提醒用戶檢查是否停水。
另外,只要箱內(nèi)水位不超過上限水位,用戶可按下K4鍵強(qiáng)行加水。當(dāng)然一旦超過上限水位,水閥仍然會(huì)自動(dòng)關(guān)閉。
四、水位監(jiān)測(cè)系統(tǒng)的程序設(shè)計(jì)
水位檢測(cè)系統(tǒng)是利用EM78P458的模數(shù)轉(zhuǎn)換功能及I/O引腳控制功能來實(shí)現(xiàn)的,其程序流程如圖4所示。
首先設(shè)置寄存器ADCON為0X00,清零寄存器中IOCS位,選擇寄存器0段用以對(duì)GCON和AD-CMP-CON操作。同時(shí)使8選1模擬開關(guān)選擇通道 AD0。設(shè)置寄存器GCON為0X40,實(shí)際關(guān)閉OP2并打開OP1,且設(shè)置OP1增益為1。按著設(shè)置AD-CMP-CON寄存器為0x01,選擇內(nèi)部工作電壓VDD為參考電壓;定義P60端口為模擬電壓輸入口;P61~P67為數(shù)字I/O口;設(shè)置fosc/16為轉(zhuǎn)換時(shí)鐘信號(hào)。最后設(shè)置ADCON寄存器的ADPD和ADRUN兩位為1,開始進(jìn)行模數(shù)轉(zhuǎn)換。當(dāng)查詢寄存器ADCON中的位ADRUN為0時(shí),表示AD轉(zhuǎn)換結(jié)束,其轉(zhuǎn)換結(jié)果自動(dòng)存放于寄存器 ADDATA中。當(dāng)EM78P458讀取轉(zhuǎn)換結(jié)果時(shí),即可了解水箱內(nèi)的水位,并根據(jù)情況控制電機(jī)的動(dòng)作。
ADCONR EQU 0X09 ;ADCON寄存器
GCON EQU 0X09 ;GCON寄存器
ADCONC EQU 0X0A ;AD-CMP-CON寄存器
ADDATA EQU 0X0A ;ADC轉(zhuǎn)換結(jié)
;果寄存器
ADRUN EQU 0X04 ;啟動(dòng)位
ADPD EQU 0X03 ;ADC功耗模式位
.
.
.
ADC1:MOV A,@0X08 ;選擇寄存器
;段0,并設(shè)置P60為模擬通道口
MOV ADCONR,A
MOV A,@0X01 ;選擇通道AD0的
;模擬信號(hào)進(jìn)行轉(zhuǎn)換并設(shè)置轉(zhuǎn)換
;時(shí)鐘頻率為fosc/16
IOW ADCONC
MOV A,@0X41 ;打開運(yùn)放OP1并
;設(shè)置增益為1
IOW GCON
BS ADCONR,ADPD ;禁止ADC的
;低功耗模式
ENI ;開中斷
.
.
.
ADC2:JBC ADCON,ADRUN ;檢查AD轉(zhuǎn)換是否結(jié)束
JMP ADC2 ;未結(jié)束則繼續(xù)檢測(cè)
MOV A,ADDATA ;讀AD轉(zhuǎn)換結(jié)果
.
.
.
本系統(tǒng)的方案也適用于其它精密測(cè)控場(chǎng)合或儀器儀表,其精度可在1%的水平上。





