|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我是个小白,因为要做的模型里需要单片机控制步进电机,所以最近抱佛脚学习了一下,虽然让步进电机动了起来,但是我改了好久也没法控制改变方向,我外面的电路是单片机的P1^0口接了驱动器的PUL-,P1^1口接了驱动器的DIR-,PUL+和DIR+共阳极接+5v,驱动器接的是单轴四线的步进电机2 d* t: ^- B% [3 a# L2 J/ C4 a
下面是我编的程序,我的目的是想让它先朝一个方向走,5s后改变方向朝另一个方向走,我对速度没有要求,只希望它可以改变方向就好,因为晚上就要交,所以时间很赶,希望各位大神能帮帮忙,帮我看一下出问题的原因以及如何改正,感激不尽1 M8 _4 k3 F! C8 A+ q
#include <reg52.h>& _- |! w" U+ o" {% ]
sbit PUL=P1^0;
( U0 ~9 ]1 L- h2 R4 U0 a) Bsbit DIR=P1^1;
1 f3 @( N" d$ X4 K2 Aunsigned int time;# `1 J1 _: T; u( n- u5 k
void Time1Config();1 O2 Z, |# E: \( t! p/ ?
( ]- J) h: |8 _
void main(void)
0 L1 b+ j4 x9 c9 p{) d$ Y( P/ \8 n$ v
DIR=0;
; |6 A/ L0 W+ M; B" ?% B# e; {" V" h TMOD=0x01;
- L+ ?; W: J; x1 y( m TH0=(65536-100)/256;
6 @* f6 G4 r) ~7 `! \ TL0=(65536-100)%256;
- Y& l7 E! j5 U/ _- y* `" e- d# `0 i EA=1;2 E% C# r0 `; B* l" t
ET0=1;. R. E/ k# |; q+ Z
TR0=1;
" ?( N. C, |9 M! J/ ?! K while(1);
: Q* T$ K9 H! }5 f( H3 y' c {+ R& u4 o# ?. I
if(time%50000==0&&time!=0)5 A" U8 N( i" N ]2 ?% L }2 y
DIR=1; x+ w9 F6 w* ^4 I w ^
} h3 n8 s/ b/ e! D. L& T9 q
2 L3 y8 S: T& v# F- W/ H. c
}
( P" }6 m0 {! \. }- a2 a# G! j! O4 Q# _7 y
void Time1Config() interrupt 1+ O% F1 W0 m/ u1 \1 \) V/ m
{
y! }7 z2 X4 K$ |1 w2 I TH0=(65536-100)/256; # J* E q: o1 b/ L ~. m
TL0=(65536-100)%256;
! Z) o4 Q1 E' F0 h if(PUL) PUL=0;
9 E* I/ l' [; V2 m6 s; d$ A else PUL=1;0 L' p3 I( j0 B# @
time++; : @5 d8 e, @: \; V. O, I. e
}
* K# ^# g: n3 U, k" a+ F5 ~, ^: T7 m+ K- G6 W% n# u3 O* K* n9 Y
|
|