八路抢答器c语言程序.doc
文本预览下载声明
//按钮P1;灯P0;数码管P2; P3^0主持人控制开关
#includereg52.h
#define uc unsigned char
sbit li1=P0^0;
sbit li2=P0^1;
sbit li3=P0^2;
sbit li4=P0^3;
sbit li5=P0^4;
sbit li6=P0^5;
sbit li7=P0^6;
sbit li8=P0^7; //定义灯
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit key5=P1^4;
sbit key6=P1^5;
sbit key7=P1^6;
sbit key8=P1^7; //定义按钮
sbit zhuchi=P3^0;
uc code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uc xms);
void main()
{ P2=0x00; //共阴数码管全灭
while(1)
{
if(key1==0) //选手1
{
delay(10); //去抖延时
if(key1==0)
{P2=table[1];li1=0;}
while(1)
{
if(zhuchi==0)
{delay(10);
if(zhuchi==0)
{P2=0x00;li1=1;break;}}
}
} //选手1
if(key2==0) //选手2
{
delay(10); //去抖延时
if(key2==0)
{P2=table[2];li2=0;}
while(1)
{
if(zhuchi==0)
{delay(10);
if(zhuchi==0)
{P2=0x00;li2=1;break;}}
}
} //选手2
if(key3==0) //选手3
{
delay(10); //去抖延时
if(key3==0)
{P2=table[3];li3=0;}
while(1)
{
if(zhuchi==0)
{delay(10);
if(zhuchi==0)
{P2=0x00;li3=1;break;}}
}
} //选手3
if(key4==0) //选手4
{
delay(10); //去抖延时
if(key4==0)
{P2=table[4];li4=0;}
while(1)
{
if(zhuchi==0)
{delay(10);
if(zhuchi==0)
{P2=0x00;li4=1;break;}}
}
} //选手4
if(key5==0) //选手5
{
delay(10); //去抖延时
if(key5==0)
{P2=table[5];li5=0;}
while(1)
{
if(zhuchi==0)
{delay(10);
if(zhuchi==0)
{P2=0x00;li5=1;break;}}
}
} //选手5
if(key6==0) //选手6
{
delay(10); //去抖延时
if(key6==0)
{P2=table[6];li6=0;}
while(1)
{
if(zhuchi==0)
{delay(10);
if(zhuchi==0)
{P2=0x00;li6=1;break;}}
}
} //选手6
显示全部