【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设计,视频分享,技术交流。

相关推荐
茯苓gao3 小时前
stm32 WDG看门狗
stm32·单片机·嵌入式硬件
小智学长 | 嵌入式3 小时前
单片机-STM32部分:8、外部中断
stm32·单片机·嵌入式硬件
Ronin-Lotus4 小时前
嵌入式硬件篇---CAN
单片机·嵌入式硬件·can·stm32f103rct6
走错路的程序员10 小时前
stm32测频率占空比最好的方案
stm32·单片机·嵌入式硬件
Ronin-Lotus11 小时前
嵌入式硬件篇---SPI
单片机·嵌入式硬件
Ronin-Lotus12 小时前
嵌入式硬件篇---陀螺仪|PID
单片机·嵌入式硬件
小智学长 | 嵌入式12 小时前
单片机-STM32部分:12、I2C
单片机·嵌入式硬件
四夕白告木贞12 小时前
stm32week15
stm32·单片机·嵌入式硬件·学习
Ronin-Lotus13 小时前
嵌入式硬件篇---TOF|PID
单片机·嵌入式硬件·c·pid·tof
weixin_4528130915 小时前
如何根据HardFault中断抛出的寄存器值排查数组越界
单片机·嵌入式硬件·嵌入式软件