循迹避障小车毕业设计论文 - 图文(8)

2019-04-16 16:15

PCB图:

单片机PCB图

30

L298N电机驱动模块PCB图

31

附录B 程序代码

/智能循迹小车的#C程序/

#include

/*********************第一部分*********************/ //以下是电机驱动芯片L298N 管脚位声明

sbit PWM1=P1^0; //电机A/B使能端 sbit PWM2=P1^1;

sbit IN1=P1^2; //电机控制端 sbit IN2=P1^3; sbit IN3=P1^4; sbit IN4=P1^5;

sbit RP1=P2^0; //传感器管脚位声明 sbit RP2=P2^1; sbit RP3=P2^2; sbit RP4=P2^3;

int count1,count2; //用于中断计数 //延时函数,延时z秒 void delay(int z) { int x,y; for(x=z;x>0;x--p for(y=124;y>0;y--); }

/*********************第二部分 电机控制子函数*********************/ void forward1() //电机1前进 { IN1=0; IN2=1; }

void forward2() //电机2前进

32

{ IN3=0; IN4=1; }

void back1() //电机1后退 { IN1=1; IN2=0; }

void back2() //电机2后退 { IN3=1; IN4=0; }

/*********************电机的速度控制 用PWM调速*********************/ void speed(int cnt1,int sd1,int cnt2,int sd2) {

if(cnt1

if(cnt2

/**************电机的前进、左转、右转控制***************/ void turn(int cnt1,int sd1,int cnt2,int sd2) {

forward1();

33

forward2();

speed(cnt1,sd1,cnt2,sd2); }

/*********************电机的后退控制*********************/ void back(int cnt1,int sd1,int cnt2,int sd2) { back1(); back2();

speed(cnt1,sd1,cnt2,sd2); }

/*********************第三部分 主函数*********************/ void main() { int num=0;

TMOD=0x01; //中断模式设置 EA=1;

TH0=(65536-1000)/256; //定时 1ms TL0=(65536-1000)%6; ET0=1; TR0=1;

turn(count1,250,count2,250); //使小车冲上黑色轨道 delay(350); //延时等待小车冲上黑色轨道 while(1) {

if(RP1==1&&RP2==1&&RP3==1&&RP4==1)

back(count1,50,count2,50); //1111 当四个LED都没检测到黑线时,小车后退 if(RP1==1&&RP2==0&&RP3==0&&RP4==1)

turn(count1,200,count2,200); //1001 当第二、第三个LED检测到黑线时,小车前进

if(RP1==0&&RP2==1&&RP3==1&&RP4==0)

34


循迹避障小车毕业设计论文 - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:三维打印快速成型机材料的研究 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: