[51]L298N電機驅動

/*簡易版*/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
/*
1000
0100
0010
0001
*/
uint time=5;
uint i;
sbit a1=P1^0;
sbit a2=P1^1;
sbit b1=P1^2;
sbit b2=P1^3;

void delay(uint z)
{
    uint x,y;
    for(x=z; x>0; x--)
        for(y=110; y>0; y--);
}
void main()
{
    while(1)
    {
     a1=1;
     b1=0;
     a2=0;
     b2=0;
     delay(time);
     a1=0;
     b1=1;
     a2=0;
     b2=0;
     delay(time);
     a1=0;
     b1=0;
     a2=1;
     b2=0;
     delay(time);
     a1=0;
     b1=0;
     a2=0;
     b2=1;
     delay(time);
    }
}



/*複雜版*/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
/*
1-2相勵磁方式:磁場旋轉一週需要換相8次,精度更高
1000
1100
0100
0110
0010
0011
0001
1001
*/
uint time=50;
sbit a1=P1^0;
sbit a2=P1^1;
sbit b1=P1^2;
sbit b2=P1^3;
void delay(uint z)
{
    uint x,y;
    for(x=z; x>0; x--)
        for(y=110; y>0; y--);
}
void main()
{
    while(1)
    {
     a1=1;
     b1=0;
     a2=0;
     b2=0;
     delay(time);
     a1=1;
     b1=1;
     a2=0;
     b2=0;
     delay(time);
     a1=0;
     b1=1;
     a2=0;
     b2=0;
     delay(time);
     a1=0;
     b1=1;
     a2=1;
     b2=0;
     delay(time);
     a1=0;
     b1=0;
     a2=1;
     b2=0;
     delay(time);
     a1=0;
     b1=0;
     a2=1;
     b2=1;
     delay(time);
     a1=0;
     b1=0;
     a2=0;
     b2=1;
     delay(time);
     a1=1;
     b1=0;
     a2=0;
     b2=1;
     delay(time);
    }
}

發佈了51 篇原創文章 · 獲贊 23 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章