新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 非接触式给液的单片机应用设计

非接触式给液的单片机应用设计

作者:时间:2013-01-05来源:网络收藏

3 系统软件结构

3.1 主程序流程图

主程序流程框图如图2所示,他主要完成初始化工作,进行目标检测,控制出液,并且显示液位情况,整个程序中大量地调用了其他子程序,为了方便不再一一列出其他子程序框图,主程序采用查询方式,初始化完成后一直处在等待响应状态。

11.jpg

定时器中断子程序,本子程序在整个系统中承担了红外检测的设置工作,中,定时器是个重要环节,本中采用定时器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,主动红外探测器发射开关,该标志置位时允许红外探测器向外发射38.4 kHz红外探测信号,复位时则不允许发射。该标志在红外探测器启动时置位,在探测器关闭时复位。

DetEN:WF0.2,红外探测开关,该标志置位时系统启动红外探测器探测目标,复位时系统不启动探测器。该标志在系统退出守候模式时置位,在探测到目标后复位。

MTCEN:WF0.3,电机运转,标志置位时表明电机处于运转状态,系统检查运转时间是否结束,如果MTCEN和DetEN都复位,系统将进入守候式:既不探测目标,也不启动电机,3 s后自动退出守候模式。该标志在红外探测器探测到目标并启动电机后置位,电机运转时间结束后复位。

WashMode:WF0.4,清洗标志,标志置位时表明系统处于清洗模式下,系统的其他功能将被关闭,复位时关闭清洗功能。该标志在用户启动清洗功能时置位,关闭清洗功能时复位。

KeyST:WF0.5,按键状态标志,标志置位时表明按键处于释放状态,系统检测按键是否按下,复位时表明按键已经按下,系统等待按键释放。该标志在检测到按键释放时置位,在检测到按键按下时复位。

KeyLPF:WF0.6,按键检测消除抖动控制位。

4 结 语

该设计的通用性很强,性价比高,可以于许多的给液系统,如:水龙头自动给水感应器;感应洗手器;自动控制感应水龙头;自动淋浴器;自动给皂器;感应烘手机等。本文介绍的设计思想可以推广到其他类似的液位及出液量控制系统中。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭