- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
广西工学院鹿山学院
单片机 课程设计报告
题目: 电子记分牌
专业: 电子信息工程
班级: 电子081、082
姓名:杨静 张盼星 刘瑞云 蒙其业 刘杰
电子记分牌的设计
内容提要:
1、引言本设计是采用AT8951单片机设计的一个用于篮球比赛的篮球计时计分器。本设计采用定时器T0中断进行计时,显示部分分为计显示和计显示两部分,均采用显示,用于显示整个比赛赛程的比赛时间和两队的比分情况。采用个键盘和外部中断0实现输入功能,用于赛前调节时间、比赛过程中计分、暂停和开始、比赛时间结束以后报警等功能。本设计采用AT8951单片机作为核心部件,整个系统结构简单、实用性强、操作简便具有低功耗,可靠性,安全性以及低成本等特点,该设计方案完全满足篮球计分器的设计要求。? 现在篮球比赛计时器的设计大都比较的复杂,所用芯片太多,造成整体的价格提高,而且软件设计比较的复杂。导致性价比不是很高,很难得到广泛的推广。我所设计的这个篮球比赛计时器一改他们的缺点,硬件比较的简单,软件也很容易。因此,实用性比较大设计任务:设计并制作一个用于篮球比赛计时计分器,能显示各种比赛时间,并显示比赛比分,能实现每次加减分操作设计要求:单片机的选型51单片机虽然51单片机是8位的,采用总线结构,但具有编程控制简便、接口简单、工作可靠,价格经济,能耗少,容易实现系统小型化。计时方案软件控制 利用MCS-51内部的定时器/计数器进行中断定时,配合软件延时实现计时。该方案节省硬件成本,并且可综合运用定时器/计数器、中断以及程序设计的知识
六、基于AT89C51单片机的比赛记分牌设计程序如下:
#includereg52.h
#include .\LCD1602\LCD1602.h //调用LCD1602里的函数
#define uchar unsigned char //宏定义
#define uint unsigned int //宏定义
uchar c=0,e=0,i=0,t=5;
unsigned char ss;
sbit L=P1^3; //提示灯
sbit K1=P1^4; //用于给A对加分
sbit K2=P1^5; // 给A对减分
sbit K3=P1^6; // 给B对加分
sbit K4=P1^7; //给B对减分
sbit K5=P3^0; //比赛开始暂停按键
/**************按键控制分数*****************/
void key()
{
if(TR0==0)
{
K1=1; //中断没开始的时候,K1置1,按键锁定
K2=1; //中断没开始的时候,K2置1,按键锁定
K3=1; //中断没开始的时候,K3置1,按键锁定
if(K4==0)
{
c=0; //中断没开始的时候,A队分数置0
e=0; //中断没开始的时候,B对分数置0
t=5; //中断没开始的时候,倒计时时间置5
L=1; //中断没开始的时候,K1置0
} //在中断结束,按键K4控制分数时间以及提示灯的复位
} //当中断关闭时,K1、K2、K3键锁定,不能使用
if(TR0==1)
{
if(K1==0)
{
c++;
while(K1==0); //消抖,按键放开的时候分数加1
} //按键K1控制A队分数 加
if(K2==0)
{
c--;
if(c==-1)
{
c=0;
}
while(K2==0); //消抖,按键放开的时候分数减1
} //按键K2控制A队分数 减
if(K3==0)
{
e++;
while(K3==0); //消抖,按键放开的时候分数加1
} //按键K3控制B队分数 加
if(K4==0)
{
e--;
if(e==-1)
{
e=0;
}
while(K4==0); //消抖,按键放开的时候分数减1
}
} //按键
文档评论(0)