2 红外泵液器的软件设计
根据设计的功能以及硬件电路,本系统的软件部分共需要如下几部分控制程序:
第一是发射红外信号。由红外发射二极管GR40101可知,SPCE06lA单片机的IOB8应输出固定频率的脉冲,以激励器件发射红外线,因此程序首先需要完成此项功能。实际的程序应通过SPCE061A单片机内部的计时中断产生8 kHz的脉冲。具体的操作是通过SPCE061A单片机工作的晶振频率来计算经过多少分频才能将频率降低至8 kHz,由此得到计数值并将计数值填入计数器,同时对相应中断寄存器进行设置。然后在计时中断的中断服务子程序中通过语句IOB8=!IOB8来控制该IO口以输出8 kHz的方波。
其次是红外信号的接收处理。在硬件部分已经说明,本装置在伸手时,IOB2将出现高电平,其它情况该引脚输出为低电平,由此可通过IOB2的中断功能实现对高电平的检测,当IOB2出现上升沿时,表明此时伸手,系统进入IOB2的中断服务程序,该中断服务程序可完成控制水泵和指示灯的功能。
再就是键盘扫描程序。可采用查询方法循环检测是否有键按下,当检测到按键端口有低电平时,便进入相应的处理程序,其中管理自动手动模式的按键是通过这样的方法实现的,即每次有键按下,标志位变化,原来为0就置位,为1就清零,从而控制手动和自动的选择。其它的按键进入按键处理程序后作相应的处理,同时启动语音输出等。
图3所示是本系统的软件流程图。首先是系统的初始化,然后是各个IO端口的初始化,最后执行系统任务。主任务的流程是IOA0-2口都处于高电平,当按下哪个键时,哪个端口变为低电平,然后检测IOA0—2端口的电平值,如果发现有端口变为低电平,则把信息送到主任务那边的等待键盘信息,当人使用完后结束,系统返回上面一层,继续等待键盘信息;如果发现键盘的各端口都是高电平,没有变为低电平的端口,则返回,然后继续键盘扫描任务。
3 结束语
本文给出了一种由凌阳公司生产的单片机芯片SPCE061A控制的红外泵液器的改进设计方法。经改进后的泵液器增加了手动和自动模式转换、低电压检测报警以及使用完毕后语音提示等三项功能。实测证明:该装置还具有抗干扰能力强,无误操作且省电节能等特点。