找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的步进电机控制系统 仿真 程序 原理图

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



所有资料下载:
5、基于51单片机的步进电机控制系统.rar (4.19 MB, 下载次数: 575)


元件清单:
步进电机控制系统元件清单
名称
注释
数量
51单片机
AT89C52
1
液晶显示屏
LCD12864
1
步进电机
1
排阻
10K
1
电机驱动芯片
ULN2003A
1
电位器
10K
1
晶振
12M
1
电容
33P
2
按键
5









  1. #define TARGET_GLOBAL 1
  2. #include "target.h"
  3. #include "dot.h"
  4. void timer0_init(void)
  5. {
  6.    TMOD|=0x01;    //MODEL1,timer
  7.    TH0=0xDC;          //定时10ms
  8.    TL0=0x00;
  9.    ET0=1;             //中断使能
  10.    TR0=1;                 //关闭定时器0
  11. }
  12. void target_init(void)
  13. {
  14.   timer0_init();
  15.   Lcd_Initial();
  16. }
  17. /************************************************
  18. *函数名称:display_head(void)
  19. *函数功能:显示“步进电机运行状态”字样
  20. *函数入口:无
  21. *函数出口:无
  22. ************************************************/
  23. void display_head(void)
  24. {
  25.   uchar i,temp;
  26.   temp=0x00;
  27.   for(i=0;i<8;i++)
  28.   {
  29.     Lcd_Character_16X16(1,10,temp,MOTER_HEAD[i]);
  30.         temp+=16;
  31.   }
  32.   
  33. }
  34. /************************************************
  35. *函数名称:display_state(state)
  36. *函数功能:显示电机状态“停止”,“正转”,“反转”
  37. *函数入口:state,电机状态
  38. *函数出口:无
  39. *说明:state:0x01,停止;0x02,正转;0x03,反转
  40. ************************************************/
  41. void display_state(state)
  42. {
  43.   switch(state)
  44.   {  
  45.     case 0x01:   //显示“停止”
  46.         {
  47.           Lcd_Character_16X16(1,60,0,MOTER_STATE[0]); //停
  48.           Lcd_Character_16X16(1,60,16,MOTER_STATE[1]);//止
  49.           break;
  50.         }
  51.         case 0x02:         //显示“正转”
  52.         {
  53.           Lcd_Character_16X16(1,60,0,MOTER_STATE[2]); //正
  54.           break;
  55.         }
  56.         case 0x03:         //显示“反转”
  57.         {
  58.           Lcd_Character_16X16(1,60,0,MOTER_STATE[3]); //反
  59.           break;
  60.         }
  61.         default:
  62.           break;
  63.   }
  64.   if((state==0x02)||(state==0x03))
  65.     Lcd_Character_16X16(1,60,16,MOTER_STATE[4]); //转
  66. }
  67. /************************************************
  68. *函数名称:display_speed(speed)
  69. *函数功能:显示电机速度状态
  70. *函数入口:speed,电机速度状态
  71. *函数出口:无
  72. *说明:speed:0x01,正常;0x02,低速;0x03,加速;
  73.              0x04,减速
  74. ************************************************/
  75. void display_speed(speed)
  76. {
  77.    switch(speed)
  78.    {
  79.      case 0x01:
  80.          {
  81.            Lcd_Character_16X16(1,60,32,SPEED_STATE[4]); //正
  82.            Lcd_Character_16X16(1,60,48,SPEED_STATE[5]); //常
  83.            break;
  84.          }
  85.          case 0x02:
  86.          {
  87.            Lcd_Character_16X16(1,60,32,SPEED_STATE[2]); //低
  88.            break;
  89.          }
  90.          case 0x03:
  91.          {
  92.            Lcd_Character_16X16(1,60,32,SPEED_STATE[0]); //加
  93.            break;
  94.          }
  95.          case 0x04:
  96.          {
  97.            Lcd_Character_16X16(1,60,32,SPEED_STATE[1]); //减
  98.            break;
  99.          }
  100.          default:
  101.            break;
  102.    }
  103.    if((speed==0x02)||(speed==0x03)||(speed==0x04))
  104.      Lcd_Character_16X16(1,60,48,SPEED_STATE[3]);   //速
  105. }
  106. /*************************************************
  107. *函数名称:moter_state_display(uchar moterState)
  108. *函数功能:实现步进电机状态显示
  109. *函数入口:moterState,电机运行状态
  110. *函数出口:无
  111. *说明:moterState:0x01,停止;0x02,正转加速运行;
  112. 0x03,正转减速运行;0x04,正转正常运行;
  113. 0x05,正转低速运行;0x06,反转加速运行;
  114. 0x07,反转减速运行;0x08,反转正常运行;
  115. 0x09,反转低速运行
  116. *************************************************/
  117. void moter_state_display(uchar moterState)
  118. {
  119.   Lcd_Clear();
  120.   display_head();
  121.   switch(moterState)
  122.   {
  123.     case MOTER_STOP:  //停止
  124.         {
  125.           display_state(0x01);
  126.           break;
  127.         }
  128.         case MOTER_FRONT_ADD:        //正转加速运行
  129.         {
  130.           display_state(0x02);
  131.           display_speed(0x03);
  132.           break;
  133.         }
  134.         case MOTER_FRONT_REDUCE:  //正转减速运行
  135.         {
  136.           display_state(0x02);
  137.           display_speed(0x04);
  138.           break;
  139.         }
  140.         case MOTER_FRONT_NORMAL:        //正转正常运行
  141.         {
  142.           display_state(0x02);
  143.           display_speed(0x01);
  144.           break;
  145.         }
  146.         case MOTER_FRONT_LOWER:        //正转低速运行
  147.         {
  148.           display_state(0x02);
  149.           display_speed(0x02);
  150.           break;
  151.         }
  152.         case MOTER_QUEEN_ADD:        //反转加速运行
  153.         {
  154.           display_state(0x03);
  155.           display_speed(0x03);
  156.           break;
  157.         }
  158.         case MOTER_QUEEN_REDUCE: //反转减速运行
  159.         {
  160.           display_state(0x03);
  161.           display_speed(0x04);
  162.           break;
  163.         }
  164.         case MOTER_QUEEN_NOMAL: //反转正常运行
  165.         {
  166.           display_state(0x03);
  167.           display_speed(0x01);
  168.           break;
  169.         }
  170.         case MOTER_QUEEN_LOWER: //反转低速运行
  171.         {
  172.           display_state(0x03);
  173.           display_speed(0x02);
  174.           break;
  175.         }
  176.         default:
  177.           break;
  178.   }
  179.   if(moterState!=MOTER_STOP)
  180.   {
  181.     Lcd_Character_16X16(1,60,64,SPEED_STATE[6]); //运
  182.         Lcd_Character_16X16(1,60,80,SPEED_STATE[7]); //行
  183.   }

  184. }
  185. /*******************************************************
  186. *函数名称:ground(step)
  187. *函数功能:给电机的四个相极送信号
  188. *函数入口:step,电机相位的第几步
  189. *函数出口:无
  190. *说明:步进电机转步数,分八步
  191. *******************************************************/
  192. void ground(step)
  193. {
  194.   switch(step)
  195.   {
  196.     case 0x00:
  197.         {
  198.           MOTER_M1= 1;
  199.           MOTER_M2= 0;
  200.           MOTER_M3= 0;
  201.           MOTER_M4= 0;
  202.           break;
  203.         }
  204.         case 0x01:
  205.         {
  206.       MOTER_M1= 1;
  207.           MOTER_M2= 1;
  208.           MOTER_M3= 0;
  209.           MOTER_M4= 0;
  210.           break;          
  211.         }
  212.         case 0x02:
  213.         {
  214.           MOTER_M1= 0;
  215.           MOTER_M2= 1;
  216.           MOTER_M3= 0;
  217.           MOTER_M4= 0;
  218.           break;
  219.         }
  220.         case 0x03:
  221.         {
  222.           MOTER_M1= 0;
  223.           MOTER_M2= 1;
  224.           MOTER_M3= 1;
  225.           MOTER_M4= 0;
  226.           break;
  227.         }
  228.         case 0x04:
  229.         {
  230.           MOTER_M1= 0;
  231.           MOTER_M2= 0;
  232.           MOTER_M3= 1;
  233.           MOTER_M4= 0;
  234.           break;
  235.         }
  236.         case 0x05:
  237.         {
  238.           MOTER_M1= 0;
  239.           MOTER_M2= 0;
  240.           MOTER_M3= 1;
  241.           MOTER_M4= 1;
  242.           break;
  243.         }
  244.         case 0x06:
  245.         {
  246.           MOTER_M1= 0;
  247.           MOTER_M2= 0;
  248.           MOTER_M3= 0;
  249.           MOTER_M4= 1;
  250.           break;
  251.         }
  252.         case 0x07:
  253.         {
  254.           MOTER_M1= 0;
  255.           MOTER_M2= 0;
  256.           MOTER_M3= 0;
  257.           MOTER_M4= 1;
  258.           break;
  259.         }
  260.         default:
  261.            break;
  262.   }
  263. }
复制代码



评分

参与人数 4黑币 +59 收起 理由
削个椰子皮 + 2 赞一个!
With_commands + 2 看起来是蛮不错的
115116 + 5 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:123568 发表于 2016-6-7 21:01 | 只看该作者
下来看看
回复

使用道具 举报

板凳
ID:123568 发表于 2016-6-7 21:01 | 只看该作者
下下来看看
回复

使用道具 举报

地板
ID:155607 发表于 2016-12-18 14:45 | 只看该作者
不错,值得学习
回复

使用道具 举报

5#
ID:138443 发表于 2017-2-7 22:26 | 只看该作者
太好了,谢谢了
回复

使用道具 举报

6#
ID:147638 发表于 2017-3-2 16:43 | 只看该作者
j就喜欢这楼主这样的人
回复

使用道具 举报

7#
ID:67182 发表于 2017-3-3 14:29 | 只看该作者
谢谢,学习了。
回复

使用道具 举报

8#
ID:165117 发表于 2017-3-16 21:16 | 只看该作者

谢谢,下来学习一下!!!
回复

使用道具 举报

9#
ID:187830 发表于 2017-4-9 19:41 | 只看该作者
看到步进电机来学习下
回复

使用道具 举报

10#
ID:195441 发表于 2017-5-4 10:10 | 只看该作者
下来看看,好不好用
回复

使用道具 举报

11#
ID:204503 发表于 2017-6-7 21:04 | 只看该作者
收下来看看
回复

使用道具 举报

12#
ID:212117 发表于 2017-6-17 21:42 | 只看该作者
有错误
回复

使用道具 举报

13#
ID:170318 发表于 2017-7-13 09:57 | 只看该作者
下来学习,谢谢楼主分享
回复

使用道具 举报

14#
ID:218023 发表于 2017-7-19 01:06 | 只看该作者
谢谢LZ设计图,搬走了
回复

使用道具 举报

15#
ID:219126 发表于 2017-7-30 10:20 | 只看该作者
厉害啦 楼主
回复

使用道具 举报

16#
ID:237747 发表于 2017-10-8 09:14 | 只看该作者
谢谢楼主,很需要
回复

使用道具 举报

17#
ID:238776 发表于 2017-10-12 10:10 | 只看该作者
仿真图看的不是很懂  希望有更详细的讲解
回复

使用道具 举报

18#
ID:267968 发表于 2017-12-27 20:15 | 只看该作者
有控制两个电机的帖子吗
回复

使用道具 举报

19#
ID:155971 发表于 2018-1-6 11:09 | 只看该作者
谢谢,学习中
回复

使用道具 举报

20#
ID:272094 发表于 2018-1-6 13:26 来自手机 | 只看该作者
太好了,我正需要这样的程序框架
回复

使用道具 举报

21#
ID:136705 发表于 2018-2-23 18:38 | 只看该作者
好东西,看看啊
回复

使用道具 举报

22#
ID:136705 发表于 2018-2-23 18:38 | 只看该作者
太谢谢楼主啦,毕业设计要用到
回复

使用道具 举报

23#
ID:294303 发表于 2018-3-19 22:06 | 只看该作者
谢谢 老铁的奉献
回复

使用道具 举报

24#
ID:297130 发表于 2018-3-26 11:14 | 只看该作者
这个可以控制伺服电机么?
回复

使用道具 举报

25#
ID:307009 发表于 2018-4-12 22:58 | 只看该作者
妥妥的
回复

使用道具 举报

26#
ID:351166 发表于 2018-6-13 15:55 | 只看该作者
非常不错
回复

使用道具 举报

27#
ID:356276 发表于 2018-6-21 18:36 | 只看该作者
还差点黑币下载   希望能得几个
回复

使用道具 举报

28#
ID:433514 发表于 2018-11-26 16:02 | 只看该作者
谢谢LZ很及时
回复

使用道具 举报

29#
ID:443189 发表于 2018-12-10 12:33 | 只看该作者
非常感谢你的分享
回复

使用道具 举报

30#
ID:486264 发表于 2019-3-27 15:48 来自手机 | 只看该作者
请问电位器在哪里?仿真图上没显示啊?
回复

使用道具 举报

31#
ID:489394 发表于 2019-3-27 16:08 | 只看该作者
这个是个好东西!!
回复

使用道具 举报

32#
ID:561708 发表于 2019-6-13 14:49 | 只看该作者
代码给的很完整
回复

使用道具 举报

33#
ID:570656 发表于 2019-6-28 23:39 | 只看该作者
感谢还不错,赞一个
回复

使用道具 举报

34#
ID:574923 发表于 2019-7-4 14:47 | 只看该作者
请问分别控制两个怎么做呢
回复

使用道具 举报

35#
ID:574923 发表于 2019-7-4 14:48 | 只看该作者
highsolitude 发表于 2017-12-27 20:15
**** 作者被禁止或删除 内容自动屏蔽 ****

我也在找呢,请问你做出来了吗
回复

使用道具 举报

36#
ID:243394 发表于 2019-7-12 18:24 | 只看该作者
谢谢,学习了。
回复

使用道具 举报

37#
ID:570366 发表于 2019-7-24 11:18 | 只看该作者
谢谢楼主
回复

使用道具 举报

38#
ID:761534 发表于 2020-5-26 12:42 | 只看该作者
赞一个!看起来不错
回复

使用道具 举报

39#
ID:761534 发表于 2020-5-26 16:37 | 只看该作者
好东西
赞一个
回复

使用道具 举报

40#
ID:65580 发表于 2020-6-3 09:43 | 只看该作者
不错的资料
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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