基于单片机的电子密码锁及程序_第1页
基于单片机的电子密码锁及程序_第2页
基于单片机的电子密码锁及程序_第3页
基于单片机的电子密码锁及程序_第4页
基于单片机的电子密码锁及程序_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的电子密码锁及程序基于单片机的电子密码锁设计随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤为突出,传统的机械锁由于构造简单,被撬事件屡见不鲜。电子密码锁保密性好,使用灵活性高,收到广大用户的青睐。本设计是以单片机AT89C52作为密码锁的主控芯片与数据存储单程序,并用KeiluVision4软件进行编译设计了一款可以更改密码,具有报警功能的电子密码控制系统。本设计采用矩阵键盘对密码进行输入,具有较高的优势,减少了I/O口的占用数目。密码的显示采用LCD显示屏实现,为确保安全性统一使数字。采用蜂鸣器模拟报警系统,增加了密码锁的安全能力。软件使用C语言编程,运用自上而下的模块化设计思想,使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。测试结果表明,设计达到电子密码锁的功能。码锁、AT89C52、矩阵键盘、报警一、设计背景技的进步,锁已经发展到了密码锁、磁性锁、电子锁、不同声音,不同磁场,不同声波,不同光束光波,不同图像来控制锁的开启,从而大大提高了锁的安全性。当今安全信息系统应用越来越广泛,特别在机密保护、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的一部分,运用非常广泛,研究它具有重大的电子密码锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性。目前使用的密码锁种类繁多,各具特色。本文从经济实用的角度出发,采用AT89C52单机,研制了一款具有防盗自动报警功能的电子密码锁。该密码锁设计方法合理,简单易行,成本低,符合住宅、办公室用锁要求,具有一定的推广价值。设计目的1.了解单片机开发系统的组成及结构;3.能够熟练使用protues和keil软件进行连线和编程,并熟练掌握仿6.培养查找错误和改正错误的能力。设计要求本设计采用单片机为主控芯片,结合外围电路组成电子密码控制系统。示“PasswordRightLockOpened!”。原始密码在首次开锁时为“000000”。2.重新设置密码时,LCD显示“******”,按下“修改”键显示数值。3.密码只能输入6位数字,无法输入多余数字。4.具有自动报警功能:当密码输入错误三次,报警,蜂鸣器响3秒。5.LED数码管显示密码,为确保安全性所有密码均用“*”表示。设计原理和硬件仿真方案设计原理和硬件仿真方案1.矩阵键盘密码的输入用矩阵键盘实现,包括数字键和功能键。表一键盘具体功能设计表按键按键键名数字键输入密码新建新建键设定新密码确认确认键修改修改键显示密码进入进入键允许输入密码消取消键取消输入密码如图一所示,矩阵键盘的每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只图一矩阵键盘本次设计需要0~9十个数字按键、一个新建键、一个确认键、一个在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段,还要对按键进行消抖处理。当确认有按键按下后,就要识别是哪一个按键被按下。本次设计使用的是线反转法。给行线置为0x0f,给列线置为0xf0,再将行列进行逻辑或结果为0xff,当有按键按下时相应的按键位行列均为0,行列逻辑或不为0xff,由此可利用行列逻辑或后的值是否为0xff来判断是否有按键按下。再根据扫描结果判断按下键的位置。给相应的按键赋值即可实现数字键和功能键。对功能键进行相应的软件编程即可实现按键功能。使用矩阵键盘能减少键盘和单片机接口所占用的I/O线数目,当按键较多的时候通常采用这种方法。2.开锁电路在本次设计中用发光二极管代替电磁锁,二极管D1亮表示锁开,二极管灭表示没有开锁。如图二所示,当输入密码与内置密码相配合时将。图二发光二级管电路3.报警电路报警电路由单片机和蜂鸣器组成,如图三所示,当为低电平时蜂鸣器发出声音报警。每次输入的密码与正确密码进行比较,如果相同,锁开灯亮。如果输入错误则用一个变量来记录输入错误的次数,当输入密码错误达到三次时,蜂鸣器工作发出报警声音,本次设计使用的是声音图三报警电路4.LCD显示电路密码显示电路由单片机、排阻和LCD显示屏组成。显示电路如图四所示。为保证密码的保密性,本设计采用“*”显示所有输入密码,如图四所示。当重设密码时,按下“修改”键显示数字,如图五所示。本设软件程序设计本系统软件设计由主程序、初始化程序、键盘扫描程序、密码输入报警程序、延时程序组成。如图六所示为主程序流程图,开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,判断密码是否正确,密码正确开锁,密码不正确统计错误密码次数加1。在开锁情况下进行修改密码,点击确认密码修改成功,否则结束返回。若密码修改成功则再执行之前的操作。开始初始化键盘扫描子程输入密码子程序N输入密码Y密码错误次数Yq=3Nq=3NNYY调用报警子程YY开锁调用延时子程调用密码重置调用密码重置YN图六主程序流程图六、系统调试软件编写电子密码锁的源程序,本设计主要运用C语言编写。源程序编当密码正确按下确认键发光二极管亮,锁开。如图八图九蜂鸣器报警图八密码正确锁开灯亮当密码输入错误三次蜂鸣器发出声音报警,如图九所示由图九可以看到蜂鸣器接地端为蓝色,即此时为低电平,所以蜂鸣器正在发出报警声音。Protues仿真电路图如图十所示七、设计总结与展望课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新月异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说是无处不在。因此作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。本设计经过多次修改和整理,可以满足基本的要求。密码正确,锁示屏显示密码为“*”。在设计的过程中遇到了各种各样的问题,譬如说断电密码保护的设计,由于电路和编程都过于复杂,本设计并未加入。在编程的过程中问题也是很多,由于程序较长,当实现了这个功能另外一个功能有不能很好的实现,所以要做到模块与模块之间的衔接。遇到的一些问题也经过回顾此次单片机课程设计,至今我仍感触颇多。在设计过程中从理论到实践我们可以到很多很多东西,巩固了以前学过的知识,还懂得了如何将理论联系实际。只有理论知识是远远不够的,只有将理论运用到实际中对我们来说才是有意义的,这样才能真正的为社会服务。七、附录源程序清单:#include<>#include<>#defineucharunsignedcharstaticunsignedchartable[6]={0,0,0,0,0,0};//DeclarefunctionsucharBusy_Check();voidInitialize_LCD();voidWrite_LCD_Data(uchardat);voidWrite_LCD_Command(ucharcmd);voidDisplay_String(ucharx,uchary,uchar*str);voidDisplay_char(ucharhang,ucharlie,charsign);voidwrite_add(ucharaddress,uchardate);//向AT24Cxx中的指定地址写入数据ucharread_add(ucharaddress);//从AT24Cxx中的指定地址读取数据voidinit();ucharh=20;sbittouch=P2^1;sbittouch1=P2^2;sbitspeaker=P2^0;voiddelay(unsignedcharms)//延时**ms{unsignedchari;while(ms--){for(i=250;i>0;i--){}}}unsignedcharkeyscan()//扫描键盘{unsignedchartemp,y,j;unsignedcharanjian[]={0xfe,0xfd,0xfb,0xf7};for(y=0;y<4;y++){P1=anjian[y];temp=0x10;for(j=0;j<4;j++){if(!(P1&temp)){return(j+y*4);}}}}voidjudge(){P1=0xf0;if(P1!=0xf0){delay(50);delay(50);if(P1!=0xf0){h=keyscan();}}}//判断是否有按键//消抖voidmain(){unsignedchara=1,i=0,k=0,l=1,m=1,n,f=0,s=0;intq;Initialize_LCD();Display_String(1,1,"WelcomeToUse");Display_String(2,1,"");touch1=0;while(1){judge();ifh){if(h==table[i])k++;Display_String(2,a,"*");a++;ifa7)a=1;ifi6)h=16;}}if(h==14){Display_String(1,1,"InputPassword");Display_String(2,1,"");h=16;touch=1;touch1=0;k=0;q0;}if(h==12){ifk6){Display_String(1,1,"PasswordRight");Display_String(2,1,"LockOpened!");touch=~touch;{Display_String(1,1,"PasswordError");Display_String(2,1,"");q++;while(q==3){speaker=0;delay(200);delay(200);delay(200);speaker=1;q;}h=14;}delay(255);k=0;h=16;while(l){judge();if(h==11){Display_String(1,1,"NewCode");Display_String(2,1,"while(m==1){judge();touch1=~touch1;ifh0){table[n]=h;write_add(s,h);Display_String(2,a,"*");a++;n++;h=16;ifn{n=0;}}if(h==15){ifn0)n=6;Display_String(2,a,"h=16;}if(h==13)m=0;}if(h==13)h=13;f;}if(h==14){}if(h==13){Display_String(2,1,"for(n=0;n<6;n++)Display_char(2,n+1,(uchar)(table[n]+48));h=13;l=0;f=1;}k=0;}}if(h==15){Display_String(2,a,"");h=16;}if(h==13){for(n=0;n<6;n++)Displ

温馨提示

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

评论

0/150

提交评论