基于单片机的篮球计分器设计单片机课程设计报告书.docx

上传人:b****7 文档编号:8968463 上传时间:2023-02-02 格式:DOCX 页数:25 大小:348.10KB
下载 相关 举报
基于单片机的篮球计分器设计单片机课程设计报告书.docx_第1页
第1页 / 共25页
基于单片机的篮球计分器设计单片机课程设计报告书.docx_第2页
第2页 / 共25页
基于单片机的篮球计分器设计单片机课程设计报告书.docx_第3页
第3页 / 共25页
基于单片机的篮球计分器设计单片机课程设计报告书.docx_第4页
第4页 / 共25页
基于单片机的篮球计分器设计单片机课程设计报告书.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

基于单片机的篮球计分器设计单片机课程设计报告书.docx

《基于单片机的篮球计分器设计单片机课程设计报告书.docx》由会员分享,可在线阅读,更多相关《基于单片机的篮球计分器设计单片机课程设计报告书.docx(25页珍藏版)》请在冰豆网上搜索。

基于单片机的篮球计分器设计单片机课程设计报告书.docx

基于单片机的篮球计分器设计单片机课程设计报告书

单片机系统

课程设计

成绩评定表

设计课题:

基于单片机的篮球计分器设计

学院名称:

电气工程学院

专业班级:

学生:

学号:

指导教师:

设计地点:

设计时间:

指导教师意见:

 

成绩:

签名:

年月日

 

单片机系统

课程设计

 

课程设计名称:

基于单片机的篮球计分器设计

专业班级:

学生姓名:

学号:

指导教师:

课程设计地点:

课程设计时间:

 

单片机系统课程设计任务书

学生

专业班级

学号

题目

课题性质

工程设计

课题来源

选题

指导教师

主要容

(参数)

利用89C51单片机设计篮球计分器系统,实现以下功能:

(1)用4位LED显示器显示两队分数;

(2)能够随时手动对A、B两队分别计分;

(3)能够手动实现A、B两队的分数位置随场地交换而对应调换

任务要求

(进度)

第1-2天:

熟悉课程设计任务及要求,查阅技术资料,确定设计方案。

第3-4天:

按照确定的方案设计单元电路。

要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。

第5-6天:

软件设计,编写程序。

第7-8天:

实验室调试。

第9-10天:

撰写课程设计报告。

要求容完整、图表清晰、文理流畅、格式规、方案合理、设计正确,篇幅合理。

主要参考

资料

[1]迎新.单片微型计算机原理、应用及接口技术(第2版)[M].:

国防工业,2004

[2]伟福LAB6000系列单片机仿真实验系统使用说明书

[3]阎石.数字电路技术基础(第五版).:

高等教育,2006

审查意见

 

系(教研室)主任签字:

年月日

1、概述4

1.1、研究背景4

1.2、基本功能及设计思路4

2、总体方案设计5

2.1、方案选取5

2.2、总体设计5

3、硬件电路设计6

3.1、电源电路6

3.2、晶振电路7

3.3、键盘电路7

3.4、复位电路8

3.5、显示电路8

4、系统软件设计9

4.1、主程序设计10

4.2、加分程序设计10

4.3、交换程序设计12

4.4、LED显示程序设计13

4.5、共阴极数码管字形表14

5、总结15

参考文献15

附录1:

系统原理图17

附录2:

源程序18

附录3:

系统调试25

 

1、概述

1.1、研究背景

在这个电子信息技术迅速普及的今天,人们对电子产品的需求越来越多。

二十一世纪的今天,科学技术迅猛发展,时代前进的脚步越迈越宽,应用自动化设备,现代化通讯,计算机处理,数字化信息,现代化显示设备等一些高新技术使人类迈向智能化发展。

在智能化产品中,单片机的应用已经越来越广泛,单片机以它体积小、质量轻、耗电省、可靠性高、价格低等优点,开始不断发展,并广泛应用于仪器仪表、家用电器、医疗设备、航天航空领域、工业专用设备的管理及过程控制等领域,在很多的大中型的电气设备以及小型的电子产品中也用到了单片机进行控制。

单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果。

若把经典的电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有“生命”的电子系统。

本设计就是基于单片机设计篮球计分系统,通过串口通信动态传输数据,使计分系统有了更多更完善的功能。

单片机系统的硬件结构给予了篮球计分器系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的篮球计分器面前具有电路简单、成本低、运行可靠等特色。

1.2、基本功能及设计思路

1、利用89C51单片机设计篮球计分器系统,实现以下功能

(1)用4位LED显示器显示两队分数;

(2)能够随时手动对A、B两队分别计分;

(3)能够手动实现A、B两队的分数位置随场地交换而对应调换。

2、设计思路:

以AT89C51单片机为核心元件,利用独立式键盘控制,使4位共阴极LED

数码管以静态显示方式实时记录A、B两队的分数。

独立式键盘由K1、K2、K3、K4、K5、K6、K7、K8构成。

其功能如下:

(1)K1、K2:

加1分;

(2)K3、K4:

加2分;

(3)K5、K6:

加3分;

(4)K7:

半场换分;

(5)K8:

显示复位。

A、B两队分别占用两位LED显示器,显示围为0~99,能够基本满足一般比赛需要。

2、总体方案设计

2.1、方案选取

单片机在各种电子产品中的应用已经越来越广泛,很多的电子产品利用单片机所取得的便利得到了人们的好评,针对基于单片机的篮球计分器的设计要求,实现其功能的方案有多种,现列举如下:

方案

(一)按键控制每次各队的加分值为1分或2分,如若进3分球,则需两键相加。

并由半场换分按键和复位功能。

分数通过4位LED显示器动态显示;

方案

(二)系统采用三个按键控制每次各队的加分值为1分、2分或3分。

同样也有半场换分按键和复位功能。

并通过4位LED显示器静态显示分数。

这二个方案都是基于单片机控制的,通过按键加分及数码管显示,不同的设计部分在于按键的数量和显示方式的选取上。

方案

(一)的按键数量较少,加上交换按键和复位按键共需要6个,但也能完成基本功能。

不过在显示方面,动态方式编程较为复杂。

方案

(二)的按键虽然较多,但功能齐全,使用方便。

并且电路不是太过复杂,编程较为简单。

最终方案:

经过以上比较,方案

(一)按键使用不方便,且软件设计复杂。

因此选用方案

(二),即以8位独立式键盘分别实现加1分、加2分、加3分、半场换分和显示复位的功能,并用4位共阴极LED显示器以静态显示方式显示分数。

2.2、总体设计

篮球计分器的设计是基于满足设计要求的前提并且根据理论上的可实现性和硬件上的经济实用性,而进行设计的重要环节。

本节从人们对系统功能需求出发,在综合考虑各种因素的情况下,设计出篮球计分器的总体构架。

1、加分功能设计:

通过显示缓冲区为中间加分媒介。

每当按键按下时,首先通过外部中断源实现中断,进入中断后判断键值再进入相应加分子程序,对相应显示缓冲区加分。

2、分数调换功能:

同样是利用外部中断源实现中断,中断服务程序应能实现中场分数位置调换的功能。

3、分数显示功能:

用同步移位寄存器74HC164实现4位LED数码管静态显示。

通过查表指令在字形表中找到与显示缓冲区对应的字形码,然后串行移位输出即可。

基于89C51单片机的篮球计分器总体设计框图如图2所示。

图2篮球计分器总体框图

在框图所示的系统构架中,8位独立式键盘包括6位加分按键,1位分数调换按键和1位复位按键。

其中加分按键通过7421实现中断扫描,分数调换按键则直接通过外部中断1入口P3.3实现中断服务。

3、硬件电路设计

3.1、源电路

单片机正常工作电压为5V,因此设计的电源电路主要是提供单片机工作电压。

图3.1是为单片机提供电压的电源电路,包括变压、整流、稳压、滤波等环节。

在这个电路中采用了三端集成稳压器LM7805,可以输出5V的直流电压以供给单片机。

图3.1电源电路

3.2、晶振电路

电路中的晶振即石英晶体震荡器。

由于石英晶体震荡器具有非常好的频率稳定性和抗外界干扰的能力,所以,石英晶体震荡器是用来产生基准频率的。

通过基准频率来控制电路中的频率的准确性。

同时,它还可以产生振荡电流,向单片机发出时钟信号。

图3.2是单片机的晶振电路。

片电路与片外器件就构成一个时钟产生电路,CPU的所有操作均在时钟脉冲同步下进行。

片振荡器的振荡频率非常接近晶振频率,一般多在1.2MHz~24MHz之间选取。

C1、C2是反馈电容,其值在20pF~100pF之间选取,典型值为30pF。

本电路选用的电容为30pF,晶振频率为12MHz。

图3.2晶振电路

3.3、键盘电路

键盘电路在篮球计分器中的主要作用是用于实现加分和交换分数位置。

键盘可分为独立式键盘和行列式键盘。

本设计中由于按键数少于8个,所以采用独立式按键电路。

另外采用中断扫描方式扫描键盘的状态,当然也可以直接用编程扫描方式,两者工作思路基本一样。

具体电路如图3.3所示。

AT89C51单片机的直流输入电流为15mA,当直流电源电压为+5V时,可选择5.1KΩ的上拉电阻保证单片机的正常工作。

图3.3键盘电路

3.4、复位电路

复位电路的主要功能是使单片机进行初始化,在初始化的过程中需要在复位引脚上加大于2个机器周期的高电平。

复位后的单片机地址初始化为0000H,然后继续从0000H单元开始执行程序。

在复位电路中提供复位信号,等到系统电源稳定后,再撤销复位信号。

但是为了在复位按键稳定的前提下,电源稳定后还要经一定的延时才撤销复位信号,以防在按键过程中引起的抖动而影响复位。

图3.4所示的RC复位电路可以实现上述基本功能。

图3.4复位电路

3.5、显示电路

显示电路是用于显示分数。

采用LED数码管进行显示是因为LED数码管具有以下几个优点:

(1)能在低电压、小电流条件下驱动发光,能与CMOS、ITL电路兼容。

(2)发光响应时间极短(<0.1μs),高频特性好,单色性好,亮度高。

(3)体积小,重量轻,抗冲击性能好。

数码管有共阴极和共阳极两种类型,其公共端主要进行位控制,笔画端则是进行字符控制,数码管有静态显示和动态显示两种方法。

本设计采用的是4位共阴极LED数码管的串行驱动电路来达到显示的目的。

驱动器采用74HC164,由单片机89C51的P3.0和P3.1来控制LED数码管的显示。

显示电路图如3.5所示。

因为共阴极数码管可以不用外接电阻,所以原理图中的电阻可去掉。

图3.5显示电路

4、系统软件设计

系统软件设计主要由加分中断服务程序,交换中断服务程序,LED显示程序等几部分构成。

本章节系统的介绍了篮球计分器的主程序和各主要功能子程序的设计流程,具体的程序代码见附录2。

4.1、主程序设计

主程序构成无限循环,主要完成单片机初始化,等待加分和交换中断的功能。

主程序的流程图如图4.1所示。

图4.1主程序流程图

主程序流程说明:

电路主要分为以下几个部分,分别是电源部分、按键部分、显示部分,各部分具有不同的子程序。

主程序的作用主要是先让单片机初始化,包括栈底指针的重新赋值、开中断、设置外部中断为脉冲触发等;然后使显示缓冲区清零,使让LED显示为零;再利用无条件转移指令SJMP$,等待加分中断和交换中断。

待中断服务程序执行完后,再次返回主程序等待下一次中断。

4.2、加分程序设计

硬件电路中设计了6个加分按键,采用中断和查询结合的方法扩充外部中

断源,实现相应加分的功能。

加分程序的流程图如图4.2所示。

图4.2加分程序流程图

加分程序流程说明:

按下加分按键后,产生外部中断0,CPU从主程序跳转到加分中断服务程序继续执行。

当在执行相应加分中断服务程序时,不允许其它按键按下有相应操作,所以必须在进入中断后通过CLREA指令关中断,又因为为了避免保护现场时,一些寄存器的容出现紊乱,此指令必须放在PUSH指令之前。

CPU通过查询方式判断键值后进入相应的加分子程序。

因为在操作按键时,无论是按下还是松开,触点在闭合和断开时均会产生抖动,此时逻辑电平是不稳的,如果得不到正确处理,可能会引起单片机对按键命令的错误执行,所以必须执行一段延时子程序,用来软件去抖动。

比如延时10ms:

MOVR0,#0AH

DL2:

MOVR1,#7DH

DL1:

NOP

NOP

DJNZR1,DL1

DJNZR0,DL2

延时子程序执行完后,再次判断键值,倘若仍然能够检测到相应键值信号,则继续向下执行,否则返回主程序。

继续向下执行时,首先让相应显示缓冲区加相应的分数,然后通过CJNE指令与10进行比较。

若小于10,则串行输出显示,否则向相应高位进1,并减10。

进1后的高位仍需与10进行比较,若小于10,则将上述减数重新赋予相应低位,然后串行输出,否则各位清零。

输出刷新后,CPU返回主程序。

4.3、交换程序设计

由于篮球比赛中场结束之后,要交换场地,则分数的显示位置也要随之调换。

硬件电路中设置K7键完成此项功能。

交换程序流程图如图4.3所示。

图4.3交换程序流程图

交换程序流程说明:

按下交换按键后,产生外部中断1,CPU从主程序跳转到交换中断服务程序中继续执行。

通过中间寄存器A和交换指令XCH实现分数位置的交换。

交换完成后,CPU返回主程序。

4.4、LED显示程序设计

硬件设计中利用4位LED静态显示电路显示分数。

通过显示缓冲区利用MOVCA,A+DPTR查表指令找到指定字形码,并由串行口串行输出显示。

LED显示程序流程图如图4.3所示。

图4.3LED显示程序流程图

LED显示程序流程说明:

首先将高位显示缓冲区的值,也就是字形表的检索值给累加器A,并将字形表首地址给DPTR,然后利用查表指令找到指定的字形码,最后由单片机的串行口串行输出。

紧接着将下一位缓冲区的值给累加器A,同样由查表指令找到相应字形码,并串行输出。

依次循环执行上述操作,直至4位全部输出后返回主程序。

4.5、共阴极数码管字形表

硬件电路所用数码管为共阴极,所以串行口输出高电平有效。

并且4位数码管的dp段都没有使用,因此始终为0。

另外应特别注意的是字形码的高低位顺序应与硬件中数码管引脚的连接对应。

共阴极数码管字形表如表4.1所示。

 

表4.1共阴极数码管字形表

字形

abcdefgdp

字形码

0

1

2

3

4

5

6

7

8

9

11111100

01100000

11011010

11110010

01100110

10110110

10111110

11100000

11111110

11110110

0FCH

60H

0DAH

0F2H

66H

0B6H

0BEH

0E0H

0FEH

0F6H

5、总结

本次设计叙述了篮球计分器的基本原理及使用方法,给出了一种篮球计分器的设计方案。

此次设计的篮球计分器,电路简单,而且易懂,使操作使用者使用非常方便,成本较低,灵敏可靠,计录准确,连接简单,具有非常高的使用价值。

设计容包括比分显示、比分调换等部分,可以使参加比赛的成员、裁判和观众一目了然的看到参赛队的成绩,以最快的速度评出结果.该篮球计分器还能广泛应用于各类知识竞赛。

本设计由AT89C51编程控制LED七段数码管作球赛计时计分系统具有赛程定性能稳定、操作方便且易携带等特点。

可广泛适合各类学校和小团体作为赛程计分。

通过这次篮球计分器的设计,可以更清楚的了解单片机程序设计的基本指令功能、编程步骤和技巧,对AT89C51单片机的原理和结构进一步熟悉和掌握,并对一些绘图和仿真工具积累了更多的使用经验。

参考文献:

[1]迎新.单片微型计算机原理、应用及接口技术(第二版).:

国防工业,2004

[2]锋王巧芝程丽平清鹏.51单片机典型应用开发例大全.:

中国铁道,2011

[3]为黄科雷道.仲单片机典型系统设计实例精讲.:

电子工业,2006

[4]阎石.数字电子技术基础.:

高等教育,2006

[5]夏路易石宗义.电路原理图与电路板设计教程Protel99SE.:

希望电子,2004

 

 

附录1:

系统原理图

附录2:

源程序

K1BITP0.0

K2BITP0.1

K3BITP0.2

K4BITP0.3

K5BITP0.4

K6BITP0.5

DIS0EQU30H;定义显示缓冲区

DIS1EQU31H

DIS2EQU32H

DIS3EQU33H

ORG0000H

LJMPMAIN;跳转到主程序

LJMPGRADE;跳转到加分中断服务程序

ORG0013H

LJMPEXCHANGE;跳转到交换中断服务程序

ORG0033H

MAIN:

MOVSP,#3FH;对堆栈指针进行赋值

MOVIE,#85H;开中断

MOVTMOD,#05H;外部中断为下降沿脉冲触发

LCALLCLEAR

LCALLDISPLAY1

SJMP$;等待中断

GRADE:

CLREA;关中断

JNBK1,LGRADE1;判断键值

JNBK2,LGRADE2

JNBK3,LGRADE3

JNBK4,RGRADE1

JNBK5,RGRADE2

JNBK6,RGRADE3

LGRADE1:

LCALLDELAY;延时去抖动

JNBK1,SW1;再次确定K1键是否按下

SETBEA;开中断

RETI

SW1:

INCDIS1;K1键按下则加分

LJMPLCOMPARE

LGRADE2:

LCALLDELAY;延时去抖动

JNBK2,SW2;再次确定K2键是否按下

SETBEA;开中断

RETI

SW2:

INCDIS1;K2键按下则加分

INCDIS1

LJMPLCOMPARE

LGRADE3:

LCALLDELAY;延时去抖动

JNBK3,SW3;再次确定K3键是否按下

SETBEA;开中断

RETI

SW3:

INCDIS1;K3键按下则加分

INCDIS1

INCDIS1

LJMPLCOMPARE

LCOMPARE:

MOVA,DIS1

CJNEA,#10,LCOMP;(DIS1)的值与10进行比较

SJMPLCARRY;(DIS1)等于10则跳转到进位子程序

LCOMP:

JC$+2;(DIS1)小于10则输出显示

LJMPDISPLAY2

SJMPLCARRY;(DIS1)大于10则跳转到进位子程序

LCARRY:

CLRC

MOVA,DIS1

SUBBA,#10

INCDIS0

MOVA,DIS0

CJNEA,#10,$+9;(DIS0)的值与10进行比较

LCALLCLEAR;(DIS0)等于10则数码管显零

LJMPDISPLAY2

MOVDIS1,A

LJMPDISPLAY2

RGRADE1:

LCALLDELAY;延时去抖动

JNBK4,SW4;再次确定K4键是否按下

SETBEA;开中断

RETI

SW4:

INCDIS3;K4键按下则加分

LJMPRCOMPARE

RGRADE2:

LCALLDELAY;延时去抖动

JNBK5,SW5;再次确定K5键是否按下

SETBEA;开中断

RETI

SW5:

INCDIS3;K5键按下则加分

INCDIS3

LJMPRCOMPARE

RGRADE3:

LCALLDELAY;延时去抖动

JNBK6,SW6;再次确定K6键是否按下

SETBEA;开中断

RETI

SW6:

INCDIS3;K6键按下则加分

INCDIS3

INCDIS3

LJMPRCOMPARE

RCOMPARE:

MOVA,DIS3

CJNEA,#10,RCOMP;(DIS3)的值与10进行比较

SJMPRCARRY;(DIS3)等于10则跳转到进位子程序

RCOMP:

JC$+2;(DIS3)小于10则输出显示

LJMPDISPLAY2

SJMPRCARRY;(DIS3)大于10则跳转到进位子程序

RCARRY:

CLRC

MOVA,DIS3

SUBBA,#10

INCDIS2

MOVA,DIS2

CJNEA,#10,$+9;(DIS2)的值与10进行比较

LCALLCLEAR;(DIS2)等于10则数码管显零

LJMPDISPLAY2

MOVDIS3,A

LJMPDISPLAY2

CLEAR:

MOVDIS3,#00H;显示缓冲区清零

MOVDIS2,#00H

MOVDIS1,#00H

MOVDIS0,#00H

RET

DELAY:

MOVR0,#0AH;延时10ms

DL2:

MOVR1,#7DH

DL1:

NOP

NOP

DJNZR1,DL1

DJNZR0,DL2

RET

DISPLAY1:

MOVR7,#4H;字形码输出

MOVR0,#DIS3

LP:

MOVA,R0

MOVDPTR,#1000H

MOVCA,A+DPTR;查表

MOVSBUF,A;将字形码串行输出

JNBTI,$

CLRTI;软件清除串行输出中断标志位

DECR0

DJNZR7,LP

RET

DISPLAY2:

LCALLDISPLAY1

SETBEA;开中断

RETI

EXCHANGE:

CLREA;关中断

MOVA,DIS0;分数位置交换

XCHA,DIS2

MOVDIS0,A

MOVA,DIS1

XCHA,DIS3

MOVDIS1,A

LJMPDISPLAY2

ORG1000H

DB0FCH,60H,0DAH,0F2H,66H

DB0B6H,0BEH,0E0H,0FEH,0F6H

END

 

附录3:

系统调试

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1