⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 八路抢答器.c

📁 八路抢答器
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char 
#define uint unsigned int
sbit speak=P2^0;
sbit host=P2^2;
sbit anjian=P2^3;
uchar GroupNo;
uchar code Seg7code[9]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};//0到8的代码

void delay1ms(void)//延迟1毫秒
{uchar i;
 for(i=250;i<0;i--);
   
 }

void ddelay(uint k)
{
    uint i,j;
    for(i=0;i<k;i++)
      {
        for(j=0;j<250;j++)
        	{;}
      }
}
 
 
 void ShowG(uchar no)//显示出第几组
{P1=Seg7code[no];}

uchar KeySweep(void)//键盘扫描,获取组数
{uchar temp,no=0;
 if(P3!=0xff)
  {delay1ms();
   if(P3!=0xff)
    temp=~P3;
  }
 while(temp!=0)
  {temp=temp>>1;
   no++;
  }
 return no;
}

void timer0(void) interrupt 1
{TH0=0x10;
 TL0=0X60;
 speak=~speak;
}

void InitTime0(void)//定时器0初始化
{TMOD=0x02;
 TH0=0x10;
 TL0=0X60;
 ET0=1;
 TR0=1;
}
 
void main()
{InitTime0();
 while(1)
 {
while(host==0)
   {anjian=1;
 
   P3=0xff;
  ShowG(0);
  GroupNo=KeySweep();
  ShowG(GroupNo);
  EA=0;
  }
 P3=0xff;
  ShowG(0);
  while(P3==0xff);
  GroupNo=KeySweep();
  
  ShowG(GroupNo);
   ddelay(200);
	P1=0x00;
    ddelay(200);
	ShowG(GroupNo);
 


  EA=1;
  while(host==1);
  delay1ms();
  while(host==1);
 
  EA=0;
 }
}

    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -