久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

只需一步,快速開始

搜索
查看: 1679|回復(fù): 0
收起左側(cè)

搶答器

[復(fù)制鏈接]
ID:332040 發(fā)表于 2018-5-20 12:46 | 顯示全部樓層 |閱讀模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;      
sbit k7=P1^6;
sbit k8=P1^7;  //選手按鍵
sbit beep=P3^6;   //蜂鳴器
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};  //0-9代碼(共陰極)
uchar shiwei,gewei,xuanshou,count,i,second;
ucharscore1,score2,score3,score4,score5,score6,score7,score8;//選手1~8的分?jǐn)?shù)
uint t,m,n,a,a1,a2,a3,a4,a5,a6,a7,a8,k,m1,n2,m2,n2;
void Timer()
{
       TMOD|=0x01;
       TH0=0xd8;  //初值55536,計(jì)數(shù)10000次,每次1US,總計(jì)10ms
       TL0=0xf0;
       IE=0x82;  //這里是中斷優(yōu)先級(jí)控制EA=1(開總中斷),ET0=1(定時(shí)器0允許中斷),這里用定時(shí)器0來(lái)定時(shí)
       TR0=1;         
}
void tim(void) interrupt 1 using 1  //為定時(shí)中斷TR0
{
       TH0=0xd8;  //重新賦值
       TL0=0xf0;
       count++;
       if(count==100)//100*10ms=1
       {
       count=0;
       second--;//秒減1
       }
}
void delay(uint z)  //延時(shí)函數(shù)
{
       uintx,y;
       for(x=z;x>0;x--)
              for(y=110;y>0;y--);//延時(shí)1ms     
}
void display (uchar shiwei,gewei,xuanshou)//顯示函數(shù)
{     
       P2=0xfe;   //打開顯示時(shí)間十位的位選低電平有效1111 1110
       P0=shiwei;//顯示十位
       delay(5);
       P2=0xfd; //個(gè)位位選1111 1101
       P0=gewei;
       delay(5);
      
       P2=0xf7;    //選手位選1111 0111
       P0=xuanshou;
       delay(5);
}
void dis(void)//調(diào)用顯示函數(shù)
{
       shiwei=tab[second/10];
       gewei=tab[second%10];
       xuanshou=tab;
       display(shiwei,gewei,xuanshou);
}
void init()   //初始化函數(shù)
{   
       P2=0x04;//00000100
       P0=0x3f;//數(shù)碼管共陰0011 1111顯示0
       t=0;
       beep=0;//蜂鳴器
       i=0;
       second=29;
       score1=60;
       score2=60;
       score3=60;
       score4=60;
       score5=60;
       score6=60;
       score7=60;
       score8=60;
       a1=1;
       a2=1;
       a3=1;
       a4=1;
       a5=1;
       a6=1;
       a7=1;
       a8=1;
}
void main()//主函數(shù)
{
    init();//調(diào)用初始化函數(shù)
        if(k==1){ m=0;    if(k1==0){delay(5);if(k1==0);while(!k1);beep=1;delay(500);beep=0;}      //   違規(guī)搶答顯示號(hào)碼報(bào)警
                             while(t)
                     {
                            if(m==0)//開關(guān),保證程序只執(zhí)行一次
                            {
                                   switch(t)
                                   {
                                          case1:
                                                 {
                                                        TR0=0;i=1;second=score1;beep=1;delay(500);beep=0;
                                                        a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;//有選手搶答時(shí)顯示選手號(hào)碼蜂鳴器響,時(shí)間為0,ti對(duì)應(yīng)
                                                 }}}  }
              
                            if(k2==0){delay(5);if(k1==0);while(!k1);t=2;beep=1;delay(500);beep=0;}
                         if(k3==0){delay(5);if(k1==0);while(!k1);t=3;beep=1;delay(500);beep=0;}
                             if(k4==0){delay(5);if(k1==0);while(!k1);t=4;beep=1;delay(500);beep=0;}
                            if(k5==0){delay(5);if(k1==0);while(!k1);t=5;beep=1;delay(500);beep=0;}
                            if(k6==0){delay(5);if(k1==0);while(!k1);t=6;beep=1;delay(500);beep=0;}
                            if(k7==0){delay(5);if(k1==0);while(!k1);t=7;beep=1;delay(500);beep=0;}
                            if(k8==0){delay(5);if(k1==0);while(!k1);t=8;beep=1;delay(500);beep=0;}
                            }
      
       if(k==0)
       {
              Timer();//中斷定時(shí)器打開
              delay(10);
              while(!k);      
              while(1)
              {
                     dis();
                     m=0;
                     n=0;
                     if(second==29){beep=1;delay(500);beep=0;}
                     
                     if(second==0){
                                                  TR0=0;n=1;
                                                 if(k1==0){delay(5);if(k1==0);while(!k1);t=1;beep=1;delay(500);beep=0;}       //   違規(guī)搶答顯示號(hào)碼報(bào)警
                                                 if(k2==0){delay(5);if(k1==0);while(!k1);t=2;beep=1;delay(500);beep=0;}
                                                  if(k3==0){delay(5);if(k1==0);while(!k1);t=3;beep=1;delay(500);beep=0;}
                                                   if(k4==0){delay(5);if(k1==0);while(!k1);t=4;beep=1;delay(500);beep=0;}
                                                   if(k5==0){delay(5);if(k1==0);while(!k1);t=5;beep=1;delay(500);beep=0;}
                                                   if(k6==0){delay(5);if(k1==0);while(!k1);t=6;beep=1;delay(500);beep=0;}
                                                    if(k7==0){delay(5);if(k1==0);while(!k1);t=7;beep=1;delay(500);beep=0;}
                                                    if(k8==0) {delay(5);if(k1==0);while(!k1);t=8;beep=1;delay(500);beep=0;}
                                           if(k==0)
                                                 {beep=1;delay(500);beep=0;second=29;TR0=1;m=1;}
                                            }//如果再次按下開始按鈕,蜂鳴器響0。5秒,定時(shí)器打開,從29開始倒計(jì)時(shí)
                     if(n==0)
                     {
                      if(k1==0) {delay(5);if(k1==0);while(!k1);t=1;}   //正常搶答顯示號(hào)碼
              elseif(k2==0) {delay(5);if(k2==0);while(!k2);t=2;}
              elseif(k3==0) {delay(5);if(k3==0);while(!k2);t=3;}
              elseif(k4==0) {delay(5);if(k4==0);while(!k2);t=4;}
              elseif(k5==0) {delay(5);if(k5==0);while(!k2);t=5;}
              elseif(k6==0) {delay(5);if(k6==0);while(!k2);t=6;}
              elseif(k7==0) {delay(5);if(k7==0);while(!k2);t=7;}
              elseif(k8==0) {delay(5);if(k8==0);while(!k2);t=8;}
              elseif(k==0)  {delay(5);if(k==0);while(!k);t=0;i=0;second=29;beep=1;delay(500);beep=0;TR0=1;}//從新開始,從新啟動(dòng)。
                     }
       while(t)
                     {
                            if(m==0)//開關(guān),保證程序只執(zhí)行一次
                            {
                                   switch(t)
                                   {
                                          case1:
                                                 {
                                                        TR0=0;i=1;second=0;beep=1;delay(500);beep=0;
                                                        a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;//有選手搶答時(shí)顯示選手號(hào)碼蜂鳴器響,時(shí)間為0,ti對(duì)應(yīng)
                                                 }
                                          case2:
                                                 {
                                                        TR0=0;i=2;second=0;beep=1;delay(500);beep=0;
                                                        a2=0;a1=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
                                                 }
                                          case3:
                                                 {
                                                        TR0=0;i=3;second=0;beep=1;delay(500);beep=0;
                                                        a3=0;a1=1;a2=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
                                                 }
                                          case4:
                                                 {
                                                        TR0=0;i=4;second=0;beep=1;delay(500);beep=0;
                                                        a4=0;a1=1;a2=1;a3=1;a5=1;a6=1;a7=1;a8=1;m=1;break;
                                                 }
                                          case5:
                                                 {
                                                        TR0=0;i=5;second=0;beep=1;delay(500);beep=0;
                                                        a5=0;a1=1;a2=1;a3=1;a4=1;a6=1;a7=1;a8=1;m=1;break;
                                                 }
                                          case6:
                                                 {
                                                        TR0=0;i=6;second=0;beep=1;delay(500);beep=0;
                                                        a6=0;a1=1;a2=1;a3=1;a4=1;a5=1;a7=1;a8=1;m=1;break;
                                                 }
                                          case7:
                                                 {
                                                        TR0=0;i=7;second=0;beep=1;delay(500);beep=0;
                                                        a7=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a8=1;m=1;break;
                                                 }
                                          case8:
                                                 {
                                                        TR0=0;i=8;second=0;beep=1;delay(500);beep=0;
                                                        a8=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;m=1;break;
                                                 }
                                   }
                            }
                     
                     
              if(a1==0)//選手1的分?jǐn)?shù)
              {      
              
              
              second=score1;
                     dis();
                         if(m1==0){delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score1+=5;}
           else if(m2==0){delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score1-=5;}
                     dis();
              }
       elseif(a2==0)
              {   second=score2;
                     dis();
                            if(m1==0){delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score2+=5;}
                 else if(m2==0){delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score2-=5;}
                     dis();            
              }
       elseif(a3==0)
              {     second=score3;
                     dis();
                            if(m1==0){delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score3+=5;}
                 else if(m2==0){delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score3-=5;}
                     second=score3;
                     dis();
              }
       elseif(a4==0)
              {
                     second=score4;
                     dis();
                            if(m1==0){delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score4+=5;}
                 else if(m2==0){delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score4-=5;}
                     second=score4;
                     dis();
              }
       elseif(a5==0)
              {
                     second=score5;
                     dis();
                            if(m1==0){delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score5+=5;}
                 else if(m2==0){delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score5-=5;}
                     second=score5;
                     dis();
              }
       elseif(a6==0)
              {
                     second=score6;
                     dis();
                            if(m1==0){delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score6+=5;}
                 else if(m2==0){delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score6-=5;}
                     second=score6;
                     dis();
              }
       elseif(a7==0)
              {
                     second=score7;
                     dis();
                            if(m1==0){delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score7+=5;}
                 else if(m2==0){delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score7-=5;}
                     second=score7;
                     dis();
              }
       elseif(a8==0)
              {
                     second=score8;
                     dis();
                            if(m1==0){delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score8+=5;}
                 else if(m2==0){delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score8-=5;}
                     second=score8;
                     dis();
              }
                     
                     if(k==0){i=0;t=0;second=29;beep=1;delay(500);beep=0;TR0=1;}
                     while(!k);
              
                     }            
                     
              }
}
}

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品乱码久久久久久按摩 | 91亚洲精| 草b视频| 九色网址| 在线电影日韩 | 国产一区二区三区四区三区四 | 欧美午夜精品理论片a级按摩 | 久久久久无码国产精品一区 | 99资源站 | 麻豆久久久 | 亚洲视频中文字幕 | 欧洲成人午夜免费大片 | 久久av一区二区三区 | 黄色在线免费看 | av网址在线播放 | 欧美精品一区二区免费 | 一级国产精品一级国产精品片 | 日韩欧美理论片 | 国产在线一区观看 | 911影院 | 精品国产一区二区久久 | 日本福利在线 | 一级a性色生活片久久毛片波多野 | 久久99视频免费观看 | 久久99精品久久久水蜜桃 | av在线免费看网址 | 精品亚洲一区二区三区 | 最新中文在线视频 | 韩国理论电影在线 | a黄视频 | 国产一级片精品 | 中文字幕视频免费 | 中文精品一区二区 | 成人三级视频 | 亚洲一区高清 | 免费国产视频 | 欧美成年黄网站色视频 | 午夜男人免费视频 | 色婷婷精品国产一区二区三区 | 麻豆一区二区三区精品视频 | 亚洲国产日韩一区 |