找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2694|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机用锁存器控制多个步进电机的运动,代码仿真如下,可能是锁存器程序出问题...

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar code FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
  5. uchar code REW[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
  6. sbit K1=P3^0;
  7. sbit K2=P3^1;
  8. sbit K3=P3^2;
  9. sbit D40=P2^6;
  10. sbit D50=P2^7;
  11. void Delayms(uint i)
  12. {
  13. uchar j;
  14. while(i--)
  15. {
  16. for(j=0;j<115;j++)
  17. {
  18. ;
  19. }
  20. }
  21. }
  22. void setp_motor1_ffw(uchar n)//设置转动的圈数
  23. {
  24. uchar i,j;
  25. for(i=0;i<5*n;i++)//一个八拍72度,旋转一圈要5个八拍
  26. {
  27. for (j=0;j<8;j++)
  28. {
  29. if(K3==0)break;
  30. P1=FFW[j];
  31. Delayms(100);//两个脉冲之间的长短,用来改变电机的转速
  32. }
  33. }
  34. }
  35. void setp_motor2_ffw(uchar n)//设置转动的圈数
  36. {
  37. uchar i,j;
  38. for(i=0;i<5*n;i++)//一个八拍72度,旋转一圈要5个八拍
  39. {
  40. for (j=0;j<8;j++)
  41. {
  42. if(K3==0)break;
  43. P1=FFW[j];
  44. Delayms(100);//两个脉冲之间的长短,用来改变电机的转速
  45. }
  46. }
  47. }
  48. void setp_motor1_rew(uchar n)
  49. {
  50. uchar i,j;
  51. for(i=0;i<5*n;i++)
  52. {
  53. for (j=0;j<8;j++)
  54. {
  55. if(K3==0)break;
  56. P1=REW[j];
  57. Delayms(50);
  58. }
  59. }
  60. }
  61. void setp_motor2_rew(uchar n)
  62. {
  63. uchar i,j;
  64. for(i=0;i<5*n;i++)
  65. {
  66. for (j=0;j<8;j++)
  67. {
  68. if(K3==0)break;
  69. P1=REW[j];
  70. Delayms(50);
  71. }
  72. }
  73. }
  74. void main()
  75. {
  76. uchar n=5;
  77. while(1)
  78. {
  79. if(K1==0)
  80. {
  81. D40=1;
  82. setp_motor1_ffw(n);
  83. D40=0;
  84. D50=1;
  85. P0=0x00;
  86. setp_motor2_rew(n);
  87. D50=0;
  88. }
  89. else if(K2==0)
  90. {
  91. D40=1;
  92. setp_motor1_rew(n);
  93. D40=0;
  94. D50=1;
  95. P0=0x00;
  96. setp_motor2_ffw(n);
  97. D50=0;
  98. }
  99. else
  100. {
  101. P1=0x00;
  102. }
  103. }
  104. }

复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1012634 发表于 2022-4-6 16:51 | 只看该作者
请问 有没有控制8个步进电机的  有没有原理图 能不能分享给大家  非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表