入口通道0数据最新32次平均通道0采样新值与平均值相减累计减量是否达到报警值Y是否处于非报警状态Y放音操作N绿色LED灭红色LED亮N初值配置开定时器T0置报警标志出口
图3-6 滤波算法及报警判断流程
22
4 系统的仿真
时下,流行使用的模拟仿真软件有2款:伟福和Keil,二者均可以仿真51单片机。鉴于实验室有伟福仿真器,便于调试,同时在学习微控制器原理及应用课程时,专门对此软件进行过系统学习,使用起来轻车熟路。仿真器使用9 针串行口,与PC 机用两头为孔的串行电缆连接.对于一些只有USB 口而没有串口的计算机,可以使用USB转串口电缆将USB 转成串行口,串行电缆内部连接根据仿真器型号不同,逻辑测试钩插座可能只有一个[14]。
由于程序使用汇编编写的,所以在wave仿真器设置中语言栏选择伟福汇编器,具体设置如图4-1所示:
图4-1 仿真器语言设定
实验室使用的伟福仿真器型号为E6000/L,仿真头选择为POD-H8X5X,CPU选择型号为8X5X,具体设定如图4-2所示:
图4-2 仿真器的型号选择
通信设置如图4-3所示,波特率设定为115200,选择串口号,点击测试串行口,通过则证明串口端口正确,可以进行下一步的仿真调试。
23
图4-3 仿真器通信设置
图4-4为伟福软件主界面,可以进行调试单步、跟踪、全速等等调试,可以观察内存数据,设置P口,修改状态等等,操作方便。
图4-4 伟福软件主界面
4.1 A/D转换的仿真
MCP3002是双通道、标准SPI通信接口。首先,要验证两通道是否都是正常的。通道0的采样数据放在40H-7FH单元,通道1的采样数据放在25H-2DH单元。在烟雾传感器工作稳定后,通道0的采样数据基本不变;通过调节电位器,调节其阻值最小时,采样25H至2DH数据应为00H,调节其阻值最大时,采样数据应为FFH,可以验证通道0和通道1是否正常。
图4-5、图4-6分别为调节输入通道的电压为0V和电源电压时,利用伟福
24
软件仿真器测到的数据,观察图中25H至2CH单元及40H单元而后的数据,可见,两通道均正常。
图4-5 输入电压为0V时采样数据
图4-6 输入电压为电源电压时采样数据
4.2 滤波及报警算法调试
将每次的采集值与这次前的32次采样值的平均值相减得到变化量,并将此变化量累加,将其累加和作为报警的判别依据。报警门限值可直接通过滑动滤波算法进行处理。
当烟雾传感器有变化时,图4-7、图4-8分别为操作前后单片机的内存数据,观察比较两次的3CH、3DH单元数据,它们就是增量累加和,也即是报警参考依据。操作前,它们很小为全零;操作后它们变成了很大的数据,超过了报警门限2BH、2CH单元数据,可以证明此滤波算法及报警判断程序有效[15]。
25
图4-7 操作前单片机内存单元数据
图4-8 操作后单片机内存单元数据
26