电动机的正反转.docx

上传人:b****4 文档编号:3928457 上传时间:2023-05-06 格式:DOCX 页数:8 大小:75.18KB
下载 相关 举报
电动机的正反转.docx_第1页
第1页 / 共8页
电动机的正反转.docx_第2页
第2页 / 共8页
电动机的正反转.docx_第3页
第3页 / 共8页
电动机的正反转.docx_第4页
第4页 / 共8页
电动机的正反转.docx_第5页
第5页 / 共8页
电动机的正反转.docx_第6页
第6页 / 共8页
电动机的正反转.docx_第7页
第7页 / 共8页
电动机的正反转.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电动机的正反转.docx

《电动机的正反转.docx》由会员分享,可在线阅读,更多相关《电动机的正反转.docx(8页珍藏版)》请在冰点文库上搜索。

电动机的正反转.docx

电动机的正反转

电动机的正反转

一.设计目的

步进电机若加入适当的脉冲信号时,转子则会以必然的步数转动。

若是加入持续的脉冲信号,步进电机就会持续转动,转动的角度与脉冲频率成正比,正、反转可由脉冲的顺序来控制。

本程序通过K一、K2和K3三个按钮开关控制步进电机转动和改变转向,电动机利用1-2相激磁,编程时采用制表的方式。

正转和反转的脉冲信号频率是相通的,但由于利用激磁方式不一样,反转利用了1-2相激磁法,故反转速度为正转的一半。

1.步进电机原理和原理图

电路设计如图四所示。

K一、K2和K3按钮开关别离接在单片机的~

引脚上,作为控制信号的输入端,输入端直接采用ULN2003驱动电路控制步进电机的转向。

 图四开关控制步进电机的电路原理图

2.功能说明

单片机的~引脚别离接有按钮开关K一、K2和K3,用来控制步进电机的转向。

开始供电时,步进电机停止。

按K1时,电动机正转;按K2时,电动机反转。

按K3时,电动机停止转动。

3.程序设计

编程

编程采用制表的方式,步进电机正转采用二相激磁方式,时序如表所示

2相激磁方式正转时序

步进

0FCH

1

1

1

0

0

0F9H

2

1

0

0

1

0F3H

3

0

0

1

1

0F6H

4

0

1

1

0

步进电机反转采用1-2相激磁方式,时序如表

1-2相激磁反转时序

步进

0F7H

1

0

1

1

1

0F3H

2

0

0

1

1

0FBH

3

1

0

1

1

0F9H

4

1

0

0

1

0FDH

5

1

1

0

1

0FCH

6

1

1

0

0

0FEH

7

1

1

1

0

0F6H

8

0

1

1

0

.流程图

程序设计流程如图所示

开始

按键扫描

按K1

正转

按K2

反转

按K3

停止

读取表格

输出

结束

.程序清单

01K1EQU;设定以K1表示

02K2EQU;设定以K2表示

03K3EQU;设定以K3表示

04

05STOP:

MOVP0,#OFFH;步进电机停止

06LOOP:

JNBK1,Z_M2;是不是按K1,是则正传

07JNBK2,F_M2;是不是按K2,是则反转

08JNBK3,STOP1;是不是按K3,时则停止

09JMPLOOP;跳转至LOOP处

10

11STOP1:

ACALLDELAY;按K3的消除抖动

12JNBK3,$;K3放开否

13ACALLDELAY;放开消除抖动

14JMPSTOP;电机停止

15

16Z_M2:

ACALLDELAY;按K1的消除抖动

17JNBK1,$;K1放开否

18ACALLDELAY;放开消除抖动

19JMPZ_M;转至Z_M处

20

21F_M2:

ACALLDELAY;按K2的消除抖动

22JNBK2,$;K2放开否

23ACALLDELAY;放开消除抖动

24JMPF_M;转至F_M处,循环

25;正转子程序

26Z_M:

MOVR0,#00H;正转到TABLE取码指针初值

27Z_M1:

MOVA,R0;到TABLE取码

28MOVDPTR,#TABLE;存表

29MOVCA,@A+DPTR;取表代码

30JZZ_M;是不是取到结束码?

31MOVP0,A;输出至P0,正转

32JNBK3,STOP1;是不是按K3,是则停止运转

33JNBK2,F_M2;是不是按K2,是则反转

34ACALLDELAY;步进电机转速

35INCR0;取下一个码

36JMPZ_M1;转至Z_M处,循环

37RET

38;反转子程序

39F_M:

MOVR0,#05;反转到TABLE取码指针初值

40F_M1:

MOVA,R0;到TABLE取码

41MOVDPTR,#TABLE;存表

42MOVCA,@A+DPTR;取表代码

43JZF_M;是不是取到结束码?

44MOVP0,A;输出至P0,反转

45JNBK3,STOP1;是不是按K3,是则停止运转

46JNBK1,Z_M2;是不是按K1,是则正转

47ACALLDELAY;步进电机转速

48INCR0;取下一个码

49JMPF_M1;转至F_M1处,循环

50RET

51

52DELAY:

MOVR6,#40;延不时刻20ms

53D1:

MOVR7,#248

54DJNZR7,$

55DJNZR6,D1

56RET

57;控制码表

58TABLE

59DB0FCH,OF9H,0F3H,0F6H;正转

60DB00H;反转结束码

61DB0F7H,0F3H,0FBH,0F9H;反转

62DB0FDH,0FCH,0FEH,0F6H

63DB00H;反转结束码

64

65END;程序结束

4.代码详解

主要标号说明

LOOP:

按键扫描

STOP1:

K3键消除抖动

Z_M2:

K1键消除抖动

F_M2K2键消除抖动

Z_M:

反转子程序

F_M:

正转子程序

DELAY:

延时子程序

TABLE:

控制码表

5.程序分析

01~03:

将、、引脚别离用K一、K二、K3表示。

05:

使步进电机停止转动。

06~09:

对按键扫描。

当按键开关未按下时,相应引脚为高电平;当开关按下时,相应引脚为低电平。

所以通过循环检测按键开关所连接的引脚电平的高低,就可以够判断出开关状态。

11:

按K3时,调延时子程序,延时一小段时刻来消除按键时的抖动。

12:

按键未开放时,程序将在此等待,只有按键开放后,程序才会向下运行。

13:

按键放开时,调延时子程序,延时一小段时刻来消除按键放开时的抖动。

14:

当肯定K3按键被按下又被放开后,才认定是一次有效按键,程序将跳转到STOP处,执行停机语句,使电机停止转动。

16~19:

与上述11-14行语句原理相同,是对K1键按下和放开时消除抖动的处置,并跳转到Z_M处,执行正传子程序。

21~24:

对按K2键时消除抖动的处置,并跳转到Z_M处,执行反转子程序。

26:

正转子程序开始,将R0赋值为0,使取表指针指向表TABLE的第一个码位置。

27:

将R0值送入累加器A。

28:

将编制的电机控制码表TABLE存入特殊寄放器DPTR。

29:

从特殊寄放器DPTR中掏出第一个控制码。

30:

检查是不是取到结束码,结束码为00H。

若是取到结束码00H,JZ指令会使程序跳转到标号Z_M处,从第一个码开始读取;若是取到的不是结束码00H,程序向下运行。

31:

将取到的数据由P0端输出。

32:

检查是不是按K3,是则停止运转。

33:

检查是不是按K2,是则反转。

34:

挪用延时子程序。

此处挪用延时子程序与前边挪用的不同,前边挪用延时子程序是为了消除按键的抖动。

此处挪用延时子程序是电机运转两步之间的距离时刻,决定电机的转速,延不时刻长,送入电机的脉冲信号频率低,电机转速慢;延不时刻短,送入电机的脉冲信号频率高,电机转速快。

所以在此处改变延不时刻就可以够改变电机转速。

35:

使R0的值为1,取下一个码。

36:

跳转到Z_M处,开始新的循环。

37:

正转子程序返回。

39~50:

反转子程序。

其中,第39行语句将R0赋值为5,是为了取码时从反转控制码中第一个码开始读取。

52~56:

延时子程序,延时的时刻为20ms。

58~63:

步进电机激磁信号编码表。

其中第59行为电机正转两相激磁码;第60行为正转结束码;第6一、62行为反转1-2激磁码;第63行为反转结束码。

65:

程序结束。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2