单片机课程设计-电子密码锁的设计.doc_第1页
单片机课程设计-电子密码锁的设计.doc_第2页
单片机课程设计-电子密码锁的设计.doc_第3页
单片机课程设计-电子密码锁的设计.doc_第4页
单片机课程设计-电子密码锁的设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

烟 台 南 山 学 院单片机课程设计题目 电子密码锁的设计 姓 名: * 所在学院: 自动化工程学院 * 所学专业: 班 级: * 学 号: * 指导教师: * 完成时间: 2010/12/3 摘要 随着科技的发展及人们生活水平的不断提高,更多的高科技产品正服务于生活。例如常用到的防盗锁,先前的机械门锁由于结构简单、安全性低,现已渐渐被安全性高、使用灵活、保密性强的电子密码锁替代,尤其运用单片机制作的密码锁正受广大人们的青睐。本次设计的题目是基于单片机的智能密码锁的设计,系统主要由单片机AT89C51控制,实现数据存储,并结合外围的键盘输入、LCD显示、报警、开锁等电路模块,实现相关的功能。所设计的系统能完成以下功能:正确输入密码前提下,开锁;密码输入错误情况下,发出报警信号;密码还可以可以根据用户需要更改。本密码锁具有设计方法合理,简单易行,成本低,安全实用等特点,具有一定的推广价值。目录1 引言. .12 电子密码锁的特点.23 密码锁设计方案论证.23.1单片机方案选择.23.2显示电路选择.2 3.3输入电路选择.23.4电源提供方案.33.5 总体设计原理框图.34 密码锁功能单元电路设计.34.1 键盘输入模块.34.2 密码存储模块.44.3 密码锁状态显示模块.54.4 显示模块.54.5 报警模块.65系统软件设计.65.1系统程序流程图.65.1.1主程序流程图.75.1.2键功能程序流程图.85.1.3开锁程序流程图.85.2 软件仿真总框图.95.3 实验调试及测试结果.105.3.1实验调试.105.3.2测试结果.116结论.127参考文献.13附录.14密码锁设计源程序代码.141 引言随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。 20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。 目前,在西方发达国家,密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国密码锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。密码锁的设计方案多种多样,根据每个人知识掌握程度的不同计出的密码锁的功能也各不相同,有的功能很强。常见的设计方案一种是用74LS112双JK触发器构成的数字逻辑电路控制方案,一种是以AT89S5为核心的单片机控制方案,但是数字电路方案原理过于简单,而且不能满足现在的安全需求,因此在一些比较重要的应用中用的较多的是通过单片机来控制的密码锁。2 电子密码锁的特点 保护性好,编程量多,远远大于机械锁。随机开锁概率几乎为零。 密码可变。用户可以经常更改密码,防止密码被盗,同时也可以避免因人为的更替而是密级下降。 误码输入保护。当输入密码多次错误时,报警系统启动。 除以上优点外,电子密码锁还存在电源断电、密码被盗等问题,后面将涉及到这些问题。3 密码锁设计方案论证3.1 单片机方案选择方案一:采用数字电路控制用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差。 方案二:采用以单片机为核心的控制选用单片机作为系统的核心部件,实现控制与处理的功能。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标,而且单片机编程设计灵活、IO端口丰富、控制的准确性搞,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制等附加功能,此外单片机方案有较大的活动空间,不但能实现所要求的功能,还能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,因此综合考虑,本次设计采用方案二,用单片机设计主控电路。3.2 显示电路选择方案一:采用LCD液晶显示器LCD有明显的特点:微功耗、尺寸小、超薄轻巧、显示信息大、字迹清晰、显示稳定美观。LCD是以点阵模式显示的,在中文显示上很方便,但在各种符号的显示上因为需要利用控制芯片创建字符,工作量大,占用资源多,其成本高。方案二:利用传统的数码管显示数码管具有低压低耗能、寿命长、对外界环境低等特点。采用BCD编码方式显示数字,程序编译简单,资源空间小。其现实的电路驱动芯片采用MAX7219芯片。MAX7219芯片是用于动态扫描驱动的芯片。该芯片的特点是利用一芯片能完成8位字数据的8位线数据的驱动,使得电路紧凑。多芯片级联时,采用串行输入输出,可节省CPU的数据接口和接口芯片,该芯片的功能强大,编程简单。权衡利弊,我决定采用第二种方案实现本系统的显示功能。3.3 输入电路选择方案一:采用独立式键盘按键该方式直接在I/O口线接上按键开关。设计考虑精简和优化电路,程序和I/O口资源数。因剩余的资源数还比较多,因此该方案有一定的优势。方案二:采用矩阵式4*4键盘 该方式优点是使用灵活可编程,占用资源少,其原理为:由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。 通过不断读行线口线,或者中断方式触发键位扫描。当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。每个按键都可通过程序赋予功能,从而完成密码识别。3.4 电源提供方案方案一:各模块采用独立的稳压电源,此方案优点为稳定可靠,且有各种成熟的电路可供选用;缺点是各模块都采用独立电源,系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源,系统简节;缺点为输出功率不高。3.5 总体设计原理框图本设计主要由单片机、矩阵键盘和液晶显示器等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,并且通过单片机将控制引脚的高低电平送到液晶显示电路或者报警电路控制开锁还是报警,系统整体框图如图1所示。 AT89C51显示模块报警电路开锁电路密码存储模块复位电路键盘输入模块 图1 系统结构框图各模块功能如下:(1)键盘输入模块:分为密码输入按键与几个功能按键,用于完成密码锁输入功能。(2)显示模块:用于完成对系统状态显示及操作提示功能。(3)复位电路:完成系统的复位。(4)报警电路:用于完成输错密码时候的警报功能。(5)密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。(6)开锁电路:应用继电器及发光二极管模拟开锁,完成开锁及开锁提示。4 密码锁功能单元设计4.1 键盘输入模块由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行和列组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个44键盘不但能完成密码的输入还能作特别功能键使用。键盘的每个按键功能在程序设计中设置。它与单片机的连接如图2所示。图2 4*4键盘输入模块 各按键功能如下:u 数字键09号:输入数字密码u 开锁键:输入密码前需按一下开锁键,输入密码才有效u 上锁键:将电磁锁自动锁上u 重置密码:按下此键可以修改密码u 输入新密码键:输入新密码前按下,输入有效u 保存密码键:保存修改的密码该键盘设计不但有密码输入的功能,还包含了开锁即确定按键和上锁按键,同时设置了写改密码的相关功能按键,如输入新密码、保存新密码等,每一个按键的功能都在软件编程中实现。4.2 密码存储模块AT24C04A的1、2、3脚是三条地址线,用于确定芯片的硬件地址,第5脚和第8脚分别为正、负电源,第8脚SDL为串行数据输入/输出,数据通过这条双向IC总线串行传送,第6脚SCK为外部中断0输入线,和单片机AT89C51的P3.2连接,第5脚SDA为外部中断1输入口,与AT89C51的P3.3连接。AT24C02中带有片内地址寄存器,每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取,为降低总的写入时间,一次操作可写入多达8个字节的数据。用AT24C04A实现密码存储的电路如图3所示图3 密码存储模块4.3 密码锁状态显示模块图4的一个LED用来显示密码锁的状态:锁开和锁关。其中LED灯亮表示密码输入正确,锁打开;LED灯不亮,则表示密码输入错误,这些的控制也是通过程序来控制的。图4 密码锁状态显示模块4.4 显示模块显示部分是采用LCD液晶显示屏来实现的,D0D7分别和单片机的P0口的7个输出相连接,然后通过软件编程来驱动LCD显示。当密码输入正确,锁开时,液晶显示器上将显示“Unlock OK”;如果密码不正确,液晶显示器上会显示“ERROR”。电路图如图5所示。图5 显示模块4.5 报警模块蜂鸣器的工作原理是当有高电平驱动时就发出声音。报警部分直接将蜂鸣器和单片机相连接,编程设计的思路是加电后不发声,当密码输入错误时,单片机的P3.7引脚为低电平,蜂鸣器发出噪声报警。如图6 所示。图6 报警模块5 系统软件设计5.1 系统程序流程图5.1.1 主程序流程图主程序设计流程图如图7 所示。 开始初始化密码正确 输入旧密码出错报警开锁原密码相同设新密码 返回开锁修改 N Y NYN 图7 主程序流程图总的设计是在初始化时存入初始密码,然后设计键盘扫描程序,确定是在执行开锁功能还是修改密码。若是开锁,则设计程序判断密码是否正确,也就是将输入的密码和初始时设置的密码进行比较,密码正确则执行开锁,密码错误,则通过液晶显示器提示错误,并发出报警信号;若是修改密码功能,通过设计程序判断重新设置的密码是不是和旧密码相同,若相同则给出提示重新设置,若和旧密码不同则保存新密码,密码修改成功。5.1.2 键盘功能程序流程图键功能程序键值=09?键值=开锁?键值=确认?键值=设置? 返回密码输入程序确认程序设置程序开锁程序键功能程序流程图如图8 所示。 Y NYYNN NY N 图8 键盘功能程序流程图键盘的程序设计依据的是矩阵键盘的扫描原理,矩阵键盘每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码,在程序初始化时将对应的行值和列值写入,在键盘的扫描程序中设计先进行行扫描,在在扫描完一行之后,进行所有的列扫描,判断是否有键按下,若有键按下找出按键的位置,查出该按键的编码值,判断要执行的是何种操作,是输入密码、开锁还是重新设置密码。5.1.3 开锁程序流程图开锁开锁程序流程图如图9 所示。LCD初始化输入密码按开锁键报警程序确认程序输入密码正确?N开锁成功返回 Y图9 开锁流程图开锁的过程要根据键盘的扫描值识别输入的密码是否正确,如果密码输入正确,则开锁成功;如果密码输入错误,则显示错误提示信息,并发出报警信号。5.2 软件仿真总框图图10 软件仿真框图5.3 软件调试及测试结果5.3.1 软件调试1.排除硬件故障后开始对程序进行调试,调试软件时采取的是分步测试后再集成测试的原则。首先将键扫程序输入单片机开发系统,运行后按开发系统上的键盘,看显示数码管能否显示所按键的键号。2.捎入完整的程序并开通电源,发现二极管发光时不停地闪烁以致肉眼无法辨别出,这是调用的延时时间太短造成的,将延时时间加长后即可观察出发光二极管的变化;接着再输入数字位数与密码不符时,二极管也会发光,比如密码是654321,若输入为6543或65432时,标志开锁的二极管会亮,不和要求,于是在判断密码子程序中加了先判断输入位数与密码位数的比较指令,这样就能达到设计要求了。3. 调试中发现密码修改后,当第一输入新密码校验时显示密码错误,而在第二次输入新密码时才显示密码正确,并将锁打开。检查程序发现是由于程序设计中,在“确认”键处理子程序中,没有重新将输入密码的位数清零,导致修改密码后,再次输入新密码校验时,由于密码位数不正确,导致显示密码错误。4. 调试中输入三次错误密码后,并没有报警,只是显示ERROR密码错误而已,再次回到程序,报警处理由原来的“确认”键处理子程序移到密码校验子程序中进行,主要是因为回到“确认”键处理中,标志已经改变,导致无法报警,移动后,报警正常。软件调试完毕,程序运行正常并实现设计要求。5.3.2 测试结果如图11所示,经过了对硬件和软件的调试后,所有的功能都得以实现。在锁闭合的状态下,LCD显示清屏状态,当输入与密码相符时,开锁发光二极管正常发光,且驱动电磁继电器开锁,此时LCD显示unLock OK!。第一次输入密码错误后显示ERROR1,第二次则显示ERROR2,第三次则显示ERROR3,闪烁10秒钟,并驱动报警电路发出十分响亮的警报。当通过了密码校验后,密码正确,按下重设密码健,P1.6口输出高电平表示此时正在修改密码。调试使用的是6位密码。增加密码的位数可以提高破译的难度。一切秘密寓于密钥之中。当破译密码的花费大于文件或信息的价值时,说明加密时有效的、安全的、可靠的。相应输入46 位密码后,回到开锁的状态,密码更新成功。在锁打开的状态下,按下“输入”键后,锁重新闭合,表示锁已闭合,用户可以离开。且经过反复多次测试,测试结果都是正确的,所以该系统正确可用。图11 仿真演示6 结论课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在同学的帮助下,终于游逆而解。非常感谢!7 参考文献1 何立民. 单片机高级教程 第1版北京:北京航空航天大学出版社,20012 赵晓安. MCS-51单片机原理及应用. 天津:天津大学出版社,2001.33 李明喜.新型电子密码锁的设计J.机电产品开发与创新.2004,第八期:77-794 董继成.一种新型安全的单片机密码锁J.电子技术.2004,第三期:55-605 徐惠民、安德宁 单片微型计算机原理接口与应用 第1版 北京:北京邮电大学出版社,19966 王为青,邱文.51单片机应用开发案例精选.北京:人民邮电出版社,20077 楼然苗,李广飞.51系列单片机设计实例.北京:北京航空航天大学出版社,20038 李广第 单片机基础 第1版北京:北京航空航天大学出版社,19999 何立民从Cygnal 80C51F看8位单片机发展之路 单片机与嵌入式系统 应用,2002年,第5期:P58附录程序源代码void main() uchar i = 0; uchar IIC_Password10; uchar IS_Valid_User = 0; P0 = 0xFF; P1 = 0xFF; P2 = 0xFF; TMOD = 0x02; /T0设置为8位自动重装模式 TH0 = 175; TL0 = 175; TR0 = 1; /启动T0 DelayMS(10); LCD_Init(); /初始化LCD IIC_24C04_Init(); /初始化24C04 Display_String(Title_Text,0x00); /在第1行显示标题 /24C04的内容已由初始化BIN文件导入 /将24C04中预先写入的密码读入pass RecString(0xa0, 0 , IIC_Password, 6); IIC_Password6 = 0; while(1) P1 = 0xF0; if(P1 != 0xF0) KeyNo = Keys_Scan(); /扫描键盘获取键序号KeyNo switch ( KeyNo ) case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: if ( i= 5 ) /密码限制在6位以内 /如果i为0则执行一次清屏 if (i =0) Display_String( ,0x40); UserPasswordi = KeyNo + 0; UserPasswordi+1 = 0; DSY_BUFFERi = *; DSY_BUFFERi+1 = 0; Display_String(DSY_BUFFER,0x40); i+; break; case 10: /按A键开锁 if (strcmp(UserPassword,IIC_Password) = 0) LED_OPEN = 0; /点亮LED Clear_Password(); Display_String(Unlock OK! ,0

温馨提示

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

评论

0/150

提交评论