历史上的今天
返回首页

历史上的今天

今天是:2025年03月23日(星期日)

正在发生

2018年03月23日 | 基于单片机的红外微电脑自动泵业器设计

2018-03-23 来源:eefocus

在我们的日常生活中,经常会遇到这样的窘境,想要往给液器里添加洗手液或洗洁剂,却弄了一手的液体;在医院里,护士为了给病人补给营养液,却难以避免营养液被多多少少污染。此时,你真的需要一款红外微电脑自动泵业器,它不同于以往所见到的所有的给液器。不仅即插好用,而且安装无需打孔破坏墙面,补液无需灌装,杜绝了液体的二次污染,使用无接触,更卫生、方便,是取代传统香皂及其他瓶装、泵装洗护产品的时尚而经济的选择。此外,它是由单片机控制,克服了普通工业控制中常见的多回路、耦合、干扰等多种情况,可设定出液量,具有抗干扰能力强、无误操作、低压报警、省电节能等特点。不仅适用于家庭,也适用于公共单位,如:医院、银行、政府机构、学校等。

  1系统总体设计

  该系统能自动探测有无物体靠近出液口,探测距离为15~20cm,LED显示器粗略显示容器内洗涤剂的剩余量,分为3种情况:

  (1)最低的一段LED亮说明洗涤剂剩余量较少,需要尽快补充;

  (2)最低段和中间段同时亮说明洗涤剂充足;

  (3)三段同时亮说明容器内洗涤剂的已经超过安全警戒线,不能再继续加入,段间分隔误差:±5mm。

  另外系统备有操作按键一个,用于选择流量,开机时默认值为小流量,按1次按键后选择中流量,按2次选择大流量,按3次后进入清洗模式,再按一次退出清洗模式并选择小流量。

  自动给液系统的组成框图如图1所示。

自动给液系统的组成框图

  LED显示器用于显示容器内液体的粗略剩余量,该显示器为三段条形LED显示器,竖直安装于出液器外壳上。

  红外线发射、接收器这两个装置相互配合构成一个主动式红外线探测雷达,用于探测有无物体接近出液口,探测距离为15~20cm,红外线发射载波频率为38.4kHz,由微控制器(MCU)内部的定时器对主时钟分频得到;接收头的中心频率为39.7kHz;通过调节发射电流来调节探测距离。

液位传感器该传感器为电阻式传感器,通过一个带有旋转轴的浮球带动电位器旋转,从而把液面高度的变化转换为电阻的变化,然后在该电阻中通过一定的电流,就间接的把液面变化转换为电压的变化,微控制器(MCU)通过模数转换(ADC)读取该电阻值就可以获得液面的高度值,ADC转换精度8位。

  串行接口该接口为备用接口,用于今后系统的扩展,此外MCU还通过该接口把液面高度值送往其他系统,传输速率为1200b/s,可以用PC机或其他具有UART单元的系统接收该数据。

  2系统硬件结构

  MCU引脚定义如表1所示:

MCU引脚定义

  3系统软件结构

  3.1主程序流程图

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


主程序流程图

 

  定时器中断子程序,本子程序在整个系统中承担了红外检测的设置工作,单片机的设计中,定时器是个重要环节,本设计中采用定时器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结语

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


推荐阅读

史海拾趣

Advanced Semiconductor, Inc.公司的发展小趣事

在半导体市场竞争日益激烈的背景下,ASI也面临着巨大的市场压力和挑战。为了应对市场波动和竞争压力,ASI不断调整战略方向,加大在研发和创新方面的投入。公司不断推出新产品、新技术,以满足市场的不断变化和客户需求。同时,ASI也注重提升产品质量和服务水平,赢得了客户的信任和好评。

Elcos AG公司的发展小趣事

随着公司规模的扩大和业务的增长,Elcos AG面临着供应链管理的挑战。为了降低成本、提高效率和保证产品质量,公司决定对供应链进行优化。通过引入先进的供应链管理软件、加强与供应商的合作和建立严格的质量控制体系等措施,Elcos AG成功实现了供应链的优化和升级。这不仅提高了公司的运营效率和市场竞争力,还为客户提供了更加稳定可靠的产品和服务。

DAYA公司的发展小趣事

在快速变化的电子市场中,大雅智能始终保持敏锐的市场洞察力。通过深入研究市场需求和消费者行为,大雅智能准确把握市场趋势,及时调整产品策略。例如,在智能家居市场兴起之际,大雅智能迅速推出了一系列智能家居产品,成功抢占了市场先机。这种对市场趋势的敏锐洞察和快速响应能力,让大雅智能在电子行业中不断取得新的突破。

DATATRONICS公司的发展小趣事

DATATRONICS高度重视人才战略的实施。公司积极引进和培养了一批高素质的技术人才和管理人才,为他们提供了良好的工作环境和发展空间。同时,DATATRONICS还建立了完善的激励机制和培训机制,鼓励员工不断创新和进取,共同推动公司的持续发展。

ABCircuits公司的发展小趣事

ABCircuits公司成立之初,便专注于半导体技术的研发。在电子行业的浪潮中,公司敏锐地洞察到市场对高性能、低功耗芯片的需求,于是投入大量资源进行研发。经过数年的努力,ABCircuits成功推出了一款具有革命性的芯片,该芯片在性能上远超同行,同时功耗极低,迅速获得了市场的认可。这一技术创新为ABCircuits公司打开了新的市场领域,奠定了其在行业内的领先地位。

展恒电子(Broadic)公司的发展小趣事

2012年,展恒电子与FANSO(孚安特)签订战略合作协议,共同向智能电表厂家提供配套销售服务。这一合作不仅拓宽了展恒电子的销售渠道,也提升了公司在智能电表市场的影响力。此后,展恒电子继续与多家知名企业建立战略合作关系,通过资源共享和优势互补,实现了共赢发展。

问答坊 | AI 解惑

Stellaris,Beat STM32!!!血战已拉开大幕

呵呵,这个口号我是替TI喊的。 想来TI的人心里应该也是这么想的。         TI收购Luminary之后一直很期待,原本市场上ARM Cortex-M3的基本上就是STM32一花独放,这下可出来个对手了。       & ...…

查看全部问答>

Activesync连接上WINCE问题!

我的Activesync能连接上WINCE,在移动设备中有显示WINCE的内容,也能复制文件到WINCE,但是EVC不能与WINCE通信. 感觉很奇怪,不知道是什么原因引起的,大家指点一下了.搞了一天都没有找到什么原因. 谢谢!…

查看全部问答>

LCDj显示不同宽度ASC字符

我们在LCD上显示字符,当然是希望每个字符的 长 X 高 是相同点阵的方框字,取相应字模时,偏移量也好计算,但是像office word里,它有些字体单个字符的宽度不一样的,例如M 和I ,它是基于何种思想来处理不现宽度的字符送到LCD显示的? 难到一个字节的ASC ...…

查看全部问答>

友坚6410平台,目录的问题.

友坚6410平台,目录 D:\\WINCE600\\PLATFORM\\SMDK6410\\SRC\\BOOTLOADER\\下有以下几个子目录, \\EBOOT.WHIMORY \\NBL1.IROM_SD \\NBL1.LSB \\NBL2 这几个目录的作用是什么?,先执行哪一个目录? \\EBOOT.WHIMORY 可能是 EBoot, NBoot启开后, ...…

查看全部问答>

SD卡驱动问题

目前我在TI的TMS320VC5509A上做一个项目,需要驱动SD卡。5509上自带有SD卡控制器。通过配置应该就能正常使用。 可是现在我遇到的问题是,不能连续进行SD卡读写。比如先读SD卡(查询),接着又写,在写时写命令返回的response不对。只有在读完后加 ...…

查看全部问答>

EVB 打印问题

我编一程序,要在WIN CE系统运行,用EVB做的,现在要实现打印功能,A4纸,有N组数据,数据我存放在一个文本文件里面,有文件头和尾,有些字要用大号,有些用小号字,实在理不出头绪了,请教高手应该怎么处理?打印机可以指定一种,能通用各种打印机最好…

查看全部问答>

谁有16×16汉字的点阵字库吗

从hzk16.h字库中提取出的汉字在液晶中显示单一,想找其它字体的点阵字库. 我在网上找了几个ttf格式的的字库不能用,不知到哪里可以找到。…

查看全部问答>

如何将mc 1000中的文件用程序复制到计算机里呢?

好像用@\"\\windows\\\"+filename 是能识别的!有做过的给点意见!…

查看全部问答>

求教:关于PE文件的导入符号

正在研究 PE 文件的格式,但是对导入表的结构和用法不太明白。 已经能够从PE文件分析出导入表中的,但是不知道怎么解析系统创建的 调转表和调转地址。 我的代码里调用一个系统函数的时候,反汇编(ARM芯片)得到 ;处理参数等 0001287C EB00033 ...…

查看全部问答>