量散失,防止误报。报警子程序流程图如下图4-5所示,将温度设置为100℃,烟雾浓度设置的是0.06%,第一次采集完再延迟20s采集,分析判断两次采集到的数据,若一致则发出信号指示并启动报警,若不一致则需要检测,进行故障诊断。
传感器有问题 N 启动火灾报警器 N 复位键是否按下 Y 返 回
图4.5 报警子程序流程图
Y 传感器故障自诊断 烟雾浓度≥0.06% 或温度≥100℃ N 延迟20秒后采集一组数 N Y 烟雾浓度≥0.06% 或温度≥100℃ 读取处理后的气体浓度值或温度值 开始 Y 启动 故障 报警
4.2 防盗监控模块主要程序 4.2.1 防盗门控主程序
主程序首先对系统进行初始化,包括单片机内部寄存器,外部管脚设置,以及所接的传感器的配置。然后显示模块显示初值,并等待按键事件,若有按键按下则进行相应的按键处理,处理完按键事件后继续等待下一次按键,如图4.6所示。其中的详细模块设计如下文所示:
开始 初始化 显示处理 键扫、求键号 N 有键按下否? Y 键处理 数字键处理 输入键处理 确认键处理 修改密码键处理
图4.6 门控主程序流程图
4.2.2 门控模块子程序 (1)数字按键处理子程序
数字按键处理子程序是来进行修改或输入密码的,分为两个大部分,一个是输入密码,一个是修改密码。其设计流程图如图4.7所示:
首先它会进行判断是否输入密码,若输入密码,则保存输入的密码以及密码
位数,若非输入密码则判断是否需要修改密码,同样,调用修改密码程序并保存修改后的密码及密码位数。
Y 输入4~6位密码并保存密码及密码位N 修改密码输入密码Y 输入4~6位密码并保 数字键处理子程序 N 返回 图4.7 数字键处理子程序流程图
(2)确认键处理子程序
输入或修改密码时进行确认操作,程序流程图如4.8。当确认输入完成时,若正在执行的是输入密码的操作,则会调用密码对比的子程序;若正在执行的是修改密码操作,按下后执行密码擦除以及重写操作。
确认键处理子程序 Y 输入密码N N 调用密码比较子程序并清除输入标志 修改密码Y 清 改 密 标 志 返回
图4.8 确认键处理子程序流程图
(3)密码判断子程序
输入密码并按下确认键后,启动密码判断子程序,将从键盘获取到的数字串与EEPROM中存的密码进行比较,并返回是否成功的呃标志。程序流程图如图4.9所示。
密码判断程序入口 输入位数[51H]=密码位数[50H]? Y 原始密码指针R0、输入密码指针R1、比较次数R7初始化 N N 输入值@R1=密码@R0? 修改指针 Y N R7-1=0? N Y 开锁,点亮指示灯,置锁状态标志位02H 错误次数53H加1,置锁状态02H为0 错误次数大于3否? Y 报警,显示出错,延时5分钟后使系统复位 返回 图4.9 密码判断子程序流程图
(4)密码修改子程序
相关推荐: