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

          新聞中心

          EEPW首頁 > 光電顯示 > 設計應用 > PWM控制LED漸亮漸滅示例程序

          PWM控制LED漸亮漸滅示例程序

          作者: 時間:2013-04-24 來源:網絡 收藏
          /***********************************************************程序說明:利用定時器控制產生占空比可變的 PWM按S6,PWM值增加,則占空比減小,
          燈漸暗。 按S3,PWM值減小,則占空比增加, 燈漸亮。
          當PWM值增加到最大值或減小到最小值時,蜂鳴器將報警。
          ***********************************************************/#include reg51.h >
          #include intrins.h >sbitK1 =P3^2 ; //增加鍵
          sbitK2 =P3^3 ; //減少鍵
          sbitBEEP =P3^7 ; //蜂鳴器
          unsigned char PWM=0x7f ; //賦初值void Beep();
          void delayms(unsigned char ms);
          void delay(unsigned char t);/*********************************************************/
          void main()
          { P0=0xff;
          TMOD=0x21 ;
          TH0=0xfc ; //1ms延時常數 12M
          TL0=0x18 ; //頻率調節(jié) TH1=PWM ; //脈寬調節(jié)
          TL1=0 ; EA=1;
          ET0=1;
          ET1=1;

          TR0=1 ; while(1)
          {
          do{
          if(PWM!=0xff)
          {
          PWM++ ;
          delayms(10);
          }
          else
          Beep();
          }while(K1==0); do{
          if(PWM!=0x01)
          {
          PWM-- ;
          delayms(10);}
          else
          Beep() ;
          }while(K2==0);
          }
          }/*********************************************************/
          // 定時器0中斷服務程序.
          /*********************************************************/
          void timer0() interrupt 1
          {
          TR1=0 ;
          TH0=0xfc ;
          TL0=0x66 ;
          TH1=PWM ;
          TR1=1 ;
          P0=0x00 ; //啟動輸出
          }/*********************************************************/
          // 定時器1中斷服務程序
          /*********************************************************/
          void timer1() interrupt 3
          {
          TR1=0 ;
          P0=0xff ; //結束輸出
          }/*********************************************************/
          //蜂鳴器子程序
          /*********************************************************/void Beep()
          {
          unsigned char i;
          for (i=0;i100;i++)
          {
          delay(100);
          BEEP=!BEEP; //Beep取反
          }
          BEEP=1; //關閉蜂鳴器
          delayms(100);
          } /*********************************************************/
          // 延時子程序
          /*********************************************************/
          void delay(unsigned char t)
          {
          while(t--) ;
          }/*********************************************************/
          // 延時子程序
          /*********************************************************/
          void delayms(unsigned char ms) {
          unsigned char i ;
          while(ms--)
          {
          for(i = 0 ; i 120 ; i++) ;
          }
          }

          pwm相關文章:pwm是什么


          pwm相關文章:pwm原理


          蜂鳴器相關文章:蜂鳴器原理


          關鍵詞: PWM控制 LED 漸亮漸滅

          評論


          相關推薦

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