求一份单片机AT89S52的抢答器的程序,要Keil uVision2的 谢谢 有的发一份给我

标明程序的作用

code char yiwen_io[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF}; //IO控制码,每次一个脚为0
char qd=0;//保存按键值
char dat_io=1;//是否开始抢答
char KEY() //键盘扫描
{
char a,temp,c=0;
P0=0xff;
P2=0xff;
for(a=0;a<8;a++)
{
P2=yiwen_io[a];
temp=P0;
switch(temp)
{
case 0xFE: c=a*8+1;break;
case 0xFD: c=a*8+2;break;
case 0xFB: c=a*8+3;break;
case 0xF7: c=a*8+4;break;
case 0xEF: c=a*8+5;break;
case 0xDF: c=a*8+6;break;
case 0xBF: c=a*8+7;break;
case 0x7F: c=a*8+8;break;
}
if(c>0){while(temp==P0);return c;}
}
return c;
}
void main()
{
while(1)
{
if(dat_io){qd=key();if(qd>0 && qd!=64)dat_io=0;}//有人按下按键后停止按键扫描
if(qd==64 && dat_io==0)dat_io=1;//设定64号按键为开始抢答键
}
}
温馨提示:答案为网友推荐,仅供参考