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

📄 8lu.c

📁 八路抢答器
💻 C
字号:
#include <reg51.h>
unsigned char SData[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x8e,0xbf};//0~9,f -
unsigned char h;
unsigned char j,z=20;//抢答预调时初始值为 20 
unsigned char d,y=60;//答题预调时初邕值为 60
sbit beep=P3^6;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;

void Delay(unsigned int  i)
{unsigned char j;
  while(i--)
  {
    for(j=0;j<125;j++);//延时 1ms
  }   
}
void ling()
{beep=~beep;
Delay(1);}

void t()
{int N;
beep=0;
Delay(30);
beep=1;
while(1)
{if(P3_4==0)
break;
    while(d)
         for(d=y;d>0;d--)  
        {   for(N=25;N>0;N--)
             { 
              P2=0x08;
              P0=SData[d%10];//先送 个位
              Delay(10);
           P2=0x04;
           P0=SData[d/10];//这是十位
           Delay(10);
           P2=0x02;
           P0=SData[11];
           Delay(10);
           P2=0x01;
           P0=SData[h]; //选手号
           Delay(10); 
    	  
           }
        	 }
        break;
       }
}


void c()
{while(1)
{if(P3_4==0)
break;
P2=0x08;
P0=SData[10];//个位
Delay(10);
ling();
P2=0x04;
P0=SData[10];//十位
Delay(10);
ling();
P2=0x02;
P0=SData[11];
Delay(10);
ling();
P2=0x01;
P0=SData[h]; //选手号
Delay(10);
}}



void jdshi()//抢答预调时程序
{unsigned char i;
while(1)
{for(i=5;i>0;i--)
{P2=0x08;
P0=SData[j%10];//个位
Delay(15);
P2=0x04;
P0=SData[j/10];//十位
Delay(15);
}
if(P3_4==0) break;
if(P3_2==0) j++;
if(P3_3==0) j--;
z=j;
}}

void ddshi()//答题预调时程序
{unsigned char i;
while(1)
{for(i=5;i>0;i--)
{P2=0x08;
P0=SData[d%10];//个位
Delay(15);
P2=0x04;
P0=SData[d/10];//十位
Delay(15);
}
if(P3_4==0) break;
if(P3_2==0) d++;
if(P3_3==0) d--;
y=d;
}}

void daojishi()
{
  int M;

   while(j)
         for(j=z;j>0;j--)  
        { {

           for(M=25;M>0;M--)
             { 
if(P1_0==0) {ling();h=1;t();}
if(P1_1==0) {ling();h=2;t();}
if(P1_2==0) {ling();h=3;t();}
if(P1_3==0) {ling();h=4;t();}
if(P1_4==0) {ling();h=5;t();}
if(P1_5==0) {ling();h=6;t();}
if(P1_6==0) {ling();h=7;t();}
if(P1_7==0) {ling();h=8;t();}
              P2=0x08;
              P0=SData[j%10];//先送 个位
              Delay(20);
              P2_3=0;

           P2=0x04;
              P0=SData[j/10];//这是十位
              Delay(20);
              P2_2=0;
             }
        	 }
       }
}
void main()
{j=z;d=y;
while(1)
{P2=0x08;
P0=SData[10];
Delay(10);
P2=0x04;
P0=SData[10];
Delay(10);
P2=0x02;
P0=SData[11];
Delay(10);
P2=0x01;
P0=SData[0];
Delay(10);
if(P3_0==0)
jdshi();
if(P3_1==0)
ddshi();
if(P3_5==0) 
daojishi();
if(P1_0==0) {ling();h=1;c();}
if(P1_1==0) {ling();h=2;c();}
if(P1_2==0) {ling();h=3;c();}
if(P1_3==0) {ling();h=4;c();}
if(P1_4==0) {ling();h=5;c();}
if(P1_5==0) {ling();h=6;c();}
if(P1_6==0) {ling();h=7;c();}
if(P1_7==0) {ling();h=8;c();}
}
}

⌨️ 快捷键说明

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