|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
步进电机编程
5 L! S5 u/ @( m% R5 Y& g5 p' |! y( L5 b- S2 v# l
. Z7 ?+ }9 z9 [
- v0 l/ g" c) _5 k# l
# X( o8 h) T1 R+ n& F/ A2 V/ ?
/**************************************************************************************
5 v. I3 ?6 F( I# J. [9 V5 T7 p* 步进电机实验 *8 J9 g% @* E, C6 W% C) k
实现现象:下载程序后,按照光盘内操作视频接线,步进电机旋转
" W6 b' }( T4 a( x注意事项:无 & F3 x; c# b' V* p [+ X
***************************************************************************************/
' V" g6 T( B7 l" s! u a& e- F( J ]
+ v, I; }# o) {$ {#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器3 F6 U) |# _3 F5 W; @/ X
#include<intrins.h> //因为要用到左右移函数,所以加入这个头文件% W8 c: L# |1 C3 s/ ]8 ~* r9 ?
; e) R9 C% T, P, N% T; f5 N
typedef unsigned int u16; //对数据类型进行声明定义
: J: g" W i% B6 X$ d7 @typedef unsigned char u8;3 T: j B$ O8 T
7 L9 l7 ?$ A5 E0 [
sbit MOTOA = P1^0;- f3 n: }4 Z2 |1 c
sbit MOTOB = P1^1;5 _, I3 M5 p7 K& g2 `) }& b
sbit MOTOC = P1^2;
! c6 T1 H3 g' B) \sbit MOTOD = P1^3; 9 A% t" f* \8 y
& s# z. r8 L- }8 E) L2 N
#define SPEED 200 ; {0 l% i) k. \" c+ m) K
9 p+ d3 `6 f) w7 c- k' E+ @. ?2 M' N/*******************************************************************************: s/ V# j8 N/ B8 c, d: O2 `
* 函 数 名 : delay- x i ]* Y# B( ~
* 函数功能 : 延时函数,i=1时,大约延时10us
7 x1 z3 x9 U( J ?! Q*******************************************************************************/, s9 B/ A3 S; @; \6 w
void delay(u16 i); d4 p" H/ s/ n# M
{' m' I$ [" \! Q8 }9 \ V1 t' r3 M
while(i--); - H( c/ O% V' L" K% U3 ]: q. q
}4 s0 n) A- a6 R" }# [
4 f# g6 f3 Z$ k1 v& J+ k8 T0 R/ W+ |4 c ~% h7 E/ u
/*******************************************************************************; t% j u) e J6 S7 e
* 函 数 名 : main
$ I" S' W8 w' y/ m* 函数功能 : 主函数
% I9 P' B3 T+ m* 输 入 : 无
" E; p0 L, K. d' g* 输 出 : 无
4 O3 y0 U2 o# Q1 [& P% E3 o1 p*******************************************************************************/
6 S6 [- Y" q2 h0 B/ q' }void main()& S! g5 P( ]* J, L- s8 p
{
# M' q$ \; o) a h% m! U B P1=0X00;
( F: b, O; L9 w+ E" g- e% I while(1), D( d- P) E2 b- A
{
1 `6 E, S& x0 O Q# v: m MOTOA = 1;
" Y7 @; f7 m3 [3 _9 c( u$ z MOTOB = 0;/ B' k9 z, k: z6 E3 f
MOTOC = 1;& N' ~) J5 C/ i
MOTOD = 1;5 C7 J8 [. P4 ^* S! x6 a0 T/ t W
delay(SPEED);4 U4 X M4 X2 f( [6 E! \% \# C
" u9 M! K n9 F) F5 |8 F$ w
MOTOA = 1;
6 T' _3 r5 Z+ L l7 ^3 D2 [3 M MOTOB = 1;2 t5 n' Q0 _2 n" w9 h7 ]3 c
MOTOC = 1;( N5 l: `9 Y2 k" ~7 @5 m& q
MOTOD = 0;
( J1 E5 e2 r' @6 q delay(SPEED);# F% ^3 O: p9 P6 o
8 B1 D' ]2 n6 e: t MOTOA = 0;
( Q) ^8 {# [6 y MOTOB = 1;$ Z, z3 M- T/ {( B
MOTOC = 1;
, U/ ~2 x( s& R7 L2 k MOTOD = 1;
1 T" W# J( P$ n delay(SPEED);
0 _8 G& x* o, V w3 D: |+ o5 ~, x/ i6 r# s
MOTOA = 1;
0 z; X( _4 r8 N4 e9 j5 f. V. q3 S( `8 ^ MOTOB = 1;6 K* A2 z/ s0 A. M, M
MOTOC = 0;& U! y# w6 J; t5 J0 M
MOTOD = 1;& c+ Z4 g6 T4 U- v2 J
delay(SPEED);2 A; i: {. Z% B3 C# ~
! s8 {3 a: I7 ` o
…………限于本文篇幅 余下代码请从论坛下载附件………… x! H0 d+ a/ E$ u" i' D
8 O2 z+ ]' Q1 e e& E2 |0 y4 z
7 D: l: i1 u6 `( t
|
|