




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
专业综合设计报告专业综合设计报告 项目名称 基于矩阵键盘和 LED 数码管显示器的简易 人机界面设计 学生姓名 同组同学 专业名称 班 级 指导教师 项目起止日期 2012 年 03 月 12 日至 2012 年 03 月 30 日 目录目录 摘要 3 1 概述 3 2 总体设计方案 3 2 1 总体设计要求 3 2 2 系统框图 4 3 系统硬件设计 4 3 1 单片机的最小系统 5 3 1 1 电源电路 5 3 1 2 复位电路 5 3 1 3 晶振电路 6 3 2 LED 数码管显示部分 6 3 3 矩阵键盘 7 3 3 1 键盘的工作原理 7 3 3 2 键盘检测原理 7 4 系统软件设计 9 4 1 软件设计思想 9 4 2 主程序设计 10 4 3 子程序设计 11 4 3 1 数码管显示程序设计 11 4 3 2 键盘检测程序设计 11 4 3 3 延时函数程序设计 14 5 系统调试 14 6 设计体会 15 参考文献 15 摘要摘要 单片机自 20 世纪 70 年代以来 以其极高的性价比 以及方便小巧受到人 们极大的重视和关注 本设计选用 AT89S52 芯片作为控制芯片 来实现矩阵键 盘对 LED 数码管显示的控制 通过单片机的内部控制实现对硬件电路的设计 从 而实现对 4 4 矩阵键盘的检测识别 用单片机的 P3 口连接 4 4 矩阵键盘 并 以单片机的 P3 0 P3 3 口作键盘输入的列线 以单片机的 P3 4 P3 7 口作为 键盘输入的行线 然后用 P0 0 P0 7 作输出线 通过上拉电阻在显示器上显示 不同的字符 0 F 在硬件电路的基础上加上软件程序的控制来实现本设计 其工作过程为 先判断是否有键按下 如果没有键按下 则继续检测整个程序 如果有键按下 则识别是哪一个键按下 最后通过 LED 数码管显示该按键所对 应的序号 关键词关键词 AT89S52 芯片 4 4 矩阵键盘 键盘识别 LED 数码管 1 1 概述 概述 随着单片机系统的日益更新 以及人们对产品的人机交互能力的不断 提高 使得单片机系统的人机界面设计能力成为学习单片机的一项重要的 基础内容 而 4 4 键盘的操作和 LED 数码管的动态显示是人机界面设计中 最基础的内容 掌握这些基础的设计能力对以后的学习研究是非常必要的 2 2 总体设计方案 总体设计方案 2 12 1 总体设计要求总体设计要求 本系统采用单片机 AT89S52 为数码管的控制核心 制造一种简单的 4 4 键 盘检测显示 能够在目测条件下四位数码管各段亮度均匀 充足 本系统具有 硬件少 结构简单 容易实现 性能稳定可靠 成本低等特点 根据设计要求 确定的设计方案如下 2 1 1 选择 AT89S52 单片机作为整个系统的核心器件 对整个系统进行总 体控制 发送并实时处理系统信息 2 1 2 通过编程显示字符 0 F 2 1 3 当检测有按键按下时数码管显示与该按键相对应的字符 2 1 4 键盘检测信号连接到单片机的 P3 口 显示信号连接到单片机的 P0 口 2 1 5 数码管点亮过程有程序控制 P2 4 P2 5 P2 6 P2 7 分别作为四位 数码管的位选 数码管采用直接驱动方式 共阳极接法 2 22 2 系统框图系统框图 本设计行 列驱动电路 显示屏电路 运用单片机的智能化 系统将每个功能 电路模块连接在一起 总体结构设计如下图 2 1 所示 AT89S52 键键盘检测 数码管显示 3 3 系统硬件设计 系统硬件设计 本系统的硬件电路是由单片机最小系统 按键电路 数码管显示电路三部 图 2 1 系统框图 分组成 其中 单片机最小系统包括电源电路 复位电路和晶振电路构成 按 键电路采用独立编码方式 显示部分使用共阳型高台扫描 高态显示信号驱动 电路 完成数字效果 3 13 1 单片机的最小系统单片机的最小系统 3 1 13 1 1 电源电路电源电路 电源是一切器件工作的根本 有一个稳定的电源是很重要的 由于单片机 和数码管的功耗都很小 所以本设计选用单片机下载线直接供电 实验证明单 片机和数码管的工作正常 如图 3 1 所示 电源模块 图 3 1 3 1 23 1 2 复位电路复位电路 为了确保系统中电 路稳定可靠地工作 复位电路是必不可少的一部分 复位电路的第一功能是上电复位 一般 单片机电路正常工作需要供电 5V 5 即 4 75 5 25V 由于系统电路是时序数字电路 它需要稳定的时 钟信号 因此在电源上电时 只有当 VCC 超过 4 75V 低于 5 25V 以及晶体 振荡器稳定工作时 复位信号才被撤除 系统电路开始正常工作 复位电 路如图 3 2 所示 图 3 2 3 1 33 1 3 晶振电路晶振电路 晶振是为电路提供频率基准的元器件 通常分成有源晶振和无源晶振两个 大类 无源晶振通常信号质量和精度较差 需要精确匹配外围电路 电感 电 容 电阻等 如需更换晶振时要同时更换外围的电路 有源晶振不需要芯片的 内部振荡器 可以提供高精度的频率基准 信号质量也较无源晶振要好 本设 计选用有源晶振 晶振电路如图 3 3 所示 图 3 3 3 23 2 LEDLED 数码管显示部分数码管显示部分 数码管采用的是共阳极的四位数码管 由 P2 端口的 4 5 6 7 口分别作 为四位数码管的位选 P0 端口作为四位数码管的位选 数码管电路图如图 3 4 所示 图 3 4 3 33 3 矩阵键盘矩阵键盘 3 3 13 3 1 键盘的工作原理键盘的工作原理 按键设置在行 列线交点上 行 列线分别连接到按键开关的两端 无按 键按下时 行线处于高电平的状态 当有按键按下时 行线电平由此行线相 连的列线电平决定 3 3 2 键盘检测原理 键盘的检测 首先要解决的问题是键盘抖动现象 如图 3 5 所示 消抖的 方法有两种 软件消抖和硬件消抖 由于硬件消抖结构比软件复杂 所以本设 计采用的是软件消抖的方法 既在程序中加入 5 毫秒的延时 延时后再次返回 P3 的值二次判断是否有键盘按下 图 3 5 首先 将 0 xfe 赋于 P3 口 此值是用于检测矩阵键盘的第一行按键 然后 看 P3 P2 0 x0f 数码管位选 让四个数码管都亮 P0 0 xbf 数码管段选 程序刚开始数码管显示 while 1 死循环 始终执行键盘检测和数码管的显示 P0 table keyscan 1 数码管的显示 调用键盘检测函数 图 4 3 主程序流程图 4 34 3 子程序设计子程序设计 本设计的子程序包括数码管显示程序 按键检测程序 延时程序三种 下面依次详细介绍 4 3 14 3 1 数码管显示程序设计数码管显示程序设计 将 0 F 字符的十六进制码编好 放入数组 table 中 在程序开始时数 码管显示 当有按键按下时 则数码管显示与该按键相对应的 字符 数码管显示子程序如下 Uchar code table 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 0 x88 0 x83 0 xc6 0 xa1 0 x86 0 x8e 0 xbf P2 0 x0f 数码管位选 让四个数码管都亮 P0 table keyscan 1 调用键盘检测函数 4 3 24 3 2 键盘检测程序设计键盘检测程序设计 系统中采用 4 4 矩阵键盘 在 P3 口接按键 P0 端口控制数码管显示 在 键盘检测函数里 依次送出列检测信号 而每组列检测信号输出后 即读取按 键状态 若有按下按键 则进行键值的判断与计算 再将其对应的字符信号送 入数码管显示 部分键盘检测子程序如下 uchar keyscan 键盘检测部分 P3 0 xfe temp P3 temp temp while temp 0 xf0 delay 5 延时 5 毫秒 消抖 temp P3 temp temp while temp 0 xf0 再次确认是否有按键按下 temp P3 switch temp case 0 xee num 1 如果 P3 0 xee 则检测到键盘 第一个键按下 以下同理 break case 0 xde num 2 break case 0 xbe num 3 break case 0 x7e num 4 break while temp 0 xf0 temp P3 temp temp P3 0 xfd temp P3 temp temp while temp 0 xf0 delay 5 延时 5 毫秒 消抖 temp P3 temp temp while temp 0 xf0 再次确认是否有按键按下 temp P3 switch temp case 0 xed num 5 如果 P3 0 xed 则检测到键盘 第五个键按下 以下同理 break case 0 xdd num 6 break case 0 xbd num 7 break case 0 x7d num 8 break while temp 0 xf0 temp P3 temp temp return num 4 3 34 3 3 延时函数程序设计延时函数程序设计 本设计采用有返回值的延时函数 延时函数如下 void delay uint z 有返回值的延时函数 uint x y for x z x 0 x for y 110 y 0 y 5 5 系统调试 系统调试 此次系统设计的结果很好 数码管和键盘都能按原先设想的工作 这个 方案设计的 4 4 键盘检测显示字符 电路简单 成本较低 且较容易扩展 数 码管各段亮度均匀 充足 显示字符稳定 清晰无串扰 在 KEIL 软件中的仿真 如图 5 1 所示 图 5 1 6 6 设计体会设计体会 通过此次课程设计 让我学到了许多不知道的知识 在单片机的基本功能 数码管的显示 矩阵键盘的使用 还有其他元器件的选用有了一个较清晰的认 识 在程序设计的思路 理论到实践的运用能力有了很大提高 通过这次课程 设计的学习 我有了一定的实践经验和理论基础 让我位以后的学习奠定了基 础 在设计思路上 通过查阅资料了解到许多方法 认识到程序形式的多样性 认识到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论