步进电机加减速运行程C程序

  • 格式:doc
  • 大小:44.50 KB
  • 文档页数:4

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1./******************************************************************/

2./*****************************************************************/

3./*

4./* 步进电机加减速运行程

5./* 步进电机启动时,转速由慢到快逐步加

速。

6./* 步进电机匀速运

7./* 步进电机由快到慢逐步减速到停止

8./*

9./******************************************************************/

10.

11.#include

12.#include

13.

14.#define uchar unsigned char

15.#define uint unsigned int

16.

17.sbit addr0 = P1^4;

18.sbit addr1 = P1^5;

19.sbit addr2 = P1^6;

20.sbit addr3 = P1^7;

21.

22.uchar code FFW[8]={0x0e,0x0c,0x0d,0x09,0x0b,0x03,0x07,0x06};//正转数组

23.uchar code REV[8]={0x06,0x07,0x03,0x0b,0x09,0x0d,0x0c,0x0e};//反转数组

24.uchar rate ;

25./********************************************************/

26./*

27./* 延时

28./* 11.0592MHz时钟,

29./*

30./********************************************************/

31.void delay()

32. {

33. uchar k;

34. uint s;

36.do

37. {

38.for(s = 0 ; s <100 ; s++) ;

39. }while(--k);

40. }

41.

42.

43.void delay2(uchar k)

44. {

45.

46. uchar s;

47.for(s = 0 ; s

48.

49. }

50.

51./********************************************************/

52./*

53./*步进电机正转

54./*

55./********************************************************/

56.void motor_ffw()

57.{

58. uchar i;

59.

60.for (i=0; i<8; i++) //一个周期转30度

61. {

62. P0 = FFW[i];//取数据

63. addr0 = 1;

64. addr1 = 0;

65. addr2 = 1;

66. addr3 = 1;

67. addr3 = 0;

68. delay(); //调节转速

69. }

70.}

71.

72./********************************************************/

73./*

74./*步进电机反转

75./*

76./********************************************************/

77.void motor_rev()

78.{

80.

81.for (i=0; i<8; i++) //一个周期转30度

82. {

83. P0 = REV[i]; //取数据

84. addr0 = 1;

85. addr1 = 0;

86. addr2 = 1;

87. addr3 = 1;

88. addr3 = 0;

89. delay(); //调节转速

90. }

91.}

92.

93./********************************************************

94.*

95.*步进电机运行

96.*

97.*********************************************************/

98.void motor_turn()

99.{

100. uchar x;

101. rate=0x30;

102. x=0xf0;

103.do

104. {

105. motor_ffw(); //正转加速

106. rate--;

107. }while(rate!=0x0a);

108.

109.do

110. {

111. motor_ffw(); //正转匀速

112. x--;

113. }while(x!=0x01);

114.

115.do

116. {

117. motor_ffw(); //正转减速

118. rate++;

119. }while(rate!=0x30);

120.do

121. {

122. motor_rev(); //反转加速