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

C51步进电机转动原理

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
C51步进电机转动原理. }: [8 D7 E9 f5 S- C

1 o7 G( X# s8 @, I9 ~- f

! D0 s3 A# Q# o6 G; M% o/*-----------------------------------------------
: |  B5 K) i5 J% b  名称:步进电机* \& f/ }/ I/ t9 S# i/ C0 ^
  修改:无
3 O8 t: W4 p% y3 W* g" |" j  内容:本程序用于测试4相步进电机常规驱动 使用1相励磁
) k% ?; y# G$ n) e% P% Q# T4 y- S: {/ e& C. q2 v. h' S7 i
------------------------------------------------*/8 y8 N+ |' N* d( ]2 A- V+ |1 ^
; A' C, r4 O+ E4 U, N
#include <reg52.h>, p3 {) s- U* S  D
6 P  [/ ]' k, T7 g% T

# S6 Y; m6 T+ \$ \2 }* ]5 ^  e* {2 |' S6 @- @$ S% k* ~$ v' I# B7 Z
sbit A1=P1^0; //定义步进电机连接端口0 A+ m0 D6 F% d6 y6 H
sbit B1=P1^1;& x, b; d0 z$ X( N6 O1 s
sbit C1=P1^2;
6 ?6 s" D" \5 C  W6 Ysbit D1=P1^3;, |) @9 o# ~' X- v( d" c

9 \7 q( l# L7 P, p1 Z' ~4 l+ ~' D9 x
#define Coil_A1 {A1=1;B1=0;C1=0;D1=0;}//A相通电,其他相断电
  r8 j' j9 |/ ^; V) w#define Coil_B1 {A1=0;B1=1;C1=0;D1=0;}//B相通电,其他相断电( e1 X  C2 L! T
#define Coil_C1 {A1=0;B1=0;C1=1;D1=0;}//C相通电,其他相断电& [" J7 V$ G. ]8 v! u0 ?
#define Coil_D1 {A1=0;B1=0;C1=0;D1=1;}//D相通电,其他相断电
0 d, K' c/ W3 c. b/ ?/ z* |5 |) J#define Coil_OFF {A1=0;B1=0;C1=0;D1=0;}//全部断电
1 ^) `* g7 s8 ^$ H: Y5 R3 n8 @0 w( g8 d6 |
unsigned char Speed;/ V: d+ ~* p/ r  y5 A) f2 R
/*------------------------------------------------
& D9 o3 g" |7 z8 ^/ I uS延时函数,含有输入参数 unsigned char t,无返回值
: s6 T: d( E* w, z# [7 F/ c unsigned char 是定义无符号字符变量,其值的范围是
  G7 Z: T' M1 n% Y' t- E 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
* A" z- k6 W- k! H; J3 P% |7 c* f 长度如下 T=tx2+5 uS
8 q' L" Z% |8 H6 N------------------------------------------------*/! q" i' c0 F5 o' K
void DelayUs2x(unsigned char t)' _! e4 A/ e8 W' k8 f
{   
) E: z& l" i9 e) P9 `1 J" A  N while(--t);
% X  X' U6 g( P% C5 y2 w# B}
" W) {) P% p5 r7 D/*------------------------------------------------& S5 F7 y* M+ h! k1 C
mS延时函数,含有输入参数 unsigned char t,无返回值4 ^; G, K9 W7 k1 C) n) ?
unsigned char 是定义无符号字符变量,其值的范围是5 x/ a/ N9 V" o, |! ^! q
0~255 这里使用晶振12M,精确延时请使用汇编
' g) N0 X5 U- U/ k, @1 }/ h5 C------------------------------------------------*/
+ d, W2 P& V. ]1 ?7 m& K  |; b# Zvoid DelayMs(unsigned char t)
( e7 R0 Q" E, k{, t9 W, s2 ]7 Q8 E. k" y

6 _- e$ x- M: k  p6 V# z& C while(t--)
2 ^) C! f8 y/ j- ?6 W' Z {) u  S8 x- Q3 d  o; u' Z
     //大致延时1mS5 C* `& S; i* j
     DelayUs2x(245);
2 w; i* J8 y  K: a4 ~         DelayUs2x(245);' G- Y0 m8 j; }, b; R
}* g  T9 [; n5 x, [' a
}# C$ A% l" L4 _
/*------------------------------------------------: M' B3 b$ K1 U* e  e. j
                    主函数
5 K2 V$ K0 {* v2 K8 g4 M( R------------------------------------------------*/* g3 l7 Z- @+ b; J% {( X! P3 W
main()5 [' P% N2 i  a. u+ H' f) {; w* `
{
4 W' w/ L8 p9 n: T //unsigned int i=64*16; //转2周停止, d7 G  e' d5 V- I
Speed=5; //调整速度+ D6 p* K2 E3 T& B/ Z1 S
while(1)  2 A# K- g! @3 y5 T0 a
  {         , y0 U+ |  ^$ v) X" n
     Coil_A1                 //遇到Coil_A1  用{A1=1;B1=0;C1=0;D1=0;}代替/ y! r7 i+ f4 M+ _; h. Z% L3 q! B
     DelayMs(Speed);         //改变这个参数可以调整电机转速 ,
6 b( V7 C3 y/ X5 l5 T1 f                                 //数字越小,转速越大,力矩越小
) ^9 U* g3 M0 n0 e% n     Coil_B18 l% J. ^$ y, t) K/ y) F
     DelayMs(Speed);4 K+ \  I) L/ `
     Coil_C1
) v6 n4 N5 |. M. Y5 c4 z$ j2 f     DelayMs(Speed);% F% o9 |& F: T7 x0 W! u
     Coil_D1
7 T5 H& d0 z3 r5 U5 @0 X& f" f5 N- w+ d4 l     DelayMs(Speed);
- \+ |) J$ a2 P" T1 J. h* T  }3 Y% `( I7 `8 M) v3 C# \
}2 O8 D5 r, Y/ M  f. ]6 ?$ u& @
( `: ]$ X/ w0 B# [
游客,如果您要查看本帖隐藏内容请回复
; f7 c6 ^( p" v3 B
% O) M1 A. a: t1 r6 u/ ]

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-4 17:47 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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