毕业设计基于51单片机的电子密码锁的设计报告.docx
- 文档编号:6689646
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:29
- 大小:229.60KB
毕业设计基于51单片机的电子密码锁的设计报告.docx
《毕业设计基于51单片机的电子密码锁的设计报告.docx》由会员分享,可在线阅读,更多相关《毕业设计基于51单片机的电子密码锁的设计报告.docx(29页珍藏版)》请在冰点文库上搜索。
毕业设计基于51单片机的电子密码锁的设计报告
西安文理学院机械电子工程系
专业课程设计报告
专业班级2011级测控技术与仪器1班
课程单片机课程设计
题目基于51单片机的电子密码锁的设计
学号0703110121
学生姓名党晓英
指导教师陈琦
2014年5月
西安文理学院物理与机械电子工程学院
课程设计任务书
学生姓名
党晓英
专业班级
2011级测控技术与仪器1班
学号
0703110121
指导教师
陈琦
职称
讲师
教研室
C0409
课程
单片机课程设计
题目
基于51单片机的电子密码锁的设计
任务与要求
设计任务:
以51单片机为核心,设计带有密码输入键盘、电磁阀等部件的单片机应用系统,实现电子锁的锁闭和打开。
设计要求:
1、完成系统的硬件电路设计与软件设计;
2、采用汇编或C语言编程;
3、采用Proteus、KeilC等软件实现系统的仿真调试。
4、论文要求思路清晰,结构合理,语言流畅,书写格式符合要求。
开始日期2014年5月12日完成日期2014年5月25日
2014年5月28日
基于51单片机的电子密码锁的设计
摘要:
在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作、记住密码即可开锁等优点。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
本系统由AT89C51单片机系统(主要是AT89C51单片机最小系统)、4×4矩阵键盘、LCD1602显示和报警系统等组成,具有设置、修改六位用户密码、超次报警、超次锁定、密码错误报警等功能(本设计由P0口控制LCD显示,密码正确显示passwordok!
密码错误显示passworderror!
超过三次输入错误自动锁定。
由P1口控制矩阵键盘含有0-9数字键和A-F功能键。
)。
除上述基本的密码锁功能外,依据实际的情况还可以添加遥控功能。
本系统成本低廉,功能实用。
关键词:
AT89C51;LCD1602;电子密码锁;4×4矩阵键盘
1.设计目的
1.1、课题背景和意义
伴随着现在电子技术和科学技术的快速发展,随着单片机性能不断完善,性能价格比也随着显著提高,技术日趋完善。
由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因此在国民经济建设、军事及家用电器等各个领域均得到了广泛的应用。
本设计利用单片机及附加电子元器件实现数据采集和控制算法,来完成某一实际功能,检验并提高大学生对整体电路设计和把握能力,了解单片机系统设计流程,以及电路板的实际制作和调试能力。
同时也加强对数字电路、单片机和微机原理等课程知识的实际应用能力,也为同类产品的进一步发展奠定理论和实践基础。
随着科技水平的提高和人们安全意识的加强,对安全和个人的隐私的要求也就越来越高。
机械锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
伴随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。
这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。
由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
1.2、电子密码发展趋势
现在,电子密码锁使用于各个领域,尤其在国民建设,和军事领域具有突出贡献。
现在的密码锁内的信息包括了数字、字符、图形图像、人体生物特征和时间等,对电子锁的要求也越来越高。
电子技术必是各国发展的优先技术。
由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子密码锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子密码锁,这样对盗贼而言是“道高一尺、魔高一丈”。
组合使用信息也能够使电子密码锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。
2.总体设计方案
2.1、设计目标
(1)本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。
(2)设计开锁密码位六位密码的电子密码锁。
(3)能够LCD显示在密码正确时显示PASSWORDOK,密码错误时显示PASSWORDERRO
输入密码时显示INPUTPASSWORD。
(4)实现输入密码错误超过限定的三次电子密码锁定。
(5)4×4的矩阵键盘其中包括0-9的数字键和A-F的功能键
(6)本产品具备报警功能,当输入密码错误时蜂鸣器响并且LED灯亮。
(7)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。
2.2、课题方案的选定
采用一种是用以AT89C51为核心的单片机控制方案。
选用单片机AT89C51作为本设计的核心元件,利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。
3.系统的硬件组成和原理
3.1、单片机AT89C51的简介
AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128*8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
图3.1单片机引脚图
3.2、系统的硬件组成
3.2.1、最小系统的设计
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和开关复位。
图3.3即为手动(开关)复位电路。
图3.2手动复位电路
a、复位后PC值为0000H,表明复位后的程序从0000H开始执行。
b、SP值为07H,表明堆栈底部在07H,一般需要重新设置SP值。
c、P0~P3口值为FFH。
P0~P3口用作输入口时,必须先写入“1”。
单片机在复位后,已使P0~P3口每一端线为“1”,为这些端线用作输入口做好了准备。
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见下图。
外接石英晶体(或陶瓷谐振器)及电容Cl、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容Cl、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。
用户也可以采用外部时钟。
采用外部时钟的电路如图1所示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
图3.3晶振电路
3.2.2、芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.2.3、开锁机构
用户通过LCD提示信息,用键盘输入正确密码,从而达到开锁的目的。
当用户输入的密码正确并且是在按下确定键的话,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。
电磁锁的选用要视情况而定,但是吸合力要足够且由一定的余量。
在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。
图3.4开锁电路
3.2.4、键盘设计
本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。
在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
扫描原理:
把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
比如说扫描码送入01111111,前面的0111是代表此时扫描第一行P1.0列,而后面的1111是让读取的4行接脚先设为VDD,若此时第一行的第三列按键被按下,那读取的结果就会变成01111101(注意1111变成1101),其中LSB的第三个bit会由1变成0,这是因为这个按键被按下之后,会被垂直的扫描码电位short,而把读取的LSB的bit电位拉到0,此即为扫描原理。
由于这种按键是机械式的开关,当按键被按下时,键会震动一小段时间才稳定,为了避免让8051误判为多次输入同一按键,
我们必须在侦测到有按键被按下,就Delay一小段时间,使键盘以达稳定状态,再去判读所按下的键,就可以让键盘的输入稳定。
图3.5键盘电路
3.2.5、显示电路的设计
显示设计采用字符型液晶屏设计,由单片机的p0口控制显示,由p3.3~p3.5控制lcd的控制端口。
P0作为输出口使用时,由于其是一个漏极开路电路(即是弱电平),所以需要加10k的上拉电阻,它才会有高电平的输出。
然而,p3口有第二功能的作用,与其连接,更能有效的控制好显示电路。
图3.6显示电路图
3.3、系统设计总图
图3.7系统设计总图
4.系统软件设计
4.1、系统软件方框图
因设计主要是作用汇编语言来开发的51单片机项目程序,本设计采用Keil编译器进行编程,因为它可以支持一系列的51单片机。
4.1主程序的流程图
4.2、键盘扫描及识别子程序
键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。
键盘部分程序如下:
key:
;键盘程序名称
callks;调用子程序ks
jnzk1;判断是否有键按下
jmpkey;跳回键盘程序
ks:
movp1,#0f0h;
mova,p1;
xrla,#0f0h;
ret;
4.2键盘扫描程序流程图
4.3、密码设置子程序
由于设计是分模块化进行,所以子程序是整体软件系统的组成部分,子程序不但可以使程序化整为零,使其复杂简单化,同时也方便阅读,修改等,每个功能模块都有它自己的子程序,在本设计中是用LCD显示数据,所以就要用到显示子程序,设计中用的是矩阵键盘,所以就用到键盘扫描子程序,例如还有显示初始化子程序、LCD忙检测子程序、关闭状态显示子程序、开锁状态显示子程序、密码输入及修改状态显示子程序、密码输入错误后的提示子程序等。
4.3设置密码子程序流程图
5.系统调试
5.1、程序调试
在硬件支持的环境下,用proteus设计好的电路,Keil编好的程序编译成芯片可识别的C51文件,利用PC机写进proteus程序图芯片内进行仿真测试,并对其出现的错误进行修改。
有图可以看出最终调试成功。
图5.1keil生成hex文件
图5.2keil编译程序成功
5.2、电路仿真调试
密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作
图5.3新密码需要输两次
当密码输入正确时,液晶显示屏显示如下:
图5.4仿真成功密码正确
图5.5密码正确绿灯亮
实现输入密码错误超过限定的三次电子密码锁定
图5.6密码锁定
当输入密码错误时蜂鸣器响并且LED灯闪一下
图5.7密码输入错误
图5.8密码输入错误
总结
以上为这段时间所做的课程设计---基于51单片机的电子密码锁设计,在着手本次课程设计时,通过查阅网络与图书馆搜集到的资料,再加上指导老师指点,结合生活中对密码锁的功能特性要求,设计出了这一套电子密码锁系统的主要硬件结构和软件结构,基本完成了课题的要求。
不过由于了解的专业知识尚浅,对课题的研究经验的不足,使得在技术的解决与运用上显得粗糙了一些,特别是功能按键的设定。
本次设计的电子密码锁是以手动键盘输入密码的,通过这几个月对电子密码锁的研究学习,发觉这种密码输入方式可以进行改革。
在越来越高科技化的今天,遥控控制显的愈发重要,今后的电子密码锁应该具有以红外技术或无线电技术为辅助的密码按键输入远程交互技术,这样就能远程输入密码完成操作。
也可以放弃传统的按键输入密码模式,借助传感器技术运用声控来实现密码输入,又或者人脸识别技术,还有一种就是用户指纹输入方式,这些都可以使开锁的时间更短更方便。
电子密码锁产业将向静态功耗更低,外围电路更简化,可提供的功能或控制口更多,更人性化高科技化的方向发展。
通过本次课题设计的锻炼,我学到了很多有关电子密码锁的设计方法与工作原理,巩固了单片机知识。
无论从选题到定稿,从理论到实践都使我学到了很多东西,它不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
同时也明白了理论与实践相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
致谢
在本次课题设计过程中,陈琦老师和杨秋芬老师对该论文从选题,构思到最后定稿的各个环节给予细心指引与教导,使我得以最终完成课题设计,在此表示衷心的感谢。
此外在学习中,老师严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及侮人不倦的师者风范是我终生学习的楷模。
另外在完成课题设计的过程中,还得到众多朋友的关心支持和帮助,在此,谨向老师同学和朋友致以衷心的感谢和崇高的敬意!
最后,我要向百忙之中抽时间对本文进行审阅,评议和参与本人论文答辩的各位老师表示感谢。
参考文献
[01]何宏主编.单片机原理与接口技术.北京:
国防工业出版社.2006.110
[02]杨西明,朱骐主编 .单片机编程与应用入门.北京:
机械工业出版社 .2004.35
[03]先锋工作室编著.单片机程序设计实例.北京:
清华大学出版社 .2003.56
[04]谢宜仁主编 .单片机实用技术问答.北京:
人民邮电出版社 .2003.78
[05]梁丽.电子密码锁的计算机仿真设计.计算机仿真,2005.90
[06]房小翠,王金凤编著.单片机实用系统设计技术.北京:
国防工业出版社 .1999.56
[07]各种网络教程及其他
[08]王宽仁.可靠安全的智能密码锁.电子技术应用,2001.66
附录Ⅰ电路总图
附录Ⅱ程序清单
enbitp3.5;
rwbitp3.4;
rsbitp3.3;
displayequp0;
speakerbitp2.6;
ledbitp2.7;
openbitp2.0;
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,#'1';
MOV36h,#'1';
MOV37h,#'1';
MOV38h,#'1';
MOV39h,#'1';;存放初始密码
MOVr7,#12;
MOVr0,#40h;
loop:
MOV@r0,#10h;
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,#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;
movp1,a;
mova,p1;
jbacc.4,l1;
mova,#0;
LJMPlk;
l1:
jbacc.5,l2;
mova,#4;
ljmplk;
l2:
jbacc.6,l3;
mova,#8;
ljmplk;
l3:
jbacc.7,next_key;
mova,#12;
lk:
adda,r6;
movr6,a;
k4:
callks;
jnzk4;
mova,r6;
movdptr,#table0;
movca,@a+dptr;
mov50h,a;;查表取值存入50H,保护键值
ret;
next_key:
incr6;
mova,r2;
jnbacc.7,key;
rla;
movr2,a;
jmpk3;
;;;;;;;;;;;;
ks:
movp1,#0f0h;
mova,p1;
xrla,#0f0h;
ret;
;;;;;;;;;;;;;;;;;设置密码程序
set_password:
callclear_display;
movdptr,#table4;
callinput_hint;
movr0,#40h;
callpassword;
jbcreturnbit,set_password;;先输入原密码完毕
movr5,#6;
movr0,#40h;
movr1,#34h;
input_compere:
mova,@r0;
xrla,@r1;
jnzinput_error;
incr0;
incr1;
nop;
nop;
djnzr5,input_compere;;验证输入密码完毕
jmpset_password0;
input_error:
setbled;
callclear_display;
movdptr,#table5;
callinput_hint;
calldelay1_5s;
clrspeaker;
clrled;
inc52h;
mova,52h;
cjnea,#3,set_password;
sjmp$;;输入密码错误次数超过3次,锁死
set_password0:
callclear_display;
movdp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 51 单片机 电子 密码锁 设计 报告