下面是我寫的步進電機程序。我細分裝置設置的是4000,下面應該會有3200個脈沖,也就是會旋轉0.8周,實際運行后并沒有0.8周這么多;后來我將程序兩個循環a>=0,和i>=0;發現電機運動停不下來,我想知道是怎么回事?謝謝
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit zmc=P1^0;
sbit fmc=P1^1;
sbit zfx=P1^2;
sbit ffx=P1^3;
void delay5ws(uchar);
void main()
{
    uint i,a;
    i=0;
    a=0;
    zmc=0;
    fmc=0;
    zfx=0;
    ffx=0;
    delay5ws(5);
    zfx=1;
    for(a=80;a>0;a--)
    {
        for(i=40;i>0;i--)
        {
            
//            delay5ws(5);
            zmc=1;
//            delay5ws(2);
            zmc=0;
        }
    }
    while(1)
    {
        zmc=0;
        fmc=0;
        zfx=0;
        ffx=0;
    }
}
void delay5ws(uchar n)
{
    uint l,m;
    for(l=n;l>0;l--)
        for(m=2;m>0;m--);
}