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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于AT89C52單片機(jī)的交通燈C語言程序

          基于AT89C52單片機(jī)的交通燈C語言程序

          作者: 時(shí)間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
          如圖,簡易交通燈。
          有四個(gè)狀態(tài)0,1,2,3
          數(shù)碼管為2位7段共陽數(shù)碼管,可以通過修改i,j的值進(jìn)而修改倒計(jì)時(shí)的長短。
          不當(dāng)?shù)胤?,敬?qǐng)批評(píng)指正!

          圖一:十字路口交通燈

          圖二:狀態(tài)0
          綠燈:0x42
          紅燈:0xbd

          圖三:狀態(tài)1
          綠燈:0x25
          紅燈:0xda

          圖四:狀態(tài)2
          綠燈:0x90
          紅燈:0x6f

          圖五:狀態(tài)3
          綠燈:0x2c
          紅燈:0xd3


          #include
          #include
          #define uint unsigned int
          #define uchar unsigned char
          sbit ge=P0^6;
          sbit shi=P0^7;
          sbit d0=P0^0;
          sbit d1=P0^1;
          sbit d2=P0^2;
          void delay(uint z)
          {
          uint x,y;
          for(x=z;x>0;x--)
          for(y=113;y>0;y--);
          }
          void shu0()
          {
          d0=0;
          d1=0;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=1;
          d2=0;
          delay(1);
          d0=0;
          d1=0;
          d2=1;
          delay(1);
          d0=1;
          d1=0;
          d2=1;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void shu1()
          {
          d0=1;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void shu2()
          {
          d0=0;
          d1=0;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=0;
          delay(1);
          d0=1;
          d1=1;
          d2=0;
          delay(1);
          d0=0;
          d1=0;
          d2=1;
          delay(1);
          d0=0;
          d1=1;
          d2=1;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void shu3()
          {
          d0=0;
          d1=0;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=1;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=1;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void shu4()
          {
          d0=1;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=1;
          delay(1);
          d0=0;
          d1=1;
          d2=1;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void shu5()
          {
          d0=0;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=1;
          delay(1);
          d0=0;
          d1=1;
          d2=1;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void shu6()
          {
          d0=0;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=1;
          d2=0;
          delay(1);
          d0=0;
          d1=0;
          d2=1;
          delay(1);
          d0=1;
          d1=0;
          d2=1;
          delay(1);
          d0=0;
          d1=1;
          d2=1;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void shu7()
          {
          d0=0;
          d1=0;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void shu8()
          {
          d0=0;
          d1=0;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=1;
          d2=0;
          delay(1);
          d0=0;
          d1=0;
          d2=1;
          delay(1);
          d0=1;
          d1=0;
          d2=1;
          delay(1);
          d0=0;
          d1=1;
          d2=1;
          delay(1);
          }
          void shu9()
          {
          d0=0;
          d1=0;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=0;
          delay(1);
          d0=0;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=1;
          d2=0;
          delay(1);
          d0=1;
          d1=0;
          d2=1;
          delay(1);
          d0=0;
          d1=1;
          d2=1;
          delay(1);
          _nop_();
          _nop_();
          _nop_();
          delay(1);
          }
          void display(uchar p)
          {
          switch(p)
          {
          case 0:shu0();break;
          case 1:shu1();break;
          case 2:shu2();break;
          case 3:shu3();break;
          case 4:shu4();break;
          case 5:shu5();break;
          case 6:shu6();break;
          case 7:shu7();break;
          case 8:shu8();break;
          case 9:shu9();break;
          }
          }
          void chushihua()
          {
          ge=0;
          shi=0;
          }
          void main()
          {
          uchar p,m,n,i,j;
          chushihua();
          i=9; //狀態(tài)0
          j=3;
          while(1)
          {
          n=76;
          while(n)
          {
          n--;
          P1=0x42;
          P2=0xbd;
          P3=0x00;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          if(i==0x00)
          {
          i=0x0a;
          j=j-1;
          }
          while(j==0x00&&i<=0x03)
          {
          while(1)
          {
          m=40;
          while(m)
          {
          m--;
          P1=0x00;
          P2=0xbd;
          P3=0x42;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          p=40;
          while(p)
          {
          p--;
          P1=0x00;
          P2=0xbd;
          P3=0x00;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          if(j==0x00&&i==0x00)
          {
          i=9;//狀態(tài)1
          j=2;
          while(1)
          {
          n=76;
          while(n)
          {
          n--;
          P1=0x25;
          P2=0xda;
          P3=0x00;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          if(i==0x00)
          {
          i=0x0a;
          j=j-1;
          }
          while(j==0x00&&i<=0x03)
          {
          while(1)
          {
          m=40;
          while(m)
          {
          m--;
          P1=0x00;
          P2=0xda;
          P3=0x25;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          p=40;
          while(p)
          {
          p--;
          P1=0x00;
          P2=0xda;
          P3=0x00;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          if(j==0x00&&i==0x00)
          {
          i=9; //狀態(tài)2
          j=3;
          while(1)
          {
          n=76;
          while(n)
          {
          n--;
          P1=0x90;
          P2=0x6f;
          P3=0x00;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          if(i==0x00)
          {
          i=0x0a;
          j=j-1;
          }
          while(j==0x00&&i<=0x03)
          {
          while(1)
          {
          m=40;
          while(m)
          {
          m--;
          P1=0x00;
          P2=0x6f;
          P3=0x90;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          p=40;
          while(p)
          {
          p--;
          P1=0x00;
          P2=0x6f;
          P3=0x00;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          if(j==0x00&&i==0x00)
          {
          i=9;//狀態(tài)3
          j=2;
          while(1)
          {
          n=76;
          while(n)
          {
          n--;
          P1=0x2c;
          P2=0xd3;
          P3=0x00;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          if(i==0x00)
          {
          i=0x0a;
          j=j-1;
          }
          while(j==0x00&&i<=0x03)
          {
          while(1)
          {
          m=40;
          while(m)
          {
          m--;
          P1=0x00;
          P2=0xd3;
          P3=0x2c;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          p=40;
          while(p)
          {
          p--;
          P1=0x00;
          P2=0xd3;
          P3=0x00;
          ge=1;
          display(i);
          ge=0;
          shi=1;
          display(j);
          shi=0;
          }
          if(j==0x00&&i==0x00)
          {
          return;
          }
          i--;
          }
          }
          i--;
          }
          }
          i--;
          }
          }
          i--;
          }
          }
          i--;
          }
          }
          i--;
          }
          }
          i--;
          }
          }
          i--;
          }
          }


          關(guān)鍵詞: AT89C52單片機(jī)交通

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();