历史上的今天

今天是:2024年11月14日(星期四)

2019年11月14日 | 基于单片机的篮球记分器设计

发布者:玉树琼花 来源: 51hei关键字:单片机  篮球记分器 手机看文章 扫描二维码
随时随地手机看文章

一.设计的基本步骤及方案

1.AT89C51简介

单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O口等计算机所需要的基本部件的大规模集成电路。

其以体积小、功能全、性价比高等诸多优点而独具特色,在工业控制、尖端武器、通信设备、家用电器等嵌入式应用领域中独占鳌头。如果说C语言程序设计课程设计软件设计的基础课,那么单片机以其系统硬件构架完整、价格低廉、学生能动手等特点,成为工科学生硬件设计基础课。

2.数码管显示原理

数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为A,B,C,D,E,F,G,H。

    

图1 数码管内部结构图

假设我们要显示一个数字2, 那么 A、B、G、E、D这5个段的发光管亮就可以了,C、F、H不亮,同时由于接法为共阴接法,那么为高电平是亮,低电平是灭。从高往低排列, P1.7-P1.0写成二进制为01011011, 把他转化为16进制则为5BH。我们可以根据硬件的接线把数码管显示数字编制成一个表格,见下表,以后直接调用就行了。

数码管的接口有静态接口和动态接口两种。静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阴接GND,本次课程设计由于所需数码管不多,故可用些种方法接线。这种接法占用接口多,仅能接少量数码管。

动态接口采用各数码管循环轮流显示的方法,当循环显示的频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮。

多位一体的数码管原理和单个的差不多。

表2 共阴极数码管显示

显示

P1.7

小数点

P1.6

G

P1.5小F

P1.4

E

P1.3

D

P1.2

C

P1.1

B

P1.0

A

HE代码

0

0

0

1

1

1

1

1

1

3FH

1

0

0

0

0

0

1

1

0

06H

2

0

1

0

1

1

0

1

1

5BH

3

0

1

0

0

1

1

1

1

4FH

4

0

1

1

0

0

1

1

0

66H

5

0

1

1

0

1

1

0

1

6DH

6

0

1

1

1

1

1

0

1

7DH

7

0

0

0

0

0

1

1

1

07H

8

0

1

1

1

1

1

1

1

7FH

9

0

1

1

0

1

1

1

1

6FH


3.总体方案:基于单片机系统的篮球赛计时计分器的系统构成图如下图所示:

图3 系统结构图

本系统采用单片机AT89C51作为AT89C51本设计的核心元件。利用7段共阴LED作为显示器件。在此设计中共接入了8个7段共阴LED显示器,其中4个用于记录AB队的分数,每队2个LED显示器显示范围可达到0~99分,足够满足赛程需要,另外4个LED显示器则用来记录赛程时间,其中2个用于显示分钟,2个用于显示秒钟。赛程计时采用到计时方式。即比赛前将时间设置好,比赛开始时启动计时,直至计时到零为止。计时范围可达到0~99分钟,也完全满足实际赛程的需要。

其次,为了配合计时器和计分器校正调整时间和比分,我们特定在本设计中设立了11个按键,其中8个用于设置,交换场地,启动和暂停等功能。

二. 硬件电路设计及描述

1.硬件原理电路

系统硬件图如下图4所示:

记分图如下图5所示:

计时图如下图6所示:


2.硬件电路设计及描述

硬件部分的设计是整个设计中的一个重要部分。在进行硬件部分设计时,首先要确定元器件,并且知道这些器件的工作原理和功能。然后才可以进行设计。本设计的硬件电路包括两部分:计时电路、计分电路。硬件电部分的设计除了硬件电路的设计,还包括PCB板的绘制。


三. 软件思想及流程

1. 主流程图8:

2. 记分流程图9:

比分显示程序:

DISPF:MOV  R0,#34H

      MOV  R3,#7FH

      MOV  A,R3

PLAYF:MOV  P2,A

      MOV  A,@R0

      MOV  DPTR,#DSEG1

      MOVC  A,@A+DPTR

      MOV   P0,A

      LCALL  DL1

      MOV  P2,#0FFH

      MOV  A,R3

      RR   A

      JNB  ACC.3,LD1

      INC  R0

      MOV  R3,A

      LJMP PLAYF

      AJMP LD1

              键盘扫描子程序

3. 时间中断流程图10

时间中断程序:

TIME: PUSH  ACC

      PUSH  PSW

      MOV   TH0,#0D8H

    MOV   TL0,#0F0H

      DJNZ  R2,RET0

      MOV   R2,#64H

      MOV   A,20H

      CLR   C

      DEC   A

      MOV   20H,A

      MOV   A,21H

      CJNE  A,#00H,PFF   ;;;;;;;;;非0分跳转;;;;;;;;;;;;;;;;;

      MOV   A,20H

      CJNE  A,#00H,PFF   ;;;;;;;;;非0分0秒情况跳转;;;;;;;;;;

      CLR   TR0          ;;;;;;;;;比赛结束停止计时;;;;;;;;;;

      MOV   20H,#00H

      MOV   21H,#00H

      MOV   32H,#00H

      MOV   33H,#00H

      LCALL MINGYIN

      MOV   21H,26H

      MOV   30H,#00H

      MOV   31H,#00H

      MOV   32H,24H

      MOV   33H,25H

      LJMP  RET0

PFF:  MOV   A,20H

      CJNE  A,#0FFH,OUT

      MOV   20H,#59        ;

      MOV   30H,#09H

      MOV   31H,#05H

      MOV   A,21H

      DEC   A

      MOV   21H,A

OUT:  MOV   A,20H

      MOV   B,#0AH

      DIV   AB

      MOV   30H,B

      MOV   31H,A

      MOV   A,21H

      MOV   B,#0AH

      DIV   AB

      MOV   32H,B

      MOV   33H,A

RET0: POP PSW

      POP ACC

      RETI

YANSHI:PUSH  ACC       ;定时器1中断

      PUSH  PSW

      MOV   TH1,#0D8H

    MOV   TL1,#0F0H

      DJNZ  R2,RET1

      MOV   R2,#64H

              DJNZ 39H,RET1

              MOV 39H,#03H    ;TIAN HEIHEI

              MOV R2,#64H   

              CLR TR1

              CLR P3.6

RET1: POP PSW

      POP ACC

      RETI

时间显示程序:

DISPT: MOV  R0,#30H               

      MOV  R3,#0F7H

      MOV  A,R3

PLAYT:MOV  P2,A

      MOV  A,@R0

      MOV  DPTR,#DSEG1

      MOVC  A,@A+DPTR

      MOV  P0,A

      LCALL DL1

      MOV  P2,#0FFH

      MOV  A,R3

      RR   A

      JNB  ACC.7,LD1

      INC  R0

      MOV  R3,A

      LJMP PLAYT

LD1:  RET

4. 源程序代码见附录一

四.硬软件的调试过程及调试方法

1.进入比赛,先设置时间为一节或者半场。默认是12分钟(按下“A+1”进行分钟加1,按下“A-1”进行分钟减1),如图11

                              图11

2.按下“K1”开始比赛或者暂停,如图12


3.上面的液晶显示为计时显示。下面的液晶显示为分数显示“左侧为攻左半场的队的分数,右侧为攻右半场的对的分数。”换场后依然如此。

4.按下“K2”交换场地,重新计时。

5.A+1,A+2,A+3,A-1,B+1,B+2,B+3,B-1进行两队分数调整

五.课程设计心得体会

俗话说:好的开始是成功的一半。说起课程设计,最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己感兴趣的题目。其次,老师对课程设计的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

本次设计,我查阅了相关书籍,做好各项准备后才开始进行设计,本次设计测试结果以及不足之处:计时电路可完成倒计时、暂停、继续等功能,在比赛时间到后可进行报警。记分电路工作正常,可完成对比分的刷新与暂存。但在测试过程中发现,在比赛上半场时间到后,不能进行比分的交换。进行分析后得出结论如下:系统电路部分设计没有原则性的错误,在制版的过程中注意了走线,因此硬件部分功能完好。但因为软件系统编写方面的疏忽,在比分交换及计时部分没有能很好的实现。除此之外,软件达到了系统的要求。

通过课程设计,发现了我们的很多不足,我们知识的很多漏洞,看到了我们的实践经验还是比较缺乏,理论联系实际的能力还急需提高。在这个过程中,我们也曾经因为实践经验的缺乏失落过,也曾经仿真成功而热情高涨。通过单片机课程设计,我们加深了对单片机理论的理解,学回了怎样将理论很好地应用到实际当中去,而且我们还学会了如何去培养我们的不畏困难的挑战精神,从而不断地战胜自己,超越自己,我们在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。

此次课程设计充分锻炼了我们的设计能力和团队合作能力,给我们注入了一些全新的认识,为我们以后的设计和实验奠定了基础,也为引导我们以理论结合实践起到重要意义。


单片机源程序如下:

ORG     0000H

LJMP  MAIN

ORG     0003H

LJMP    CHANGE

ORG     000BH                                         

LJMP    TIME

ORG     0013H

LJMP    TIAOSHI

ORG     001BH

LJMP    YANSHI

MAIN: MOV  SP,#50H

      MOV  TCON,#04H

      MOV  20H,#00H        ;秒

      MOV  21H,#0CH        ;分

      MOV  22H,#00H        ;;;;;;;;;A队分数;;;;;;;;;;;;;;;;;

      MOV  23H,#00H        ;;;;;;;;;;B队分数;;;;;;;;;;;

      MOV  24H,#02H        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      MOV  25H,#01H

      MOV  26H,#0CH        ;;;;;;;;;;;分钟定时区;;;;;;;

      MOV  30H,#00H        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      MOV  31H,#00H        ;;;;;;;;;时间缓冲区;;;;;;;;;;

      MOV  32H,#02H        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      MOV  33H,#01H        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      MOV  34H,#00H        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      MOV  35H,#00H        ;;;;;;;;分数显示缓冲区;;;;;;;

      MOV  36H,#00H        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      MOV  37H,#00H        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

      MOV  39H,#03H        ;TIAN HEIHEI

      MOV  TMOD,#11H

      MOV  TH0,#0D8H

      MOV  TL0,#0F0H

              MOV TH1,#0D8H

              MOV TL1,#0F0H

      MOV  IE,#10001111B

      MOV  IP,#05H

      MOV  R2,#64H

              CLR P3.6

START:LCALL DISPT

      LCALL DISPF

      JNB  P1.0,PP1       ;A队加一分

      JNB  P1.1,PP2       ;A队加两分

      JNB  P1.2,PP3       ;A队加三分

      JNB  P1.3,PP4       ;A队减一分

      JNB  P1.4,PP55       ;B队加一分

      JNB  P1.5,PP66       ;B队加两分

      JNB  P1.6,PP77       ;B队加三分

[1] [2]
关键字:单片机  篮球记分器 引用地址:基于单片机的篮球记分器设计

上一篇:ds18b20 温度模块串口显示简单代码
下一篇:GY521 mpu-6050调试经验与教训

推荐阅读

中国储能网讯:“近年来,智能手机的发展速度趋缓,数字化行业逐渐兴起。能源互联网呈现出数字化、智能化和低碳化的趋势。” 华为技术有限公司战略与产业发展副总裁肖然日前在清华大学主办的2018国家能源互联网大会上说。 中国科学院院士周孝信表示:“能源互联网是互联网技术和能源深度融合,具有能源高效利用、可再生能源比重提升等特色。” 在电力...
1. stm8l152有5种低功耗模式,wait mode, low power run mode, low power wait mode, active-halt mode, halt mode.2. 在halt模式下,cpu和外设时钟停止,可以通过外部中断或者复位来唤醒。3. 本实验设计为:led灯亮,紧接着进入halt模式,有按键时,中断,快速唤醒,led灯灭。 PWR_FastWakeUpCmd(ENABLE); //快速唤醒使能 ...
OWC是领先的零排放Mac和PC技术公司,并且是内存、外部驱动器、SSD、Mac和PC对接解决方案以及性能升级套件的著名提供商,日前该公司宣布其当前的Thunderbolt(USB-C)外部存储产品线和扩展坞与下周发售的苹果新款M1 Macs兼容。OWC具有Thunderbolt存储解决方案,用户需要在几秒钟内移动大量数据,或者使用屡获殊荣的扩展坞在笔记本电脑中添加多个端口。无论...

史海拾趣

问答坊 | AI 解惑

LCD Scope 40MSPS

网上找到的一个示波器网站 http://www.eosystems.ro/…

查看全部问答∨

问个s3c2410的DMA和LCD问题,nXDreq,nXDACK应接到哪里去?找了个原理图没看明白

在应用层往LCD输出图像时,可以这样写: unsigned long *nPhysicalAddress = 0x30000000;(frame buffer address) 修改nPhysicalAddress 指向的内存即可 0x30000000是怎么得出的?和硬件连接有什么关系?我下了个原理图,好像不全,反正没看明白 ...…

查看全部问答∨

求救,自己定制系统不能显示中文??

奇怪,在pb5.0自己定制的系统不能显示中文,只能显示"_",但用mobile Hansheld作系统的话就能显示中文,什么回事呢? …

查看全部问答∨

SQL CE数据库的修改操作

我在wince6.0上开发sql ce 在建好一个数据库后,允许用户修改数据库中的内容,但是修改后却保存不了,数据库中还是原始内容。 大家有知道为什么吗? 相关代码如下(就是用了update方法): this.table2TableAdapter.Update(this.testdbDataSet1 ...…

查看全部问答∨

STM32的FLASH使能和禁止半周期访问对运行有什么区别吗

                                 如题…

查看全部问答∨

f2812AD转换波动很大,不知是什么原因?

用电位器输出一个电压值,从我watch窗口看到的ADCresult值都在变化,变化比较大。如0xabc0,b为都会能差4,帮忙分析一下可能那里设置不对。谢谢!…

查看全部问答∨

LM3S811使用心得之ADC

从参加抢LM3S811的活动后,每天都期待啊,终于在4.26的下午,顺风快递发来信息去取快递,其实已经料到是811到啦,好兴奋的跑到校门口外迎接顺风,领到包裹后,回寝室迫不及待的打开它,没错是811 。用811把我以前的LCD有重新驱动了起来,下面是我这 ...…

查看全部问答∨

对于一段教程的程式觉得有问题!

下面是一段简单的完整通讯程序,实现功能:将接受的数据原样送回。但是觉得南航教程中以下这段程序是不是少了一个子程,就是用于接收PC机发给MSP430的数据,并将接收到的数据放至发送缓存器? #include <msp430x44x.h>void main(void){WDT ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved