资料编号:125 下面是相关功能视频演示:
125-基于51单片机16路多路抢答竞答器系统(仿真+源码+参考论文)
功能讲解:
-
抢答器具有数据锁存和显示功能.当某一路抢答成功时.发光二极管立即点亮.并在该电路上显示该路的号数.直到主持人按复位开关为止.此时其他人抢答无效。
-
抢答器具有定时抢答功能.且抢答时间可以由主持人设定(如97s).当主持人按下“开始”按钮后.要求定时器立即倒计时.并在显示器上显示时间.同时发出“滴”的声响。
-
在设定的时间内抢答.则抢答有效.定时器停止工作.显示器上显示选手的编号和抢答时刻的时间.并保持到主持人将系统清零
-
如果定时器的时间已到.却没有选手抢答.则本次抢答无效.系统会短暂的报警.并且封锁输入电路禁止选手超时抢答.时间显示器上显示00.
全套资料齐全:下面是仿真图展示:
下面是部分程序展示:
void main (void)
{
EA=1;
TMOD=0x11;
TH0=(65536-50000)/256;//这是50ms的
TL0=(65536-50000)%256;
ET0=1;
TR0=0;
TH1=(65536-50000)/256;//这是50ms的
TL1=(65536-50000)%256;
ET1=1;
TR1=1;
time=97;
num=0;
flag=0;
while (1) //主循环
{
TempData[2]=dofly_DuanMa[time/10];//分解显示信息,如要显示68,则68/10=6 68%10=8
TempData[3]=dofly_DuanMa[time%10];
if(num!=0)
m=1;
if(start==0)
{
DelayMs(10);
if(start==0)
{
flag=1;
while(!start);
}
}
if(add==0)
{
DelayMs(10);
if(add==0)
{
time++;
while(!add);
}
}
if(jian==0)
{
DelayMs(10);
if(jian==0)
{
time--;
while(!jian);
}
}
if(time>=99)
time=99;
if(flag==0)
{
if(num!=0)
m=1;
keyscan();
check2();
}
if(flag==1)
{
TR0=1;
if(num!=0)
m=1;
keyscan();
check1();
}
//主循环中添加其他需要一直工作的程序
}
}
下面是该资料的分享下载链接: