1、 - 1 - 目 录 摘要2 一、绪论3 (一)避障小车的作用和意义3 (二)避障小车的的现状4 二、方案设计与论证4 (一)避障模块4 (二)主控系统5 (三)电机驱动模块7 (四)机械系统8 (五)电源系统8 三、硬件设计9 (一)信号检测模块9 (二)主控电路9 (三)驱动电路10 (四)总体设计11 四、软件设计13 (一)总体结构框图13 (二)总体程序流程图14 (三)总程序15 五、安装和调试23 结束语25 致谢25 参考文献25 - 2 - 论 文 摘 要 利用红外光对管检测黑线,并以 STC89C52 单片机为控制芯片控制电动小汽车的速 度及转向,从而实现自动循迹的功能。其
2、中小车驱动由 L298N 驱动电路完成,速度由单 片机输出的 PWM 波控制。 关键词:智能小车 STC89C52单片机 L298N 红外光对管 - 3 - 蓝牙控制蓝牙控制/延时 void go_forward(); /前走 void go_back();/后退 - 17 - void turn_left();/左转 void turn_right();/右转 void stop(); /停 void main(void) uchar xdata rcvdata1; EA=1; /开启总中断 SCON = 0x50; /串口方式1,允许接收 TMOD=0X21; TH1 = 0xFD; /1
3、1.0592MHZ 9600 波特率 TL1 = 0xFD; TR1 = 1; /启动定时器1 EX0=1; /开启外部中断 0,即P32引脚 IT0=0; /设置成 低电平触发方式,IT0=1为下降沿触发 - 18 - PWM1=0;/防止小车上电就开始跑 PWM2=0; while(1) rcvdata0=0; if(RI) rcvdata0=SBUF;/把接收到的数据保存 RI=0; SBUF=rcvdata0; if(SBUF=1) go_forward(); if(SBUF=2) go_back(); if(SBUF=3) turn_left(); if(SBUF=4) turn_right(); if(SBUF=5) - 19 - stop(); /把收到的数据通过串口发送出去 while(!TI); TI=0; /* * *外部中断 0 C51中断号1 0的优先级最高,关键字“interrupt“ , 这是C语言 的中断函数表示法 *本中断的响应是P32引脚有低电平触发 * */ void int_0() interrupt 0 / 后退防止碰住障碍物 DIR1=1; PWM1=1; - 20 - DI