基于51单片机的电子密码锁的设计.doc

上传人:可**** 文档编号:91262136 上传时间:2023-05-24 格式:DOC 页数:29 大小:382.50KB
返回 下载 相关 举报
基于51单片机的电子密码锁的设计.doc_第1页
第1页 / 共29页
基于51单片机的电子密码锁的设计.doc_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《基于51单片机的电子密码锁的设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的电子密码锁的设计.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、西安文理学院课程设计报告目录目录I1 绪论11.1 引言11.2 电子密码锁的背景11.3 键盘式电子密码锁的特点12 系统设计22.1系统总设计结构图22.2 开锁机构的设计32.2.1 主控芯片(AT89C51单片机)的简介33 系统硬件设计53.1 键盘设计53.2 系统电路设计63.2.1键盘电路及连线图63.2.2 数码管显示电路及连线图73.2.3 开锁和报警电路及连线图(由LED灯和扬声器电路代替)73.3 整体电路图的绘制74 软件设计94.1 系统软件设计思路94.2 系统软件设计总流程图105 程序调试115.1 程序调试需要用到的软件和工具115.2 调试过程116 设计

2、总结11致谢12参考文献13附录14I1 绪论1.1 引言在这个信息和科技高速发展的时代,人们的生活水平越来越高,随之应运而生的人们的安全意识也越来越强,然而传统的机械锁由于设计和工艺简单,操作和携带不便,已经不能满足人们对于安全保证和生活便利的需求,于是电子密码锁本着它自身的保密性高、操作简单、灵活好用等特性逐渐进入人们的视野,并已被广大群众接纳和使用。锁是用以关住某个确定的空间或范围或某种器物的,必须以钥匙或密码打开的器件。锁,从古至今,发展到现在已有近千年的历史了,人们对它的结构、原理也随着时间的增加研究的近乎透彻,因此,开锁的方法和工具早已不仅仅局限于配套的钥匙,种类也层出不穷。现代社

3、会中,由于各种矛盾冲突十分剧烈,人们的思想道德观念,价值观念,文化修养水平等参差不齐,人们的思想境界良莠不齐,善良、正直的人们能够自觉规范自已的行为,不是自己的东西不会眷恋,没有钥匙就不会乱闯乱动。但是,生活中同样还存在着一些道德观念较差的人,总有着不劳而获的“梦想”,他们在受到诱惑的时候,往往会想方设法利用各种手段撬门开锁,使广大居民防不胜防。之所以出现这种情况,除了人们的道德观外,还有一个很重要的原因,就是传统锁具都存在致命的弱点,例如,锁芯采用常见的铜、铝、锌等材料,抵抗不了强力破坏;再者,锁具制作工艺,技术落后,无法阻止先进技术手段的开启。目前,市场上的锁具各种各样,形状千变万化,然而

4、都是大同小异,技术原理简单,实际使用上却都不具备真正安全的防盗功能。面对这一残酷的现状,锁具也进入了必须革新的时代。1.2 电子密码锁的背景随着社会科技的进步,锁已发展到了密码锁、磁性锁、电子锁、激光锁、声控锁等等。在传统钥匙的基础上,加了一组或多组密码,不同声音,不同磁场,不同声波,不同光束光波,不同图像。(如指纹、眼底视网膜等)来控制锁的开启。从而大大提高了锁的安全性,使不法之徒无从下手,人们也就能对自身财产安全有了更多的保障。当今安全信息系统应用越来越广泛,特别在保护机密、维护隐私和财产保护方面起到重大作用,而基于电子密码锁的安全系统是其中的组成部分,因此研究它具有重大的现实意义2。1.

5、3 键盘式电子密码锁的特点电子锁可以在日常生活和现代办公中,住宅与办公室的安全防范、单位的文件档案、财务报表以及一些个人资料的保存等多种场合使用。大大提高了主人物资的安全性,安全可以代替老式机械锁。目前使用的密码锁种类繁多,各具特色。从目前的技术水平和市场认可程度看,使用最为广泛的电子密码锁是键盘是电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。 在输入密码的过程中,为了限制试探密码的企图

6、,通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁仍然在自己的基础上发展,不仅在市场上居于主流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段4。2 系统设计2.1系统总设计结构图密码输入设备数码管显示单片机AT89C51开锁机构图 2.1系统总设计结构图本设计由主控芯片51单片机,键盘,LED显示屏和开锁电路组成。单片负责控制整个系统的执行过程。2.2 开锁机构的设计通过单片机送给开锁执行机构(本设计用LED灯和扬声器代替继电器打开电磁阀的开锁执行机构)实现开锁或警报的表示过程。AT89C51单片机开

7、锁驱动电路开锁/警报图 2.2密码锁开锁结构示意图当用户输入的密码正确而且是在规定的时间及次数输入之内,单片机便输出开锁信号送到开锁驱动电路,达到开门的目的(此处用LED发光二极管亮一秒钟做为提示,同时发出“叮咚”声)。2.2.1 主控芯片(AT89C51单片机)的简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的M

8、CS-51指令集和输出管脚相兼容1。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。主要特性3: 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 1288位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路管脚说明6: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输

9、入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在

10、给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入)

11、P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

12、 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。图 2.3 AT89C51芯片图3 系统硬件设计3.1 键盘设计本实验采用44行列式矩阵键盘,用数字键输入密码,ENTER键确认;如果

13、密码输入错误,用DEL键清除;密码输入完毕并且确认后,如果需要重新输入,先按Esc退出,然后重新输入;若用户想要自行更改密码,需要先正确输入密码并确认后,按ALT进行修改,再按ENTER进行确认,密码更改完毕。44行列式键盘的按键功能分布如图3.1所示 9 8 7 ALT Esc 6 5 4 DEL 3 1 2ENTER 0 图 3.1 键盘按键功能分布图3.2 系统电路设计 本系统电路主芯片AT89C51(内含晶振和复位电路),外接上拉电阻,数码管显示器,扬声器、LED灯和外接电阻组成开锁电路。3.2.1键盘电路及连线图 每一条行线和列线交叉处通过一个按键来连接,利用这种行列式矩阵结构只需要

14、N条行线和M条列线就可组成N*M个按键。 在这种行列式矩阵键盘非键盘编码的单片机中,键盘处理程序先执行等待按键并有无键盘按下的程序段。确认有键盘按下后,下一步执行识别哪一个键按下。对照4*4键盘,首先识别键盘中有无键盘按下,然后判断键盘中哪一个键被按下,使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后检查行输入状态来实现。如果全为1,则所按下键不在此列,如果不全为1则按下的键必在此列。而且是与零电平线相交的交点上的键。理想的按键信号是一个标准脉冲,但键的按下和释放都需要一个过程来实现,在这一过程中是处于高低电平之间一种不稳定状态,称为抖动。抖动时间的长短,频

15、率的高低与按键机械特征有关,一般在5到10ms之间。这就有可能造成CPU对一次按键过程进行多次处理。为了避免这种情况应采取措施消除抖动。消抖常见有两种方法,硬件消抖:如用滤波器,双稳态电路等。另一种用软件来实现,即当发现有键按下时,间隔10ms以上时间,才能进行下一次查询,这样就让过了抖动过程,键的释放进行同样处理。本设计为减少电路复杂程度,减少成本。采用软件消抖的方法5。 图 3.2 键盘电路 如图左上角为AT89C51的P3口,与键盘电路相连,构成键盘输入电路。3.2.2 数码管显示电路及连线图本实验采用共阴极数码管,即将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码

16、管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。 图3.3 数码管显示电路为了增加单片机的驱动,数码管链接上拉电阻,然后再接AT89C51的P3口,输入任何密码时都以显示“8”表示输入的位数(如图表示输入3位密码)。3.2.3 开锁和报警电路及连线图(由LED灯和扬声器电路代替)AT89C51单片机的P1.0口连接LED灯和一个外接电阻,P1.7口连接提示和警报的扬声器(如图3.4所示,LED灯亮表示密码正确,并且同时扬声器发出“叮咚”提示音)。 图 3.4 开锁电路3.3 整体电路图的绘制用Prte

17、us软件绘制完整的电路图。 密码正确并且确认之后的整体电路及显示情况,如图3.5。图3.5 密码正确系统电路及显示图 密码错误后的整体电路及显示情况,如图3.6。 图 3.6 密码错误系统电路及显示图4 软件设计4.1 系统软件设计思路任何应用系统的正常工作和使用,除去需要完整的硬件设备外,还需要一套与之相对应的、设计合理的软件相配合。随着电子信息的发展,微机应用早已普遍,许多原来的硬件工作都可以通过软件编程来代替,从而使一些复杂的硬件电路简单化。 电子密码锁工作的主要过程是通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,做出开锁或报警处理。当输入密码输入错误时,系

18、统报警。初始设定密码之后,如果按下密码的位数超过设置的密码位数时,若只超过一位,数码管以最后一位显示不全给出提示,若继续输入,系统扬声器报警。(本设计中初始密码为12345五位,当按下的密码为6位时,还,未按下Enter确认,数码管就会以不全七段码显示给出警报,若继续按下,系统就会发出“滴滴滴”的警报声)。按键按其功能分为两种,其中一种为功能键另一种为数字键。输入密码后,直到所有密码输入完毕按下确认功能键之后,才完成密码输入过程。进入密码的判断比较处理状态并给出相应的处理过程。如图4.1为输入密码超出原始设定位数时的数码管的显示。图 4.1 密码超出设定时数码显示图4.2 系统软件设计总流程图

19、开始输入密码密码输入完毕密码比较密码正确密码错误密码修改灯闪烁,发出“嘀嘀嘀”声,并锁键盘3s灯亮并发出“叮咚”图 4.1系统软件设计总流程图5 程序调试把写好的C语言程序载入软件调试工具,检查软件是否有设法错误,再根据软件提示对本程序进行修改,直到没有错误再生成单片机能运行的机器码,再用Prteus工具把机器码导入单片机进行实际的程序调试,根据实际情况再对程序的不足加以修改,直到满足设计要求。5.1 程序调试需要用到的软件和工具调试改程序用到Keil软件和Prteus工具。5.2 调试过程 打开KEIL C51主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇

20、编,生成51单片机可执行的HEX文件。然后用Prteus工具软件把HEX文件写入单片机。6 设计总结经过这次课程设计的整个过程,我们深刻的体会到了实践是检验和巩固我们学习成果最有力的标准。在一段理论学习之后,我们需要我们需要把自己的理论框架应用于实践,因为任何知识都来源于实践,又归于实践,只有通过实践我们才能更好地掌握所学到的知识。在这次课程设计期间,我们每一个人通过这个过程的努力都有了不小的发展和收获。在学习中,我们不再只是盲目的用笔练习、用脑记忆,而是用实际操作来验证和体验所学到的东西。同样的,在精神上,我们学会了勇往直前,不因挫折而后退,面对问题学会了自己去寻找解决方法,而不是搁置不理或

21、者一味求助于人。通过实践,我们不仅巩固了课本知识,而且也获得了一些书本上无法教给我们的经验,对软硬件的设计和组合都有了前所未有的新的认识。致谢 在本次设计中,陈老师和杨老师对于我们的选题讲解给予了悉心教导,为我们争取实验设备和场地,中途的评定和建议更是给了我们肯定和支持,让我们更有信心,使我们能顺利地完成此次设计,在此衷心的表示感谢。另外,在完成课程设计的过程中,还得到众多朋友和同学的关心支持和帮助,尤其是同组组员周敏同学,始终能够跟我密切合作,共同解决问题,给了我莫大的帮助,在此,谨向老师同学和朋友致以衷心的感谢和崇高的敬意!参考文献1 石文轩,宋薇.基于单片机MCS一51的智能密码锁设计M

22、.武汉工程职业技术学院学报,2004 ,(01)2祖龙起,刘仁杰.一种新型可编程密码锁J.大连轻工业学院学报,2002,(01) 3杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)J电子工业出版社,20064 叶启明.单片机制作的新型安全密码锁J.家庭电子,2005,(10) 5张毅刚,彭喜元,姜守达,乔立岩.新编MCS51单片机应用设计.哈尔滨工业大学出版社6夏继强:单片机实验与实践教程,北京航空航天大学出版社,2001附录软件程序#include unsigned char ps=1,2,3,4,5; unsigned char code dispbit=0xfe,0xfd,

23、0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71, 0x00,0x40,0x73,0xff; unsigned char dispbuf8=18,16,16,16,16,16,16,16; unsigned char dispcount; unsigned char flashcount; unsigned char temp; unsigned char key

24、; unsigned char keycount; unsigned char pslen=5; unsigned char getps6; bit keyoverflag; bit errorflag; bit rightflag; unsigned int second3; unsigned int aa,bb; unsigned int cc,dd,ee; bit okflag; bit alarmflag; bit hibitflag; unsigned char oka,okb; void main(void) unsigned char i,j; TMOD=0x01; TH0=(6

25、5536-500)/256; TL0=(65536-500)%256; TR0=1; ET0=1; EA=1; while(1) if(ee&(key=15)ee=0 ;dispbuf0=18; dispbuf1=16;dispbuf2=16 ;dispbuf3=16 ;dispbuf4=16;dispbuf5=16 ;dispbuf6=16 ;dispbuf7=16 ; keycount=0;if(dd) P3_3=0; P3_5=1 ; P3_4=1; while(1) if(!P3_5) dispbuf0=18; dispbuf1=16;dispbuf2=16 ;dispbuf3=16

26、;dispbuf4=16;dispbuf5=16 ;dispbuf6=16 ;dispbuf7=16 ; keycount=0; dd=0; break ; if(!P3_4) ee=1; dd=0; dispbuf0=18; dispbuf1=16;dispbuf2=16 ;dispbuf3=16 ;dispbuf4=16;dispbuf5=16 ;dispbuf6=16 ;dispbuf7=16 ; keycount=0; break ; P3=0xff; P3_4=0; temp=P3; temp=temp & 0x0f; if (temp!=0x0f) for(i=10;i0;i-)

27、for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x0f; switch(temp) case 0x0e: key=7; break; case 0x0d: key=8; break; case 0x0b: key=9; break; case 0x07: key=10; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key overflow else

28、 if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)&(!ee)/enter key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;i0;i-) for(j=248;j0;j-); temp=P3; temp=temp & 0x0f; if (temp!=0x0f) temp=P3; temp=temp & 0x

29、0f; switch(temp) case 0x0e: key=4; break; case 0x0d: key=5; break; case 0x0b: key=6; break; case 0x07: key=11; break; temp=P3; P1_1=P1_1; if(key=0) & (key10) if(keycount6) keycount=6; keyoverflag=1;/key overflow else if(key=12)/delete key if(keycount0) keycount-; getpskeycount=0; dispbufkeycount+2=16; else keyoverflag=1; else if(key=15)&(!ee)/enter key if(keycount!=pslen) errorflag=1; rightflag=0; second3=0; else for(i=0;ikeycount;i+) if(getpsi!=psi) i=keycount; errorflag=1; rightflag=0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁