·上一文章:LabVIEW与MATLAB混合编程在数字天线阵列测试中的应用
·下一文章:激光干涉原理在振动测量中的应用
2 系统软件设计
2.1 软件设计流程图
软件设计流程图如图2所示。
2.2 系统初始化
初始化包含的内容如下所示:
(1)看门狗程序启动:防止死机AVR的看门狗既是软狗又是硬狗,如果熔丝位不设定,就是软狗,因为程序可以关闭也可以打开;如果熔丝位设定了,就是硬狗,因为程序只可以清除,而无法打开或关闭。需要特别说明的是:使能看门狗不能用“|=”,必须要直接赋值“=”。
(2)电压检测
当电源电压降至过低,需要进行系统复位,防止在低压状态下电路进行误操作,或将非易失性存储单元的数据进行误改写,造成数据丢失。因此需要电源电压检测电路判断电源电压值,来决定是否进行系统复位。
(3)定时器初始化
欲判定胶囊通过的颗粒数,不仅需要测定产生的脉冲数目,而且要测定一粒胶囊通过小孔的时间。因为如若两粒或者更多粒胶囊连续通过小孔的话,只凭脉冲数目是无法准确探测胶囊颗粒数的,故在开机时应当进行定时器的初始化。
2.3 判断胶囊数目
光纤传感器当有药片经过时,会产生一个由高到低的脉冲,要准确判定先要检测脉冲数目(通过读PORTD口来确定),当确定是三个脉冲时,继续进行判别,以一粒药片通过小孔的时间为基准,若脉冲持续的时间是设定时间的N倍,则说明有N粒胶囊连续通过某一小孔。