篮球比赛计时记分电路Proteus仿真说明

        如图所示为篮球比赛计时记分电路的Proteus仿真图。该仿真使用ATmega128作为控制核心、LGM12864作为计时记分器的显示装置、矩阵键盘作为输入设备实现篮球比赛的计时记分功能。

        ATmega128是ATMEL公司的 8位系列单片机的最高配置的一款单片机,稳定性极高,被广泛的应用在了汽车电车管理、门禁系统、遥控器、智能家居、以及计量电表等领域。Atmega128A是AVR8位微处理器芯片,采用先进的RISC结构,采用AVR内核,拥有16MHz工作频率,工作电压为2.7-5.5V。

        仿真运行后会利用LGM12864显示比赛时间、两队分数及比赛的小节数等。显示部分采用中文显示。

        按下开始按键后比赛时间会开始进行倒计时。在此期间可以对A队和B队的比赛分数进行修改。

        按下暂停后比赛时间停止倒计时,此时可以按下设定按钮对比赛时间进行修改。设定按钮按下后对应的修改位置会进行闪烁提示。设定按钮分别可以修改比赛时间的分钟和秒钟,修改完秒数据后,再次按下设定按钮,就可以退出设定模式。复位按键可以比赛设计和比赛分数进行复位。

        程序使用ICCAVR7.22进行开发。部分程序代码如下:

void main(void)
{
    uint key_store=0x01;
	DDRC=0x0f;                        			//PC口上拉电阻使能
    PORTC=0xf0;      
	DDRB=0xff;                        			//PB口上拉电阻使能
    PORTB=0xff;  
    system_init();                              //系统初始化,设置IO口属性
	delay_nms(100);                             //延时100ms
	//************************************************************
	LCDchushihua();								//液晶显示器初始化
  	LCDQingPing();								//液晶显示器清屏
	DDRB|=0x20 ;								
	Display(); 									//显示初始化函数
	timer1_init();								//定时器初始化
	TIMSK=0x04;									//定时器中断设置
	SEI();										//开中断
	Display_Score(scorea,scoreb);				//显示初始分数
	vision_tab();								//显示比赛小节数		
	beer0();			
	while(1)
	{
	 		
	 		if(update==1)						//如果更新标志位
			{
			 	update = 0 ;					//清除标志位
				if(time_fen==0&byte_tab==4)		//如果比赛省最后一分钟,且为最后一节
				{
				 Display_Number(time_miao,cnt); //进行快速倒计时
				}else
				{
				 Display_Number(time_fen,time_miao);			//其他情况下显示正常时间倒计时
				}
				//delay_nms(100);                                //延时100ms
				//Display_Number(time_fen,time_miao,byte_tab);
			}
	 		keyboardscan();                         		  //键盘扫描,看是否有按键按下
    		if(key!=0xff&flag==0)                        	  //如果有按键按下,则显示该按键键值0~15
      		{    
				 flag = 1 ;
				 switch(key)								  //根据按键对比赛分数、比赛时间进行调整
				 {
				  case 1 : if(start==1){if(scoreb<200)scoreb=scoreb+1;else scoreb = 0 ;} Display_Score(scorea,scoreb);break ;//B队分数+1
				  case 2 : if(start==1){if(scoreb<200)scoreb=scoreb+2;else scoreb = 0 ;} Display_Score(scorea,scoreb);break ;//B队分数+2
				  case 3 : if(start==1){if(scoreb<200)scoreb=scoreb+3;else scoreb = 0 ;} Display_Score(scorea,scoreb);break ;//B队分数+3
				  case 4 : if(start==0){								   //对时间进行加调整
				  if(mode==1)
				  {
				   if(time_fen<59) time_fen++;else time_fen = 0 ;
				  }else if(mode==2)
				  {
				   if(time_miao<59) time_miao++;else time_miao = 0 ;
				  }
				  }
				  break ;//
				  case 5 : if(start==1){if(scorea<200)scorea=scorea+1;else scorea = 0 ;}Display_Score(scorea,scoreb); break ;//A队分数+1
				  case 6 : if(start==1){if(scorea<200)scorea=scorea+2;else scorea = 0 ;}Display_Score(scorea,scoreb); break ;//A队分数+2
				  case 7 : if(start==1){if(scorea<200)scorea=scorea+3;else scorea = 0 ;}Display_Score(scorea,scoreb); break; //A队分数+3
				  case 8 : 
				  if(start==0)
				  {
				  if(mode==1)
				  {
				   if(time_fen>0) time_fen--;else time_fen = 59 ;
				  }else if(mode==2)
				  {
				   if(time_miao>0) time_miao--;else time_miao = 59 ;
				  } 
				  }break ; //时间进行减调整
				  case 9 : start = 1 ;mode=0; break ;//开始按键
				  case 10 : if(start!=1){beer0();start = 0 ; time_miao=0;time_fen=2;byte_tab=1;scorea=0;scoreb=0;}Display_Score(scorea,scoreb);vision_tab();
				  break ;//复位按键,只有在暂停状态下可进行复位操作
				  case 0 : start = 0 ;break ;//暂停按键
				  case 11 : if(start==0){if(mode<2)mode++;else mode = 0 ;}break ;//模式选择,在暂停模式下才能对时间进行调整
				 }
			}else if(key==0xff)
			{
			 flag = 0 ;
			}
	}
}

【闲鱼】https://m.tb.cn/h.UdSkzRt?tk=PVee2yrTOME CZ0001 「我在闲鱼发布了【基于ATmega128的篮球比赛记时记分器。该仿真采用ATe】」
点击链接直接打开 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西天取经的熊猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值