標(biāo)題: 51單片機(jī)控制步進(jìn)電機(jī)指定角度旋轉(zhuǎn)程序 [打印本頁(yè)]

作者: 閆明濤    時(shí)間: 2020-10-24 21:36
標(biāo)題: 51單片機(jī)控制步進(jìn)電機(jī)指定角度旋轉(zhuǎn)程序
本帖最后由 閆明濤 于 2020-10-26 16:06 編輯
  1. #include <reg52.h>
  2. unsigned long beats=0;
  3. void startmotor(unsigned long angle);
  4. void main()
  5. {
  6.         EA=1;
  7.         TMOD=0X01;
  8.         TH0=0XF8;//2ms
  9.         TL0=0XCD;
  10.         ET0=1;
  11.         TR0=1;
  12.         startmotor(360);
  13.         while(1);
  14. }
  15. void startmotor(unsigned long angle)
  16. {
  17.         EA=0;
  18.         beats=(angle*4076)/360;//防止因?yàn)橹袛鄬?dǎo)致計(jì)算錯(cuò)誤,因?yàn)橐院蟮闹袛嘀行枰褂玫絙eats
  19.         EA=1;
  20. }
  21. void InterruptTimer0() interrupt 1
  22. {
  23.         unsigned char tmp;
  24.         static unsigned char index=0;
  25.         unsigned char code beetcode[8]={0xe,0xc,0xd,0x9,0xb,0x3,0x7,0x6};//節(jié)拍對(duì)應(yīng)IO口代碼
  26.         TH0=0XF8;
  27.         TL0=0XCD;
  28.         if(beats!=0)
  29.         {
  30.                 tmp=P1&0xf0;
  31.                 tmp|=beetcode[index];
  32.                 P1=tmp;
  33.                 index++;
  34.                 if(index>=8)index=0;
  35.                 beats--;
  36.         }
  37.         else
  38.                 P1=P1|0X0F;//關(guān)閉所有相位
  39. }

  40. 電機(jī)引腳接P1^0~P1^3;
  41. 主函數(shù)調(diào)用void startmotor(unsigned long angle);即可設(shè)置指定角度旋轉(zhuǎn)精度為1度
復(fù)制代碼


步進(jìn)電機(jī)控制角度旋轉(zhuǎn).rar

18.06 KB, 下載次數(shù): 37, 下載積分: 黑幣 -5


作者: admin    時(shí)間: 2020-10-25 02:51
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1