51hei.png (16.46 KB, 下載次數: 57)
下載附件
2020-4-13 03:05 上傳
單片機源程序如下:
/*************** writer:shopping.w ******************/
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code FFW[]=
{
0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
};
uchar code REV[]=
{
0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01
};
//sbit K1 = P3^0;
//sbit K2 = P3^1;
//sbit K3 = P3^2;
uchar N1 = 1;// 電機轉動圈數
uchar N2 = 1;// 電機轉動圈數
uchar N3 = 1;// 電機轉動圈數
uchar N4 = 1;// 電機轉動圈數
void DelayMS(uint ms);
void SETP_MOTOR1_FFW(uchar n);//left-motor1
void SETP_MOTOR1_REV(uchar n);//right-motor2
void SETP_MOTOR2_FFW(uchar n);//left-motor1
void SETP_MOTOR2_REV(uchar n);//right-motor2
void SETP_MOTOR3_FFW(uchar n);//left-motor1
void SETP_MOTOR3_REV(uchar n);//right-motor2
void SETP_MOTOR4_FFW(uchar n);//left-motor1
void SETP_MOTOR4_REV(uchar n);//right-motor2
void main()
{
int b=0;
int start=0;//電機開始標志
int flag=0;//電機停止標志
//先把電機角度歸零
P1 = 0x03;
P2 = 0x03;
P3 = 0x03;
P0 = 0x03;
while(1)
{
if(flag==0)
{
if(start == 0)
{
// P0 = 0xfd; //正轉1個角度
SETP_MOTOR1_FFW(N1);//qian jin
SETP_MOTOR2_FFW(N2);//qian jin
SETP_MOTOR3_FFW(N3);//qian jin
SETP_MOTOR4_FFW(N4);//qian jin
start=1;
DelayMS(1000);
}
else if(start == 1)
{
//反轉1個角度
SETP_MOTOR1_REV(N1);//qian jin
SETP_MOTOR2_REV(N2);//qian jin
SETP_MOTOR3_REV(N3);//qian jin
SETP_MOTOR4_REV(N4);//qian jin
flag=2;
start=2;
DelayMS(1000);
}
}
else if(flag==0)//停止轉動
{
P1 = 0x03;
P2 = 0x03;
P3 = 0x03;
P0 = 0x03;
}
}
}
void DelayMS(uint ms)
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
void SETP_MOTOR1_FFW(uchar n)//left-motor1
{
uchar i,j;
for(i=0;i<1*n;i++)
{
for(j=0;j<8;j++)
{
// if(K3 == 0) break;
P1 = FFW[j];
DelayMS(25);
}
}
}
//以下的for(i=0;i<1*n;i++)中1是代表轉動角度控制,齒輪數不同,數據不同。
void SETP_MOTOR1_REV(uchar n)//right-motor2
{
uchar i,j;
for(i=0;i<1*n;i++)
{
for(j=0;j<8;j++)
{
// if(K3 == 0) break;
P1 = REV[j];
DelayMS(25);
}
}
}
void SETP_MOTOR2_FFW(uchar n)//left-motor1
{
uchar i,j;
for(i=0;i<1*n;i++)
{
for(j=0;j<8;j++)
{
// if(K3 == 0) break;
P2 = FFW[j];
DelayMS(25);
}
}
}
void SETP_MOTOR2_REV(uchar n)//right-motor2
{
uchar i,j;
for(i=0;i<1*n;i++)
{
for(j=0;j<8;j++)
{
// if(K3 == 0) break;
P2 = REV[j];
DelayMS(25);
}
}
}
void SETP_MOTOR3_FFW(uchar n)//left-motor1
{
uchar i,j;
for(i=0;i<1*n;i++)
{
for(j=0;j<8;j++)
{
// if(K3 == 0) break;
P3 = FFW[j];
DelayMS(25);
}
}
}
void SETP_MOTOR3_REV(uchar n)//right-motor2
{
uchar i,j;
for(i=0;i<1*n;i++)
{
for(j=0;j<8;j++)
{
// if(K3 == 0) break;
P3 = REV[j];
DelayMS(25);
}
}
}
void SETP_MOTOR4_FFW(uchar n)//left-motor1
{
uchar i,j;
for(i=0;i<1*n;i++)
{
for(j=0;j<8;j++)
{
// if(K3 == 0) break;
P0 = FFW[j];
DelayMS(25);
}
}
}
void SETP_MOTOR4_REV(uchar n)//right-motor2
{
uchar i,j;
for(i=0;i<1*n;i++)
{
for(j=0;j<8;j++)
{
// if(K4 == 0) break;
P0 = REV[j];
DelayMS(25);
}
}
}
全部資料51hei下載地址:
1個單片機.zip
(110.79 KB, 下載次數: 38)
2020-4-12 23:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|