基于单片机的红外微电脑自动泵液器设计
定时器中断子程序,本子程序在整个系统中承担了红外检测的设置工作,单片机的设计中,定时器是个重要环节,本设计中采用定时器0中断的工作方式,中断程序流程图如图3所示。
出液控制子程序是本设计中的重要部分,他根据目标检测的结果控制步进电机的工作,程序流程图大致如图4所示。
3.2MCU内部RAM分配
AT89C2051内部共有128B的RAM,做如下分配:
00H~07H:工作寄存器组(R0~R7),作为通用寄存器使用。
10H~14H:液面高度采样数据缓冲区(ADCBuff)。
16H:软件定时器(SoftTimel)。
17H:液面高度值(OldADCOut)。
1FH:键值(KeyValue)。
20H:工作标志组0(WF0)。
5FH:流量控制值(FluxValue)。
60H~7H:32B的系统堆栈(STACK)。
3.3标志位的分配
F_Xms:WF0.0,定时器0中断服务标志,在定时器0中断服务程序结束时置位,在软件定时器操作程序中查询该标志后复位。该标志位主要用于通知系统程序一次定时器中断已经处理完毕。
SendEN:WF0.1,主动红外探测器发射开关,该标志置位时允许红外探测器向外发射38.4kHz红外探测信号,复位时则不允许发射。该标志在红外探测器启动时置位,在探测器关闭时复位。
DetEN:WF0.2,红外探测开关,该标志置位时系统启动红外探测器探测目标,复位时系统不启动探测器。该标志在系统退出守候模式时置位,在探测到目标后复位。
MTCEN:WF0.3,电机运转,标志置位时表明电机处于运转状态,系统检查运转时间是否结束,如果MTCEN和DetEN都复位,系统将进入守候式:既不探测目标,也不启动电机,3s后自动退出守候模式。该标志在红外探测器探测到目标并启动电机后置位,电机运转时间结束后复位。
WashMode:WF0.4,清洗标志,标志置位时表明系统处于清洗模式下,系统的其他功能将被关闭,复位时关闭清洗功能。该标志在用户启动清洗功能时置位,关闭清洗功能时复位。
KeyST:WF0.5,按键状态标志,标志置位时表明按键处于释放状态,系统检测按键是否按下,复位时表明按键已经按下,系统等待按键释放。该标志在检测到按键释放时置位,在检测到按键按下时复位。
KeyLPF:WF0.6,按键检测消除抖动控制位。
4结语
该设计的通用性很强,性价比高,可以应用于许多非接触式的给液系统,如:水龙头自动给水感应器;感应洗手器;自动控制感应水龙头;自动淋浴器;自动给皂器;感应烘手机等。本文介绍的设计思想可以推广到其他类似的液位及出液量控制系统中。
![](https://webstorage.eepw.com.cn/images/2014/m/wx.png)
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码