收藏 分享(赏)

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

上传人:HR专家 文档编号:6249977 上传时间:2019-04-03 格式:DOC 页数:16 大小:4.05MB
下载 相关 举报
单片机课程设计——可改密码的电子密码锁设计.doc_第1页
第1页 / 共16页
单片机课程设计——可改密码的电子密码锁设计.doc_第2页
第2页 / 共16页
单片机课程设计——可改密码的电子密码锁设计.doc_第3页
第3页 / 共16页
单片机课程设计——可改密码的电子密码锁设计.doc_第4页
第4页 / 共16页
单片机课程设计——可改密码的电子密码锁设计.doc_第5页
第5页 / 共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:源程序 161课程设计(论文)任务书设计题目:可改密码电子密码锁设计任务:以 89C52单片机为核心,制作一个可以更改 6位密码的模拟电子密码

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

3、, and to support power-down save the password, the program uses the C language.Key word: MCU Electronic code lock Change2第 1 章 概述密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的数字密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点是保密性好,随机开锁成功率几乎为零。密码可变,用户可以随时更改密码,防止密码被

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

5、。利用单片机灵活的编程设计和丰富的 IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加掉电存储。其原理如图 2.1所示。延时报警89S51单片机AT24C02 掉电存储矩阵键盘控制LCD1602 显示LED 模拟开锁LED 密码错误显示32.1 单片机控制方案设计思路如下:1、输入密码用矩形键盘(4*3) ,包括数字键和功能键。2、LCD1602 用来实时显示当前的各操作状态。3、用发光二极管代替开锁的电路,发光表示开锁。4、输入密码错误次数超过 3次,系统报警。5、打开电源后,LCD 交替显示“Input password, please press 0”和“Change pa

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

7、采用这样方法。其原理如图 3.1。本设计中矩阵键盘接在单片机的 P1口。4图 3.1 矩阵键盘每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要 N条行线和 M条列线,即可组成具有 NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图 3.1所示的 43键盘,说明线反转个工作原理。首先辨别键盘中有无键按下,有单片机 I/O口向键盘送全扫描字

8、,然后读入行线状态来判断。方法是:向行线输出全扫描字 00H,把全部列线置为低电平,然后将列线的电平状态读入累加器 A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为 1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为 1,则所按下的键不在此列;如果不全为 1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。具体的功能设计如表 3.1:表 3.1 按键功能按 键 键 名 功 能 说 明09 键 数 字 键 功能选择和输 入 密 码确认键 确认键 完成并确认当前操作取消键 取消

9、键 取消当前操作返回初始状态3.2LCD显示电路本系统设计的显示电路是为了给使用者以提示而设置的。本系统的显示采用了 LCD1602作为显示模块,其能 够 同 时 显 示 16x02即 32个 字 符 。LCD 在系统中一共负责显示12条操作提示,其 D0-D7引脚分别接单片机的 P0口、VSS 和 VDD分别接电源和地线、VEE 为液晶亮度调节按钮(可接电位器) 、RS 为数据或命令的选择端接 P2.6、RW 为读写的选择端接 P2.5、E 为使能信号接 P2.7。如图3.2所示。5图 3.2 LCD 显示电路LCD1602的 管 角 及 寄 存 器 介 绍 如 下 :引 脚 说 明1602

10、字 符 型 LCD 通 常 有 14条 引 脚 线 或 16条 引 脚 线 的 LCD, 多 出 来 的 2条 线 是 背 光 电 源线 VCC(15脚 )和 地 线 GND(16脚 ), 其 控 制 原 理 与 14脚 的 LCD 完 全 一 样 , 其 中 : 引 脚 符 号 功 能 说 明1 VSS 一 般 接 地2 VDD 接 电 源 ( +5V)3 V0液 晶 显 示 器 对 比 度 调 整 端 , 接 正 电 源 时 对 比 度 最 弱 , 接 地 电 源 时 对 比度 最 高 ( 对 比 度 过 高 时 会 产 生 “鬼 影 ”, 使 用 时 可 以 通 过 一 个 10K的 电

11、 位 器 调 整 对 比 度 ) 。4 RSRS 为 寄 存 器 选 择 , 高 电 平 1时 选 择 数 据 寄 存 器 、 低 电 平 0时 选 择 指令 寄 存 器 。5 R/WR/W 为 读 写 信 号 线 , 高 电 平 (1)时 进 行 读 操 作 , 低 电 平 (0)时 进 行 写操 作 。6 E E(或 EN)端 为 使 能 (enable)端 , 下 降 沿 使 能 。7 DB0 低 4位 三 态 、 双 向 数 据 总 线 0位 ( 最 低 位 )8 DB1 低 4位 三 态 、 双 向 数 据 总 线 1位9 DB2 低 4位 三 态 、 双 向 数 据 总 线 2位1

12、0 DB3 低 4位 三 态 、 双 向 数 据 总 线 3位11 DB4 高 4位 三 态 、 双 向 数 据 总 线 4位12 DB5 高 4位 三 态 、 双 向 数 据 总 线 5位13 DB6 高 4位 三 态 、 双 向 数 据 总 线 6位14 DB7 高 4位 三 态 、 双 向 数 据 总 线 7位 ( 最 高 位 ) ( 也 是 busy flag)15 BLA 背 光 电 源 正 极16 BLK 背 光 电 源 负 极寄 存 器 选 择 控 制 表 RS R/W 操 作 说 明60 0 写 入 指 令 寄 存 器 ( 清 除 屏 等 )0 1 读 busy flag( D

13、B7) , 以 及 读 取 位 址 计 数 器 ( DB0DB6) 值1 0 写 入 数 据 寄 存 器 ( 显 示 各 字 型 等 )1 1 从 数 据 寄 存 器 读 取 数 据注 : 关 于 E=H 脉 冲 开 始 时 初 始 化 E 为 0, 然 后 置 E 为 1, 再 清 0。 busy flag( DB7) : 在 此 位 为 被 清 除 为 0时 , LCD 将 无 法 再 处 理 其 他 的 指 令 要 求 。3.3 开锁电路在本次设计中,基于节省材料的原则,暂时用发光二极管代替电磁锁, ,表示开锁;第二个发光管亮表示密码错误。电路图如 3.3所示。当 P3.0和 P3.1口

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

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

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

17、选择键 0或 1(此时键盘其它按键被暂时屏蔽) 。当用户选择开锁时,通过键盘输入开锁密码。如果密码输入正确,则 LCD提示密码正确、第二个 LED灯亮表示开锁。如果密码输入错误则 LCD提示密码错误并亮一个 LED灯亮。当输入密码连续输入错误 3次时,系统报警。当用户选择更改密码功能时,要求用户先输入当前密码。当密码正确时 LCD提示用户进一步操作,且用户必须输入两次新密码用以确认。当两次输入的新密码一致时,单片机想 AT24C02写入新密码,否则提示错误并返回处状态。LCD在提示用户输入密码时,会光标闪烁并逐位显示。当光标没有闪烁时表示已经不能输入数字了,需按“确认”键以告知单片机已完成操作

18、。“取消”键用来消除当前的状态,无论出于系统处于哪个阶段都能返回初始状态。94.2 程序设计流程图功能键盘扫描检测子程序提示输入旧密码输入开锁还是改密码?判断旧密码是否正确?判断两次输入的密码是否一致?结束调用存于AT24C02 的密码与其比较?提示密码错误提示输入新密码提示输入再次输入新密码提示出错将新密码写入 AT24C02开始LCD 用*动态提示已输入数字提示输入开锁密码将已输入的数字暂存与单片机 RAM第二个LED 亮第一个LED 亮判断是否连续输入密码错误三次?报警清单片机 RAM 密码暂存区清单片机 RAM密码暂存区01NNNNYYYY104.3 程序设计系统的源程序采用了 C语言

19、编写,因为 C语言具有很好的模块性,故编写的程序都采用了子程序模块化编写。具体程序及程序说明见附件 2。第 5章 系统调试1、单片机开发板实物图:2、功能选择时的初始状态:3、开锁状态:提示密码修改成功113、开锁状态:4、密码输入状态:5、密码正确开锁:126、修改密码状态:7、密码修改失败和成功:第六章 心得体会在着手本次课程设计时,通过查阅网络与图书馆搜集到的资料,加上指导老师指点,结合生活中对密码锁的功能特性要求,设计出了这一套电子密码锁系统13的主要硬件结构和软件结构,基本完成了课题。不过由于了解的专业知识尚浅,对课题的研究经验的不足,使得在技术的解决与运用上显得粗糙了一些,特别是功

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

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报