文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者

一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用LCD1602显示模块、矩阵按键模块、蜂鸣器等。

主要功能:
系统运行后,LCD1602默认显示第1节次比赛时间、AB得分。默认是12分钟倒计时,在未开始比赛时,可通过S4键设置时间,S8和S12键调节时间。时间设置好后,可按下S1键开始,比赛过程中,可按下S2键暂停,比赛过程中或结束后,可按下S3键改变节次,共4节次,每节次的默认时间是12分钟。比赛过程中,可通过S5-S7键调节A队得分,可通过S9-S11键调节B队得分。比赛时间结束,蜂鸣器报警。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)
*///系统开机界面显示
void sys_open_show(void)
{lcd1602_clear();lcd1602_show_string(2,0,"1--  :  ");lcd1602_show_string(2,1,"A:000--B:000");
}//系统数据显示
void sys_data_show(void)
{while(1){//显示倒计时时间lcd1602_show_nums(5,0,sys_ctrl.min,2,0x80);lcd1602_show_nums(8,0,sys_ctrl.sec,2,0x80);//显示节次lcd1602_show_nums(2,0,sys_ctrl.cnt,1,0);//显示AB得分lcd1602_show_nums(4,1,sys_ctrl.score_a,3,0x80);lcd1602_show_nums(11,1,sys_ctrl.score_b,3,0x80);//设置时间闪烁指示switch(sys_ctrl.mode){case 1://分lcd1602_show_string(5,0,"  ");delay_ms(50);lcd1602_show_nums(5,0,sys_ctrl.min,2,0x80);break;case 2://秒lcd1602_show_string(8,0,"  ");delay_ms(50);lcd1602_show_nums(8,0,sys_ctrl.sec,2,0x80);break;}break;}
}//系统数据设置
void sys_data_set(void)
{u8 key=0;key=key_matrix_flip_scan();//开始if(key==1){beep_alarm(100,10);sys_ctrl.start=1;TR0=1;//打开定时器}//暂停else if(key==2){beep_alarm(100,10);sys_ctrl.start=0;TR0=0;//关闭定时器   }//更换节次else if(key==3){beep_alarm(100,10);sys_ctrl.start=0;TR0=0;//关闭定时器sys_ctrl.cnt++;if(sys_ctrl.cnt>4)sys_ctrl.cnt=1;//更换节次,每次重新开始时间sys_ctrl.min=12;sys_ctrl.sec=0;   }//如果还未开始,修改时间if(sys_ctrl.start==0){//设置if(key==4){sys_ctrl.mode++;if(sys_ctrl.mode>=3)sys_ctrl.mode=0;}//加else if(key==8){switch(sys_ctrl.mode){case 1://分sys_ctrl.min++;if(sys_ctrl.min>=60)sys_ctrl.min=0;break;case 2://秒sys_ctrl.sec++;if(sys_ctrl.sec>=60)sys_ctrl.sec=0;break; }   }//减else if(key==12){switch(sys_ctrl.mode){case 1://分sys_ctrl.min--;if(sys_ctrl.min<0)sys_ctrl.min=59;break;case 2://秒sys_ctrl.sec--;if(sys_ctrl.sec<0)sys_ctrl.sec=59;break; }       }}//比赛中,得分统计else{    switch(key){case 5://A队加1分sys_ctrl.score_a+=1;break;case 6://A队加2分sys_ctrl.score_a+=2;break;case 7://A队加3分sys_ctrl.score_a+=3;break;case 9://B队加1分sys_ctrl.score_b+=1;break;case 10://B队加2分sys_ctrl.score_b+=2;break;case 11://B队加3分sys_ctrl.score_b+=3;break;}}
}//系统功能控制
void sys_fun_ctrl(void)
{//比赛结束,蜂鸣器报警if(sys_ctrl.overflag){sys_ctrl.overflag=0;lcd1602_show_nums(8,0,sys_ctrl.sec,2,0x80);beep_alarm(8000,10);}
}//应用控制系统
void app_control_sys(void)
{sys_parm_init();//系统参数初始化lcd1602_init();//LCD1602初始化time0_init();//初始化定时器0,定时10mssys_open_show();//系统开机界面显示while(1){sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制                  }
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619




联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

【Proteus仿真】【51单片机】比赛计时计分系统设计相关推荐

  1. 【Proteus仿真】【STM32单片机】比赛计时计分系统设计

    文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602显示模块.矩阵按键模块.蜂鸣器等. 主要功能: 系统 ...

  2. 51单片机 Proteus仿真 基于单片机的篮球计分器设计 LCD

    基于单片机的篮球计分器设计 设计LCD显示篮球比分牌 通过加分按钮可以给A队或B队加分 设计对调功能,A队和B队分数互换,意味着中场交换场地 显示比赛倒计时功能 创新内容:如显示第几小节

  3. 使用proteus仿真51单片机来实现十字路口红绿灯

    一.实验内容 1.需要仿真的元件:51单片机,一个动态显示的双数码管,六个LED灯. 2.实验要求:做一个十字路口红绿灯,每一向各一个,红绿灯要求能够按照通行的要求来亮灯.南北向红绿灯,红灯亮60秒, ...

  4. Proteus仿真51单片机生日快乐音乐播放器

    实验名称:基于51单片机音乐播放器 实验目的: 声音的音调不同是因为声音的频率不同造成的.那么,就可以通过单片机发送不同频率的脉冲信号给蜂鸣器,来达到让蜂鸣器发出不同音调声音的目的.不同频率的脉冲信号 ...

  5. Proteus仿真--51单片机最小系统

    1.单片机的最小系统是由组成单片机系统必需的一些元件构成的,除了单片机之外,还需要包括电源供电电路.时钟电路.复位电路. 下面着重介绍时钟 电路和复位电路. 1)时钟电路 单片机工作时,从取指令到译码 ...

  6. proteus仿真-51单片机定时器程序

    定时器0初始化和定时器中断函数 void Timer0Init() {TMOD|=0x01;//0000 0001,最后2位-工作方式的选择,这里选择16位定时器'01'TH0 = (65536-10 ...

  7. 【Proteus仿真】【51单片机】电子密码锁设计

    文章目录 一.功能简介 二.软件设计 三.实验现象 联系作者 一.功能简介 本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶.矩阵按键.蜂鸣器.EEPROM模块.继电器模块等. ...

  8. 51单片机的简易计算器设计(仿真+程序+原理图+PCB+设计报告)

    本设计: 基于51单片机的简易计算器设计(仿真+程序+原理图+PCB+设计报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号S0001 芯片可以替换为 ...

  9. 基于51单片机的火灾检测设计(仿真+程序+原理图+论文报告)

    本设计: 基于51单片机的火灾检测设计(仿真+程序+原理图+论文报告) Proteus仿真版本:proteus7.8 原理图:Altium Designer 程序编译器:keil 4 编程语言:C语言 ...

最新文章

  1. rstudio 修改代码间距_Windows电脑使用Rstudio会有多少错误呢
  2. 什么是百度竞价创意断句符
  3. .net生成excel并弹出保存提示框(转载)
  4. 汉字正字表达式解决方案
  5. ios把数据传递到另一个页面_iOS 委托 页面之间传递数值
  6. freecodecamp_如何对freeCodeCamp文章提供反馈
  7. [缓存]迅雷下载原理
  8. 听说你还不懂面向对象??
  9. 关于JVM中YGC的来龙去脉
  10. 将字符串转为16进制数_Python 如何将字符串转为字典
  11. 【leetcode】刷题暂告一个段落
  12. [渝粤教育] 武汉理工大学 复变函数与积分变换 参考 资料
  13. lzw编码过程详解_【手打】LZW编码的C/C++实现
  14. linux基础期末考试免费,linux基础期末考试试题.doc
  15. 浅谈大数据广告下个人隐私保护,开发者视角的广告原理
  16. Kindle倒下,iReader接力
  17. ENSP下载还有其他资料地址
  18. 计算机组成原理 学后感,【计算机组成原理实验心得体会】_计算机组成原理实验心得_计算机组成原理实验感想...
  19. 《人机交互技术》第二章 感知和认知基础
  20. 一键生成IOS App Icon工具

热门文章

  1. 工业相机的速度(帧频/行频)
  2. mac apache加载php,Apache 2.4没有加载php5.5与Mac OS 10.8
  3. 7Z命令在linux下的使用
  4. TemporalAdjusters.firstDayOfNextYear
  5. Shader_GLSL、HLSL API异同对比
  6. PHP PEAR网站遭黑客入侵,官方软件安装包被篡改
  7. l7sa008b故障代码_奥克斯空调故障显示代码E1E2E3E4E5E6E7E8E9
  8. 1.android入门不能忽视的问题之出现“ClassNotFoundException: Didn't find class ...Activity on path: DexPathLis”错误
  9. 【236】◀▶IEW-Unit01
  10. 淘宝开店怎么做运营?