|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我是个小白,因为要做的模型里需要单片机控制步进电机,所以最近抱佛脚学习了一下,虽然让步进电机动了起来,但是我改了好久也没法控制改变方向,我外面的电路是单片机的P1^0口接了驱动器的PUL-,P1^1口接了驱动器的DIR-,PUL+和DIR+共阳极接+5v,驱动器接的是单轴四线的步进电机2 e- H0 ~- K; M& I$ p
下面是我编的程序,我的目的是想让它先朝一个方向走,5s后改变方向朝另一个方向走,我对速度没有要求,只希望它可以改变方向就好,因为晚上就要交,所以时间很赶,希望各位大神能帮帮忙,帮我看一下出问题的原因以及如何改正,感激不尽! ^9 X- y$ z2 [ P! E
#include <reg52.h>
1 o* K# J4 a$ ^9 tsbit PUL=P1^0;
3 O O/ @- {0 I2 O9 V" Isbit DIR=P1^1;
6 [9 p- w5 Z& q4 Y% l& p1 _. t. eunsigned int time;
% m7 T6 M, f6 f- L1 Y8 Kvoid Time1Config();
* ^0 o4 s* x0 E2 A
v- m+ f- Y' K9 r' b5 U! c, g9 qvoid main(void); d9 k1 c/ @# {" X+ v
{" W5 v1 T% S) [+ J H+ _
DIR=0; W2 k$ s- T! X4 X( P
TMOD=0x01;. b0 |8 b: N* V- A" k6 U8 X: p
TH0=(65536-100)/256; 1 V8 n" a. [: }! D0 f% S
TL0=(65536-100)%256;
5 t! A* E. Y! X T4 I) E( n EA=1; D3 V! }, c3 l' D
ET0=1;
8 x1 D) u: W! t1 r TR0=1;
5 J3 r8 V1 K$ Z% |: B while(1);" c' e) Z r% W3 X& ^
{
/ G% n) _9 l) a$ O if(time%50000==0&&time!=0)( f) ?6 t8 x: ?5 C- O
DIR=1;
; b/ h8 i1 [- ~9 O3 d1 C/ j }# v% J: M; F! Z
5 A( A" u+ T& _6 g
}
$ }& {% s; N) ~9 v) J0 ?' Q; {6 y9 T* z U/ ^
void Time1Config() interrupt 1' i' U7 f$ Z- ?$ t
{
1 L) P! X" i$ A' H$ a, F: y& n TH0=(65536-100)/256;
& K- b* w/ v, d TL0=(65536-100)%256;
2 X# ^) w4 S! b- {: n7 k& W2 O( t$ G if(PUL) PUL=0;
- b% C+ t0 `1 w% e1 A8 r else PUL=1;6 O/ _: w; h% y! J! C% f4 g
time++; 1 O, o% }& Y& a7 r0 H, W% w, L# K
}
O" A* X. i- j6 H! w r l) P5 T+ J# j/ z) ?8 }5 t) R$ L) L
|
|