设计包括:选手抢答区,裁判核对区,观众查看区

本设计以STM32F103C8为核心,包含按键抢答功能、按键使用提示功能、倒计时提醒功能;在规定的时间(60S)之内,八位选手可通过按钮进行抢答,若是有人抢答成功,则发出两声短暂的蜂鸣声提醒有用户抢到并且在数码管上显示该选手的编号以及在OLED上显示该选手的编号、抢答时间;若是在50S之内没人抢答则开始最后10S提醒(蜂鸣器持续发声);若是60S之内无人抢答时蜂鸣器停止发声、OLED显示“ NO Student PASS ”并且之后选手按下按钮都会抢答无效;

总体硬件设计图:

	NumIO_Init();
	Time_Init();
	Key_Init();
	OLED_Init();
	OLED_ShowString(1,1," Answer quickly");
	while (1)
	{
		
		if(count<=60&&(Flag==0))
		{
		Show_Num(A,1);
		Show_Num(B,2);
			if(count>=55)
			{
				GPIO_SetBits(GPIOA,GPIO_Pin_7);		
			}
			Key_Scan();
			if(Flag!=0)
			{
				GPIO_SetBits(GPIOA,GPIO_Pin_7);
				Delay_ms(100);
				GPIO_ResetBits(GPIOA,GPIO_Pin_7);
				Delay_ms(100);
				GPIO_SetBits(GPIOA,GPIO_Pin_7);
				Delay_ms(100);
				GPIO_ResetBits(GPIOA,GPIO_Pin_7);
				Delay_ms(100);
				OLED_ShowString(2,1,"student:NO.");
				OLED_ShowNum(2,12,Flag,1);
				OLED_ShowString(3,1,"Time:");
				OLED_ShowNum(3,6,count,2);
				OLED_ShowString(3,10," PASS!");
				Show_Num(0,1);
				Show_Num(Flag,2);
			}
		}
		if(count>60)
		{
			GPIO_ResetBits(GPIOA,GPIO_Pin_7);
			OLED_ShowString(2,1,"NO student PASS");
			OLED_ShowString(3,1,"Time:60S");
		}
	}

 创新点:由于STM32有些型号引脚资源比较紧张,故采用74HC573来进行锁存,此处节省Pin-2

说明:需要源码可在下方留言

 

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐