工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->控制电路图->其他控制电路图->用89C2051制作多功能水位自动控制器

用89C2051制作多功能水位自动控制器

作者:卤煮火烧时间:2009-09-02

  本水位自动控制器由89C2051单片机控制,具有水源缺水保护、断相保护和过载保护功能。探测水位的传感器是用紫铜管、常开型干簧管和带磁铁的塑料浮漂制作而成,具有经久耐用、不腐蚀、不电解水的特点。

  一、电路结构

  电路原理图如图1所示。89C2051的P3.0为水塔水位上限信号输入口,P3.1为水塔水位下限信号输入口,P3.2为水源水位上限信号输入口,P3.3为水源水位下限信号输入口,P3.4为断相保护信号输入口,P3.5为过载保护信号输入口,P1.2口控制水泵工作状态,P1.3口作水泵抽水工作指示,P1.4口作水塔水满指示,P1.5口作水源缺水报警指示,P1.6口作断相报警指示,P1.7口作过载报警指示。光耦OPT01~OPT06由两组独立的电源供电。断相保护电路是将三个等值的电阻接成星形,在未断相前中点电位为零,因此OPT05不导通。过载保护电路由热继电器等元件组成。H1~H4是常开型干簧管,将其封装在∮8的紫铜管内,紫铜管外穿一个能上下移动带磁铁的塑料浮漂,就制成了探测水位的传感器,如图2所示。

  二、工作原理

  上电复位后,电路进入判断水塔水位是否降到水位下限的状态,即等待抽水信号状态。当水塔里的浮漂随水位一同降至下限时,H2被浮漂内的磁铁吸引而导通,经过OPT02光电耦合,使P3.1口为低电平,经程序判断,将P1.2、P1.3口置为低电平,Q1导通,J1接通控制水泵的交流接触器,水泵开始抽水,LED5点亮,指示正在抽水。同理,当水塔里的浮漂随水位上升至上限时,P1.2、P1.3口呈高电平,P1.4口输出低电平,水泵停止抽水,LED5熄灭,LED4发出水满指示。如此不断重复来保证水塔用水需求。

  当水泵开始抽水时,电路进入循环判断水塔水位是否升到上限、水源是否缺水、三相交流电是否断相、水泵是否过载状态。如有其中任何一个问题出现,经程序判断,立刻关闭水泵电源,相应的LED发光指示。如果发生断相或过载故障,电路除关闭水泵电源、打开报警指示外,还会进入自锁状态,等到维修人员来排除故障并按下复位键后,电路才会重新进入正常工作状态。

  三、源程序

  ORG 0000

  SETB P1.2

  CLR P1.4

  Q0:JB P3.1,Q0

  LCALL Q8

  JB P3.1,Q0

  CLR P1.2

  CLR P1.3

  SETB P1.4

  Q1:JB P3.0,Q2

  LCALL Q8

  JB P3.0,Q2

  SETB P1.2

  SETB P1.3

  CLR P1.4

  LJMP Q0

  Q2:JB P3.3,Q4

  LCALL Q8

  JB P3.3,Q4

  SETB P1.2

  SETB P1.3

  Q3:CLR P1.5

  LCALL Q9

  SETB P1.5

  LCALL Q9

  JB P3.2,Q3

  LCALL Q8

  JB P3.2,Q3

  CLR P1.4

  LJMP Q0

  Q4:JB P3.4,Q6

  LCALL Q8

  JB P3.4,Q6

  SETB P1.2

  SETB P1.3

  Q5:CLR P1.6

  LCALL Q9

  SETB P1.6

  LCALL Q9

  LJMP Q5

  Q6:JB P3.5,Q1

  LCALL Q8

  JB P3.5,Q1

  SETB P1.2

  SETB P1.3

  Q7:CLR P1.7

  LCALL Q9

  SETB P1.7

  LCALL Q9

  LJMP Q7

  ;延时0.1s子程序

  Q8:MOV R3,#13H

  L0:MOV R2,#00H

  L1:NOP

  NOP

  NOP

  NOP

  NOP

  NOP

  NOP

  NOP

  DJNZ R2,L1

  NOP

  NOP

  DJNZ R3,L0

  RET

  ;延时0.5s子程序

  Q9:MOV R3,#61H

  L2:MOV R2,#00H

  L3:NOP

  NOP

  NOP

  NOP

  NOP

  NOP

  NOP

  NOP

  DJNZ R2,L3

  NOP

  NOP

  DJNZ R3,L2

  RET

  



评论

EEPW网友 · 2012-03-14 09:41:28

L2:MOV R2,#00H
用00H,R2不是永远不等于0,咋退出循环?

技术专区