ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:1.79MB ,
资源ID:12972681      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12972681.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于AT89S52的篮球足球比赛计时计分器仿真及实物制作Word文档下载推荐.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于AT89S52的篮球足球比赛计时计分器仿真及实物制作Word文档下载推荐.docx

1、按键模块通过P1口输入数据。总体实现功能如下:(1)能为比赛提供计时功能,并能任意修改所要计量的时间,以此来满足足球篮球比赛的不同赛制。(2)能为比赛提供记录比分功能,随时刷新甲、乙两队在整个比赛过程中的比分,出现错误也能重新修改比分。(3)比赛结束时,能发出报警声,并能随时关闭报警声。(4)比赛期间可随时接受暂停请求,计时停止。2、系统硬件模块设计:(1)设计框图及原理图(2)单片机芯片AT89S52模块 AT89S52的主要特性如下: 与AT89C51,C52,STC89RC52兼容8K字节可编程闪烁存储器128*8位内部RAM32可编程I/O线三个16位定时器/计数器6个中断源可编程串行

2、通道片内振荡器和时钟电路 (3)时钟模块采用12MHZ的晶振,另有两个30pF的瓷片电容(4)复位电路5(5)报警电路采用蜂鸣器加100的限流电阻接P1口(6)按键控制模块共有9个设置按键,P1口有7个:add1、add2是加分键(add1按一次加一分,add2按一次加二分),minus1是减分键(按一下减一分),bstop是关蜂鸣器键,start是开始计时键,stopagain是时间暂停键,turn是切换键(用于加分方的切换),P3口有2个中断:timeadd1是时间计时加1分钟,timeadd10是时间计时加10分钟。(7)时间显示模块采用一个四位共阴七段数码管显示分秒。段选口接P0口,P

3、0口接一个1k的排阻,起上拉电平作用。位选口接P2,采用动态扫描。(8)比分显示模块采用两个两位共阴七段数码管显示甲队乙队分数。三、系统软件模块设计(1)C语言程序流程图中断函数按否初始化显示 开始修改计时时间 Nstart按否时间是否为0按键函数计时函数显示函数复位函数报警函数(2)源程序代码:#include#include #define uint unsigned int#define uchar unsigned charuchar code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; uchar code ta

4、ble= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar disbuffer8=0;uchar minute=0,second=0;uchar Ascore=0,Bscore=0,temp=0;uchar flage1=0;uchar flage=0;uint count,z;sbit bizz=P17; /定义按键对应的端口sbit add1=P10;sbit add2=P11;sbit minus1=P12;sbit bstop=P14;sbit start=P15;sbit stopagain=P16;sbit turn=P

5、13;sbit timeadd1=P32;sbit timeadd10=P33;void ininterrupt() interrupt 1 /定时器T0计时函数 TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+; if(count=20) count=0; if(second=0 & minute=0) ET0=0; else if(second=0 & minute!=0) second=59; minute-; else if(second!=0 ) second-; void delay( ) /显示延时函数 uint x,y;

6、for(x=10;x0;x-) for(y=10;yy-);void delay1( ) /延时消抖函数16ms for(y=360;y-) ;void display1() uchar i,j; uchar temp; disbuffer3=second%10; disbuffer2=second/10; disbuffer1=minute%10; disbuffer0=minute/10; disbuffer5=Ascore%10; disbuffer4=Ascore/10; disbuffer7=Bscore%10; disbuffer6=Bscore/10; temp=0xfe; /采

7、用动态扫描 P2=temp; for(i=0;i8;i+) j=disbufferi; P0=table1j; delay(); temp=_crol_(temp,1); /temp的最低位0左移,依次选通各个数码管 P2=temp; void display() /显示函数 P0=tablej; void bizzer() /报警函数 while(minute=0 & second=0) bizz=0; delay1(); display1(); if(!bstop=1) delay1(); if(! while(!bstop=1); while(1) bizz=1; display();

8、void exinterrupt() interrupt 0 /外部中断0,增加1分钟计时timeadd1) while(!timeadd1); minute+;void exinterrupt1() interrupt 2 /外部中断1,增加10分钟计时timeadd10)timeadd10); minute+=10;void button() /按键控制函数 if(!turn)turn); flage+=1; if(flage%2=0)add1) /分数加1分add1)add1); Ascore+=1;add2) /分数加2分add2)add2); Ascore+=2;minus1) /减分minus1)minus1); Ascore-=1; else Bscore+=1; Bscore+=2; delay1(); if(! while(! Bscore-=1;stopagain) /时间暂停stopagain)stopagain); flage1+=1; if(flage1%2=1) TR0=0; else TR0=1;void main() while(1) TH0=(65536-

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

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