基于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 总结。基于at89c51的篮球比赛计分器设计(编辑修改稿)
相关推荐
窃电功能。 FLTON=0 时选择关闭自动防窃电功能,用户可以根据当前有效电流通道状态CHNSEL()进行通道选择; FLTON=1 时开启自动防窃电功能,防窃电单元根据窃电阈值的 设置,自动选择相应的通道进行计量 [8]。 时钟管理 系统时钟管理模块包含系统时钟生成和系统时钟控制两部分。 系统时钟 fsys 有两种生成形式:一是低频晶振输出 fosc 频率为 32KHz,二是 PLL 输出高频
制的相互转化。 系统设计的方案论证 单片机 的应用领域无所不至,无论是民用部门、工业部门、事业部门和家用领域等都有它的身影 ,是因为它有如下特点 : 单片机高性能低价格,它尽可能的把应用所需要的存储器、各种功能的 I/O 端口都集中在一块芯片上内。 单片机是将 CPU、数据存储器、程序存储器、各种功能的 I/O端口集成于一块芯片上 ,内部结构简单、体积小、稳定性较高。
测试模块搭建 micro module: 微处理器部分可以采用 ZYE1502D 实验箱上有的 AT89C51 单片机,或者编写 Testbench 实现。 为了仿真方便,在仿真时采用 Testbench 搭建。 该micro 模型给出了微处理器与 IIC接口通讯的仿真程序。 该模型能产生相应的读写信号,地址信号,并行数据信号,并能接收从器件的应答信号,来调节发送或接收数据的速度。 在这个程序中
是其实底层还是用的容器技术(当然不可能是 Docker)。 国内,完全基于 Docker 的 CasS 公司 DaoCloud 也于前日正式对外提供服务。 . 容器 VS 虚拟机 —— 商用为主 虚拟机技术,从最开始的分时系统,到后来的各种 VM 的乱战到 Xen 的统一服务器端江湖 [6],直到现在 KVM 流行。 “ 现在都是 KVM[7],如果新一点的,就玩 Container 了。
电路,就可构件一个单片机运行的最小系统,但是单片机的开始需要借助个人电脑,在个人电脑上,编写和调试开发语言,并将编译好后的机器语言通过下载器烧写到单片机内,使单片机运行预先设计的程序。 单片机的开发需要个人电脑上运行的单片机开发环境,程序下载器和开发板,如 所用的 AT89S52 单片机,就需要 KEIL 开发环境,并口下载线和开发板。 在 本 设计方案中,选用的是 ATMEL 公司的 52
新 项目申报 信息查询 登录用户管理 专家用户管理 申报用户管理 项目管理 项目申报 系统管理 申报用户功能 专家用户功能 14 动态数据 数据输入: 鼠标对链接或按钮的点击; 查询方式、查询关键字; 新建单位信息、项目信息、管理员信息; 单位信息,项目信息 ,管理员信息项相应纪录更改; 受限操作所需的密码; 数据输出: 查询关键字确定的数据库记录的子集; 统计结果及其格式化文件; 信息录入