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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 直流電動(dòng)機(jī)的調(diào)速 用單片機(jī)產(chǎn)生PWM控制

          直流電動(dòng)機(jī)的調(diào)速 用單片機(jī)產(chǎn)生PWM控制

          作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏

          C語言代碼:


          #include
          #define uchar unsigned char
          #define uint unsigned int

          sbit K5=P1^4;
          sbit K6=P1^5;
          sbit PWM1=P1^0;
          sbit PWM2=P1^1;
          sbit FMQ=P3^6;


          uchar ZKB1,ZKB2;

          void delaynms(uint aa)
          {
          uchar bb;
          while(aa--)
          {
          for(bb=0;bb<115;bb++) //1ms基準(zhǔn)延時(shí)程序
          {
          ;
          }
          }

          }

          void delay500us(void)
          {
          int j;
          for(j=0;j<57;j++)
          {
          ;
          }
          }

          void beep(void)
          {
          uchar t;
          for(t=0;t<100;t++)
          {
          delay500us();
          FMQ=!FMQ; //產(chǎn)生脈沖
          }
          FMQ=1; //關(guān)閉蜂鳴器
          delaynms(300);
          }


          void main(void)
          {
          TR0=0; //關(guān)閉定時(shí)器0
          TMOD=0x01; //定時(shí)器0,工作方式1
          TH0=(65526-100)/256;
          TL0=(65526-100)%256; //100us即0.01ms中斷一次
          EA=1; //開總中斷
          ET0=1; //開定時(shí)器0中斷
          TR0=1; //啟動(dòng)定時(shí)器T0
          ZKB1=50; //占空比初值設(shè)定
          ZKB2=50; //占空比初值設(shè)定
          while(1)
          {
          if(!K5)
          {
          delaynms(15); //消抖
          if(!K5) //確定按鍵按下
          {
          beep();
          ZKB1++; //增加ZKB1
          ZKB2=100-ZKB1; //相應(yīng)的ZKB2就減少
          }
          }
          if(!K6)
          {
          delaynms(15); //消抖
          if(!K6) //確定按鍵按下
          {
          beep();
          ZKB1--; //減少ZKB1
          ZKB2=100-ZKB1; //相應(yīng)的ZKB2增加
          }
          }
          if(ZKB1>99)
          ZKB1=1;
          if(ZKB1<1)
          ZKB1=99;

          }
          }


          void time0(void) interrupt 1
          {
          static uchar N=0;
          TH0=(65526-100)/256;
          TL0=(65526-100)%256;
          N++;
          if(N>100)
          N=0;
          if(N<=ZKB1)
          PWM1=0;
          else
          PWM1=1;
          if(N<=ZKB2)
          PWM2=0;
          else
          PWM2=1;

          }


          //顯現(xiàn):電機(jī)轉(zhuǎn)速到最高后,也就是N為1或99時(shí),再按一下,就變到99或1,
          //電機(jī)反方向旋轉(zhuǎn)以最高速度


          上一頁 1 2 下一頁

          評(píng)論


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