方案一:采用数字电路控制。
图1 数字电路控制原理图
图1为数字电路控制原理图,中规模集成电路控制的方案总体由密码锁电路和供电系统组成,密码锁电路完成密码输入、密码修改、执行开锁和锁定信号功能,供电系统提供与之匹配的电源信号。显然此种方案的物理结构相当复杂,而且成本较高。同时用户重新设置密码和输入密码的操作工程也是相当不方便。
方案二:采用以AT89S52为核心的单片机控制方案。
通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。
用以AT89S52为核心的单片机控制方案,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加掉电保护存储。
图2 系统总体方案流程图
图2为系统总体方案流程图,本电子密码锁的设计以AT89S52为核心,包括1602液晶显示模块、复位电路模块、开锁电路模块、振荡电路模块、报警模块、掉电存储模块、矩阵键盘模块。输入密码用矩形键盘(4×4),包括数字键和功能键。LCD1602用来实时显示当前的各操作状态。用继电器驱动电磁阀动作将锁打开。输入密码错误超过三次,系统报警。设置原始密码为“123456”,只要输入此密码,当密码达到6位时系统会自动判断密码的正确与否,欲重新设定密码,需要输入旧密码才能更改。修改密码时,需输入两次新密码确认一致,如果两次输入的密码不一样则LCD显示“no right”并返回初始状态,设置的密码会存储在AT24C02中。
2. 硬件电路设计
2.1 矩阵键盘模块
本设计采用4×4矩阵式按键键盘,密码由该键盘输入完成。该键盘上的每个按键功能在程序中设置。
键盘去处理程序首先执行和等待按键并确认有没有按键按下的程序段,当确认有按键按下,然后就要识别是那一个按键按下。键的识别一般有两种方法:一,逐行扫描查询法二,线反转法。
判断键盘上有无按键按下方法:首先向行线输出全扫描字00H,让所有的列线置为低电平,然后将列线的电平状态读入累加器中,假如有按键按下总将会有一根列线为底电平而行线不全为1.
判断键盘上哪一个按键被按下方法:首先按顺序给列线送低电平,然后检查所有行线的状态,如果全是1,则按下的键不在此列;如果不全为1,则按下的键肯定在此列,并且是在零电平行线相交的焦点上的那个按键。
图3 矩阵键盘模块
图3为矩阵键盘模块,本设计采用采用4×4的矩阵键盘,8根输出线分别连接在AT89S52单片机的P2口,本设计使用行扫描法,开始时把行线P2.0-P2.3置为低电平,然后扫描列线,如果其中有一行列线为低电平,则去抖后判断是否还有一行列线为低电平,如果还有则这条列线为低电平,同时处在这条行线中的按键为低电平,然后判断是哪个按键按下,如果列线全部为高电平,则表示没有按键按下,往复的循环扫描。4×4键盘上包括0-9十个数字键以及K10、K11这两个功能键,用户先输入密码,若感觉到输入密码错误则按下K11则LCD上已输入密码全部清除,并返回初始界面,如果密码正确,系统自动识别将锁打开,若用户需要更改密码先按下K10键,然后输入新密码,若两次输入新密码一致则密码自动保存。
2.2 1602液晶显示模块
点阵字型符液晶显示器把LCD控制器,点阵驱动器,字符存储器集成在一块印刷电路板上,构成便于应用的液晶模块。这类液晶模块不仅可以显示数字,字符,还可以显示各种图形符号以及少量自定义符号,并且可以实现屏幕的上下左右滚动,文字的闪烁等功能,人机界面友好,使用操作也更加灵活。本设计的显示电路主要是为了给使用者以提示而设置的,一方面考虑到现代密码锁的显示需要,另一方面为了节约单片机的接口资源[2]。 AT89S52单片机密码可更改的电子密码锁设计+源码(2):http://www.youerw.com/tongxin/lunwen_395.html