|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我是个小白,因为要做的模型里需要单片机控制步进电机,所以最近抱佛脚学习了一下,虽然让步进电机动了起来,但是我改了好久也没法控制改变方向,我外面的电路是单片机的P1^0口接了驱动器的PUL-,P1^1口接了驱动器的DIR-,PUL+和DIR+共阳极接+5v,驱动器接的是单轴四线的步进电机
0 b4 E, z. a3 ?1 {. z3 i下面是我编的程序,我的目的是想让它先朝一个方向走,5s后改变方向朝另一个方向走,我对速度没有要求,只希望它可以改变方向就好,因为晚上就要交,所以时间很赶,希望各位大神能帮帮忙,帮我看一下出问题的原因以及如何改正,感激不尽5 }3 j! [, Q$ n6 O
#include <reg52.h>. c0 I. [# x8 _* w( G/ N& _
sbit PUL=P1^0;7 U2 O# {+ T3 O( B% A/ J/ y
sbit DIR=P1^1;2 { {( \# A0 U. z
unsigned int time;
5 {$ N5 L- u. E- C9 [1 Pvoid Time1Config();
" a6 r4 R- o& p9 {+ a4 k( `; P; r; u* H5 q
void main(void)) x$ P1 u' ~: Z4 M5 ~; U
{4 m1 l! G( b+ [4 E' Q
DIR=0;
" h& g( m8 e! I( ]- T( {4 { TMOD=0x01;
8 c' N- d3 d9 P* E } TH0=(65536-100)/256; 0 A( Z+ X, O6 n" T. ~; H0 t/ A
TL0=(65536-100)%256;; q' |) \' C' m# g$ g
EA=1;4 S$ o, K& p" M( C, }% o' ~
ET0=1;8 l5 B% A( Q# S M- P9 B7 b" ?
TR0=1;: P; [9 B0 Q3 m
while(1);
( M$ I1 A1 E! W {: T' ]; i3 l" @* |) z
if(time%50000==0&&time!=0)" ^ Z6 ?: B+ `1 n" ]
DIR=1;
$ K: D/ N# [, h8 ]1 f }5 V3 a; ^& e5 I6 R0 c ^7 U- X
) n5 z5 M1 a$ P U& h# w: f}
1 S+ y; J6 J0 ^! J
$ F: U% `- h/ H$ [4 X* Dvoid Time1Config() interrupt 1% k; L, \) \* `9 Y/ |4 o
{
/ P/ s; t. u; G% r TH0=(65536-100)/256;
# y( P* b* k, I+ J TL0=(65536-100)%256;4 @7 @+ o9 g5 e ]5 O7 Q2 j
if(PUL) PUL=0;
; s$ X8 c% H' E J+ F else PUL=1;2 b$ P. n5 R) d& G( S+ d# b
time++;
& G8 Z) l/ H6 z/ u' a* X- i+ ^5 T}% [; l6 ~- x: f; x" {3 V
) q T* l/ K' F; I) K/ [
|
|