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

📄 qiangda.c

📁 利用单片机做的抢答器
💻 C
字号:
#include<reg51.h>
unsigned char DATA_7seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//两位时间段码
sbit start=P1^7;     //抢答开始
sbit mode=P2^7;      //模式选择——抢答-定
sbit add=P3^7;      //调时
sbit beep=P0^7;               //蜂鸣器
sbit k1=P0^0;
sbit k2=P0^1;
sbit k3=P0^2;
sbit k4=P0^3;
sbit k5=P0^4;
sbit k6=P0^5;
sbit k7=P0^6;
unsigned int time=10;  //默认倒计时
unsigned int time_set=10;
void Timer();
/*******延时 n*1mS 程序********/
void Delay(unsigned int k)
{  
   unsigned int i,j;
   for(i=0;i<k;i++)
    {
      for(j=0;j<0x60;j++)
    {;}
    }
} 
/**************输入倒计时——时间**********************/
 in_time()
{ 
  while(1)
  {
    P3=0xbf;
    P2=DATA_7seg[time/10];
    P1=DATA_7seg[time%10];
    if(add==0)         //输入时间
        {  Delay(8);
     if(add==0)
               { time++;
        time_set=time;
        Delay(250); }
     if(time==100)
            { time=0; }
    }
  if(start==0) break;
   } 
}
/************抢答选择**********/
void question(void)
{   
   while(1)
    {  
   if(k1==0) { P3=0xf9; break; }   //1 号
   if(k2==0) { P3=0xa4; break; }   //2 号
   if(k3==0) { P3=0xb0; break; }   //3 号
   if(k4==0) { P3=0x99; break; }   //4 号
   if(k5==0) { P3=0x92; break; }   //5 号
   if(k6==0) { P3=0x82; break; }   //6 号
   if(k7==0) { P3=0xf8; break; }   //7 号
      P3=0xbf; P2=0xbf; P1=0xbf;
  }
}
/*************************************************/
//倒计时
void Timer()
{ 
   while(1)
    {  P2=DATA_7seg[time/10];
          P1=DATA_7seg[time%10];
      --time;
   Delay(1200);      //延时大约一秒
  if(time==0) {time=time_set; break; }
        }
}
            
/***************主程序**************/
main()
{  
   while(start)
    {
     P3=0xbf;
     P2=0xc0;
     P1=0xc0;
  Delay(50);
  P2=0xff;  P1=0xff;
  Delay(50); 
  if(mode==0)  
   {   
   Delay(8);
      if(mode==0) { in_time();}
    }
   } 
  Delay(350);
  while(1)
   {
     P3=0xc0;
     P2=0xbf;
     P1=0xbf;
     P0=0xff;        //抢答器初始化
  Delay(50);
  P2=0xff;  P1=0xff;
  Delay(50); 
  if(start==0)
      {
      Delay(8);
    if(start==0)
        {
                  question();   // 抢答选择
       
                Timer();     //进入倒计时
                  }
          }
    }
 
} 

⌨️ 快捷键说明

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