非接触式给液的单片机应用设计
发布时间:2008/5/27 0:00:00 访问次数:385
随着许多日用新产品的出现,人们的生活水平和生活质量不断提高,同时,也逐渐改变了人们传统的生活方式。根据实际市场的需要,设计了一种红外微电脑自动泵液器,不同于以往所见到的所有的给液器。即插好用是该产品的主要特点和优点,安装无需打孔破坏墙面,补液无需灌装,杜绝了液体的二次污染,使用无接触,更卫生、方便,是取代传统香皂及其他瓶装、泵装洗护产品的时尚而经济的选择。他由单片机控制,克服了普通工业控制中常见的多回路、耦合、干扰等多种情况,可设定出液量,具有抗干扰能力强、无误操作、低压报警、省电节能等特点。不仅适用于家庭,也适用于公共单位,如:医院、银行、政府机构、学校等。
1 系统总体设计
该系统能自动探测有无物体靠近出液口,探测距离为15~20 cm,led显示器粗略显示容器内洗涤剂的剩余量,分为3种情况:
(1) 最低的一段led亮说明洗涤剂剩余量较少,需要尽快补充;
(2) 最低段和中间段同时亮说明洗涤剂充足;
(3) 三段同时亮说明容器内洗涤剂的已经超过安全警戒线,不能再继续加入,段间分隔误差:±5 mm。
另外系统备有操作按键一个,用于选择流量,开机时默认值为小流量,按1次按键后选择中流量,按2次选择大流量,按3次后进入清洗模式,再按一次退出清洗模式并选择小流量。
自动给液系统的组成框图如图1所示。
led显示器用于显示容器内液体的粗略剩余量,该显示器为三段条形led显示器,竖直安装于出液器外壳上。
红外线发射、接收器这两个装置相互配合构成一个主动式红外线探测雷达,用于探测有无物体接近出液口,探测距离为15~20 cm,红外线发射载波频率为38.4 khz,由微控制器(mcu)内部的定时器对主时钟分频得到;接收头的中心频率为39.7 khz;通过调节发射电流来调节探测距离。
液位传感器 该传感器为电阻式传感器,通过一个带有旋转轴的浮球带动电位器旋转,从而把液面高度的变化转换为电阻的变化,然后在该电阻中通过一定的电流,就间接的把液面变化转换为电压的变化,微控制器(mcu)通过模数转换(adc)读取该电阻值就可以获得液面的高度值,adc转换精度8位。
串行接口 该接口为备用接口,用于今后系统的扩展,此外mcu还通过该接口把液面高度值送往其他系统,传输速率为1 200 b/s,可以用pc机或其他具有uart单元的系统接收该数据。
2 系统硬件结构
mcu引脚定义如表1所示:
3 系统软件结构
3.1 主程序流程图
主程序流程框图如图2所示,他主要完成初始化工作,进行目标检测,控制出液,并且显示液位情况,整个程序中大量地调用了其他子程序,为了方便不再一一列出其他子程序框图,主程序采用查询方式,初始化完成后一直处在等待响应状态。
定时器中断子程序,本子程序在整个系统中承担了红外检测的设置工作,单片机的设计中,定时器是个重要环节,本设计中采用定时器0中断的工作方式,中断程序流程图如图3所示。
出液控制子程序是本设计中的重要部分,他根据目标检测的结果控制步进电机的工作,程序流程图大致如图4所示。
3.2 mcu内部ram分配
at89c2051内部共有128 b的ram,做如下分配:
00h~07h:工作寄存器组(r0~r7),作为通用寄存器使用。
10h~14h:液面高度采样数据缓冲区(adcbuff)。
16h:软件定时器(softtimel)。
17h:液面高度值(oldadcout)。
1fh:键值(keyvalue)。
20h:工作标志组0(wf0)。
5fh:流量控制值(fluxvalue)。
60h~7h:32 b的系统堆栈(stack)。
3.3 标志位的分配
f_xms:wf0.0,定时器0中断服务标志,在定时器0中断服务程序结束时置位,在软件定时器操作程序中查询该标志后复位。该标志位主要用于通知系统程序"一次定时器中断已经处理完毕"。
senden:wf0.1,主动红外探测器发射开关,该标志置位时允
随着许多日用新产品的出现,人们的生活水平和生活质量不断提高,同时,也逐渐改变了人们传统的生活方式。根据实际市场的需要,设计了一种红外微电脑自动泵液器,不同于以往所见到的所有的给液器。即插好用是该产品的主要特点和优点,安装无需打孔破坏墙面,补液无需灌装,杜绝了液体的二次污染,使用无接触,更卫生、方便,是取代传统香皂及其他瓶装、泵装洗护产品的时尚而经济的选择。他由单片机控制,克服了普通工业控制中常见的多回路、耦合、干扰等多种情况,可设定出液量,具有抗干扰能力强、无误操作、低压报警、省电节能等特点。不仅适用于家庭,也适用于公共单位,如:医院、银行、政府机构、学校等。
1 系统总体设计
该系统能自动探测有无物体靠近出液口,探测距离为15~20 cm,led显示器粗略显示容器内洗涤剂的剩余量,分为3种情况:
(1) 最低的一段led亮说明洗涤剂剩余量较少,需要尽快补充;
(2) 最低段和中间段同时亮说明洗涤剂充足;
(3) 三段同时亮说明容器内洗涤剂的已经超过安全警戒线,不能再继续加入,段间分隔误差:±5 mm。
另外系统备有操作按键一个,用于选择流量,开机时默认值为小流量,按1次按键后选择中流量,按2次选择大流量,按3次后进入清洗模式,再按一次退出清洗模式并选择小流量。
自动给液系统的组成框图如图1所示。
led显示器用于显示容器内液体的粗略剩余量,该显示器为三段条形led显示器,竖直安装于出液器外壳上。
红外线发射、接收器这两个装置相互配合构成一个主动式红外线探测雷达,用于探测有无物体接近出液口,探测距离为15~20 cm,红外线发射载波频率为38.4 khz,由微控制器(mcu)内部的定时器对主时钟分频得到;接收头的中心频率为39.7 khz;通过调节发射电流来调节探测距离。
液位传感器 该传感器为电阻式传感器,通过一个带有旋转轴的浮球带动电位器旋转,从而把液面高度的变化转换为电阻的变化,然后在该电阻中通过一定的电流,就间接的把液面变化转换为电压的变化,微控制器(mcu)通过模数转换(adc)读取该电阻值就可以获得液面的高度值,adc转换精度8位。
串行接口 该接口为备用接口,用于今后系统的扩展,此外mcu还通过该接口把液面高度值送往其他系统,传输速率为1 200 b/s,可以用pc机或其他具有uart单元的系统接收该数据。
2 系统硬件结构
mcu引脚定义如表1所示:
3 系统软件结构
3.1 主程序流程图
主程序流程框图如图2所示,他主要完成初始化工作,进行目标检测,控制出液,并且显示液位情况,整个程序中大量地调用了其他子程序,为了方便不再一一列出其他子程序框图,主程序采用查询方式,初始化完成后一直处在等待响应状态。
定时器中断子程序,本子程序在整个系统中承担了红外检测的设置工作,单片机的设计中,定时器是个重要环节,本设计中采用定时器0中断的工作方式,中断程序流程图如图3所示。
出液控制子程序是本设计中的重要部分,他根据目标检测的结果控制步进电机的工作,程序流程图大致如图4所示。
3.2 mcu内部ram分配
at89c2051内部共有128 b的ram,做如下分配:
00h~07h:工作寄存器组(r0~r7),作为通用寄存器使用。
10h~14h:液面高度采样数据缓冲区(adcbuff)。
16h:软件定时器(softtimel)。
17h:液面高度值(oldadcout)。
1fh:键值(keyvalue)。
20h:工作标志组0(wf0)。
5fh:流量控制值(fluxvalue)。
60h~7h:32 b的系统堆栈(stack)。
3.3 标志位的分配
f_xms:wf0.0,定时器0中断服务标志,在定时器0中断服务程序结束时置位,在软件定时器操作程序中查询该标志后复位。该标志位主要用于通知系统程序"一次定时器中断已经处理完毕"。
senden:wf0.1,主动红外探测器发射开关,该标志置位时允