搜索
您的当前位置:首页正文

电机转动程序

来源:爱够旅游网


#include

void delay (dy)

{

while(--dy);

}

/******读取按键子程序 getkey()*************/

unsigned char getkey (void)

{ unsigned char k,tem,keytem;

keytem=0;

P1=0xff;

tem=P1 & 0xff; //第一次读取按键值

if(tem!=0xff) //判断有无按键按下

{

for(k=0;k<20;k++)

delay(250); //延时一段时间

tem=P1 & 0xff; //再次读取按键值

if(tem!=0xff)

{

if(tem==0xf7) keytem=4; //表示K3按键按下

else if(tem==0xfb) keytem=3; //表示K2按键按下

else if(tem==0xfd) keytem=2; //表示K1按键按下

else if(tem==0xfe) keytem=1; //表示K0按键按下

}

}

while(tem!=0xff) tem=P1 & 0xff; //等待按键释放

return(keytem); //返回按键值

}

unsigned char code F_Rotation[4]={0xf9,0xf5,0xf6,0xfa};//正转表格

unsigned char code B_Rotation[4]={0xfa,0xf6,0xf5,0xf9};//反转表格

void Delayms(unsigned int i)

{

int j,k;

for(j=0;jfor(k=0;k<120;k++);

}

main()

{ unsigned char i,t=10;

unsigned char keyboard=0;

while(1)

{ keyboard=getkey();

if(keyboard==1)

t=t+10;

for(i=0;i<4;i++) {

P0=F_Rotation[i]; Delayms(t); }

}

}

#include

void (dy)

{

//4相

//输出对应的相 可以自行换成反转表格 //改变这个参数可以调整电机转速

while(--dy);

}

/******读取按键子程序 getkey()*************/

unsigned char getkey (void)

{ unsigned char k,tem,keytem;

keytem=0;

P1=0xff;

tem=P1 & 0xff; //第一次读取按键值

if(tem!=0xff) //判断有无按键按下

{

for(k=0;k<20;k++)

delay(250); //延时一段时间

tem=P1 & 0xff; //再次读取按键值

if(tem!=0xff)

{

if(tem==0xf7) keytem=4; //表示K3按键按下

else if(tem==0xfb) keytem=3; //表示K2按键按下

else if(tem==0xfd) keytem=2; //表示K1按键按下

else if(tem==0xfe) keytem=1; //表示K0按键按下

}

}

while(tem!=0xff) tem=P1 & 0xff; //等待按键释放

return(keytem); //返回按键值

}

unsigned char code F_Rotation[4]={0xf9,0xf5,0xf6,0xfa};//正转表格

unsigned char code B_Rotation[4]={0xfa,0xf6,0xf5,0xf9};//反转表格

void Delayms(unsigned int i)

{

int j,k;

for(j=0;jfor(k=0;k<100;k++);

}

main()

{ unsigned char i,t=10;

unsigned char keyboard=0;

while(1)

{ keyboard=getkey();

if(keyboard==0)

for(i=0;i<4;i++) //4相

{

P0=F_Rotation[i]; //输出对应的相 可以自行换成反转表格

Delayms(t); //改变这个参数可以调整电机转速

}

if(keyboard==1)

t=t+5;

if(keyboard==2)

t=t-5;

if(keyboard==3)

for(i=0;i<4;i++) //4相

{

P0=F_Rotation[i]; //输出对应的相 可以自行换成反转表?

Delayms(t); //改变这个参数可以调整电机转速

}

if(keyboard==4)

for(i=0;i<4;i++) //4相

{

P0=B_Rotation[i]; Delayms(t); }

}

}

#include

void delay (dy)

{

while(--dy);

//输出对应的相 可以自行换成反转表格

//改变这个参数可以调整电机转速

}

/******读取按键子程序 getkey()*************/

unsigned char getkey (void)

{ unsigned char k,tem,keytem;

keytem=0;

P1=0xff;

tem=P1 & 0xff; //第一次读取按键值

if(tem!=0xff) //判断有无按键按下

{

for(k=0;k<20;k++)

delay(250); //延时一段时间

tem=P1 & 0xff; //再次读取按键值

if(tem!=0xff)

{

if(tem==0xf7) keytem=4; //表示K3按键按下

else if(tem==0xfb) keytem=3; //表示K2按键按下

else if(tem==0xfd) keytem=2; //表示K1按键按下

else if(tem==0xfe) keytem=1; //表示K0按键按下

}

}

while(tem!=0xff) tem=P1 & 0xff; //等待按键释放

return(keytem); //返回按键值

}

unsigned char code F_Rotation[4]={0xf9,0xf5,0xf6,0xfa};//正转表格

unsigned char code B_Rotation[4]={0xfa,0xf6,0xf5,0xf9};//反转表格

void Delayms(unsigned int i)

{

int j,k;

for(j=0;jfor(k=0;k<120;k++);

}

/*******正转程序*******/

void zhengzhuan(unsigned char t)

{unsigned char i,m=1;

while(m)

{

keyboard=getkey();

if(keyboard!=0&&keyboard!=1)

m=0;

for(i=0;i<4;i++) //4相

{

P0=F_Rotation[i]; //正转

Delayms(t); }} //改变这个参数可以调整电机转速

}

/*******反转程序*********/

void fanzhuan(unsigned char t)

{unsigned char i,m=1;

while(m)

{ if(keyboard!=2)

m=0;

for(i=0;i<4;i++) //4相

{

P0=B_Rotation[i]; //反转

Delayms(t); } //改变这个参数可以调整电机转速

}

}

main()

{ unsigned char i,t=10;

unsigned char keyboard=0;

while(1)

{ keyboard=getkey();

if(keyboard==0||keyboard==1)

zhengzhuan(t);

if(keyboard==2)

fanzhuan(t);

if(keyboard==3)

t=t-2;

if(keyboard==4)

t=t+2;

}

}

#include

void delay (dy)

{

while(--dy);

}

/******读取按键子程序 getkey()*************/

unsigned char getkey (void)

{ unsigned char k,tem,keytem;

keytem=0;

P1=0xff;

tem=P1 & 0xff; //第一次读取按键值

if(tem!=0xff) //判断有无按键按下

{

for(k=0;k<20;k++)

delay(250); //延时一段时间

tem=P1 & 0xff; //再次读取按键值

if(tem!=0xff)

{

if(tem==0xf7) keytem=4; //表示K3按键按下

else if(tem==0xfb) keytem=3; //表示K2按键按下

else if(tem==0xfd) keytem=2; //表示K1按键按下

else if(tem==0xfe) keytem=1; //表示K0按键按下

}

}

while(tem!=0xff) tem=P1 & 0xff; //等待按键释放

return(keytem); //返回按键值

}

unsigned char code F_Rotation[4]={0xf9,0xf5,0xf6,0xfa};//正转表格

unsigned char code B_Rotation[4]={0xfa,0xf6,0xf5,0xf9};//反转表格

void Delayms(unsigned int i)

{

int j,k;

for(j=0;jfor(k=0;k<120;k++);

}

/*******正转程序*******/

void zhengzhuan(unsigned char t)

{unsigned char keyboard,i,m=1;

while(m)

{

keyboard=getkey();

if(keyboard==2)

m=0;

if(keyboard==3)

t=t-2;

if(keyboard==4)

t=t+2;

for(i=0;i<4;i++) //4相

{

P0=F_Rotation[i]; //正转

Delayms(t); }} //改变这个参数可以调整电机转速

}

/*******反转程序*********/

void fanzhuan(unsigned char t)

{unsigned char keyboard,i,m=1;

while(m)

{ keyboard=getkey();

if(keyboard==1)

m=0;

if(keyboard==3)

t=t-2;

if(keyboard==4)

t=t+2;

for(i=0;i<4;i++) //4相

{

P0=B_Rotation[i]; //反转

Delayms(t); } //改变这个参数可以调整电机转速

}

}

main()

{ unsigned char t=10;

unsigned char keyboard=0;

while(1)

{ keyboard=getkey();

if(keyboard==1)

zhengzhuan(t);

if(keyboard==2)

fanzhuan(t);

}

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top