[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);
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.