已阅读5页,还剩66页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南 京 工 程 学 院 毕业设计说明书 论文 作 者 学 号 240072306 系 部 专 业 题 目 基于单片机的电子密码锁的设计与实现 指导者 讲师 评阅者 讲师 2011 年 6 月 南 京 南京工程学院毕业毕业设计说明书 论文 A Dissertation Submitted to Nanjing Institute of Technology For the Academic Degree of Bachelor of Science By Supervised by College of Communication Engineering Nanjing Institute of Technology June 2011 MO Yue qi Instructor SHA Ai jun THE DESIGN AND REALIZATION OF ELECTRIC PASSWORD LOCK BASED ON MICROCONTROLLER 南京工程学院毕业毕业设计说明书 论文 摘摘要要 基于单片机的电子锁由于其保密性好 灵活性好收到了广大用户的青睐 在 日常生活中得到广泛的应用 本次毕业设计以单片机 AT89c51 为核心 设计一个电子密码锁系统 系统 分为硬件和软件两个部分 硬件部分主要包括键盘输入模块 显示电路模块 密码存储模块 单片机电路模块等 软件部分主要包括如下模块 系统的主流 程 键盘的扫描 LCD 的读写 密码存储器的读写比较等 测试结果表明 该系统能实现密码锁应用所需的密码设置 修改 识别等功 能 事实上 文中设计的电路和控制方法适用于一般的单片机系统 硬件和软 件也有一定的实用性和通用性 关键字 单片机 AT89c51 密码锁 模块 南京工程学院毕业毕业设计说明书 论文 Abstract The electronic password locks is widely used in daily life because of its high secrecy good flexibility The paper takes AT89c51 as a core designs an electronic password to lock the system The system divides into the hardware and the software two parts The hardware part mainly includes the keyboard entry module the display circuit module the password memory module the monolithic integrated circuit module and so on The software part mainly includes main module keyboard scanning module LCD read write module password memory read write module and so on The test result indicated that this system can realize the basic functions such as password establishment revision recognition In fact the electric circuit design and control methods involved in the article are suitable for the common monolithic integrated circuit system So the hardware and the software also have certain usability and the versatility Key words Microcontroller AT89C51 Password lock module 南京工程学院毕业毕业设计说明书 论文 目录 第一章 绪论 1 1 1 论文的背景和意义 1 1 2 论文研究的内容 1 1 3 毕业设计的方案 2 1 4 论文的章节安排 2 第二章 AT89C51 芯片介绍 3 2 1 主要特性 3 2 2 AT89C51 的功能描述 3 2 3 工作模式 6 第三章 硬件电路设计 7 3 1 液晶显示模块 7 3 2 键盘输入模块 8 3 3 AT24C02 密码存储 部分 11 3 4 电源部分 14 3 5 晶体振荡电路 15 3 6 蜂鸣器和继电器部分 16 3 7 电路原理图及说明 17 3 8 印刷电路版设计方法 18 第四章 软件设计及实现 20 4 1 软件环境介绍 20 4 1 1 Keil 工程文件的建立 设置与目标文件的获得 21 4 1 2 源文件的建立 21 4 1 3 建立工程文件 21 南京工程学院毕业毕业设计说明书 论文 4 1 4 工程的详细设置 22 4 1 5 编译与连接 22 4 2 部分程序的介绍 24 4 2 1 系统的主流程 24 4 2 2 键盘的扫描 27 4 2 31602LCD 的读写 29 4 2 4 AT24C02 的读写 32 4 2 5 其他 37 第五章 系统调试 38 5 1 硬件调试 38 5 2 软件调试 38 5 3 综合调试 39 第六章 总结与展望 39 致 谢 40 参考文献 41 附 录 A 43 图 A1 总原理图 43 图 A2 PCB 制版图 44 图 A3 实物图 45 附录 B 46 源程序 46 南京工程学院毕业毕业设计说明书 论文 第 1 页 第一章 绪论 1 1 论文的背景和意义 在日常的生活和工作中 住宅与部门的安全防范 单位的文件档案 财务 报表以及一些个人资料的保存多以加锁的办法来解决 若使用传统的机械式钥 匙开锁 人们常需携带多把钥匙 使用极不方便 且钥匙丢失后安全性即大 打折扣 随着科学技术的不断发展 人们对日常生活中的安全保险器件的要求 越来越高 为满足人们对锁的使用要求 增加其安全性 用密码代替钥匙的密 码锁应运而生 密码锁具有安全性高 成本低 功耗低 易操作等优点 随着人们对安全的重视和科技的发展 许多电子智能锁 指纹识别 IC 卡辨认 已在国内外相继面世 但是这些产品的特点是针对特定的指纹和有效 卡 只能适用于保密要求的箱 柜 门等 而且指纹识识别器若在公共场所使 用存在容易机械损坏 IC 卡还存在容易丢失 损坏等特点 加上其成本较高 一定程度上限制了这类产品的普及和推广 鉴于目前的技术水平与市场的接收 程度 电子密码锁是这类电子防盗产品的主流 1 1 2 论文研究的内容 本次设计使用 ATMEL 公司的 AT89C51 实现一基于单片机的智能电子密码锁 的设计 其主要具有如下功能 1 设置 6 位密码 密码通过键盘输入 若密码正确 则将锁打开 2 密码可以由用户自己修改设定 只支持6 位密码 初始密码输入成功 后才能修改密码 修改密码之前必须再次输入密码 在输入新密码时候需要二 次确认 以防止误操作 3 报警 锁定键盘 功能 密码输入错误 1602LCD 会出现错误提示 若密 码输入错误次数超过 3 次 蜂鸣器报警并且锁定键盘 4 AT24C02 保存密码 支持复位保存 掉电保存功能 南京工程学院毕业毕业设计说明书 论文 第 2 页 1 3 毕业设计的方案 本次设计 系统硬件结构框图如图 1 1 图 1 1 系统硬件结构框图 密码锁设计的关键问题是实现密码的输入 清除 更改 开锁等功能 1 密码输入功能 插上电源后 LCD 提示输入密码 输入密码时在 1602LCD 上显示 每输入一个数字 LCD 上向右移一格 同时 加一个 值到输入 6 个 为此 若一次性输入大于 6 个密码 则只保留前 6 位密码 按 确定 生效 若按取消键 锁关闭 所有输入清除 2 密码更改功能 将输入的值作为新的密码 初始密码是 6 个 0 3 当密码输入成功后 或者密码修改成功后 LCD 上有提示成功字符 同时蜂鸣器 响两声作为提示 1 4 论文的章节安排 在第一章绪论中介绍了下此次毕业设计的背景 意义 内容和系统的设计方 案 第二章详细介绍了 AT89C51 芯片 第三章则介绍了各个模块的工作原理等 第四章是各 个模块软件编写的相关介绍 第五章则介绍了软硬件的调试 最 后给出结论并对课题未来的发展做出了展望 键盘输入模块 复位电路 密码存储模块 AT89C51 显示模块 报警电路 开锁电路 南京工程学院毕业毕业设计说明书 论文 第 3 页 第二章AT89C51 芯片介绍 2 1 主要特性 在本设计中 是以 AT89C51 单片机为核心的 AT89C51 是由 ATMEL 公 司推出的一种小型单片机 95 年出现在中国市场 其主要特点为采用Flash 存贮器技术 降低了制造成本 其软件 硬件与MCS 51 完全兼容 且采用 ATMEL 高密度非易失存储器制造技术制造 将多功能 8 位 CPU 和闪烁存储 器组合在单个芯片中 可以很快被中国广大用户接受 其程序的可 擦写特性 使得开发与试验比较容易 为很多嵌入式控制系统提供了一种灵活性高且价廉 的方案 2 89C51 有很宽的工作电源电压 可为2 7 6V 当工作在 3V 时 电流相当 于 6V 工作时的 1 4 89C51 工作于 12Hz 时 动态电流为 5 5mA 空闲态为 1mA 掉电态仅为 20nA 这样小的功耗很适合于电池供电的小型控制系统 AT89C51 具有以下几个特点 2 AT89C51 与 MCS 51 系列的单片机在指令系统和引脚上完全兼容 片内有 4k 字节在线可重复编程快擦写程序存储器 全静态工作 工作范围 0Hz 24MHz 128 8 位内部 RAM 32 位双向输入输出线 两个十六位定时器 计数器 五个中断源 两级中断优先级 一个全双工的异步串行口 间歇和掉电两种工作方式 2 2 AT89C51 的功能描述 AT89C51 是一种低损耗 高性能 CMOS 八位微处理器 片内有 4k 字节 的在线可重复编程 快速擦除快速写入程序的存储器 能重复写入 擦除 1000 次 数据保存时间为十年 它与MCS 51 系列单片机在指令系统和引脚上完全 兼容 不仅可完全代替 MCS 51 系列单片机 而且能使系统具有许多MCS 51 系列产品没有的功能 南京工程学院毕业毕业设计说明书 论文 第 4 页 AT89C51 可构成真正的单片机最小应用系统 缩小系统体积 增加系统的 可靠性 降低系统的成本 只要程序长度小于4K 四个 I O 口全部提供给用 户 可用 5V 电压编程 而且擦写时间仅需 10 毫秒 仅为 8751 87C51 的擦除 时间的百分之一 与 8751 87C51 的 12V 电压擦写相比 不易损坏器件 没有两 种电源的要求 改写时不拔下芯片 适合许多嵌入式控制领域 工作电压范围 宽 2 7V 6V 全静态工作 工作频率宽在0Hz 24MHz 之间 比 8751 87C51 等 51 系列的 6MHz 12MHz 更具有灵活性 系统能快能慢 AT89C51 芯片提供三级程序存储器加密 提供了方便灵活而可靠的硬加密手段 能完全保证程序或系统不被仿制 P0 口是三态双向口 通称数据总线口 因为 只有该口能直接用于对外部存储器的读 写操作 3 AT89C51 引脚功能 图 2 1 芯片引脚 AT89C51 单片机为 40 引脚芯片 如上图 2 1 地址总线和数据总线 P0 P1 P2 P3 共四个八位口 P0 口是三态双向口 通称数据总线口 因为只有该口能直接用于对外部 存储器的读 写操作 P0 口也用以输出外部存储器的低8 位地址 由于是分时 输出 故应在外部加锁存器将此地址数据锁存 地址锁存信号用ALE P1 口是专门供用户使用的 I O 口 是准双向口 P2 口是从系统扩展时作高 8 位地址线用 不扩展外部存储器时 P2 口也可以作为用户 I O 口线使用 P2 口也是准双向口 南京工程学院毕业毕业设计说明书 论文 第 5 页 P3 口是双功能口 该口的每一位均可独立地定义为第一I O 功能或第 二 I O 功能 作为第一功能使用时操作同P1 口 P3 口的第二功能如 表 2 1 所 示 3 表 2 1 P3 口的第二功能 控制口线 RESET 复位控制 PSEN 片外选取控制 ALE PROG 地址锁 存控制 PSEN 选通信号 EA VPP 片外存储器选择 XTAL1 XTAL2 晶震 RST 当振荡器复位器件时 要保持RST 脚两个机器周期的高电平时间 ALE PROG 当访问外部存储器时 地址锁存允许的输出电平用于锁存地 址的地位字节 在 FLASH 编程期间 此引脚用于输入编程脉冲 在平时 ALE 端以不变的频率周期输出正脉冲信号 此频率为振荡器频率的1 6 因 此它可用作对外部输出的脉冲或用于定时目的 然而要注意的是 每当用作外 部数据存储器时 将跳过一个ALE 脉冲 如想禁止 ALE 的输出可在 SFR8EH 地址上置 0 此时 ALE 只有在执行 MOVX MOVC 指令是 ALE 才起作用 另外 该引脚被略微拉高 如果微处理器在外部执行状态ALE 禁 止 置位无效 PSEN 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个 机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将不出现 EA VPP 当 EA 保持低电平时 则在此期间外部程序存储器 0000H FFFFH 不管是否有内部程序存储器 注意加密方式1 时 EA 将内部锁定 为 RESET 当 EA 端保持高电平时 此间内部程序存储器 在FLASH 编程 南京工程学院毕业毕业设计说明书 论文 第 6 页 期间 此引脚也用于施加 12V 编程电源 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 2 3 工作模式 工作模式 AT89C51 有间歇和掉电两种工作模式 间歇模式是由软件来设 置的 当外围器件仍然处于工作状态时 CPU 可根据工作情况适时地进入睡眠 状态 内部 RAM 和所有特殊的寄存器值将保持不变 这种状态可被任何一个 中断所终止或通过硬件复位 掉电模式是 VCC 电压低于电源下限 振荡器停止振动 CPU 停止执行指令 该芯片内 RAM 和特殊功能寄存器值保持不变 直到掉电模式被终止 只有 VCC 电压恢复到正常工作范围而且在振荡器稳定振荡后 通过硬件复位掉电模式 可被终止 南京工程学院毕业毕业设计说明书 论文 第 7 页 第三章 硬件电路设计 本次毕业设计硬件模块包括 键盘输入模块 液晶显示模块 AT24C02存 储模块 电源 模块以及其他部分 电路框图如第一章图1 1所示 其中主要的 模块有LCD显示模块 键盘输入模块 AT24C02存储模块 和蜂鸣器与继电器模 块 下面就这些模块做详细的介绍 3 1 液晶显示模块 本次设计显示部分是采用 1602 电路图如 图3 1所示 图 3 1 液晶显示原理图 1602的引脚功能 第1脚 为地电源 第2脚 VCC接5V正电源 第3脚 为液晶显示器对比度调整端 接正电源时对比度最弱 接地电源时 对比度最高 对比度过高时会产生 鬼影 使用时可以通过一个 20K的电位 器调整对比度 第4脚 RS为寄存器选择 高电平时选择数据寄存器 低电平时选择指令寄 存器 第5脚 RW为读写信号线 高电平时进行读操作 低电平时进行写操作 当 RS和RW共同为低电平时可以写入指令或者显示地址 当RS为低电平 RW为高电 平时可以读忙信号 当 RS为高电平 RW为低电平时可以写入数据 第6脚 E端为使能端 E端由高电平跳变成低电平时 液晶模块执行命令 南京工程学院毕业毕业设计说明书 论文 第 8 页 第7 14脚 D0 D7为8位双向数据线 第15 16脚 空脚 3 2 键盘输入模块 单片机及键盘电路原理图 如图3 2所示 图 3 2 单片机及键盘电路原理图 键盘是一组按键的集合 它是最常用的单片机输入设备 键盘可以分为两类 独 立连接式和矩阵式 4 独立连接式键盘是最简单的键盘电路 每个按键独立地接入一根数据线 平 时所有的数据输入线都被连接成高电平 当任何一个键按下时 与之相连的数 据输入线将被拉成低电平 要判断是否有键按下 只要用位处理指令即可 这 种键盘的优点是结构简单 使用方便 但随着键数的增多占用I O口线也增加 矩阵式键盘 也即通常所讲的行列式键盘 本次设计所用的键盘就是矩阵 式键盘 它 由行线和列线组成 按键位于行 列的交叉点上 行列分别连接 到按键开关的两端 行线通过上拉电阻接到高电平 无按键按动作时列线处于 高电平状态 有按键按下时 交点的行线和列线相通 列线电平状态将由与 此列线相连的行线电平决定 行线电平如果低 则列 线电平为低 行线电平如 果为高 则列 线电平也为高 这是识别矩阵式键盘按键是否被按下的关键所在 南京工程学院毕业毕业设计说明书 论文 第 9 页 由于矩阵键盘中行 列线为多键公用 各按键均影响该键所在的行和列的电平 所以必须将行 列线信号配合起来作适当的处理 才能确定闭合键所在的位置 矩阵式键盘节省了好多的 I O口 适用于按键数量比较多的场合 本设计的 4 4键盘即采用矩阵式键盘 如图 3 3所示 图3 3 矩阵式键盘 通过行列键盘扫描的方法可获取键盘输入的键值 从而得知按下的哪个键 具体过程如下 1 查询是否有键按下 单片机向行扫描口输出全为 0 的扫描码 然后从列检测口检测信号 只要有一列信号不为 1 则表示有键按下 且不 为 1 的列即对应为按下的按键所在的列 2 查询按下按键所在的行 列位置 前面已经取得了按下键的列 接下来要确定按键所在的行 这需要进行逐行扫描 单片机首先使第1行为 0 其余各行为 1 接着进行行列检测 若为全 1 表示不在第 1行 否则即在第 1行 然后使第 2行为全 0 其余各行为 1 再进行列检测 若为全 1 表示不在第 2行 这样逐行检测 直到找到按键所在的行 当各行 都扫描以后仍没有找到 则放弃扫描 认为是键的错误动作 3 对得到的行号和列号译码 得到键值 对于4 4的行列式键盘 因 为按键的位置由行号和列号唯一确定 且行列各4位 所以用一个字节 8位 来对键值编码是很合适的 本设计中 将字节的高4位 D7 D6 D5 D4 表 示列号 4 3 2 1 低4位 D3 D2 D1 D0 表示行号 4 3 2 1 比如11H 00010001 表示第 1行第1列 21H 00100001 表示第 1行第2列 在扫描键盘过程中 应该注意以下问题 1 当按下或松开按键时 按键会产生机械抖动 这种抖动经常发生在 按下或松开瞬间 一般持续几到十几秒 抖动时间随按键的结构不同而不同 在扫描键盘过程中 必须想办法消除按键 否则会引起错误 南京工程学院毕业毕业设计说明书 论文 第 10 页 消除按键抖动可以用硬件电路来实现 例如 利用R S触发器来锁定按键 状态 以消除抖动的影响 较为简单的方法就是用软件延时方法来消除按键的 抖动 一旦发现有键按下 就延时 20ms以后再测按键的状态 这样就避开按键 发生抖动的那一段时间 使 CPU能可靠地读按键状态 在编制键盘扫描程序时 只要发现按键状态有变化 即无论是按下还是松开 程序都延时20ms以后再 进行其他操作 2 在键盘扫描中 应防止按一次键而有多个对应键值输入的情况 这 种情况的发生是由于键扫描速度和键处理速度较快 当某一个键按下还未松开 时键扫描程序和键处理程序已执行了多遍 这样 由于程序执行和按键动作不 同步而造成按一个键有多个键值输入的错误状态 为避免发生这种情况 必须 保证按一次键 CPU只对该键做一次处理 为此 在键扫描程序中不仅要检测是 否有键按下 在有键按下的情况 做一次处理 而且在键处理完毕后 还应检 测按下的键否松开 只有当按下的键松开以后 程序才往下执行 这样每按一 个键 只做一个键处理 使二者达到同步 消除按一次键有多个键值输入的错 误情况 根据需要 本设计的 4 4键盘设定 10个数字键 0 9 和3个功能键 图 3 2中第4列前三个暂时不用 可以作以后扩充所用 因此根据上面提到的4 4 键盘的键值编码方法 各按键及其编码对应关系如表3 1 按键行号列号键值编码 111 11H 00010001 212 21H 00100001 313 41H 01000001 421 12H 00010010 522 22H 00100010 623 42H 01000010 731 14H 00010100 832 24H 00100100 933 44H 01000100 取消 4118H 00011000 04228H 00101000 确认 43 48H 01001000 D 修改 44 88H 10001000 南京工程学院毕业毕业设计说明书 论文 第 11 页 表3 1 按键与编码对应关系表 3 3 AT24C02 密码存储部分 密码存储部分如图 3 4 所示 图 3 4 密码存储电路图 为了保存用户设置的密码 本系统使用 AT24C02 用来保存用户设置的密码 它的 SCL SDA 端分别接单片机的 T0 T1 端 用于与单片机之间读写操作的数 据传输 WP 接低电平表示单片机可以对器件进行正常的读 写操作 A0 A1 A2 是器件地址输入端 都接低电平表示只有一个AT24C02 被器件寻址 该电路要注意的是 SCL SDA 必须加上一上接电阻 阻值为4 7K 用户设置的 密码存放在 AT24C02 中 当需要更改或读取用户密码时 只需对AT24C02 里 的数据更改或读取 AT24C02 是美国 ATMEL 公司的低功耗 CMOS 串行 EEPROM 它是内含 256 8 位存储空间 具有工作电压宽 2 5 5 5V 擦写次数多 大于 10000 次 写入速度快 小于 10ms 等特点 1 特性 与400KHz I2C 总线兼容 2 5 到5 5 伏工作电压范围 低功耗CMOS 技术 写保护功能当 WP 为高电平时进入写保护状态 页写缓冲器 自定时擦写周期 1 000 编程 擦除周期 南京工程学院毕业毕业设计说明书 论文 第 12 页 可保存数据 100 年 8 脚DIP SOIC 或TSSOP 封装 温度范围商业级工业级和汽车级 2 管脚配置 如图 3 5 所示 图 3 5 AT24C02 管脚配置 3 管脚描述 如图 3 6 所示 图 3 6 AT24C02 管脚描述 4 极限参数 工作温度 工业级 55 C 125 C 商业级 0 C 75 C 储存温度 65 C 150 C 各管脚承受电压 2 0V 2 0V Vcc 管脚承受电压 2 0V 7 0V 封装功率损耗 Ta 25 C 1 0W 焊接温度 10 秒 300 C 输出短路电流 100mA 5 可靠性参数 如图 3 7 南京工程学院毕业毕业设计说明书 论文 第 13 页 图 3 7 AT24C02 可靠性参数 6 功能描述 AT24C02 支持 I2C 总线数据传送协议 I2C 总线协议规定 任何将数据传 送到总线的器件作为发送器 任何从总线接收数据的器件为接收器 数据传送 是由产生串行时钟和所有起始停止信号的主器件控制的 主器件和从器件都可 以作为发送器或接收器 但由主器件控制传送数据发送或接收的模式 通过器 件地址输入端 A0 A1 和 A2 可以实现将最多 8 个 24WC01 和 24WC02 器件 4 个 242C04 器件 2 个 24WC08 器件和 1 个 24WC16 器件连接到总线上 7 管脚描述 SCL 串行时钟 AT24C02 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟 是一个输入管脚 SDA 串行数据 地址 AT24C02 双向串行数据 地址管脚用于器件所有数据的发送或接收 SDA 是一个开漏输出管脚 A0 A1 A2 器件地址输入端 这些输入脚用于多个器件级联时设置器件地址 当这些脚悬空时默认值为0 24WC01 除外 当使用 24WC01 或 24WC02 时最大可级联 8 个器件 如果只有 一个 24WC02 被总线寻址 这三个地址输入脚A0 A1 A2 可悬空或连接到 Vss 如果只有一个 24WC01 被总线寻址 这三个地址输入脚A0 A1 A2 必须 连接到 Vss 当使用 24WC04 时 最多可连接 4 个器件该器件 仅使用 A1 A2 地址管脚 A0 管脚未用可以连接到 Vss 或悬空 如果只有一个 24WC04 被总 线寻址 A1 和 A2 地址管脚可悬空或连接到 Vss WP 写保护 如果 WP 管脚连接到 Vcc 所有的内容都被写保护只能读 当WP 管脚 连接到 Vss 或悬空 允许器件进行正常的读 写操作 3 4 电源部分 该电源部分电路 可以 通过USB线连接到电脑上 输出 5V电压供单片机工 作 接通电源时 LED灯亮 用以提示用户 这时打开开关就可以进行操作 其电路图如图3 8 南京工程学院毕业毕业设计说明书 论文 第 14 页 图 3 8 电源部分原理图 3 5 晶体振荡电路 AT89C52 中有一个用于构成内部振荡器的高增益反相放大器 引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端 这个放大器与作为反馈元件的片 外石英晶体或陶瓷谐振器一起构成自激振荡器 外接石英晶体 或陶瓷谐振器 及电容 Cl C2 接在放大器的反馈回路中 构成并联振荡电路 对外接电容 Cl C2 虽然没有十分严格的要求 但电容容 量的大小会轻微影响振荡频率的高低 振荡器工作的稳定性 起振的难易程序 及温度稳定性 如果使用石英晶体 我们推荐电容使用30pF 10pF 而如使 用陶瓷谐振器建议选择 40pF 10F 用户也可以采用外部时钟 采用外部时钟的电路 这种情况下 外部时钟脉 冲接到XTAL1端 即内部时钟发生器的输入端 XTAL2则悬空 由于外部时钟信号是通过一个 2分频触发器后作为内部时钟信号的 所以 对外部时钟信号的占空比没有特殊要求 但最小高电平持续时间和最大的低电 平持续时间应符合产品技术条件的要求 具体电路如图3 9所示 图 3 9 内部振荡电路 南京工程学院毕业毕业设计说明书 论文 第 15 页 3 6 蜂鸣器和继电器 部分 密码正确时驱动继电器开锁 LED 灯提示 蜂鸣器响 电路图如图 3 10 所示 图 3 10 蜂鸣器与继电器电路原理图 1 继电器 1 概述 继电器是一种电子控制器件 它具有控制系统和被控制系统 通常应用于 自动控制电路中 它实际上是用较小的电流去控制较大电流的一种 自动开 关 故在电路中起着自动调节 安全保护 转换电路等作用 电磁式继电器一 般由铁芯 线圈 衔铁 触点簧片等组成的 只要在线圈两端加上一定的电压 线圈中就会流过一定的电流 从而产生电磁效应 衔铁就会在电磁力吸引的作 用下克服返回弹簧的拉力吸向铁芯 从而带动衔铁的动触点与静触点 常开触 点 吸合 当线圈断电后 电磁的吸力也随之消失 衔铁就会在弹簧的反作用 力返回原来的位置 使动触点与原来的静触点 常闭触点 吸合 这样吸合 释放 从而达到了在电路中的导通 切断的目的 对于继电器的 常开 常 闭 触点 可以这样来区分 继电器线圈未通电时处于断开状态的静触点 称 为 常开触点 处于接通状态的静触点称为 常闭触点 2 继电器引脚图 如图 3 11 所示 图 3 11 继电器引脚图 南京工程学院毕业毕业设计说明书 论文 第 16 页 2 蜂鸣器 蜂鸣器是一种一体化结构的电子讯响器 采用直流电压 供电 广泛应用于 计算机 打印机 复印机 报警器 电子玩具 汽车电子设备 电话机 定 时器等电子产品中作发声 器件 在单片机应用的设计上 很多方案都会用到蜂 鸣器 大部分都是使用蜂鸣器来做提示或报警 比如按键按下 开始工作 工 作结束或是故障等等 这里对单片机在蜂鸣器驱动上的应用作一下描述 本设计使用的是 自激蜂鸣器 自激蜂鸣器是 直流电压 驱动的 不需要利用 交流信号进行驱动 只需对驱动口输出驱动电平并通过三极管放大驱动电流 就能使蜂鸣器发出声音 3 7 电路原理图及说明 系统的电路原理图分为 4 部分 一是单片机及键盘电路原理图 二是密 码存储器 电路原理图 三是 LCD 液晶显示 电路原理图 四是蜂鸣器和继电器部 分 U1 为以 LCM 1602 U2 是 AT24C02 存储芯片 U3 为单片机芯片 AT89C52 它是整个电路的核心部件联系着输入和输出 在单片机中 P1 口用于键盘操作 P1 0 P1 3 与行线相连 P1 4 P1 7 与 列线相连 P0 口和 P2 5 P2 7 口用做 LCD 液晶显示 P2 0 和 P2 1 用作指示灯和蜂鸣器与单片机相连 P3 4 和 P3 5 口用做 AT24C02 的输入输出 总原理图见附录图 A PCB 制版图见附录图 B 实物图见附录图 C 因临近毕业 在校外制板所花 时间较长的原因 采 用面包板自己焊接线路来代替原来的PCB 版 3 8 印刷电路版设计 方法 Protel 99 SE 是原 Protel Technology 公司 ALTIUM LIMITED 开发的基 于 Windows 环境的电路板设计软件 它是目前国内最流行的通用EDA 软件 南京工程学院毕业毕业设计说明书 论文 第 17 页 通过将电路原理图设计 PCB 板图设计 电路仿真和 PLD 设计等多个实用工具 软件组合后构成 EDA 工作平台 它是第一个将 EDA 软件设计成基于 Windows 环境的普及型产品 该软件功能强大 人机交互界面友好 易学易用 现在仍 然是大中专院校电类专业必修课程 同时也是业界人士首选的电路板设计工具 7 一般而言 设计电路板最基本的过程可以分为三大步骤 1 电路原理图的设计 电路原理图的设计主要是用Protel99 的原理图设计系统来绘制一张电路 原理图 在这一过程中 要充分利用Protel99 所提供的各种原理图绘图工具 各种编辑功能 来实现我们的目的 即得到一张正确的 精美的电路原理图 原理图的设计可按照下面的过程来完成 1 设置图纸大小 首先要构思好零件图 设计好图纸大小 图纸大小 是根据电路图的规模和复杂程度而定的 设置合适的图纸大小是设计好原理图 的第一步 2 设置 Protel 99 schematic 设计环境 设置 Protel 99 schematic 设计环境包括设置格点大小和类型 光标类型等等 大多数参数 也可以使用系统默认值 3 旋转零件 用户根据电路图的需要 将零件从零件库里放置到图纸 上 并对放置零件的序号 零件的封装等进行定义和设定工作 4 原理图布线 利用 Protel 99 schematic 提供的各种工具 将图纸 上的元件用具有电气意义的导线 符号连接起来 构成一个完整的原理图 5 调整线路 将初步绘好的电路图作进一步的调整和修改 使得原理 图更加美观 6 报表输出 通过 Protel 99 schematic 提供的各种报表工具生成各 种报表其中最重要的报表是网络表 通过网络表为后续的电路板设计做准备 7 文件保存及打印输出 这是最后的步骤 2 产生网络表 网络表是电路原理图 SCH 和印制电路板设计 PCB 之间的一座桥梁 网络 表可以从电路原理图中获得 也可以从印制电路板中提取出来 8 3 印制电路板的设计 南京工程学院毕业毕业设计说明书 论文 第 18 页 1 规划电路板 在绘制印制电路板之前 用户要对电路板有一个初步的 规划 比如说电路板采用多大的物理尺寸 采用几层电路板 单面板还是双面 板 各个元器件采用何种封装形式及安装位置等等 这是一项极其重要的工作 是确定电路板设计的框架 2 设置参数 参数的设置是电路板设计的非常重要的步骤 设置参数主 要是设置元器件的布置参数 层参数 布线参数等等 一般说来 有些参数用 其默认值即可 有些参数在使用过PROTEL99SE 以后 即第一次设置后 几乎 无需更改 3 装入网络表及元器件封装 网络表是电路板自动布线的灵魂 也是电 路原理图设计系统与印制电路板设计系统的接口 因此这一步是非常重要的环 节 只有将网络表装入之后 才可能完成对电路板的自动布线 元器件的封 装就是元器件的外形 对于每个装入的元器件必须有对应的外形封装 才能 保证电路板布线的顺利进行 4 元器件的布局 元器件的布局可以让PROTEL99SE 自动布局 规划好 电路板并装入网络表后 用户可以让程序自动装入元器件 并自动将元器件布 置在电路板边框内 PROTEL99SE 也可以让用户手工布局 元器件的布局合理 才能进行下一步的布线工作 5 自动布线 PROTEL99SE 采用世界最先进的无网格 基于形状的对角 线自动布线技术 只要将有关的参数设置得当 元器件的布局合理 自动布线 的成功率是很高的 6 手工调整 自动布线结束后 往往存在令人不满意的地方 这时就需 要进行手工调整 7 文件保存及输出 完成电路板的布线后 保存完成的电路线路图文件 然后利用各种图形输出设备 如打印机或绘图仪输出电路板的布线图 印制电路板的设计主要是针对Protel99 的另外一个重要的部分 PCB 而言 的 在这个过程中 我们借助Protel99 提供的强大功能实现电路板的版面设 计 南京工程学院毕业毕业设计说明书 论文 第 19 页 第四章 软件设计及实现 本次软件设计主要牵涉到以下部分 一 系统的主流程 二 键盘的扫 描 三 LCD 的读写 四 24c02 的读写 下面首先就软件的运行环境做介绍 4 1 软件环境介绍 本次毕业设计软件部分采用在KEIL 编译器环境下进行编程 KEIL C 51 软件是众多单片机开发的优秀软件之一 它集编辑 编译 仿真于一体 支持 汇编 PLM C 等多种程序设计语言 9 4 4 1 1 1 1 K Ke ei il l 工工程程文文件件的的建建立立 设设置置与与目目标标文文件件的的获获得得 首先启动 Keil 软件的集成开发环境 UVison 启动后 程序窗口的左边有 一个工程管理窗口 该窗口有3 个标签 分别是 Files Regs 和 Books 这三 个标签页分别显示当前项目的文件结构 CPU 的寄存器及部份特殊功能寄存器 的值 调试时才出现 和所选 CPU 的附加说明文件 如果是第一次启动Keil 那 么这三个标签页全是空的 4 4 1 1 2 2 源源文文件件的的建建立立 使用菜单 File New 或者点击工具栏的新建文件按钮 即可在项目窗口 的右侧打开一个新的文本编缉窗口 在该窗口中输入源程序 保存文件 注息必 须加上扩展名 汇编语言源程序一般用 asm 或 a51 为扩展名 需要说明的是 源文件就是一般的文本文件 不一定使用Keil 软件编写 可以使用任意文本编 缉器编写 而且 Keil 的编缉器对汉字的支持不好 建议使用U1traEdit 之 类的编缉软件进行源程序的输入 南京工程学院毕业毕业设计说明书 论文 第 20 页 4 4 1 1 3 3 建建立立工工程程文文件件 在项目开发中 并不是仅有一个源程序就行了 还要为这个项目选择 CPU Keil 支持数百种 CPU 而这些 CPU 的特性并不完全相同 确定编译 汇编 连接的参数 指定调试的方式 有一些项目还会有多个文件组成等 为 管理和使用方便 Keil 使用工程 Project 这一概念 将这些参数设置和所需 的所有文件都加在一个工程中 只能对工程而不能对单一的源程序进行编译 汇编 和连接等操作 点击 Project New Project 菜单 出现一个对话框 要求给将要建 立的工程起一个名字 可以在编缉框中输入一个名字 设为 examl 不需要扩 展名 点击 保存 按钮 出现第二个对话框 这个对话框要求选择目标 CPU 即你所用芯片的型号 Keil 支持的 CPU 很多 我们选择 Atmel 公司的 89C51 芯片 点击 ATMEL 前 ICI 的 号 展开该层 点击其中的89C51 然后再点击 确定 按钮 回到主界面 此时 在工程窗口的文件页中 出现 了 Target1 前面有 号 点击 号展开 可以看到下一层的 Source Groupl 这时的工程还是一个空的工程 里面什么文件也没有 需 要手动把刚才编写好的源程序加入 点击 Source Groupl 使其反白显示 然后 点击鼠标右键 出现一个下拉菜单 选中其中的 Add file toGroup Source Groupl 在弹出的窗口中选择 已经写好的 exam l c 文件 将文件加入项目 注意 在文件加入项目后 该对话框并不消失 等待继续加 入其它文件 如果文件添加完毕只要 点击 Close 即可返回主界面 返回后 点击 SourceGroup 1 前的加号 会发现 exam l c 文件己在其中 双击文 件名 即打开该源程序 4 4 1 1 4 4 工工程程的的详详细细设设置置 工程建立好以后 还要对工程进行进一步的设置 以满足要求 首先点击左边 Project 窗口的 Target 1 然后使用菜单 Project Option for target targetl 即出现对工程设置的对话框 这个对话框大 南京工程学院毕业毕业设计说明书 论文 第 21 页 部份设置项取默认值就行了 我们主要设置对话框中的 输出和调试 页面 输出页面中在产生 HEX 文件 前面的方框中打勾 在调试页面中选择使用 use 在旁边的 下拉菜单中选 择 proteus debug 设置完成后按确认返回主界面 工程文件建立 设置完毕 4 4 1 1 5 5 编编译译与与连连接接 在设置好工程后 即可进行编译 连接 选择菜单Project Build target 对当前工程进行连接 如果当前文件己修改 软件会先对该文件进行 编译 然后再连接以产生目标代码 如果选择 Rebuild All target files 将会对当前工程中的所有文件重新进行编译然后再连接 确保最终生产的目标 代码是最新的 而 Translate 项则仅对该文件进行编译 不进行连接 以上操作也可以通过工具栏按钮直接进行 编译过程中的信息将出现在输 出窗口中的 Build 页中 如果源程序中有语法错误 会有错误报告出现 双击 该行 可以定位到出错的位置 对源程序反复修改之后 最终会得到如图4 1 所示的结果 提示获得了名为examl hex 的文件 该文件即可被编程器读入 并写到芯片中 同时还产生了一些其它相关的文件 可被用于Keil 的仿真 与调试 这时可以进入下一步调试的工作 编译连接程序界面如图 4 2 所示 图 4 1 正确编译 连接并产生 HEX 文件之后的结果 南京工程学院毕业毕业设计说明书 论文 第 22 页 图 4 2 编译连接程序界面 4 2 部分程序的介绍 4 4 2 2 1 1 系系统统的的主主流流程程 程序流程图如图 4 3 所示 南京工程学院毕业毕业设计说明书 论文 第 23 页 图 4 3 程序流程图 主程序如下 在此需要说明的是 键盘上除了0 9 这 10 个按键 还有 A B C D 六个键 键表示确认输入 键表示取消当前操作 D 键 表示修改密码 其它键无定义 主程序 void main void unsigned char KEY NUM unsigned char i j P1 0 xFF TMOD 0 x11 TL0 0 xB0 TH0 0 x3C 南京工程学院毕业毕业设计说明书 论文 第 24 页 EA 1 ET0 1 TR0 0 Delay400Ms 启动等待 等 LCM 讲入工作状态 lcd init LCD 初始化 write 1602com yi 日历显示固定符号从第 1 行第 0 个位置之后开始 for i 0 i 16 i write 1602dat name i 向液晶屏写日历显示的固定符号部分 write 1602com er 时间显示固定符号写入位置 从第2 个位置后开 始 for i 0 i 16 i write 1602dat start line i 写显示时间固定符号 两个冒号 write 1602com er 9 设置光标位置 write 1602com 0 x0f 设置光标为闪烁 Delay5Ms 延时片刻 可不要 DisplayListChar 0 0 name DisplayListChar 0 1 start line N 0 初始化数据输入位数 while 1 if key disable 1 Alam KeyUnable else ALAM 1 关报警 KEY keynum if KEY 0 南京工程学院毕业毕业设计说明书 论文 第 25 页 if key disable 1 second 0 else NUM coding KEY switch NUM case A break case B break case C break case D ResetPassword break 重新设置密码 case Cancel break 取消当前输入 case Ensure break 确认键 default DisplayListChar 0 1 Input write 1602com er for i 0 i 16 i write 1602dat Input i operation 0 if N 6 当输入的密码少于 6 位时 接受输入并 保 存 大于 6 位时则无效 OneAlam 按键提示音 DisplayOneChar 6 N 1 for j 0 j N j write 1602com er 6 j write 1602dat InputData N NUM N else N 6 break 南京工程学院毕业毕业设计说明书 论文 第 26 页 4 4 2 2 2 2 键键盘盘的的扫扫描描 本次的毕业设计的键盘原理采用的是行列式扫描方法 如第三章图 3 3 单片机中0表示导通 1则表示不导通 首先使第 1行为 0 其余各行为 1 接着进行行列检测 若为全 1 表示不在第 1行 否则即在第 1行 然后使第 2行为全 0 其余各行为 1 再进行列检测 若为全 1 表示 不在第2行 这样逐行检测 直到找到按键所在的行 以此类推 10 当按下 或松开按键时 按键会产生机械抖动 可用延时方法来消除按键的抖动 一旦 发现有键按下 就延时 20ms以后再测按键的状态 这样就避开按键发生抖动的 那一段时间 使 CPU能可靠地读按键状态 在编制键盘扫描程序时 只要发现按 键状态有变化 即无论是按下还是松开 程序都延时10ms以后再进行其他操 作 Delay5Ms 是延时5ms的函数 相关程序如下 将按键值编码为数值 unsigned char coding unsigned char m unsigned char k switch m case 0 x18 k 1 break c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超声副高考试试题及答案
- 2026年危险化学品生产单位安全生产管理人员安全生产模拟考试题库
- 2026校友采访面试题目及答案
- 公司绩效考核管理办法及细则考核制度细则
- 2026选聘学校面试题及答案
- 2026夜间门诊面试题目及答案
- 2026音乐学面试题库及答案
- 2026游客中心面试题及答案
- 2026叶黄素酯行业知识产权保护与侵权风险防范报告
- 2026中国智慧城市安防系统建设趋势与商业化路径分析报告
- 2025年山东省春季高考语文试卷试题真题(含答案详解)
- 丙类仓库管理制度
- T/CNFAGS 2-2021三聚氰胺工业污染物排放标准
- 2024年福建省闽清县事业单位公开招聘医务工作者笔试题带答案
- 机械设备安装施工部署
- 绿色农业实践操作手册
- 延长石油社会招聘试题
- 新浙教版 九年级科学上 第一章复习
- 2024年宁夏惠安市政产业有限公司招聘笔试参考题库附带答案详解
- 《海上风电场工程岩土试验规程》(NB/T 10107-2018)
- 高顿财经市场营销策略分析
评论
0/150
提交评论