电子万年历的设计与制作毕业设计论文.doc_第1页
电子万年历的设计与制作毕业设计论文.doc_第2页
电子万年历的设计与制作毕业设计论文.doc_第3页
电子万年历的设计与制作毕业设计论文.doc_第4页
电子万年历的设计与制作毕业设计论文.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

天津电子信息职业技术学院天津电子信息职业技术学院 课课 程程 设设 计计 课题名称课题名称 电子万年历的设计与制作电子万年历的设计与制作 班班 级级 通信通信 S11 1 班班 专专 业业 通信技术通信技术 所所 在在 系系 电子技术系电子技术系 2 电子万年历的设计与制作电子万年历的设计与制作 摘要摘要 单片机就是微控制器 是面向应用对象设计 突出控制功能的芯片 单片机接上晶 振 复位电路和相应的接口电路 装载软件后就可以构成单片机应用系统 将它嵌入到 形形色色的应用系统中 就构成了众多产品 设备的智能化核心 本设计就是应用单片 机强大的控制功能制作而成的电子万年历 关键词 单片机 时钟电路 动态扫描 关键词 单片机 时钟电路 动态扫描 目录目录 3 一 设计要求与方案论证一 设计要求与方案论证 6 6 1 设计要求 6 2 系统基本方案选择 7 1 单片机芯片的选择方案和论证 7 2 显示模块选择方案和论证 7 3 显示器的结构 8 3 键盘模块的选择 8 4 方案论证 9 1 技术可行性 9 二 系统的硬件设计与实现二 系统的硬件设计与实现 9 9 1 电路设计框图 9 2 系统硬件概述 10 1 控制模块 10 2 结构 10 3 脚定义及功能 10 1 源及时钟引脚 10 2 控制引脚 10 3 I O 口引脚 11 3 片外总线结构 11 4 要单元电路的设计 11 1 控制模块的设计 11 4 2 模块器件 12 3 电路模块的设计 14 4 电路原理及说明 15 5 数据的输出与输入 I O 16 6 DS1302 的寄存器 16 5 显示模块的设计 17 三 系统的软件设计三 系统的软件设计 1818 1 程序流程框图 18 2 子程序的设计 21 1 键盘子程序的实现 21 2 读写 DS1302 子程序 21 3 系统硬件电路设计 23 4 系统硬件 PROTEUS 仿真原理图 24 5 主要单元电路的设计 24 1 显示 4 1 显示部分设计 24 2 键盘接口 25 3 按键开关去抖动问题 25 4 查询式按键及其接口 26 5 矩阵式键盘及其接口 26 6 键盘扫描控制方式 26 四 测试结果分析与结果四 测试结果分析与结果 2727 5 1 测试结果分析 27 1 在测试中遇到 LEDLCD16824 不显示 27 2 按键调整时 不是按单位递增和递减 28 五 系统评价五 系统评价 2828 六 系统程序清单六 系统程序清单 2828 七 谢辞七 谢辞 3131 八 参考文献八 参考文献 3131 绪论绪论 随着人们生活水平的提高和生活节奏的加快 对时间的要求越来越高 精准数字计 时的消费需求也是越来越多 二十一世纪的今天 最具代表性的计时产品就是电子时钟 它是近代世界钟表业界 6 的第三次革命 第一次是摆和摆轮游丝的发明 相对稳定的机械振荡频率源使钟表的走 时差从分级缩小到秒级 代表性的产品就是带有摆或摆轮游丝的机械钟或表 第二次革 命是石英晶体振荡器的应用 发明了走时精度更高的石英电子钟表 使钟表的走时月差 从分级缩小到秒级 第三次革命就是单片机数码计时技术的应用 使计时产品的走时日 差从分级缩小到 1 600 万秒 从原有传统指针计时的方式发展为人们日常更为熟悉的夜 光数字显示方式 直观明了 并增加了全自动日期 星期的显示功能 它更符合消费者 的生活需求 因此 电子时钟的出现带来了钟表计时业界跨跃性的进步 本设计采用的是 AT89S52 单片机 该单片机采用的 MCU51 内核 因此具有很好的兼 容性 内部带有 8KB 的 ROM 能够存储大量的程序 最突出特点是具有 ISP 在系统烧写功 能 使得烧写程序更加方便 计时芯片采用 DALLAS 公司的涓细充电时钟芯片 DS1302 该芯片通过简单的串行通信 与单片机进行通信 时钟 日历电路能够实时提供年 月 日 时分 秒信息 采用双电 源供电 当外部电源掉电时能够利用后备电池准确计时 通过此次设计能够更加牢固的掌握单片机的应用技术 增强动手能力 硬件设计能力 以及软件设计能力 一 设计要求与方案论证一 设计要求与方案论证 1 设计要求 设计要求 本电子时钟能动态显示分钟 秒 2 系统基本方案选择系统基本方案选择 1 单片机芯片的选择方案和论证 单片机芯片的选择方案和论证 方案一 采用 89C51 芯片作为硬件核心 采用 Flash ROM 内部具有 4KB ROM 存储空间 能于 3V 的超低压工作 而且与 MCS 51 系列单片机完全兼容 但是运用于电路设计中时由于不具 备 ISP 在线编程技术 当在对电路进行调试时 由于程序的错误修改或对程序的新增功 能需要烧入程序时 对芯片的多次拔插会对芯片造成一定的损坏 方案二 采用 AT89S52 片内 ROM 全都采用 Flash ROM 能以 3V 的超底压工作 同时也与 MCS 51 系列单片机完全该芯片内部存储器为 8KB ROM 存储空间 同样具有 89C51 的功能 且 具有在线编程可擦除技术 当在对电路进行调试时 由于程序的错误修改或对程序的新 增功能需要烧入程序时 不需要对芯片多次拔插 所以不会对芯片造成损坏 所以选择采用 AT89S52 作为主控制系统 方案三 7 DS1302 是美国 DALLAS 公司推出的一种高性能 低功耗的实时时钟芯片 附加 31 字 节静态 RAM 采用 SPI 三线接口与 CPU 进行通信 并可采用突发方式一次传送多个字节的 时钟信号和 RAM 数据 实时时钟可提供秒 分 时 日 星期 月和年 一个月小与 31 天时可以自动调整 且具有闰年补偿功能 工作电压宽达 2 5 5 5V 采用双电源供电 主电源和备用电源 可设置备用电源充电方式 提供了对后备电源进行涓细电流充电 的能力 利用单片机强大的控制功能就可实现实时计时的功能 而且消耗的系统资源少 程序简单 2 显示模块选择方案和论证 显示模块选择方案和论证 方案一 采用 LED 液晶显示屏 液晶显示屏的显示功能强大 可显示大量文字 图形 显示多样 清晰可见 但是价格昂贵 需要的接口线多 所以在此设计中不采用 LED 液晶显示屏 方案二 采用点阵式数码管显示 点阵式数码管是由八行八列的发光二极管组成 对于显示 文字比较适合 如采用在显示数字显得太浪费 且价格也相对较高 所以也不用此种作为显 示 方案三 采用 LED 数码管动态扫描 LED 数码管价格适中 对于显示数字最合适 而且采用动态 扫描法与单片机连接时 占用的单片机口线少 LED 显示数码管 常见的 LED 显示具有清晰明亮的特点 是显示接口也是绝大多数单片机应用系统必 备的部件之一 发光二极管组成的显示器是单片机应用产品中最常用的廉价输出设备 它由若干个 发光二极管按一定的规律排列而成 当某一个发光二极管导通时 相应的一个点或一笔 画被点亮 控制不同组合的二极管导通 就能显出各种字符 所以采用了 LED 数码管作为显示 3 显示器的结构显示器的结构 常用的 7 段显示器的结构如图所示 发光二极管的阳极连在一起的称为共阳极显示 器 阴极连在一起的成为共阴显示器 1 位显示器由 8 个发光二极管组成 其中 7 个发光 二极管 a g 控制 7 个笔画的亮或暗 另一个控制一个小数点的亮和暗 这种笔画的七段 显示器能显示的字符较少 字符的形状有些失真 但失控简单 使用方便 8 3 键盘模块的选择键盘模块的选择 在对日期和时间进行切换 对日期和时间进行调节校准过程 中 系统需要产生激 励电流 因此需要用按键 方案一 使用独立式键盘 独立式键盘是指直接用 I O 口线构成的单个按键电路 独立式按键电路配置灵活 软件结构简单 方案二 使用矩阵式键盘 矩阵式键盘是由行线和列线组成 按键位于行 列的交 叉点上 行线 列线分别连接到按键开关的两端 其特点是简单且不增加成本 这种键 盘适合按键数量较多的场合 根据以上的论述 因本系统需要的按键不多 日期加 1 键 月数加 1 键 年数加 1 键 分数加 1 键 时数加 1 键 时间 日期切换键 要求简单 所以采用方案一独立式 键盘 4 方案论证方案论证 1 技术可行性 技术可行性 随着国内超大规模集成电路的出现 微处理器及其外围芯片有了迅速的发展 集成 技术的最新发展之一是将 CPU 和外围芯片 如程序存储器 数据存储器 并行 I O 口 串行 I O 口 定时 计数器 中断控制器及其他控制部件集成在一个芯片之中 制成单片 计算机 Single Chip Microcomputer 而近年来推出的一些高档单片机还包括有许多 特殊功能单元 如 A D D A 转换器 调制解调器 通信控制器 锁相环 DMA 浮点运 算单元 PWM 控制输出单元 PWM 输出时的死区可编程控制功能等 因此 只要外加一些 扩展电路及必要的通道接口就可以构成各种计算机应用系统 如工业流水线控制系统 作为家用电器的主控制器 分布式控制系统的终端节点或作为其主控制节点起中继的作 9 用 数据采集系统 自动测试系统等 单片机的出现 并在各技术领域中得到如此迅猛的发展 与单片机构成计算机应用 系统所形成的下述特点有关 单片机构成的应用系统有较大的可靠性 这些可靠性的获得除了依靠单片机芯片本 身的高可靠性以及应用有最少的联接外 还可以方便地采用软 硬件技术 系统扩展 系统配置较典型 规范 容易构成各种规模的应用系统 应用系统有较 高的软 硬件利用系数 由于构成的应用系统是一个计算机系统 相当多的测 控功能由软件实现 故具有 柔性特征 不须改变硬件系统就能适当地改变系统功能 有优异的性能 价格比 综上各方案所述 对此次作品的方案选定 采用 C52 作为主控制系统 LED 数码管动 态扫描作为显示 二 系统的硬件设计与实现二 系统的硬件设计与实现 1 电路设计框图 电路设计框图 2 系统硬件概述 系统硬件概述 1 控制模块控制模块 AT89S52 单片机为 40 引脚双列直插芯片 有四个 I O 口 P0 P1 P2 P3 MCS 51 单片机 共有 4 个 8 位的 I O 口 P0 P1 P2 P3 每一条 I O 线都能独立地作输出或输入 如图所示 2 结构结构 按功能分为 8 部分 CUP 程序存储器 数据存储器 时钟电路 串行口 并行 I O AT89C52 主控制模 块 时钟模块 LED 数码管动态扫 描显示模块 键盘模块 10 口 中断系统 定时 计数器 3 脚定义及功能脚定义及功能 1 源及时钟引脚源及时钟引脚 Vcc 接 5V 电源 Vss 接地 XTAL1 和 XTAL2 时钟引脚 外接晶体引线端 当使用芯片内部时钟时 此两引脚端 用于外接石英晶体和微调电容 当使用外部时钟时 用于接外部时钟脉冲信号 2 控制引脚 控制引脚 RST Vpq RST 是复位信号输入端 Vpd 是备用电源输入端 当 RST 输入端保持 2 个 机器周期以上高电平时 单片机完成复位初始化操作 当主电源 Vcc 发生故障而突然下降到一定低电压或断电时 第 2 功能 Vpd 将为片内 RAM 提供电源以保护片内 RAM 中的信息不丢失 ALE PROG 地址锁存允许信号输入端 在存取外存储器时 用于锁存低 8 位地址信 号 当单片机正常工作后 ALE 端就周期性地以时钟振荡频率的 1 6 固定频率向外输出正 脉冲信号 此引脚的第 2 功能 PROG 是对片内带有 4K 字节 EPROM 的 8751 固外程序时 作 为编程脉冲输入端 PSEN 程序存储器允许输出端 当片外程序存储器的读选通信号 低电平有效 CPU 从外部程序存储器取指令时 PSEN 信号会自动产生负脉冲 作为外部程序存储器的选通 信号 EA Vpp 程序存储器地址允许输入端 当 EA 为高电平时 CPU 执行片内程序存储器 指令 但当 PC 中的值超过 0FFFH 时 将自动转向执行片外程序存储器指令 当 EA 为低 电平时 CPU 只执行片外程序存储器指令 3 I O 口引脚口引脚 P0 0 P0 7 P0 口 8 位双向 I O 口 P1 0 P1 7 P1 口 8 位准双向 I O 口 P2 0 P2 7 P2 口 8 位准双向 I O 口 P3 0 P3 7 P3 口 8 位准双向 I O 口 3 片外总线结构 片外总线结构 分为三部分 数据总线 Data Bus DB 地址总线 Address Bus AB 控制总线 Control Bus CB 本电路是由 AT89C52 单片机为控制核心 具有在线编程功能 低功耗 能在 3V 超低压 工作 时钟电路由 DS1302 提供 它是一种高性能 低功耗 带 RAM 的实时时钟电路 它 11 可以对年 月 日 周日 时 分 秒进行计时 具有闰年补偿功能 工作电压为 2 5V 5 5V 采用三线接口与 CPU 进行同步通信 并可采用突发方式一次传送多个字节 的时钟信号或 RAM 数据 DS1302 内部有一个 31 8 的用于临时性存放数据的 RAM 寄存器 可产生年 月 日 周日 时 分 秒 具有使用寿命长 精度高和低功耗等特点 同 时具有掉电自动保存功能 温度的采集由 DS18B20 构成 显示部份由 4 个数码管 74ls138 74ls47 译码器构成 使用动态扫描显示方式对数字的显示 4 单元电路的设计单元电路的设计 1 控制模块的设计 控制模块的设计 单片机原理单片机原理 单片机就是简化的微型计算机 CPU 中本身自带存储器 ROM 和 RAM CPU 片内也有总 线 IC 集成电路 技术是将电路通过特殊工艺做在一块硅基片上封装成芯片 比如 CPU 片外存储器等等 将单片机 CPU 比如 51 系列 晶振 存储器 地址锁存器 逻辑门 七段译码器 显 示器 按钮 类似键盘 扩展芯片 接口等通过 PCB 工艺 比如 SMT 贴片 或者插 装 做在环氧树脂板上 这样才是一个完整的单片 做在一块 PCB 板上 的微型计算机 AT89S52 单片机为 40 引脚双列直插芯片 有四个 I O 口 P0 P1 P2 P3 MCS 51 单片 机共有 4 个 8 位的 I O 口 P0 P1 P2 P3 每一条 I O 线都能独立地作输出或输入 单片机的最小系统如下图所示 18 引脚和 19 引脚接时钟电路 XTAL1 接外部晶振和微 调电容的一端 在片内它是振荡器倒相放大器的输入 XTAL2 接外部晶振和微调电容的另一 端 在片内它是振荡器倒相放大器的输出 第 9 引脚为复位输入端 接上电容 电阻及开关 后够上电复位电路 20 引脚为接地端 40 引脚为电源端 如图 1 所示 12 图 1 主控制系统 1 一个 8 位的微处理器 CPU 2 片内数据存储器 RAM 128B 256B 3 片内程序存储器 ROM EPROM 4kB 8kB 4 4 个 8 位并行 I O 拉口 P0 P3 每个口既可以作输入也可以作输出 5 2 个 16 位定时器 计数器 6 5 个中断源的中断控制系统 7 1 个全双工的串行 I O 接口 8 片内时钟振荡器 2 模块器件 模块器件 74LS16474LS164 它是个串入并出的 8 位移位寄存器 它常用于单片机系统中 下面结束一下这个元件 的基本知识 74LS164 引脚图 13 74LS164 内部功能图 74LS164 逻辑符合表 串行输入带锁存 时钟输入 串行输入带缓冲 异步清除 最高时钟频率可高达 36Mhz 功耗 10mW bit 74 系列工作温度 0 C to 70 C Vcc 最高电压 7V 输入最高电压 7V 高电平 0 4mA 低电平 8mA 3 电路模块的设计 电路模块的设计 图 2 示出 DS1302 的引脚排列 其中 Vcc1 为后备电源 Vcc2 为主电源 在主电源关 闭的情况下 也能保持时钟的连续运行 DS1302 由 Vcc1 或 Vcc2 两者中的较大者供电 当 Vcc2 大于 Vcc1 0 2V 时 Vcc2 给 DS1302 供电 当 Vcc2 小于 Vcc1 时 DS1302 由 Vcc1 供电 X1 和 X2 是振荡源 外接 32 KHz 晶振 RST 是复位 片选线 通过 把 RST 输入驱动置高电平来启动所有的数据传送 RST 输入有两种功能 首先 RST 接通 控制逻辑 允许地址 命令序列送入移位寄存器 其次 RST 提供终止单字节或多字节数 据的传送手段 当 RST 为高电平时 所有的数据传送被初始化 允许对 DS1302 进行操作 如果在传 送过程中 RSTS 置为低电平 则会终止此次数据传送 I O 引脚变为高阻态 上电动行时 在 Vcc 大于等于 2 5V 之前 RST 必须保持低电平 中有在 SCLK 为低电平时 才能将 RST 置为高电平 I O 为串行数据输入端 双向 SCLK 始终是输入端 14 图 2 DS1302 的引脚图 4 电路原理及说明 电路原理及说明 时钟芯片时钟芯片 DS1302DS1302 的工作原理 的工作原理 DS1302 在每次进行读 写程序前都必须初始化 先把 SCLK 端置 0 接着把 RST 端置 1 最后才给予 SCLK 脉冲 读 写时序如下图 4 所示 图 5 为 DS1302 的控制字 此控制字的位 7 必须置 1 若为 0 则不能把对 DS1302 进行读写数据 对于位 6 若对程 序进行读 写时 RAM 1 对时间进行读 写时 CK 0 位 1 至位 5 指操作单元的地址 位 0 是读 写操作位 进行读操作时 该位为 1 该位为 0 则表示进行的是写操作 控制字节 总是从最低位开始输入 输出的 表 6 为 DS1302 的日历 时间寄存器内容 CH 是时 钟暂停标志位 当该位为 1 时 时钟振荡器停止 DS1302 处于低功耗状态 当该位为 0 时 时钟开始运行 WP 是写保护位 在任何的对时钟和 RAM 的写操作之前 WP 必须为 0 当 WP 为 1 时 写 保护位防止对任一寄存器的写操作 DS1302DS1302 的控制字节 的控制字节 15 DS1302 的控制字如表 1 所示 控制字节的高有效位 位 7 必须是逻辑 1 如果它 为 0 则不能把数据写入 DS1302 中 位 6 如果 0 则表示存取日历时钟数据 为 1 表示 存取 RAM 数据 位 5 至位 1 指示操作单元的地址 最低有效位 位 0 如为 0 表示要进行 写操作 为 1 表示进行读操作 控制字节总是从最低位开始输出 5 数据的输出与输入 数据的输出与输入 I O 在控制指令字输入后的下一个 SCLK 时钟的上升沿时 数据被写入 DS1302 数据输入 从低位即位 0 开始 同样 在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲的下降沿读出 DS1302 的数据 读出数据时从低位 0 位到高位 7 如下图 4 所示 图 4 DS1302 读 写时序图 6 DS1302 的寄存器的寄存器 DS1302 有 12 个寄存器 其中有 7 个寄存器与日历 时钟相关 存放的数据位为 BCD 码形式 其日历 时间寄存器及其控制字见表 1 16 表 1 DS1302 的日历 时间寄存器 此外 DS1302 还有年份寄存器 控制寄存器 充电寄存器 时钟突发寄存器及与 RAM 相关的寄存器等 时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内 容 DS1302 与 RAM 相关的寄存器分为两类 一类是单个 RAM 单元 共 31 个 每个单元 组态为一个 8 位的字节 其命令控制字为 C0H FDH 其中奇数为读操作 偶数为写操作 另一类为突发方式下的 RAM 寄存器 此方式下可一次性读写所有的 RAM 的 31 个字节 命 令控制字为 FEH 写 FFH 读 5 显示模块的设计显示模块的设计 如图 5 所示 采用动态扫描显示 由 个数码管 3 8 译码器 74LS138 接 1K 限流 电阻 再接 8550 三极管接到共阳数码管的 CoM 端作为选通位码 每位选择相应的列 74ls47 接 240 限流电阻 再接共行的 LED 数码管的断码 图 5 LED 动态扫描显示 17 三 系统的软件设计三 系统的软件设计 1 程序流程框图程序流程框图 图 A 主程序流程图 开始 初始化 读 写时间 分离时间显示值 显示子程序 农历自动更新子程 序 日期 时间修改子程 序 闰月子程 返回 定时闹铃子程序 18 图 B 计算阳历程序流程图 19 图 C 时间调整程序流程图 20 2 子程序的设计 子程序的设计 1 1 键盘子程序的实现键盘子程序的实现 键盘示意图如图所示 图21 按键示意图 主要函数模块 C语言 函 数 名 void key count 功能描述 设置状态转换函数 根据变量count的不同值 对应不同的设置状态按下设置键 自动切 换设置位 函 数 名 void key out 功能描述 跳出设置模式 函 数 名 uchar key up int temp int max int min 功能描述 按键加函数 在最大值与最小值之间变化 函 数 名 uchar key down int temp int max int min 功能描述 按键减函数 在最大值与最小值之间变化 函 数 名 void set year void set month void set day void set hour void set minute 2 读写读写 DS1302 子程序子程序 CLR SCLK NOP SETB RST NOP MOV A 32H MOV R4 8 WRITE1 RRC A 送地址给 1302 NOP NOP CLR SCLK NOP NOP NOP MOV IO C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4 WRITE1 CLR SCLK NOP MOV A 31H 21 MOV R4 8 WRITE2 RRC A NOP 送数据给 1302 CLR SCLK NOP NOP MOV IO C NOP NOP NOP SETB SCLK NOP NOP DJNZ R4 WRITE2 CLR RST RET 读 1302 程序 READ CLR SCLK NOP NOP SETB RST NOP MOV A 32H MOV R4 8 READ1 RRC A 送地址给 1302 NOP MOV IO C NOP NOP NOP SETB SCLK NOP NOP NOP CLR SCLK NOP NOP DJNZ R4 READ1 MOV R4 8 READ2 CLR SCLK NOP 从 1302 中读出 数据 NOP NOP MOV C IO NOP NOP NOP NOP NOP RRC A NOP NOP NOP NOP SETB SCLK NOP DJNZ R4 READ2 MOV 31H A CLR RST RET 3 系统硬件电路设计 系统硬件电路设计 本设计硬件电路图如下本设计硬件电路图如下 23 4 系统硬件 系统硬件 PROTEUS 仿真原理图仿真原理图 5 主要单元电路的设计 主要单元电路的设计 1 显示 显示 4 1 显示部分设计显示部分设计 基本显示原理 时钟开始显示为 0 时 0 分 0 秒 也就是数码管显示 000000 然后每 秒秒位加 1 到 9 后 10 秒位加 1 秒位回 0 10 秒位到 5 后 即 59 秒 分钟加 1 10 秒位回 0 依次类推 时钟最大的显示值为 23 小时 59 分 59 秒 这里只要确定了 1 秒的定时时间 其他位均以此为基准往上累加 同时时钟达到最大值的时候天数也增 加一位 知道显示了 7 后再变为 1 同时阴历和阳历的天数也加 1 根据不同的月份显示 24 的天数阳历有 28 29 30 31 天 阴历就要经过计算得到 到了 12 个月后 年数自动 增加 1 以此类推 显示万年历的现实 另外 连接方式总电路图上可以看到 这里就不做说明了 下图为显示部分的电路图 显示部分电路图电路 显示部分采用普通的共阳数码管显示 采用动态扫描 以减少硬件电路 采用动态扫 描 显示时采用串行口输出段码 2 键盘接口 键盘接口 键盘在单片机系统中是一个很重要的部件 为了输入数据 查询和控制系统的工作 状态 都要用到键盘 键盘是人工干预计算机的主要手段 3 按键开关去抖动问题 按键开关去抖动问题 按键开关在电路中的连接如图所示 按键未按下时 A 点电位为高电平 5V 按键按 下时 A 点电位为低电平 A 点电位就用于向 CPU 传递按键的开关状态 但是由于按键的 结构为机械弹性开关 在按键按下和断开时 触点在闭合和断开瞬间还会接触不稳定 引起 A 点电平不稳定 如图 2 11b 所示 键盘的抖动时间一般为 5 10ms 抖动现象会引 起 CPU 对一次键操作进行多次处理 从而可能产生错误 因此必须设法消除抖动的不良 后果 图 2 3 键操作和键抖动 25 为了节省硬件 通常在单片机系统中 一般不采用硬件方法消除键的抖动 而是用软件消除抖动 的方法 根据抖动特性 在第一次检测到按键按下后 执行一段延时 5 10ms 让前延抖动消失后再一 次检测键的状态 如果仍保持闭合状态电平 则确认真正有键按下 当检测到按键释放后 也要给 5 10ms 的延时 待后延抖动消失后才转入该键处理程序 4 查询式按键及其接口 查询式按键及其接口 盘与 CPU 的连接方式可以分为查询按键和矩阵式键盘 查询式按键是各按键相互独 立 每个按键占用一根 I O 口线 每根 I O 口线上的按键工作状态不会影响其他 I O 口 线上按键的工作状态 查询式按键电路配置灵活 软件结构简单 但每个按键必须占用 一根 I O 口线 在按键数量较多时 I O 口线浪费较大 且电路结构显得繁杂 故这种形 式适用于按键数量较少的场合 5 矩阵式键盘及其接口 矩阵式键盘及其接口 矩阵式键盘又称行列式键盘 有 n 个行线和 m 个列线 经限流电阻接 5V 电源上 按 键跨接在行线和列线上 n m 行列结构可构成 mn 个按键 组成一个键盘 与独立式按键 相比 mn 个按键只占用 m n 根 I O 口线 因此适用于按键较多的场合 当无键闭合时 相应的 I O 之间开路 当有键闭合时 与闭合键相连接的两条 I O 口线之间短路 判断有无键按下的方法是 第一步 置列线相关 I O 口为输入态 从行 线相对应的 I O 口输出低电平 读入列线数据 若某一列线为低电平 则该列线上有键 闭合 第二步 置行线相关 I O 口输出低电平 读入列线数据 若某一列线为低电平 则该列线上有键闭合 综合一二两步的结果 可确定按键编号 但是键闭合一次只能进 行一次键功能操作 因此须等待近按键释放后 再进行键功能操作 否则按一次键 有 可能会连续多次进行同样的键操作 6 键盘扫描控制方式 键盘扫描控制方式 在单片机应用系统中 对键盘的处理工作仅是 CPU 工作内容的一部分 CPU 还要进行数据处理 显示和其他输入输出操作 因此键盘处理工作既不能占用 CPU 太多时间 又需要 CPU 对键盘操作及 时作出响应 CPU 对键盘处理控制的工作方式有以下几种 程序控制扫描方式 程序控制扫描方式是在 CPU 工作空余 调用键盘扫描子程序 响应键输入信号要求 定时控制扫描方式 26 定时控制扫描方式是利用定时 计数器每隔一段时间产生定时中断 CPU 响应中断后 对键盘进行扫描 并在有键闭合时转入该键的功能子程序 中断控制扫描方式 中断控制扫描方式是利用外部中断源 响应输入信号 当无按键按下时 CPU 执行正 常工作程序 当有按键按下时 CPU 立即产生中断 在中断服务子程序中扫描键盘 判断 是哪一个键被按下 然后执行该键的功能子程序 这种控制方式克服了前两种控制方式 可能产生的空扫描和不能及时响应键输入的缺点 既能及时处理键输入 又能提高 CPU 运行效率 但要占用一个宝贵的中断资源 图即工作于中断方式的矩阵式键盘接口电路 在初始化时 P1 4 P1 7 置输出 0 P1 0 P1 3 置为输入态 P1 0 P1 3 分别接至与门各输 入端 当有键闭合时 0 CPU 中断后 在中断服务子程序中 再完成键识别和键功INTO 能处理 图 5 2 3 工作于中断方式的矩阵式键盘接口电路 四 测试结果分析与结果四 测试结果分析与结果 1 测试结果分析测试结果分析 1 在测试中遇到 在测试中遇到 LEDLCD16824 不显示不显示 分析 首先使用试测仪对电路进行测试 观察是否存在漏焊 虚焊 或者元件损坏 再 接着研究程序的时序图是否正确 最后发现程序时序方面出了点小错 修改后就把问题 解决了 27 2 按键调整时 按键调整时 不是按单位递增和递减不是按单位递增和递减 分析 在键盘程序中 按键一次 向芯片写入一个新的数字 在写入数字后必须有一定延 时才再写入另一个数字 五 系统评价五 系统评价 该设计利用单片机内部的定时 计数器进行中断定时 配合软件延时实现时 分 秒 的计时 该方案节省硬件成本 且能使设计者对单片机的指令系统能有更深入的了解 从而掌握单片机应用技术 MCS 52 c 语言程序设计方法 因此 本系统设计采用此种软件 控制方法来实现时 而由于 ATMEL 公司的 AT89C52 单片机是低功耗的具有 4KB 在线可编 程 FLASH 存储器的单片机 它与通用 80C52 系列单片机的指令第和引脚兼容 片内的 FL

温馨提示

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

评论

0/150

提交评论