开始 系统初始化 显示主界面 否 按键检测 是 读入键值 否 A键是否按下 是 否 判断密码对否 是 开锁,绿灯亮 否 B键是否按下 是 设置新密码 否 A键是否按下 是 新密码设置完成 11
报警,红灯亮
图12 系统程序流程图
5.1 主程序模块
主程序主要用于定义全局变量,给全局变量赋初值,启动定时器,为整个程序提供数据;检测按键;调用显示等功能。 5.2 密码比较判断模块
该模块的功能是将键盘输入的密码利用if语句与设定的密码进行逐个比较,若密码完全正确则开锁;若不正确,则开启报警电路,可重新输入密码。其密码输入和比较判决流程图如图13所示。
输入密码 核对 N键盘锁定,开启报警Y开锁灯亮,可密码修改 复位
图13 密码输入和比较判决流程图
5.3 键盘扫描模块
键盘使用矩阵式键盘,由行和列组成,CPU对所有键盘进行监视,从而实现逐列扫描键盘确定被按键的具体位置、判断键盘上有无键按下、消除去抖动、判断闭合的键是否释放等功能。如图14所示,为键盘扫描流程图。 5.4 修改密码模块
在密码输入正确情况下,可以按下“重置密码”对密码进行重新设置,每设定一位就将密码存储起来,当设置4位密码完毕后,系统将自动跳到程序开始,调用新设置的密码。图15为修改密码流程图。
12
图15 修改密码流程图
5.5 数码管液晶显示模块
此模块包括数码管初始化、动态扫描等。
在显示之前,我们编好了段选表0—9,通过查表来显示,由于本次设计采用动态显示,所以先送段选给每一位,然后给相应的数码管送位选,延时1MS,再给下一位送段选,送位选,延时1MS,以此类推,让4位数码管显示不同的数字,利用人的视觉暂留,使我们看到4位数码管的动态显示效果。显示子程序流程图如图16所示。
13
图16 显示子程序流程图
参考文献
1、张志良.单片机学习指导及习题解答. 机械工业出版社,2008. 2、张伟.单片机原理及应用. 机械工业出版社,2009.
3、孙俊逸 盛秋林. 张铮编著.单片机原理及应用.清华大学出版社. 4、张毅刚主编. 单片机原理及应用. 北京: 高等教育出版社,2010.5. 5、黄仁欣.单片机原理及应用技术. 北京: 清华大学出版社, 2005.
14