这是两个步进电机画图的源程序,用keilc51编译,用单片机实现的
#include<reg52.h>
#include<math.h>
sbit cp1 = P1^0;
sbit cw1 = P1^1;
sbit cp2 = P1^2;
sbit cw2 = P1^3;
float step(float x1,float y1,float x2,float y2)
{
float buj;
float chd1;
chd1 = sqrt((x1) * (x1) + y1 * y1) - sqrt((x2) * (x2) + y2 * y2);
buj = chd1 / 0.01;
return buj;
}
void delay(int i)
{
while(i --);
}
void buj(float buj1,float buj2)
{
int i,j,y,b;
if(buj1 < 0)
{
cw1 = 1;
buj1 = -buj1;
}
else
cw1 = 0;
if(buj2 < 0)
{
cw2 = 1;
buj2 = -buj2;
}
else
cw2 = 0;
if(buj1 > buj2){
b = buj1/buj2;
y = buj1 - b * buj2;
for(i = 1; i <= buj2; i ++){
for(j = 1; j <= b; j ++){
cp1 = 0;
delay(100);
cp1 = 1;
delay(100);
}
cp2 = 0;
delay(100);
cp2 = 1;
delay(100);
if(y != 0){
cp1 = 0;
delay(100);
cp1 =