程序设计:当数码管显示“-”时开始抢答,按下对应按钮,数码管显示对应按钮数字,此时其他按键按下不会影响当前数码管显示数字,按下复位键可重启程序开始抢答。
#include<reg51.h>
sbit s1=P2^4;sbit s2=P2^5; sbit s3=P2^6;sbit s4=P2^7;
sbit k2=P3^4;sbit k3=P3^5; sbit k4=P3^6;sbit k5=P3^7;
unsigned char shu[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x40};
void guan(unsigned int c, a)
{while(1){
switch(c){
case 1:s1=1;s2=0;s3=0;s4=0;break;
case 2:s1=0;s2=1;s3=0;s4=0;break;
case 3:s1=0;s2=0;s3=1;s4=0;break;
case 4:s1=0;s2=0;s3=0;s4=1;break;}
P0=shu[a];}
}
void main()
{while(1){
P0=shu[10];
if(k2==0){guan(3,2);}
if(k3==0){guan(3,3);}
if(k4==0){guan(3,4);}
if(k5==0){guan(3,5);}
}
}