久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3761|回復: 2
打印 上一主題 下一主題
收起左側

51單片機按鍵控制步進電機先順時針轉動90度,定住2S,再逆時針轉90度

[復制鏈接]
跳轉到指定樓層
樓主
ID:255696 發表于 2018-2-11 11:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
想通過按一個按鍵,使步進電機先順時針轉動90度,在定住2S,再逆時針轉動90度。代碼方面應該怎么編?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:283667 發表于 2018-2-11 14:00 | 只看該作者
你說的應該是舵機吧,應該叫伺服電機吧?

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:155507 發表于 2018-2-11 14:25 | 只看該作者
  1. /*-----------------------------------------------
  2.   名稱:步進電機
  3.   內容:本程序用于測試4相步進電機常規驅動
  4.         使用1-2相勵磁
  5.         1-2相激勵功率增倍,步進角度減半,抖動減少
  6.         順序如下 a-ab-b-bc-c-cd-d-da   又稱4相8拍
  7. ------------------------------------------------*/

  8. #include <reg52.h>



  9. sbit A1=P1^0; //定義步進電機連接端口
  10. sbit B1=P1^1;
  11. sbit C1=P1^2;
  12. sbit D1=P1^3;


  13. #define Coil_AB1 {A1=1;B1=1;C1=0;D1=0;}//AB相通電,其他相斷電
  14. #define Coil_BC1 {A1=0;B1=1;C1=1;D1=0;}//BC相通電,其他相斷電
  15. #define Coil_CD1 {A1=0;B1=0;C1=1;D1=1;}//CD相通電,其他相斷電
  16. #define Coil_DA1 {A1=1;B1=0;C1=0;D1=1;}//D相通電,其他相斷電
  17. #define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通電,其他相斷電
  18. #define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通電,其他相斷電
  19. #define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通電,其他相斷電
  20. #define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通電,其他相斷電
  21. #define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部斷電

  22. unsigned char Speed;
  23. bit Flag;
  24. /*------------------------------------------------
  25. uS延時函數,含有輸入參數 unsigned char t,無返回值
  26. unsigned char 是定義無符號字符變量,其值的范圍是
  27. 0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
  28. 長度如下 T=tx2+5 uS
  29. ------------------------------------------------*/
  30. void DelayUs2x(unsigned char t)
  31. {   
  32.   while(--t);
  33. }
  34. /*------------------------------------------------
  35. mS延時函數,含有輸入參數 unsigned char t,無返回值
  36. unsigned char 是定義無符號字符變量,其值的范圍是
  37. 0~255 這里使用晶振12M,精確延時請使用匯編
  38. ------------------------------------------------*/
  39. void DelayMs(unsigned char t)
  40. {
  41.   
  42.   while(t--)
  43.   {
  44.     //大致延時1mS
  45.     DelayUs2x(245);
  46.     DelayUs2x(245);
  47.   }
  48. }
  49. /*------------------------------------------------
  50.                     主函數
  51. ------------------------------------------------*/
  52. main()
  53. {
  54.   unsigned int i=512;//旋轉一周時間

  55.   EA=1;          //全局中斷開
  56.   EX0=1;         //外部中斷0開
  57.   IT0=1;         //1表示邊沿觸發

  58.   Speed=10;
  59.   while(1){
  60.     Coil_OFF
  61.     while((i--)&&Flag)  //正向
  62.     {  Coil_A1      
  63.       DelayMs(Speed);
  64.       Coil_AB1                //遇到Coil_AB1  用{A1=1;B1=1;C1=0;D1=0;}代替
  65.       DelayMs(Speed);         //改變這個參數可以調整電機轉速 ,
  66.       //數字越小,轉速越大,力矩越小
  67.       Coil_B1      
  68.       DelayMs(Speed);
  69.       Coil_BC1
  70.       DelayMs(Speed);
  71.       Coil_C1      
  72.       DelayMs(Speed);
  73.       Coil_CD1
  74.       DelayMs(Speed);
  75.       Coil_D1      
  76.       DelayMs(Speed);
  77.       Coil_DA1
  78.       DelayMs(Speed);
  79.     }
  80.     Coil_OFF
  81.     i=512;
  82.     while((i--)&&(!Flag))//反向
  83.     {  
  84.       Coil_A1      
  85.       DelayMs(Speed);
  86.       Coil_DA1                //遇到Coil_AB1  用{A1=1;B1=1;C1=0;D1=0;}代替
  87.       DelayMs(Speed);         //改變這個參數可以調整電機轉速 ,
  88.       //數字越小,轉速越大,力矩越小
  89.       Coil_D1      
  90.       DelayMs(Speed);
  91.       Coil_CD1
  92.       DelayMs(Speed);
  93.       Coil_C1      
  94.       DelayMs(Speed);
  95.       Coil_BC1
  96.       DelayMs(Speed);
  97.       Coil_B1      
  98.       DelayMs(Speed);
  99.       Coil_AB1
  100.       DelayMs(Speed);
  101.     }
  102.   }
  103. }

  104. /*------------------------------------------------
  105.                 外部中斷程序
  106. ------------------------------------------------*/
  107. void ISR_INT0(void) interrupt 0
  108. {

  109.   if(!INT0)
  110.   {
  111.     DelayMs(10);//在此處可以添加去抖動程序,防止按鍵抖動造成錯誤
  112.     if(!INT0)
  113.     //while(!INT1);//等待按鍵釋放
  114.     {
  115.       Flag=!Flag;   
  116.     }
  117.   }
  118. }
復制代碼

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人av网站在线观看 | 欧美精品久久久久久久久老牛影院 | 四虎在线播放 | 综合久久亚洲 | 精品久久久久一区二区国产 | 国产激情一区二区三区 | 金莲网 | 少妇黄色| 国产特级毛片aaaaaa喷潮 | 欧美日韩一卡二卡 | 天天操天天摸天天干 | 中文在线一区 | 一区二区不卡视频 | 国产亚洲一区二区三区 | 手机在线一区二区三区 | 久www| 日韩精品视频一区二区三区 | 日韩欧美亚洲 | 91 在线| 久在线| 亚洲成人自拍 | 国产ts人妖系列高潮 | 欧美1级| 久久久国产一区二区三区 | 国产在线观看一区二区 | 久久久精品天堂 | 91久色 | 影音av | 中文字幕精品视频 | 亚洲男人网 | 欧美日韩三区 | 欧美日韩一| 午夜精品久久久久久久久久久久久 | 综合九九| 在线午夜 | 国内精品一区二区 | 久久亚洲一区二区三区四区 | 欧美精品一区二区三区在线播放 | 免费黄色片在线观看 | 日本特黄a级高清免费大片 国产精品久久性 | 成人激情视频在线播放 |