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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 直流電機(jī)的PWM速度控制程序

          直流電機(jī)的PWM速度控制程序

          作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
          * =======直流電機(jī)PWM速度控制程序======== */
          /*晶振采用11.0592M,產(chǎn)生的PWM的頻率約為91Hz */
          #include
          #include
          #define uchar unsigned char
          #define uint unsigned int
          sbit en1=P2^0; /* L298的Enable A */
          sbit en2=P2^1; /* L298的Enable B */
          sbit s1=P2^2; /* L298的Input 1 */
          sbit s2=P2^3; /* L298的Input 2 */
          sbit s3=P2^4; /* L298的Input 3 */
          sbit s4=P2^5; /* L298的Input 4 */
          uchar t=0; /* 中斷計(jì)數(shù)器 */
          uchar m1=0; /* 電機(jī)1速度值 */
          uchar m2=0; /* 電機(jī)2速度值 */
          uchar tmp1,tmp2; /* 電機(jī)當(dāng)前速度值 */
          /* 電機(jī)控制函數(shù) index-電機(jī)號(hào)(1,2); speed-電機(jī)速度(-100—100) */
          voidmotor(uchar index, char speed)
          {
          if(speed>=-100 && speed<=100)
          {
          if(index==1) /* 電機(jī)1的處理 */
          {
          m1=abs(speed); /* 取速度的絕對(duì)值 */
          if(speed<0) /* 速度值為負(fù)則反轉(zhuǎn) */
          {
          s1=0;
          s2=1;
          }
          else /* 不為負(fù)數(shù)則正轉(zhuǎn) */
          {
          s1=1;
          s2=0;
          }
          }
          if(index==2) /* 電機(jī)2的處理 */
          {
          m2=abs(speed); /* 電機(jī)2的速度控制 */
          if(speed<0) /* 電機(jī)2的方向控制 */
          {
          s3=0;
          s4=1;
          }
          else
          {
          s3=1;
          s4=0;
          }
          }
          }
          }
          void delay(uint j) /* 簡(jiǎn)易延時(shí)函數(shù) */
          {
          for(j;j>0;j--);
          }
          void main()
          {
          char i;
          TMOD=0x02; /* 設(shè)定T0的工作模式為2 */
          TH0=0x9B; /* 裝入定時(shí)器的初值 */
          TL0=0x9B;
          EA=1; /* 開中斷 */
          ET0=1; /* 定時(shí)器0允許中斷 */
          TR0=1; /* 啟動(dòng)定時(shí)器0 */
          while(1) /*電機(jī)實(shí)際控制演示*/
          {
          for(i=0;i<=100;i++) /* 正轉(zhuǎn)加速 */
          {
          motor(1,i);
          motor(2,i);
          delay(5000);
          }
          for(i=100;i>0;i--) /* 正轉(zhuǎn)減速 */
          {
          motor(1,i);
          motor(2,i);
          delay(5000);
          }
          for(i=0;i<=100;i++) /* 反轉(zhuǎn)加速 */
          {
          motor(1,-i);
          motor(2,-i);
          delay(5000);
          }
          for(i=100;i>0;i--) /* 反轉(zhuǎn)減速 */
          {
          motor(1,-i);
          motor(2,-i);
          delay(5000);
          }
          }
          }
          void timer0() interrupt 1 /* T0中斷服務(wù)程序 */
          {
          if(t==0) /* 1個(gè)PWM周期完成后才會(huì)接受新數(shù)值 */
          {
          tmp1=m1;
          tmp2=m2;
          }
          if(tif(tt++;
          if(t>=100) t=0; /* 1個(gè)PWM信號(hào)由100次中斷產(chǎn)生 */
          }


          關(guān)鍵詞: 直流電機(jī)PWM速度控

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