单片机课程设计——可改密码的电子密码锁设计.doc

上传人:本田雅阁 文档编号:2058194 上传时间:2019-02-09 格式:DOC 页数:16 大小:4.05MB
返回 下载 相关 举报
单片机课程设计——可改密码的电子密码锁设计.doc_第1页
第1页 / 共16页
单片机课程设计——可改密码的电子密码锁设计.doc_第2页
第2页 / 共16页
单片机课程设计——可改密码的电子密码锁设计.doc_第3页
第3页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机课程设计——可改密码的电子密码锁设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计——可改密码的电子密码锁设计.doc(16页珍藏版)》请在三一文库上搜索。

1、目录课程设计(论文)任务书2可改密码电子密码锁设计报告2第一章 概述3第二章 系统总体方案设计3第三章 硬件电路设计43.1 键盘电路设计43.2LCD显示电路53.3 开锁电路73.4报警电路73.5密码掉电保存电路8第四章 软件设计94.1软件设计思路94.2 程序设计流程图104.3 程序设计11第五章 系统调试11第六章 心得体会13致 谢14参考文献:14附件1:系统总电路图15附件2:源程序16课程设计(论文)任务书设计题目:可改密码电子密码锁设计任务:以89C52单片机为核心,制作一个可以更改6位密码的模拟电子密码锁。设计要求: 密码位数为6位。 显示使用1602液晶显示。 更改

2、的密码支持断电保存。 支持连续输入三次错误密码报警。 密码输入状态动态显示。 分别使用两个发光二极管表示输入正确和错误密码。可改密码电子密码锁设计报告摘要 本文介绍基于MCS-51单片机的可更改密码的电子密码锁设计,并支持掉电保存密码,程序使用了C语言编写。关键词 单片机 电子密码锁 改变 Abstract: This article describes the MCS-51 microcontroller based on the password change the design of electronic locks, and to support power-down save th

3、e password, the program uses the C language.Key word: MCU Electronic code lock Change第1章 概述密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的数字密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点是保密性好,随机开锁成功率几乎为零。密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。无活动零件,不会磨损,寿命长

4、。使用灵活性好,不像机械锁必须佩带钥匙才能开锁。数字密码锁操作简单易行,一学就会。本文所涉及的是市场占有率最高的是MCS51系列,因为世界上很多知名的IC生产厂家都生产51兼容的芯片。到目前为止,MCS51单片机已有数百个品种,还在不断推出功能更强的新产品。本设计是基于单片机的密码锁设计方案,根据要求,给出了该单片机密码锁的硬件电路和软件程序,同时给出了单片机型号的选择、硬件设计、软件流程图、单片机存储单元的分配、C语言源程序及详细注释等内容。第二章 系统总体方案设计用以STC89C52为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功

5、能,还能添加掉电存储。其原理如图2.1所示。89S51单片机矩阵键盘控制LED模拟开锁LED密码错误显示AT24C02掉电存储延时报警LCD1602显示 2.1单片机控制方案设计思路如下:1、输入密码用矩形键盘(4*3),包括数字键和功能键。2、LCD1602用来实时显示当前的各操作状态。3、用发光二极管代替开锁的电路,发光表示开锁。4、输入密码错误次数超过3次,系统报警。5、打开电源后,LCD交替显示“Input password, please press 0”和“Change password,please press 1”,设原始密码为“123456”,只要输入此密码便了开门。这样可预

6、防停电后再来电时无密码可用。6、任何状态下,按“取消”键,LCD返回功能交替选择的初始状态。7、欲重新设定密码,需先输入旧密码后才能更改。8、修改密码时,需输入两次新密码确认一致,如果两次输入的密码不一样则LCD显示“error”并返回初始状态。软件的设计主要包括键盘键值的读取,LCD显示程序,密码比较程序和报警程序等。第三章 硬件电路设计3.1 键盘电路设计使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图3.1。本设计中矩阵键盘接在单片机的P1口。图3.1 矩阵键盘每一条水平(行线)与垂直线(列线

7、)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图3.1所示的43键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会

8、有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。具体的功能设计如表3.1:表3.1 按键功能按 键键 名功 能 说 明09键数 字 键功能选择和输 入 密 码确认键确认键完成并确认当前操作取消键取消键取消当前操作返回初始状态3.2LCD显示电路本系统设计的显示电路是为了给使用者以提示而设置的。本系统的显示采用了LCD1602作为显示模块,其能够同时显示16x02即

9、32个字符。LCD在系统中一共负责显示12条操作提示,其D0-D7引脚分别接单片机的P0口、VSS和VDD分别接电源和地线、VEE为液晶亮度调节按钮(可接电位器)、RS为数据或命令的选择端接P2.6、RW为读写的选择端接P2.5、E为使能信号接P2.7。如图3.2所示。 图3.2 LCD显示电路LCD1602的管角及寄存器介绍如下: 引脚说明 1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线 VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中: 引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调

10、整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、 双向数据总线 0位(最低位)8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB

11、6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极寄存器选择控制表 RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0。 busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。3.3 开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁,表示开锁;第二个发光

12、管亮表示密码错误。电路图如3.3所示。当P3.0和P3.1口输出低电平时,二极管发光,表示开锁或密码错误。 图3.3 开锁电路3.4报警电路 图3.4报警电路报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100mA驱动电流。蜂鸣器电路如图3.4所示。当89C52的P1.5口输出为低电平时,蜂鸣器产生蜂鸣音,89C52输出为高电平时,蜂鸣器不发声。本设计中当连续输入三次错误密码时(包括开锁和更改密码两种功能操作),蜂鸣器就会发声表示报警。3.5密码掉电保存电路 本设计中为了在系统掉电时能够保存系统的设置密码,使用了具有I2C总线接口的E2PROM的AT24C02芯片

13、来保存密码锁的密码。如图3.5所示。 图3.5 密码保存电路 AT24C02的介绍如下:管脚描述 管脚名称功能A0 A1 A2器件地址选择SDA串行数据/地址SCL串行时钟WP写保护Vcc+1.8V 6.0V 工作电压Vss地SCL串行时钟 AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。 SDA串行数据/地址 AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。 A0、A1、A2器件地址输入端 这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默

14、认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到Vss。 WP写保护 如果WP管脚连接到Vcc,所有的内容都被写保护只能读。当WP管脚连接到Vss 或悬空允许器件进行正常的读/写操作第四章 软件设计4.1软件设计思路电子密码锁工作的主要过程是LCD提示开始选择操作功能(选择开锁还是更改密码),通过键盘输入功能选择键0或1(此时键盘其它按键被暂时屏蔽)。当用户选择开锁时,通过键盘输入开锁密码。如果密码输入正确,

15、则LCD提示密码正确、第二个LED灯亮表示开锁。如果密码输入错误则LCD提示密码错误并亮一个LED灯亮。当输入密码连续输入错误3次时,系统报警。当用户选择更改密码功能时,要求用户先输入当前密码。当密码正确时LCD提示用户进一步操作,且用户必须输入两次新密码用以确认。当两次输入的新密码一致时,单片机想AT24C02写入新密码,否则提示错误并返回处状态。LCD在提示用户输入密码时,会光标闪烁并逐位显示。当光标没有闪烁时表示已经不能输入数字了,需按“确认”键以告知单片机已完成操作。“取消”键用来消除当前的状态,无论出于系统处于哪个阶段都能返回初始状态。开始4.2 程序设计流程图功能键盘扫描检测子程序

16、输入开锁还是改密码?0提示输入开锁密码1LCD用*动态提示已输入数字提示输入旧密码将已输入的数字暂存与单片机RAMN判断旧密码是否正确?提示密码错误调用存于AT24C02的密码与其比较?Y清单片机RAM密码暂存区YN提示输入新密码第二个LED亮第一个LED亮提示输入再次输入新密码清单片机RAM密码暂存区判断是否连续输入密码错误三次?N判断两次输入的密码是否一致?N提示出错YY 报警将新密码写入AT24C02 结束提示密码修改成功4.3 程序设计系统的源程序采用了C语言编写,因为C语言具有很好的模块性,故编写的程序都采用了子程序模块化编写。具体程序及程序说明见附件2。第5章 系统调试1、 单片机

17、开发板实物图:2、 功能选择时的初始状态:3、开锁状态:3、开锁状态:4、 密码输入状态:5、 密码正确开锁:6、 修改密码状态:7、密码修改失败和成功:第六章 心得体会在着手本次课程设计时,通过查阅网络与图书馆搜集到的资料,加上指导老师指点,结合生活中对密码锁的功能特性要求,设计出了这一套电子密码锁系统的主要硬件结构和软件结构,基本完成了课题。不过由于了解的专业知识尚浅,对课题的研究经验的不足,使得在技术的解决与运用上显得粗糙了一些,特别是功能键的设定。在设计的过程当中经历和克服了许多困难,暴露我们知识和经验不足的同时也积累了实践经验,检阅了大学所学的知识,使所学的知识得到复习和巩固。通过这

18、次毕业设计我学到了很多东西,复习了理论知识,特别是单片机外围电路模块电路设计及其应用编程;学会收集和处理资料的一些基本问题,提高获取新知识的能力、分析和解决问题的能力以及交流与合作的能力。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,在同学的帮助下,终于游逆而解。非常感谢!致 谢在学习单片微型计算机与接口技术课程,我要感谢的指导老师的谆谆教诲。当然,还要感谢的在我完成设计过程中给予我帮助的同学们。现在即将完成我的课程学习,还有我大学第三年的生活,虽然依依不舍,但是对未来的路,我充满信心。相信有了这次的实践设计经验,在接下来的学习和以后的工作中,将能更好的将学到的知识应用于实践。也相信在接下来的补充学习与应用中能更好的巩固这门课程的知识。最后,再次感谢老师对我学习的指导和帮助以及同学们的鼓励!参考文献:1、李群芳 张士军.片微型计算机与接口技术.北京:电子工业出版社,2010.2、郭天祥.51单片机C语言教程.北京:电子工业出版社,2009.3、白延敏.51单片机典型系统开发实例精讲.北京:电子工业出版社,2009.4、百度百科:http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1