好文档 - 专业文书写作范文服务资料分享网站

PWM调速循迹智能小车c代码51单片机

天下 分享 时间: 加入收藏 我要投稿 点赞

//T0产生双路PWM信号,L298N为直流电机调速,接L298N时相应的管脚上最好接上10K 的上拉电阻。

/* 晶振采用12M,产生的PWM的频率约为100Hz */

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit en1=P3^4; /* L298的Enable A */

sbit en2=P3^5; /* L298的Enable B */

sbit s1=P1^0; /* L298的Input 1 */

sbit s2=P1^1; /* L298的Input 2 */

sbit s3=P1^3; /* L298的Input 3 */

sbit s4=P1^2; /* L298的Input 4 */

sbit R=P2^0;

sbit C=P2^1;

sbit L=P2^2;

sbit key=P1^4;

uchar t=0; /* 中断计数器*/

uchar m1=0; /* 电机1速度值*/

uchar m2=0; /* 电机2速度值*/

uchar tmp1,tmp2; /* 电机当前速度值*/

/* 电机控制函数index-电机号(1,2); speed-电机速度(0-100) */

void motor(uchar index, char speed)

{

if(speed<=100)

{

if(index==1) /* 电机1的处理*/

{

m1=abs(speed); /* 取速度的绝对值*/

s1=1;

s2=0;

}

if(index==2) /* 电机2的处理*/

{

m2=abs(speed); /* 电机2的速度控制*/

s3=1;

s4=0;

}

}

}

void Back(void)

{

s1=0;

s2=1;

s3=1;

s4=0;

}

void GO(void)

{

s1=1;

s2=0;

8jny88vgez4c2db011p1797950lq6e00fay
领取福利

微信扫码领取福利

微信扫码分享