基于at89c51的篮球比赛计分器设计(编辑修改稿)内容摘要:

过读入输入线的状态就可得知是否有键按下了。 具体的识别及编程方法如下所述。 矩阵式键盘的按键识别方法 确定矩阵式键盘上何键被按下介绍一种 “行扫描法 ”。 行扫描法行扫描法又称为逐行 (或列 )扫描查询法,是一种最常用的按键识别方法,如上图所示键盘,介绍过程如下。 判断键盘中有无键按下将全部行线 Y0Y3 置低电平,然后检测列线的状态。 只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与 4根行线相交叉的 4 个按键之中。 若所有列线均为高电平,则键盘中无键按下。 判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。 其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。 在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。 若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 显示电路 显 示器采用两个四位共阴极 LED 显示器,来实现显示器的动态扫描,八个二极管连接一个阴极的结构,只要另一段为高电平,二极管就会发光,从而形成一段。 基于 AT89C51 的篮球比赛计分器 7 将八段顺序排列后就成为具有一定编码的共阴显示器了。 动态扫描的频率有一定的要求,频率太低 , LED 将出现闪烁现象。 如频率太高,由于每个 LED 点亮的时间太短,LED 的亮度太低,肉眼无法看清,所以一般均取几个 ms 左右为宜,这就要求在编写程序时,选通某一位 LED 使其点亮并保持一定的时间,程序上常采用的是调用延时子程序。 基于 AT89C51 的篮球比赛计分器 8 4 软件设计 主程序 设计 主程序主要由系统初始化段、开中断、键盘识别、键值处理、两个 4 位共阴极LED 显示器扫描显示子程序和中断处理子程序等组成。 通过对以上各段和子程序的结合,以实现系统功能。 该系统主程序流程图如下图 41 所示。 a 队 b 队 图 41 主程序流程图 开始 显示 键盘识别 键值 判断键值 对应处理加 显示 对应处理减 对应处理减 对应处理加 基于 AT89C51 的篮球比赛计分器 9 键盘识别及处理程序设计 按键识别及处理程序主要由键盘识别和键值处理组成。 其中键盘识别子程序不断地对键盘进行判断是否有键按下。 当有键按下时则转到键码处理 即甲、乙总分处理子程序对相应按键进行相应处理,即可实现对甲、乙两队总分的计算与处理。 键盘识别即依次判断第一列、第二列、第三列、第四列是否有键按下。 如果有键按下,先得出列,再反向赋值得出行,最后得出所在行和列的位置。 键值处理即先定义 各 按键,再对按键值进行保存, 通过 判断 键值来判断分别对甲队 或是 乙队加减分, 最后显示出甲队、乙队得分。 甲、乙总分处理子程序流程图如下图 42 所示。 图 42 键值处理子程序流程图 显示子程序设计 由于该系统使用的是 8 位 LED 显示器显示计分器比分,因此显示采用动态扫描显示方法,即由显示器扫描显示子程序控制显示器逐个循环从左至右依次点亮各个显示器。 这样虽然在任一时刻只要一个显示器点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果一样。 显示器扫描显示子程序显示每一位用如图 43 所示流程方法完成。 甲或乙 除以 100 除以 10 个位 十位 百位 商 商 余数 余数 商 余数 余数 除以 100 除以 10 基于 AT89C51 的篮球比赛计分器 10 图 43 显示子程序流程图 复位程序设计 在矩阵键盘中设置相应的复位按键,当识别到复位按键按下时,执行复位程序。 在主程序运行 过程中,只要系统识别到与单片机引脚相连的按键按下,程序则会转去执行复位程序,完成对甲、乙总分的清零, 与此同时也就使 显示器各位 计数同时也清零 ,执行完毕后,返回主程序 , 等待识别下一个按键。 流程图如 44 所示。 复位按键的存在,保证了计分器能的多次使用,当比赛结束后,通过按键复位到初始状态,继续进行下一场比赛。 从 80C51 的 P1 口送显示器位码 读相应位存储单元数据(中间两位显示“ —— ”无此步) 由读得数据查表确定段码由80C51送相应显示器位 下一位显示 上一位显 示 基于 AT89C51 的篮球比赛计分器 11 图 44 复位程序流程图 开始 键值判断 按键按下 返回 比分清零 基于 AT89C51 的篮球比赛计分器 12 5 系统调试 硬件接线及调试 接线是设计中最关键的一步,我的接线原则是从全局出发,逐个模块连接调试,最后总体调试。 逐个模块接线再调试,可以为总体调试省去很多时间,只要每个模块正常运行,几个模块通过地址总线连接之后,结果也就接近了。 调试前的直观检查: 检查连线是否正确,在通电之前应先检查一下电路的连线是否正确,包括错线,少线和多线的情况。 根据课程设计的需求所写出的程序检查接线是否正确。 这是一种以元件为中心进行查线的方法。 把每个元件引脚的连线一次查清 ,检查每个接线处在程序中是否出现,这种方法不但可以查出错线和少线, 还容易查处多线的情况。 在接线时应该注意数码管段选、片选连线的顺序,防止出现接反的状况,同时对矩阵键盘也要检查是否正确,是否能正常使用,是否按照实验要求的顺序接线。 元器件安装时情况 检查元、器见引脚之间有无短路;连接处有无接触不良。 模拟调试结果记录如下:通电后,显示器初始显示“ 000000”。 按照键盘分布说明按键,分布给甲、乙加 1 分、 2 分和 3 分,显示器跟踪显示出总分,然后模拟比赛细节,随意给甲、乙加分或是减分,均达到预期效果。 在甲、乙均有一定总分的情况下对甲、乙进行减分处理,当减到 0 后便不能够再 进行减分操作,与程序设计相符。 在甲、乙均有一定总分的情况下,按清零按钮,显示结果清零。 重复进行上面操作,结果均符合设计要求。 基于 AT89C51 的篮球比赛计分器 13 6 总结。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。