<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    一個51產生PWM的演示程序

    發布時間:2016-9-13 11:19    發布者:designapp
    關鍵詞: PWM , 51
      這是一個51產生PWM的演示程序
      其中P1.3 P1.4是兩個輸出,這個程序比較匆忙,沒有嚴格驗證,可能有錯,如有錯誤請指正。
      /*****************************************************************************
      * 程序名稱:PWM占空比調整演示程序 *
      * 編寫時間:2005.9.15 23:30分 *
      * 程序版本:1.0 *
      *
      * *
      ******************************************************************************
      *程序思路說明: *
      * *
      *關于頻率和占空比的確定,對于12M晶振,假定PWM輸出頻率為1KHZ,這樣定時中斷次數 *
      *設定為C=10,即0.01MS中斷一次,則TH0=FF,TL0=F6;由于設定中斷時間為0.01ms,這樣*
      *可以設定占空比可從1-100變化。即0.01ms*100=1ms *
      ******************************************************************************/
      #i nclude
      #define uchar unsigned char
      /*****************************************************************************
      * TH0和TL0是計數器0的高8位和低8位計數器,計算辦法:TL0=(65536-C)%256; *
      * TH0=(65536-C)/256,其中C為所要計數的次數即多長時間產生一次中斷;TMOD是計數器*
      * 工作模式選擇,0X01表示選用模式1,它有16位計數器,最大計數脈沖為65536,最長時 *
      * 間為1ms*65536=65.536ms *
      ******************************************************************************/
      #define V_TH0 0XFF
      #define V_TL0 0XF6
      #define V_TMOD 0X01
      void init_sys(void); /*系統初始化函數*/
      void Delay5Ms(void);
      unsigned char ZKB1,ZKB2;
      void main (void)
      {
      init_sys();
      ZKB1=40; /*占空比初始值設定*/
      ZKB2=70; /*占空比初始值設定*/
      while(1)
      {
      if (!P1_1) //如果按了+鍵,增加占空比
      {
      Delay5Ms();
      if (!P1_1)
      {
      ZKB1++;
      ZKB2=100-ZKB1;
      }
      }
      if (!P1_2) //如果按了-鍵,減少占空比
      {
      Delay5Ms();
      if (!P1_2)
      {
      ZKB1--;
      ZKB2=100-ZKB1;
      }
      }
      /*對占空比值限定范圍*/
      if (ZKB1>99) ZKB1=1;
      if (ZKB1=100) click="0";
      if (click<=ZKB1) /*當小于占空比值時輸出低電平,高于時是高電平,從而實現占空比的調整*/
      P1_3=0;
      else
      P1_3=1;
      if (click<=ZKB2)
      P1_4=0;
      else
      P1_4=1;
      }
    本文地址:http://www.portaltwn.com/thread-173690-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷