单片机PCB图
L298N电机驱动模块PCB图
附录B 程序代码
智能循迹小车的#C程序
#include forward1(); 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=()256; 定时 1ms TL0=()%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) turn(count1,150,count2,150); 0110 当第一、第四个LED检测到黑线时,小车减速前进 *********************小车左转********************* if(RP1==0&&RP2==1&&RP3==1&&RP4==1) turn(count1,0,count2,150); 0111 当只有第一个LED检测到黑线时,小车左转 if(RP1==1&&RP2==0&&RP3==1&&RP4==1) turn(count1,80,count2,150); 1011 当第二个LED检测到黑线时,小车偏左转 if(RP1==0&&RP2==0&&RP3==1&&RP4==1) turn(count1,0,count2,100); 0011 当第一、二个LED检测到黑线时,小车左转 if(RP1==0&&RP2==0&&RP3==0&&RP4==1) turn(count1,0,count2,200); 0001 当第一、二、三个LED检测到黑线时,小车左大转 *********************小车右转********************* if(RP1==1&&RP2==1&&RP3==0&&RP4==1) turn(count1,150,count2,80); 1101 当第三个LED检测到黑线时,小车偏右转 if(RP1==1&&RP2==1&&RP3==1&&RP4==0) turn(count1,180,count2,0); 1110 当第四个LED检测到黑线时,小车右转 if(RP1==1&&RP2==1&&RP3==0&&RP4==0) turn(count1,100,count2,0); 1100 当第三、四个LED检测到黑线时,小车右转 if(RP1==1&&RP2==0&&RP3==0&&RP4==0) turn(count1,200,count2,0); 1000当第二、三、四个LED检测到黑线时,小车右大转 ****************小车检测到全黑情况的处理**************** if(RP1==0&&RP2==0&&RP3==0&&RP4==0) { if(num==0) { back1(); 0000 当四个LED第一次检测到黑线时,左轮后退右轮前进,小车左转 forward2(); delay(100); 延时100ms,等待小车转过弯道 } if(num>0 && num<6) { turn(count1,200,count2,200); 0000 当四个LED再次检测到黑线的次数小于6次 时 即到达黑线时小车前进速度大于后退速度 } if(num>=6) { PWM1=0; PWM2=0; 当四个LED第六次检测到黑线时,小车停止 } num++; } } *************第四部分 中断服务函数************* void time0()interrupt 1 { TH0=()256; 定时1ms TL0=()%6; count1++; count2++; if(count1>=500) 周期是500ms count1=0; if(count2>=500) 周期是500ms count2=0; } 附录C 硬件实物图 自动循迹小车 TCRT5000 循迹传感器模块 L298N 电机驱动模块 单片机电路