毕业设计电子密码锁(基于AT89C51)经典_第1页
毕业设计电子密码锁(基于AT89C51)经典_第2页
毕业设计电子密码锁(基于AT89C51)经典_第3页
毕业设计电子密码锁(基于AT89C51)经典_第4页
毕业设计电子密码锁(基于AT89C51)经典_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

摘要摘要 本次设计使用 AT89C51 实现一基于单片机的电子密码锁 本系统由单片机 系统 矩阵键盘 LED 显示和报警系统组成 系统能完成开锁 超次锁定 修 改用户密码基本的密码锁的功能 除上述基本的密码锁功能外 还具有温度显 示 时间显示等功能 依据实际的情况还可以添加遥控功能 本系统成本低廉 功能实用 关键词关键词 单片机 AT89C51 LED 显示 矩阵键盘 自动报警 目录目录 1 引言引言 1 2 方案的比较与论证方案的比较与论证 2 3 系统模块电路的设计系统模块电路的设计 4 3 1 系统总框图系统总框图 4 3 2 系统的模块电路设计系统的模块电路设计 4 3 2 1 单片机的最小系统模块单片机的最小系统模块 4 3 2 2 波形产生模波形产生模 块块 5 3 2 3 键盘模块键盘模块 8 3 2 4 显示模块显示模块 9 3 2 5 电源模块电源模块 11 3 2 6 温度检测模块设计温度检测模块设计 13 3 2 7 开锁电路和报警电路模块开锁电路和报警电路模块 14 4 系统的软件设系统的软件设 计计 15 4 1 软件设计思软件设计思 路路 15 4 2 系统主流程系统主流程 图图 15 5 总总 结结 16 6 致致 谢谢 18 7 参考文参考文 1 献献 18 8 附附 录录 19 1 引言引言 目前 最常用的锁是 20 世纪 50 年代意大利人设计的机械锁 其机构简单 使用方便 价格便宜 但在使用中暴露了很多缺点 一是机械锁是靠金属制成 的钥匙上的不同齿形与锁芯的配合来工作的 据统计 每 4000 把锁中就有两把 锁的钥匙齿牙相同或类似 故安全性低 二是钥匙一旦丢失 无论谁捡到都可 以将锁打开 三是机械锁的材料大多为黄铜 质地较软 容易损坏 四是机械 锁钥匙易于复制 不适于诸如宾馆等公共 场所使用 由于人们对锁的安全性 方便性等性能有更高的要求 许多智能锁也相继问世 但这类产品的特点是针 对特定指纹或有效卡 但能适用于保密要求高且仅供个别人使用的箱 柜 房 间 其成本一般较高 在一定程度上限制了这类产品的普及和推广 随着人们生活水平的提高 电子密码防盗锁作为防盗卫士的作用日趋重要 电子密码防盗锁用密码代替钥匙 不但省去了佩戴钥匙的烦恼 也从根本上解 决了普通门锁保密性差的缺点 随着人们生活水平的提高 如何实现家庭防盗 这一问题也变的尤其的突出 传统的机械锁由于其构造的简单 被撬的事件屡 见不鲜 机械锁的这些弊端为一种新型的锁 电子密码锁 提供了发展的空间 随着人们对安全的重视和科技的发展 许多电子智能锁已在国内外相继面 世 但是这些产品的特点是针对特定的指纹和有效卡 只能适用于保密要求的 箱 柜 门等 而且指纹识识别器若在公共场所使用存在容易机械损坏 IC 卡 2 还存在容易丢失 损坏等特点 加上其成本较高 一定程度上限制了这类产品 的普及和推广 电子锁由于其保密性高 使用灵活性好 安全系数高 受到了 广大用户的欢迎 鉴于目前的技术水平与市场的接收程度 电子密码锁是这类 电子防盗产品的主流 2 2 方案比较与论证方案比较与论证 方案一方案一 采用数字电路控制 其原理方框图如图 1 所示 3 图 1 数字密码锁电路方案 采用数字密码锁电路的好处就是设计简单 用以 74LS112 双 JK 触发器构 成的数字逻辑电路作为密码锁的核心控制 共设了 9 个用户输入键 其中只有 6 个是有效的密码按键 其它的都是 干扰按键 若按下干扰键 键盘输入电路 自动清零 原先输入的密码无效 需要重新输入 若电路连续报警三次 电路 将锁定键盘 10 秒 防止他人的非法操作 电路由两大部分组成 密码锁电路和备用电源 UPS 其中设置 UPS 电源 是为了防止因为停电造成的密码锁电路失效 使用户免遭麻烦 密码锁电路包含 键盘输入 密码修改 密码检测 开锁电路 执行电路 报警电路 键盘输入次数锁定电路 方案二方案二 以 AT89C51 为核心的单片机控制方案 利用单片机灵活的编程设 计和丰富的 IO 端口 及其控制的准确性 不但能实现基本的密码锁功能 还能 4 添加温度显示 时间显示甚至添加遥控控制功能 通过比较以上两种方案 单 片机方案有较大的活动空间 不但能实现所要 求的功能而且能在很大的程度上扩展功能 而且还可以方便的对系统进行升级 所以我们采用后一种方案 Comment c1 数据锁存电路指什么 下文中没有介绍 密码检测电路指什 么 5 3 3 系统模块电路的设计系统模块电路的设计 3 1 系统总框图系统总框图 图 2 系统框图 3 3 2 2 系统的模块电路系统的模块电路设计设计 3 2 1 单片机最小系统模块 AT89C51 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编 程 Flash 存储器 使用 Atmel 公司高密度非易失性存储器技术制造 与工业 80C51 产品指令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编程 亦 适于常规编程器 在单芯片上 拥有灵巧的 8 位 CPU 和系统可编程 Flash 使得 AT89SC51 为众多嵌入式控制应用系统提供高灵活 超有效地解决方案 AT89C51 是一种带 2K 字节闪烁可编程可擦除只读存储器的单片机 单片机的 可擦除只读存储器可以反复擦除 100 次 该器件采用 ATMEL 高密度非易失存 储器制造技术制造 与工业标准的 MCS 51 指令集和输出管脚相兼容 由于将 多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89C51 是一 种高效微控制器 AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性 高且价廉的方案 单 片 机 密码输入电路 密码检测电路 显示电路 温度传感器 开锁电路 时钟电路 数据锁存 电路 报警电路 6 图 3 AT89C51 管脚图 3 2 2 时钟电路模时钟电路模块块 采用专用时钟芯片 DS1302 该芯片性能简介如下 DS1302 的结构及工作原理 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗 带 RAM 的实时时 钟电路 它可以对年 月 日 周日 时 分 秒进行计时 具有闰年补偿功 能 工作电压为 2 5V 5 5V 采用三线接口与 CPU 进行同步通信 并可采用突 发方式一次传送多个字节的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的 用于临时性存放数据的 RAM 寄存器 DS1302 是 DS1202 的升级产品 与 DS1202 兼容 但增加了主电源 后背电源双电源引脚 同时提供了对后背电源进行涓细 电流充电的能力 1 引脚功能及结构 图 1 示出 DS1302 的引脚排列 其中 Vcc1 为后备电源 VCC2 为主电源 在主电 源关闭的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1 或 Vcc2 两者中的 较大者供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 768kHz 晶振 RST 是复位 片选线 通过把 RST 输入驱动置高电平来启动所有的数据传送 RST 输 7 入有两种功能 首先 RST 接通控制逻辑 允许地址 命令序列送入移位寄存器 其次 RST 提供终止单字节或多字节数据的传送手段 当 RST 为高电平时 所 有的数据传送被初始化 允许对 DS1302 进行操作 如果在传送过程中 RST 置为 低电平 则会终止此次数据传送 I O 引脚变为高阻态 上电运行时 在 Vcc 2 5V 之前 RST 必须保持低电平 只有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入输出端 双向 后面有详细说明 SCLK 始终 是输入端 图 4 DS1302 的管脚图 2 DS1302 的控制字节 DS1302 的控制字如图 2 所示 控制字节的最高有效位 位 7 必须是逻辑 1 如果它为 0 则不能把数据写入 DS1302 中 位 6 如果为 0 则表示存取日历 时钟数据 为 1 表示存取 RAM 数据 位 5 至位 1 指示操作单元的地址 最低有效 位 位 0 如为 0 表示要进行写操作 为 1 表示进行读操作 控制字节总是从最 低位开始输出 图 5 DS1302 的控制字节 3 数据输入输出 I O 在控制指令字输入后的下一个 SCLK 时钟的上升沿时 数据被写入 DS1302 数据输入从低位即位 0 开始 同样 在紧跟 8 位的控制指令字后的下 一个 SCLK 脉冲的下降沿读出 DS1302 的数据 读出数据时从低位 0 位到高位 7 4 DS1302 的寄存器 DS1302 有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数 据位为 BCD 码形式 其日历 时间寄存器及其控制字见表 1 8 图 6 日历 时间寄存器及其控制字 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存器及 与 RAM 相关的寄存器等 时钟突发寄存器可一次性顺序读写除充电寄存器外的 所有寄存器内容 DS1302 与 RAM 相关的寄存器分为两类 一类是单个 RAM 单 元 共 31 个 每个单元组态为一个 8 位的字节 其命令控制字为 C0H FDH 其中奇数为读操作 偶数为写操作 另一类为突发方式下的 RAM 寄存器 此方 式下可一次性读写所有的 RAM 的 31 个字节 命令控制字为 FEH 写 FFH 读 5 DS1302 与单片机连接如图 7 所示 VC C 3 3 V P3 7 P3 6 P3 1 1N 4007 150 VC C1 I O SC LK RS T VC C2 X1 X2 GN D DS 1302 图 7 DS1302 与单片机连接图 3 2 3 键盘模块键盘模块 使用矩阵键盘 所以本设计就采用行列式键盘 同时也能减少键盘与单片 机接口时所占用的 I O 线的数目 在按键比较多的时候 通常采用这样的方法 9 其原理如图 8 所示 图 8 矩阵键盘 每条水平 行线 与垂直线 列线 的交叉处不相通 而是通过一个按键来 连通 利用这种行列式矩阵结构只需 N 条行线和 M 条列线 即可组成具有 N M 个按键的键盘 在这种行列式矩阵键盘非键盘编码的单片机系统中 键盘处理程序首先执 10 行等待按键并确认有无按键按下的程序段 当确认有按键按下后 下一步就要识别哪一个按键按下 对键的识别通常 有两种方法 一种是常用的逐行扫描法 另一种是速度较快的线反转法 对照图 8 所示的 4 4 键盘 说明线反转个工作原理 首先辨别键盘中有无按键按下 由单片机 I O 口向键盘送全扫描字 然后 读入行线状态来判断 方法是 向列线输出全扫描字 00H 把全部列线置为低 电平 然后将行线的电平状态读入累加器 A 中 如果有按键按下 总会有一根 行线电平被拉至低电平从而使行线不全为 1 判断哪个键被按下 将 P1 0 P1 3 都置低 检测 P1 4 P1 7 是否有低的 若有 则证明有键按下 记下低的端口 然后 将 P1 4 P1 7 置低 检测 P1 0 P1 3 是否有低的端口 如有 则证明端口与上次的一个为地的端口交叉 位置的键被按下 按键键名功能说明 0 9 键 数字键输入密码 键重设密码键设定新密码 D 键确定键比较密码 C 键清除键使显示器清零 B 键开启键开启键盘 A 键关闭键关闭键盘 键调整键调整时间 3 3 2 2 4 4 显示模显示模块块 电子密码锁系统中 需要现实的信息较少 因此采用七段 LED 数码显示管 作为显示器 数据传输采用串行方式 有单片机串行数据口 P3 0 发送 在经过 74HC164 串行移位器把串行数据转换成 8 位并行数据 用以驱动七段 LED 数码 显示管 由于 74HC164 芯片中 没有数据锁存器 串行数据每到达一位 都会 直接送到七段显示管中 造成所有数据都会经过其短线是数码管的每一个 LED 灯 是数据显示不稳定 因此在 74HC164 串行移位寄存器和七段数码显示管之 间 加入数据锁存器 74273 芯片 以稳定数码显示管的数据显示 在按下开启按键后 显示器处于开启状态 同理只有按下关闭键后显示器 11 处于关闭状态 当需要对密码锁进行开锁时 按下键盘上的开锁键后利用键盘 上的数字键 0 9 输入密码 每按下一个数字键后在显示器上显示一个 输入六个数有六个 出现 当密码输入完成时 按下确认键 如果正确的话 LED 显示 111111 单片机其中 P2 0 出现低电平 使三极管 T2 导通 电磁铁 吸合 电子密码锁被打开 如果密码错误 LED 显示 000000 单片机 P2 0 输出的是高电平 电子密码锁不能被打开 在 LED 屏上时间出错时 可通过 键修改时间设定 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 IC1 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 IC2 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 IC3 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 IC4 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 IC5 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 IC6 1 2 HEADER2 1 2 HEADER1 vcc a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8dp dp 9 LED0 a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8dp dp 9 LED1 a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8dp dp 9 LED2 a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8dp dp 9 LED3 a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8dp dp 9 LED4 a bf c g d e DPY1 2 3 4 5 6 7 a b c d e f g 8dp dp 9 LED5 C d1d2d3 图图 9 9 显示电路 用 74LS247 可以控制输出什么字型 图图 10 74LS247 的逻辑功能表 12 图图 11 74LS247 控制位循环显示 3 3 2 52 5 电源模块电源模块 为了防止停电情况的发生 本电路后备了 UPS 电源 它包括市电供电电路 停电检测电路 电子开关切换电路 蓄电池充电电路和蓄电池组成 电源电路 图如图 5 所示 图图 12 供电电路 220V 市电通过变压器降压成 12V 的交流电 再经过整流桥整流 7805 稳压到 5V 送往电子切换电路 由于本电路功耗较少 所以选用 10W 的小型变压器 由 R8 R9 R6 R7 及 IC14 构成电压比较器 正常情况下 V V IC14 输出高 电平 由 T3 T4 构成的达林顿管使继电器 J 开启 将其常开触电将蓄电池和 13 电路相连 实现市电和蓄电池供电的切换 保证电子密码锁的正常工作 视电 池容量而定持续时间 其电路图如下图 6 所示 R8 50K R9 40K R7 30K R6 20K T3 9018 R10 5 1K T4 9014 1 2 3 IC14 741 5V A1 A2 5V A1 A2 VCC 图图 13 停电检测及电子开关切换电路 T1 T2 构成的蓄电池自动充电电路 它在电池充满后自动停止充电 其中 D1 亮为正在充电 D2 为工作指示 由 R4 R5 T1 构成电压检测电路 蓄电 池电压低 则 T1 T2 导通 实现对其充电 充满后 T1 T2 截止 停止充电 同时 D1 熄灭 电路中 C4 的作用是滤除干扰信号 其电路图如图 7 所示 R5 470 R2 3K R1 3K T1 9014D2D1 C4 0 1U 3CG21 R4 3K 6V A26V 图图 14 蓄电池自动充电电路 14 3 2 63 2 6 温度检测电路设计温度检测电路设计 采用一线总线式温度传感器 DS18B20 该传感器性能如下 1 DS18B20 的主要特性 a 适应电压范围更宽 电压范围 3 0 5 5V 在寄生电源方式下可由数 据线供电 b 独特的单线接口方式 DS18B20 在与微处理器连接时仅需要一条口线 即可实现微处理器与 DS18B20 的双向通讯 c DS18B20 支持多点组网功能 多个 DS18B20 可以并联在唯一的三线上 实现组网多点测温 d DS18B20 在使用中不需要任何外围元件 全部传感元件及转换电路集 成在形如一只三极管的集成电路内 e 温范围 55 125 在 10 85 时精度为 0 5 f 可编程的分辨率为 9 12 位 对应的可分辨温度分别为 0 5 0 25 0 125 和 0 0625 可实现高精度测温 g 在 9 位分辨率时最多在 93 75ms 内把温度转换为数字 12 位分辨率时 最多在 750ms 内把温度值转换为数字 速度更快 h 测量结果直接输出数字温度信号 以 一线总线 串行传送给 CPU 同 时可传送 CRC 校验码 具有极强的抗干扰纠错能力 i 负压特性 电源极性接反时 芯片不会因发热而烧毁 但不能正常工 作 2 DS18B20 与单片机接口电路图如图如图 1515 VCC OUT GND DS 18B20 P1 7 VC C 4 7 K 15 3 2 7 开锁电路与报警电路设计开锁电路与报警电路设计 开锁电路开锁电路 在本次设计中 基于节省材料的原则 暂时用发光二极管代替电磁锁 发 光管亮 表示开锁 灭 表示没有开锁 电路图如 3 3 所示 当 P2 0 口输出低 电平时 二极管发光 表示开锁 图图 16 开锁电路 报警电路报警电路 报警模块由蜂鸣器和单片机组成 选择一只压电式蜂鸣器 压电式蜂鸣器工 作时需要 100mA 驱动电流 当 89c51 的 P2 1 口输出低电平时 蜂鸣器产生蜂 音 89c51 输出高电平时 蜂鸣器不发声 16 图图 17 报警电路 4 4 系统的软件设计系统的软件设计 4 1 软件设计思路 电子密码锁工作的主要过程是 LED 数码管提示开始输入密码 通过键盘输 入密码 同时 LED 显示密码输入状况 接下来确认密码的判断 做出开锁或报 警处理 当输入密码连续输入错误 3 次时 系统报警 其中还有温度和时间显 示 多功能电子密码锁的基本要求 1 通过键盘修改 输入密码 2 连续三次输入密码错误后锁定键盘 10 秒 并给出提示 3 具有日期时间设置 小时和分钟 显示 环境温度显示功能 4 220V 供电下 设计系统所需电源 并考虑掉电后原始数据的保存 4 24 2 系统主流程图系统主流程图 17 开始 初始化 有键按下 调用显示 启动定时 识别按键 按键数 6 超时 比较密码 开门 开始 自动清除 3 次 报警 N N Y Y Y Y N N 按下 启动定时 输入密码 存入缓冲 再输入一次 比较密码 调用 LED 调用显示 按 退出 Y 重新输入 N 图图 18 主程序流程图图图 19 修改密码流程图 18 图图 21 报警流程图 5 总结 在没有做毕业设计前觉得毕业设计只是对所学知识的单纯总结 但是通过 这次做毕业设计发现自己的看法有点太片面 毕业设计不仅是对前面所学知识 的一种检验 而且也是对自己能力的一种提高 通过这次毕业设计使我明白了 自己原来知识还比较欠缺 自己要学习的东西还太多 以前老是觉得自己什么 东西都会 什么东西都懂 有点眼高手低 通过这次课程设计 我才明白学习 是一个长期积累的过程 在以后的工作 生活中都应该不断的学习 努力提高 自己知识和综合素质 在这次毕业设计中也使我们的同学关系更进一步了 同学之间互相帮助 有什么不懂的大家在一起商量 听听不同的看法对我们更好的理解知识 在多 人做项目的时候 队员的交流是非常重要的 是很关键的部分 这次的毕业设 计也让我看到了团队的力量 我认为我们的工作是一个团队的工作 团队需要 19 个人 个人也离不开团队 必须发扬团结协作的精神 刚开始的时候 大家就 分配好了各自的任务 大家有的绘制原理图 进行仿真实验 有的积极查询相 关资料 并且经常聚在一起讨论各个方案的可行性 在毕业设计中只有一个人 知道原理是远远不够的 必须让每个人都知道 否则一个人的错误 就有可能 导致整个工作失败 团结协作是我们成功的一项非常重要的保证 不管学会的还是学不会的的确觉得困难比较多 真是万事开头难 不知道 如何入手 最后终于做完了有种如释重负的感觉 此外 还得出一个结论 知 识必须通过应用才能实现其价值 有些东西以为学会了 但真正到用的时候才 发现是两回

温馨提示

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

评论

0/150

提交评论