历史上的今天
返回首页

历史上的今天

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

正在发生

2019年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队加三分

推荐阅读

史海拾趣

Electrocube Inc公司的发展小趣事

Electrocube Inc公司的创始人在创立之初便面临着重重挑战。当时,电子行业正处于快速发展阶段,市场竞争激烈。然而,创始人凭借对电子技术的深刻理解和敏锐的市场洞察力,成功开发出了一款高性能、低成本的电容器产品。这款产品迅速获得了市场的认可,为公司赢得了第一桶金,也为后续的发展奠定了坚实的基础。

芯茂微电子公司的发展小趣事

芯茂微电子始终坚持品质至上和客户至上的原则,致力于为客户提供高品质、高性能的集成电路产品和服务。公司建立了完善的质量管理体系和客户服务体系,从产品研发、生产、销售到售后服务,每一个环节都严格把控,确保产品质量和客户满意度。正是凭借这种对品质和客户的执着追求,芯茂微电子赢得了客户的广泛信赖和赞誉。

Atlantic Microwave Ltd公司的发展小趣事

Atlantic Microwave Ltd公司成立于电子科技蓬勃发展的年代,初期只有几名志同道合的工程师,他们怀揣着对微波技术的热情,在狭小的办公室中开始了他们的创业之旅。资金短缺、技术难题、市场认可度低等问题接踵而至。然而,团队凭借着对技术的执着追求和对市场的敏锐洞察,不断攻克技术难关,优化产品设计,逐渐在市场上站稳了脚跟。

China Semiconductor Corp公司的发展小趣事

CSC公司成立于21世纪初,当时正值中国半导体产业刚刚起步。面对国际巨头的垄断和技术封锁,CSC公司从零开始,凭借一腔热血和坚定的信念,开始了艰难的创业之路。公司初期,资金匮乏、人才短缺,但CSC人凭借着对技术的执着追求和对市场的敏锐洞察,成功研发出多款具有自主知识产权的半导体产品,打破了国外技术的垄断,为中国半导体产业的崛起奠定了基础。

ANOVA公司的发展小趣事

ANOVA深知,成功的关键在于与合作伙伴的紧密合作。因此,公司始终与客户保持紧密的合作关系,共同开发特定的解决方案,协助制定部署策略。ANOVA的服务团队以客户的需求为导向,以十几种语言提供个性化的服务,确保每一位客户都能得到满意的解决方案。此外,ANOVA还积极与商业伙伴合作,共同开拓市场,实现共赢。

Bedford Opto公司的发展小趣事

Bedford Opto公司深知人才是企业发展的核心。因此,公司高度重视人才培养和团队建设。通过提供良好的工作环境和福利待遇,吸引和留住了一批优秀的人才。同时,公司还注重员工的培训和发展,不断提升员工的专业素质和综合能力。

这些故事虽然基于虚构,但它们反映了电子行业中许多企业可能经历的发展过程和面临的挑战。当然,Bedford Opto公司的真实发展历程可能有所不同,具体的故事需要参考公司的官方资料和相关报道。

问答坊 | AI 解惑

常用场效应晶体管放大器的识别

场效应晶体管放大器 1、场效应晶体管具有较高输入阻抗和低噪声等优点,因而也被广泛应用于各种电子设备 中。尤其用场效管做整个电子设备的输入级,可以获得一般晶体管很难达到的性能。 2、场效应管分成结型和绝缘栅型两大类,其控制原理都是 ...…

查看全部问答>

嵌入式的迷茫阶段

各位好,我是计算机专业,想打算学习嵌入式的,但是我发现在嵌入式课程的学习中有很多芯片,很多的电路图,我以前学过接口,但是感觉现在的知识和以前学的有很大的差别,甚至是根本就没有听说过,现在学习起来感觉很迷茫,不知道嵌入式是否对于像我 ...…

查看全部问答>

S3C6410开发板,linux下载cramfs文件,系统停留在:tap anywhere on the screen to continue点击触摸屏没反应

发现个问题:我在使用S3C6410开发板,linux下载cramfs文件系统后,系统起来,串口信息正常~但是显示屏停留在:tap anywhere on the screen to continue 的页面 ,点击触摸屏没反应... 好不容易删掉文件系统下/etc/pointercal;重新编译生成.cramfs文件,下 ...…

查看全部问答>

8259中断控制器

我是一个学生,正学习计算机组成原理,遇到一个问题: CPU依据中断向量号获取中断服务子程序入口地址实模式下使用中断向量表 . 中断向量表IVT位于内存地址0开始的1KB空间.实模式是16位寻址,中断服务子程序入口地址(段,偏移)的段寄存器和段内偏移量各 ...…

查看全部问答>

请问,PIC单片机烧写器,烧不进程序怎么回事???

编译平台是MPLAB,用PIC单片机烧写器烧程序。前一刻还好好的,能够烧进去,可是突然就烧不进去了,程序编译已经通过。PIC烧写器的型号是PIC16-MCD2。下面是烧不进去的提示: Connecting to MPLAB ICD 2 ICD0019: Communications:  Fail ...…

查看全部问答>

关于Keil uVision3的中文显示

为什么的我的.C文件里的中文显示不出来,而在笔记本上用同样版本的却能显示中文呢?遇到过的说下原因啊…

查看全部问答>

视频光端机四大常见故障及应对办法

随着城市进程的发展,安防环境的复杂性,安防监控工程中越来越多的采用光纤技术传输图像、声音、数据等信息,光纤传输系统的关键设备―数字视频光端机受到广大用户的青睐。     1、光端机的光路问题:     安防监控工程中 ...…

查看全部问答>

单片机控制sa8282产生SPWM波形遇到的问题

如题:我是严格按芯片资料的时序写程序了,但不管怎么改参数,上半桥的3个口都没输出,另外三个有输出,应该证明指令已经写进去了,请问哪位高手知道这是什么问题???跪求解答…

查看全部问答>

用人之道

 去过庙的人都知道,一进庙门,首先是弥陀佛,笑脸迎客,而在他的北面,则是黑口黑脸的韦陀。但相传在很久以前,他们并不在同一个庙里,而是分别掌管不同的庙。弥乐佛热情快乐,所以来的人非常多,但他什么都不在乎,丢三拉四,没有好好的管理 ...…

查看全部问答>

线性稳压电源如何通过EMC

需要求助大家,线性稳压电源如何通过EMC呢?有什么好的办法?…

查看全部问答>