基于at89s52的篮球足球比赛计时计分器仿真及实物制作_毕业论文.doc

基于at89s52的篮球足球比赛计时计分器仿真及实物制作_毕业论文.doc

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于at89s52的篮球足球比赛计时计分器仿真及实物制作_毕业论文

深圳大学考试答题纸 (以论文、报告等形式考核专用) 二○一四~二○一五学年度第 一 学期 课程编号 1303100001 课程名称 单片机应用与设计 单片机芯片AT89S52模块 AT89S52的主要特性如下: ·与AT89C51,C52,STC89RC52兼容 ·8K字节可编程闪烁存储器 ·128*8位内部RAM ·32可编程I/O线 ·三个16位定时器/计数器 ·6个中断源 ·可编程串行通道 ·片内振荡器和时钟电路 时钟模块 采用12MHZ的晶振,另有两个30pF的瓷片电容 复位电路 5 报警电路 采用蜂鸣器加100Ω的限流电阻接P1口 按键控制模块 共有9个设置按键,P1口有7个:add1、add2是加分键(add1按一次加一分,add2按一次加二分),minus1是减分键(按一下减一分),,bstop是关蜂鸣器键,start是开始计时键,stopagain是时间暂停键,turn是切换键(用于加分方的切换),P3口有2个中断:timeadd1是时间计时加1分钟,timeadd10是时间计时加10分钟。 时间显示模块 采用一个四位共阴七段数码管显示分秒。段选口接P0口,P0口接一个1kΩ的排阻,起上拉电平作用。 位选口接P2,采用动态扫描。 比分显示模块 采用两个两位共阴七段数码管显示甲队乙队分数。段选口接P0口,P0口接一个1kΩ的排阻,起上拉电平作用。位选口接P2,采用动态扫描。 三、系统软件模块设计 (1)C语言程序流程图 N N N 源程序代码: #includereg52.h #include intrins.h #define uint unsigned int #define uchar unsigned char uchar code table1[]={ 0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87, 0xff,0xef}; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; uchar disbuffer[8]={0}; uchar minute=0,second=0; uchar Ascore=0,Bscore=0,temp=0; uchar flage1=0; uchar flage=0; uint count,z; sbit bizz=P1^7; //定义按键对应的端口 sbit add1=P1^0; sbit add2=P1^1; sbit minus1=P1^2; sbit bstop=P1^4; sbit start=P1^5; sbit stopagain=P1^6; sbit turn=P1^3; sbit timeadd1=P3^2; sbit timeadd10=P3^3; 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; for(x=10;x0;x--) for(y=10;y0;y--); } void delay1( ) //延时消抖函数16ms { uint x,y; for(x=10;x0;x--) for(y=360;y0;y--) ; } void display1() { uchar i,j; uchar temp; disbuffer[3]=second%10; disbuffer[2]=second/10; disbuffer[1]=minute%10; disbuffer[0]=minute/10; disbuffer[5]=Ascore%10; disbuffer[4]=Ascore/10;

您可能关注的文档

文档评论(0)

店小二 + 关注
实名认证
内容提供者

包含各种材料

1亿VIP精品文档

相关文档