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

標題: 單片機控制步進電機轉向(順逆轉)設計(keil C51代碼+Proteus仿真) [打印本頁]

作者: 測控系吳~    時間: 2019-7-14 20:21
標題: 單片機控制步進電機轉向(順逆轉)設計(keil C51代碼+Proteus仿真)
利用51單片機控制步進電機轉向(順逆轉)的一個簡單程序和電路仿真。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. //該程序能實現延時 ,但是不足之處是第一次按鍵也要延時

  2. #include <reg52.h>
  3. #define out P2
  4. sbit pos=P0^0;
  5. sbit neg=P0^1;
  6. sbit stop=P0^2;           //設置一個停止按鍵
  7. typedef unsigned char u8;
  8. typedef unsigned int u16;
  9. u16 m=0;
  10. void delayms(u16 k) ;
  11. void delayms(u16 j)
  12. {
  13. u8 i;
  14. for(;j>0;j--)
  15. {
  16. i=250;
  17. while(--i);
  18. i=249;
  19. while(--i);
  20. }
  21. }

  22. void delayDS(u16 z)
  23. {
  24. while(z--)
  25. ;
  26. }

  27. u8 code turn[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};          //只會作用于低四位,轉換成二進制,發現是單雙八拍工作方式
  28. void main()
  29. {
  30. u8 i=0;
  31. out =0x03;         //只會在p2口低四位作用

  32. //無限循環的開始
  33. while(1)
  34. {

  35. //正轉鍵按下
  36. if(!pos)
  37. {
  38.         m++;
  39.         if(m!=0)
  40.         delayDS(50000);
  41. //        m=0;
  42.         while(1)
  43.         {
  44.         i=i<8?i+1:0;  //如果i<8,i 就依次加1,節拍一次進行,如果i!<8,進行循環
  45.         out =turn[i];
  46.         delayms(50);         //第一拍完后,轉換到第二拍時有個時差
  47.         if((!neg)||(!stop))
  48.         {       
  49.         m++;                                        
  50.         break;
  51.         }
  52. //        break;
  53.         }
  54. }


  55. //反轉鍵按下
  56. if(!neg)
  57. {
  58.         m++;

  59.         if(m!=0)
  60.         delayDS(50000);
  61. //        m=0;
  62.         while(1)
  63.         {
  64.         i=i>0?i-1:7;
  65.         out =turn[i];
  66.         delayms(50);
  67.         if((!pos)||(!stop))
  68.         {
  69.         m++;
  70.         break;
  71.         }
  72. //        break;
  73.         }


  74. }

  75. if(!stop)
  76. {
  77.         m++;
  78.         if(m!=0)
  79.         delayDS(50000);
  80. //        m=0;
  81.         while(1)
  82.         {
  83.         out = 0x00;
  84.         if((!neg)||(!pos))
  85.         {
  86.         m++;
  87.         break;
  88.         }
  89.         }
  90. }
  91. }
  92. }
復制代碼

所有資料51hei提供下載:
電機正反轉程序與Proteus仿真.zip (102.78 KB, 下載次數: 82)



作者: 測控系吳~    時間: 2019-7-14 23:25
大家有說明問題可以問喲
作者: 鵬博士PBs    時間: 2019-7-15 09:22
請問樓主采用的是TTL電平進行電機驅動的嗎
作者: 測控系吳~    時間: 2019-7-19 15:02
鵬博士PBs 發表于 2019-7-15 09:22
請問樓主采用的是TTL電平進行電機驅動的嗎

采用的是達林頓管
作者: hxtong    時間: 2019-7-26 09:52
想問下,怎樣可以加個加速減速鍵,就是改那個延時

作者: 測控系吳~    時間: 2019-7-30 16:56
hxtong 發表于 2019-7-26 09:52
想問下,怎樣可以加個加速減速鍵,就是改那個延時

首先,你要知道家減速的原理,就是控制節拍間的延時來的
作者: qq35404085    時間: 2019-8-7 15:30
下載來學習學習
作者: aatcs    時間: 2019-9-8 12:38
試過,這個可以轉起來.謝樓主




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