




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南工学院 2011 届专科生毕业设计 1 目录 第第 1 章章 概概 述述 2 第第 2 章章 系统总体方案设计系统总体方案设计 3 第第 3 章主要芯片的介绍章主要芯片的介绍 6 3 1 AT89S52 6 3 1 1AT89S52 的介绍 6 3 1 2AT89S52引脚功能说明 7 3 1 3AT89S52芯片内部结构 8 3 2 晶体振荡器 10 4 2 键盘电路设计 15 4 3 液晶显示电路 16 4 4 开锁电路 19 4 5 报警电路 20 第第 5 章章 软件设计软件设计 23 5 1 软件设计思路 23 5 2 各程序设计 24 5 2 1 主程序 24 5 2 2 键扫程序 25 5 2 3 密码比较和报警程序 25 5 2 4 AT24C02 读写程序设计 26 5 2 5 上锁程序设计 26 致致 谢谢 27 参考文献参考文献 28 附录附录 1 元器件性质及规格元器件性质及规格 29 附录附录 2 参考程序参考程序 30 湖南工学院 2011 届专科生毕业设计 2 第 1 章 概 述 随着科技的发展 单片机已不是一个陌生的名词 它的出现是近代计算机 技术发展史上的一个重要里程碑 因为单片机的诞生标志着计算机正式形成了 通用计算机系统和嵌入式计算机系统两大分支 单片机单芯片的微小体积和低 的成本 可广泛地嵌入到如玩具 家用电器 机器人 仪器仪表 汽车电子系 统 工业控制单元 办公自动化设备 金融电子系统 舰船 个人信息终端及 通讯产品中 成为现代电子系统中最重要的智能化工具 本文所涉及的是市场占有率最高的是 MCS 51 系列 因为世界上很多知名 的 IC 生产厂家都生产 51 兼容的芯片 到目前为止 MCS 51 单片机已有数百 个品种 还在不断推出功能更强的新产品 本设计是基于单片机的密码锁设计方案 根据要求 给出了该单片机密码 锁的硬件电路和软件程序 同时给出了单片机型号的选择 硬件设计 软件流 程图 单片机存储单元的分配 C 语言源程序及详细注释等内容 本次设计使用 ATMEL 公司的 AT89S52 实现一基于单片机的电子密码锁的 设计 其主要具有如下功能 1 密码通过键盘输入 若密码正确 则将锁打开 2 报警 锁定键盘功能 密码输入错误数码显示器会出现错误提示 若 密码输入错误次数超过 3 次 蜂鸣器报警并且锁定键盘 电子密码锁的设计主要由三部分组成 4 4 矩阵键盘接口电路 密码锁的 控制电路 液晶显示电路 另外系统还有 LED 提示灯 报警蜂鸣器等 湖南工学院 2011 届专科生毕业设计 3 第 2 章 系统总体方案设计 方案一 采用数字电路控制 其原理方框图如图 2 1 所示 密密码码修修改改电电路路 键键盘盘输输入入 开开 始始 计计 时时 限限 时时 报报 警警 密密码码校校验验电电路路 消消 除除 报报 警警 信信 号号 开开锁锁电电路路 报报警警次次数数检检测测 大大于于3 3 锁锁定定密密 码码锁锁 锁锁 定定 脉脉 冲冲 正正确确 执执行行开开锁锁 电电路路 开开锁锁 2 22 20 0V V输输入入市 市电电供供电电电电路路6 6V V电电子子切切换换开开关关 电电源源V VC CC C 蓄蓄 电电 池池 断断电电检检测测 充充电电电电路路 图 2 1 数字密码锁电路方案 采用数字密码锁电路的好处就是设计简单 用以 74LS112 双 JK 触发器构成 的数字逻辑电路作为密码锁的核心控制 共设了 9 个用户输入键 其中只有 4 个是有效的密码按键 其它的都是干扰按键 若按下干扰键 键盘输入电路自 动清零 原先输入的密码无效 需要重新输入 如果用户输入密码的时间超过 40 秒 一般情况下 用户不会超过 40 秒 若用户觉得不便 还可以修改 电 路将报警 80 秒 若电路连续报警三次 电路将锁定键盘 5 分钟 防止他人的非 法操作 电路由两大部分组成 密码锁电路和备用电源 UPS 其中设置 UPS 电源是 为了防止因为停电造成的密码锁电路失效 使用户免遭麻烦 密码锁电路包含 键盘输入 密码修改 密码检测 开锁电路 执行电路 报警电路 键盘输入次数锁定电路 方案二 采用一种是用以 AT89S52 为核心的单片机控制方案 利用单片机 灵活的编程设计和丰富的 IO 端口 及其控制的准确性 不但能实现基本的密码 锁功能 还能添加调电存储 声光提示甚至添加遥控控制功能 其原理如图 湖南工学院 2011 届专科生毕业设计 4 2 2 所示 A AT T8 89 9S S5 52 2 单单片片机机 矩矩阵阵式式键键盘盘电电路路 A AT T2 24 4C C0 02 2掉掉电电储储存存电电 路路 液液晶晶显显示示电电路路 错错误误输输入入锁锁定定键键盘盘 延延时时报报警警控控制制电电路路 开开锁锁电电路路 L LE ED D显显示示电电路路 图 2 2 单片机控制方案 各模块功能如下 1 键盘输入模块 分为密码输入按键与几个功能按键 用于完成密码锁输入功 能 2 液晶显示模块 用于完成对系统状态显示及操作提示功能 3 报警电路 用于完成输错密码三次的时候的警报功能 4 错误输入锁定键盘模块 用于完成输错密码三次的时候锁定键盘 5 密码存储模块 用于完成掉电存储功能 使修改的密码断电后仍能保存 6 开锁电路 应用继电器及发光二极管模拟开锁 完成开锁及开锁提示 7 LED 显示模块 用于开锁或报警是特殊显示 通过比较以上两种方案 单片机方案有较大的活动空间 不但能实现所要 求的功能而且能在很大的程度上扩展功能 而且还可以方便的对系统进行升级 所以我们采用第二种方案 本方案采用一种是用以 AT89S52 为核心的单片机控制方案 利用单片机灵 活的编程设计和丰富的 I O 端口 及其控制的准确性 实现基本的密码锁功能 初步设计思路如下 输入密码用矩形键盘 包括数字键和功能键 FYD12864 0402B 液晶显示输入密码 用绿色发光二极管代替开锁的电路 发光表示开锁 输入密码错误次数超过 3 次 系统报警 红色发光二级管发光 打开电源后 显示器显示 已上锁 请输入密码 设原始密码为 123456 只要输入此密码便了开门 把设好的密码存放到 AT24C02 中 以防 湖南工学院 2011 届专科生毕业设计 5 断电后无密码可用 密码使用一次就失效 开锁后欲上锁请重新设置密码 密码存放到 AT24C02 中 以防断电后无密码可用 重新设定密码时 请先输入密码在案 输入密码 再按 ENTRE 键 若密码与设定密码相同 则开门 否则显示 器清为 输入密码错误 请重新输入 密码输入错误三次以后 密码锁就锁死 这是只有专业人员输入万能密码 才能开锁 密码锁进入初始状态 设置万能密码为 051866 软件的设计主要包括键扫子程序 液晶显示程序 密码比较程序 AT24C02 读写程序 报警程序和开锁显示程序 湖南工学院 2011 届专科生毕业设计 6 第 3 章主要芯片的介绍 3 1 AT89S52 AT89S52 是一个低功耗 高性能 CMOS 8 位单片机 片内含 4k Bytes 的可 反复擦写 1000 次的 Flash 只读程序存储器 器件采用 ATMEL 公司的高密度 非 易失性存储技术制造 兼容标准 MCS 51 指令系统及 AT89S52 引脚结构 芯片内 集成了通用 8 位中央处理器和 ISP Flash 存储单元 功能强大的微型计算机的 AT89S52 可为许多嵌入式控制应用系统提供高性价比的解决方案 3 1 1AT89S52 的介绍 此外 AT89S52 设计和配置了振荡频率可为 0Hz 并可通过软件设置省电模 式 空闲模式下 CPU 暂停工作 而 RAM 定时计数器 串行口 外中断系统可 继续工作 掉电模式冻结振荡器而保存 RAM 的数据 停止芯片其它功能直至外 中断激活或硬件复位 同时该芯片还具有 PDIP TQFP 和 PLCC 等三种封装形式 以适应不同产品的需求 图 3 1 为 AT89S52 的平面图 图 3 1 AT89S52 平面图 1 其主要功能特性 兼容 MCS 51 指令系统 4k 可反复擦写 1000 次 Flash ROM 32 个双向 I O 口 4 5 5 5V 工作电压 2 个 16 位可编程定时 计数器 时钟频率 0 33MHz 全双工 UART 串行中断口线 128x8 bit 内部 RAM 2 个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 3 级加密 湖南工学院 2011 届专科生毕业设计 7 软件设置空闲和省电功能 双数据寄存器指针 可以看出 AT89S52 提供以下标准功能 4K 字节 Flash 闪速存储器 128 字节 内部 RAM 32 个 I O 口线 两个数据指针 两个 16 位定时器 计数器 一个 5 矢量两级中断结构 一个全双工串行通信口 以及片内振荡器和时钟 同时 AT89S52 可降至 0Hz 的静态逻辑操作 并支持两种软件可选的节电工作模式 空闲方式时停止 CPU 的工作 但允许 RAM 定时 计数器 串行通信口及中断系 统继续工作 掉电方式是在 RAM 中的内容 但振荡器停止工作并禁止其它所有 部件工作直到一个硬件复位 3 1 2AT89S52AT89S52 引脚功能说明引脚功能说明 VCC 电源电压 GND 地 P0 口 P0 口是一组 8 位漏极开路型双向 I O 口 也即地址 数据总线复用 口 作为输出口用时 每位能驱动 8 个 TTL 逻辑门电路 对端口写 1 可作为 高阻抗输入端口 在访问外部数据存储器或程序存储器时 这组口线分时转换 地址 低 8 位 和数据总线复用 在访问期间激活内部上拉电阻 在 Flash 编 程时 P0 口接收指令字节 而在程序校验时 输出指令字节 校验时 要求外 接上拉电阻 P1 口 P1 是一个带内部上拉电阻的 8 位双向 I O 口 P1 的输出缓冲级可 驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对端口写 1 通过内部的上 拉电阻把端口拉到高电平 此时可作输入口 作输入口使用时 因为内部存在 上拉电阻 某个引脚被外部信号校验期间 P1 接收低 8 位地址 P2 口 P2 是一个带有内部上拉电阻的 8 位双向 I O 口 P2 的输出缓冲级 可驱动 4 个 TTL 逻辑门电路 对端口写 1 通过内部的上拉电阻把端口拉到 高电平 此时可作输入口 作输入口使用时 因为内部存在上拉电阻 某个引 脚被外部信号拉低时会输出一个电流 I 在访问 位地址的外部数据存储器 如执行 MOVX Ri 指令 时 P2 口线上的内 也即特殊功能寄存器 在整 个访问期间不改变 Flash 编程或校验时 P2 也接收高位地址和其它控制信号 P3 口 P3 口是一组带有内部上拉电阻的 8 位双向 I O 口 P3 口输出缓冲 级可驱动 吸收或输出电流 4 个 TTL 逻辑门电路 对 P3 口写入 1 时 它 们被内部上拉电阻拉高并可作为输入端口 作输入端口时 被外部拉低的 P3 口 将用上拉电阻输出电流 I P3 口除了作为一般的 I O 口线外 更重要的用途是 它的第二功能 P3 口的第二功能如下表 3 1 湖南工学院 2011 届专科生毕业设计 8 表 3 1 端口功能第二功能端口引脚第二功能 RXD P3 0 串行输入口T0 P3 4 定时 计数器0外部输入 TXD P3 1 串行输出口T1 P3 5 定时 计数器1外部输入 INT0 P3 2 外中断0WR P3 6 外部数据存储器写选通 INT1 P3 3 外中断1RD P3 7 外部数据存储器读选通 RST 复位输入 当振荡工作时 RST 引脚出现两个机器周期上高电平将使 单片机复位 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁 存允许 输出脉冲用于锁存地址的低 8 位字节 即使不再访问外部存储器 ALE 仍以时钟振荡频率的 1 6 输出的正脉冲信号 因此它可对外输出时钟或用于定 时目地 要注意的是 当访问外部数据存储器时将跳过一个 ALE 脉冲 如有必 要 可通过对特殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置位 可禁止 ALE 操作 该位置禁位后 只有一条 MOVX 和 MOVC 指令 ALE 才会被激活 此外 该引脚伎被微弱拉高 单片机执行外部程序时 应设置 ALE 无效 PSEN 程序储存允许 PSEN 输出是外部程序存储器的读选通信号 当 AT89S52 由外部程序存储器取指令 或数据 时 每个机器周期两次 PSEN 有效 即输出两个脉冲 当访问外部数据存储器 高有两次有效的 PSEN 信号 EA VPP 外部访问允许 欲使 CPU 访问外部程序存储器 地址 0000H FFFFH EA 端必须保持低电平 接地 需注意的是 如果加密位 LB1 被编程 复位时内部会锁存 EA 端状态 如 EA 端为高电平 接 VCC 端 CPU 则 执行内部程序存储器中的指令 Flash 存储器编程时 该引脚加上 12V 的编程 电压 VPP XTAL1 振荡器反相放大器及内部时钟发生器的输入端 XTAL2 振荡器反相放大器的输出端 3 1 3AT89S52AT89S52 芯片内部结构芯片内部结构 特殊功能寄存器 特殊功能寄存器的片内空间分布如下图 3 2 所示 这些 地址并没有全部占用 没有占用的地址不可使用 读这些地址将得到一个随意 湖南工学院 2011 届专科生毕业设计 9 的数值 而写这些地址单元将不能得到预期的结果 中断寄存器 各中断允许控制位于 IE 寄存器 5 个中断源的中断优先级控 制位于 IP 寄存器 表 3 2 为 AUXR 辅助寄存器 AUXR 地址 8EH 复位状态 XXX00XX0B Not Bit Addressable 保留为将来扩展用途位 表 3 2 AUXR 辅助寄存器 WDIDLEDISRT O DISALE Bit 7 6 5 4 32 10 DISALE ALE 禁止 使用 DISALE 操作模式 0 ALE 输出 1 6 震荡时钟频率脉冲 1 ALE 仅在执行 MOVX 或 MOVC 指令期间输出脉冲 DISRTO 禁止 使能复位输出 DISRTO 0 复位引脚在 WET 溢出时变高 1 复位引脚仅为输入 WDIDLE 禁止 使能 IDLE 模式的 WDT WDIDLE 0 IDLE 模式 WDT 继续计数 1 IDLE 模式 WDT 停止计数 双时钟指针寄存器 为方便地访问内部和外部数据存储器 提供了两个 16 位数据指针寄存储器 PD0 位于 SFR 区块中的地址 82H 83H 和 DP1 位于地址 84H 85H 当 SFR 中的位 DPS 0 时选择 DP0 而 DPS 1 时选择 DP1 在使用 前初始化 DPS 双时钟指针寄存器 表 3 3 为指针寄存器 表 3 3 指针寄存器 DPS Bit 7 6 5 4 3 2 1 0 AUXR1 湖南工学院 2011 届专科生毕业设计 10 地址 A2H 复位状态 XXXXXXX0B 不可寻址保留为今后扩展用途 DPS 数据指针选择位 DPS 0 选择 DPTR 寄存器 DP0L DP0H 1 选择 DPTR 寄存器 DP1L DP1H 电源空闲标志 电源空闲标志 POF 在特殊功能寄存储器 SFR 中 PCON 的 第 4 位 PCON 4 电源打开时 POF 置 1 它可由软件设置睡眠状态并不为复 位所影响 存储器结构 MCS 51 单片机内核采用程序存储器和数据存储器空间分开的 结构 均具有 64KB 外部程序和数据的寻址空间 程序存储器 如果 EA 引脚接地 GND 全部程序均执行外部存储器 在 AT89S51 假如接至 VCC 电源 程序首先执行从地址 0000H 0FFFH 4KB 内部程序存储器 再执行地址为 1000H FFFFH 60KB 的外部程序存储器 数据存储器 在 AT89S52 的具有 128 字节的内部 RAM 这 128 字节可利 用直接或间接寻址方式访问 堆栈操作可利用间接寻址方式进行 128 字节均 可设置为堆栈区空间 3 2 晶体振荡器 晶体振荡器 简称晶振 其作用在于产生原始的时钟频率 这个频率经过 频率发生器的放大或缩小后就成了电脑中各种不同的总线频率 以声卡为例 要实现对模拟信号 44 1kHz 或 48kHz 的采样 频率发生器就必须提供一个 44 1kHz 或 48kHz 的时钟频率 如果需要对这两种音频同时支持的话 声卡就 需要有两颗晶振 但是现在的娱乐级声卡为了降低成本 通常都采用 SCR 将输 出的采样频率固定在 48kHz 但是 SRC 会对音质带来损害 而且现在的娱乐级 声卡都没有很好地解决这个问题 现在应用最广泛的是石英晶体振荡器 石英晶体振荡器是一种高精度和高稳定度的振荡器 石英晶体振荡器也称 石英晶体谐振器 它用来稳定频率和选择频率 是一种可以取代 LC 谐振回路的 晶体谐振元件 石英晶体振荡器广泛地应用在电视机 影碟机 录像机 无线 通讯设备 电子钟表 单片机 数字仪器仪表等电子设备中 为数据处理设备 产生时钟信号和为特定系统提供基准信号 在单片机中为其提供时钟频率 石英晶体振荡器是利用石英晶体 二氧化硅的结晶体 的压电效应制成的 一种谐振器件 它的基本构成大致是 从一块石英晶体上按一定方位角切下薄 片 简称为芯片 它可以是正方形 矩形或圆形等 在它的两个对应面上涂敷 湖南工学院 2011 届专科生毕业设计 11 上银层用作电极使用 在每个电极上各焊一根引线接到管脚上 再加上封装外 壳就构成了石英晶体谐振器 简称为石英晶体或晶体 晶振 其产品一般用金 属外壳封装 也有用玻璃壳 陶瓷或塑料封装的 只要在晶体振子板极上施加 交变电压 就会使芯片产生机械变形振动 此现象即所谓逆压电效应 当外加 电压频率等于晶体谐振器的固有频率时 就会发生压电谐振 从而导致机械变 形的振幅突然增大 本设计中采用 12MHZ 做系统的外部晶振 电容取值为 20pF 3 3 存储芯片 AT24C02 AT24C02 是美国 Atmel 公司的低功耗 CMOS 型 E2PROM 内含 256 8 位存储 空间 具有工作电压宽 2 5 5 5 V 擦写次数多 大于 10000 次 写入速度 快 小于 10 ms 抗干扰能力强 数据不易丢失 体积小等特点 而且他是采 用了 I2C 总线式进行数据读写的串行器件 占用很少的资源和 I O 线 并且支 持在线编程 进行数据实时的存取十分方便 AT24C02 中带有的片内地址寄存 器 每写入或读出一个数据字节后 该地址寄存器自动加 1 以实现对下一个 存储单元的读写 所有字节均以单一操作方式读取 为降低总的写入时间 一 次操作可写入多达 8 个字节的数据 I2C 总线是一种用于 IC 器件之间连接的二 线制总线 他通过 SDA 串行数据线 及 SCL 串行时钟线 两根线在连到总线上的 器件之间传送信息 并根据地址识别每个器件 AT24C02 正是运用了 I2C 规程 使用主 从机双向通信 主机 通常为单片机 和从机 AT24C02 均可工作于接收 器和发送器状态 主机产生串行时钟信号 通过 SCL 引脚 并发出控制字 控制 总线的传送方向 并产生开始和停止的条件 无论是主机还是从机 接收到一 个字节后必须发出一个确认信号 ACK AT24C02 的控制字由 8 位二进制数构成 在开始信号发出以后 主机便会发出控制字 以选择从机并控制总线传送的方 向 管脚描述 SCL 为串行时钟 串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚 SDL 为串行数据 地址 双向串行数据 地址管脚用于器件所有数据的发送或接收 SDL 是一个开漏输出 管脚可与其它开漏输出或集电极开路输出进行线或 A0 A1 A2 为器件地址输入端 当使用 24C02 时最大可级联 8 个器件 如果只有一个 24C02 被总线寻址 这三 个地址输入脚 A0 A1 A2 可悬空或连接到 Vss 湖南工学院 2011 届专科生毕业设计 12 WP 为写保护 如果 WP 管脚连接到 Vcc 所有的内容都被写保护只能读当 WP 管脚连接到 Vss 或悬空 允许器件进行正常的读 写操作 12 管脚图如图 3 3 所示 图3 3 AT24C02引脚图 3 4I3 4I2 2C C总线说明总线说明 I2C Inter Integrated Circuit 总线是一种由 PHILIPS 公司开发的两线式 串行总线 用于连接微控制器及其外围设备 I2C 总线产生于在 80 年代 最初 为音频和视频设备开发 如今主要在服务器管理中使用 其中包括单个组件状 态的通信 例如管理员可对各个组件进行查询 以管理系统的配置或掌握组件 的功能状态 如电源和系统风扇 可随时监控内存 硬盘 网络 系统温度等 多个参数 增加了系统的安全性 方便了管理 3 1 43 1 4I2C 总线的硬件结构 I2C 串行总线一般有两根信号线 一根是双向的数据线 SDA 另一根是时钟 线 SCL 所有接到 I2C 总线设备上的串行数据 SDA 都接到总线的 SDA 上 各设备 的时钟线 SCL 接到总线的 SCL 上 为了避免总线信号的混乱 要求各设备连接到总线的输出端时必须是开漏 输出或集电极开路输出 设备上的串行数据线 SDA 接口电路应该是双向的 输 出电路用于向总线上发送数据 输入电路用于接收总线上的数据 而串行时钟 线也应是双向的 作为控制总线数据传送的主机 一方面要通过 SCL 输出电路 发送时钟信号 另一方面还要检测总线上的 SCL 电平 以决定什么时候发送下 一个时钟脉冲电平 作为接受主机命令的从机 要按总线上的 SCL 信号发出或 接收 SDA 上的信号 也可以向 SCL 线发出低电平信号以延长总线时钟信号周期 总线空闲时 因各设备都是开漏输出 上拉电阻 RP 使 SDA 和 SCL 线都保持高电 平 任一设备输出的低电平都将使相应的总线信号线变低 也就是说 各设备 的 SDA 是 与 关系 SCL 也是 与 关系 总线对设备接口电路的制造工艺和电平都没有特殊的要求 NMOS CMOS 都 可以兼容 在 I2C 总线上的数据传送率可高达每秒十万位 高速方式时在每秒 四十万位以上 另外 总线上允许连接的设备数以其电容量不超过 400pF 为限 湖南工学院 2011 届专科生毕业设计 13 总线的运行 数据传输 由主机控制 所谓主机是指启动数据的传送 发 出启动信号 发出时钟信号以及传送结束时发出停止信号的设备 通常主机都 是微处理器 被主机寻访的设备称为从机 为了进行通讯 每个接到 I2C 总线 的设备都有一个唯一的地址 以便于主机寻访 主机和从机的数据传送 可以 由主机发送数据到从机 也可以由从机发到主机 凡是发送数据到总线的设备 称为发送器 从总线上接收数据的设备被称为接受器 I2C 总线上允许连接多个微处理器以及各种外围设备 如存储器 LED 及 LCD 驱动器 A D 及 D A 转换器等 为了保证数据可靠地传送 任一时刻总线只 能由某一台主机控制 各微处理器应该在总线空闲时发送启动数据 为了妥善 解决多台微处理器同时发送启动数据的传送 总线控制权 冲突 以及决定由 哪一台微处理器控制总线的问题 I2C 总线允许连接不同传送速率的设备 多台 设备之间时钟信号的同步过程称为同步化 3 4 23 4 2 I2C 总线工作原理 I2C 总线是由数据线 SDA 和时钟 SCL 构成的串行总线 可发送和接收数据 在 CPU 与被控 IC 之间 IC 与 IC 之间进行双向传送 最高传送速率 100kbps 各种被控制电路均并联在这条总线上 但就像电话机一样只有拨通各自的号码 才能工作 所以每个电路和模块都有唯一的地址 在信息的传输过程中 I2C 总 线上并接的每一模块电路既是主控器 或被控器 又是发送器 或接收器 这取决于它所要完成的功能 CPU 发出的控制信号分为地址码和控制量两部分 地址码用来选址 即接通需要控制的电路 确定控制的种类 控制量决定该调 整的类别 如对比度 亮度等 及需要调整的量 这样 各控制电路虽然挂在 同一条总线上 却彼此独立 互不相关 I2C 总线在传送数据过程中共有三种类型信号 它们分别是 开始信号 结束信号和应答信号 开始信号 SCL 为高电平时 SDA 由高电平向低电平跳变 开始传送数据 结束信号 SCL 为高电平时 SDA 由低电平向高电平跳变 结束传送数据 应答信号 接收数据的 IC 在接收到 8bit 数据后 向发送数据的 IC 发出特 定的低电平脉冲 表示已收到数据 CPU 向受控单元发出一个信号后 等待受 控单元发出一个应答信号 CPU 接收到应答信号后 根据实际情况作出是否继 续传递信号的判断 若未收到应答信号 由判断为受控单元出现故障 如图 3 4 所示 湖南工学院 2011 届专科生毕业设计 14 SDA SCL 开始结束 图 3 4 开始 结束信号图 目前有很多半导体集成电路上都集成了 I2C 接口 带有 I2C 接口的单片机 有 CYGNAL 的 C8051F0XX 系列 PHILIPSP87LPC7XX 系列 MICROCHIP 的 PIC16C6XX 系列等 很多外围器件如存储器 监控芯片等也提供 I2C 接口 3 4 33 4 3 总线基本操作 I2C 规程运用主 从双向通讯 器件发送数据到总线上 则定义为发送器 器件接收数据则定义为接收器 主器件和从器件都可以工作于接收和发送状态 总线必须由主器件 通常为微控制器 控制 主器件产生串行时钟 SCL 控 制总线的传输方向 并产生起始和停止条件 SDA 线上的数据状态仅在 SCL 为 低电平的期间才能改变 SCL 为高电平的期间 SDA 状态的改变被用来表示起始 和停止条件 1 控制字节 在起始条件之后 必须是器件的控制字节 其中高四位为器件类型识别符 不同的芯片类型有不同的定义 EEPROM 一般应为 1010 接着三位为片选 最后一位为读写位 当为 1 时为读操作 为 0 时为写操作 2 写操作 写操作分为字节写和页面写两种操作 对于页面写根据芯片的一次装载的 字节不同有所不同 3 读操作 读操作有三种基本操作 当前地址读 随机读和顺序读 图 4 给出的是顺 序读的时序图 应当注意的是 最后一个读操作的第 9 个时钟周期不是 不关 心 为了结束读操作 主机必须在第 9 个周期时发出停止条件或者在第 9 个时 钟周期内保持 SDA 为高电平 然后发出停止条件 在 I2C 总线的应用中应注意的事项总结为以下几点 a 严格按照时序图的要求进行操作 b 若与口线上带内部上拉电阻的单片机接口连接 可以不外加上拉电阻 c 程序中为配合相应的传输速率 在对口线操作的指令后可用 NOP 指令 加一定的延时 d 为了减少意外的干扰信号将 EEPROM 内的数据改写可用外部写保护引脚 如果有 或者在 EEPROM 内部没有用的空间写入标志字 每次上电时或复位 时做一次检测 判断 EEPROM 是否被意外改写 添加 I2C 总线 在现代电子系统中 有为数众多的 IC 需要进行相互之间以及与外界的通 信 为了提供硬件的效率和简化电路的设计 PHILIPS 开发了一种用于内部 IC 湖南工学院 2011 届专科生毕业设计 15 控制的简单的双向两线串行总线 I2C inter IC 总线 I2C 总线支持任何一种 IC 制造工艺 并且 PHILIPS 和其他厂商提供了种类非常丰富的 I2C 兼容芯片 作为一个专利的控制总线 I2C 已经成为世界性的工业标准 每个 I2C 器件都有一个唯一的地址 而且可以是单接收的器件 例如 LCD 驱动器 或者可以接收也可以发送的器件 例如 存储器 发送器或接收器可以在主模式或从模式 下操作 这取决于芯片是否必须启动数据的传输还是仅仅被寻址 I2C 是一个多主总线 即它可以由多个连接的器件控制 早期的 I2C 总线数据传输速率最高为 100Kbits s 采用 7 位寻址 但是由 于数据传输速率和应用功能的迅速增加 I2C 总线也增强为快速模式 400Kbits s 和 10 位寻址以满足更高速度和更大寻址空间的需求 I2C 总线 始终和先进技术保持同步 但仍然保持其向下兼容性 并且最近还增加了高速 模式 其速度可达 3 4Mbits s 它使得 I2C 总线能够支持现有以及将来的高速 串行传输应用 例如 EEPROM 和 Flash 存储器 第四章 硬件设计 4 1 完整电路图 本系统外围电路包括键盘输入电路 密码存储电路 复位电路 显示电路 报警电路 开锁电路组成 根据实际情况键盘输入部分选择 4 4 矩阵键盘 显示部分选择字符型液晶 显示FYD12864 0402B 密码存储部分选用 AT24C02 芯片来完成 其原理图如图 4 1 所 示 湖南工学院 2011 届专科生毕业设计 16 图 4 1 完整电路图 在本原理图中 键盘没有画出来 我们在 P1 口画了一组单排针用于连接 4 4 矩阵式键盘 4 2 键盘电路设计 使用矩阵键盘 所以本设计就采用行列式键盘 同时也能减少键盘与单片 机接口时所占用的 I O 线的数目 在按键比较多的时候 通常采用这样方法 其原理如图 4 2 图 4 2 矩阵键盘 每一条水平 行线 与垂直线 列线 的交叉处不相通 而是通过一个按 键来连通 利用这种行列式矩阵结构只需要 N 条行线和 M 条列线 即可组成具 有 N M 个按键的键盘 在这种行列式矩阵键盘非键盘编码的单片机系统中 键盘处理程序首先执 行等待按键并确认有无按键按下的程序段 湖南工学院 2011 届专科生毕业设计 17 当确认有按键按下后 下一步就要识别哪一个按键按下 对键的识别通常 有两种方法 一种是常用的逐行扫描查询法 另一种是速度较快的线反转法 对照图 4 2 所示的 4 4 键盘 说明线反转个工作原理 首先辨别键盘中有无键按下 有单片机 I O 口向键盘送全扫描字 然后读 入行线状态来判断 方法是 向行线输出全扫描字 00H 把全部列线置为低电 平 然后将列线的电平状态读入累加器 A 中 如果有按键按下 总会有一根行 线电平被拉至低电平从而使行线不全为 1 判断键盘中哪一个键被按下使通过将列线逐列置低电平后 检查行输入状 态来实现的 方法是 依次给列线送低电平 然后查所有行线状态 如果全为 1 则所按下的键不在此列 如果不全为 1 则所按下的键必在此列 而且是在 与零电平行线相交的交点上的那个键 具体的功能设计如表 4 1 表 4 1 按键功能 按 键键 名功 能 说 明 1 9 键数 字 键输 入 密 码 键重 设 密 码 键设 定 新 密 码 ENTRE 键确 定 键比 较 密 码 键上锁键使密码锁上锁 4 3 液晶显示电路 FYD12864 0402B 是一种具有 4 位 8 位并行 2 线或 3 线串行多种接口方式 内 部含有国标一级 二级简体中文字库的点阵图形液晶显示模块 其显示分辨率 为 128 64 内置 8192 个 16 16 点汉字 和 128 个 16 8 点 ASCII 字符集 利用 该模块灵活的接口方式和简单 方便的操作指令 可构成全中文人机交互图形 界面 可以显示 8 4 行 16 16 点阵的汉字 也可完成图形显示 低电压低功耗 是其又一显著特点 由该模块构成的液晶显示方案与同类型的图形点阵液晶显 示模块相比 不论硬件电路结构或显示程序都要简洁得多 且该模块的价格也 略低于相同点阵的图形液晶模块 基本特性 低电源电压 VDD 3 0 5 5V 显示分辨率 128 64 点 内置汉字字库 提供 8192 个 16 16 点阵汉字 简繁体可选 内置 128 个 16 8 点阵字符 2MHZ 时钟频率 显示方式 STN 半透 正显 驱动方式 1 32DUTY 1 5BIAS 湖南工学院 2011 届专科生毕业设计 18 视角方向 6 点 背光方式 侧部高亮白色 LED 功耗仅为普通 LED 的 1 5 1 10 通讯方式 串行 并口可选 内置 DC DC 转换电路 无需外加负压 无需片选信号 简化软件设计 工作温度 0 55 存储温度 20 60 表 4 2 串行接口管脚信号表 管脚号名称 LEVEL 功能 1VSS0V 电源地 2VDD 5V 电源正 3 0V 5 5V 3VO 对比度 亮度 调整 4CSH L 模组片选端 高电平有效 5SLDH L 串行数据输入端 6CLKH L 串行同步时钟 上升沿时读取 SLD 数据 15PSBL 串行方式 17 RESETH L 复位端 低电平有效 19AVDD 背光电源电压 5V 20KVSS 背光电源负电压 0V 湖南工学院 2011 届专科生毕业设计 19 表 4 3 并行接口管脚信号表 管脚号管脚名称电平管脚功能描述 1VSS0V 电源地 2VCC3 0 5V 电源正 3V0 对比度 亮度 调整 4 RS CS H L RS H 表示 DB7 DB0 为显示数据 RS L 表示 DB7 DB0 为显示指令数据 5 R W SID H L R W H E H 数据被读到 DB7 DB0 R W L E H L DB7 DB0 的数据 被写到 IR 或 DR 6E SCLK H L 使能信号 7DB0H L 三态数据线 8DB1H L 三态数据线 9DB2H L 三态数据线 10DB3H L 三态数据线 11DB4H L 三态数据线 12DB5H L 三态数据线 13DB6H L 三态数据线 14DB7H L 三态数据线 15PSBH L H 8 位或 4 位并口方式 L 串口方式 见 注释 1 16NC 空脚 17 RESETH L 复位端 低电平有效 见注释 2 18VOUT LCD 驱动电压输出端 19AVDD 背光源正端 5V 见注释 3 20KVSS 背光源负端 见注释 3 注释 1 如在实际应用中仅使用并口通讯模式 可将 PSB 接固定高电平 也可 以将模块上的 J8 和 VCC 用焊锡短接 注释 2 模块内部接有上电复位电路 因此在不需要经常复位的场合可将该端 悬空 注释 3 如背光和模块共用一个电源 可以将模块上的 JA JK 用焊锡短接 根据以上对 FYD12864 0402 介绍我们可以设计出液晶显示的原理图 原理图如图 4 3 湖南工学院 2011 届专科生毕业设计 20 图 4 3 液晶显示 可变电阻 RA 用于调整液晶显示的亮度 4 4 开锁电路 在本次设计中 基于节省材料的原则 暂时用绿色发光二极管代替电磁锁 发光管亮 表示开锁 灭 表示没有开锁 当 P2 0 口输出低电平时 二极管发 光 表示开锁 开锁控制电路的功能是当输入正确的密码后将锁打开 系统使 用单片机 P2 0 引脚线发出信号 经三极管放大后 由继电器驱动电磁阀动作将 锁打开 用户通过键盘任意设置密码 并储存在 AT24C02 中作为锁码指令 只 有用户操作键盘时 单片机的电源端才能得到 3V 电源 否则 单片机处于节电 工作方式 开锁步骤如下 首先按下键盘上的开锁按键 然后利用键盘上的数 字键 0 9 输入密码 最后按下确认键 当用户输入密码后 单片机自动识别密 码 如果密码不符 则报警 只有当密码正确 单片机才能使继电器处于开锁 状态 具体电路如电路图如 4 4 所示 图 4 4 开锁电路 湖南工学院 2011 届专科生毕业设计 21 4 5 报警电路 报警模块由蜂鸣器 红色发光二级管和单片机组成 选择一只压电式蜂鸣 器 压电式蜂鸣器工作时约需要 100mA 驱动电流 报警电路如图 4 5 所示 当 AT89S52 的 P2 1 口输出为低电平时 蜂鸣器产生蜂鸣音 红色发光二级管发光 AT89S52 输出为高电平时 蜂鸣器不发声 红色发光二级管不发光 图 4 5 报警电路 4 64 6 掉电储存密码电路掉电储存密码电路 作为密码锁 掉电保护是必须的 在这里我们用AT24C02来储存密码 AT24C02的1 2 3脚是三条地址线 用于确定芯片的硬件地址 在AT89S52试验 开发板上它们都接地 第4脚和第8脚分别为正 负电源 第6脚SDA为串行数据 输入 输出 数据通过这条双向I C总线串行传送 在AT89S52试验开发板上和单 片机的P3 2连接 第5脚SCK为串行时钟输入线 在AT89S52试验开发板上和单片 机的P3 3连接 SDA和SCK都需要和正电源间各接一个5 1K的电阻上拉 第7脚接 地 其电路如图4 6所示 图 4 6 掉电保护电路 湖南工学院 2011 届专科生毕业设计 22 AT24C02中带有片内地址寄存器 每写入或读出一个数据字节后 该地址寄 存器自动加1 以实现对下一个存储单元的读写 所有字节均以单一操作方式读 取 为降低总的写入时间 一次操作可写入多达8个字节的数据 4 74 7 单片机复位电路单片机复位电路 单片机复位是使 CPU 和系统中的其他功能部件都处在一个确定的初始状态 并 从这个状态开始工作 该电路在最简单的复位电路下增加了手动复位按键 在 接通电源瞬间 电容 C1 上的电压很小 复位下拉电阻上的电压接近电源电压 即 RST 为高电平 在电容充电的过程中 RST 端电压逐渐下降 当 RST 端的电压 小于某一数值后 CPU 脱离复位状态 由于电容 C1 足够大 可以保证 RST 高电 平有效时间大于 24 个振荡周期 CPU 能够可靠复位 增加手动复位按键是为了 避免死机时无法可靠复位 当复位按键按下后电容 C1 通过 R1 放电 当电容 C1 放电结束后 RST 端的电位由 R1 与 R2 分压比决定 由于 R1 R2 因此 RST 为高 电平 CPU 处于复位状态 松手后 电容 C1 充电 RST 端电位下降 CPU 脱离 复位状态 R1 的作用在于限制按键按下瞬间电容 C1 的放电电流 避免产生火 花 以保护按键触电 其电路如图 4 7 所示 图 4 7 单片机复位电路 4 84 8 振荡电路振荡电路 AT89S52 引脚 XTAL1 和 XTAL2 与晶体振荡器及电容 C2 C3 按图 3 7 所示方 式连接 晶振 电容 C2 C3 及片内与晶振构成了电容三点式振荡器 振荡信号 频率与晶振频率及电容 C2 C3 的容量有关 但主要由晶振频率决定 范围在 0 33MHz 之间 电容 C2 C3 取值范围在 5 30pF 之间 根据实际情况 本设 计中采用 12MHZ 作为系统的外部晶振 电容取值为 30pF 其电路图如图 4 8 所 示 湖南工学院 2011 届专科生毕业设计 23 图 4 8 振荡电路 4 9 PCB 版设计版设计 在 protel 内画出该系统硬件的 PCB 板 从中可以看出各元件的布局以及布 线情况 其中主电路 PCB 如图 4 9 所示 图 4 9 主电路 PCB 图 湖南工学院 2011 届专科生毕业设计 24 第 5 章 软件设计 5 1 软件设计思路 电子密码锁工作的主要过程是液晶显示器提示开始输入密码 通过键盘输 入密码 同时液晶显示密码输入情况 按下确认键后判断密码的正确性 作出 开锁或报警处理 当输入密码连续输入错误 3 次时 系统报警 密码的设定 在此程序中密码是固定 AT24C02 中 假设预设的密码为 8888888 共 6 位密码 密码的输入通过键盘在 P1 口输入单片 在没有键按下的时候 系统处于待机状态 当有键被按下时 系统只有 开锁 功能键供用户选择 当按下 开锁 键后 系统提示用户输入密码 当输入密码正确时启动开锁程序 进行开锁 如果输入密码错误 则用户还有 两次输入密码的机会 如果三次输入均错误 则系统自动报警 系统返回初始 状态 此时只有输入超级密码才能开锁 预设超级密码为 051866 密码使 用一次即失效 只有重新设置密码后才能在次上锁 湖南工学院 2011 届专科生毕业设计 25 5 2 各程序设计 5 2 1 主程序 有本设计的要求可以画出主程序流程图 如图 5 1 所示 输输入入超超级级密密码码 解解锁锁 密密码码锁锁待待机机状状 态态 A AT T2 24 4C C0 02 2第第 七七位位的的内内容容 是是否否为为1 1 密密码码锁锁设设置置初初 值值 密密码码锁锁跳跳过过设设 置置初初值值 N N Y Y 输输入入密密码码 输输入入密密码码是是 否否正正确确 开开锁锁 密密码码失失效效 显显示示器器显显示示密密 码码输输入入错错误误 记记录录输输入入错错 误误的的次次数数N N 是是否否小小于于3 3 键键盘盘锁锁死死 重重置置密密码码 上上锁锁 结结束束 Y Y N N N N Y Y 图 5 1 主程序原理图 湖南工学院 2011 届专科生毕业设计 26 5 2 2 键扫程序 根据矩阵式键盘的编程规则 我们可以很容易写出键扫子程序流程图 键扫子程序流程图如图 5 2 所示 开开始始 设设置置初初值值 送送入入行行扫扫描描初初 值值 设设C C 1 1左左移移测测列列 C C 0 0 设设C C 1 1右右移移测测列列 C C 0 0 调调消消除除抖抖动动子子 程程序序 读读P P1 1的的值值 V V 0 0 调调显显示示子子程程序序 结结束束 S SC CA AN N 0 0 Y Y N N Y Y N N N N Y Y 图 5 2 键盘扫描流程图 5 2 3 密码比较和报警程序 密码锁在输入密码时只有密码完全相同才能开锁 超过 3 次输入错误则启 动报警电路 并且锁定键盘 密码比较和报警流程图如 5 3 所示 湖南工学院 2011 届专科生毕业设计 27 图 5 3 密码比较和报警流程 5 2 4 AT24C02 读写程序设计 有前面对于 24C02 和I2C 总线工作原理的介绍 我们很容易写出流程图 图 5 4 读操作算法流程图 图 5 5 写操作算法流程图 开开始始 读读状状态态寄寄存存器器 0 0 送送地地址址 读读写写控控制制寄寄存存 器器 0 0 控控制制寄寄存存器器 1 1 读读状状态态寄寄存存器器 0 0 取取走走数数据据 结结束束 N N Y Y N N Y Y 开开始始 读读状状态态寄寄存存器器 0 0 送送地地址址与与数数据据 读读写写控控制制寄寄存存 器器 1 1 控控制制寄寄存存器器 1 1 结结束束 Y Y N N 图 5 4 读操作算法流程图 图 5 5 写操作算法流程图 5 2 5 上锁程序设计 由于设计要求密码锁在开锁状态下只有重置密码才能上锁 我们可 以写出密码锁上锁流程图如图 5 6 所示 密密码码锁锁开开机机状状 态态 输输入入6 6位位新新密密码码 密密码码存存入入 A AT T2 24 4C C0 02 2中中 上上锁锁 结结束束 图 5 6 上锁流程图 湖南工学院 2011 届专科生毕业设计 28 致 谢 毕业设计是培养学生综合运用所学知识 发现 提出 分析和解决实际问题 锻炼实践能力的重要环节 是对学生实际工作能力的具体训练和考察过程 随着 科学技术发展的日新日异 单片机已经成为当今计算机应用中空前活跃的领域 在生活中可以说得是无处不在 因此作为二十一世纪的大学来说掌握单片机的 开发技术是十分重要的 回顾起这次以单片机为核
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 起重指挥考试题库及答案
- 森林火灾防治知识培训课件
- 森林消防扑灭火课件
- 桥梁预算编制课件
- 桥梁行车安全知识培训课件
- 风湿免疫科医师应聘试题试卷(临床专业)含答案
- 2025主管护师冲刺试题专业知识题目附答案
- 2025年气排球裁判试题库及答案
- 桥梁基础及下部结构
- 桥梁养护应急知识培训课件
- 2025年芜湖市鸠江区医院招聘16名工作人员笔试参考题库附答案解析
- T-CBDA 86-2025 建筑幕墙、采光顶及金属屋面工程质量验收标准
- 厨房消防安全培训
- 小陈 税务风险应对常见指标与答复思路
- 2025年《中华人民共和国档案法》知识培训试题及答案
- 2026年高考政治一轮复习:必修2《经济与社会》知识点背诵提纲
- 2025至2030年中国建筑膜行业市场调查研究及发展趋势预测报告
- 2025年急诊急救试题(附答案)
- 变电站新员工培训课件
- 会所会议室管理制度
- 2025年来电网招聘考试题库
评论
0/150
提交评论