基于单片机的电子密码锁设计毕业设计说明书(论文)(编辑修改稿)内容摘要:
线的交叉 处 , 每 当 有一个键按下就使得 某一条行线与某一条列线 相接 通 ,只要确定接触的是哪两条线,即哪两个 I/O 口线,就可以确定哪一个键被触动 [7]。 此 方案 相对 简单 、 易 于实现,因此 采用 之。 2 主要元件介绍 主控芯片 AT89C51 简介 AT89C51是一 款工作电压低、 高性能 的 8位微处理器 (即通常所说的 单片机 )。 这款单片机拥有自己的 可编程可擦除只读存储器 ,容量为 4K 字节 , 可以反复擦写 100 次。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的AT89C51 是一种高效微控制器 [8]。 主要特性 与 MCS51 兼容 4K 字节可编程闪烁存储器 寿命: 1000 写 /擦循环 数据保留时间: 10 年 全静态工作: 0Hz24MHz 三级程序存储器锁定 1288 位内部 RAM 32 可编程 I/O 线 两个 16位定时器 /计数器 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 管脚功能说明: AT89C51 芯片 的 引脚图如 下 : 图 AT89C51 芯片引脚图 VCC:供电电压。 GND:接地。 P0P3口均为 8 位双向 I/O 端 口 ,但又有所不同。 P0口: 第一次 将 P1 口的管脚写 为 “ 1”的 时 候 , 这 8 位的端口都 会变为 高阻 状态。 P0 可以 用于 连接 外部程序数据存储器, 同时, P0 口也能 被定义 成 数据 /地址的 低 八位。 P1口: 内部提供上拉电阻 ,其 缓冲器 可以吸 收 的 门电流 量为 4TTL。 将 P1口的管脚写 为“ 1”时 , 整个 P1 端口会 被内部 的上拉电阻 上拉为高 电平。 P2口: 内部同样带有上 拉电阻。 P2 口缓冲器 既允许 接收 电流 , 又允许 输出电流。 当 P2 口被写 “1” 时, 其作用与 P1 口完全相同。 P2 口 的特殊用途在于连接 外部 的 程序存储器 和 16 位地址 的 外部数据存储器。 若作为 16 位地址的一部分时 , P2 口输出 所需 地址高八位 ,和 P0 口相配合。 除此以外 ,它 还可以 利用内部 拥有 上拉 电阻的便利 ,当对外部 的 数据存储器 实行 读写 操作(仅限 8位地址)时,输出 它 特殊功能寄存器 中 的 内容。 P3口: P3口的基本用途和性质与其他端口并无不同,只是它可以 作为 单片机 的特殊功能口, 列于 下表 中 : 表 P3口功能 ( P3 口同时为闪烁 编程和编程校验接收一些控制信号 ) 振荡器特性 单片机 AT89C51 允许用户自行外接合适频率的晶体振荡器,最常使用的不外乎石晶振荡和陶瓷振荡。 当配置为片内振荡器时,反向放大器输入端口应接XTAL输出端口应当接 XTAL2。 当使 用外部时钟源 时 , 不接 XTAL2。 此处外部时钟信号的脉冲宽度可以是任意的。 芯片擦除 想在任何已存有信息的存储字节上重复编程,首先必须对芯片进行擦出操作。 AT89C51 芯片 的 擦出方法为: ALE 管脚接低电平 10ms,同时搭配以适当的控制信号组 合,此种 操作 会将 代码阵列全 部写为 “ 1”。 此外, AT89C51 设有两种 掉电模式。 用户可以自主选择: 一是“ 闲置模式 ”,此模式 下 CPU 将会挂起, 但 RAM,定时器,计数器,串口 以及 中断系统仍 会处于 工作 状态 ; 二是“ 掉电模式 ” , 此时 保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止 [9]。 LCD1602 显示器介绍 液晶显示模块主要 用于为系统提供输出,可显示 图形 、 数字 或 专用符号 等信息 , 这一元件在电子产品中相当常见。 在本次设计中我们选用 LCD1602 显示模块 , 这一 型号 有诸多优点,如 显 示自由度高、 体积小、耗能少等。 LCD1602 可 显示2*16 个字符,有 RS,R/W,EN 三个控制端口 和 8 位数据总线 D0D7,工作电压为5V,并且具有字符对比度调节和背光功能 [10]。 它的主要特性如下: ○ 1 内含复位电路,对比度可调 ○ 2 通过 控制命令 可以实现 实现多种功能。 ○ 3 内部有一 显示数据存储器 DDRAM,其容量为 80 字节。 ○ 4 拥有 200 个 5*7 的字符发生器 CGROM,其中 8个可由用户自 定义。 1602 型 LCD 的接口 引脚 说明如表 所示。 表 LCD1602 引脚 说明 编号 符号 功能 编号 符号 功能 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据 /命令选择 12 D5 数据 5 R/W 读 /写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 1602 型 LCD 主要技术参数: 显示容量 :162 个字符 芯片工作电压 :— 工作电流 : 模块最佳工作电压 : 字符尺寸 : (宽 高) 常用指令见下表: 表 LCD1602 常 见 指令 晶体振荡器 晶体振荡器 ( 简称晶振 )可以 产生 一定频率 的时钟 信号 , 这一信号经过调频后 可成 为 处理器 中各 处 的总线频率。 现在使用最多当属 石英晶体振荡器 , 也称石英晶体谐振器。 石英晶体振荡器具有 精度 高 和稳定度 高 的 优点 ,它 同时可以作为 一种晶体谐振元件 实现 LC 谐振回路 的功能: 稳定频率和选择频率。 石英晶体振荡器 在 生活中的电子设备里随处可见,为它们 产生时钟信号 ,应用在 在单片机中 时也是如此。 石英晶体具有压电效应, 石英晶体振荡器 就 是利用 这一特点制作成 的, 简称为石英晶体或晶体、晶振。 大多数晶振是这样构成的 :从 特定角度 切下 矩形或圆形 的 石英晶体 薄片, 并在其对应面上 敷银 制成 电极, 并在上面各焊一根引线接到管脚上,再加上封装外壳 [11]。 3 系统设计 整体 思路 本系统主要包括 单片机、矩阵键盘 、复位电路、晶振电路 和 液晶显示器 等部分。 作为整个系统的输入, 矩阵键盘 担当着与用户交互的核心任务,用户可以 再此输入密码或控制程序的运行方向。 功能上,首先 由用户 由 矩阵键盘输入密码, 而 后与 事先存储 的密码进行 比较 ,判断 出 密码 的正确与否 ,然后 单片机会控制特定 引脚的电平 以触发 开锁电路或者报警电路。 实用产品 只 须 将单片机的负载由发光二极管 替换为实际锁具的开锁电路 即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈 [12]。 具体的讲,本设计可以分为 硬件部分与软件部分 俩大部分。 其中硬件部分 又分为 键盘输入电路 、 复位电路 、 晶振电路 、 显示电路 、 报警 或 解锁提示电路 等几大模块; 相应的, 软件部分由主程序 、 按键检测子程序 、 LCD 显示子 程序 、 密码修改子程序 、 报警声音子程序 等组成。 图 系统框图 系统 硬件部分设计 本系统外围电路包括 键盘输入电路 、 复位电路 、 晶振电路 、 显示电路 、 报警或 解锁提示电路 等。 结合本设计的原定目标, 键盘输入 电路 选择 4 3 矩阵键盘,显示 电路 选择显示 屏 LCD1602 来完成。 其原理图如图。 图 系统原理图 键盘输入电路 单片机系统中,常用的键盘 设计方式 有独立式键盘和矩阵式键盘 两种。 独立式键盘 是 指 每个 I/O 输入 端口对应一个物理按键 的键盘。 其优点是键盘结构简单, 按键识别容易;缺点是占用 I/O 口较多。 矩阵式键盘适 合 用 在 按键数 量 较多的 系统中 ,它 将 I/O 口 分别引出线,并分为 行线和列线, 在 每一个 行线和列线 相交的地方放置一个按键 , 这种方案下, 一个 占用 7 个 I/O 端口的 4 3的行列结构可以构成一个 12键的键盘。 显 然这种方式 与独立式键盘相比节省 了 很多 I/O 端 口 ,但算法相对复杂 [13]。 常用的矩阵式键盘扫描原理有反转和行 /列 扫描法。 本设计中采用行扫描法,具体原理将在软件部分介绍。 键盘功能及 其 引脚接法如图 所示: 图 键盘输入原理图 复位电路 单片机复位 可以让整个系统(单片机芯片本身)从 一个确定的初始状态开始工作。 在单片机刚 刚 上电 时、断电后和执行出错, 复位 都是必须的操作。 RST 为高电平并保持一定时间后,单片机进入 复位 状态 , 在此期间, P0口 呈现 高 阻 态,P1- P3口均呈现高电平,同时 PSEN 信号 无效 、 ALE 为高电平。 本设计 在最 基础 的复位电路 基础上,添 加了 一个 按键 以实现手动复位功能。 在 刚 接通电源 时 电容 C1 两端 电 势差 很小,电阻 R1 上的电压接近电源电压, 这会使得 RST 为高电平,接着, 电容 进入充电 过程 , RST 端电势步 降 低 ,当 RST 端的电压 表现为低电平时 , CPU 脱离复位状态, 只要 电容 C3 大 小适当 , 就能够 保证RST 的 高电平有效 持续 时间 多 于 24 个振荡周期, 此时单片机就 能够 实现 可靠 的复位。 手动复位按键 的加入,使得 死机时 有了 可靠 的 复位 方法。 在按下 复位键后 ,电容 C3 将会经由 R6 进行放电,此过程 结束后, RST 端的电位 就会 由 两个电阻的分压 情况决定 [14]。 复位电路 的 原理如 下 图所示 : 图 复位电路原理图 晶振电路 将晶体振荡器按下图所示方式连接到 XTAL1 引脚和 XTAL2 引脚上,就构成了晶振电路。 图示是一种电容三点式振荡器,振荡信号的频率取决于晶振频率 和两 个 电容的容量, 其中, 晶振频率 又是主要因素。 一般而言,晶振频率的取值 范围在 0~ 33MHz 之间, 两个 电容 的 取值范围在 5~ 30pF 之间。 根据实际情况,本设计中采用 24MHZ 做系统的外部晶振。 电容取值为 22pF[15]。 晶振电路原理图如图 所示: C12 2 p FC22 2 p FX1C R Y S T A L 图 晶振电路原理图 显示电路 为了使 密码锁 的 显示效果 使人满意、电路简洁 ,此处 使用了 LCD1602 作为 显示 模块的核心 ,而不是 普通的数码管。 接通电源后显示器处于 等待 开锁 状态,提示 用户 输入密码, 当用户 需要开锁时, 可以使用 数字键 0- 9输入密码, 每次按键 都会把处理 结果 反馈到 屏幕上。 当密码输入 结束 后 ,按下确认键, 系统将会把输入的密码和事先保存的对比, 若 正确, LCD 将 显示“ Unlock succeed!”,电子密码锁被打开; 否则 , LCD 显示屏会显示“ Wrong Password, Unlock Failed!”,电子密码锁保持原状态。 在密码修改的过程中, LCD 显示屏 会显示更为多样的信息:“ Change Password? (Y/N)” 、 “ Old Password:”、“ Wrong Password, Match Failed!”、“ Enter New PW:”、“ The Password must be 6 bits!”、“ The Password has changed!”等等 , 电子 锁 当前 所处的状态 一目了然。 其显示部分 及 引脚接口如图 所示 : 图 显示电路原理图 报警、解锁提示电路 本设计报警部分电路由蜂鸣器 实现。 当输入密码 并确认后 ,单片机的 引脚将输出特定频率的方波 , 则蜂鸣器被导通而发出声音。 当密码错误时,发出的声音为短促的 3 声“嘟”,音高相同;当密码正确时,发出的声音为一小段乐声。 当解锁成功时,接于 端口的绿色 LED 灯将会亮起,提示锁已打开。 在实际应用的电子密码锁产品中,可以把其替换为电磁继电器的输入,原理仍是不变。 报警 、解锁提示 部分电路原理图如图 所示 (图中 led 接 口, air接 口)。 图 报警、解锁提示电路原理图 系统软件部分设计 本 设计的 软件 部分 由 主程序 、 按键检测子程序 、 LCD 显示子程序 、 密码修改子程序 、 报警声音子程序 等组成。 主程序流程图 如图 所示为主程序流程图, 系统上电后将 进行初始化 ,然后 开始进行键盘扫描,此时在键盘上输入密码,若密码正确, 则 开 锁成功,播放成功提示音,密码错误则会提示,包括屏幕画面及声音。 图 主程序流程图 按键检测子程序设计 本设计 中的的密码输入使 用 了 4*3 矩阵键盘,键盘上除 数字键 0— 9以外还有 2 个功能键。 该矩阵键盘的按键检测采用行扫描法,具体步骤如下: ○ 1 令第一行为低电平,其余行和列为高电平,即给 P1 口赋值 0xFE。 ○ 2 延时 5~ 20ms 再次进行检测 , 实现 按键消抖。 ○ 3 读 P1 口的值,判断 当前 是否有键 被 按下。 若无键按下 ,其值仍应为 0xFE。 若第一个按键按下,则第一列会被拉低,即 P1 口的读取值应为 0xEE,即 0xEE为。基于单片机的电子密码锁设计毕业设计说明书(论文)(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。