




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题 目 篮球赛计时计分器的设计 学生姓名 学号 所在学院 陕西理工学院 专业班级 电子1203班 指导教师 完成地点 物理与电信工程学院实验室 2016 年 6 月 2 日 陕西理工学院毕业设计 I 篮球赛计时计分器的设计 作者: (陕西理工学院 物理与电信工程学院 电子信息工程专业12级3班,陕西 723000) 指导老师: 摘要介绍基于STC89C51单片机的篮球比赛计时计分系统。本次设计的篮球赛计时计分系统通过STC89C51编 程控制LED七段数码管来实现计时和计分的功能。通过按键控制电路设置比赛定时时间,暂停时间,立即刷新甲、 乙两队的比分, 比赛进行到半场结束交换场地时,两队比分能交换显示的位置,比赛结束时,系统可以发出报警的指令以及在赛后 及时暂存成绩等功能。该系统价格低廉,性能稳定,携带方便且操作简洁,广泛应用于各类学校或者小型团体作为 赛程计时计分。 关键词单片机;篮球比赛计时计分器;数码管 陕西理工学院毕业设计 II Design of timing and scoring device for basketball match Author:Zhaoming Li (Grade 12,Class 03,Major in Electronics /数码管0-9的编码 unsigned char minit,second,count,count1; /分,秒,计数器 sbit add1=P10;/甲对加分,每按一次加1分 /在未开始比赛时为加时间分 sbit dec1=P11;/甲对减分,每按一次减1分 /在未开始比赛时为减时间分 sbit exchange=P12;/交换场地 sbit add2=P13;/乙对加分,每按一次加1分 /在未开始比赛时为加时间秒 sbit dec2=P14;/乙对减分,每按一次减1分 /在未开始比赛时为减时间秒 sbit secondpoint=P07;/秒闪动点 /-数码管的位选控制脚,共有11位数码管- sbit led1=P27; sbit led2=P26; sbit led3=P25; sbit led4=P24; sbit led5=P23; sbit led6=P22; sbit led7=P21; sbit led8=P20; sbit led9=P37; sbit led10=P36; sbit led11=P35; sbit alam=P17;/报警 bit playon=0;/比赛进行标志位,为1时表示比赛开始,计时开启 bit timeover=0;/比赛结束标志位,为1时表示时间已经完 bit AorB=0;/甲乙对交换位置标志位 bit halfsecond=0;/半秒标志位 unsigned int scoreA;/甲队得分 unsigned int scoreB;/乙队得分 /=延时= void Delay5ms(void) unsigned int i; for(i=100;i0;i-); 陕西理工学院毕业设计 第 31 页共 45 页 void display(void) /-显示时间分- LEDData=LEDCodeminit/10; /显示分钟的十位 led1=0;/开启位选 Delay5ms();/延时,以便足以点亮数码管。 led1=1;/关闭位选 LEDData=LEDCodeminit%10;/显示分钟的个位 led2=0; Delay5ms(); led2=1; /-秒点闪动- if(halfsecond=1) LEDData=0 x80; else LEDData=0 x00; led2=0; Delay5ms(); led2=1; secondpoint=0; /-显示时间秒- LEDData=LEDCodesecond/10;/显示秒钟的十位 led3=0; Delay5ms(); led3=1; LEDData=LEDCodesecond%10;/显示秒钟的个位 led4=0; Delay5ms(); led4=1; /-显示1组的分数百位- if(AorB=0) LEDData=LEDCodescoreA/100; else LEDData=LEDCodescoreB/100; led5=0; Delay5ms(); led5=1; /-显示1组分数的十位- if(AorB=0) LEDData=LEDCode(scoreA%100)/10; else LEDData=LEDCode(scoreB%100)/10; led6=0; Delay5ms(); 陕西理工学院毕业设计 第 32 页共 45 页 led6=1; /-显示1组分数的个位- if(AorB=0) LEDData=LEDCodescoreA%10; else LEDData=LEDCodescoreB%10; led7=0; Delay5ms(); led7=1; /-显示2组分数的百位- if(AorB=1) LEDData=LEDCodescoreA/100; else LEDData=LEDCodescoreB/100; led8=0; Delay5ms(); led8=1; /-显示2组分数的十位- if(AorB=1) LEDData=LEDCode(scoreA%100)/10; else LEDData=LEDCode(scoreB%100)/10; led9=0; Delay5ms(); led9=1; /-显示2组分数的个位- if(AorB=1) LEDData=LEDCodescoreA%10; else LEDData=LEDCodescoreB%10; led10=0; Delay5ms(); led10=1; /=按键检测程序= = void keyscan(void) if(playon=0)/在比赛未开始的状态下 陕西理工学院毕业设计 第 33 页共 45 页 if(add1=0)/当add1按键按下时 display();/调用显示,同时作为延时消抖 if(add1=0);/延时消抖后,依然检查到按键按下 if(minit0) minit-; else minit=0; do display(); while(dec1=0); if(add2=0)/调整秒,与上原理相同 display(); if(add2=0); if(second0) second-; else second=0; do display(); while(dec2=0); if(exchange=0)/换场键 display(); if(exchange=0); TR1=0;/关闭T1计数器 alam=1;/关报警 AorB=AorB;/开启交换 minit=15;/并将时间预设为15:00 second=0; do display(); while(exchange=0); else/在比赛开始时。 if(add1=0)/当add1键按下时, display();/调用显示,同时作为延时消抖, if(add1=0); if(AorB=0)/当场地标志位=0时, if(scoreA0) scoreB-; else scoreB=0; do display(); while(dec1=0); if(add2=0)/原理与上一样 display(); 陕西理工学院毕业设计 第 36 页共 45 页 if(add2=0); if(AorB=1) if(scoreA0) scoreB-; else scoreB=0; do display(); 陕西理工学院毕业设计 第 37 页共 45 页 while(dec2=0); /*主函数* * void main(void) TMOD=0 x11;/TMOD设置 TL0=0 xb0;/定时器0,初值为0 x3CB0,既定时0.05s TH0=0 x3c; TL1=0 xb0;/定时器1,初值为0 x3CB0,即定时0.05s TH1=0 x3c; minit=15;/初始值为15:00 second=0; EA=1;/开总中断 ET0=1;/开T0中断 ET1=1;/开T1中断 TR0=0; TR1=0; EX0=1;/开外部中断0 IT0=1; IT1=1; /EX1=1; PX0=1; /PX1=1; PT0=0; P1=0 xFF; P3=0 xFF; while(1) keyscan();/按键检查 display();/显示程序 /=外部中断0中断程序= void PxInt0(void) interrupt 0 Delay5ms(); EX0=0;/关中断使能 陕西理工学院毕业设计 第 38 页共 45 页 alam=1;/关蜂鸣器 TR1=0;/关定时器0 if(timeover=1)/当一节比较时间结束时,结束标志位=1 timeover=0;/清除标志位 if(playon=0)/当比赛结束或暂停时 playon=1;/开始标志位 TR0=1;/开启计时 else playon=0;/开始标志位清零,表示暂停 TR0=0;/暂停计时 EX0=1;/重新开中断 /=定时器0中断服务函数= void time0_int(void) interrupt 1 TL0=0 xb0;/重赋初值 TH0=0 x3c; TR0=1;/启动计时 count+;/软件计数器加1 if(count=10)/0.05s*10=0.5s,即0.5秒钟时 halfsecond=0;/半秒标志位清零 if(count=20)/0.05s*20=1s,即1秒钟 count=0;/清除计数器 halfsecond=1;/半秒标志置1 if(second=0) /倒计时,每计时1秒钟,时间减1,当秒=0时,秒=59,分钟减1 if(minit0) second=59; 陕西理工学院毕业设计 第 39 页共 45 页 minit-; else/当分,秒都为0时,表示倒计时时间到, timeover=1;/时间标志位置1 playon=0;/比赛标志清0,表示1节比赛结束 TR0=0;/关闭定时器0 TR1=1;/开启定时1,使蜂鸣器报警 else second-; /=定时器1中断服务函数= void time1_int(void) interrupt 3 TL1=0 xb0;/重赋初值 TH1=0 x3c; TR1=1;/启动计时 count1+;/软件计数器加1 if(count1=10)/0.05s*10=0.5s,也就是半秒钟 alam=0;/开启蜂鸣器 if(count1=20)/0.05s*20=1s,也就是1秒钟 count1=0;/清除软件计数器, alam=1;/关闭蜂鸣器,也就是蜂鸣器以1秒的频率响 陕西理工学院毕业设计 第 40 页共 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 开化县2025届毕业升学考试模拟卷数学卷含解析
- 2024-2025学年宜宾市翠屏区中考数学最后一模试卷含解析
- 混沌测试成本效益分析-洞察及研究
- 2024年齐鲁师范学院公开招聘工作人员(79名)笔试模拟试题附答案详解(能力提升)
- 2025年国家二级注册消防工程师资格考试专业基础知识复习题库及答案(共250题)
- 家校沟通年度教育活动策划书
- 初中二次函数教学公开课设计
- 2024年菏泽郓城县产业投资发展集团有限公司招聘笔试真题及答案详解(夺冠)
- 小学高效教学单元设计案例
- 服务质量度量体系-洞察及研究
- 小学冠词教学课件
- 布病防培训课件
- 工程造价咨询绿色施工支持措施
- 大模型时代:生成式AI发展与科技创新范式
- 法律法规师德师风培训内容
- 江苏欧立可化工新材料有限公司年产10万吨石油添加剂N-甲基苯胺项目环评资料环境影响
- 黄浦区2024-2025学年六年级下学期期末考试数学试卷及答案(上海新教材沪教版)
- 《中国尖锐湿疣临床诊疗指南(2021版)》解读
- 2025安全注射培训
- 建筑垃圾处理技术标准(CJJT 134-2019)
- 《职业素养》课件全套 模块1-8 职业认知与职业道德 -职业发展素养
评论
0/150
提交评论