找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3027|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于C51單片機(jī)的八路搶答器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:435809 發(fā)表于 2018-11-29 15:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
sbit k0=P1^0;
sbit k1=P1^1;
sbit k2=P1^2;
sbit k3=P1^3;
sbit k4=P1^4;
sbit k5=P1^5;
sbit k6=P1^6;
sbit k7=P1^7;
sbit B0=P3^7;
sbit l0=P2^0;
sbit l1=P2^2;
sbit l2=P2^3;
sbit l3=P2^4;
sbit kz=P3^0;
sbit ks=P3^1;
sbit key=P3^2 ;
sbit blue=P2^6;
sbit red=P3^6;
unsigned char qiangdanum=0x3f;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char ge=0,shi=0;        start;
unsigned int num=0,time=30;
void display();                         /*顯示函數(shù)*/
void delay(unsigned int);
void intial();
void delay(unsigned int z)           /*延遲函數(shù)*/
{unsigned int x,y;
  for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void intial()              
{TMOD=0X01;                             /*采用方式一,即十六位計(jì)數(shù)器*/
TH0=(65536-50000)/256;                 /*設(shè)置初始值,50ms中斷一次*/
TL0=(65536-50000)%256;
IT0=0;                                         
EA=1;ET0=1;                               /*開啟總中斷源*/
EX0=1; }                                   /*啟動(dòng)外部中斷0*/

main()
{
intial();                              
{while(1)
{display();
if(ks==0)
  {delay(5);
    if (ks==0)
    { while(!ks)
     {TR0=0;time=30;qiangdanum=0;blue=0; start=1;intial();}
    }  
  }
if(kz==0)
{delay(5);
   if (kz==0)
   {while(!kz)
  { TR0=1;B0=1;delay(50);B0=0; qiangdanum=0;blue=0;intial();  /*開啟定時(shí)器0中斷*/
   }
if(key==0)
  if(start==0)
    {while(!key)
   {red=0; B0=1;delay(50);B0=0;intial();}                                
   }
   }
}

}
}
}
void exter0() interrupt 0                /*外部中斷程序*/
{EA=0;l0=0;
if(k0==0)                               /*開關(guān)0按下*/
  {delay(5);
   if(k0==0)                        
  {qiangdanum=1;blue=0; B0=1;delay(50);B0=0;}  
  }                                        /* 1號(hào)選手搶答成功,數(shù)碼管顯示1*/
if(k1==0)                                /*開關(guān)1按下*/
  {delay(5);
   if(k1==0)                       
  {qiangdanum=2; blue=0;B0=1;delay(50);B0=0;}  
  }                                        /* 2號(hào)選手搶答成功,數(shù)碼管顯示2*/
if(k2==0)                                 /*開關(guān)2按下*/
  {delay(5);
   if(k2==0)                        
  {qiangdanum=3;blue=0; B0=1;delay(50);B0=0;blue=0;}  
  }                                       /* 3號(hào)選手搶答成功,數(shù)碼管顯示3*/

if(k3==0)                                 /*開關(guān)3按下*/
  {delay(5);
   if(k3==0)                        
  {qiangdanum=4;blue=0; B0=1;delay(50);B0=0;blue=0;}    /* 4號(hào)選手搶答成功,數(shù)碼管顯示4*/         
  }  
if(k4==0)                                 /*開關(guān)4按下*/
  {delay(5);
   if(k4==0)                        
  {qiangdanum=5;blue=0; B0=1;delay(50);B0=0;}  /* 5號(hào)選手搶答成功,數(shù)碼管顯示5*/        
  }
if(k5==0)                                 /*開關(guān)5按下*/
  {delay(5);
   if(k5==0)                        
  {qiangdanum=6; blue=0;B0=1;delay(50);B0=0;}    /* 6號(hào)選手搶答成功,數(shù)碼管顯示6*/
  }   
if(k6==0)                                 /*開關(guān)6按下*/
  {delay(5);
   if(k6==0)                        
  {qiangdanum=7;blue=0; B0=1;delay(50);B0=0;}  /* 7號(hào)選手搶答成功,數(shù)碼管顯示7*/   
  }
if(k7==0)                                     /*開關(guān)7按下*/
  {delay(5);
   if(k7==0)                        
  {qiangdanum=8; blue=0;B0=1;delay(50);B0=0;}     /* 8號(hào)選手搶答成功,數(shù)碼管顯示8*/
  }
}

void time0() interrupt 1
{num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(num==20)
   { num=0;
     time--;
    if(time==0)                           /*30秒的倒計(jì)時(shí)*/
    {time=30;TR0=0;
    }
   }
}                                        /*1秒定時(shí)函數(shù),采用方式1重裝*/
void display(void)                       
{shi=time/10;
ge=time%10;
P2=0xf7;
P0=table[ge];
delay(5);
P2=0xfb;
P0=table[shi];
delay(5);
P2=0xFe;
P0=table[qiangdanum];
delay(5);                               /*顯示函數(shù),顯示選手號(hào)碼和倒計(jì)時(shí)*/                              
}              




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:439877 發(fā)表于 2018-12-5 11:51 | 只看該作者
為什么顯示3308
回復(fù)

使用道具 舉報(bào)

板凳
ID:428160 發(fā)表于 2018-12-10 23:45 | 只看該作者
我借鑒一下回去試試啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表