2.7 复位电路模块
为了保证微机系统中电路可以稳定可靠的工作,复位电路是必不可少的一部分,复位电路的第一个功能是上电复位,一般情况下微机电路正常工作需要供电电源为4.75-5.25V,由于微机电路是时序数字电路,所以它需要稳定的时钟信号,故在电源上电时,只有当供电电源在4.75-5.25V之间以及晶体振荡器稳定工作时,复位信号才被撤销,微机电路开始正常工作。
图9 复位电路模块
图9为复位电路模块,在复位期间即RST为高电平期间,P0口为高组态,P1-P3口输出高电平,外部的程序存储器选通信号PSEN无效,同时地址锁存信号ALE也为高电平。
3. 软件设计
3.1 软件设计思路
应用系统要完成各项功能,首先需要有比较完善的硬件作为保证,与此同时还必须得到相应的设计合理的软件支持。特别是微机应用高速发展的今天,很多由硬件完成的工作都是可以通过软件编程来代替的。其中有些必须采用很复杂的硬件电路才能完成的工作,使用软件编程有的时候就会变得很简单,例如数字滤波,信号处理等。因此现代的设计充分利用其内部丰富的硬件资源和软件资源,然后采用与51系列单片机相应的汇编语言和结构话程序设计方法进行软件的编程。
本设计的软件设计是整个密码锁能够可靠安全运行的关键,为了提高密码锁的安全性能,本设计引入了安全体系概念,即使在设计建立一般的指导性原则和约束条件,为密码锁提供安全服务和安全机制,使其软件程序成完整的安全体系结构。
本设计的软件部分的设计基于单片机的C语言,采用了模块化的设计思路,为了保证控制器的功能完全和结构、原理简单,本设计采用了自顶向下、逐步细化的方法,以主程序为核心设置的很多功能模块子程序是大量的功能在子程序中实现的主流程[4]。软件工作流程包括:系统的初始化(数据存储空间初始化,设置初始密码)、键盘扫描程序(计算键值并存入VAL)、按键处理程序(对不同按键做出响应)、定时器中断服务程序(用于声音报警)、段码、输入密码左、右移程序、数码显示程序、密码更改、校对开锁、电子时钟等。
3.2 程序设计
本系统软件部分主要包括液晶显示模块、主程序模块、开锁模块、密码设置程序模块、键功能程序模块、键盘扫描模块等模块组成。
3.2.1 液晶显示模块
此模块包括LED初始化、命令的输入、显示数据的输入。其中命令是用来控制LED状态是否显示光标,光标是否闪烁,是否清楚以前的数据以及显示的具体位置,数据的显示主要是将要显示的信息按需要准时显示出来[5]。
3.2.2 主程序模块
图10为主程序流程图,主程序主要应用于定义全局的变量,给全局变量赋初始值,初始化EEPROM,启动定时器和从AT24CO2中读取密码,为整个程序提供数据,并通过键盘扫描检查有无键按下,根据各个功能键执行相应的功能,以及设置中断向量和调用显示。
图10 主程序流程图
3.2.3 开锁模块
图11为开锁模块流程图,当用户需要开锁时先输入密码,当密码输入达到6位时,系统会自动判断密码的正确与错误,如果系统判断密码错误,则输入次数加1,连续输入错误密码三次,则会启动报警程序,随之蜂鸣器会发出蜂鸣声,直到按下复位电路的复位键,蜂鸣器才停止发出蜂鸣声。若密码输入正确,则密码锁被打开。
图11 开锁模块流程图
3.2.4 密码设置程序模块
图12为密码设置程序流程图,用户如果发现原密码被别人窃取,则可以随时的修改密码,首先用户需要输入原密码,系统自动识别密码的正确与否,如果密码输入错误,每输入错误一次则输入次数加一,输入三次错误密码则会启动报警程序,在密码输入正确的情况下,锁被打开,几秒钟后LCD液晶显示会自动提示用户是更改密码还是退出,选着更改密码,然后两次输入新密码,如果两次密码输入一致则密码修改成功。修改过的密码在AT24C02中存储起来。 AT89S52单片机密码可更改的电子密码锁设计+源码(4):http://www.youerw.com/tongxin/lunwen_395.html