电动汽车课程设计(智能小车) 联系客服

发布时间 : 星期六 文章电动汽车课程设计(智能小车)更新完毕开始阅读8a1bcc9a5acfa1c7ab00cc3e

北京理工大学珠海学院2016届电动汽车课程设计

#define Left_moto_go {P1_2=0,P1_3=1;} //左电机向前走 #define Left_moto_back {P1_2=1,P1_3=0;} //左边电机向后转

#define Left_moto_Stop {P1_5=0;} //左边电机停转 #define Right_moto_go {P1_6=1,P1_7=0;} #define Right_moto_back {P1_6=0,P1_7=1;} #define Right_moto_Stop {P1_4=0;}

//右边电机向前走 //右边电机向后走

//右边电机停转

unsigned char pwm_val_left =0;//变量定义

unsigned char push_val_left =0;// 左电机占空比N/20 unsigned char pwm_val_right =0;

unsigned char push_val_right=0;// 右电机占空比N/20 bit Right_moto_stop=1; bit Left_moto_stop =1; unsigned int time=0;

/***********************************************/ //延时函数

void delay(unsigned int k) {

unsigned int x,y; }

/**********************************************/ //前速前进

void run(void) {

push_val_left=8;

push_val_right=8;

Left_moto_go ; //左电机往前走

-第17页-

for(x=0;x

//速度调节变量 0-20。。。0最小,20最大

北京理工大学珠海学院2016届电动汽车课程设计

}

Right_moto_go ; //右电机往前走

//左转

void leftrun(void) {

push_val_right=8;

Right_moto_go ; //右电机往前走

Left_moto_Stop ; //左电机停止 } //右转

void rightrun(void) { }

/* PWM调制电机转速 */ /* 左电机调速 */

/*调节push_val_left的值改变电机转速,占空比*/

void pwm_out_left_moto(void) push_val_left=8;

Left_moto_go ; //左电机往前走 Right_moto_Stop ; //右电机往前走

{

if(Left_moto_stop) {

if(pwm_val_left<=push_val_left)

{

Left_moto_pwm=1;

} else

-第18页-

北京理工大学珠海学院2016届电动汽车课程设计

{

Left_moto_pwm=0;

}

if(pwm_val_left>=20) pwm_val_left=0;

} else {

Left_moto_pwm=0;

} }

/* 右电机调速 */ void pwm_out_right_moto(void) {

if(Right_moto_stop) {

if(pwm_val_right<=push_val_right)

{

Right_moto_pwm=1; } else {

Right_moto_pwm=0;

}

if(pwm_val_right>=20) pwm_val_right=0;

} else

-第19页-

北京理工大学珠海学院2016届电动汽车课程设计

{

Right_moto_pwm=0; } }

/*TIMER0中断服务子函数产生PWM信号*/ void timer0()interrupt 1 using 2 {

TH0=0XFc;

TL0=0X18; time++;

pwm_val_left++; pwm_val_right++; pwm_out_left_moto(); pwm_out_right_moto();

//1Ms定时

} #endif

2. 遥控程序

#include

#define Left_moto_go {P1_2=0,P1_3=1;} //左边电机向前走

#define Left_moto_back {P1_2=1,P1_3=0;} //左边电机向后转

#define Left_moto_Stop {P1_2=0,P1_3=0;} //左边电机停转 #define Right_moto_go {P1_6=1,P1_7=0;} #define Right_moto_back {P1_6=0,P1_7=1;} #define Right_moto_Stop {P1_6=0,P1_7=0;}

//右边电机向前走 //右边电机向后走 //右边电机停转

#define Imax 14000 //此处为晶振为11.0592时的取值, #define Imin 8000 //如用其它频率的晶振时, #define Inum1 1450 //要改变相应的取值。

-第20页-