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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 步進電機正反轉可調速度

          步進電機正反轉可調速度

          作者: 時間:2016-11-18 來源:網(wǎng)絡 收藏
          //步進電機正反轉可調速度

          //================================
          //P3^0;正反轉
          //P3^1;增速
          //P3^2;減速
          //P3^3;停止

          #include
          #define uint unsigned int
          #define uchar unsigned char
          sbit rl=P3^0;//正反轉
          sbit add=P3^1;//增速
          sbit sub=P3^2;//減速
          sbit stop=P3^3;//停止
          uchar num1,num2,flag1,flag2,flag3,n;
          uchar code table1[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};//正轉表
          uchar code table2[]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};//反轉表
          //電機轉動表
          void delay(uint z);
          void keyscan();
          void main()
          { uchar i;
          n=50;
          TMOD=0x01;
          TH0=(65536-10000)/256;
          TL0=(65536-10000)%256;
          ET0=1;
          EA=1;
          TR0=1;
          while(1)
          {
          keyscan();
          if(!flag3)
          { if(flag1==1)
          {flag1=0;
          if(flag2==0)
          P1=table1[i];
          else
          {P1=0;
          P1=table2[i];}
          i++;
          if(i>8)
          i=0;
          }
          }
          }

          本文引用地址:http://www.ex-cimer.com/article/201611/315949.htm

          }
          //========================
          void delay(uint z)
          {
          uint x;
          uchar y;
          for(x=0;xfor(y=0;y<100;y++);
          }
          //====================
          void timer0() interrupt 1
          {
          TH0=(65536-10000)/256;
          TL0=(65536-10000)%256;
          num1++;
          if(num1==n)
          {num1=0;flag1=1;}

          }

          //================
          void keyscan()
          {
          if(rl==0)
          delay(10);
          if(rl==0)
          {
          while(!rl);
          flag2++;
          flag3=0;
          if(flag2>1)
          flag2=0;
          }
          if(add==0)
          delay(10);
          if(add==0)
          {
          while(!add);
          n=n++;
          if(n>80)
          n=80;
          }
          if(sub==0)
          delay(10);
          if(sub==0)
          {
          while(!sub);
          n=n--;
          if(n<10)
          n=10;
          }
          if(stop==0)
          delay(10);
          if(stop==0)
          {
          while(!stop);
          P1=0;
          flag3=1;
          }
          }



          評論


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