找回密码
 注册
关于网站域名变更的通知
查看: 442|回复: 2
打印 上一主题 下一主题

C51步进电机转动原理

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-11-29 07:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
C51步进电机转动原理: R* E( C4 P" ^9 w9 p) R
' w- ^- a" c5 \) \6 t3 W

# G3 W0 [7 y" v/*-----------------------------------------------1 Q6 }" {& G% h' J2 ~
  名称:步进电机8 F& a5 o* Z) Y, a% i
  修改:无
  K6 R3 S1 |) I4 F  r  内容:本程序用于测试4相步进电机常规驱动 使用1相励磁
, G: r" k( L2 g; {! `; r3 s( i& H7 X
------------------------------------------------*/
/ ^) F4 S( y/ }( M6 |: i) I5 c4 T% |4 Z- b, [4 o% I8 R( G+ }
#include <reg52.h>
, X1 r8 h# {  `- F3 C
0 l; u8 |: O5 u: A5 O& Y+ s) V* n' p5 I' G' w

% q4 Z# o& u: y0 ]4 d: X% m0 |sbit A1=P1^0; //定义步进电机连接端口
# n2 i0 ]( |" B/ J% Hsbit B1=P1^1;  D. i6 Q0 L% [6 y
sbit C1=P1^2;( ~2 y  U# D8 z3 R8 h" Z) W
sbit D1=P1^3;
2 o' G% V0 @, b/ j' a  y* `6 W& b9 `2 j

" o" B) e7 v: L0 H0 z#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
8 X+ A. p% G1 |6 m! |8 h9 a! E#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电) B% X0 ?6 f- G
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电
1 e0 L7 j# e) x+ w+ R) d' t( w#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
, M. I3 g8 `# q) `. K" `/ C- [#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电
2 n+ l8 h) G' @* t3 C& ?$ [# F8 s1 D& u; H$ d
unsigned char Speed;
0 C$ t& U: C, c0 L  m2 \/*------------------------------------------------. Q( K( _: M8 |, i( A% {" x
uS延时函数,含有输入参数 unsigned char t,无返回值7 ?7 B: w! v4 k+ h
unsigned char 是定义无符号字符变量,其值的范围是
8 P1 c& v0 l1 n4 w9 O# j 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时7 I% J& \8 l0 Z& P9 k: n9 M: B% L
长度如下 T=tx2+5 uS # [- t" E, L# y# w0 V( i
------------------------------------------------*/
5 b5 @8 `+ [5 e, }void DelayUs2x(unsigned char t)  N* k/ w4 I: ?# O) |* y
{   
! m" G0 n+ y1 e while(--t);7 P8 f' y' M* \% C0 b$ T: @- e
}
' `9 `& T4 Z4 g! |2 U" s' Z  A/*------------------------------------------------
: l5 `' U9 ]& z; s5 F! ?# o mS延时函数,含有输入参数 unsigned char t,无返回值: l6 M) q3 n6 C. N% K+ F7 ^2 B
unsigned char 是定义无符号字符变量,其值的范围是  b9 e, j( l# H2 A7 u# L
0~255 这里使用晶振12M,精确延时请使用汇编( J  W7 x6 M2 i, ?* h
------------------------------------------------*/( o7 J4 _+ a) Z; C3 u
void DelayMs(unsigned char t)
- Q" }6 h# O' K2 k{/ C- B9 F1 P" l8 ?! D6 n4 ?
8 y# g2 L& H  X0 R" G
while(t--)7 [8 p) g1 Y( j6 Y* h% K. F
{
) z5 P* y# I2 u3 d' [0 w: R  c     //大致延时1mS( H+ U* w: v2 {& ?( G$ l& Q+ u
     DelayUs2x(245);4 k2 i# ]0 }6 ~' s! t3 V
         DelayUs2x(245);& `' P( Q4 X/ h$ g
}8 k9 q: |; n' D/ f! W
}9 r: O  u4 k' ?: R9 N
/*------------------------------------------------, [/ A2 ^4 D: z2 J
                    主函数" `5 Q3 J6 b$ G2 J- `
------------------------------------------------*/! ~# B' _: s# N5 Z) ?5 d3 [, i
main()
3 v& e. m5 M$ J' b/ D{
: n; q. s8 U* n8 Z$ s; x, l //unsigned int i=64*16; //转2周停止
) N& Y+ Q& ^! ~$ m" u5 x Speed=5; //调整速度
. Z  l- `* A) C5 Y7 u- A while(1)  
$ z- m0 G% G8 R$ G- }8 U7 R  {         
9 Z" r% S+ f8 {* i- e: }     Coil_A1                 //遇到Coil_A1  用{A1=1;B1=0;C1=0;D1=0;}代替: j- k: H8 \  D7 ^& W) g3 A+ P
     DelayMs(Speed);         //改变这个参数可以调整电机转速 ,& h8 e. H' W! e6 c) \7 K3 ]/ ^
                                 //数字越小,转速越大,力矩越小- d& g4 }% ]' {- }& M4 Q0 U% X
     Coil_B1; @* a* ]) A6 M) Q/ C
     DelayMs(Speed);
5 D; \* a, u% _8 W7 x% N( B, d     Coil_C14 [! \3 U9 t  J+ g( S" h0 H
     DelayMs(Speed);1 I! v8 S( X) q$ p4 _
     Coil_D1
( ^' W' U+ w" u3 l5 D6 W' u; p$ }     DelayMs(Speed);
1 H4 P, z" G* }1 |+ N! F+ b6 V6 b# g  }) H: B- ~- Z; A7 Y5 _
}
! |+ r. @: U: K' `* p, F3 h7 v  k- ]
- T! W. V! Z0 y8 t" u
游客,如果您要查看本帖隐藏内容请回复
) L! B( t% }+ M* j2 z/ J

8 _% X+ B. U: P1 b

该用户从未签到

2#
发表于 2018-11-29 10:22 | 只看该作者
路过进来看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-9 18:10 , Processed in 0.125000 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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