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

          新聞中心

          8位led呼吸程序代碼

          作者: 時(shí)間:2012-08-06 來(lái)源:網(wǎng)絡(luò) 收藏
          前幾天從視頻上看到一個(gè)的程序,看到自己筆記本上的led呼吸燈,感覺(jué)他們的算法要求差不多,于是寫(xiě)下一下程序,我也得瑟一下,算是原創(chuàng)吧。有不正之處或者是有需要優(yōu)化之處歡迎大家批評(píng)指正,相互學(xué)習(xí)(代碼中有138譯碼器的操作,已注釋?zhuān)琸ingst的單片機(jī)開(kāi)發(fā)板可直接實(shí)現(xiàn))
          #includereg51.h>
          #define uchar unsigned char
          #define N 2 //定義的呼吸的速率
          #define T 700 //定義PWM的周期
          sbit ENLED = P1^4;//138譯碼器
          sbit ADDR0 = P1^0;//138譯碼器
          sbit ADDR1 = P1^1;//138譯碼器
          sbit ADDR2 = P1^2;//138譯碼器
          sbit ADDR3 = P1^3;//138譯碼器
          sbit led0=P0^0;
          sbit led1=P0^1;
          sbit led2=P0^2;
          sbit led3=P0^3;
          sbit led4=P0^4;
          sbit led5=P0^5;
          sbit led6=P0^6;
          sbit led7=P0^7;
          void pwm(int x)
          {
          while(x--);//延時(shí)函數(shù)
          }
          void main()
          {
          int t=0,i=0;
          char f=0;
          ENLED = 0;ADDR3 = 1; 譯碼器的打開(kāi)
          ADDR0 = 0;ADDR1 = 1;ADDR2 = 1; 譯碼器的操作11111011
          while(1)
          {
          if(i=800)
          {
          i++;
          led0=0;
          pwm(t);//Toff,亮的時(shí)間
          led0=1;
          pwm(T-t);//Ton,暗的時(shí)間
          if(!f) t+=N+1;//亮速率較快,模擬呼吸
          else t-=N;//暗速率較慢
          if(t>T)
          {
          f=1;
          t=T;
          }//超過(guò)最大值時(shí),返回最大值,此時(shí)燈滅
          if(t0)
          {
          f=0;
          t=0;
          }//超過(guò)最小值時(shí),返回最小值,此時(shí)燈亮 以后的程序不再注釋。
          }
          if(i>=800i=1600)
          {
          i++;
          led1=0;
          pwm(t);
          led1=1;
          pwm(T-t);
          if(!f) t+=N+1;
          else t-=N;
          if(t>T)
          {
          f=1;
          t=T;
          }
          if(t0)
          {
          f=0;
          t=0;
          }
          }
          if(i>1600i2400)
          {
          i++;
          led2=0;
          pwm(t);
          led2=1;
          pwm(T-t);
          if(!f) t+=N+1;
          else t-=N;
          if(t>T)
          {
          f=1;
          t=T;
          }
          if(t0)
          {
          f=0;
          t=0;
          }
          }

          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: 8位led 呼吸程序 水滴掉落

          評(píng)論


          技術(shù)專(zhuān)區(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); })();