步进电机写字机器人程序

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*转动160时,为45度。。。25时,向前走1cm*/

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit diancitie=P2^3;
sbit recept_led=P2^4;
sbit K4=P3^2;
sbit move_car_led=P2^5;
sbit recept_ok=P1^4;
sbit ledd=P1^1;
sbit key=P2^0;
extern bit tingzhi;
uchar code zheng[8]={0x98,0x1c,0x34,0x26,0x62,0x43,0xc1,0x89}; //正向旋转相序表
uchar code fan[8]={0x89,0xc1,0x43,0x62,0x26,0x34,0x1c,0x98}; //反向旋转相序表
uchar code zhuan1[8]={0x99,0x11,0x33,0x22,0x66,0x44,0xcc,0x88};//转弯1
uchar code zhuan2[8]={0x88,0xcc,0x44,0x66,0x22,0x33,0x11,0x99};//转弯2
uchar code luo_bi[8]={0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1,0xf9};
uchar code qi_bi[8]={0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8};
void delay(uint aa)
{
int x,bb;
for(x=0;x<aa;x++)
for(bb=0;bb<160;bb++); //1ms基准延时程序
}
void qibi()
{
int i,j;
for(i=0;i<50;i++)
{
for(j=0;j<8;j++)
{
P1=qi_bi[j];
delay(2);
}
}
}

void luobi()
{
int i,j;
for(i=0;i<50;i++)
{
for(j=0;j<8;j++)
{
P1=luo_bi[j];
delay(3);
}
}
}

int gostright(int z)
{
int i,j;
for(i=0;i<z;i++)
for(j=0;j<8;j++)
{
P0=zheng[j];
delay(1);
}
}

int goback(int z)
{
int i,j;
for(i=0;i<z;i++)
for(j=0;j<8;j++)
{
P0=fan[j];
delay(1);
}
}


int turnleft(int z) //左转
{
int i,j;
for(i=0;i<z;i++)
for(j=0;j<8;j++)
{
P0=zhuan1[j];
delay(2);
}
}


int turnright(int z) //右转
{
int i,j;
for(i=0;i<z;i++)
for(j=0;j<8;j++)
{
P0=zhuan2[j];
delay(2);
}
}

int turn45du_left(int time) //左转45度
{
int dd=0;
for(dd=0;dd<time;dd++)
turnleft(155);
}

int xiao45du_left(int time) //左转4.5度
{
int dd=0;
for(dd=0;dd<time;dd++)
turnleft(15);
}

int turn45du_right(int time) //右转45度
{
int dd=0;
for(dd=0;dd<time;dd++)
turnright(155);
}

int xiao45du_right(int time) //右转4.5度
{
int dd=0;
for(dd=0;dd<time;dd++)
turnright(15);
}

int gostright1cm(int time) //前进1cm
{
int dd=0;
for(dd=0;dd<time;dd++)
gostright(25);
}

int goback1cm(int time) //后退1cm
{
int dd=0;
for(dd=0;dd<time;dd++)
goback(25);
}

void main()
{

while(1)
{ qibi();
//turn45du_left(2);
gostright1cm(12);
luobi();
goback1cm(12);
qibi(); //1

gostright1cm(17);
turn45du_right(2);
xiao45du_left(1);
goback1cm(8);
//gostright1cm(10);
luobi();
goback1cm(10);
qibi(); //2

gostright1cm(28);
// gostright1cm(10);
turn45du_left(2);
xiao45du_right(1);
goback1cm(5);
//gostright1cm(10);
luobi();
goback1cm(12);
qibi(); //3

gostright1cm(31);
//gostright1cm(18);
turn45du_left(2);

goback1cm(8);
//gostright1cm(10);
luobi();
goback1cm(10);
qibi(); //4

turn45du_left(2);
gostright1cm(2);
turn45du
_right(2);


gostright1cm(9);
luobi();
goback1cm(6);
qibi(); // 1行

turn45du_left(2);
xiao45du_right(1);
gostright1cm(5);
turn45du_right(2);

gostright1cm(6);
luobi();
goback1cm(6);
qibi(); //2行

turn45du_left(2);
gostright1cm(4);
turn45du_right(2);

gostright1cm(6);
luobi();
goback1cm(6);
qibi(); //

gostright1cm(21);
turn45du_right(2);

goback1cm(10);
luobi();
goback1cm(8);
qibi();
gostright1cm(21);
turn45du_left(1) ;
goback1cm(19) ;
luobi();
goback1cm(1) ;
qibi();
goback1cm(19) ;
//
/* gostright1cm(22);
turn45du_left(2);
xiao45du_right(2);
goback1cm(17); */
}
}

相关文档
最新文档