单片机c语言篮球比分_单片机篮球比赛计分器设计方案与程序详解
摘 要
本系统是采用单片机AT89C51作为本设计的核心元件。利用7段共阳LED作为显示器件。在此设计中共接入了2个7段共阳LED显示器,用于记录该队的分数, 2个LED显示器显示范围可达到0~99分,基本满足赛程需要。当比赛队得1分时,按下S1键加1分,得2分时按S2键加2分,得3分时按下S3键加3分。如分数计错需减分时,每按一次S4键减1分。
采用单片机控制是这个系统按键操作使用简洁,LED显示,安装方便。解决了篮球比赛计数器的安装问题,节约了线材,适合在各种规模的体育场馆使用,完全可以代替传统的用钟表进行计时的方法,当然稍加改动也可以用于其他球类比赛,是体育器材向智能化发展的一个实例。
1 概述
体育比赛计分系统是对体育比赛过程中所产生的时间,比分等数据进行快速采集记录,加工处理,传递利用的信息系统。根据不同运动项目的不同比赛规则要求,体育比赛的计时计分系统包括测量类,评分类,命中类,制胜类得分类等多种类型。
篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时系统是一种得分类型的系统。篮球比赛的计时系统由计时器等多种电子设备组成,同时,根据目前高水平篮球比赛要求,完善的篮球比赛计时系统设备应能够与现场成绩处理,现场大屏幕,电视转播车等多种设备相联,以便实现高比赛现场感,表演娱乐观众等功能目标。
由于单片机的集成度高,功能强,通用性好,特别是它具有体积小,重量轻,能耗低,价格便宜,可靠性高,抗干扰能力强和使用方便等独特的优点,使单片机迅速得到了推广应用,目前已经成为测量控制应用系统中的优选机种和新电子产品的关键部位。世界各大电气厂家,测控技术企业,机电行业,竞相把单片机应用于产品更新,作为实现数字化,智能化的核心部件。篮球计时计分器就是以单片机为核心的计时计分系统,由于对于单片机是刚刚学习,对于编程也不是十分熟练,故本次设计的内容相较简单,达不到正式比赛需求,仅供学习之用。
2系统总体方案及硬件设计
2.1 AT89C51简介
单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O口等计算机所需要的基本部件的大规模集成电路,又称MCU。
其以体积小、功能全、性价比等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。如果说C语言程序设计课程设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。其管脚图如右图所示。
图2.1 AT89C51管脚图
2.2 数码管显示原理
数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为A,B,C,D,E,F,G,H。
图2.2 数码管内部结构图
假设我们要显示一个数字2, 那么 A、B、G、E、D这5个段的发光管亮就可以了,C、F、H不亮,同时由于接法为共阳接法,那么为低电平是亮,为高电平是灭。从高往低排列, P1.7-P1.0写成二进制为01111110, 把他转化为16进制则为A2H。我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。
表2.1 共阳极数码管显示显示P1.7
小数点P1.6
GP1.5小FP1.4
EP1.3
DP1.2
CP1.1
BP1.0
AHE代码
011000000C0H
111111001F9H
210100100A4H
310110010B0H
41001100199H
51001001092H
61000001082H
711111000F8H
81000000080H
91001000090H
数码管的接口有静态接口和动态接口两种。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阳接VCC,本次课程设计由于所需数码管较少,故可用些种方法接线。这种接法占用接口多,仅能接少量数码管。
动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮。
2.3 系统总体方案
因所设计的篮球计分器功能较少,电路结构也相对简单。只有两个部分:开关控制和数码管的显示。P0口接四个开关,分别作为比分+1、+2、+3、-1的控制按键;P1口和P3口分别按静态接口方法接两个数码管来显示比分。
采用数码管静态接法,P3口接数码管个位显示、P1口接数码管十位显示、P0口接四个开关,中间串接上电阻来作分压用,使得其高低电平能够清楚的分开从而可以实现开关上高低电平的跳变,使数码管工作。
3 编程设计
3.1 定时/计数器
篮球比赛计分器其实就是一个计数器,本次课程设计就是利用单片机中的定时/计数器来实现其计分的功能。在51单片机中有两个16位的定时/计数器T0,T1,分别由TH0、TL0和TH1、TL1组成,它们均是8位寄存器,在特殊功能寄存器中占地址8AH-8DH。它们用于存放定时或计数的初始值。此外,内部还有一个8位的方式寄存器TMOD和一个8位的控制寄存器TCON。用于选择和控制定时/计数器的工作。其格式见下面两表:
表3.1 方式控制寄存器TMODGATEC/TM1M0GATEC/TM1M0
门控开关计数/定时方式选择门控开关计数/定时方式选择
表3.2 控制寄存器TF1TR1TF0TROIE1IT1IE0IT0
T1请求
有/无T1工作
启/停T0请求
有/无T0工作
启/停INT1请求有/无INT1方式下沿INT1请求有/无INT1方式下沿
篮球比赛计分器利用单片机的计数器进行工作,计数器对外部脉冲的下降沿进行加1计数,直至计满回零。作为可编程器件,单片机中的定时/计数器初始化编程步骤如下:
根据定时时间要求或计数要求计算计数器初值;
将工作方式控制字写入TMOD寄存器;
将计数初值写入THX和TLX寄存器;
启动定时器/计数器,即将TRX置位。
如果工作于中断方式,需置位EA(中断总开关)及ETX(允许定时/计数器中断),并编写中断服务程序。
3.2 程序流程图
篮球比赛中,得分可分为1分、2分、3分三种情况,为防止出见加分错误要另设一减分开关。根据这样的设计要求,结合数码管的显示以及51单片机中计数器的工作实现方式、接口应用、中断控制等可设计出程序流程图如下所示:
图3.1 简易篮球比赛计分器
3.3 程序分析
数码管的显示,在TAB中加入数码管显示数字时对应的16进制数
MOV DPTR,#TAB
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H
DB 92H,82H,0F8H,80H,90H
数码管显示程序:
MOV A,R0
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV P1,A
MOV A,B
MOVC A,@A+DPTR
MOV P3,A
由于需要四个开关,取出A中的低四位来接开关,用ANL命令实现。其程序如下:
MOV A,P0
ANL A,#0FH
CJNE A,#0FH,KEY1
SJMP START
四个开关加1、加2、加3、减1,直接通过加法在累加器中实现,以开关1为例,程序如下:
MOV R1,#1
MOV A,R0
ADD A,R1
MOV R0,A
4 Proteus软件仿真
4.1 Proteus仿真软件简介
Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。
Protues提供了丰富的资源: 仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标。另外Proteus还提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。
在Protues中进行电路仿真时,先绘制好原理图,再调入已编译好的目标代码文件:*.HEX,随后便可在PROTEUS的原理图中模拟的实物运行状态和过程,进行观察从而改良自己的设计方案。操作简单,非常适合初学者进行单片机的仿真,进而了解其原理,增强实践。
4.2 仿真过程
在用Protues进行仿真之前,先要用WAVE软件将我们编写好的汇编程序编译。具体方法是先新建一项目,之后输入编写的程序,输入完成后保存然后执行项目、编译,在目标文件夹内生成编译好的程序文件,其中*.HEX文件就是我们所需要的,在之后电路设计好后用于放入AT89C51中执行其功能。
在生成*.HEX文件后,进入Protues软件,此时软件已自动打开一新建项目。我们可直接在其中构建电路图,点击板面左侧按键P,在弹出的Pick devices对话框中进行元器件的选择,如下图:
图4.1 查找元器件
元器件都找到后,先进行排版再按照电路图连接,如连接好后如下图所示:
图4.2仿真电路图
在电路连接好后,双击AT89C51在弹出对话框中选择单片机中要输入的程序,见下图:
图4.3 向AT80C51中加入程序
在输入程序后,即可开始进行仿真了,选择执行后点击开关可观察到数码管亮,并能实现加1、加2、加3、减1的功能。
图4.4 仿真结果图
5 调试分析
在仿真成功之后,
[1] [2]
单片机c语言篮球比分_单片机篮球比赛计分器设计方案与程序详解相关推荐
- 单片机c语言篮球比分_单片机和C语言的篮球计时计分器设计
摘要 单片机,亦称单片微电脑或单片微型计算机.它是把中央处理器( CPU ). 随机存取存储器( RAM ).只读存储器( ROM ).输入 / 输出端口( I/0 )等主要计 算机功能部件都集成在一 ...
- 单片机c语言篮球比分_单片机课程设计篮球计时计分器正文1
基于单片机的篮球赛计时计分器的设计 一系统设计方案 1.1 设计题目 篮球计时计分器 1.2 系统功能要求 本系统可实现功能如下: (1)主控部分:选择单片机为核心元件构成系统. (2)计时部分:能记 ...
- adprw指令通讯案例_实例 | 三菱FX3U485无协议通讯程序详解(含程序)
三菱FX2N PLC串行通讯指令(FNC 80 RS) 串行通讯指令(FNC 80 RS) 1.指令格式:[RS D0 K8 D10 K8] 发送数据帧起始地址和数目 ↓ 接收数据帧起始地址和数目 2 ...
- C++框架_之Qt的信号和槽的详解
目录 C++_之Qt的信号和槽的详解 1.概述 1.1对象树(子对象动态分配空间不需要释放) 2.信号和槽 Qt5 的书写方式:(推荐的使用)★★★★★ Qt4 的书写方式: 3.自定义信号槽 3.1 ...
- 计算机主板一直滴滴响,主板报警声大全_主板一直滴滴滴短响含义详解
主板报警声大全_主板一直滴滴滴短响含义详解 在电脑使用过程中,有时我们会听到电脑主板发出类似报警的声音,这时候说明可能电脑主板出现了一定的问题,电脑主板报警的原因有很多,我们可以从报警的声音去区分到底 ...
- 单片机c语言篮球比分_基于单片机的篮球比赛计时计分器的设计
摘 要:本系统是采用单片机AT89C51作为本设计的核心原件.利用7段共阴LED作为显示器件.在此设计中共接入了2个7段共阴LED显示器,用于记录得分和比赛时间,显示范围可以达到0到99分,基本满足赛 ...
- 单片机c语言篮球比分_基于单片机的篮球记分器设计报告
设计题目:基于单片机的篮球比赛计分器 设计内容及要求: 1)设计一款显示篮球比分的记分牌: 2)通过加分按钮可以给A队,或B队加分: 3)设计对调功能,更换场地后,AB队分数互换: 4)计时:能实现0 ...
- java和c语言的区别_单片机为什么一直用C语言,不用其他编程语言?只有学过的知道...
单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言. 这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为什么这些语言不能用来编写单片机程序呢 ...
- 51单片机如何跳出wile循环_单片机C语言之串口通信协议(代码分享)
原标题:单片机C语言之串口通信协议(代码分享) 现实生活中, 我们总是要与人打交道,互通有无.单片机也一样,需要跟各种设备交互.例如汽车的显示仪表需要知道汽车的转速及电动机的运行参数,那么显示仪表就需 ...
最新文章
- spring入门(二) 使用注解代替xml配置
- 在linux中 要删除abc目录,在 Linux 中,要删除 abc 目录及其全部内容的命令为:
- setAttibute和getParameter的区别
- VMWare 虚拟化 Ubuntu 64 (16.04)-- docker 无法链接 pull 镜像 ?(solved)
- linux怎么进入bios查看mac地址,详细教您查看本机mac地址
- Debian的GRUB开机画面和好看的命令行
- 分布式测试工具Beetle.DT的部署并进行HTTP,SQL,TCP压测
- Android 获取光线强弱,开启闪光灯,关闭闪光灯
- Golang语言写99乘法表-双重for循环
- 2018.11.08 NOIP模拟 班车(倍增+dfs+bit)
- 优必选能开放软硬件源代码吗_四个项目供父母教孩子如何使用开放式硬件和电子产品...
- android Launcher——数据加载与变更
- ASP.NET Session使用详解
- 惠普bios硬重置_惠普重置BIOS
- 用计算机关闭无线网络连接,我的DELL笔记本电脑无线网络已关闭,怎么进行再连接?...
- CTF比赛必备常用工具
- Going Deeper with Convolutions——GoogLeNet论文翻译——中英文对照
- phpStudy点击phpadmin出404窗口的解决办法
- 关于协作与个人英雄主义
- C++后台开发学习路线(已多人拿下腾讯后台开发)