[C]
纯文本查看 复制代码
#include "reg52.h"***it Moto_RA=P1^6;***it Moto_RB=P1^5;***it Moto_LA=P1^4;***it Moto_LB=P1^3;//左右电机驱动/************************************函数名称:void Delay(unsigned char num)*函数功能:延时*参数说明:num 延时时间 数值最大255*返回说明:无*其它说明:不精准延时***********************************/void Delay(unsigned char num){unsigned int temp=0;while(num--){temp=2000;while(temp--);}}/************************************函数名称:void Car_Run(unsigned char dire)*函数功能:行进方向控制*参数说明:dire 方向 0:停止 1:前 2:后 3:左 4:右*返回说明:无*其它说明:左右方向为原地转弯 【若想前进中和后退中转弯 需要与调速函数配合 使两个车轮转速不同】***********************************/void Car_Run(unsigned char dire){switch (dire){case 0: //停止{Moto_RA=0;Moto_RB=0;Moto_LA=0;Moto_LB=0;}break;case 1://前进{Moto_RA=1;Moto_RB=0;Moto_LA=1;Moto_LB=0;}break;case 2://后退{Moto_RA=0;Moto_RB=1;Moto_LA=0;Moto_LB=1;}break;case 3://左转{Moto_RA=1;Moto_RB=0;Moto_LA=0;Moto_LB=1;}break;case 4://右转{Moto_RA=0;Moto_RB=1;Moto_LA=1;Moto_LB=0;}break;default:break;}}/************************************函数名称:void main(void)*函数功能:程序入口*参数说明:无*返回说明:无*其它说明:main函数有且只有一个***********************************/void main(void){while(1){Car_Run(1);//前进Delay(20);Car_Run(2);//后退Delay(20);Car_Run(3);//左转Delay(20);Car_Run(4);//右转Delay(20);Car_Run(0);//停止Delay(20);}}
补充内容 (2016-5-15 13:38):
#include
***it IN1=P1^0;
***it IN2=P1^1;
***it ENA=P1^3;
void delay(unsigned int z);
void delay_us(unsigned int aa);
void main()
{
while(1)
{
unsigned int i,cycle=0,T=2048;
IN1=1; /...
补充内容 (2016-5-15 13:40):
IN2=0;
for(i=0;i<1000;i++)
{
delay(10); //PWM占空比为50%,修改延时调整PWM脉冲
ENA=~ENA;
}
IN1=0; //反转
IN2=1;
for(i=0;i<1000;i++)
{
delay(20); //PWM占空比为50%,修改延时调...
补充内容 (2016-5-15 13:40):
ENA=~ENA;
}
IN1=1; //自动加速正转
IN2=0;
while(cycle!=T);
{
ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
IN1=0; //自动减速反转
IN2=1;
while...
补充内容 (2016-5-15 13:41):
while(cycle!=T);
{
ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
}
}
补充内容 (2016-5-15 13:42):
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay_us(unsigned int aa)
{
while(aa--);
}
[C] 纯文本查看 复制代码
#include "reg52.h"***it Moto_RA=P1^6;***it Moto_RB=P1^5;***it Moto_LA=P1^4;***it Moto_LB=P1^3;//左右电机驱动/************************************函数名称:void Delay(unsigned char num)*函数功能:延时*参数说明:num 延时时间 数值最大255*返回说明:无*其它说明:不精准延时***********************************/void Delay(unsigned char num){unsigned int temp=0;while(num--){temp=2000;while(temp--);}}/************************************函数名称:void Car_Run(unsigned char dire)*函数功能:行进方向控制*参数说明:dire 方向 0:停止 1:前 2:后 3:左 4:右*返回说明:无*其它说明:左右方向为原地转弯 【若想前进中和后退中转弯 需要与调速函数配合 使两个车轮转速不同】***********************************/void Car_Run(unsigned char dire){switch (dire){case 0: //停止{Moto_RA=0;Moto_RB=0;Moto_LA=0;Moto_LB=0;}break;case 1://前进{Moto_RA=1;Moto_RB=0;Moto_LA=1;Moto_LB=0;}break;case 2://后退{Moto_RA=0;Moto_RB=1;Moto_LA=0;Moto_LB=1;}break;case 3://左转{Moto_RA=1;Moto_RB=0;Moto_LA=0;Moto_LB=1;}break;case 4://右转{Moto_RA=0;Moto_RB=1;Moto_LA=1;Moto_LB=0;}break;default:break;}}/************************************函数名称:void main(void)*函数功能:程序入口*参数说明:无*返回说明:无*其它说明:main函数有且只有一个***********************************/void main(void){while(1){Car_Run(1);//前进Delay(20);Car_Run(2);//后退Delay(20);Car_Run(3);//左转Delay(20);Car_Run(4);//右转Delay(20);Car_Run(0);//停止Delay(20);}}
补充内容 (2016-5-15 13:38):
#include
***it IN1=P1^0;
***it IN2=P1^1;
***it ENA=P1^3;
void delay(unsigned int z);
void delay_us(unsigned int aa);
void main()
{
while(1)
{
unsigned int i,cycle=0,T=2048;
IN1=1; /...
补充内容 (2016-5-15 13:40):
IN2=0;
for(i=0;i<1000;i++)
{
delay(10); //PWM占空比为50%,修改延时调整PWM脉冲
ENA=~ENA;
}
IN1=0; //反转
IN2=1;
for(i=0;i<1000;i++)
{
delay(20); //PWM占空比为50%,修改延时调...
补充内容 (2016-5-15 13:40):
ENA=~ENA;
}
IN1=1; //自动加速正转
IN2=0;
while(cycle!=T);
{
ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
IN1=0; //自动减速反转
IN2=1;
while...
补充内容 (2016-5-15 13:41):
while(cycle!=T);
{
ENA=1;
delay_us(cycle++);
ENA=0;
delay_us(T-cycle);
}
}
}
补充内容 (2016-5-15 13:42):
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void delay_us(unsigned int aa)
{
while(aa--);
}
举报