dcqq88 发表于 2012-12-9 11:20:16

单片机产生脉冲控制步进电机出现问题

#include <regs52.h>
#define uchar unsigned char
#define uintunsigned int
//按钮功能
sbit btn_left=P2^7;
sbit btn_right=P2^6;

//脉冲和方向
sbit M1=P1^0;
sbit M2=P1^1;
sbit dir1=P1^2;
sbit dir2=P1^3;


//速度控制标志位
uchar hz=330;           //设定3K
uchar pul=0;

//函数的声明
void delay(uint z);


void main()
{
P1=0xff;
EA=1;
ET0=1;
TMOD=0x01;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;

        while(1)
{
        if(btn_left==0)
        {
                M1=pul;
                dir1=0;
        }
        else        M1=1;

       
        if(btn_right==0)
        {
                M1=pul;
                dir1=1;
        }
        else        M1=1;
}
}


void delay(uint z)
{
        uchar i;
        while(z--)
        {
        for(i=120;i>0;i--);
        }
}



//脉冲产生定时器
void timer0() interrupt 1
{
TH0=(65536-hz)/256;
TL0=(65536-hz)%256;
        pul=~pul;

}

为什么控制的时候,按键经常不灵???



yjjeyvce 发表于 2012-12-15 16:52:50

路过
{:biggrin:}
页: [1]
查看完整版本: 单片机产生脉冲控制步进电机出现问题