文章目录

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

一、功能简介

本项目使用Proteus8仿真STM32单片机控制器,使用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;TIM_Cmd(TIM2,ENABLE);//打开定时器}//暂停else if(key==2){beep_alarm(100,10);sys_ctrl.start=0;TIM_Cmd(TIM2,DISABLE);//关闭定时器  }//更换节次else if(key==3){beep_alarm(100,10);sys_ctrl.start=0;TIM_Cmd(TIM2,DISABLE);//关闭定时器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 appdemo_show(void)
{sys_parm_init();//系统参数初始化key_matrix_init();BEEP_Init();lcd1602_init();//LCD1602初始化TIM2_Init(500-1,71);//定时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仿真】【STM32单片机】比赛计时计分系统设计相关推荐

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

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

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

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

  3. 基于STM32单片机的智能手环设计(OLED显示)(Proteus仿真+程序+报告)

    编号8 基于STM32单片机的智能手环设计(OLED显示) 功能描述: 由 STM32单片机+按键模拟计步+RTC时钟模块+DS18B20温度传感器模块+心率采集模块+串口模块+OLED显示模块+键盘 ...

  4. 利用Proteus仿真STM32实现按键控制LED灯设计

    1. 前言 Proteus是英国著名的EDA工具(仿真软件),从原理图布图.代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计.是世界上唯一将电路仿真软件.PC ...

  5. 基于STM32单片机水位检测系统仿真设计

    文章目录 主要功能 仿真图 程序(提供源文件源码) 本设计基于STM32单片机水位检测系统仿真设计(proteus仿真+程序) 仿真图proteus 8.11 程序编译器:keil 5 编程语言:C语 ...

  6. Proteus简单入门教程以及使用Proteus仿真STM32F103单片机和Arduino单片机

    工欲善其事必先利其器,有条件的朋友直接使用开发板学习即可,但有时候手边没有实物开发板可以用,那么可以借助一些仿真软件运行我们的程序,Proteus算是使用的比较多的一种仿真软件,我们使用它来做STM3 ...

  7. 【软件相关】Proteus仿真STM32记录

    文章目录 0 前期教程 1 前言 2 先说说建议的流程 3 需要注意的事项 3.1 供电网配置不要忘了 3.2 ADC模块的使用 3.3 元器件查询手册 4 一些小技巧 4.1 快速添加标号 4.2 ...

  8. 使用 Proteus 仿真 STM32

    使用 Proteus 仿真 STM32 创建项目 新建工程 完成 连接元器件 编辑元件 Program File Crystal Frequency 配置供电网 后续 创建项目 新建工程 一直下一步就 ...

  9. 9、★♥★基于STM32单片机的颜色检测仪设计♥☆

    9.★♥★基于STM32单片机的颜色检测仪设计♥☆ 文章目录 9.★♥★基于STM32单片机的颜色检测仪设计♥☆ 引言 1.系统概述 1.1.设计任务 1.2.设计要求 2.方案设计与论证 2.1.芯 ...

最新文章

  1. java android下载文件_Android 下载文件(jsp做的服务器上)下载下来和源文件大小不一...
  2. 深度学习和目标检测系列教程 5-300:早期的目标检测RCNN架构
  3. JAVA 捕获异常所遇BUG
  4. 常量指针与指针常量勘误
  5. 1 QM配置-基本配置-维护工厂等级设置
  6. AspNetCore中使用Ocelot之 IdentityServer4(1)
  7. 人机协同、数据驱动,云时代SOC的演进之路
  8. OpenCV之线性混合操作
  9. html能转成stp吗,3DMax怎么转出成stp/igs文件呢?
  10. PC版Android系统声卡驱动,android下调试声卡驱动之概述
  11. Markdown编辑器——Editor.md的使用
  12. Linux基础入门到精通之虚拟机中安装Linux系
  13. 西瓜书研读——第三章 线性模型: 线性判别分析 LDA
  14. 【渝粤题库】广东开放大学 风险投资 形成性考核
  15. SSTI 模板注入url_for和get_flashed_messages之[WesternCTF2018]shrine
  16. C语言|博客作业07
  17. 基站、WiFi、IP定位原理介绍与区别
  18. python生成指定长度的列表_python怎样创建具有一定长度和初始值的列表
  19. ros和carla的联合
  20. C语言函数体内无条件的大括号

热门文章

  1. 用命令行编译java文件
  2. web图片铺满网页_CSS中如何设拉伸背景图片铺满屏幕
  3. tdd干扰波形_TDD-LTE上行干扰定位方法及排查指导手册.doc
  4. 定时启动软件的脚本。同时也适用于定时打开游戏。
  5. AD20怎样生成PCB文件??
  6. Excel取消工作簿密码【忘记工作簿密码的解决方法】
  7. 用java设计一个动物声音 模拟器,Java语言 设计一个动物声音“模拟器”(用接口实现)...
  8. linux下mq通道的命令,Linux下MQ的安装
  9. 爱尔康与好大夫在线达成合作​;武田达泽优获批进入中国 | 跨国药企在中国...
  10. 企业上市IPO的必要条件