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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機檢測交流電掉電程序應(yīng)用(RGB控制)

          單片機檢測交流電掉電程序應(yīng)用(RGB控制)

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏

          void led1_on()

          {

          GP0=1;

          if(g!=0&&b==5)

          {

          g--;

          r++;

          }

          if(r!=0&&g==5)

          {

          r--;

          b++;

          }

          if(b!=0&&r==5)

          {

          b--;

          g++;

          }

          if(g+r+b!=50)

          {

          g=40;

          r=5;

          b=5;

          }

          for(a=0;a<30;a++)

          {

          if(g!=0) //綠色漸變

          {

          GP1=0;

          timer1(g);

          GP1=1;

          }

          if(r!=0) //紅色漸變

          {

          GP2=0;

          timer1(r);

          GP2=1;

          }

          if(b!=0) //藍色漸變

          {

          GP4=0;

          timer1(b);

          GP4=1;

          }

          }

          }

          void key_scan()

          {

          if(GP5==0)//按鍵按下

          {

          key2_time_cnt++;

          if(key2_time_cnt==TIME_MAX)

          {

          key_flag=1;

          }

          }

          else

          {

          key2_time_cnt=0;

          if(key_flag==1)

          {

          key_flag=0;

          num++;

          if(num>3)num=0;

          }

          }

          }

          void main()

          {

          TRIS=0b00110000;

          GP0=1;

          GP1=0;

          GP2=0;

          g=40;

          r=5;

          b=5;

          while(1)

          {

          key_scan();

          if(num==0)

          {

          led1_on();

          }

          else if(num==1)

          {

          GP0=1;//綠色亮

          GP1=0;
          GP4=0;

          }

          else if(num==2)

          {

          GP0=0;

          GP1=1;//紅色亮
          GP4=0;

          }

          else if(num==3)

          {

          GP0=0;

          GP1=0;
          GP4=1;//藍色亮

          }

          }

          }

          RGB函數(shù)構(gòu)造比較巧妙,不知道原創(chuàng)者是誰?不想多費唇舌。交流掉電檢測才是要說的重點,
          if()
          {}
          else
          {}
          格式,開始時,如果GP5口上有低電平出現(xiàn),對變量key2_time_cnt進行自加,當數(shù)值大于1000,(大概是12MS)左右,認為是交流電掉電了,讓斷電標志key_flag置1 ,當GP5口變?yōu)楦唠娖降臅r候,把key2_time_cnt清零,同時判斷斷電標志是否有效,如果有效,讓分檔變量num加1,如果有4種功能那么從0加到3就要歸零。此交流檢測函數(shù)簡單實用,可以放在主程序循環(huán)中,檢測掉電不會漏檔。如何在漸變中響應(yīng)交流檢測,就是利用檢測函數(shù)作為延時的循環(huán)主體。這樣既可以延時,又可以檢測IO口的變化。


          上一頁 1 2 下一頁

          評論


          技術(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); })();