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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

篮球计时计分器系统设计报告.docx

1、篮球计时计分器系统设计报告篮球计时计分系统设计报告电信131 魏荣根电信132 李卓壮 郑浩1.系统设计要求及设计思路2.硬件电路设计 2、1主控电路 2、2按键控制模块 2、3显示模块 2、4定时报警模块3.软件开发流程及代码分析4.实验总结 引 言篮球计时计分器硬件电路设计篮球计时计分器软件设计篮球计时计分器系统以AT89C51单片机为核心,系统显示部分包括计时显示与计分显示两部 分,均采用共阳极LED动态扫描方式显示。系统采用单片机定时器TO中断计时,计时范围宽,可 进行定时设定,也可以调整小时、分钟、秒等值;计分部分调整灵活,显示范围宽,足以满足各种 规糢赛程需要。1、 系统设计要求及

2、设计思路1. 系统设计要求为实现篮球计时计分器系统的设计,本系统应该满足以下几点要求:能设置整个赛程的比赛时间,在比赛过程中能根据需要暂停与开始计时。能根据比赛情况刷新比赛双方的比分。中场交换比赛场地时,能交换甲、乙两队比分的位置。比赛结束时,能发出报警声。2. 系统设计思路根据设计任务与要求,设计思路如下:系统主要功能包括记分与计时两部分,能实现两队比分的加分、减分、汁时以及其她多种显 示效果;系统控制模块有:2位动态显示记分模块、4位动态显示计时模块、两队加分减分模块、 按键查询模块、分秒控制模块等。具体实现过程:釆用7段LED数码管动态显示整个赛程的比赛时间与两队的比分情况。通过 4个按

3、键与外部中断0实现输入功能,用于赛前时间调整、比赛过程比分纪录、时间启停以及比 赛结束以后的声音报警等功能。 2、硬件电路设计根据设计要求与设计思路,确定该系统的设计方案,图6-1为该系统设计方案的硬件电路设 计框图。硬件电路主要由4部分组成:主控电路、按键控制电路、显示模块与定时报警模块。下面对其进行一一介绍。2、1主控电路系统的主控电路即为单片机最小系统,前丨M几章已经介绍过,其电气原理图如图6-2所示, 这串、不再赘述。2、2按键控制模块系统共涉及9个按键,采用查询方式进行键盘扫描,具体电气原理图如图所示 : 2、3显示模块系统采用共阳极数码管显示,前面也已作详细介绍,在此不再赘述。本系

4、统显示分为三部分 时间计时显示、A队分数显示以及B队分数显示。显示模块如图所示:2、4定时报警模块定时报警模块采用蜂鸣器声音报警。比赛结束后,P3、7输出一 低电平,此时,发射结正向偏置且集电结反向偏置,满足三极管放 大的外部条件,使信号放大从而驱动扬声器产生报警。电气原理图 如图6-5所示。3、软件开发流程及代码分析本系统软件部分主要包含定时中断函数、延时函数、显示函数、蜂鸣器启动函数、外部中断 o函数、按键函数等。下面一一进行介绍。1、软件开发流程篮球比赛中,得分可分为1分、2分、3分三种情况,系统在这设置加1分功能与加2分功能, 得2分可按一下加2分功能键,得3分可先后按一下加2分功能键

5、与加1分功能键。主函数中调 用显示函数,可显示时间、比分。中断函数及按键扫描函数配合实现篮球比分与时间显示及修改 功能。其中,用1片4位数码管显示时间,2片2位数码管显示比分,均采用动态扫描方式显示; 时间启停、分数累加,均通过接入键盘电路实现。2.、代码分析(1)函数声明及变景定义为方便程序的编写,把部分常用的变量进行伪定义。#include#include #define uint unsigned int #define uchar unsigned charuchar code table= 0x3 f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0

6、x6f; uchar disbuffer8=0;uchar minute=0,second=0; /定义全局变量uchar Ascore=03score=0,temp=0; /uchar flagel=0; /定义标志位uchar flage=0; /uint county,z; /sbit bizz=P3A7; /蜂鸣器 sbit add1= PlA0; /加一分sbit add2=PlAl; /加两分sbit minus 1=P1A2; /减一分sbit exchange=PlA3; /上下半场换场时加分sbit bstop= PlA4; /全场结束 关闭蜂鸣器 sbit start=Pl

7、A5; /开始sbit stopagain=PlA6; /暂停 开始sbit tum=PlA7; /切换加分sbit timeadd=P3A2; /加时间 设定时间(2)定时中断函数产生一个Is的计时单元Void ininterruptO interrupt 1TH0=(65536-50000y256;TLO=(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 )

8、second-; (3)延时函数void delay ()函数用于显示延时,voiddelayl ()函数用于延时消抖。 void delay() /显不延时函数uint x,y;for(x=10;x0;x-)for(y=10;y0;y-);/延时消抖函数16msvoid delay 1()uint x,y;foi0pc-)for(y=360;y0;y-);(4)显示函数/显示函数功能就是将数码管的码值进行处理送到端口,使得数码管显示时间与分数。Void dinplayQuchar ij; uchartemp;disbuffer3=second% 10; disbuffer2=second/l

9、 0; disbuffer 1 =minute% 10; disbufifer0=minute/10; disbuflfer5=Ascore% 10; disbuffer4=Ascore/10; disbufFer7=Bscore% 10; disbuffer6=Bscore/l 0; temp=Oxfe;P2=temp;for(i=0;i8;i+)j=disbufferi;P0=tableD;delayO;temp=_crol_(temp, 1); P2=temp; (5)蜂鸣器启动函数功能就是等比赛结束后,启动蜂鸣器提示比赛结束void bizzerQ 蜂鸣器函数while(minute=

10、0 & sec(md=0) 判断时间结(6)外部中断0函数void exinterrupt() interrupt 0 /中断 delay1(); if(!timeadd) /按键设置比赛时间 while(!timeadd); minute+; (7)按键函数功能有实现A队加1分、加2分,A队减1分,B队加1分、加2分,B队减1分,下半场切换比分,暂停继续等void button() /按键 函数 if(!turn) delay1(); /延时消抖 以下用delay1的都就是延时消抖 if(!turn) while(!turn); flage+=1; /标志位 if(flage%2=0) if

11、(!add1) delay1(); if(!add1) while(!add1); /按键时 松手检测 Ascore+=1; / A加 1 分 if(!add2) delay1(); if(!add2) while(!add2); Ascore+=2; if(!minus1) delay1(); if(!minus1) while(!minus1); Ascore-=1; else if(!add1) delay1(); if(!add1) while(!add1); Bscore+=1; if(!add2) delay1(); if(!add2) while(!add2); Bscore+=

12、2; if(!minus1) delay1(); if(!minus1) while(!minus1); Bscore-=1; if(!exchange) /下半场换场切换比分按键 delay1(); if(!exchange) while(!exchange); temp=Ascore; Ascore=Bscore; Bscore=temp; if(!stopagain) /暂停 继续 按键 delay1(); if(!stopagain) while(!stopagain); flage1+=1; if(flage1%2=1) TR0=0; else TR0=1; if(!bstop=1)

13、 delay1(); if(!bstop=1) while(!bstop=1); bizz=0; (8)主程序void main() while(1) display(); TH0=(65536-50000)/256; TL0=(65536-50000)%256; TMOD=0x01; EA=1; ET0=1; EX0=1; IT0=1; if(!start) delay1(); if(!start) while(!start); TR0=1; while(minute!=0 | second!=0 ) display(); button(); bizzer(); 4、本章小结本例中系统电路简单,重点介绍了篮球计时计分器的硬件设计与软件编程方法。本设计最大的特点就是对设定时间的记忆功能。基于篮球比赛就是分节进行的,每节有固定的时间。本设计可事先设定一节比赛的时间,一节比赛结束后,比分保持不变,再次开始后,就是从上次设定的时间开始计时。本设计采用AT89C51单片机作为核心部件,整个系统结构简单、实用性 强、操作简便,具有低功耗、可靠性、安全性以及低成本等特点。

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

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