【毕业设计】_基于STM32单片机的比赛计时计分(原理图+源码)

一. 系统概述

系统以STM32单片机作为主要控制单元,通过按键操作实现比赛的计时和计分功能。此外,系统还允许用户调整比赛场次设置。

在这里插入图片描述

二. 仿真概述

  1. 按下“开始”按钮后,系统会启动比赛计时功能;若按下“暂停”按钮,计时将暂停。系统还提供了更改比赛场次的选项,同时下方按键可用于记录两队的得分。

在这里插入图片描述

  1. 按下“设置”按钮,可以对计时时间进行调整。再次按下该按钮可在分钟和秒钟之间切换。下方的两个按键用于增加或减少时间。

在这里插入图片描述

三.程序设计

#include <main.h>
//
u8 Key,Aget=0,Bget=0,s=0,d=12,star=0,set=0,jp=1;
//


//
void Init(void);
void Test(void);
void Get(void);
void time(void);
//


int main(void)
{
	
	Init();

	while(1)
	{
		KeyXY_Scan(&Key);
		Lcd1602_Write_Num8(0x82,Key);
		Test();
		time();
		Get();
		
		//场次
		if(Key==3)
		{
			star=0;
			d=12;s=0;
			jp++;
			if(jp==5) jp=1;
		}
		if(jp==1)	Lcd1602_Write_String(0x8a,1,(u8*)"1");
		if(jp==2)	Lcd1602_Write_String(0x8a,1,(u8*)"2");
		if(jp==3)	Lcd1602_Write_String(0x8a,1,(u8*)"3");
		if(jp==4)	Lcd1602_Write_String(0x8a,1,(u8*)"4");
		
		
		
		//设置
		if(Key==4)
		{
			set++;
			if(set==3)	set=0;
			
		}
		if(Key==8&&set==1)			
		{
			d++;
		}
		else if(Key==12&&set==1)	
		{
			d--;
		}
		else if(Key==8&&set==2)		
		{
			s++;
		}
		else if(Key==12&&set==2)	
		{
			s--;
		}
		
		if(set==1)	
		{
			delay_ms(500);
			Lcd1602_Write_String(0xc5,2,(u8*)"  ");
		}
		if(set==2)	
		{
			delay_ms(500);
			Lcd1602_Write_String(0xc9,2,(u8*)"  ");
		}
		
		if(d>=60&&(set==1||set==2)) d=0;
		if(d==0&&(set==1||set==2)) d=0;
		if(s>=60&&(set==1||set==2)) s=0;
		if(s==0&&(set==1||set==2)) s=0;
		Key=0;
	}
}

24-32f-36

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值