【Proteus仿真】【51单片机】篮球比赛计分器

文章目录


一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用声光报警模块、动态数码管模块、按键模块等。

主要功能:

系统运行后,数码管显示比赛时间和AB队得分;系统还未开启时,可通过按键K1和K2调节分钟,K3和K4调节秒钟;当按下K7键比赛开始,K1和K2调节A队得分;K3和K4调节B队得分;当比赛时间结束,可按下K6键交换场地,亦可按下K5键清零得分,回归最初状态。


二、软件设计

c 复制代码
/*
作者:嗨小易(QQ:3443792007)

*/


//系统数据设置
void sys_data_set(void)
{
	u8 key=0;

	key=key_scan(0);

	//开始/暂停
	if(key==KEY7_PRESS)
	{
		beep_alarm(10,1000);//提示音
		sys_ctrl.start++;
		if(sys_ctrl.start==1)
		{
			LED_KS=0;LED_ZT=1;
			TR0=1;//打开定时器
		}
		else if(sys_ctrl.start==2)
		{
			LED_KS=1;LED_ZT=0;
			TR0=0;//关闭定时器	
		}
		else 
		{
			LED_KS=0;LED_ZT=1;
			sys_ctrl.start=1;
			TR0=1;//打开定时器	
		}	
	}
	//还未开始,可调节时间
	if(sys_ctrl.start==0)
	{
		//分加
		if(key==KEY1_PRESS)	
		{
			sys_ctrl.min++;
			if(sys_ctrl.min>59)sys_ctrl.min=0;	
		}
		//分减
		else if(key==KEY2_PRESS)	
		{
			sys_ctrl.min--;
			if(sys_ctrl.min<0)sys_ctrl.min=59;	
		}
		//秒加
		else if(key==KEY3_PRESS)	
		{
			sys_ctrl.sec++;
			if(sys_ctrl.sec>59)sys_ctrl.sec=0;	
		}
		//秒减
		else if(key==KEY4_PRESS)	
		{
			sys_ctrl.sec--;
			if(sys_ctrl.sec<0)sys_ctrl.sec=59;	
		}
		//清零
		else if(key==KEY5_PRESS)	
		{
			sys_parm_init();//系统参数初始化	
		}
		//交换场地
		else if(key==KEY6_PRESS)	
		{
			sys_ctrl.dir=!sys_ctrl.dir;		
		}
	}
	//比赛开始
	else
	{
		//A加分
		if(key==KEY1_PRESS)	
		{
			sys_ctrl.score_a++;
			if(sys_ctrl.score_a>99)sys_ctrl.score_a=99;	
		}
		//A减分
		else if(key==KEY2_PRESS)	
		{
			sys_ctrl.score_a--;
			if(sys_ctrl.score_a<0)sys_ctrl.score_a=0;	
		}
		//B加分
		else if(key==KEY3_PRESS)	
		{
			sys_ctrl.score_b++;
			if(sys_ctrl.score_b>99)sys_ctrl.score_b=99;	
		}
		//B减分
		else if(key==KEY4_PRESS)	
		{
			sys_ctrl.score_b--;
			if(sys_ctrl.score_b<0)sys_ctrl.score_b=0;	
		}	
	}
}


//应用控制系统
void app_ctrl_sys(void)
{
	sys_parm_init();//系统参数初始化
	time0_init();//定时器0初始化	

	while(1)
	{
		sys_data_show();//系统数据显示
		sys_data_set();//系统数据设置	
	}		
}

三、实验现象

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



联系作者

视频地址:https://space.bilibili.com/444388619/video

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

相关推荐
redcocal8 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
辰哥单片机设计11 小时前
门磁模块详解(防盗感应开关 STM32)
stm32·单片机·嵌入式硬件·传感器
夜间去看海11 小时前
基于51单片机的自动清洗系统(自动洗衣机)
嵌入式硬件·51单片机·proteus·洗衣机
yrx02030712 小时前
stm32 IIC总线busy解决方法
stm32·单片机·嵌入式硬件
Archie_IT14 小时前
【STM32系统】基于STM32设计的SD卡数据读取与上位机显示系统(SDIO接口驱动、雷龙SD卡)——文末资料下载
arm开发·stm32·单片机·嵌入式硬件
辰哥单片机设计14 小时前
1×4矩阵键盘详解(STM32)
stm32·单片机·嵌入式硬件·矩阵·传感器
wmkswd14 小时前
CAN总线-STM32上CAN外设
stm32·单片机·嵌入式硬件
努力看懂帖子15 小时前
关于STM32项目面试题02:ADC与DAC篇(输入部分NTC、AV:0-5V、AI:4-20mA和DAC的两个引脚)
嵌入式硬件
嵌入式大圣16 小时前
STM32 单片机最小系统全解析
stm32·单片机·嵌入式硬件