微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机的金库门电子密码锁系统设计

基于单片机的金库门电子密码锁系统设计

时间:05-25 来源:互联网 点击:

TC12LE5410AD的P1口与键盘电路相连接,P3.6接LED灯作为系统的指示灯。P3.0与OCM12864的数据/指令引脚RS相连,实现数据/指令选择,当RW=1时,数据DB0-DB7将送入显示RAM;当RW=0时,数据DB0-DB7将送入指令寄存器执行。数据的读写选择R/W由P3.4来控制。E为0CM12864的液晶屏的读写使能端,并通过STC12LE5410AD的P3.2和P3.3选择OCM12864左半屏和右半屏。除此之外,V0是LCD的调整电压,必须与VEE一起与10 k电位器相连,可对液晶屏的对比度进行调整。
3.2 金库门密码锁控制器硬件设计
以STC12系列的STC12C5410AD(5V单片机)为核心,结构框图如图4所示,主要包括电源电路模块、液晶显示驱动模块、键盘电路模块、报警输出模块以及和STC12C2052AD通信的串口通信模块、开锁控制电路。


在该系统中,电源电路模块主要是由一个12 V变压器与一个LM7805稳压器电路所组成的,为CPU提供电压。由于STC12C5410AD是5 V的单片机,所以液晶显示模块同样采用5 V的OCM12864-2液晶模块。8位标准数据总线与单片机STC12C5410AD的P2口相连接;读写选择管脚R/W与P3.3相连;读写使能管脚CS1、CS2分别与P3.7、P3.5相连接;RS与P3.4相连,控制数据/指令的选择。系统包含报警输出电路,当连续输入3次错误密码时,则蜂鸣器报警以示警告并启动报警系统,则再不能做任何的操作,直到输入正确的内置口令才能关闭报警系统。本系统中,还采用输入和显示部分与开锁控制电路相分开,PCB制作时制作成两块板,用串口通信实现两块板之间的通信,使密码比对后的结果能输送到STC12C2052AD,实现对机械锁的控制。

4 软件设计
4.1 密码算法的实现
密码算法是本设计中的一个最重要的部分,当用户使用密码锁开锁时每次输入的密码都不一样。密码主要由随机码、内置口令和随机序号经过一定的算法计算出来。
直接采用C51语言的mad();语句实现的随机码具有一定的随机顺序,每次开机后所得的随机码序列基本一样,属于伪随机码。因此对于保密性产品来说,用rand();语句具有缺陷。本设计采用定时器实现随机序列。定时器设置为模式2,即可自动重装载的8位计数器,初值为100。密码锁控制器开机后,定时器开始定时。通过用户3次按键产生中断,读取定时器低八位的值,将其转换为十进制并取低两位存到一个预先定义好的6位数组中的2个元素。3次按键共产生3次2位数的随机码,组成6位随机码。该随机码重复概率很小,为1/1 000 000。因此,对定时器的采样,可实现真正的随机码。
用户自产生一个2位随机序号,与随机码、密码生成器的内置口令经过一定的算法计算生成密码。密码锁控制器根据用户输入的随机序号和密码,将随机序号、随机码、以及内置口令,利用与密码生成器生成密码同样的算法计算出密码,与用户输入的密码比较验证。
STC单片机自带EEPROM,用EEPROM来储存密码,关机后密码不丢失,并可随意更改密码。每次开锁密码都不一样,可有效预防恶意窥测行为,并能清楚进出金库的人员,且无需经常更换密码,方便管理。
4.2 密码锁控制器程序流程图

5 结束语
本文设计的金库门电子密码锁系统,解决了金库门管理的“一密二钥三分离”中密码的管理和分离的规定。每次开机密码都不一样,有效防止密码泄露,增强了金库管理的安全性。本电子密码锁系统,不仅可以运用于金库门,同时适用于其他要求高保密性的产品或场所,且一个密码生成器可配备若干个密码锁控制器,方便管理。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top