电子密码锁的设计与制作.docx
《电子密码锁的设计与制作.docx》由会员分享,可在线阅读,更多相关《电子密码锁的设计与制作.docx(31页珍藏版)》请在冰豆网上搜索。
电子密码锁的设计与制作
单片机毕业设计与制作说明书
设计题目:
电子密码锁的设计与制作
专业年级:
学号:
姓名:
指导教师:
2008年月日
单片机毕业设计与制作成绩评定表
设计题目:
电子密码锁
学号:
姓名:
项目
评语
成绩
设计
表现
(20%)
设计
说明书
(40%)
实物
评价
(40%)
综合
评定
教师
签名
年月日
单片机毕业设计与制作任务书
一.设计题目:
电子密码锁的设计与制作
二.设计要求:
利用51系列单片机为核心,采用矩阵键盘作为数字输入;6位密码显示;可重新设置新密码,EPROM存储密码,掉电不丢失;当输入密码与存储密码一致时,开锁,并响音乐,若三次输入错误,则报警。
三.设计内容:
硬件设计、软件设计及样品制作
四.设计成果形式:
1、设计说明书一份
2、样品一套
五.完成期限:
2008年月日
第1章、方案选择及总体设计....................................................1
1.1国内外现状............................................................1
1.2设计目标..............................................................1
第2章、硬件设计及电路图......................................................2
2.1方案论证与比较........................................................2
2.2电子密码锁的总体设计................................................2
2.3电子密码锁的控制芯片选择..............................................2
2.4电源部分.................................................................4
2.5键盘接口部分........................................................5
2.6液晶显示器部分......................................................5
2.7继电器和蜂鸣器部分..................................................6
2.8小结...............................................................6
第3章、软件设计及程序清单........................................................7
3.1软件总体设计.............................................................7
第4章、实物制作及调试说明.........................................................9
第5章、使用说明书.................................................................10
结束语.............................................................................11
附录...............................................................................12
附录表一程序清单.................................................12
附录表二元件清单表..................................................20
附录表三原理图PCB图..............................................21
参考文献..........................................................................23
第1章方案选择和总体设计
1.1国内外现状
目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。
但在使用中暴露了很多缺点:
一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。
据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。
二是钥匙一旦丢失,无论谁捡到都可以将锁打开。
三是机械锁的材料大多为黄铜,质地较软,容易损坏。
四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。
由于人们对锁的安全性,方便性等性能有更高的要求,许多智能锁(如指纹辨别、IC卡识别)也相继问世,但这类产品的特点是针对特定指纹或有效卡,但能适用于保密要求高且仅供个别人使用的箱、柜、房间,其成本一般较高,在一定程度上限制了这类产品的普及和推广。
随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。
电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。
根据国外的统计资料显示,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30%左右。
目前西方发达国家已经大量地应用这种智能门禁系统,但在我国的应用还不广泛,成本还很高。
1.2设计目标
利用51系列单片机为核心,采用矩阵键盘作为数字输入;6位数字密码显示;可重新设置新密码,EPROM存储密码,掉电不丢失;当输入密码与存储密码一致时,开锁,并响音乐,若连续三次输入错误,则报警灯亮并且蜂鸣器响。
第2章硬件设计及电路图
2.1设计方案论证与比较
方案一:
卡片式电子密码锁。
卡片式电子密码锁,它利用光电耦合的方式,将密码信息从打孔的形式做在卡片上,只要将卡片插入锁内,就能将锁打开。
如果卡片上密码信息不对,密码锁发出报警声。
这种方法是需要卡片做成钥匙,容易被盗和被仿制,安全性不高。
方案二:
磁卡式电子密码锁,具有功能强、故障率低、可靠性高和工作寿命长等优点,但这种方法的缺点是磁卡容易消磁,对用户造成不必要的麻烦。
方案三:
用AT89S51设计的多功能密码锁。
以单片机作为微控制器,可以实现基于以上优点,本系统选用该方案作为设计方案。
按键有效指示、输入错误、控制开锁、错误报警、密码修改等功能,工作稳定可靠,保密性高,实用性强。
综合考虑上面的几个方案,我们选用第3个来做。
2.2电子密码锁的总体设计
电子密码锁是由以下几个部分组成的,其核心部分是Atmel公司生产的8位AT89S51单片机作为整个系统的控制中心。
包括驱动电路模块,显示电路模块,报警模块和键盘模块。
如图2所示是一种用AT89S51控制的电子密码锁的原理图。
其主要功能为:
可设定从1位到8位的密码,从键盘键入正确密码才可更改密码或开锁。
输入三次错误密码电路就报警。
其主要工作原理为:
AT89S51的P1口为键盘扫描口,接着3行4列的键盘即“0、1、2…设置、确定”,P3.0和P3.1接AT24C02,对AT24C02读和写数据。
P3.2接一个小喇叭,当按键确实被按下时发出一下提示音,P3.3为按了设置键等输入原密码指示LED控制口,P3.5为开锁信号输出口,P3.4为报警输出口,P3.7为输入新密码LED指示控制口。
2.3电子密码锁的控制芯片选择
CPU是整个控制部分的核心。
在考虑经济性和满足需求的前提下,本系统选用Atmel公司生产的8位AT89S51单片机作为整个系统的控制中心。
AT89S51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含2Kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89S51单片机可为您提供许多高性价比的应用场合。
在本系统中,AT89S51单片机内部的功能单元已经能够满足系统设计需要,不需要系统扩展。
2-2密码锁原理图
AT89S51具有以下的特点:
●兼容MCS-51指令系统
●2k字节可重擦写闪速存储器
●1000次擦写周期
●2.7-6.V的宽工作电压范围
●全静态操作:
0-24MHz
2-3是AT89S51引脚功能图
●两级加密程序存储器
●128*8字节内部RAM
●15个双向I/O口线
●两个16位可编程定时/计数器
●6个中断源
●可编程串行UARL通道
●可直接驱动LED的输出端口
●内置一个模拟比较器
●低功耗空闲和掉电模式
2.4电源部分
外界电源通过五脚开关JK与电源电路部分相连,电源经过稳压管7805进行稳压控制后,再经过RC电路的滤波整流就可以直接攻电路使用了,LED发亮表明电源电路部分正常工作。
图2-4是电源部分原理图
2-4电源部分原理图
2.5键盘接口部分
系统的所有密码设置以及在没有用遥控器开锁的情况下密码的输入都需要由键盘输入。
同时采用发光二极管来进行提示操作,使用户操作更加直观和方便。
AT89S51单片机的I/O口线共有8根,能够满足系统设计的需要。
键盘接口电路设计系统中键盘的功能主要用于用户输入和修改密码。
键盘需要设计16个按键,其中0~9数字键用于密码的输入和修改。
功能键两个,一个为“确定”键,用于密码输入结束后确认,一个为“设置”键,用于修改密码。
键盘采用行列式设计,16个按键排成4×4矩阵。
设计中用单片机P2口的P2.4~P2.7接键盘的4根行线,P2.0~P2.3接4根列线。
原理图如图2-5
2-5键盘部分原理图
2.6液晶显示器
本设计采用的是LED液晶显示器,接口电路如图2-6所示:
2-6显示器和单片机的连接图
2.7继电器和蜂鸣器部分
由于继电器和蜂鸣器的工作电压大于单片机AT89S51高电平输出的电压,所以继电器与蜂鸣器由电源电压+5VQ驱动,单片机中的P1.1与P1.2分别输出一个高电平脉冲送至晶体三极管Q1、Q2的基极,使三级管导通。
从而驱动继电器及蜂鸣器工作。
继电器工作开关K12导通,进而发光二极管发亮。
2-7继电器部分电路原理图
2.8小结
本章详细叙述了电子密码锁系统硬件电路的结构,分析了各个硬件电路的工作原理。
在设计硬件电路的同时,充分考虑将软件和硬件结合起来,发挥单片机的智能化优势。
简化硬件电路的设计,提高硬件电路的可靠性和稳定性。
第三章软件设计和程序清单
软件是整个控制系统设计的核心,它具有充分的灵活性,可以根据系统的要求而变化。
在硬件结构一定的情况下,只要改变软件就能实现一些不同的功能。
单片机所具有的智能功能要由软件来完成。
3.1系统软件总体设计
系统上电后首先完成初始化工作,然后按照事先设定好的程序执行。
本系己程序是基于单任务机制的。
这种机制的应用程序是一个无限的循环,在这循环的过程中调用相应的子程序函数来完成相应的操作。
这种机制具有简单直观,易于控制的优点。
在本系统中,软件结构应采用模块化设计方法,主要包括主程序,键盘程序,密码比较模块,密码修改程序等等。
上电复位后,初始化各端口,标志位和有关寄存器,接着从AT24C02中读入密码,然后开始检测键盘是否有输入,如没有就不断检测,如果有输入就转到相应处理程序。
例如按了设置键,则P3.3输出低电平,等输入原密码指示灯LED亮,接着如果输入了正确的原密码并按了确定键,P3.7输出低电平,可以输入新密码指示LED亮,接着输入新密码按确定键,新密码被写入24C02中,P3.3、P3.7输出高电平,等输入原密码指示LED熄灭,可以输入新密码,指示LED熄灭,程序转为复位程序。
如果在设置状态,输入了错误的密码,P3.5不断输出高电平报警。
上电复位后按数字键6次,或按了小于6次数字键,再按了确定键则比较密码是否对,如果不对,P3.4开锁信号输出口输出低电平,锁不开,这时还可再输入两次,如还不对则P3.5不断输出高电平报警。
如果输入对了,P3.4开锁信号输出口输出高电平,锁打开4秒钟后,程序转为复位后。
1.模块介绍
该计程计价系统的软件设计分为以下几个模块:
(1)主程序模块
主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。
主程序的流程图如下图3-1所示。
(2)键盘扫描及识别子程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。
其程序流程如图3-1所示.
(3)调电存储服务程序
当比较密码的时候,需要读AT24C02程序,将存储在芯片内的数据读到RAM中,然后和输入的密码相比较。
当修改密码的时候,需要把输入的密码保存到AT24C02中,其程序流程如图3-2所示.
(4)显示子程序
由于是分屏显示数据,所以就要用到5个显示子程序,分别是:
关闭状态显示子程序(DIS_A)、开锁状态显示子程序(DIS_B)、密码输入及修改状态显示子程序(DIS_C)、密码输入错误后的提示子程序(DIS_D)。
密码在规定的时间内输入错误次数超过3次后的锁定状态显示子程序(DIS_E).
程序流程图如3-1、3-2所示:
程序
;
org0000h;
ljmpstart;
org000bh;
ljmpintermit_t0;
org001bh;
程序清单如附录表一所示。
第4章实物制作及调试说明
根据设计原理图购买所需元器件,然后使用PROTEL99SE画好原理图和PCB图,然后制作PCB板,按照画图----PCB板制作—查看板----压板---钻孔---焊接元器件——检查的步骤把实物板制作完整。
调试
根据方案设计的要求,调试过程共分为三大部分:
硬件调试、软件调试、和软硬件联调。
电路按模块调试,各模块逐个调试后再联调。
单片机软件先在最小系统板上调试,确保外部EPROM和RAM工作正常以后,再与硬件系统联调。
调试仪器:
万用表
1、硬件调试
电源电路:
将做好的电路板接上9V直流电源,用万用表测试各点的电压,看电路是否导通,先把电源接到电路板上对应的接口,打开电源开关,结果是电源灯不亮,原因1:
电源不通,原因2:
灯的正负极接反,原因3:
灯是坏的。
根据三个原因一一检查,结果发现是灯的正负接反了,换过来以后灯亮了。
把万用表调到10V的档位,然后黑表笔接到89S51的20脚,红表笔接40脚记录所测得的电压。
如果所得电压小于3V或者没有电压则要检查电路是否有虚焊或者线路不连通的情况。
相应的红表笔接到31脚看是否有电压,步骤如前面的一样,结果显示电压正常。
显示部分的电路:
测试显示器的第1脚和2脚、第2脚和15脚之间看是否有5V电压,没有电压则要检查线路,有电压则正常工作。
结果显示正常。
键盘部分:
将硬件的键盘和主板连起来,按下按键,看液晶显示器上是否有输出。
查看是否有虚焊不通的情况。
经过一步步的检查硬件的问题已经解决,可以正常工作了!
2、软件调试
把编写好的程序写到电脑上,用伟福软件进行编译,看语法是否有错误,把有错误的地方要改正过来。
经过参照资料和请教老师,结果软件没有问题。
3、软硬联调
把调试好的程序烧录到单片机上。
将硬件接上9V的直流电源,按照操作说明操作了但是没有成功。
然后检查硬件电路的问题,结果没有发现什么问题,然后就是软件了,把原来的软件清除了,重新烧录进去。
结果显示正常。
第5章电子密码锁使用说明书
本设计采用的是5V的直流电压,在电源输入端的第1脚接正,第2脚接负电,把电源开关拨向右边,电源灯LED1亮和液晶显示器上有显示A:
SET,B:
OPEN。
则说明电路导通可以工作。
注:
原始密码是123456.
数字键0—9:
做输入密码使用。
A键:
功能是重新设置密码,按下以后屏幕会显示INPUTPASSWORD,要先用数字键盘0~~9输入6位数字与原来设的6位密码相同后屏幕会显示RESETPASSWORD并且开锁灯亮才可以重新输入新的6位密码。
输入的密码和原来设置好的密码不一样屏幕显示PASSWORDERROR就不可以重新设置。
B键:
功能是开锁,按下以后输入6位数字密码,屏幕显示PASSWORDOK就可以开锁,继电器工作开锁灯LED3亮。
错误的话蜂鸣器会响,显示器显示:
PASSWORDERROR。
重新输入密码,如果三次输入密码不正确蜂鸣器就会发出报警,并且锁死,报警灯LED2亮。
C键:
功能是返回。
注意:
1、不能将电源的正负极接反
2、不能接高于12V的电压,否则会烧坏电路。
3、不能接交流电。
结束语
这次毕业设计收获很多,也学到了很多知识。
令我对设计的概念有了一个新的认识。
以前做的设计基本都是在书上找别人设计好的方案来做,而且制作简单没有什么很大的技术问题。
这次自己亲自查资料做的设计,体会很深,也学到很多在书上学不到的知识。
首先是方案的确定,综合考察了10个设计题目,初步确定了密码锁这个方案,接下来就是查资料,去图书馆一下借了几本有关单片机的应用的书来查阅,结合自己的设计目标来选择相关的器件和电路的连接方案。
经过查阅资料和询问指导老师,把方案确定后接下来的工作就是画原理图,由于很长时间没有用PROTELL99SE画图了,而且有一些元器件是要自己画管脚的,所以在画的时候碰到很多困难,还有元件的封装。
最后借助书本和向同学请教才把原理图画出来了,接下来遇到的大问题就是布线,布线中先是有线交叉,重新调节元件的位置以后还是出现同样的问题。
最后在同学的帮助下才把PCB画好。
接下来的工作就是做板了,按照流程一下子就把板子做好了,元件都焊好了就开始硬件调试。
在我们设计和调试的过程中,也发现了一些问题,解决了很多问题。
收获:
通过毕业设计,对我来说体会真的很深,感觉从大一到现在第一次忙到连睡觉的时候都想着怎么样才可以把自己的设计做好。
从一开始的确定方案到最后测试,每一步的进行自己都花了100分的心思去做了。
用自己的话说:
真的很辛苦,但是很值得。
天天都是往图书馆去查资料,去机房画PCB,跑实验楼做板和调试,一天两趟。
但是最大的收获是学到了很多知识,也积累了一些经验,这个过程让我发现自己在学习过程中的很多不足,以前看的书太少了,尤其是关于专业类的书籍,没有好好利用现有的资源。
这次设计采用软硬件结果,发挥了89S51的优点,功能强大,操作方便等等。
还有很多可扩展功能,希望往后的设计很更加完善,能设计出更加好的成品来。
附录
附录表一:
程序清单
enbitp3.0;
rwbitp3.1;
rsbitp3.2;
displayequp0;
speakerbitp1.0;
ledbitp1.2;
openbitp1.1;
returnbitbit20h.1;
org0000h;
ljmpstart;
org000bh;
ljmpintermit_t0;
org001bh;
ljmpintermit_t1;
org0030h;
start:
movsp,#60h;
lcallsys_initialization;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序
main0:
lcallstrat_display;
main:
mov52h,#0;52h判断输入错误次数储存地址
setbled;
setbtr0;
lcallkey;
cjnea,#'A',next1;
ljmpset_password;
next1:
cjnea,#'B',next2;
ljmpinput_password;
next2:
ajmpmain;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;系统初始化
sys_initialization:
clrled;
clropen;
clrspeaker;
mov34h,#'1';
mov35h,#'2';
mov36h,#'3';
mov37h,#'4';
mov38h,#'5';
mov39h,#'6';
;存放初始密码
movr7,#12;
movr0,#40h;
loop:
mov@r0,#00h;
incr0;
djnzr7,loop;
;密码键值存放区清零完毕
lcalldelay0_1s;
movp0,#03h;
callwrite_instruction;液晶软复位
movp0,#01h;
callwrite_instruction;
movp0,#3fh;
callwrite_instruction;
movp0,#0fh;
callwrite_instruction;
movp0,#06h;
callwrite_instruction;
;液晶初始化完毕
movr4,#10;
movtmod,#11h;
movth0,#3ch;
movtl0,#0b0h;
setbea;
setbet0;
;定时器T0,0.5S定时中断初始化完毕
ret;
;系统初始化完毕
;;;;;;;;;;;;;;;;;;;;;;中断服务程序
intermit_t0:
pushacc;
pushpsw;
movth0,#3ch;
movtl0,#0b0h;
djnzr4,return;
cplled;
movr4,#10;
return:
poppsw;
popacc;
reti;
intermit_t1:
pushacc;
pushpsw;
movth1,#9eh;
movtl1,#58h;
djnzr4,return_t1;
cplled;
cplspeaker;
movr4,#10;
return_t1:
poppsw;
popacc;
reti;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;键盘扫描
key:
callks;
jnzk1;
jmpkey;
k1:
calldelay;
callks;
jnzk2;
jmpkey;
k2:
clrtr0;
clrled;
movr2,#0feh;
movr6,#00h;
k3:
mova,r2;
movp2,a;
mova,p2;
jbacc.4,l1;
mova,#0;
ljmpl