- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
苏州高等职业技术学校
毕业设计
题 目:篮球计分器
专 业:电子信息工程技术
姓 名:项哲 叶旺盛 汤琛 张琪 郁鑫欣
指导老师:茅海峰
完成日期:2012年5月
目录
一、前言························(3)
二、设计任务与要求·············(4)
三、总体方案 ··················(5)
四、单元模块设计···············(7)
五、程序·······················(9)
六、操作说明··················(13)
七、设计总结方案比较单片机的选型 方案一:51单片机虽然51单片机是8位的,采用总线结构,但具有编程控制简便、接口简单、工作可靠,价格经济,能耗少,容易实现系统小型化。方案二: 61单片机 61单片机是在51的基础上扩展起来的,虽然比51多了看门狗,并且是非总线结构,它是16位的,支持16位硬件乘法,还有专门的乘加指令,现在应用非常广泛,但61单片机价格较贵,要继续扩展,比较不方便。因此本系统采用51单片机来实现。设计思路根据设计,设计思路如下:系统采用51单片机软件方法来实现设计出篮球记分,能实现两队比分的加分、减分(防误操作)、计时和各种显示效果;其控制系统的模块有:位动态显示记分模块、位动态显示计时模块、两队加分减分模块、按键查询模块、分秒控制系统;计分统采用了指令冗余和按键延时去抖等抗干扰措施。(1)分数显示用个数码管,用来动态扫描方式显示。分数由P0口扫描。(2)分数的累加,通过接入键盘电路实现。系统共涉及个按键,分别定义为:?键功能:1队加分键2队加分键即分数加1键;1队加分键2队加分键即分数加1键;3、硬件电路的设计? 根据设计要求与设计思路,确定该系统的设计方案,图1为该系统设计方案的硬件电路设计框图。硬件电路由7部分组成:即按键输入电路、单片机、复位电路、LED数码管段驱动电路和LED数码管位驱动电路,LED显示器。四、单元模块设计
1、设计特点设计特点是采用模块化的设计。其优点是:每个模块的程序结构简单,任务明确,易于编写,调试和修改。程序可读性好,对程序的修改可局部进行,其他部分可保持不变。这里所设计的篮球比赛系统,也可以加以修改,用于其他比赛系统或其他用倒计时的系统中根据模块的划分原则,将模块程序划分成几个模块如图所示
2、软件设计
3、设计结果设计的篮球比赛计时记分系统。按照设计要求实现了节以及两队的记分功能#include reg51.h
typedef unsigned char UINT8;
typedef unsigned int UINT16;
typedef unsigned long int UINT32;
全局声明
----------------------------------*/
code UINT8 SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
code UINT8 SELECT_Score[6]={0x7f,0xbf,0xdf,0xfb,0xfd,0xfe};
code UINT8 SELECT_12munite[4]={0x7f,0xbf,0xdf,0xef};
code UINT8 SELECT_24sec[3]={0xfb,0xfd,0xfe};
#define S1 0x0e
#define S2 0x0d
#define S3 0x0b
#define S4 0x0f
UINT16 ScoreA,ScoreB;
UINT16 sec=240,munite=7200;
sbit BELL=P3^5;
延时函数
----------------------------------*/
void Delay(UINT16 t)
{
UINT16 i,j;
for(i=0;it;i++)
for(j=0;j113;j++);
}
键盘扫描
---------------------------------*/
计分显示函数
-----------------------------------*/
void Display_Score(UINT8 ScoreA,UINT8 ScoreB)
{
static UINT8 count=0;
P2=0xff;
switch(count)
{
case 0:
P0=SEGMENT[ScoreA/100];
break;
case 1:
P0=SEGMENT[ScoreA%100/10];
break;
case 2:
P0=SEGMENT[
文档评论(0)