用89C2051制作高可靠自動(dòng)抽水裝置
軟件工作過(guò)程如下﹕
接通電源后﹐89C2051首先檢測(cè)是否缺相﹐如果缺相﹐則LED1亮且報(bào)警﹐否則檢測(cè)是否缺水﹐如果缺水﹐則啟動(dòng)電機(jī)抽水﹐抽水3分鐘后再次對(duì)水位進(jìn)行檢測(cè)(注意﹐第二次檢測(cè)水位的時(shí)間要根據(jù)水池的大小來(lái)確定)﹐如果檢測(cè)結(jié)果依然缺水(如電機(jī)空轉(zhuǎn)等情況)﹐則停止抽水﹐LED6亮且報(bào)警。否則否則程序返回開始處﹐有條不紊地檢測(cè)是否缺相﹐是否水滿﹑是否超溫﹑是否過(guò)流等。
原程序如下﹕
ORG0000H
AJMPSTART
ORG0030H
START:MOVP1,#0FFH
MOVP3,#0FFH
MAIN:JBP3.4,A4;是否缺相﹐若缺相﹐則轉(zhuǎn)A4處。
JNBP3.0,A0;是否缺水﹐若缺水﹐則轉(zhuǎn)A0處。
JBP3.1,A1;是否水滿﹐若水滿﹐則轉(zhuǎn)A1處。
JBP3.2,A2;是否超溫,若超溫﹐則轉(zhuǎn)A2處。
JBP3.3,A3;是否過(guò)流﹐若過(guò)流﹐則轉(zhuǎn)A3處。
AJMP MAIN
NOP﹔PC出錯(cuò)處理
NOP
NOP
LJMP START
A0: ACALLDELAY100MS
JB P3.0,MAIN
MOVP1,#E3H;星形啟動(dòng)﹐抽水指示燈亮
ACALLDELAY8s;延時(shí)8秒
MOVP1,#E5H;三角形啟動(dòng)
ACALLDELAY3m;三角形啟動(dòng)后再延時(shí)3分鐘
JNBP3.0,A5;抽水3分鐘后若P3.0依然為低電位﹐則水位異常。
AJMPMAINA1:ACALLDELAY100MS
JNBP3.1,MAIN
MOV P1,#0FFH;停止抽水﹐抽水指示燈滅。
CPL P3.5;水滿知指示燈亮。
AJMPAA2:
ACALLDELAY100MS
JNB P3.2,MAIN
MOV p1,#0BEH;停止抽水﹐超溫指示燈亮﹐報(bào)警
SJMP $;等待處理
A3:ACALLDELAY100MS
JNBP3.3,MAIN
MOV P1,#0DEH;停止抽水﹐過(guò)流指示燈亮﹐報(bào)警
SJMP $;等待處理
A4:ACALLDELAY100MS;防止誤取樣
JNBP3.4,MAIN
MOV P1,#7EH;停止抽水﹐缺相指示燈亮﹐報(bào)警
SJMP $;等待處理A5:
MOV P1,#FEH;停止抽水﹐報(bào)警
CPL P3.7;水位異常指示燈亮
SJMP $;等待處理
DELAY100ms:MOVR7,#248
D1:MOVR6,#200
D2:DJNZR6,D2
DJNZR7,D1
RETDELAY8s:MOVR0,#80
ACALLDELAY100ms
DJNZR0,DELAY8S
RETDELAY3M:MOVR1,#23
ACALLDELAY8S
DJNZR1,DELAY3M
RET
END
評(píng)論