单片机密码锁毕业设计.doc_第1页
单片机密码锁毕业设计.doc_第2页
单片机密码锁毕业设计.doc_第3页
单片机密码锁毕业设计.doc_第4页
单片机密码锁毕业设计.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

I 摘摘 要要 在日常的生活和工作中 住宅与部门的安全防范 单位的文件档案 财务报 表以及一些个人资料的保存多以加锁的办法来解决 若使用传统的机械式钥匙开 锁 人们常需携带多把钥匙 使用极不方便 且钥匙丢失后安全性即大打折扣 随着科学技术的不断发展 人们对日常生活中的安全保险器件的要求越来越高 为满足人们对锁的使用要求 增加其安全性 用密码代替钥匙的密码锁应运而生 密码锁具有安全性高 成本低 功耗低 易操作等优点 在安全技术防范领域 具有防盗报警功能的电子密码锁逐渐代替传统的机械 式密码锁 克服了机械式密码锁密码量少 安全性能差的缺点 使密码锁无论在 技术上还是在性能上都大大提高一步 随着大规模集成电路技术的发展 特别是 单片机的问世 出现了带微处理器的智能密码锁 它除具有电子密码锁的功能外 还引入了智能化管理 专家分析系统等功能 从而使密码锁具有很高的安全性 可靠性 应用日益广泛 随着人们对安全的重视和科技的发展 许多电子智能锁 指纹识别 IC 卡辨 认 已在国内外相继面世 但是这些产品的特点是针对特定的指纹和有效卡 只 能适用于保密要求的箱 柜 门等 而且指纹识识别器若在公共场所使用存在容 易机械损坏 IC 卡还存在容易丢失 损坏等特点 加上其成本较高 一定程度上 限制了这类产品的普及和推广 鉴于目前的技术水平与市场的接收程度 电子密 码锁是这类电子防盗产品的主流 电子密码锁的设计主要由三部分组成 4 4 矩 阵键盘接口电路 密码锁的控制电路 输出八段显示电路 另外系统还有 LED 提 示灯 报警蜂鸣器等 关键词 关键词 4 4 矩阵键盘 AT89C51 密码锁 密码二次确认 II 目目 录录 一 绪一 绪论论 1 1 1 背景 1 1 2 电子密码锁 1 1 3 电子密码锁的特点 1 1 4 电子密码锁的发展趋势 2 二 方案论证与比较二 方案论证与比较 3 2 1 数字电路控制的密码锁 3 2 2 单片机控制的密码锁 3 三 三 系统总体设计系统总体设计 5 3 1 设计要求 5 3 2 设计构想 5 3 3 系统结构 5 3 4 系统组成 6 3 5 系统可行性分析 6 四 四 硬件电路设计硬件电路设计 7 4 1 单片机 AT89C51 简介 7 4 1 1 主要特性 7 4 1 2 管脚说明 7 4 1 3 震荡特性 9 4 1 4 芯片擦除 9 4 2 4 4 矩阵键盘输入电路 9 4 3 复位电路 10 4 4 振荡电路 11 4 5 数码管显示电路 12 4 6 显示方式 13 4 7 开锁电路 14 4 8 报警电路 15 4 9 上拉电阻的作用 15 4 10 按键去抖动的方法 16 4 11 部分元器件列表 16 五 软件程序设计五 软件程序设计 17 III 5 1 软件设计流程图 18 5 2 具体功能软件实施 19 5 2 1 开始等待流程 19 5 2 2 密码检查功能 19 5 2 3 键盘扫描 20 5 2 4 修改密码 21 六 六 结论结论 22 七 七 参考文献参考文献 23 附录一总原理图附录一总原理图 24 附录二电子密码锁源程序附录二电子密码锁源程序 25 1 一 绪论一 绪论 1 1 背景背景 随着社会物质财富的日益增长 安全防盗已成为社会问题 而锁自古以来就 是把守门户的铁将军 人们对它要求甚高 既要安全可靠地防盗 又要使用方便 这也是制锁者长期以来研制的主题 目前国内 大部分人使用的还是传统的机械 锁 然而 眼下假冒伪劣的机械锁泛滥成灾 互开率非常之高 所谓互开率 是 各种锁具的一个技术质量标准 也就是1把钥匙能开几把锁的比率 经国家工商局 国家内贸局 中国消协等部门对锁具市场的调查 发现个别产品的互开率居然超 标26倍 为何弹子锁的 互开率 会如此之高 据有关专家人士剖析 弹子锁质量好 坏主要取决于弹子数量的多少以及弹子的大小 而弹子的多少和大小受一定条件 的限制 此外 即使是一把质量过关的机械锁 通过急开锁 甚至可以在不损坏 锁的前提下将锁打开 机械锁的这些弊端为一种新型的锁 电子密码锁 提供了 发展的空间 随着社会的发展和人们生活水平的提高 人们的安全意识也逐步加 强 密码锁以其安全性高 成本低 功耗低 易操作等优点受到越来越多人的欢 迎 1 2 电子密码锁电子密码锁 电子密码锁是采取电子电路控制 以电磁铁或者卫星电机和锁体作为执行装 置的机电一体化锁具 相比传统的机械锁具 电子密码锁不使用金属钥匙 保密 性 精度都有很大提高 电子密码锁的发明思路 源自古代发明的自动机械 例如古希腊数学家赫伦 的液压自动门 中国古代诸葛亮的木牛流马 它们以重力或蒸汽压力驱动 最广 泛的用途乃是用在古代墓道的地下机关 电子工业的诞生 使得以微小电量驱动 机械成为可能 于是有了电子锁一日千里的跃进 1 3 电子密码锁的特点电子密码锁的特点 电子密码锁是一种通过密码输入来控制电路或是芯片工作 从而控制机械开 关的闭合 完成开锁 闭锁任务的电子产品 它的种类很多 有简易的电路产品 也有基于芯片的性价比较高的产品 现在应用较广的电子密码锁是以芯片为核心 通过编程来实现的 其性能和安全性已大大超过了机械锁 主要特点如下 1 保密性好 编码量多 远远大于弹子锁 随机开锁成功率几乎为零 2 密码可变 用户可以经常更改密码 防止密码被盗 同时也可以避免因人 2 员的更替而使锁的密级下降 3 电子密码锁操作简单易行 一学即会 4 干扰码功能 在输入正确密码前可输入任意码 5 误码输入保护 当输入密码多次错误 报警电路启动 防止试探密码 6 入侵感应功能 在门上锁的状态下 有人破锁而入 会发出报警音 7 火灾报警功能 在室内如果温度达到 75 左右 将会发出强力的报警 音 同时锁会自动开启 8 双重锁定功能 外部强制锁定 在内部不能开启 适用于外出时 防止有人入侵 内部强制锁定 在外部不能开启 让您在家时更安心 安全 9 弱电提醒 当电量不足时 在启动开门时 会有美妙的音乐提示您及时 更换电池 10 自动上锁功能 采用全自动锁芯 门关后 6 秒内自动上锁 外出更安 全 11 外部显示功能 当密码输入错误 锁舌没正常锁到位 室内反锁 弱 电等情况下 外部都有提示功能 1 41 4 电子密码锁的发展趋势电子密码锁的发展趋势 从目前的技术水平和市场认可程度看 使用最广泛的是键盘式电子密码锁 该产品主要应用于保险箱 保险柜和金库 还有一部分应用于保管箱和运钞车 键盘式电子密码在键盘上输入 与打电话差不多 因而易于掌握 其突出优点是 密码 是记在被授权人脑子里的数字和字符 既准确又可靠 不会丢失 难以 被窃 但是密码不能太简单 太简单了就容易被他人在键盘上试探出来 或者可 能被旁观者窥测出来 造成保密性不足 当然 密码又不能太复杂 太复杂了可 能自己都糊涂了 或者输入密码操作成功率低 造成使用不便 因此 为了发扬 优点 克服弱点 键盘式电子密码也在不断发展中 如 任意设定密码 技术使 得被授权人可以根据自己的需要或喜好设定密码 常用常新 而 自动更改密码 技术使得本次输入的密码将自动更改成下次应输入的密码 更改的规律不为他人 所知 因而不怕旁观者窥测 独出心裁的 键盘乱序显示 技术使得键盘上的固 定键位每次显示出的字符不固定 并且显示的窄小角度只能由操作者正面看得到 因而即使旁观者看见操作动作也难以窥测出密码 多重密码设定 技术使得单 组密码不一定有效 适合多人分权使用 需要输入两组以上的密码才被认可 大 大提高了保密性 如果限定输入这些密码的先后顺序或时间区段 则保密性还可 提高 在输入密码的过程中 为了限制试探密码的企图 通常输入错误码若干次 或若干时间内输入不正确 即 封锁 键盘 不再接受输入操作 总之 尽管新 式电子防盗锁层出不穷 但键盘式电子密码防盗锁不仅在市场上居于主流地位 3 而且 还经常作为其他类型电子防盗锁的辅助输入手段 二 方案论证与比较二 方案论证与比较 2 1 数字电路控制的密码锁数字电路控制的密码锁 方案一 采用数字电路控制 其原理方框图如图 2 1 所示 图 2 1 1 数字密码锁电路方案 采用数字密码锁电路以 74LS112 双 JK 触发器构成的数字逻辑电路作为密码锁 的核心控制 共设了 9 个用户输入键 其中只有 4 个是有效的密码按键 其它的 都是干扰按键 若按下干扰键 键盘输入电路自动清零 原先输入的密码无效 需要重新输入 如果用户输入密码的时间超过 40 秒 一般情况下 用户不会超过 40 秒 若用户觉得不便 还可以修改 电路将报警 80 秒 若电路连续报警三次 电路将锁定键盘 5 分钟 防止他人的非法操作 电路由两大部分组成 密码锁电路和备用电源 UPS 其中设置 UPS 电源是为 了防止因为停电造成的密码锁电路失效 使用户免遭麻烦 密码锁电路包含 键盘输入 密码修改 密码检测 开锁电路 执行电路 报警电路 键盘输入次数锁定电路 2 2 单片机控制的密码锁单片机控制的密码锁 方案二 由于单片机品种繁多 各种型号都有一定的应用环境 因此在选用 4 时要多加比较 合理选择 以期获得最佳性价比 一般来说在选择单片机时从下 面几个方面考虑 性能 存储器 运行速度 I O 口 定时 计数器 串行接口 模拟电路功能 工作电压 功耗 封装形式 抗干扰性 保密性 除了以上的一 些还有一些最基本的 比如 中断源的数量和优先级 工作温度范围 有没有低 电压检测功能 单片机内有无时钟振荡器 有无上电复位功能等 在开发过程中 单片机还受到 开发工具 编程器 开发成本 开发人员的适应性 技术支持和 服务等因素 基于以上因素本设计选用单片机 AT89C51 作为本设计的核心元件 利用单片机灵活的编程设计和丰富的 I O 端口 及其控制的准确性 实现基本的 密码控制功能 在单片机外围电路外接输入键盘用于密码的输入和一些功能的控 制 外接 LED 用于显示 当用户需要开锁时 先按开锁键之后输入密码 密码输 入完确认 如果密码输入正确则开锁 不正确显示密码错误重新输入密码 当三 次密码错误则发出报警 当用户需要修改密码时 先按下键盘设置键后输入原来 密码 只有当输入的原密码正确才能设置新密码 新密码输入无误后按确认键使 新密码得到存储 密码修改成功 可以看出方案二的控制灵活 准确性好 且保 密性强还具有扩展功能 根据现实生活的需要此方案 其原理框图如图 2 2 所示 AT89C51 数码管 电源 报警电路 振荡电路 开锁电路 复位电路 4 4 键盘 图 2 2 1 单片机控制方案 通过比较以上两种方案 单片机方案有较大的活动空间 不但能实现所要求 的功能而且能在很大的程度上扩展功能 所以我们采用后一种方案 5 三 三 系统总体设计系统总体设计 3 1 设计要求设计要求 本次设计使用 ATMEL 公司的 AT89C51 实现一基于单片机的电子密码锁的设计 其主要具有如下功能 1 设置 4 位密码 密码通过键盘输入 若密码正确 则将锁打开 2 密码可由用户自己修改设定 只支持 4 位密码 锁打开后才能修改密 码 修改密码前必须再次输入密码 在输入新密码时候需二次确认 防止误操作 3 报警 锁定键盘功能 密码输入错误数码显示器会出现错误提示 若密 码输入错误次数超过 3 次 蜂鸣器报警并且锁定键盘 3 2 设计构想设计构想 电子密码锁的设计主要由三部分组成 4 4 矩阵键盘接口电路 密码锁的控 制电路 输出八段显示电路 另外系统还有 LED 提示灯 报警蜂鸣器等 密码锁设计的关键问题是实现密码的输入 清除 更改 开锁等功能 1 密码输入功能 按下一个数字键 一个 就显示在最右边的数码管 上 同时将先前输入的所有 向左移动一位 2 密码清除功能 按下清除键 清除前面输入的值 并清除所有显示 3 密码更改功能 将输入的值作为新的密码 4 开锁功能 当按下开锁键 系统将输入与密码进行检查核对 如果正确 锁打开 否则不打开 主要的设计实施过程 首先 选用 ATMEL 公司的单片机 AT89C51 以及选 购其他电子元器件 第二步 使用 Altium Designer 6 设计硬件电路原理图 第三 步 使用 Keil uVision3 编译软件将 C 语言程序输入并进行编译得到 HEX 格式的 机器码文件 第四步 使用 A51 编程器及 FX 51pro 编程器软件将机器码文件烧 录道单片机 AT89C51 中并且进行模拟 调试 最后 联合软 硬件调试电路板 完成本次课程设计 3 3 系统结构系统结构 本设计主要由单片机 矩阵键盘 数码管显示和开锁电路等部分组成 其 中矩阵键盘用于输入数字密码和进行各种功能的实现 由用户通过连接单片机的 矩阵键盘输入密码 然后经单片机对用户输入的密码与自己保存的密码进行对比 从而判断密码是否正确 然后控制引脚的高低电平传到开锁电路或者报警电路控 制开锁还是报警 本系统由两部分组成 即硬件部分与软件部分 其中硬件部分 6 由键盘输入部分 复位部分 显示部分 报警部分等组成 软件部分由主程序 键盘扫描程序 延时程序等组成 AT89C51 数码管 电源 报警电路 振荡电路开锁电路 复位电路 4 4 键盘 图 3 3 1 系统结构框图 3 4 系统组成系统组成 如图 3 3 1 所示系统主要由 AT89C51 51 系列 八位数码管 报警电路 4 4 矩阵键盘 复位电路等组成 3 5 系统可行性分析系统可行性分析 系统工作原理分析 使用 AT59C51 单片机 4 4 矩阵键盘 报警电路等 矩 阵键盘分别为 0 1 2 3 4 5 6 7 8 9 Clear Enter Modify 系统开始显示 INPUT 提示输入密码 输入密码时 数码管显示电路显示为 当密码输入 完毕按下 Enter 键时 对输入密码与设定的密码进行比较 若密码正确则数码管 显示电路显示为 ON 提示锁打开 若密码不正确 数码管显示电路显示提示 OFF 若连续 3 次输入不正确 则发出警报声同时锁定键盘 在输入正确密码后 按下修改键时 数码管显示电路显示 old 提示 输入 旧密码 此时输入正确的旧密码 则显示电路会有提示输入新密码在输入新密码 后 显示电路会再次提示 再次输入新密码 若两次输入密码不一致 则修改密 码失败 一致则成功 在修改密码的过程中 如果一开始输入的旧密码错误显示 电路会显示提示 同时系统返回到开始 若在 再次输入新密码 的时候输入新密码与前次不一致 则会返回到系统 开始 修改密码完成后 系统自动清零上锁 要再次开锁则需要输入正确的密码 系统中 Clear 键用于退格 在输入密码时 若输入错误且未按下 Enter 键 7 按下 Clear 可以删除刚输入的密码 然后再次输入 为了防止恶意尝试 系统才用若连续输入 3 次错误密码则发出报警声 且锁 定键盘 可以提高系统的安全系数 同时也能够保护合法用户的正常使用 四 四 硬件电路设计硬件电路设计 4 1 单片机单片机 AT89C51 简介简介 AT89C51 是美国 ATMEL 公司生产的低电压 高性能 CMOS8 位单片机 片 内含 4K bytes 的可反复擦写的只读程序存储器 EPROM 和 128bytes 的随机存 取数据序存器 RAM 器件采用 ATMEL 公司的高密度 非易失性存储技术生产 兼容标准 MCS 51 指令系统 片内置通用 8 位中央处理器 CPU 和 FLASH 存储 单元 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89C51 是一种高效微控制器 AT89C51 单片机为许多嵌入式控制系统提供了一 种灵活行高且价廉的方案 其引脚排列如图 4 1 1 所示 4 1 1 主要特性主要特性 8031 CPU 与 MCS 51 兼容 4K 字节可编程 FLASH 存储器 寿命 1000 写 擦循环 全静态工作 0Hz 24KHz 三级程序存储器保密锁定 128 8 位内部 RAM 32 条可编程 I O 线 两个 16 位定时器 计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 4 1 2 管脚说明管脚说明 VCC 供电电压 图 4 1 1 芯片管脚排列 GND 接地 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可吸收 8TTL 门电流 当 P1 口的管脚第一次写 1 时 被定义为高阻输入 P0 能够用于外部程序数据存储器 它可以被定义为数据 地址的第八位 在 FIASH 编程时 P0 口作为原码输入口 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 U2 AT89C51 8 当 FIASH 进行校验时 P0 输出原码 此时 P0 外部必须被拉高 P1 口 P1 口是一个内部提供上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收 输出 4TTL 门电流 P1 口管脚写入 1 后 被内部上拉为高 可用作输入 P1 口被 外部下拉为低电平时 将输出电流 这是由于内部上拉的缘故 在 FLASH 编程 和校验时 P1 口作为第八位地址接收 P2 口 P2 口为一个内部上拉电阻的 8 位双向 I O 口 P2 口缓冲器可接收 输 出 4 个 TTL 门电流 当 P2 口被写 1 时 其管脚被内部上拉电阻拉高 且作为输 入 并因此作为输入时 P2 口的管脚被外部拉低 将输出电流 这是由于内部上 拉的缘故 P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时 P2 口输出地址的高八位 在给出地址 1 时 它利用内部上拉优势 当对外部八 位地址数据存储器进行读写时 P2 口输出其特殊功能寄存器的内容 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号 P3 口 P3 口管脚是 8 个带内部上拉电阻的双向 I O 口 可接收输出 4 个 TTL 门电流 当 P3 口写入 1 后 它们被内部上拉为高电平 并用作输入 作为输入 由于外部下拉为低电平 P3 口将输出电流 ILL 这是由于上拉的缘故 P3 口也可作为 AT89C51 的一些特殊功能口 如下表所示 管脚 备选功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INT0 外部中断 0 P3 3 INT1 外部中断 1 P3 4 T0 定时 计数器 0 外部输入 P3 5 T1 定时 计数器 1 外部输入 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 P3 口同时为闪烁编程和编程校验接收一些控制信号 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高电 平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的地 位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不 变的频率周期输出正脉冲信号 此频率为振荡器频率的 1 6 因此它可用作对外部 输出的脉冲或用于定时目的 然而要注意的是 每当用作外部数据存储器时 将 跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执行 MOVX MOVC 指令是 ALE 才起作用 另外 该引脚被略微拉 高 如果微处理器在外部执行状态 ALE 禁止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机 9 器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号 将不出现 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管是否有内部程序存储器 注意加密方式 1 时 EA 将内部锁定为 RESET 当 EA 端保持高电平时 此间内部程序存储器 在 FLASH 编程期间 此引脚也用于 施加 12V 编程电源 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 4 1 3 震荡特性震荡特性 XTAL1 和 XTAL2 分别为反向放大器的输入和输出 该反向放大器可以配置 为片内振荡器 石晶振荡和陶瓷振荡均可采用 如采用外部时钟源驱动器件 XTAL2 应不接 有余输入至内部时钟信号要通过一个二分频触发器 因此对外部 时钟信号的脉宽无任何要求 但必须保证脉冲的高低电平要求的宽度 4 1 4 芯片擦除芯片擦除 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合 并保 持 ALE 管脚处于低电平 10ms 来完成 在芯片擦操作中 代码阵列全被写 1 且 在任何非空存储字节被重复编程以前 该操作必须被执行 此外 AT89C51 设有稳态逻辑 可以在低到零频率的条件下静态逻辑 支持 两种软件可选的掉电模式 在闲置模式下 CPU 停止工作 但 RAM 定时器 计数器 串口和中断系统仍在工作 在掉电模式下 保存 RAM 的内容并且冻结 振荡器 禁止所用其他芯片功能 直到下一个硬件复位为止 4 2 4 4 矩阵键盘矩阵键盘输入电路输入电路 键盘可以分为独立连接式和矩阵式两类 由于设计所用到的按键数量多而不 适合独立式按键 采用矩阵式按键 按键位于行列的交叉点上 密码锁的密码由 键盘输入完成 本电路设计采用 4 4 行列式键盘 同时也能减少键盘与单片机接 口时所占用的 I O 线的数目判别键盘中有无按键按下 由单片机 I O 口向键盘送 输出 全扫描字 然后读入 输入 行线状态来判断 方法是 向列线输出全 扫描字 00H 把全部列线置为低电平 然后将行线的电平状态读入累加器 A 中 如果有键按下 总会有一根行线电平拉至低电平 从而使列输入不全为 1 键盘 中哪一个键按下 是由列线逐列置低电平后 检查行输入状态实现的 其方法是 依次给列线送低电平 然后查所有行线状态 如果全为 1 则所按下的键不在此 列 如果不全为 1 则所按下的键必在此列 而且是在与零电平行线相交的交点 10 上的那个键 如图 4 2 1 所示 本系统采用 4 4 矩阵键盘 16 个按键分为输入 数字键 0 1 2 3 4 5 6 7 8 9 功能键 lock 锁住 modify 修改 clear 清除 Enter 确认 矩阵键盘 S7 SW PB S4 SW PB S1 SW PB S SW PB S Modify SW PB S8 SW PB S5 SW PB S2 SW PB S0 SW PB S Enter SW PB S9 SW PB S6 SW PB S3 SW PB S SW PB S Clear SW PB S lock SW PB P2 0 P2 1 P2 2 P2 3 P2 4 P2 5 P2 6 P2 7 图 4 2 1 矩阵键盘图 4 3 复位电路复位电路 10K R5 0 47uF C1 470 R4 S10 SW PB VCC RST 图 4 3 1 复位电路图 11 复位是使 CPU 和系统中的其他功能部件都处在一个确定的初始状态 并从这 个状态开始工作 无论是单片机刚开始接上电源时 还是断电后或者发生故障后 都要复位 该电路在最简单的复位电路下增加了手动复位按键 在接通电源瞬间 电容 C1 上电压很小 复位下拉电阻上的电压接近电源电压 即 RST 位高电平 在 电容充电的过程中 RST 端电压逐渐下降 当 RST 端的电压小于某一数值后 CPU 脱离复位状态 由于电容 C1 足够大 可以保证 RST 高电平有效时间大于两个机器 周期 即 24 个振荡周期 CPU 能够可靠复位 增加手动复位按键是为了避免 死机时无法可靠复位 当复位按键按下后电容 C1 通过 R4 放电 当电容 C1 放电结 束之后 RST 端的电位由 R4 与 R5 分压比决定 由于 R4 R5 因此 RST 为高电平 CPU 处于复位状态 松手后 电容 C1 充电 RST 端电位下降 CPU 脱离复位状态 R4 的作用在于限制按键按下瞬间电容 C1 的放电电流 避免产生火花 以保护按 键触电 芯片内部开始进行初始复位 此次设计用到的是按键复位 如图 4 3 1 4 4 振荡电路振荡电路 30pF C2 30pF C3 12 Y 1 X T A L 1 X T A L 2 图 4 4 1 振荡电路图 AT89C51 的引脚 XTAL1 和 XTAL2 与晶体振荡器及电容 C2 C3 按图 4 4 所示方 式连接 晶振 电容 C2 和 C3 及片内与非门 作为反馈 放大元件 构成了电容 三点式振荡器 振荡信号频率与晶振频率及电容 C2 C3 的容量有关 但主要由晶 振频率决定 范围在 0 到 33MHz 之间 本设计晶振选择频率为 12MHZ 电容选择 30pF 经计算得单片机工作的机器周期为 12 1 12M 1us 12 4 5 数码管数码管显示电路显示电路 1 2 3 4 5 67 8 9 10 11 12 U1 1 2 3 4 5 67 8 9 10 11 12 U2 Q3 Q4 Q5 27K R6 27K R7 27K R8 27K R9 27K R13 27K R10 27K R11 27K R12 Q6 Q7 Q8 Q9 Q10 VCC P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 P3 0 P3 1 P3 2 P3 3 P3 4 P3 5 P3 6 P3 7 图 4 5 1 数码管显示电路图 由于液晶显示器价格昂贵 而且显示部分不是本系统的重要部分 因此采用 LED 数码管作为显示器件 本设计采用两个 4 位 8 段共阴极数码管 由于由单片机直接驱动的直流电流 不够 数码管亮度显得不足 所以加上三极管用以放大电流 因为 LED 数码管合适的驱动电流大约为 9mA 到 20mA 左右 为了适 LED 数码管 工作电流在 10mA 左右 根据图 4 5 2 具体计算如下 Ib 5V 1 4V 0 7V 27K 0 1 10 3A Ie Ib 1 10 mA 使用的 9013 的放大倍数 为 100 13 9013 D3 27K R6 VCC GND 图 4 5 2 三极管电路 4 6 显示显示方式方式 本系统使用共阴极数码管显示 如图 4 5 1 选段由 P3 口输出高电平有 效 选位由 P1 口输出低电平有效 显示方式分别有静态显示与动态显示两种 在显示提示信息如 输入密码 INPUT 操作通过 PASS 操作错误 ERROR 输入旧密码 OLD 输入新密码 NE 再次输入 AGAIN 等信息时 使用的是动态显示 静态显示应用在输入密码时数码管的显示进行输入密码操作时 每输入一位 密码数码管显示一个 实施方法为 当有第一个按键时 第八个数码管的 位选信号为低电平 其他为高 当有第二个按键时 第八 第七个数码管的位选 信号为低 其他为高 如此类推 由于 8 个显示器的同名端是连接在一起的 如果选位的管脚 本系统中为 P1 都为 0 那么 8 个显示器则显示同一字符 要使各个数码管出现不同字符必 须采用 分时动态扫描 的方法显示 即每次点亮一个 LED 显示器 延时一段时 间再点亮下一个 LED 显示器 周而复始 8 个 LED 显示器轮流动态扫描 利用 人视觉余辉的暂留效应 看起来好像几个显示器上 同时 显示不同的字符 14 4 7 开锁开锁电路电路 Q1 Q11 3 3K R1 C4D1 D2 1 2 3 4 5 K1 VCC GND P0 2 图 4 7 1 开锁电路图 电磁式继电器的工作原理和特性 电磁式继电器一般由铁芯 线圈 衔铁 触点簧片等组成的 只要在线圈两 端加上一定的电压 线圈中就会流过一定的电流 从而产生电磁效应 衔铁就会 在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯 从而带动衔铁的动触点与 静触点 常开触点 吸合 当线圈断电后 电磁的吸力也随之消失 衔铁就会在 弹簧的反作用力返回原来的位置 使动触点与原来的静触点 常闭触点 吸合 这样吸合 释放 从而达到了在电路中的导通 切断的目的 对于继电器的 常 开 常闭 触点 可以这样来区分 继电器线圈未通电时处于断开状态的静触点 称为 常开触点 处于接通状态的静触点称为 常闭触点 开锁控制电路的功能是输入正确的密码后将锁打开 系统使单片机其中一引 脚线发出信号 经三极管放大后 由继电器驱动电磁阀动作将锁打开 用户通过 键盘任意设置密码 并储存在 EPROM 中作为密码指令 开锁步骤如下 首先按下 键盘上的开锁按键 然后利用键盘上的数字 0 到 9 输入密码 最后按下确认键 当用户输入密码后单片机自动识别密码 如果密码三次不符合 则报警 只有密 码正确 单片机才能使继电器处于开锁状态 其原理如下 当用户输入的密码正确并且是在按下确定键的话 单片机便输 出开门信号 送到开锁驱动电路 然后驱动电磁锁 达到开门的目的 电路驱动 和开锁两级组成 由 D2 R1 Q1 组成驱动电路 其中 Q1 可以选择普通的小功率 三极管如 9014 9018 都可以满足要求 D2 作为开锁的提示 由 D1 C4 Q11 组 15 成 其中 D1 C4 是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干 扰 Q11 可选用中功率的三极管如 8050 电磁锁的选用要视情况而定 但是吸合 力要足够且由一定的余量 4 8 报警电路报警电路 L S1 1K R3 Q 2 V CC 1K R2 V CC P0 3 图 4 8 1 报警电路图 由于报警电路使用 P0 口驱动要加上上拉电阻如图 4 8 1 三极管是一种控制元件 主要用来控制电流的大小 以共发射极接法为例 信号从基极输入 从集电极输出 发射极接地 当基极电压 UB 有一个微小的 变化时 基极电流 IB 也会随之有一小的变化 受基极电流 IB 的控制 集电极电 流 IC 会有一个很大的变化 基极电流 IB 越大 集电极电流 IC 也越大 反之 基 极电流越小 集电极电流也越小 即基极电流控制集电极电流的变化 但是集电 极电流的变化比基极电流的变化大得多 这就是三极管的放大作用 报警部分由陶瓷压电发声装置及外围电路组成 加电后不发声 有按键按下时 发叮声 每按一下 发声一次 密码输入正确不发声 当密码输入错误时 单片 机的 P0 3 位低电平 三极管导通 蜂鸣器发出蜂鸣声报警 4 9 上拉电阻的作用上拉电阻的作用 1 TTL 驱动 CMOS 时 如果 TTL 输出最低高电平低于 CMOS 最低高电平时 提高输出 高电平值 2 加大输出的驱动能力 单片机较常用 3 CMOS 芯片中 特别是门的芯片 为防静电干扰 不用的引脚也不悬空 一般上拉 降 低阻抗 提供泄荷通路 4 提高输出电平 提高芯片输入信号的噪声容限 增强抗干扰 5 提高总线抗电磁能力 空脚易受电磁干扰 16 6 长线传输中加上拉 是阻抗匹配抑制反射干扰 原则 1 从节约功耗和芯片的电流 能力应是电阻尽量大 R 大 I 小啊 2 从确保驱动能力 应当电阻足够小 R 小 I 大啊 3 对高速电路 加上拉可能边沿平缓 上升时间延长 建议可以在 1K 10K 之间选 可根据实际情况 4 10 按键去抖动的方法按键去抖动的方法 机械式按键在按下或释放时 由于机械弹性作用的影响 通常伴随有一定时 间的触点机械抖动 然后其触电才能稳定下来 抖动时间一般为 5ms 到 10ms 在 触电抖动期间检测按键的通与断状态 可能导致判断出错 1 硬件电路去抖动 按键的机械抖动可采用硬件电路来消 较为适用于按键 较少的情况 2 软件去抖动 在检测到有按键按下时 先执行 10ms 的延时程序 然后再重 新检测该按键是否仍然按下 以确认该按键按下不是因抖动引起的 同理 在检 测到该按键释放时 也采用先延时再判断的方法消除抖动的影响 在此次设计中采用软件去抖动 4 11 部分元器件列表部分元器件列表 元器件规格 型号数量 四位八段共阴数码管 3461AFR1 B101 四位八段共阴数码管 SR420361 三极管 NPN9 三极管 PNP1 电阻 27k8 电阻 4701 电阻 4 7K1 电解电容 0 47uF1 瓷片电容 30pF2 单片机 AT89C511 表 4 11 部分元器件列表 17 五 软件程序设计五 软件程序设计 本系统程序部分使用 C 语言编写 C 语言是一种高级程序设计语言 它的优 点是简洁明了 可移植性高 主要完成 开始时数码管显示提示 INPUT 输入密码 输入密码后按下确认 键 系统会将所输入与系统密码进行比对 若输入密码正确则显示 PASS 开锁 然后可以选择上锁或者修改密码 开锁后 按下上锁 LOCK 键 系统上锁并返回 选择修改密码则可以对系 统进行修改密码操作 在修改密码前要输入正确旧的密码 正确输入旧密码之后 会有提示输入两次新密码 若两次密码一致 则修改成功 期间操作出现失误 系统会返回初始状态 操作错误超过 3 次 系统会锁定键盘 并报警用以防止恶 意试探密码 18 5 1 软件设计流程图软件设计流程图 开始 输入密码 正确否 开锁 判断按键 LOCK Modify 键 上锁 结束 输入密码 正确否 输入新密码 再次输入 一致否 修改密码 Yes No No Yes No Yes 图 5 1 1 软件设计流程图 19 5 2 具体功能软件实施具体功能软件实施 5 2 1 开始等待流程开始等待流程 系统开始一直显示提示 INPUT 并判断有否按键 当有键按下跳出等待 开始 显示 INPUT 判断是否 有按键 结束 No Yes 图 5 2 1 开始等待流程图 5 2 2 密码检查功能密码检查功能 本系统使用数组 PASSWORD 6 存储密码 系统初始化对数组负值 PASSWORD 6 5 6 7 9 10 11 相当于键盘上的 1 2 3 4 5 6 输入密码的时候 先将 输入的每一位密码分别放置在数组 check 6 中 然后再将 check 6 与 PASSWORD 6 的每一位分别对照 若每一位都相等 密码检查通过 20 开始 输入一位密码 数码管显示 K 6 k 0 按键为 Clear 结束 Yes No No Yes 图 5 2 2 密码检查流程图 5 2 3 键盘扫描键盘扫描 如图 4 2 1 本系统使用 4 4 矩阵键盘当没有键按下时 行线和列线之间是 不相连的 若第 N 行与第 M 列的键被按下 那么第 N 行与第 M 列的线就被接通 21 根据上述原理 本系统的键盘扫描方法是利用 P2 口的低四位作为列扫描线 P2 口的高四位作为行回扫线 具体实施方法为 先使 P2 0 口输出低电平 P2 口 其他口输出高电平 然后对 P2 4 P2 5 P2 6 P2 7 四个口分别作判断 若此四 口都为高电平 则没有键按下 若有键按下 P2 4 P2 5 P2 6 P2 7 四个口必 定有一个口输入为低电平 再判断 P2 4 P2 5 P2 6 P2 7 哪个口为低电平则可 判断按键在哪行上 如 P2 4 P2 5 P2 6 P2 7 没有低电平 再使 P2 1 为低电 平 其他口为高电平 依次扫描下去 找到按键所在的列 再判断 P2 口的高四位 哪一位为低 便可知道键在哪一行上 5 2 4 修改密码修改密码 本系统设定的修改密码过程为 在输入正确的密码后 按 modify 此时提示 输入旧密码 old 输入正确的旧密码后 可以输入新密码 此时键入的六位新 密码将保存到数组 check 6 中 然后显示器提示再次输入 输入完毕后 第二次 输入的密码将保存在 check2 6 中 然后将 check 6 中六位分别与 check2 6 中的六 位比对 若两次密码输入一直 即将新的密码 也就是 check2 6 和 check2 6 中的 六位赋值到 PASSWORD 6 中 此时修改密码工作完成 系统将跳翻到开始 即 提示输入密码 INPUT 22 六 六 结论结论 通过这次毕业设计 让我对设计有了一定的逻辑顺序 通过查阅图书馆中的 资料让我对着方面的知识有了更系统的了解 让我复习了很多学过的旧知识 同 时锻炼了自己的动手能力和查阅资料 尤其是解决在实际中解决排查问题的能力 1 通过这次的设计 我熟悉了使用 Protel 的技巧 学会了制作电路板的一 些技巧 并且熟悉了如何选购使用电子元器件 2 在设计中 我学到了如何使用 C 语言对单片机进行编写程序 熟悉了使 用 KEIL C 软件 并且加深了对单片机的编程技巧 3 在做这个设计的过程中 我遇到了不少的问题 这锻炼了我筛选 查阅 资料 并将理论结合到自己的设计中的能力 一步一步的排除故障原因 找到故障的原因并解决故障 4 这次的设计使我对模拟电子 数字电子 单片机 C 语言等知识加深了了 解 通过对以往知识的复习巩固 将问题解决 这次的设计有很多的不足 和市场上的产品有一定的差距 例如没有使用液 晶显示屏 电动锁的部分在实物中使用一个 LED 代替等 还可以做得更好 还请 老师同学们提出宝贵意见 在做本次课程设计的过程中 我感触最深的当属查阅 大量的设计资料了 为了让自己的设计更加完善 查阅这方面的设计资料是十分 必要的 同时也是必不可少的 我们是在做单片机课程设计 但我们不是艺术家 他们可以抛开实际尽情在幻想的世界里翱翔 而我们一切都要有据可依 有理可 寻 不切实际的构想永远只能是构想 永远无法升级为设计 要做好一个课程设 计 就必须做到 在设计程序之前 对所用单片机的内部结构有一个系统的了解 知道该单片机内有哪些资源 要有一个清晰的思路和一个完整的的软件流程图 在设计程序时 不能妄想一次就将整个程序设计好 反复修改 不断改进是程序 设计的必经之路 要养成注释程序的好习惯 一个程序的完美与否不仅仅是实现 功能 而应该让人一看就能明白你的思路 这样也为资料的保存和交流提供了方 便 在设计课程过程中遇到问题是很正常德 但我们应该将每次遇到的问题记录 下来 并分析清楚 以免下次再碰到同样的问题 在本次设计完成之际 在这里要衷心感谢我的毕业设计指导老师杨老师在设 计中对我的指导 帮助 并且提出了很多非常宝贵的意见 感谢在本次设计中给 予我帮助的各位同学 还要感谢大学三年来教导我的各位老师 不计较浪费自己 学习时间帮助我的同学 感谢杨老师百忙之中对我本次设计的阅览与指导 23 七 七 参考文献参考文献 1 当方 微型计算机控制技术 M 中国水利水电出版社 2001 年 2 胡汉才 单片机原理及其借口技术 M 清华大学出版社 1996 年 3 赵新民 智能仪器设计基础 M 哈尔滨工业大学出版社 1999 年 4 潘新 民王 燕芳 微型计算机控制技术 M 电子工业出版社 2003 年 5 李钟实 实用电子报警器精选百例 北京 科技技术文献出版社 2002 年 6 陈爱弟 Protel99se 实用培训教程 M 人民邮电出版社 2000 年 7 阎石 数字电子技术基础 M 高等教育出版社 1998 年 8 童诗白 模拟电子技术基础 M 高等教育出版社 1998 年 9 候振鹏 嵌入式 C 语言程序设计 M 北京 人民邮电出版社 2006 年 10 徐士良 C 语言程序设计教程 M 北京 人民邮电出版社 2001 年 11 李平 单片机应用开发与实践 北京 机械工业出版社 2008 年 12 陈志旺 51 系列单片机系统设计与实践 北京 电子工业出版社 2010 年 13 李萍 AT89S51 单片机原理开发与应用实例 北京 中国电力出版社 2008 年 14 康万新 毕业设计指导及案例剖析 北京 清华大学出版社 2007 年 15 王静霞 单片机应用技术 C 语言版 北京 电子工业出版社 2009 年 24 附录一附录一 S7 SW PB S4 SW PB S1 SW PB S SW PB S Modify SW PB S8 SW PB S5 SW PB S2 SW PB S0 SW PB S Enter SW PB S9 SW PB S6 SW PB S3 SW PB S SW PB S Clear SW PB S lock SW PB LS1 1K R3 10K R5 Q2 VCC 0 47uF C1 470 R4 S10 SW PB VCC 1 2 3 4 5 67 8 9 10 11 12 U1 1 2 3 4 5 67 8 9 10 11 12 U2 Q3 Q4 Q5 27K R6 27K R7 27K R8 27K R9 27K R13 27K R10 27K R11 27K R12 Q6 Q7 Q8 Q9 Q10 VCC P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 P3 0 P3 1 P3 2 P3 3 P3 4 P3 5 P3 6 P3 7 1K R2 VCC 30pF C2 30pF C3 12 Y1 VCC P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 P3 0 P3 1 P3 2 P3 3 P3 4 P3 5 P3 6 P3 7 P2 7 P0 3 P1 0 T0 EA 31 XTAL1 19 RD WRP2 4 P1 1 P1 2 P1 3 P1 4 RST 9 INT1 P2 2 INT0 T1 PSEN 29 P2 5 ALE 30 P2 1 P1 7 P1 6 TXD RXD XTAL2 18 P1 5 P2 3 P2 0 P0 4 P0 2 P0 1 P0 0 P2 6 P0 5 P0 6 P0 7 Vss 20 Vcc 40 AT89C51 Q1 Q11 3 3K R1 C4D1 D2 1 2 3 4 5 K1 VCC GND 图一图一 总原理图总原理图 河南工业职业技术学院毕业论文 25 附录二附录二 电子密码锁源程序 include void view input password void void view input error void void key1 void void key2 void void key3 void void newpassword void void again void void key void void input view void void voice void void view again void void oldpassword void unsigned int x y i j k falg unsigned int counter 0 unsigned int password 6 5 6 7 9 10 11 unsigned int check 6 unsigned int check2 6 void delay void newpassword void main P0

温馨提示

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

最新文档

评论

0/150

提交评论