任务要求:
1、有一主持人和8个参赛队。
2、当主持人抢下抢答按键,参赛队在10秒钟内可以抢答。数码管显示倒计时,如超过10秒则不能抢答。如抢答成功,则显示抢答的队号。
3、如抢答成功必需在60秒内回答完成。数码管显示倒计时,如超过时间则抢答无效,且显示无效指示。如在60秒内回答完成(抢答队再次按下抢答按键表示回答完成)则抢答正确成功,且显示有效。
4、当主持人按下复位按键时,系统回到初始状态。
一、电路图演示
①初始状态:

②倒计时:

③第7组抢答展示及倒计时

④抢答超时或回答超时

⑤回答成功
二、部分代码演示
if ((key1 == 0) && (TR0 == 1)) //在定时器运行状态下,key1==0 则说明1号选手按下按键
{
delayms(3);
if (key1 == 0)
{
while (!key1); //去除按键抖动后,重新在判断,是否确实按下
TR0 = 0;
djs = 60;
TR0 = 1;
while (1)
{
if(djs<=0)
{
flagN = 1;
TR0 = 0;
djsxsNO();
}
else
{
QD(1); //显示选手编号
djsxs30(); //第二位数码管显示-
djsxs(); //显示剩余倒计时时间
if ((key1 == 0) && (TR0 == 1)) //在定时器运行状态下,key1==0 则说明1号选手按下按键
{
delayms(3);
if (key1 == 0)
{
while (!key1); //去除按键抖动后,重新在判断,是否确实按下
if(djs>0)
{
TR0 = 0;
flagY=1;
break;
}
}
}
}
if(QC()==1) {
goto LOOP1;
}
}
}
}
三、报告、论文演示

四、成果展示

创作不易,资料已上传,点击主页找到抢答器,请自行下载。