.'.电子密码锁的设计说明书院系:机电汽车工程学院专业:机械设计制造及其自动化班级:姓名:学号:指导老师:同组人员:.'.中文摘要摘要:随着经济的发展,人们对日常生活质量的要求也越来越高,从工作、学习、出行、购物等的各个方面,人们也对现代安全设施提出来更高的要求。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。密码锁具有安全性高、成本低、功耗低、易操作等优点,同时还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。本次电子密码锁的设计主要就针对于这种社会需求,从程序设计到硬件设计以及硬件安装连接都做了详细的说明。.'.设计说明本次设计使用ATMEL公司的AT89C51实现一基于单片机的电子密码锁的设计,其主要具有如下功能:①密码通过键盘输入,若密码正确,则将锁打开。②报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘。电子密码锁的设计主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:①密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,同时将先前输入的所有“-”向左移动一位。②密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。③开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。主要的设计实施过程:首先,选用ATMEL公司的单片机AT89C51,以及选购其他电子元器件。第二步,使用DXP2004.'.设计硬件电路原理图,并设计PCB图完成人工布线(后因PCB板损坏决定采用万能板焊接的方法)。第三步,使用KeiluVision3软件编写单片机的C语言程序、仿真、软件调试。第四部,使用PROTEUS软件进行模拟软、硬件调试。最后,联合软、硬件调试电路板,完成本次毕业设计。关键词:4×4矩阵键盘;AT89C51;密码锁;密码二次确认;电子密码锁目录.'.中文摘要………………………………………………………………2设计说明…………………………………………………………………3目录………………………………………………………………………5第1章系统总体方案设计……………………………………………11.1系统法案的选择………………………………………………11.2系统设计思路……………………………………………………2第2章硬件电路设计……………………………………………….32.1键盘电路设计…………………………………………………32.2LED显示电路……………………………………………………42.3开锁电路………………………………………………………62.4报警电路…………………………………………………………7第3章软件设计……………………………………………………93.1软件设计思路……………………………………………………93.2各子程序设计…………………………………………………10第4章系统调试…………………………………………………….154.1系统硬件连接示意图……………………………………………154.2系统测试的局部示意图…………………………………………16第5章心得体会………………………………………………………17第6章参考文献………………………………………………………18附录………………………………………………………………19源程序清单…………………………………………………………19.'.第一章:系统的总体方案设计1.1系统方案的选择:综合其他多种方案设计的优缺点,采用以AT89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图1-2所示。图2-2单片机控制方案该方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。本方案采用一种是用以89S51为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。开锁控制电路89S51单片机AT24C02掉电存储串口显示电路矩阵键盘控制指示电路输入错误锁定键盘延时报警控制电路.'.1.2系统的设计思路:1.输入密码用矩形键盘,包括数字键和功能键。2.LED数码管显示输入密码,用74JS247驱动数码管发光显示数码,用74LS138控制各位显示器分时进行显示。3.用发光二极管代替开锁的电路,发光表示开锁。4.输入密码错误次数超过3次,系统报警。5.打开电源后,显示器显示“000000”,设原始密码为“123456”,只要输入此密码便了开门。这样可预防停电后再来电时无密码可用。6.按“C”键,清除显示器为“000000”。7.欲重新设定密码,先输入密码在案“*”。8.输入密码,再按“D”键。若密码与设定密码相同,则开门。否则显示器清为“000000”。9.软件的设计主要包括键盘键值的读取,LED显示程序,密码比较程序和报警程序。.'.第2章硬件电路设计2.1键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图2.1。图2.1矩阵键盘每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需N条.'.行线和M条列线,即可组成具有N×M个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图2.1所示的4×4键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。具体的功能设计如表2.1:表2.1按键功能按键键名功能说明1-9键数字键输入密码*键重设密码键设定新密码D键确定键比较密码#键清除键使显示器清零2.2LED显示电路本系统设计的显示电路是为了给使用者以提示而设置的。.'.本系统的显示采用串行显示的方式,只使用单片机的一个串行口,利用74LS247驱动数码管发光显示数码和74LS138控制位选信号,就可以完成单片机的显示功能,显示电路的电路原理图如图2.2所示。用P0.0—P0.3接74LS247的A,B,C,D四端口,74LS247的输出口接LED的七段显示;而P0.4—P0.6接74LS138的A,B,C三个输入口,74LS138的输出口接LED的位显示。通过软件实现数字和位控制。图2.2LED显示电路用74LS247可以控制输出什么字型。74LS247的逻辑功能表如表2.2:.'.表2.274LS247的逻辑功能表用74LS138控制位循环显示,其逻辑功能表如表2.3:表2.374LS138逻辑功能表CBAY1Y2Y0Y3Y4Y5Y6Y7000011111101011011111100111101111011111101111011111101111111111102.3开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管.'.代替电磁锁,发光管亮,表示开锁;灭,表示没有开锁。电路图如2.3所示。当P2.0口输出低电平时,二极管发光,表示开锁。图3.3开锁电路2.4报警电路.'.图2.4报警电路报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图2.4所示。当89C51的P2.1口输出为低电平时,蜂鸣器产生蜂鸣音,89C51输出为高电平时,蜂鸣器不发声。.'.第三章软件设计3.1软件设计思路电子密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时LED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码连续输入错误3次时,系统报警。密码的设定,在此程序中密码是固定40H—45H中,假设预设的密码为123456共6位密码。由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。3.2各子程序设计1.键盘扫描子程序键盘扫描流程图如图3.2.1.'.图3.2.1键盘扫描流程图键盘扫描子程序如下(请结合总程序进行阅读):L2:MOVR3,#0F7HMOVR1,#00HL3:MOVA,R3MOVP1,AMOVA,P1MOVR4,ASETBCMOVR5,#04HL4:RLCAJNCKEYIN.'.INCR1DJNZR5,L4CALLDISPMOVA,R3SETBCRRCAMOVR3,AJCL3JMPL22.LED显示子程序LED显示流程图如图3.2.2图3.2.2LED显示流程图LED显示子程序如下(请结合总程序进行阅读):DISP:MOVR0,#45HDISP1:MOVA,@R0ADDA,#50HMOVP0,A.'.CALLDELAYDECR0MOVA,@R0ADDA,#40HMOVP0,ACALLDELAYDECR0MOVA,@R0ADDA,#30HMOVP0,ACALLDELAYDECR0MOVA,@R0ADDA,#20HMOVP0,ACALLDELAYDECR0MOVA,@R0ADDA,#10HMOVP0,ACALLDELAYDECR0MOVA,@R0ADDA,#00HMOVP0,ACALLDELAYRET3密码比较和报警程序密码比较和报警流程图如3.2.3.'.图3.2.3密码比较和报警流程密码比较和报警程序(请结合总程序进行阅读):COMP:MOVR1,#45HMOVR0,#35HMOVR2,#06HC1:MOVA,@R1XRLA,@R0JNZC3DECR1DECR0DJNZR2,C1CLRP2.0MOVR2,#200C2:MOVR6,#248DJNZR6,$.'.DJNZR2,C2C3:INCR5MOVA,R5MOVR5,ACJNER5,#03H,C4CLRP2.1MOVR5,#00HC4:JMPSTART.'.第四章系统调试4.1系统硬件连接示意图:4.2系统测试的局部本次调试采用Protues软件仿真。首先设计电子密码锁的源程序,源程序经过汇编后,生成的目标文件经过仿真调试。依次按下1,2,3,4,5,6后,LED显示如图4.1.'.图4.1LED显示按下确定键后,二极管亮,表示密码正确开门。如图4.2图4.2密码正确开门.'.第6章心得体会课程设计旨在让学生养成独立思考研究进而对现实中的问题进行开发解决的过程,是使学生提高发现、提出、解决问题的能力,锻炼学生实践能力的关键,也是对学生综合能力和工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次两个星期的单片机课程设计过程,至今我仍感慨颇多。从最初的选定课