|
搶答器的按鍵程序?yàn)榱藱C(jī)會(huì)公平不可以用輪詢法和軟件延時(shí),而是所有搶答鍵同時(shí)查詢,比如 if(P1!=0xff),一旦有鍵動(dòng)作立即封鎖所有搶答鍵,再查詢主持鍵是否按下,否則屬違規(guī)。給你一個(gè)思路參考:
void keyscan()
{
unsigned char num; //局部變量
static bit key_sign=0;//按鍵自鎖標(biāo)志
if(P1!=0xff && key_sign==0)
{
key_sign=1;//自鎖,
num=P1;//讀鍵狀態(tài)
switch(num)
{
case 0xfe: TheWinner=1;break;
case 0xfd: TheWinner=2;break;
.......
.......
default:TheWinner=0; break;
}
if(allow)//主持
//TheWinner勝出
else
//TheWinner違規(guī)
}
else
{
if(key_sign==1)
{
if(...)//主持操作
key_sign=0;//解鎖
}
}
}
|
|