本设计是51单片机篮球计分器proteus仿真(源码+原理图+PCB+仿真+报告)
仿真:proteus 7.8
程序编译器:keil 4/keil 5
编程语言:C语言
编号C0004

资料文件下载链接:
https://docs.qq.com/doc/DS1pZdEdTRHBpUXhC
提取码:6sg7

电路采用单片机作为核心元件,利用两个供阴的三位一体数码管来显示两队的分数,一个四位一体数码管显示时间的计时。显示分数范围可达0~999分,足够赛程计分的需要。四位一体数码管中2个用于显示分钟,2个用于显示秒钟。
该系统具有赛程定时设置,赛程时间暂停,及时刷新甲、乙双方的成绩等功能。设计分为软件设计和硬件设计两部分。主控芯片采用AT89C51,使用C语言编写软件程序,主体分为计时显示模块、计分显示模块、定时报警、按键控制模块。编程后利用Keil C51软件来进行编译,再将生成的HEX文件装入芯片中,检验功能是否能够正常实现。

一、设计要求:
1、能记录整个赛程的比赛时间,并能修改时间,暂停比赛时间。
2、能随时刷新甲、乙两队在整个赛程中的比分。
3、场中交换比赛场地时,能交换甲、乙两队比分的位置。
4、比赛时间结束时,能发出报警指令。
5、有24秒倒计时功能,可通过按键随时复位24秒,如果24秒违例会启动蜂鸣器报警,同时比赛时间暂停,处理好后按一下24秒复位键,比赛继续。

二、实现功能:
1、一个四位一体数码管显示比赛时间,时间格式如:15:00,两个三位一体数码管显示甲乙两对的比分,比分格式如:008。
2、比赛时间采用倒计时方式,以一秒的频率减时,上电时默认初值为15:00,在没有开始比赛时,可以修改时间,比赛开始后不能修改。
3、甲乙队比分采用三位数,上电初值为000,最大值为999,满足常理要求,未开始比赛以及比赛结束后比分无法加减,
4、比赛未开始之前,可以通过ADD1、DEC1键对比较时间的分钟进调时,通过ADD2、DEC2键对比较时间的秒进行调时。
5、可随时暂停/启动比赛时间。
6、比赛进行时,可以通过ADD1、DEC1键对甲队比分加、减,可以通过ADD2、DEC2对乙队比分加、减。每按一次键,加/减1分。
7、当一节比赛完后,可以通过(EXCHANGE)换场键换场,换场后,比分交换显示,交换后,下一节比赛开始时,相应的比分加减键也随之交换。
8、当比赛结束时,发出报警。

三、作用说明:
1、调整比赛时间:插上电源后,系列默认比赛时间为15:00,甲乙队比分默认000,此时按下ADD1键,可以对比赛时间分钟加1,按下DEC1键,可以对比赛时间的分钟减1,按下ADD2键,可以对比赛时间秒加1,按下DEC2键,可以对比赛时间秒减1。
2、启动比赛:按下RUN/STOP键,计时开始,比赛时间以1秒的频率倒计时。
3、暂停比赛:比赛运行的状态下,按RUN/STOP键,比赛暂停,计时暂停。
4、比分加减,在比赛进行的状态下按ADD1,DEC1键,可以对甲队比分加、减1,按ADD2、DEC2键,可以对乙队比分加、减1.
5、交换场地:在一节比赛时间结束后,按下EXCHANGE键,比赛时间重新预置为15:00,同时左右两边数码管的比分交换显示。此时按下启动键可以开始新一节的比赛。
6、报警提示:在一节比赛时间倒计时到00:00时,蜂鸣器发出报警提示。
7、比赛时,24秒会以1秒的速度减,可随时按下24秒复位键重置24秒。

仿真图(提供源文件):

原理图(提供源文件):

程序(提供源文件源码):
显示函数

void display(void)
{//-----------显示时间分--------------LEDData=LEDCode[minit/10];led1=0;Delay5ms();led1=1;LEDData=LEDCode[minit%10];led2=0;Delay5ms();led2=1;
//-------------秒点闪动------------if(halfsecond==1)LEDData=0x7f;elseLEDData=0xff;led2=0;Delay5ms();led2=1;secondpoint=0;
//-----------显示时间秒------------LEDData=LEDCode[second/10];led3=0;Delay5ms();led3=1;LEDData=LEDCode[second%10];led4=0;Delay5ms();led4=1;
//-----------显示1组的分数百位-------if(AorB==0)LEDData=LEDCode[scoreA/100];elseLEDData=LEDCode[scoreB/100];led5=0;Delay5ms();led5=1;
//---------------显示1组分数的十位-----------if(AorB==0)LEDData=LEDCode[(scoreA%100)/10];elseLEDData=LEDCode[(scoreB%100)/10];led6=0;Delay5ms();led6=1;//---------------显示1组分数的个位-----------if(AorB==0)LEDData=LEDCode[scoreA%10];elseLEDData=LEDCode[scoreB%10];led7=0;Delay5ms();led7=1;//-----------显示2组分数的百位-------if(AorB==1)LEDData=LEDCode[scoreA/100];elseLEDData=LEDCode[scoreB/100];led8=0;Delay5ms();led8=1;
//-----------显示2组分数的十位-----------if(AorB==1)LEDData=LEDCode[(scoreA%100)/10];elseLEDData=LEDCode[(scoreB%100)/10];led9=0;Delay5ms();led9=1;//-----------显示2组分数的个位-----------if(AorB==1)LEDData=LEDCode[scoreA%10];elseLEDData=LEDCode[scoreB%10];led10=0;Delay5ms();led10=1;//-----------显示时间分--------------LEDData=LEDCode[sec24/10];led11=0;Delay5ms();led11=1;LEDData=LEDCode[sec24%10];led12=0;Delay5ms();led12=1;
}

main函数

//******************************主函数*************************************************
void main(void)
{TMOD=0x11;TL0=0xb0;TH0=0x3c;TL1=0xb0;TH1=0x3c;minit=min;             //初始值为15:00second=sec;EA=1;ET0=1;ET1=1;TR0=0;TR1=0;EX0=1;IT0=1;IT1=1;
//  EX1=1;PX0=1;
//  PX1=1;PT0=0;P1=0xFF;P3=0xFF;alam=1;while(1){keyscan();display();           }
}void PxInt0(void) interrupt 0
{Delay5ms();EX0=0;alam=1;TR1=0;if(timeover==1){timeover=0;}if(playon==0){playon=1;             //开始标志位TR0=1;                  //开启计时if((minit+second)==0){sec24=24;minit=min;            second=sec;}}else{playon=0;               //开始标志位清零,表示暂停TR0=0;                    //暂时计时} EX0=1;                     //开中断
}

报告:

器件清单:

资料清单:

基于51单片机篮球计分器proteus仿真设计相关推荐

  1. 基于51单片机的电子秤proteus仿真设计

    本设计仅供学习参考 基于51单片机的电子秤proteus仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altium Designer 仿真图proteus 7.8 程序编译器:keil 4/ke ...

  2. 基于51单片机手动计步器protues仿真设计

    基于51单片机手动计步器protues仿真设计 (源码+仿真) 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0021 目录标题 基于51单 ...

  3. S0011基于51单片机DS18B20温控风扇仿真设计

    基于51单片机DS18B20温控风扇仿真设计 (仿真+原理图+源码+设计报告) 原理图:Altium Designer 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程 ...

  4. 51单片机DS18B20温度报警器proteus仿真设计_可调上下限

    51单片机DS18B20温度报警器proteus仿真设计_可调上下限 (仿真+源码+原理图+报告) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/ ...

  5. 51单片机全自动洗衣机proteus仿真设计

    51单片机全自动洗衣机proteus仿真设计 目录标题 51单片机全自动洗衣机proteus仿真设计 设计介绍 仿真图 电动机驱动模块电路设计 电源模块电路设计 控制按键 进水阀和排水阀控制继电器 程 ...

  6. 基于51单片机简易数字示波器Proteus仿真

    功能介绍: 采用51单片机作为主控CPU:LCD12864可显示方波,三角波,锯齿波,正弦波等,可通过光标对波形进行测量,可以调节显示波形的幅度和频率,也可以将波形进行左右拖拉,完美的仿真出一个51单 ...

  7. 基于51单片机多功能电磁炉仿真设计-protues

    本设计是基于51单片机的电磁炉仿真,通过51单片机的IO接口P3.0为输出口,用于控制线圈的打开和关断.其中P1.0和P1.1对微波炉功率进行调整.附件内容包含protues仿真电路和c语言代码. [ ...

  8. 基于51单片机的电子琴Protues仿真设计

    一.设计背景 基于51单片机的电子琴是一款由51单片机控制器.音频模块和硬件阵列组成的数字化乐器.它可以模拟各种乐器的音效,同时也具有许多常规电子琴所没有的高级功能. 首先,这种电子琴是以数字信号处理 ...

  9. 基于51的交通灯Proteus仿真设计

    目录 运行环境 仿真图像 特点 软件硬件实现 注意: 部分代码 交通灯逻辑处理部分代码 HC595发送代码 运行环境 keil5,proteus8.5 仿真图像 特点 这个设计相比较其他设计而言,使用 ...

最新文章

  1. SpringBoot整合Shiro安全框架完整实现
  2. 一文告诉你,如何使用Python构建一个“谷歌搜索”系统 | 内附代码
  3. macbookair有没有touchbar_买 MacBook Pro 到底要不要选 Touch Bar 版?看清需求后再下手...
  4. Kubernetes网络方案Flannel的学习笔记
  5. 信息属性列表关键字 info.plist
  6. C/Cpp / #include
  7. 用matlab仿真pwm整流器的方法,MATLAB-PWM整流仿真模块建立详解.pdf
  8. 话筒增益_话筒啸叫怎么办?教你四个解决话筒啸叫的方法!
  9. 想跟着微软赛跑会累死你
  10. Web安全CSRF攻击与防御
  11. 【2016年第4期】分布式协商:建立稳固分布式 大数据系统的基石
  12. 怎样呵护友谊_呵护友谊需要学会尊重对方.PPT
  13. 在html文件中使用支持FLV、HLS、RTSP、WS-FLV/WS-RTSP、WEBRTC、HEVC/H265的永久免费H5直播点播播放器SkeyeWebPlayer.js
  14. 微信PC版的API接口
  15. 2021 Hexo+Next7最全搭建个人网站(合集)
  16. javascript基础常识问答(七)
  17. python虚拟机:pvm
  18. 潍坊学院计算机系宿舍,关于表彰潍坊学院第十届大学生宿舍文化节先进集体和先进个人的决定...
  19. 思科路由器、交换机的远程登录配置
  20. 编程c语言随机函数,C语言产生随机数需要了解的几个函数

热门文章

  1. vue-cli项目局域网访问
  2. matlabnbsp;蠓虫分类问题nbsp;amp;n…
  3. IEEE文献免费下载方法
  4. 技巧:Vimdiff 使用
  5. 组播IP 映射 组播MAC
  6. jack server 常见错误解决方法
  7. 网络设备监控之思科Cisco设备监控及SNMP配置
  8. 编写一个随机抽奖程序php,基于PHP实现简单的随机抽奖小程序
  9. Spring Boot (二)集成Mybatis、Druid
  10. 在js中对数值进行取整、四舍五入等方法汇总