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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 機器人教程1:如何利用51單片機輸出PWM波

          機器人教程1:如何利用51單片機輸出PWM波

          作者: 時間:2016-12-01 來源:網絡 收藏

          /**************定時0中斷處理******************/

          void timer0_int() interrupt 1

          {

          TR0=0;//設置定時器初值期間,關閉定時器

          TH0=(65536-10)/256;

          TL0=(65536-10)%256;

          TR0=1;

          if(flag==1)//電機正轉

          {

          PWM1=0;

          time++;

          if(time{

          PWM2=1;

          }

          else

          PWM2=0;

          if(time>=100)

          {

          time=0;

          }

          }

          else //電機反轉

          {

          PWM2=0;

          time++;

          if(time{

          PWM1=1;

          }

          else

          PWM1=0;

          if(time>=100)

          {

          time=0;

          }

          }

          }

          5、利用單片機輸出PWM簡單控制小車直行

          相信通過上面的講解,大家已經能夠很好的撐握如何利用51單片機產生PWM波下面給出一個程序,通過單片機兩個I/O口輸出PWM波,讓小車直行。

          #include

          #define uint unsigned int

          #define uchar unsigned char

          sbit PWM1=P2^0;//接IN1控制正轉

          sbit PWM2=P2^1;//接IN2控制反轉

          sbit PWM3=P2^2;//接IN3控制正轉

          sbit PWM4=P2^3;//接IN4控制反轉

          sbit PWM5=P2^4;//接IN3控制正轉

          sbit PWM6=P2^5;//接IN4控制反轉

          sbit PWM7=P2^6;//接IN3控制正轉

          sbit PWM8=P2^7;//接IN4控制反轉

          uchar time;

          void main()

          {

          TMOD=0x01;//定時器0工作方式1

          TH0=0xff;//(65536-10)/256;//賦初值定時

          TL0=0xf7;//(65536-10)%256;//0.01ms

          EA=1;//開總中斷

          ET0=1;//開定時器0中斷

          TR0=1;//啟動定時器0

          while(1)

          {

          }

          }

          void delay(uint z)

          {

          uint x,y;

          for(x=z;x>0;x--)

          for(y=500;y>0;y--);

          }

          void tim0() interrupt 1

          {

          TR0=0;//賦初值時,關閉定時器

          TH0=0xff;//(65536-10)/256;//賦初值定時

          TL0=0xf7;//(65536-10)%256;//0.01ms

          TR0=1;//打開定時器

          time++;

          if(time>=100) time=0;//1khz

          PWM2=0;

          PWM4=0;

          if(time<=75) PWM1=1;

          else PWM1=0;

          if(time<=80) PWM3=1;

          else PWM3=0;

          PWM6=0;

          PWM8=0;

          if(time<=50) PWM5=1;

          else PWM5=0;

          if(time<=50) PWM7=1;

          else PWM7=0;

          }


          上一頁 1 2 3 下一頁

          評論


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