简易电子密码锁课程设计.doc

上传人:jian****018 文档编号:9365495 上传时间:2020-04-05 格式:DOC 页数:28 大小:1.36MB
返回 下载 相关 举报
简易电子密码锁课程设计.doc_第1页
第1页 / 共28页
简易电子密码锁课程设计.doc_第2页
第2页 / 共28页
简易电子密码锁课程设计.doc_第3页
第3页 / 共28页
点击查看更多>>
资源描述
江西理工大学应用科学学院 微机控制系统课程设计报告 题 目 简易电子密码锁 姓 名 学 号 专业班级 指导教师 完成时间 设计报告 综合测试 平时 总评 格式 10 分 内容 10 分 图表 5 分 功能测试 35 分 答辩 20 分 考勤 20 分 指导教师签名 目录 摘要 1 第一章 系统概述 2 第二章 基本功能设计 3 2 1 实验任务 3 2 2 基本设计要求 3 2 2 1 基本要求 3 2 2 2 发挥部分 3 2 3 主要元件介绍 3 2 3 1 P89C51 芯片 3 2 4 系统框图 5 第三章 硬件设计 5 3 1 硬件电路的设计 5 3 1 1 硬件工作接线口 5 3 1 2 LED 显示器结构与原理 5 3 1 3 复位电路 7 3 1 4 振荡电路 7 3 1 5 按键设置 8 3 1 6 报警器和发光二极管 9 3 2 硬件电路图 9 第四章 软件设计 11 4 1 系统软件设计 11 4 1 1 密码开锁功能 12 第五章 系统 PROTUSE仿真图 13 第六章 设计总结 16 参考文献 17 附录 18 摘要 随着人们生活水平的提高 如何实现家庭防盗这一问题也变得尤其的突 出 传统 的机械锁 由于其构造的简单 被撬的事件也屡见不鲜 因此 人们在日常生活中越来 越越离不开密码的使用 在人们对安全的重视和科技的发展的同时 许多电子智能锁 指纹识别 IC 卡辨认 已相继问世 但这类产品是针对特定指纹或有效卡 只能适 用于保密要求高且仅供个别人使用的箱 柜 房间等 另外 卡片式的 IC 卡易丢失和 损坏 加上其成本较高 在一定程度上限制了这类产品的普及和推广 鉴于目前的技术 水平和市场的接收程度 电子密码锁是这类电子防盗产品的主流 基于以上思路 本次 设计使用 PHILIPS 公司的 P89C51 实现 基于单片机的电子密码锁的设计 关键字 P89C51 单片机 密码 电子锁 with the improvement of people living standards how to achieve security of this family also changed particularly prominent the traditional mechanical lock because of its simple structure the incident was nothing n ew therefore more and more people in their daily life is inseparable from the use of passwords as people attach importance to security and the develop ment of technology at the moment many Electronic smart lock fingerprint I C card identification has been published at home and abroad However these p roducts are characterized by specific and effective fingerprint cards can o nly apply to the confidentiality requirements of the box counter doors an d so on And fingerprint recognition knowledge for use in public places if t here easily damaged machinery C card there are still easily lost damaged and so on Coupled with its high cost to some extent limited the popularit y of such products and promotion Given the current level of technology and the market reception of electronic code lock is such a mainstream electronic anti theft products Based on the above ideas this design uses the P89C51 PHILIPS achieve an electronic password based SCM lock design Key words P89C51 SCM password electronic locks 第一章 系统概述 本次设计使用 P89C51 单片机实现简易电子密码锁的设计 其主要具有如下功能 1 设 8 置位密码 密码通过键盘输入 此时黄灯亮 若密码正确则绿灯亮 2 密码可以由用户自己修改设定 绿灯亮后后才能修改密码 在输入新密码时候需要确 认 以防止误操作 3 报警 锁定键盘功能 密码输入错误红色发光二极管和蜂鸣器会出现错误提示 若密 码输入错误次数超过 3 次 蜂鸣器报警并且锁定键盘 电子密码锁的设计主要由三部分组成 3 4 矩阵键盘接口电路 密码锁的控制电路 输出数码显示电路 另外系统还有 LED 提示灯 报警蜂鸣器等 密码锁设计的关键问题是实现密码的输入 确认 更改等功能 1 密码输入功能 按下数字键 输入密码长度 2 密码确认功能 当按下确认键时 表示密码输入完成 3 密码设置功能 将输入的值作为新的密码 主要的设计实施过程 首先 选用单片机 P89C51 以及选购其他电子元器件 第二步 使用 DXP 2004 设计硬件电路原理图 并设计 PCB 图完成人工布线 后因时间和材料准备不充分 所 以没做出实物 第三步 使用 Keil uVision4 软件编写单片机的 C 语言程序 仿真 软 件调试 第四部 使用 PROTEUS 软件进行模拟软 硬件调试 最后 联合软 硬件调 试电路板 完成本次设计 第二章 基本功能设计 2 1实验任务 通过对本题目的设计掌握单片机控制系统设计的相关方法与技巧 用 P89C51RC2HBP 设计一个简单电子密码锁 完成密码的识别功能 2 2基本设计要求 2 2 1 基本要求 1 设置 0 9 十个按键和一个设置 确认按键 当系统正常工作时可通过设置 确 认按键修改密码 使用时初始密码为 12345678 随后可任意设置密码 2 当密码输入正确时 用一个发光二极管和蜂鸣器作为指示 当密码输入错误时 则提示密码输入错误 3 当密码连续输入错误 3 次后锁定键盘 锁定时间为 1 分钟 2 2 2发挥部分 不改变硬件电路 增加蜂鸣器音乐输入功能 即编出三种音乐分别对应密码输入正确 输入错误和键盘锁定三种状态 2 3 主要元件介绍 2 3 1 P89C51芯片 P89C51RB2 RC2 RD2 具有 16K 32K 64K 并行可编程的非易失性 FLASH 程序 存储 器并可实现对器件串行在系统编程 ISP 和在应用中编程 IAP 在系统编程 ISP In System Programming 当 MCU 安装在用户板上时允许用户下载新的代码 在应用中编 程 IAP In Application Programming MCU 可以在系统中获取新代码并对自己重新编 程 这种方法允许通过调制解调器连接进行远程编程片内 ROM 中 固化的默认的加载程 序 Boot Loader 允许 ISP 通过 UART 将程序代码装入 Flash 存储器而 Flash 代码中 则不需要加载程序对于 IAP 用户程序擦除和重编程 Flash Memory 的操作是通过使用片内 ROM 中的标准程序该器件的 1 个机器周期由 6 个时钟周期组成因此运行速度是传统 80C51 的 2 倍一个 OTP 配置位可让用户选择传 统的 12 时钟周期该系列单片机是 80C51 微控制器的派生器件是采用先进 CMOS 工艺 制 造的 8 位微控制器 指令系统与 80C51 完全相同有 4 组 8 位 I O 口 3 个 16 位定时 计数 器多个中断源 4 个中断优先级嵌套中断结构个增强型 UART 片内振荡器及时序电路新增 的特性使得 89C51RB2 RC2 RD2 成为功能更强大的微控制器更好地支持应用于脉宽调制 高速 I O 递增 递减计数能力如电机控制等场合 图 2 1 P89C51 的 DIP 封装及管脚功能 2 4 系统框图 P89C51 CPU 显示 键盘 报警器和发光二极管 复位 晶振 图 2 2 系统框图 第三章 硬件设计 3 1 硬件电路的设计 3 1 1 硬件工作接线口 P0 口接数码管 用来显示按键是否按下 P1 口接报警器和发光二极管 P3 口接 3x4 矩阵键盘 分别为 0 9 和设置 确认按键 3 1 2 LED显示器结构与原理 LED 显示块是由发光显示二极管显示字段的显示器件 在单片机中我们通常用七段 LED 这种显示共有共阴极和共阳极两种 本设计是用共阴极 如图 3 1 所示 图 3 1 LED 数码显示部分 表 3 1 LED 显示块 通常的七段显示块中共有 8 个发光二极管 其中 7 个发光二极管构成七笔字形 8 一个发光二极管构成小数点 七段显示块与单片机接口非常容易 只要将一个 8 位并行 输出与显示块的发光二极管引脚相连即可 8 位并行输出口输出不同的字节数据即可获 得不同的数字或字符 通常将控制发光二极管的 8 位字节数据称为段选码 显示字 符 共阴极段选码 显示字 符 共阴极段选码 0 3FH A 77H 1 06H B 7CH 2 5BH C 39H 3 4FH D 5EH 4 66H E 79H 5 6DH F 71H 6 7DH 7 07H 8 7FH 9 6FH 3 1 3复位电路 图 3 2 复位电路 时钟电路工作后 在 REST 管脚上加两个机器周期的高电平 芯片内部开始进行初 始复位 如图 3 2 3 1 4 振荡电路 图 3 3 振荡电路 本设计晶振选择频率为 12MHZ 电容选择 22pF 如图 3 3 所示 3 1 5 按键设置 按键方式有独立式和行列式两种 本设计是采用行列式 共设置 12 个按键 能减 少键盘与单片机接口时所占用的 I O 线的数目 如图所示 S1 S10 分别为 0 9 数字按 键 S11 为设置 确认按键 如图 3 4 当没有键按下时 行线和列线之间是不相连的 若第 N 行与第 M 列的键被按下 那么第 N 行与第 M 列的线就被接通 本系统的键盘扫描方法是利用 P3 口的低四位作为行扫描线 P3 口的高四位作为列回 扫线 具体实施方法为 先使 P3 0 口输出低电平 P3 口其他口输出高电平 然后对 P3 4 P3 5 P3 6 三个口分别作判断 若此三口都为高电平 则没有键按下 若有键 按下 P3 4 P3 5 P3 6 三个口必定有一个口输入为低电平 再判断 P3 4 P3 5 P3 6 哪个口为低电平则可判断按键在哪列上 如 P3 4 P3 5 P3 6 没有 低电平 再使 P3 1 为低电平 其他口为高电平 依次扫描下去 找到按键所在的行 再判断 P3 口的高四位哪一位为低 便可知道键在哪一列上 图 3 4 按键设置 3 1 6 报警器和发光二极管 图 3 5 报警器与发光二极管 如果按下设置 确认按键 则黄灯亮 当密码输入正确时 绿灯亮 输入密码错误时 红灯亮且蜂鸣器响 当第三次输入错误时 锁定键盘一分钟 3 2 硬件电路图 图 3 6 硬件电路 Protel图 图 3 6 硬件电路 PCB 图 图 3 7 硬件电路 PCB 3D 图 第四章 软件设计 本系统程序部分使用 C 语言编写 C 语言是一种高级程序设计语言 它的优点是简 洁明了 可移植性高 主要完成 先按下设置 确认键输入密码 系统会将所输入与系统密码进行比对 若输入密码正确则绿灯亮 然后可以任意设置密码 每设置完一次都要按确认键 期间操作出现失误 红灯亮蜂鸣器响 操作错误超过 3 次 系统会锁定键盘一分钟 并报警用以防止恶意试探密码 4 1 系统软件设计 本系统软件设计由主程序 初始化程序 数码显示程序 键盘扫描程序 键功能程 序 密码设置程序 EEPROM读写程序和延时程序等组成 主要程序设计流程图如下 所示 输入密码 正确吗 黄灯亮 红灯亮 蜂鸣器 响 三次 错误 开始 设置 确认键 绿灯亮 设置 确认 键 输入新密码 锁键盘一分钟 结束 图 4 1 程序设计流程图 初始化 按设置键 输入密码 确认程序 所输入密码 正确 Y 开锁程序 开锁程序 输入次数加 1 次数 3 报警程序 返回 N Y N 图4 2 开锁流程图 4 1 1密码开锁功能 本系统使用数组 PASSW 存储密码 系统初始化对数组赋值 PASSW 1 2 3 4 5 6 7 8 输入密码的时候 先将输入的每一位密码分别放置在数 组 PASST 中 然后再将 PASST 与 PASSW 的每一位分别对照 若每一位都相等 密 码检查通过 第五章 系统 PROTUSE仿真图 图 5 1 PROTUES 仿真图 图 5 2 PROTUES 仿真加载 HEX 文件 在下图中 当按下设置 确认键时 黄灯亮 然后输入密码 如密码输入正确 则绿 灯亮 如输入错误 红灯亮且蜂鸣器响 当出现三次错误时 同时要锁定键盘一分钟 经调试 所需要的功能都能实现 图 5 3 按下设置 确认键黄灯亮 图 5 4 密码正确时绿灯亮 图 5 5 当密码错误时红灯亮 图 5 6 设置新密码时黄灯绿灯同时亮 第 6 章 设计总结 通过这次课程设计 掌握了单片机的一些基本知识 并将计算机控制以及所有关知 识联系起来 本来有些原理还是懵懂的 但是在找电子密码锁的基本知识时 我发现只 有动手做才会掌握一些技巧 通过这次的设计 我们熟悉并熟练掌握了 Protel 和 Protues 的技巧 在 C 语言程序设计中 学到了如何使用 C 语言对单片机进行编写程序 熟悉了使用 KEIL 软件 并且加深了对单片机的编程技巧 在做这个设计的过程中 我遇到了不少的问题 这锻炼了我们筛选 查阅资料 并 将理论结合到自己的设计中的能力 一步一步的排除故障原因 找到故障的原因并解决 故障 这次的设计使我们对模拟电子 数字电子知识加深了了解 尤其是在对电路进 行调试以及对 C 语言程序的编写和调试的时候 出现了很多这些方面的问题 通过对以 往知识的复习巩固 将问题解决 在此设计中 学到了很多知识 不仅对于技术有了更深入的学习 而且对于一个项目 的完成的工作时序 任务分配也有了一定的了解 通过这次课程设计使我懂得了理论与 实际相结合是很重要的 只有理论知识是远远不够的 只有把所学的理论知识与实践相 结合起来 从理论中得出结论 才能真正为社会服务 从而提高自己的实际动手能力和 独立思考的能力 这次课程设计终于顺利完成了 在设计中遇到了些问题 最后在老师和各位同学的辛 勤指导下终于解决了 我们学得到很多实用的知识 在此表示感谢 同时 对给过我们 帮助的所有同学和指导老师再次表示忠心的感谢 参考文献 1 当方 微型计算机控制技术 M 中国水利水电出版社 2001 年 2 胡汉才 单片机原理及其借口技术 M 清华大学出版社 1996 年 3 赵新民 智能仪器设计基础 M 哈尔滨工业大学出版社 1999 年 4 潘新 民王 燕芳 微型计算机控制技术 M 电子工业出版社 2003 年 5 李钟实 实用电子报警器精选百例 M 北京 科技技术文献出版社 2002 年 6 陈爱弟 Protel99se 实用培训教程 M 人民邮电出版社 2000 年 7 阎石 数字电子技术基础 M 高等教育出版社 1998 年 8 童诗白 模拟电子技术基础 M 高等教育出版涉 1998 年 附录 1 源程序 include define uchar unsigned char define uint unsigned int uchar i j num temp wrong uchar passw 1 2 3 4 5 6 7 8 uchar passt 0 0 0 0 0 0 0 0 uchar code table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 0 x76 0 x79 0 x38 0 x3f 0 bit lockflag bit editflag bit cmpflag bit pressflag sbit alarm P1 3 sbit rled P1 0 sbit gled P1 1 sbit yled P1 2 uint t0 a uchar right void delay uint z uint x y for x z x 0 x for y 110 y 0 y void lock TMOD 0 x01 TH0 65536 50000 256 TL0 65536 50000 256 ET0 1 EA 1 TR0 1 while 1 if t00 a rled rled delay 1000 else alarm 0 rled 1 TR0 0 t0 0 break void timer0 interrupt 1 TH0 65536 50000 256 TL0 65536 50000 256 t0 uchar keyscan P3 0 xfe temp P3 temp P3 while temp 0 xf0 delay 50 if temp 0 xf0 temp P3 switch temp case 0 xee num 0 pressflag 1 1110 1110 break case 0 xde num 1 pressflag 1 1101 1110 break case 0 xbe num 2 pressflag 1 1010 1110 break case 0 x7e num 3 pressflag 1 0111 1110 break while temp 0 xf0 temp P3 temp temp P3 0 xfd temp P3 temp P3 while temp 0 xf0 delay 50 if temp 0 xf0 temp P3 switch temp case 0 xed num 4 pressflag 1 break case 0 xdd num 5 pressflag 1 break case 0 xbd num 6 pressflag 1 break case 0 x7d num 7 pressflag 1 break while temp 0 xf0 temp P3 temp temp P3 0 xfb temp P3 temp P3 while temp 0 xf0 delay 50 if temp 0 xf0 temp P3 switch temp case 0 xeb num 8 pressflag 1 break case 0 xdb num 9 pressflag 1 break case 0 xbb num 10 pressflag 1 break while temp 0 xf0 temp P3 temp temp return num void input while num 10 keyscan if num 10 pressflag 0 yled 0 for i 0 i 8 i while pressflag keyscan pressflag 0 temp num if temp 10 if editflag passt i temp else passw i temp P0 table num else break yled 1 cmpflag editflag delay 200 P0 0 num 0 main i 0 j 0 lockflag 0 editflag 0 pressflag 0 P0 0 while 1 input if cmpflag cmpflag 0 for j 0 j0 a delay 500 rled 1 alarm 1 wrong break else if j 7 rled 1 gled 0 editflag 1 input editflag 0 gled 1 wrong 0
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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