色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 關于MCS-51單片機實現PWM的方法

          關于MCS-51單片機實現PWM的方法

          作者: 時間:2016-11-23 來源:網絡 收藏
          關于MCS-51單片機實現PWM的方法
          PWM是“脈沖寬度調制”的意思。
          PWM實際上是在單片機的某個引腳輸出一系列的矩形波,其周期一般是固定的;而其高電平、低電平所占用的時間,是可以受控調整的。高電平、低電平所占用的時間之比,稱為占空比,其值為0~1之間。PWM的應用很廣,簡單的說,它可以控制燈光的亮度、可以控制直流電機的轉速,甚至還可以輸出語音信號。
          新型的單片機,往往都含有硬件的PWM模塊,編寫程序就很簡單;而老式的MCS-51系列,就不具備這個條件。
          其實,在沒有PWM硬件的單片機上實現PWM,也并不難,只需一個定時器,令其工作在中斷方式即可。下面以網上的一個題目為例,說明實現PWM方法。
          題目鏈接:http://zhidao.baidu.com/question/170790790.html?push=core
          題目:AT89C52單片機輸出可調PWM波。
          要求:
          1。單片機的晶振是12MHz,輸出周期為1s。
          2。用兩個開關控制占空比的增加和減少,分20等級。針對這個題目,做而論道設計了一個簡單的實驗電路:
           在P2口的8條線輸出PWM波形;
           在/INT1、/INT0外接了兩個按鍵,用來調整占空比;
           在P0口外接了兩個BCD數碼顯示器,用來顯示當前的占空比的等級。
           實驗的時候,可以使用示波器來觀察P2口輸出的波形。
           如果把PWM波形的頻率提高,也可以用LED觀察到漸亮漸暗的效果,目前看,只是閃爍的時間發(fā)生變化。

          //程序如下:
          //==========================================
          #include
          unsignedinta,b;
          //------------------------------------------
          voidmain()
          {
          TMOD=0x01;//T0定時方式1
          TH0=(65536-50000)/256;//50ms@12MHz
          TL0=(65536-50000)%256;
          TR0=1;ET0=1;
          EX0=1;EX1=1;
          IT0=1;IT1=1;
          EA=1;a=0;
          b=10;
          while(1);
          }
          //------------------------------------------
          voidtime0()interrupt1
          {
          TL0=(65536-50000)%256;
          TH0=(65536-50000)/256;//50ms@12MHz
          a++;
          if(a==20)a=0;//在這里調整周期.
          if(a<b)P2=0xff;//在這里調整占空比.
          elseP2=0x00;
          P0=((b/10)<<4)+b%10;//顯示占空比等級
          }
          //------------------------------------------
          voidX0_INT()interrupt0
          {
          b++;
          if(b>19)b=19;//占空比等級最大為19
          }
          //------------------------------------------
          voidX1_INT()interrupt2
          {
          b--;
          if(b<1)b=1;//占空比等級最小為1.
          }
          //==========================================


          關鍵詞: MCS-51單片機PW

          評論


          相關推薦

          技術專區(qū)

          關閉