|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
步进电机编程
- l3 d! [4 V' l( M; \' ?+ j/ f
3 i+ \/ ]; h, x L+ k( V. e' {: T! A$ A1 _
3 O/ n( i% B# O! L
/**************************************************************************************
! E# b3 V4 R0 T* 步进电机实验 */ E. i9 n- L! f z3 p
实现现象:下载程序后,按照光盘内操作视频接线,步进电机旋转- l: K) F( Z5 v5 a1 |2 p
注意事项:无
; k6 a; l2 _/ Q4 M3 S6 H& X4 G***************************************************************************************/
8 B% S; H4 E. B) b: S& F% _* V" d1 y# G
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
1 B2 _# c. C$ P7 [! l6 l; E#include<intrins.h> //因为要用到左右移函数,所以加入这个头文件! j* q) H5 z. a' M- y
}% G2 @; ]0 _% Y* o
typedef unsigned int u16; //对数据类型进行声明定义 d8 a5 g) E' F9 F* K) N7 H# E
typedef unsigned char u8;$ p; }6 u) \: _
J6 M$ a/ ]2 T) k, G
sbit MOTOA = P1^0;3 `: N5 X* v3 m$ c9 E/ q" Y+ c. E0 ^2 D
sbit MOTOB = P1^1;" j: S' B; z- c* i5 V8 B, l/ i
sbit MOTOC = P1^2;+ e! K8 C7 p5 R3 d ], ]
sbit MOTOD = P1^3;
# @/ k) v9 o- P0 C8 x9 o* H
/ z4 P9 L; _; l" y. Y4 U#define SPEED 200
- a0 n/ J- \/ k9 v) A' z6 \: V' e3 T4 Z( q$ X' _. H \8 h% F
/*******************************************************************************% C( U7 `' ^: g; p6 W2 p
* 函 数 名 : delay' E6 ~# B( Z' N; [& d
* 函数功能 : 延时函数,i=1时,大约延时10us
1 N) Y, R" a8 f/ y1 O*******************************************************************************/
+ l: _: @6 ]: j: ?void delay(u16 i)
- i7 a: Y+ q' N( {. o' m' }{
5 a& I- j: o; x1 b( @' P Y+ g while(i--);
0 m$ [9 \% P4 i( H' X! y# b}6 p' H! S* l) F% s( x) B$ N! c9 E
$ k H. _& O( Z- ?" J: Z
( Q+ A8 M% Z9 }9 j* e
/*******************************************************************************
6 y; h! G7 Z3 f ~% x* 函 数 名 : main
9 Z8 ?7 @3 b, ~# I) S6 j8 G; W* 函数功能 : 主函数% K) @; ^. y, k- g% y) F
* 输 入 : 无
8 f5 m# l6 w3 n2 J& {8 r! x* 输 出 : 无2 d" o, z% S3 e3 K
*******************************************************************************/1 q( A5 i- T. l7 M( t
void main()% M9 G* y3 b- K% C
{ ( ^5 l- @) `- o9 c; {& O) z. w
P1=0X00;
" D0 M1 g& {. M% V$ F while(1)1 P6 L/ Z# a5 B% \
{
* |( M ]; H- b$ P/ I& Z MOTOA = 1;
) E8 _; {. w9 Y$ q2 I- b; b MOTOB = 0;
7 n2 `, L# C. _9 O) q MOTOC = 1;
2 x/ }3 L) z! j% \, S. A MOTOD = 1;, v G0 G6 I. ~0 T& T5 Y
delay(SPEED);
" P0 g. `( B8 k# ] ?9 P7 h5 r6 n# s3 M6 G
MOTOA = 1;
+ ~% C7 z- q6 R+ | MOTOB = 1;0 X# T0 \9 P6 M/ |8 G: @5 }
MOTOC = 1;
% n, m: F' Y) I MOTOD = 0;& i" [6 i* y/ A6 W: x
delay(SPEED);$ S& k) P' `+ I% i! e# K2 C- P" x
/ @; k7 ~# z: G
MOTOA = 0;
. U( n2 x, D5 w: k& f2 J; ^ MOTOB = 1;
5 I) j: u7 I* ?/ s w8 n1 m MOTOC = 1; u! a5 h, } D" A1 X5 F
MOTOD = 1; q! F* Y, G; v8 Z' G" A
delay(SPEED);
% Z" D% m/ P p- c2 C3 ~5 P% H/ j( q e+ a* Q! F U+ d* t; Z3 `
MOTOA = 1;# ]5 b8 `$ Z; G
MOTOB = 1; ]2 i3 Q. K+ O9 [ Z5 f
MOTOC = 0;
+ w# Q1 Y2 d' `" t MOTOD = 1;$ `( T C1 {/ j+ O3 y9 @" D) f
delay(SPEED);* E0 ^; s0 M" m0 f0 k* }
1 R" H1 Z: Z5 J6 J …………限于本文篇幅 余下代码请从论坛下载附件…………
. g: Y' u/ S; R; D
3 I% W, ] K. L; L
0 S1 g! Y H4 L H- H s% v |
|