本设计是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. JavaScript中的instanceof运算符是什么?
  2. 如何去掉手机php,dedecms怎么关闭手机版
  3. uva 10047 the monocyle (四维bfs)
  4. mysql连接串指定编码_MYSQL创建数据库时候直接指定编码和排序规则
  5. SAP JAM的自定义widget编辑功能
  6. Data-structures-and-algorithms-interview-questions-and-their-solutions
  7. php时分获取秒数,javascript与php时/分/秒与秒数互转
  8. client心跳 websocket_理解websocket的原理
  9. Upload LABS Pass-8
  10. [CTSC2008] 网络管理
  11. 《重构:改善既有代码的设计》—第1章1.5节结语
  12. 大学生html作业总结,总结 HTML标签作业
  13. 数据--第31课 - 树的存储结构
  14. Cadence Allegro元件更换层图文教程
  15. http下载文件(常用方式+支持在线打开方式)
  16. mysql 模糊查询 查询条件为多个
  17. 2022帆软BI数据分析大赛重磅来袭!瓜分20W奖金!
  18. vue-购物车小球抛物线
  19. 操作系统学习笔记(二十八)~文件系统+连续分配+链接分配+索引分配+空闲空间管理
  20. [SECCON CTF 2022] 只两个小题pwn_koncha,rev_babycmp,crypto_pqpq

热门文章

  1. mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor...
  2. 出现了,PPT 制作新方式
  3. String字符串分割的3种方法 Java
  4. 星星之火-31:WCDMA码分多址复用与解复用的数学计算案例
  5. 浏览器手动设置Cookie
  6. SpringBoot中使用Redis保存对象或集合
  7. spark封神之路(7)-RDD算子详解第一部分
  8. 区块链架构与交易流程(fabric1.0)
  9. 电影“防火墙” 引发的黑客攻击迅雷(转)
  10. java右移和无符号右移区别_Java 无符号右移与右移运算符的使用介绍