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

相关推荐
2CM_Embed9 小时前
Altium Designer 原理图与 PCB 快速相互定位:Cross Probe 交叉探针
嵌入式硬件·pcb·altium designer·c2000
恒锐丰-罗生10 小时前
宽压大电流同步降压优选|CN3906 DC-DC 电源芯片,车载 / 工控 / IoT 全能供电方案
嵌入式硬件·硬件工程
happygrilclh13 小时前
STM32,串口单字节中断接受,每次上电后,会收到一个0x00的解决办法。
单片机·嵌入式硬件
智闲电子设计14 小时前
STM32 独立看门狗 IWDG 实战:系统跑飞,它来兜底复位
stm32·单片机·嵌入式硬件
zcmodeltech15 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
程序员与背包客_CoderZ16 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡17 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
天空'之城18 小时前
单片机基础核心知识点汇总(三)
单片机·嵌入式硬件
嵌入式阿蔡18 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
恒锐丰科技韩生19 小时前
率能 SS8847E|2.7~15V 双通道 H 桥电机驱动 ETSSOP16 散热封装 家电 / 打印 / 舞台灯光专用
嵌入式硬件·硬件工程