基于51单片机的电子密码锁设计毕业论文_第1页
基于51单片机的电子密码锁设计毕业论文_第2页
基于51单片机的电子密码锁设计毕业论文_第3页
基于51单片机的电子密码锁设计毕业论文_第4页
基于51单片机的电子密码锁设计毕业论文_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于51单片机的电子密码锁设计基于51单片机的电子密码锁设计电子信息工程技术信息工程系本人郑重声明:所呈交的毕业设计文本和成果,是本人在指导老师的指导下,独立进行研究所取得的成果。成果不存在知识产权争议,本毕业设计不含任何其他个人或集体已经发表过的作品和成果。本人完全意识到本声明的法律结果由本人承担。毕业设计者签名:ii目录10732摘要 1第一章27387前言

23921第二章设计任务和要求 第一章前言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,锁是置于可启闭的器物上,用以关住某个确定的空间范围或某种器具的,必须以钥匙或暗码打开扣件。传统的机械锁由于其构造的简单,被撬的事件屡见不鲜。锁具发展到现在已有若干年的历史了,人们对它的结构、机理也研究得很透彻,因此,不用钥匙就能打开的方法和工具也层出不穷。盗贼还想方设法利用高科技手段撬门开锁,使广大居民防不胜防。传统锁具都存在致命的弱点:第一、

锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏;第二、

锁具制作工艺,技术落后,无法阻止技术手段的开启。目前,市场上很多国内外的锁具,实际上都不具备真正的防盗功能。在惯偷面前,两根钢丝或几件简单的工具就可以把这些锁打开,主要是锁具的技术原理太过简单。随着科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义。电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用,大大提高了主人物资的安全性。目前使用的密码锁种类繁多,各具特色。本文从经济实用的角度出发,采用AT89S51单机,研制了一款具有防盗自动报警功能的电子密码锁,同时通过LCD1602增强了可读性。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。

密码通过键盘输入,若密码正确,则将锁打开。具有自动报警功能。一是密码输入错误3次,则报警;保证了系统的安全性,系统工作时,用户通过按键输入6位密码,单片机将输入密码与设定密码进行比较,第二章设计任务和要求设计任务:是利用开发板设计一个电子锁设计要求:自己在自己电脑上写好要连接的电子锁的程序,再在实验室里将已经调试成功的电子锁的程序下载到开发板上,观察并记录开发板上的等的运行情况;如果不是如预期那样运行,要找出原因并进行调试,最后对自己的实验设计进行验收。本设计由主控芯片51单片机,24C04断电存储电路、单片机时钟电路,LCD1602显示电路、键盘和开锁电路组成。单片机负责控制整个系统的执行过程。2.1系统总结构设计图开锁控制电路开锁控制电路89C52单片机24C02掉电存储LCD1602显示电路矩阵键盘控制指示电路输入错误锁定键盘延时报警控制电路 图2.1基于51单片机的电子密码锁系统结构设计图2.2各模块的功能1.矩阵键盘输入模块:分为密码输入按键与几个功能按键,用于完成密码锁输入功能。2.蜂鸣器报警电路:用于完成输错密码时候的警报功能。3.晶振电路:用于单片机的起振。4.复位电路:完成系统的复位。5.显示模块:用于完成对系统状态显示及操作提示功能。6.开锁电路:应用继电器及发光二极管模拟开锁,完成开锁及开锁提示。2.2.1矩阵键盘模块矩阵键盘接P1口,行接低4位,列接高4为。先让行为高,列为低,若有键按下,则所在行为低,得到按键的所在行数,之后令P1口,行为低,列为高,运用相似的方法得到所按键的所在列数,及确定按键位置,返回键值。由于机械键盘会出现信号抖动的情况,固在发现有按键后延时5毫秒再次确定,若让有按键,证明按键稳定,否则认为接收到的是抖动信号,不予处理。2.2.21602液晶显示模块1602具有三个工作状态控制端,调节他们的高低变化配合数据口的信息,可以显示2×16的字母或者数字,通过子函数可以实现检测初始化LCD、写指令到LCD、LCD状态、LCD清屏、输入一个字节数据到LCD、LCD光标定位到x处、LCD光标归位、输入一个字符到LCD、输入一个字符串到LCD等功能。每次更新显示内容前,需清显示清空LCD原先的显示内容,清屏指令的指令码为01H,即将P0口赋值01H,然后写入指令寄存器IR。LCD1602要显示的内容是根据其控制器内置的字符码表,事先列出要显示的ASCII字符串。每次送一个字符的ASCII码入P0口,然后写入数据寄存器DR,最后将字符地址加一,LCD1602会将写入的ASCII码对应的字符依次显示出来。由于显示字符串的长度不尽相同,约定每串字符以00H结尾;程序检测到字符码为00H时,即停止写入,返回。LCD显示的内容在下次更新前会一直保持。2.2.3延时模块一个程序会有许多地方需要进行延时操作,例如矩阵键盘的消抖延时。一般延时可以通过空循环与中断响应两种方法进行。由于本程序对于时间精度要求不高,故使用相对简单的空循环的方法进行延时。进过实验,单片机每空循环110次耗时1ms。故用两次循环,里面一次空循环110,外面的一次由输入决定循环次数,这样就会进行输入数值时长的延时。2.2.4密码读取模块首先预读入密码的字符数组清零,显示位置清空,然后读取键值。先判断此时是否是在第九个键值输入了数字键值,如果是不响应重新读入,这样可以防止读入字符串溢出,造成密码读取错误。然后通过switch语句5处理键值(字母键值),并将读取位置、显示位置进行相关调整;如果输入的是数字有效键值,存入当前指向的字符数组空间,其后将键值变量清零准备读取下一个键值。进行循环读取,直到成功读取8位密码或者因为输入了确定键提前完成读取工作。2.2.5密码设置模块在系统进行初始化时,要求设置密码。整体思路是要求读取一组密码,保存在临时空间,然后再次读取密码,如果相同,证明设置成功,将新密码覆盖进标准密码数组里,如果两次的密码不同,显示错误信息,要求重新输入。第二次读入密码第一次输入密码第二次读入密码第一次输入密码判断两次密码判断两次密码保存密码,提示成功保存密码,提示成功图2.2密码设置模块该模块将输入密码字符串与设定密码字符串比较。如果相同,执行开锁动作并将输入错误次数清零;如果不同,累计错误次数,如果是第三次输入错误,系统锁死并发出声光告警;如果小于三次,显示密码错误信息,返回密码输入环节。2.2.6单片机及其外围电路复位电路图2.3复位电路2.2.7时钟电路时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下的进行的,如果单片机的时钟电路停止工作(晶振停振),那么单片机也就停止运行了。当采用内部时钟时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18脚)引脚之间接入一个12MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,图2.4时钟电路2.2.8矩阵键盘电路的设计为了加强密码的保密性,采用一个4×4的矩阵式键盘可以任意设置用户密码(1-16位长度),从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I/O口线的数目,节省了单片机的宝贵资源,在按键比较多的时候,通常采用这种方法。图2.5矩阵键盘电路只需每一行与每一列的交叉处不相同,而是通过一个按键来连通,利用这种行列式矩阵结构要N根行线与M根列线,即可组成具有N×M个按键的矩阵键盘。在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就是要识别哪一个按键被按下。对键的识别方法通常有两种:一种是通用的组行扫描查询法;另一种是速度较快的线反转法。此系统中,我们采用线反转法。首先辨别键盘中有无按键被按下,在单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。具体方法是:向行线输出全扫描字00H,把全部列线置成低电平,然后将列线的电平状态读入累加器A中。如果有按键被按下,总会有一根行线电瓶被拉至低电平从而使行线不全为1。判断键盘中哪一个按键被按下通常是通过将列线逐列至低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的按键不在此列;如果不全为1,则所按下的按键必在此列,而且是在与零电平行线相交的交点上的那个按键。2.2.9操作面板10个数字键用来输入密码,另外6个功能键分别是:更正、改密、锁定。其中更正键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。在输入密码状态下,0-9数字键为有效键,有时间和次数限制功能:只有三次输入密码机会,每次限制在10秒内完成,输入密码有误或每次输入密码超时,则被认为是密码输入错误。当3次输入都错误时,程序将返回起始状态。密码输入正确后,继电器吸合,表示锁被打开。在密码输入正确的情况下,程序进入查看密码和修改密码状态,。按“改密”键进入重新设置密码状态,在输入密码时,如发现输入有误,可按“更正”键删除后,重新输入,按“锁定”确认后,程序退出修改密码状态。2.3液晶显示电路本系统设计的显示电路是为了给使用者以提示而设置的为了达到界面友好的目的,显示部分由液晶显示器LCD1602取代普通的数码管完成。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,如果输入的密码正确的话,LCD显示“OK”,绿灯亮起,单片机其中P3.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P3.0输出的是高电平,电子密码锁不能打开,同时红灯亮起。通过LCD显示屏,可以清楚地判断出密码锁所处的状态。图2.6显示器电路2.4系统程序设计方法系统的程序设计采用C语言编码。设计方法是先用文本编辑器编写源码,然后用软件KeilC51编译,如果没有错误,可连接生成.HEX格式的文件(需事先在KeilC51中设置)。如果有错误则无法连接,但可在生成的.OBJ文件中找到代码错误的地方,便于修改。当然也可以直接在Keil中编码。生成的HEX文件是记录文本行的ASCII文本文件,在HEX文件中,每一行是一个HEX记录,由十六进制数组成的机器码或者数据常量。HEX文件经常被用于将程序或数据传输存储到ROM、EPROM,大多数编程器和模拟器使用HEX文件。系统的初始化包括堆栈起始地址的设定,两个定时/计数器的设定,液晶显示模式的设定,密码缓冲区的初始化,一些自定义数据空间的初始化,蜂鸣器初始化发声等操作。系统初始化并读取密码完成后,液晶显示"PASSWORDCONTROL",提示用户可以输入密码。此时程序即不断测试按键,检查是否有按键被按下。如果有,则进行按键识别;如果没有按键按下,或者按下的按键没有被识别,R3赋值0FFH,并跳转至按键测试。实际程序运行时,绝大部分时间都在测试按键,等待用户输入。第三章系统软件设计及功能实现3.1系统软件设计流程图图3.1系统软件设计流程图 3.2功能实现图3.2电子密码锁功能实现图该电子密码锁采用的是数电知识,用触发器构成的数字逻辑电路作为密码锁的核心控制,共设了10个用户输入键,其中只有6个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过10秒(一般情况下,用户不会超过10秒,若用户觉得不便,还可以修改)电路将报警5秒,若电路连续报警三次电路将锁定键盘2分钟,防止他人的非法操作。结论历经几个月的毕业设计即将结束,回想这段时间收获颇多。所做的设计基本上达到了任务书上的要求,能够显示环境温度和目标温度,而且温度分辨值比要求的还高。本设计主要包括两大部分:硬件设计和软件设计部分,硬件部分包括了单片机处理模块、LED显示模块、键盘模块和电平转换模块、软件部分主要包括主程序模块、LED显示程序模块。通过对硬件电路设计我对protel软件的使用更加熟练,而通过运用Keil进行软件的设计使我的编程和调试能力也有很大的提高。这不仅使我对课本上所学的知识有了更进一步的了解,而且也提高了我的动手能力,理论联系实际能力为今后的学习和工总打下了坚实的基础。但同时感觉自己还有很多地方需要完善和提高,设计的产品与实际还有一定的差距,例如可以通过按键灵活测温,如果再加上语音播报功能就更加完善了。所以在今后的工作中还要不断的学习充电,掌握更多的技能。争取能搞在此基础上设计更出色的智能化仪器。通过这次课程设计,发现自己将学过的知识转换成解决实际问题的能力还比较弱,在今后的学习中要努力增强解决实际问题的能力;通过这次课程设计,也为今后的学习积累了很多宝贵的经验。致谢大学三年学习时光已经接近尾声,在此我想对我的母校,我的父母、亲人们,我的老师和同学们表达我由衷的谢意。感谢我的家人对我大学三年学习的默默支持;感谢我的母校给了我我在大学三年深造的机会,让我能继续学习和提高;老师们课堂上的激情洋溢,课堂下的谆谆教诲;同学们在学习中的认真热情,生活上的热心主动,所有这些都让我的三年充满了感动。这次毕业论文设计我得到了很多老师和同学的帮助,感谢我的指导老师,我的本次毕业设计和论文是在他的悉心指导和关心下完成的,不论是在毕业设计方面还是其他方面,老师都给予我很大的关心和支持,正是由于这些细微的关怀,一直激励着我去努力做好本次毕业设计。老师精湛的专业知识、耐心的工作态度和真诚的待人风格给我留下了非常深刻的印象,对我以后的工作和生活将产生很大的影响。他在程序设计及电路制作上给予我相当大的帮助。真挚的向导师说声谢谢。我做毕业设计的每个阶段,从选题到查阅资料,论文提纲的确定,中期论文的修改,后期论文格式调整等各个环节中都给予了我悉心的指导。这几个月以来,李老师不仅在学业上给我以精心指导,同时还在思想给我以无微不至的关怀,在此谨向李老师致以诚挚的谢意,同时,本毕业论文的写作也得到了同学的热情帮助。感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,在此,我再一次真诚地向帮助过我的老师和同学表示感谢!参考文献[1]何立民.MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,1990.[2]《单片机课程设计指导》北京航天航空大学出版社2002

[3]谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.7.[4]李广弟单片机基础[M].(第三版)北京:北京航空航天大学出版社,2007[5]李明喜.新型电子密码锁的设计[J].[6]谭浩强.C++程序设计[M].北京:清华大学出版社,2004[7]祖龙起,刘仁杰.一种新型可编程密码锁[J].大连轻工业学院学报,2002[8]李明喜.新型电子密码锁的设计[J].机电产品开发与创新,2004[9]董继成.一种新型安全的单片机密码锁[J].电子技术,2004[10]荣贵.电子制作[M].科学技术文献出版社,2003附录1硬件电路原理图及PCB图图151单片机电子密码锁电路原理图实物图图251单片机电子密码锁实物图图351单片机电子密码锁PCB图按键扫描程序:#include<reg52.h> //调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义 变量范围0~255#defineuintunsignedint //无符号整型宏定义 变量范围0~65535#include"lcd1602.h"#include"iic.h"ucharvalue,i; //变量ucharflag_lj_en;//边加ucharflag_lj_en_value;sbitrelay=P2^2;//继电器定义sbitbeep=P3^3;//蜂鸣器定义sbitbeiguan=P2^3;//背光uintflag_time;uintflag_guan;ucharsmg_i;uchardis_smg[7]={0};ucharpassword[7]={6,5,4,3,2,1}; //密码保存ucharpassword_bj[7]={1,2,3,4,5,6}; //密码比较ucharcodepassword_r[6]={1,2,3,1,2,3};ucharcodepassword_gl[6]={5,2,0,0,2,5};ucharpassword_xg[6]; //密码修改ucharflag_password;//密码正确否ucharflag_password_cichu1;//密码错误次数bitflag_200ms=1;//200ms标志位ucharkey_can;ucharmenu_1,menu_i;#include"iic.h"/***********************1ms延时函数*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}voidkey() //独立按键程序{ staticucharkey_new=0,key_l; key_can=20;//按键值还原 P1=0x0f; if((P1&0x0f)!=0x0f) //按键按下 { delay_1ms(1); //按键消抖动 if(((P1&0x0f)!=0x0f)&&(key_new==1)) { //确认是按键按下 key_new=0; key_l=(P1|0xf0);//矩阵键盘扫描 P1=key_l; switch(P1) { case0xee:key_can=1;break;//得到按键值 case0xde:key_can=4;break;//得到按键值 case0xbe:key_can=7;break;//得到按键值 case0x7e:key_can=10;break;//得到按键值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论