基于STM32f103的八路抢答器设计
八路抢答器
·
设计包括:选手抢答区,裁判核对区,观众查看区
本设计以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
说明:需要源码可在下方留言
更多推荐



所有评论(0)