欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9766|回復(fù): 19
打印 上一主題 下一主題
收起左側(cè)

51單片機實現(xiàn)三相六拍的步進電機控制(正反轉(zhuǎn)、加減速、擋位顯示)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:234521 發(fā)表于 2017-9-20 23:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
自己寫的,不規(guī)范還望包含,keil和protues文件


單片機源程序如下:
  1. #include <reg52.h>      
  2.    
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. uint speed = 100;                                                //初始轉(zhuǎn)速
  6. uint max = 200;                                                        //最慢轉(zhuǎn)速
  7. uint min = 20;                                                        //最快轉(zhuǎn)速

  8. sbit swich = P2^0;                                           //總開關(guān)
  9. sbit dir = P2^1;                                        //電機旋轉(zhuǎn)方向
  10. sbit le1=P2^6;
  11. sbit le2=P2^7;
  12. sbit speedadd=P3^2;
  13. sbit speedsub=P3^3;                                  

  14. unsigned char uca_MotorStep[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};    //勵磁電流數(shù)組。
  15.                                                                                                              

  16. uchar leddata[]={

  17.                 0x3F,  //"0"
  18.                 0x06,  //"1"
  19.                 0x5B,  //"2"
  20.                 0x4F,  //"3"
  21.                 0x66,  //"4"
  22.                 0x6D,  //"5"
  23.                 0x7D,  //"6"
  24.                 0x07,  //"7"
  25.                 0x7F,  //"8"
  26.                 0x6F,  //"9"
  27.                 0x40,  //"-"
  28.                 0x00,  //熄滅
  29.                          };


  30. void delay1ms(void)   //誤差 0us
  31. {
  32.     unsigned char a,b,c;
  33.     for(c=1;c>0;c--)
  34.         for(b=142;b>0;b--)
  35.             for(a=2;a>0;a--);
  36. }

  37. void delay(uint x )                          //多功能毫秒延時
  38. {
  39.     uint i;
  40.         for(i=0;i<x;i++)
  41.         {
  42.           delay1ms();
  43.         }
  44. }



  45. void display(void)
  46. {       
  47.   if(swich==1)
  48.   {
  49.                    P0=        leddata[11];
  50.                 delay(1);
  51.                 le2=1;
  52.                 le1=1;
  53.                 delay(1);
  54.                 le2=0;               
  55.                 le1=0;

  56.   }       
  57.   else
  58.   {
  59.   if(dir==1)
  60.                 {
  61.                 P0=        leddata[11];
  62.                 delay(1);
  63.                 le2=1;
  64.                 delay(1);
  65.                 le2=0;
  66.                 }
  67.         else
  68.             {
  69.                 P0 =leddata[10];
  70.                 delay(1);
  71.                 le2=1;
  72.                 delay(1);
  73.                 le2=0;
  74.                 }  

  75.         P0=leddata[9-(speed-20)/20];
  76.         delay(30);
  77.         le1=1;
  78.         delay(5);
  79.         le1=0;
  80.                   
  81. }       
  82. }


  83. void Init_INT0()
  84. {
  85. EX0=1;    //開啟外部中斷 0
  86. IT0=1;          //設(shè)置成低電平觸發(fā),1為下降沿觸發(fā)
  87. EX1=1;    //開啟外部中斷 1
  88. IT1=1;          //設(shè)置成低電平觸發(fā),1為下降沿觸發(fā)
  89. EA=1;   //開啟總中斷
  90. }

  91. void Interrupt0_handler() interrupt 0
  92. {
  93.     EA=0;   //首先關(guān)閉總中斷,以消除按鍵出現(xiàn)的抖動所產(chǎn)生的干擾
  94.     delay(20); //同樣是為了消除抖動而產(chǎn)生新的中斷
  95.     if(speed>min)
  96.        {speed=speed-20;}        //限制最快轉(zhuǎn)速
  97.         else
  98.                 {speed=min;}
  99.         while(speedadd==0);
  100.     EA=1;            //恢復(fù)中斷
  101. }


  102. void Interrupt1_handler() interrupt 2
  103. {
  104.     EA=0;   //首先關(guān)閉總中斷,以消除按鍵出現(xiàn)的抖動所產(chǎn)生的干擾
  105.     delay(20); //同樣是為了消除抖動而產(chǎn)生新的中斷
  106.     if(speed<max)
  107.        {speed=speed+20;}
  108.         else
  109.                 {speed=max;}         //限制最慢轉(zhuǎn)速
  110.         while(speedsub==0);
  111.     EA=1;            //恢復(fù)中斷
  112. }

  113. void main()
  114. {
  115. int i;                                   //初始化
  116. dir=1;
  117. le1=0;
  118. le2=0;


  119. start:
  120. if(swich==0)
  121.      {Init_INT0();}                  //總開關(guān)開啟,初始化中斷,開始轉(zhuǎn)動
  122.    else
  123.          {display(); goto start;        }


  124.         if(dir==1)
  125.   seq:
  126.         {
  127.           while(1)
  128.           {         
  129.              display();
  130.                  for (i=0; i<8; i++)   
  131.                 {
  132.                   P1 = uca_MotorStep[i];         //取數(shù)據(jù)
  133.                   delay(speed);            //調(diào)節(jié)轉(zhuǎn)速
  134.                 }
  135.                  if(dir==0)                                                         //是否換向
  136.                     {
  137.                         delay(5);                                                 //        換向延時
  138.                         goto oppo;                                                 //換向
  139.                         }
  140.                 if(swich==1)                                                 //總開關(guān)運行中關(guān)閉
  141.                    goto start;                                                 //等待開啟
  142.          
  143.           }
  144.          
  145.         }
  146.         else
  147.         oppo:
  148. ……………………

  149. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
abc.zip (116.04 KB, 下載次數(shù): 210)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:269211 發(fā)表于 2018-1-27 10:11 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

板凳
ID:280881 發(fā)表于 2018-1-30 14:06 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

地板
ID:280909 發(fā)表于 2018-1-30 14:50 | 只看該作者

感謝分享
回復(fù)

使用道具 舉報

5#
ID:260785 發(fā)表于 2018-1-31 08:26 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

6#
ID:313702 發(fā)表于 2018-4-27 10:16 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

7#
ID:454493 發(fā)表于 2018-12-25 15:30 來自觸屏版 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

8#
ID:162757 發(fā)表于 2018-12-26 19:11 | 只看該作者
來干貨了
回復(fù)

使用道具 舉報

9#
ID:456297 發(fā)表于 2018-12-27 12:13 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報

10#
ID:537456 發(fā)表于 2019-5-13 21:58 | 只看該作者
學習學習謝謝
回復(fù)

使用道具 舉報

11#
ID:47652 發(fā)表于 2019-5-25 14:32 | 只看該作者
正需要,謝謝
回復(fù)

使用道具 舉報

12#
ID:353314 發(fā)表于 2019-5-31 11:32 | 只看該作者
不錯,................
回復(fù)

使用道具 舉報

13#
ID:582011 發(fā)表于 2019-7-11 01:33 | 只看該作者
原理圖.doc (56.5 KB, 下載次數(shù): 12)
回復(fù)

使用道具 舉報

14#
ID:576358 發(fā)表于 2019-7-12 08:42 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

15#
ID:580629 發(fā)表于 2019-7-12 10:14 | 只看該作者
感謝分享,下載來學習下
回復(fù)

使用道具 舉報

16#
ID:512857 發(fā)表于 2019-11-18 17:50 | 只看該作者
感謝分享,要是有四相的就好了,其實也差多,哈哈,反正謝謝了。
回復(fù)

使用道具 舉報

17#
ID:475402 發(fā)表于 2019-11-18 21:18 | 只看該作者
謝謝分享!
回復(fù)

使用道具 舉報

18#
ID:631508 發(fā)表于 2019-11-22 10:20 | 只看該作者
感謝樓主
回復(fù)

使用道具 舉報

19#
ID:744210 發(fā)表于 2020-5-5 06:14 來自觸屏版 | 只看該作者
chaoself 發(fā)表于 2018-1-27 10:11
謝謝分享

這是三相的?看著好像兩相四線的
回復(fù)

使用道具 舉報

20#
ID:921105 發(fā)表于 2021-5-14 11:23 來自觸屏版 | 只看該作者
不明白電機的六根線代表什么意思啊?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表