电子密码锁总体设计方案.docx
《电子密码锁总体设计方案.docx》由会员分享,可在线阅读,更多相关《电子密码锁总体设计方案.docx(58页珍藏版)》请在冰豆网上搜索。
电子密码锁总体设计方案
电子密码锁系统总体设计详细文档
题目:
电子密码锁的设计
组号:
第八组
小组成员:
王新恒〔S120131106〕
牛庆渝〔S120102007〕
于秀玲〔S120101212〕
黄志辉〔S120131021〕
2012年11月15日
第一篇绪论
一、引言
1、编写目的
编写总体设计说明书的目的是为了说明对密码锁系统总体设计的考虑,包括程序的根本流程、输入/输出设计、模块设计、运行设计、硬件的总体设计和系统出错处理设计等,以便为密码锁的具体设计制作和仿真提供理论根底和指导方向,主要就是为编写程序提供依据。
各个模块的程序编写严格按照该总体设计的初定方案进展。
本总体设计说明书详细分析系统的各种需求,综合小组中各个成员的意见,为以后的设计规划出一个蓝图,使以后的工作做到有步骤、有计划,并且对今后出现的各种可能情况作出预测和进展初步和适当的处理,使系统工作进程得以稳步和高效地进展。
2、背景介绍
在日常的生活和工作中,住宅与部门的安全防X、单位的文件档案、财务报表以与一些个人资料的保存多以加锁的方法来解决。
假设使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性大打折扣。
随着科学技术的不断开展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、本钱低、功耗低、易操作等优点。
在安全技术防X领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克制了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。
随着大规模集成电路技术的开展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
此外,电子密码锁还具有以下独特的特点:
〔1〕##性远远大于机械锁,随机开锁成功率几乎为零;
〔2〕密码可变。
用户可以经常更改密码,防止密码被盗,同时也可以防止因人员的更替而使锁的密级下降;
〔3〕误码输入保护。
当输入密码屡次错误时,报警系统自动启动;
二、功能需求设计
1、任务和目标
本项目设计一种基于AT89C51单片机控制的电子密码锁,要求达到以下任务目标:
〔1〕可通过键盘输入密码控制开关的开锁和闭锁;
〔2〕可通过扩展的LCD显示器显示输入的密码;
〔3〕密码可以屡次改写和重置;
〔4〕连续三次输入密码错误,报警装置开始工作,密码锁进入锁机状态。
2、功能需求简述
功能
具体阐述
1、密码输入与核对功能
●系统启动后,通过键盘输入初始密码“111111〞,按下密码输入键进展确认,密码锁开锁,之后通过点击输入新密码键,输入6位新密码,点击新密码保存键,新密码保存;
●电子密码锁具有多组密码和管理员超级密码功能;
●如果密码正确,可进展开锁动作。
假设密码不正确,系统将给出提示告知用户已经输入的次数,假设三次错误输入后,系统自动锁定键盘,屏蔽所有操作,并显示“waiting....〞;
●系统自动锁定时间为五分钟,锁定时间过后,系统提示“inputagain〞,此时可重新输入密码,进展开锁操作;
●##功能:
每次输入的密码数字,显示的均是“*〞符号;
●当按下开锁键,系统将输入与密码进展检查核对,如果正确锁打开,否那么不打开,并发出报警提示。
2、多组密码设置功能
●在用户设置了一组常用密码根底之上,可以另外在设置2组备用密码,以增加多用户使用功能,满足用户的根本需求;
●在用户丢失或遗忘一组密码后,可以通过另外的几组备用密码进展开锁并并对密码进展再次修改和设定,增加了密码锁使用的灵活性;
●可以设置一组超级密码“999999〞,在任何情况下,凭借超级密码都可以开锁和修改密码。
3、报警功能
●设置密码锁开锁次数为3次,当输入超过三次还未开锁成功时,蜂鸣器报警30秒,并且锁定键盘。
十分钟内不能进展任何操作,等待锁定时间过后,解除警报,密码锁恢复输入功能,提示“inputagain〞;
●在每一次输入密码后,系统都会以英文字符的形式给出输入密码正确与否,假设是错误系统会给予警告。
4、个人密码更改功能
●密码可以由用户自己修改设定,锁打开后才能修改密码,修改密码之前必须再次输入密码;
●先用初始密码开锁,在开锁成功后点击“输入新密码〞使系统进入修改个人密码状态;
●个人可以随设置新的密码,设置完成后点击“保存新密码〞按键,新密码设置成功;此该新密码和以前的密码都可以进展开锁操作;
●此时可输入6位新的个人密码,点击新密码保存,密码更改成功。
5、时间显示和计时功能
●系统启动后会自动显示当地的即时时间,显示方式为:
时-分-秒
●在输入密码时软前后相邻的两个密码符输入时间间隔超过10分钟,那么系统自动放弃本次操作,返回到重新输入密码阶段
6、通信和数据传输功能
●先用密码开锁,成功后进入系统
●显示记录:
记录开门时间、密码类别。
●系统最多可以保存最近的40条记录,当记录超过40条时,每增加一条新记录,最早的一条旧记录将被覆盖掉。
●每条记录包含如下信息:
时、分、秒以与密码类别。
第二篇设计概述
一、详细设计方案的选择与设计思路概述
1、设计方案的选择
本次设计的密码锁在理论上可以利用多种设计方法与原理进展设计,依据设计的简单、高效、易于实现等原那么,主要有两种设计方案可供选择,即:
数字电路控制和以AT89C51为核心的单片机控制两种方案。
现在对其两种方案进展可行性比照分析。
方案一:
采用数字电路控制。
其原理图下列图1所示。
图1数字密码锁电路方案
电路由两大局部组成:
密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。
采用数字密码锁电路的好处就是设计简单。
用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,假设按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入。
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。
方案二:
采用一种是用以AT89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,与其控制的准确性,不但能实现根本的密码锁功能,还能添加多组密码设置、报警提示等控制功能。
其原理如下列图2所示。
图2单片机控制方案
密码锁电路包含:
键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路。
通过比拟以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进展升级,所以我们采用一种以89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,与其控制的准确性,进展密码锁的设计工作以实现根本的密码锁功能。
2、初步设计思路概述
对于本次密码锁的初步设计,首先是要有一定的大概思路。
如下列图3所示,本次设计选用单片机开发系统,以AT89C51单片机为核心,辅以扩展的键盘以与LCD显示模块组成完整的系统。
通过键盘采集输入的信息,与单片机内的储存值比拟,如果密码正确,那么开锁电路打开;如果密码错误,给出错误提示。
假设连续三次输入密码错误,蜂鸣器产生蜂鸣音,并且系统自动锁定键盘;在以上工作的同时显示电路工作,同步显示符号“*〞代替输入的数值。
图3最初设计思路框图
二、设计方法和技术条件
1、设计原那么
系统总体设计原那么如下分析,应该尽可能的满足密码锁的功能要求,包括程序启动功能、锁的根本功能、个人密码更改功能、多组密码设置、报警功能。
首先,通过键盘采集输入的信息,与单片机内的储存值比拟,如果密码正确,那么开锁电路运行,锁被成功打开;如果三次密码错误,那么报警系统自动进展提示,蜂鸣器产生蜂鸣音;在以上工作的同时显示电路工作,同步显示输入数值。
在输入正确密码后,密码锁开锁,按输入新密码键,输入新密码,按下新密码保存键,那么修改密码成功。
要再次开锁那么需要输入正确的密码。
2、应用的技术分析
本次密码锁功能的实现,需要使用到以下关键技术:
〔1〕基于AT89C51单片机简单设计与外围扩展电路;
〔2〕键盘输入与单片机间的数据传输;
〔3〕LCD显示技术、动态输出与单片机间的数据传输。
〔4〕通信传输协议
3、设计者当前已具备的技术条件
在设计密码锁之前,本组四位成员根本上已经掌握了以下技术:
(1)课题组成员都参阅过相关的51单片机开发方面的书籍,熟悉AltimDesigner电路设计,有一定的电路设计根底;
(2)课题组成员王新恒对C语言函数库的调用有一定的了解,具备C语言程序设计开发经验;
(3)课题组成员牛庆渝、黄志辉熟悉PCB板的制作过程与protuse绘图,课题组成员于秀玲有一定的文学功底,有一定的能力撰写课题报告;
(4)各个成员都可以熟练的运用仿真软件proteus以与编译软件keil进展仿真实验和调试。
(5)对通信协议和传输有一定的了解
4、设计重点难点
完本钱方案设计的重点和难点有以下几点:
(1)C语言程序设计和控制函数的调用;
(2)键盘模块和动态显示工作方式的LCD显示模块的控制;
(3)报警电路的设计;
(4)用AltimDesigner软件进展电路图设计;
(5)单片机于PC机的通信传输功能的实现。
第三篇系统总体设计方案确认
此次设计基于单片机控制的电子密码锁,根据任务和相关要求,结合主要设计条件,我们的总体方案设计如下:
本系统由单片机系统、矩阵键盘、电子时钟、LCD显示和报警系统等多个模块组成。
一、单片机模块
该密码锁设计采用以AT89C51为核心的单片机控制方案。
利用单片机灵活的编程设计和丰富的I/O端口,与其控制的准确性,进展电子密码锁的设计。
不但能实现根本的密码锁功能,还能添加警报提示。
1主要特性
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器。
它与MCS-51兼容,寿命:
1000写/擦循环,数据保存时间为10年。
全静态工作:
0Hz-24Hz三级程序存储器锁定,128*8位内部RAM32可编程I/O线,两个16位定时器/计数器,5个中断源可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路。
下列图4所示为AT89C51单片机图例:
图4AT89C51单片机
2主要接口说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口当用于外部程序存储器或16位地址外部数据存储器进展存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进展读写时,P2口输出其特殊功能存放器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流。
此外,P3口也可作为AT89C51的一些特殊功能口,例如串行输入\输出口、外部中断0\1、记时器0外部输入、外部数据存储器读\写选通。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
可用作对外部输出的脉冲或用于定时目的。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,那么在此期间外部程序存储器,不管是否有内部程序存储器。
当/EA端保持高电平时,此间内部程序存储器。
XTAL1:
反向振荡放大器的输入与内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
其中,在该系统设计中,单片机主要硬件资源的分配如为:
P0.0~P0.7用于LCD液晶显示作用;P2.6、P2.7用于蜂鸣器的控制;P2.0用于开锁电路的控制;P1.0~P1.7用于键盘电路的控制;P3.3~P3.5用于LCD显示模块的控制端口的控制。
二、键盘矩阵模块
本次设计的密码锁系统设计采用4*4矩阵键盘,与P1口相连,采用扫描法。
设有0到9十个数字密码,一个开锁键、上锁键,以与用于修改密码的新密码输入键和新密码保存键,还有一个用于重新输入密码的重新输入键和一个管理员密码键。
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比拟多的时候,通常采用这样方法。
通常将按键排列成矩阵形式。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口〔如P1口〕就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。
键盘矩阵电路如下列图5所示:
图5键盘矩阵电路
表1矩阵键盘代表的功能表
S1-S10
数字0-9
S11
开锁按键
S12
上锁按键
S13
输入新密码
S14
保存新密码
S15
重新输入
S16
管理员密码〔切换键〕
三、显示模块
此密码锁设计6位密码,按键后动态显示。
开机显示“YourPassword...〞,等待密码输入,输入6位密码,按开始键后,密码比拟。
根据按键次数,第一位显示器显示第一次按的密码,第二位显示器显示第二次按的密码,第三位显示器显示第三次按的密码,依此第六位显示器显示第六次按的密码。
每次输入密码后,都会有提示音,提示输入动作被承受。
按键完成后按开锁键后,密码对那么执行相关动作,并且显示器显示“Unlockok!
〞,并且会看到指示灯发光;不正确那么显示器显示“ERROR〞,指示灯无任何现象,系统等待重新输入。
当连续输入三次错误后,会显示“Wait....〞,系统会发出报警音,等待锁定时间十钟后会提示“Inputagain....〞。
下列图6所示为显示电路原理图:
图6LCD显示电路
四、报警模块
本次设计的密码锁报警系统在当输入密码错误后,系统报警。
下列图7给出报警系统电路原理图:
图7报警模块电路
五、电子时钟模块
1、概述
本模块是以AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作。
时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进展计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进展同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进展计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进展同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM存放器。
DS1302增加了主电源/后备电源双电源引脚,同时提供了对后备电源进展涓细电流充电的能力。
可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;显示部份由LCD液晶显示屏显示。
下列图8所示为DS1302电路原理图图:
图8DS1302电路原理图
2、引脚介绍
DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位存放器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进展操作。
如果在传送过程中RST置为低电平,那么会终止此次数据传送,I/O引脚变为高阻态。
上电运行时,在Vcc>2.0V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
I/O为串行数据输入输出端(双向),后面有详细说明。
SCLK为时钟输入端。
下列图9为DS1302的引脚功能图:
图9DS1302引脚封装图
六、通信传输模块
密码锁系统的通信传输模块是该系统的主要模块之一,可以最大限度的发挥单片机的传输接口的功能,最大程度上的利用了单片机的接口。
1、通信传输原理概述
一般是用串口来进展通讯的,采用普通I/O模拟实现通信,这是最简单的方法,并且可以实现高速串行通信。
即利用RS23接口实现通信,而RS232接口是串口通讯的一种,其实所谓的接口,我的理解就是一种通信协议,规定了传输电平,传输方式,与怎么传输数据等。
利用单片机的p3.1TXD通信接口进展数据的发送〔只发送不接收〕,将数据传输到虚拟终端保存。
PC机和单片机的通讯却不能够直接进展连接,原因是PC机RS232串口的电平标准和单片机的TTL电平不一致,因此单片机和PC机之间的串口通讯必须要有一个RS232/TTL电平转换电路。
我们再次利用MAX232芯片实现电平转换。
其中,由于单片机的串口输出电路采用的逻辑电平是TTL〔逻辑门电路,Transistor-TransistorLogic〕电平,PC机的电平是CMOS电平。
用一个异步串行通信的设计方法,单片机串口的控制方式MCS-51系列单片机对串口的控制是通过对串行口控制存放器SCON和功率控制存放器PCON的设置来实现的。
SCON是一个可位寻址的特殊功能存放器,通过设置SGON的SM0和SMI,可以使单片机有四种不同的工作方式。
在用于和PC机实现串行通信时,一般设置为方式1或方式3,主要区别是方式1的数据格式为8位,方式3的数据格式为9位,其中第9位SM2为多机通信位,可实现单片机的多点通信。
单片机串口的速率设置单片机和PC机通信时,其通信速率由定时器T1或定时器T2产生〔52系列〕,在T1工作在方式2时的通信速率的计算公式为:
波特串=〔SMOD×Fosc〕/〔32×12×[256-TH1]〕。
其中Fosc晶振频率,为获得准确的通信速率,Fosc通常为11.0592MHz。
采用T1定时器通信的系统,速率不可能过高,一般情况下最高为19200bit/s。
单片机串口通信程序的实现方法实际应用中,单片机通信程序一般采用中断方式与微机通信,微机做为主控方。
当单片机收到微机发送的地址信号时,便转入中断服务程序,向微机发送数据。
2、电平转换电路
PC机和单片机的通讯不能够直接进展连接,原因是PC机RS232串口的电平标准和单片机的TTL电平不一致,因此单片机和PC机之间的串口通讯必须要有一个RS232/TTL电平转换电路。
我们再次利用MAX232芯片实现电平转换。
其中,由于单片机的串口输出电路采用的逻辑电平是TTL〔逻辑门电Transistor-TransistorLogic〕电平,PC机的电平是CMOS电平。
单片机和PC机的串行通信一般采用MAX-232总线标准接口。
为保证通信的可靠,在选择接口时必须注意:
〔1〕通信的速率;〔2〕通信距离;〔3〕抗干扰能力;〔4〕组网方式。
采用MAX232芯片的转换接口,MAX232包含两路驱动器和接收器的RS-232转换芯片。
芯片内部有一个电压转换器,可以把输入的+5v电压转换为RS-232接口所需的±10V电压,尤其适用于没有±12V的单电源系统。
下列图所示为MAX232电平转换电路:
图10MAX232电平转换电路
第四篇系统程序设计
一、总体程序设计流程
1、程序功能
软件的设计主要包括:
密码的设定与修改、键盘识别判断、错报警等,可根据具体的需要还可进展功能的增加与完善。
1)主程序功能:
主耍完成初始化、设置中断向量检查有无按健按下,以与调用显示等。
2)键盘扫描与识别子程序功能:
键盘采用查询方式,放在主程序中,当没有按键按下时,单片机循环主程序,一旦有键按下,便转向相应的子程序处理,之后再返回。
3)调用存储程序功能:
比拟密码时,需读取程序,将存储在芯片内的数据读到RAM中,然后和输入密码相比拟,当修改密码时,需耍把输入的密码保存到芯片中。
4)显示子程序功能:
在系统启动后显示为“YourPassword...〞,在输入密码时不直接显示密码,而是现实星号“******〞,这样利于密码的##可提高安全性和可靠性。
当输入密码正确时,显示“unlockok〞,输入错误那么显示“ERROR〞。
当连续输入三次错误后,会显示“Wait....〞,系统会报警提示,三秒钟后会提示“Inputagain....〞。
5)密码更改子程序功能:
在输入密码成功解锁后,点击“输入新密码〞按键,输入新密码,然后选择点击“保持新密码〞按键,至此,密码修改成功。
6)修改密码工作完成后,系统将跳翻到开始,即提示输入密码“YourPassword...〞。
2、系统程序设计总流程
如下列图所示为该密码锁系统程序设计总流程图:
图10系统程序设计总流程图
二、各个模块系统程序设计流程
由于设计是分模块化进展,所以子程序是整体软件系统的组成局部,子程序
不但可以使程序化整为零,使其复杂简单化,同时也方便阅读,每个功能模块都有它自己的子程序,在本设计中是用LCD显示数据,所以就要用到显示子程序,设计中用的是矩阵键盘,所以就用到键盘扫描子程序,例如还有显示初始化子程序、开锁状态显示子程序、密码输入与修改状态显示子程序、密码输入错误后的提示子程序等。
1、显示初始化模块程序设计
1〕、设计框图
图11显示初始化模块程序设计流程图
2〕、具体实现程序
#include
#include
#include
#include
#include"lcd1602.h"
#include"warn.h"
#include"display.h"
#include"key_scan.h"
#include"delay.h"
#include"enter.h"
#include"I2C.h"
#include"24c02c.h"
#include"ds1302.h"
#include"time.h"
#include"pare.h"
#include"lock_fun.h"
3〕、仿真结果图示
系统初始化仿真图
2、密码比拟功能模块程序设计
1