|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我是个小白,因为要做的模型里需要单片机控制步进电机,所以最近抱佛脚学习了一下,虽然让步进电机动了起来,但是我改了好久也没法控制改变方向,我外面的电路是单片机的P1^0口接了驱动器的PUL-,P1^1口接了驱动器的DIR-,PUL+和DIR+共阳极接+5v,驱动器接的是单轴四线的步进电机
# z8 `) H# M; f) ?3 V& G3 c下面是我编的程序,我的目的是想让它先朝一个方向走,5s后改变方向朝另一个方向走,我对速度没有要求,只希望它可以改变方向就好,因为晚上就要交,所以时间很赶,希望各位大神能帮帮忙,帮我看一下出问题的原因以及如何改正,感激不尽
! U* P; u4 c/ Y, C4 y$ p#include <reg52.h>! C5 e# R4 J( G
sbit PUL=P1^0;
$ e! z2 f% k, isbit DIR=P1^1;! b* @0 ?+ X9 }+ C
unsigned int time;7 Y5 h3 }5 V6 v+ c
void Time1Config();
, x( }5 K" e( [1 L( G! F$ F
9 B1 I! E& L6 y# F# k/ b- {% Nvoid main(void)3 k& ?1 N8 l7 r1 Y3 b0 s" L
{
- d: n" R: ^7 D+ x DIR=0;
/ Y. |6 q0 I6 K, g9 Q4 n3 D TMOD=0x01;( u( a5 @1 r S0 `* p
TH0=(65536-100)/256;
* T$ Z D9 H* O6 ? TL0=(65536-100)%256;
6 |& @; C( H1 M: J; a EA=1;
# z0 A! O7 S- ] ET0=1;+ O& m) I" B# z4 v6 o: I2 W' ~9 }2 L" s
TR0=1;
8 M! d0 j/ g+ f+ w9 O8 D; J# c while(1);
4 }# T8 j9 q, g3 u, x {* u) q7 _' ?$ F [, N! y% d0 H6 R
if(time%50000==0&&time!=0)- U# Z# p" B9 y& s i. K- [
DIR=1;$ I& u% e4 h* v$ {
}
. ?3 \) P3 N' `# v
* o1 a1 ]5 R$ x1 v. \}, m+ M7 ~+ y% ^1 T7 h
/ Q. P* M+ k# b- C6 B0 S
void Time1Config() interrupt 1
0 V4 I3 Y7 S* w a; s{7 b- @9 r! T+ W
TH0=(65536-100)/256; 6 u# K1 v9 G; Z8 E$ I Y
TL0=(65536-100)%256;) ^7 x2 X9 ^/ g. L# G, R1 o4 ^
if(PUL) PUL=0;
$ {5 \1 P I7 e W: l4 x else PUL=1;
* T$ u' A# F; J1 z+ T- q1 d time++;
Q7 |& q7 d9 t7 g/ q4 L$ h}) _5 o3 P, V! O- c
0 M0 @- U6 w+ ?4 Z
|
|