<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 八路搶答器程序和仿真

          八路搶答器程序和仿真

          作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
          一 性能指標要求:

          1、 需要自己設計電路并焊接電路板。

          本文引用地址:http://www.ex-cimer.com/article/201611/321038.htm

          2、基本要求:有一個主持人控制開關和6路搶答按扭,當主持人允許搶答時才能進行搶答操作,并用一個數(shù)碼管顯示搶答選手的號碼,同時其他選手不能再搶答。

          3、當主持人允許搶答后倒計時5秒時間,在這5秒內(nèi)搶答有效,過后就不能進行搶答了。

          4、 電路上要加個蜂鳴器的電路,當有選手搶答時蜂鳴器響一下。

          5、當有選手搶答后,進行倒計時20秒作為選手回答問題時間,用兩個數(shù)碼管顯示,倒計時時間到時有聲光提示。

          6、 畫電路板時要增加下載接口,方便調(diào)試程序。

          #include
          #define uchar unsigned char
          uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
          uchar code wei[4]={0xef,0xf7,0xfb,0xfd};
          uchar fen=0,miao=0,qd=0;
          uchar flag=0,temp=0,flag2=0,tt=0,b=31,bb=31;
          sbit d0=P1^0;
          sbit d1=P1^1;
          sbit feng=P1^3;
          sbit deng=P1^4;
          void delay(uchar z)
          {
          uchar i,j;
          for(i=z;i>0;i--)
          for(j=110;j>0;j--);
          }
          void delay2(uchar z)
          {
          uchar i,j;
          for(i=z;i>0;i--)
          for(j=30;j>0;j--);
          }
          fengming()
          {
          feng=1;
          delay2(1);
          feng=0;
          delay2(1);
          feng=1;
          delay2(1);
          feng=0;
          delay2(1);

          }
          void time01()//定時器相關
          {
          EA=1;
          TR0=1;//啟動定時器0
          ET0=0;//開定時器0中斷
          TMOD=1;
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%6;//聲明:定時50毫秒

          }
          display(void)
          {
          P2=wei[0];
          P0=table[fen];
          delay(8);
          P2=wei[1];
          P0=table[miao];
          delay(8);
          P2=wei[3];
          P0=table[qd];
          delay(8);
          }
          qiangda(void)
          {
          P3=0xff;
          delay(15);
          if(P3!=0xff)
          {
          delay(5);
          if(P3!=0xff)
          {

          switch(P3)
          {
          case 0xfe: temp=1;break;
          case 0xfd: temp=2;break;
          case 0xfb: temp=3;break;
          case 0xf7: temp=4;break;
          case 0xef: temp=5;break;
          case 0xdf: temp=6;break;
          case 0xbf: temp=7;break;
          case 0x7f: temp=8;break;
          }
          }
          }
          return(temp);
          }
          daojishi()//30 miao
          {

          bb--;
          miao=bb;
          fen=bb/10;
          fengming();
          if(bb==0){ ET0=0;bb=31;feng=1;deng=1;delay(80);feng=0;}
          }
          inition()//初始化
          {
          fen=0,miao=0,qd=0;
          flag=1,temp=0,flag2=0,tt=0;deng=1;
          }
          d1pand()
          {
          if(d1==0)
          {
          delay(20);
          if(d1==0) b--;while(!d1)
          {
          bb=b;
          P2=wei[0];
          P0=table[bb/10];
          delay(5);
          P2=wei[1];
          P0=table[bb];
          delay(5);
          if(b<5) b=31;
          }
          }
          }
          d0pand()
          {
          if(d0==0)
          {
          delay(20);
          if(d0==0)
          {
          inition();
          while(!d0);
          }
          }
          }

          void main()
          {
          time01();

          while(1)
          {//fengming();
          feng=0;
          display();
          d1pand();
          d0pand();
          if(flag==1)
          {
          if(flag2==1){flag=0;}
          else//flag2=0
          {
          ET0=1;
          qd=qiangda();
          if(qd!=0)
          { flag2=1;tt=1;
          deng=0;feng=1;delay(80);feng=0;
          }


          }
          }


          }

          }

          void time0() interrupt 1
          {
          uchar a;
          TH0=(65536-50000)/256;
          TL0=(65536-50000)%6;
          a++;
          if(a ==0)
          {
          miao++;
          if(miao==6&&flag2==0){feng=1;;miao=0;flag2=1;delay(80);feng=0;ET0=0;}

          if(tt==1){
          daojishi();
          }

          }


          }




          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();