基于单片机电子密码锁设计Word文件下载.docx
《基于单片机电子密码锁设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机电子密码锁设计Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
2.2总体设计方案选定3
第3章系统硬件设计4
3.1单片机AT89C51简介4
3.2硬件电路的设计5
3.3电路设计总图9
第4章系统软件设计11
4.1主程序模块11
4.2键盘扫描及识别子程序12
4.3系统模块密码设置子程序13
第5章系统仿真15
5.1PROTEUS简介:
15
5.2、系统仿真15
参考文献16
附录Ⅰ电子密码锁整体设计图17
附录Ⅱ电子密码锁程序源代码18
第1章绪论
1.1、课题背景和意义
随着电子技术和计算机技术的飞速发展,单片机性能不断完善,性能价格比显著提高,技术日趋完善。
由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。
本设计利用单片机及附加电子元器件实现数据采集和控制算法,来完成某一实际功能,检验并提高同学对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。
同时也加强对数字电路、单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论和实践基础。
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。
这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。
由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,
1.2、电子密码锁发展趋势
电子密码锁应用于金融业,其根本的作用是“授权”,即被“授权”的人才可以存取钱、物。
广义上讲,金融业的“授权”主要包括以下三种层次的内容:
1、授予保管权,如使用保管箱、保险箱和保险柜;
2、授予出入权,如出入金库、运钞车和保管室;
3、授予流通权,如自动存取款。
目前,金融行业电子密码锁的应用主要集中在前两个层面上。
下面将介绍几种在金融行业中使用较多的电子密码锁以及它们的技术发展方向。
当然,以上所说的授权技术再高超,都必须由精良的“锁具”担当承载结构部件,实现开启、闭锁的功能,而且承担实体防护作用,抵抗住或尽量延迟破坏行为,让电子密码锁“软、硬不吃”。
一般情况下,锁具防盗的关键是锁身外壳、闭锁的部件的强度、锁止型式、配合间隙和布局。
提高电子密码锁之防护能力的必然途径是报警,在金融业的许多场所有人值守、有电视监控,具有报警功能,可以综合物理防范和人力防范两种作用。
报警的前提是具备探测功能,根据电子密码锁的使用场所和防护要求,可选择多种多样的探测手段。
在中国的城市金融业中,实现联网报警已经成为对各金融网点的基本要求。
根据国内外的实践经验,金融业实行安全防范风险等级很有必要,即依据使用的防盗报警器材的性能、安装布局和人员值守状况等,可以评估被防护物或区域的防护能力,得出风险等级,其中,电子密码锁的性能至关重要。
由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子密码锁,这样对盗贼而言是“道高一尺、魔高一丈”。
组合使用信息也能够使电子密码锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。
第2章总体设计方案的确定
2.1电子密码锁设计的具体要求
(1)设计开锁密码四位密码的电子密码锁。
(2)4×
4的矩阵键盘其中包括0-9的数字键和A-F的功能键
(3)本产品具备报警功能,当输入密码错误时蜂鸣器响。
(4)密码可以由用户自己修改设定(只支持4位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
2.2总体设计方案选定
采用一种是用以AT89S51为核心的单片机控制方案。
选用单片机AT89S51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。
其原理如下图2.1所示:
图2.1单片机控制密码锁原理图
第3章系统硬件设计
3.1单片机AT89C51简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示
3.1.1主要特性
与MCS-51兼容
·
4K字节可编程FLASH存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
3.2硬件电路的设计
本设计单片机硬件资源的分配:
P2.0用于蜂鸣器和报警灯的控制。
P2.7口接发光二极管,当输入密码正确时发光。
P1.0~P1.7用于键盘电路的控制。
3.2.1最小系统的设计
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和开关复位。
图3.3即为手动(开关)复位电路。
图3.3手动复位电路
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3.5。
外接石英晶体(或陶瓷谐振器)及电容Cl、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容Cl、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我们推荐电容使用30pF±
10pF,而如使用陶瓷谐振器建议选择40pF±
10F。
用户也可以采用外部时钟。
采用外部时钟的电路如图1所示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
3.2.2开锁机构
用户通过LCD提示信息,用键盘输入正确密码,从而达到开锁的目的。
当用户输入的密码正确并且是在按下确定键的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。
电路驱动和开锁两级组成。
由D5、R1、T10组成驱动电路,其中T10可以选择普通的小功率三极管如9014、9018都可以满足要求。
D5作为开锁的提示;
由D6、C24、T11组成。
其中D6、C24是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。
T11可选用中功率的三极管如8050,电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;
灭,表示没有开锁。
图3.7密码锁开锁机构电路图
3.2.3键盘设计
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×
M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
4×
4矩阵键盘的工作原理
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图5所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。
由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
扫描原理
把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为扫描原理。
由於这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键,
我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
图3.8为键盘整体模框图:
图3.8键盘整体模框图
3.3电路设计总图
Proteus软件是LabcenterElectronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
本密码锁采用proteus进行电路图设计,经过元件选型,用万能实验版进行硬件焊接,以实现硬件部分。
下图为proteus设计的密码锁电路图整体抓图
第4章系统软件设计
因设计主要是作用汇编语言来开发的51单片机项目程序,所以首先必须有一个可以在WindowsXP或Windowsvista操作系统下执行的汇编语言编译器,本设计采用Keil编译器进行编程,因为它可以支持一系列的51单片机。
图4.1主程序的流程图
4.1主程序模块
主程序主要是完成系统初始化、设置中断向量、检查有无键按下、以及调用显示等等。
主程序部分如下所示:
while
(1)
{
unsignedcharflag=0;
while(_key=P1==0xff);
while(_key=Key()==0xff);
if(_key==0x88)XiuGaiMiMa();
//按16键修改密码
if(_key!
=_key1)flag=1;
//密码第一位不匹配
_key=Key();
=_key2)flag=1;
=_key3)flag=1;
=_key4)flag=1;
=0x77)flag=1;
//按错确认键_
if(flag==1)P2=0x01,Del5s();
//密码错误警报器响5S
elseP2=0x8;
Del1s();
//开锁成功指示灯亮1S
4.2键盘扫描及识别子程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。
其程序流程如图4.2所示
键盘部分程序如下:
unsignedcharKey()
while(_key=P1==0xff);
//等待按键按下
while(_key!
=0xff)
{
Del10ms();
_temp=P1;
if(_temp==_key)
break;
else_key=0xff;
}
P1=0xf0;
_key=P1;
_key=_key&
0xf0;
P0=0x0f;
_temp=P1;
_temp=_temp&
0x0f;
_key=_key|_temp;
return_key;
}
4.3系统模块密码设置子程序
由于设计是分模块化进行,所以子程序是整体软件系统的组成部分,子程序不但可以使程序化整为零,使其复杂简单化,同时也方便阅读,修改等,每个功能模块都有它自己的子程序,在本设计中是用LCD显示数据,所以就要用到显示子程序,设计中用的是矩阵键盘,所以就用到键盘扫描子程序,例如还有显示初始化子程序、LCD忙检测子程序、关闭状态显示子程序、开锁状态显示子程序、密码输入及修改状态显示子程序、密码输入错误后的提示子程序等。
如下图为密码修改子程序
voidDel10ms(void)
for(b=5;
b>
0;
b--)
for(c=4;
c>
c--)
for(d==248;
d>
d--);
voidXiuGaiMiMa();
_key1=Key();
_key2=Key();
_key3=Key();
_key4=Key();
_key5=key();
if(_key5==0xb7)
{
P2=0x01;
Del1s();
//警报器响一秒表示密码修改成功
}
第5章系统仿真
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
5.2、系统仿真
当输入密码正确时,LED显示绿色,其仿真结果如下所示:
开锁成功。
参考文献
[01]江世明,黄同成主编.单片机原理及应用.北京:
中国铁道出版社.2010.12
[13]李朝清.PC机及单片机数据通信技术.北京:
北京航空航天大学出版社,1999.
附录Ⅰ电子密码锁整体设计图
附录Ⅱ电子密码锁程序源代码
#include"
reg51.h"
unsignedchar_key,_key1,_key2,_key3,_key4,_key5,_temp;
unsignedchara,b,c,d;
unsignedchar_clarm;
voidDel1s(void)
for(a=5;
a>
a--)
for(b=4;
for(c=116;
for(d==214;
voidDel5s()
Del1s();
Del1s();
voidDel10ms(void)
}
voidmain()
{while
(1)
unsignedcharflag=0;
while(_key=P1==0xff);
while(_key=Key()==0xff);
if(_key==0x88)XiuGaiMiMa();
if(_key!
_key=Key();
//按错确认键_
if(flag==1)P2=0x01,Del5s();
elseP2=0x8;
//开锁成功指示灯亮1S
}
总结
在这一学期的单片机课程中,我们学到了许多关于单片机系统开发的知识,从最开到最后结题,更使我们得到了充分的锻炼。
虽然在这期间,我们也曾灰心,也曾茫然所措,从一开始的自信满满,到最后的紧张繁杂,所有的这些都令我们回味无穷,这已经成为了我们人生的一个宝藏。
我想今后的学习和工作也是这样的,汗水见证着成功,我想十年过后,但我们都已经走入了社会,在某个阳光明媚的夏日,午后醒来,突然想起大学经历的时候,最先映入脑海里的就是这门课程吧,就是这些为了一个共同的目标,相互合
作,共同奋斗的日子吧!
在这次的课程设计中,我们遇到了很多困难,过程很艰难,但
是我们都克服了,这是对我们自己的肯定。
我们也发现理论和实际的差别,书本上的知识固然重要,但是我们也需要学会使用它们,把他们运用到我们的课程设计中。
这次的单片机课程使我们学到了很多,不单单是课本上那些知识,更重要的是一些课本上没有但是有很重要的知识,像是团队合作精神,查找电路的故障等等。
我们觉得这些无形之中学到的知识更加弥足珍贵
致谢
本设计是在刘伟春老师的悉心指导下完成的,渊博的知识,严谨的治学态度,一丝不苟的工作作风,平易近人的性格都是我学习的楷模。
在论文的研究及整理期间,导师给了我很大的支持和鼓励,才使得论文得以顺利的完成,在此谨向导师表示忠心的感谢和崇高的敬意。
同时感谢实验室的等老师,他们给我们提供了必要的实验器材,提供了很大的方便感谢同实验室的同学,,他们不仅在学习上对我有很大的帮助,还在生活上提供方便。
,我和他们相处的是非常愉快的。