




免费预览已结束,剩余21页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4x44x4 键盘在单片机上的应用键盘在单片机上的应用 摘 要 近年来随着电子产品的高速发展 单片机作为核心部件的正在不断深入各个电子 产品的控制中 同时带动电子产品向着小型化 多功能化 智能化 高速化方向发 展 比如 我们平常所使用的电饭煲 电冰箱 空调 计算器等电子产品都将单片 机作为主要的控制器 使产品的控制和结果都变得简单化 然而仅是单片机方面知 识是不够的 还应根据具体硬件结构 以及针对具体应用对象特点的软件结合 以 作完善 在嵌入式 PC 应用系统中 作为人机交互设备的键盘 往往采用结构简单按键少 的矩阵键盘 标准键盘虽然能直接与嵌入式 PC 机的 PS 2 接口相连 但是体积大 按键多 不能满足需求 本文提出用一种 AT89C52 单片机实现具有标准 PS 2 接口的 矩阵键盘 具有便捷 实用的特点 关键词 关键词 接口 键盘 AT89C52 LCD1602 第 I 页 目 录 摘 要 I 1 前言 1 2 2 总体设计总体设计 2 2 12 1 设计要求设计要求 2 2 2 整体方案设计 2 2 1 1 方案论证 2 2 1 2 方案比较 3 3 硬件设计 4 3 1 AT89C51 单片机的功能 4 3 2 复位电路的设置 5 3 3 4X4 键盘设计 6 3 4 单片机模块 7 3 5 LCD1602 模块 8 3 6 整体电路设计 9 4 软件设计 11 5 KEIL 与 PROTEUS 联调 12 结 论 13 参考文献 14 附录 1 电路总图 15 附录 2 软件代码 16 第 1 页 1 前言 随着社会经济的快速发展 人们对自动控制要求的地方也越来越多 而在生活和生产的 各领域中 凡是有自动控制要求的地方都会有单片机的身影出现 从简单到复杂 从空中到 地面 几乎是凡能想像到的地方都有使用单片的需求 现在尽管单片机的应用已经很普遍 但仍有许多可以用单片机控制而尚未实现的项目 因此 单片机的应用大有想像和拓展空间 单片机的应用有利于产品的小型化 多功能化和智能化 有助于提高劳动效率 减轻劳 动强度 提高产品质量 改善劳动环境 减少能源和材料消耗 保证安全等 单片机因其性价比高 处理能力强 且抗干扰能力好 在医疗器械 机电液控制 数据 传输等各类工控系统和设备仪器中得到广泛应用 一方面 在实际应用中 单片机经常需要 将采集到的数据发送给PC机进行处理或保存等 另一方面 工控系统和设备仪器设计 因环 境或软硬件资源的限制 也往往需要不同的通信接口 比如 很多工控PC机的键盘接口因受 恶劣环境不利于键盘的使用而处于闲置状态 因此 设计一个具有通用性的4x4键盘通信接 口既方便PC机进行外设扩展 又丰富了单片机的接口资源 目前 单片机协议进行通信较多 的是单片机接收4x4键盘设备的数据 而以单片机做为键盘与PC机通信则较为少见 但是 单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上 更重要的 意义还在于 单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法 从前必 须有模拟电路或数字电路实现的大部分功能 现在已能使用单片机通过软件编程的方法来实 现 这种以软件取代硬件并提高系统性能的控制系统 软化 技术 称之为微控制技术 微 控制技术是一种全新的概念 是对传统控制技术的一次革命 随着单片机应用的推广普及 微控制技术必将不断发展 日益完善和更加充实 第 2 页 2 总体设计 2 1 设计要求 利用 51 单片机设计一 4x4 行列键盘 并在 LCD 上显示键值 同时显示的键值为 0 9 A D 这十六个值 2 2 整体方案设计 本设计的整体思路是 利用 4x4 键盘 通过 AT89C52 单片机接收 4x4 键盘的键值 并 显示在 LCD1602 上 2 1 1 方案论证 设计中采用了三个方案 具体的方案见方案一 方案二和方案三 方案一 普通键盘设计方案 采用普通的 4x4 键盘 通过键盘扫描得到键值 有单片机控制并显示在 LCD 上 优点 是成本低 设计简单数字显示比较直观 缺点是键盘扫描效率不够且容易出错 4x4 键盘AT89C52 单片机 LCD1602 显示 图 2 1 普通键盘整体方案一框图 方案二 数码管显示设计方案 采用普通的 4x4 键盘 通过键盘扫描得到键值 由单片机控制并显示在数码管上 优 点是成本低 设计简单 键盘自动扫描 自动识别 自动编码 有键按下时才发送数据 因 此减轻了 CPU 的负担 缺点是数码管显示不直观 4x4 键盘AT89C52 单片机 数码管 显示 图 2 2 4x4 键盘整体方案二框图 2 1 2 方案比较 由于方案一采用的是 4X4 键盘 设计需要 CPU 不断的扫描键盘 占用了大量的 CPU 资 源 方案二利用 4x4 键盘 设计需要 CPU 不断的扫描键盘 占用了大量的 CPU 资源 并且用 第 3 页 数码管显示不够直观 交互界面不够好 因此综合方案一和方案二的优点 本设计采用了方 案一较好 第 4 页 3 硬件设计 3 1 AT89C51 单片机的功能 图 3 1 AT89C51 单片机因将其主要组成部分集成在一个芯片上而得名 具体说就把中央处理器 CPU Central processing unit 随机存储器 RAM Random ac cess memory 只读存储 器 ROM Read only memory 中断系统 定时器 计数器以及 I O Input output 接口电路等主要微型机部件集成 在一个芯片上 虽然单片机只是一个芯片 但从它的组成和功能上看 它已经具有了计算机 系统一样的属性 为此 称它为单片微型计算机 SCMC Single chip micro computer 简称单片机 同时由于单片机主要应用与控制领域 并用以实现各种测试和控制功能 为了强调起控 制属性 也可以把单片机称为微控制器 MCU Micro controller unit 在国际上 微 控制器 的叫法似乎更通用一些 而在我国则比较习惯与 单片机 这一名称 第 5 页 还有就是单片机在应用时 通常是处于控制系统的核心地位并融入其中 即以嵌入的方 式进行使用 为了强调其 嵌入 的特点 也常常将单片机称为嵌入式微控制器 EMCU Embedded micro controller unit 在单片机的电路和结构中 有许多嵌入式应用 的特点 3 2 复位电路的设置 复位电路产生复位信号 复位信号送入RST后还要送至片内的施密特触发器 由片内复 位电路在每个机器周器的S5P2时刻对触发器输出采样信号 然后由内部复位电路产生复位操 作所要的信号 一般的复位电路可分为上电自动复位和按键复位 我们在此选用的是上电复 位 上电自动复位原理 RST引脚是复位信号的输入端 只要高电平的复位信号持续两个机 器周期以上的有效时间 就可以使单片机上电复位 上电自动复位是通过电容充电实现的 上电瞬间 RST端电位与Vcc相同 随充电电流的减少 RST的电位逐渐下降 直到复位信号 无效 按键复位在此不在作过多的介绍 其原理和上电复位是相同的 但其采用的是脉冲复 位电路和电平复位电路两种 复位电路和单片机最小系统如下图3 2所示 图 3 2 复位电路 第 6 页 3 3 4x4 键盘设计 图 3 3 4x4 键盘 行列式键盘因为管理程序比较复杂 所以行列式键盘采用扫描技术 常采用的扫描技 术有 扫描法 反转法 状态矩阵法等 而本次设计采用线反转法扫描的过程步骤如下 1 先从 P1 口的高 4 位输出低电平 列 低 4 位输出高电平 行 即 P1 0 x0f 从 P1 口读取键盘状态 这时 如低 4 位中只要有一位出现 0 说明此行中有键按下 各行有键按下时 从 P1 口读取的数值依次是 0EH 0DH 0BH 07H 2 再从 P1 口的低 4 位输出低电平 行 高 4 位输出高电平 列 即 P1 0 xf0 从 P1 口读取键盘状态 这时 如高 4 位中只要有一位出现 0 说明此列中有键按下 各列有键按下时 从 P1 口读取的数值依次为 E0H D0H B0H 70H 3 将两次读取的特征值 根据图 3 2 进行组合 得到当前 按键的特征码 3 4 单片机模块 STC89C52 单片机是 Atmel 公司生产的单片机 51 的内核 具有处理能强 运行速度快 功耗低等优点 最小系统包括单片机 电源 复位电路 单片机接收 PS2 键盘的键值 并控 第 7 页 制 LCD 的显示 其系统框图如下图所示 接收 4x4 键 值盘 STCAT89C2 单片机 控制 LCD1602 显示 电源供电 复位电路 图 3 4 单片机控制系统框图 STC89C52 单片机有 4X8 个 IO 口 其中 P0 口需外接上拉电阻 因此本次设计采用 P1 口 作为 4x4 键盘接口 P0 口作为与 LCD1602 的接口 其电路图如下图 3 5 所示 图 3 5 单片机最小系统图 第 8 页 3 5 LCD1602 模块 LCD1602 采用 8 位并行数据传输 其操作时序如下图 3 6 所示 图 3 6 LCD 单片机图 LCD1602 的指令集对应的指令码如表 3 1 所示 码指 令 说 明 RSR WD7 D6D5D4D3D2D1D0 清除显示屏 000000000 光标回到原点 000000001 进入模式设定 00000001I DS 显示幕 ON OFF 0000001DCB 移位 000001S CR L 功能设定 00001DLNF 字发生器地址设定 0001ACG 设置显示地址 001ADD 忙碌标志位 BF 00BF 显示数据 10 写入数据 读取数据 11 读出数据 I D I D 1 表示加 1 I D 0 表示减 1 S S 1 表示显示幕 ON S 0 表示显示幕 OFF D D 1 表示显示幕 ON D 0 表示显示幕 OFF C C 1 表示光标 ON C 0 表示光标 OFF B B 1 表示闪烁 ON B 0 表示闪烁 ON S C S C 1 表示显示屏幕移位 S C 0 光标移位 R L R L 1 表示右移 R L 0 表示右左移 D L D L 1 表示 8 位 D L 4 表示 4 位 F F 1 表示 5x10 点矩阵 F 0 表示 5x7 点矩阵 N N 1 表示 2 行显示行 N 0 表示 1 行显示行 第 9 页 BF BF 1 内部正在动作 BF 0 可接受指令或数据码 5 表 3 1 指令码 LCD1602 接口由 8 位数据线 电源地电源正 液晶显示偏压信号 VL 数据命令选择 端 RS 读写选择端 RW 组成 其接口信号说明如下图 3 7 所示 图 3 7 接口信号说明图 可以在 1602 的液晶显示偏压信号端接一个可变电阻 调节显示亮度 初始状态时 调 至 1602 上面一排显示 12 个黑块为止 LCD1602 电路图如下图 3 8 所示 图 3 8 LCD1602 电路图 3 6 整体电路设计 最终设计电路如下图 3 9 所示 4x4 键盘有键按下就读出数据 最终在 LCD1602 液晶显 示器上显示 第 10 页 图 3 9 4x4 键盘显示电路 第 11 页 4 软件设计 1 主程序设计 首先初始化 IO 口和键盘 LCD1602 然后接收按键的键值 并通过 8 位并行传输方式传送给 LCD1602 显示 2 获取键值程序 按照 4x4 键盘协议操作 键盘按下时发送通码 弹起时发送断码 在单片机中 将接收到的码字与第二套扫描码比较 得出键值 本次设计共采用 16 个键 模拟键 3 LCD 显示程序 首先初始化 LCD1602 端口和寄存器 然后接收单片机传送的数据 通过 1602 写操作时序显示接收到的数据 开始 初始化键 盘 LCD 接收键值 LCD1602 上显示 处理键值 4 1 程序整体设计框图 第 12 页 5 Keil 与 Proteus 联调 在 protues 上进行仿真实验 首先使用 KeilC 将编写完成的程序编译生成 HEX 文件 将 HEX 文件烧录到两片单片机中 进行仿真实验 结果如下图所示 可以看到 接收端 已将接受到的数据完整的显示了出来 图 5 1 仿真效果图 第 13 页 结 论 本系统采用第二套键盘扫描码 利用 4x4 键盘作为输入 准确度比普通键盘高 完成了 系统的仿真图 电路图和程序设计 实现了系统的功能 本次设计完成后 在效果上能完全达到原先设计的功能 例如 通过按下按键 1 能将数值 1 发送到 LCD 上显示驱动程序经 Keil uVision3 编译 在 AT89C52 上单片机通 过 该模拟键盘接口可以作为一个接口模块嵌入到其他设备仪器和工程控制系统 增加了与 PC 机的通信途径 在应用和测试结果分析中 该接口模块具有较高的可靠性与稳定性由于 时间仓促和我们自身水平有限 本设计在功能上也只是完成了一些基本功能 对于电路的可 靠性 稳定性等参数还未做过详细的测试 仿真中出现的一些问题 也尚未解决 经过繁忙而又紧张的课程设计 终于顺利的完成了设计任务 虽然在这段时间里每天都 那么繁忙 但是在这忙碌的过程中却得到了许多的收获 经过课程设计 在查阅资料的过程中 学习了基于单片机的 C 语言程序设计 了解了单 片机串行通信的基本知识 对于以后的学习和工作都有很大的益处 在学习的过程中 也遇到了一些困难 比如开始的时候 由于发送端和接收端的通信协 议没有做好 导致数据不能正确的传输 在解决问题的过程中 对于通信协议的实现有了深 刻的认识 通过这次课程设计 锻炼了自己独立思考的能力 第 14 页 参考文献参考文献 1 张培仁 基于 C 语言编程 MCS 51 单片机原理与应用 M 北京 清华大学出版社 2003 2 杨振江 杜铁军 流行单片机实用子程序及应用实例 M 西安电子科技大学出版社 2002 3 蔡美琴 张为民 MCS 51 系列单片机系统及其应用 第二版 M 北京 高等教育出版社 2004 4 苏家健 单片机原理及应用技术 M 北京 高等教育出版社 2004 5 C 语谭浩强 言程序设计 第三版 M 北京 清华大学出版社 2005 6 黄惟公 单片机原理与应用技术 西安电子科技大学出版社 2007 7 张毅刚 MC 51 单片机应用设计 二版 哈尔滨工业大学出版社 2005 8 李广第 单片机基础 北京 北京航空航天大学出版社 9 杨文龙 单片微机原理及应用 西安电子科技大学出版社 10 胡汉才 单片机原理及接口技术 北京 清华大学出版 第 15 页 附录附录 1 1 电路总图 电路总图 图 附录 1 4x4 键盘显示电路总图 第 16 页 附录附录 2 2 软件代码 软件代码 1 键码处理程序 include SMC1602 h void vKeyProcess unsigned char ucKeyCode vWriteCMD 0 xC7 switch ucKeyCode case 11 vShowOneChar 1 break 1 case 12 vShowOneChar 2 break 2 case 13 vShowOneChar 3 break 3 case 21 vShowOneChar 4 break 4 case 22 vShowOneChar 5 break 5 case 23 vShowOneChar 6 break 6 case 31 vShowOneChar 7 break 7 case 32 vShowOneChar 8 break 8 case 33 vShowOneChar 9 break 9 case 41 vShowOneChar 0 break 0 case 14 vShowOneChar A break A case 24 vShowOneChar B break B case 34 vShowOneChar C break C case 44 vShowOneChar D break D case 43 vShowOneChar break case 42 vShowOneChar break default break 2 键盘扫描子程序 include 第 17 页 define SCANPORT P1 4 4 键盘扫描端口 低 4 位是行线 高 4 位是列线 采用逐列扫描的方法 无按键时 低 4 位输出 1 高 4 位输出 0 当有按键时 高 4 位输出扫描电位 低 4 位输入扫描结 果 全局变量 unsigned char uca LineScan 4 0 xEF 0 xDF 0 xBF 0 x7F 列线扫描电压 分为第 1 2 3 4 根列线 为低电平 其他为高电平 函数实现 unsigned char ucKeyScan unsigned char ucTemp 0 扫描状态暂存 unsigned char ucRow 0 ucLine 0 行号 列号 for ucLine 0 ucLine 4 ucLine 列扫描 SCANPORT uca LineScan ucLine 输出扫描电位 ucTemp SCANPORT 输入扫描电位 并屏蔽高 4 位 if ucTemp 0 x0F 判断该列是否有按键按下 switch ucTemp case 0 x0E ucRow 10 break 如果有 则判断行号 case 0 x0D ucRow 20 break case 0 x0B ucRow 30 break case 0 x07 ucRow 40 break default ucRow 50 break 第 18 页 break SCANPORT 0 x0F 恢复 P1 口 return ucRow ucLine 1 返回按键编码 格式为 2 位数 高位为行号 低位为列号 3 驱动程序 include define LCDRS P2 0 寄存器选择信号 0 数据寄存器 1 指令寄存器 define LCDRW P2 1 读写信号 1 读 LCD 0 写 LCD define LCDE P2 2 片选信号 当输入下降沿信号时 执行指令或传送数据 define LCDPORT P0 LCD 数据接口 延时函数 void vDelay unsigned i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 设备采购合同及服务保障协议
- 内部控制与审计工作结合的实务探讨试题及答案
- 认知提升无人机驾驶员考试试题及答案
- 安全管理人员考核难点及答案
- 民用航空器技术要求试题及答案
- 建筑行业人力资源管理策略试题及答案
- 护理伦理与试题及答案
- 2025年入团考试背景分析与试题及答案
- 护理学发展动向试题及答案讲解
- 无人机星际探索试题及答案研究
- 提高预应力锚索在圆砾层中一次性成孔合格率
- 业主物业纠纷 上诉状 空白
- 小小科学家《生物》模拟试卷C(附答案)
- 桥式起重机司机(中级)职业技能鉴定考试题库(职校培训)
- 磁场疗法课件完整版
- 项目管理工具Project详细讲解课件
- NCCN成人癌痛指南解读
- GB/T 3478.4-1995圆柱直齿渐开线花键45°压力角尺寸表
- GB/T 2260-2002中华人民共和国行政区划代码
- 《食物中毒》课件
- 无劳动关系证明
评论
0/150
提交评论