找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机控制电机的程序修改

[复制链接]
回帖奖励 15 黑币 回复本帖可获得 15 黑币奖励! 每人限 1 次(中奖概率 60%)
跳转到指定楼层
楼主
ID:385535 发表于 2018-8-31 19:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
朋友们 这个程序电机只能动一个,程序提醒无错误,求大神帮忙 急用!!!
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit beep=P3^7;

  5. /*         1?             */
  6. sbit A1=P1^0;
  7. sbit B1=P1^1;
  8. sbit C1=P1^2;
  9. sbit D1=P1^3;
  10. /*         2?             */
  11. sbit A2=P2^0;
  12. sbit B2=P2^1;
  13. sbit C2=P2^2;
  14. sbit D2=P2^3;
  15. /*         3?             */
  16. sbit A3=P2^4;
  17. sbit B3=P2^5;
  18. sbit C3=P2^6;
  19. sbit D3=P2^7;
  20. float i1=50;
  21. float i2=13;
  22. float  Q=41;
  23. unsigned char Speed ;
  24. #define Coil_A01  {A1=0;B1=1;C1=1;D1=1;}
  25. #define Coil_B01  {A1=1;B1=0;C1=1;D1=1;}
  26. #define Coil_C01  {A1=1;B1=1;C1=0;D1=1;}
  27. #define Coil_D01  {A1=1;B1=1;C1=1;D1=0;}
  28. #define Coil_A02  {A2=0;B2=1;C2=1;D2=1;}
  29. #define Coil_B02  {A2=1;B2=0;C2=1;D2=1;}
  30. #define Coil_C02  {A2=1;B2=1;C2=0;D2=1;}
  31. #define Coil_D02  {A2=1;B2=1;C2=1;D2=0;}
  32. #define Coil_A03  {A3=0;B3=1;C3=1;D3=1;}
  33. #define Coil_B03  {A3=1;B3=0;C3=1;D3=1;}
  34. #define Coil_C03  {A3=1;B3=1;C3=0;D3=1;}
  35. #define Coil_D03  {A3=1;B3=1;C3=1;D3=0;}

  36. void DelayUs2x(unsigned char t)
  37. {   
  38. while(--t);
  39. }
  40. void DelayMs(unsigned char t)
  41. {
  42. while(t--)
  43. {
  44.      DelayUs2x(245);
  45.   DelayUs2x(245);
  46. }
  47. }
  48. void main()
  49. {
  50.   float i1;
  51. float i2;
  52. uint a;
  53. i1=-0.5242179755479679 * Q+ 52.77990417446856;
  54.   Speed=5;
  55. for(a=10;a>=0;a--)
  56.   {
  57.    while(i1--)
  58.   {
  59.     Coil_D01
  60.      DelayMs(Speed);         
  61.      Coil_C01
  62.      DelayMs(Speed);
  63.      Coil_B01
  64.      DelayMs(Speed);
  65.      Coil_A01
  66.     DelayMs(Speed);
  67.   }
  68.   {
  69.   i2=-0.2680567793809891 * Q+ 44.47589216874105;
  70.    Speed=5;
  71. while(i2--)
  72.   {
  73.     Coil_A02
  74.      DelayMs(Speed);         
  75.      Coil_B02
  76.      DelayMs(Speed);
  77.      Coil_C02
  78.      DelayMs(Speed);
  79.      Coil_D02
  80.     DelayMs(Speed);
  81.   }

  82. }
  83. }
  84.   }
复制代码


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

使用道具 举报

沙发
ID:392580 发表于 2018-9-2 13:56 | 只看该作者
你这个for没有什么用吧  while1执行完后  执行while2  然后 再执while2  是要实现这样吗?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:385535 发表于 2018-9-21 16:24 | 只看该作者
6744 发表于 2018-9-2 13:56
你这个for没有什么用吧  while1执行完后  执行while2  然后 再执while2  是要实现这样吗?

不是的  是同时执行的
回复

使用道具 举报

地板
ID:276129 发表于 2018-9-21 19:02 | 只看该作者
i1的赋值语句应该放到while(i1--)里面
回复

使用道具 举报

5#
ID:385535 发表于 2018-9-26 17:13 | 只看该作者
meetwit 发表于 2018-9-21 19:02
i1的赋值语句应该放到while(i1--)里面

昂昂 谢谢你
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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