1、循迹小车设计报告基于单片机C212020年4月19日文档仅供参考,不当之处,请联系改正。 循迹小车组员;09机电2班,陈海韬,吴顺全目录目录.0摘要;.11. 任务及要求11.1任务.12系统设计方案.12.1小车循迹原理12.2控制系统总体设计.23系统方案.23.1 循迹传感器模块23.1.1红外线传感器ST188简介.33.1.2比较器LM324简介.33.1.3具体电路33.1.4传感器安装.43.2控制器模块.53.3电源模块.63.4电机及驱动模块.63.4.1电机63.4.2驱动64.软件设计.74.1PWM控制.74.2总体软件流程图74.3。小车循迹流程图.84.4中断程序流
2、程图.84.5单片机测序95.参考资料9 自动循迹小车摘要; 3.3电源模块两节3.7伏点离子电池和7808的稳压芯片。VI是7.4输入端,VO是5输出。3.4.1电机电机型号:GA12YN20该款电机适用条件:直径:12mm,机身不含轴长度:26mm电压工作范围:DC1.5- 12.0V6V的空载转速有: 120rpm轴长:10mm4.软件设计4.1 PWM控制是经过设计编程ENA,ENB等于0或1的占空比来调速。4.2总软件流程图4.3小车循迹流程图4.4中断程序流程图4.5程序#include unsigned char zkb1=0;/左占空比 unsigned char zkb2=0
3、; /右占空比 unsigned char t=0;/定时器中断计数器 sbit LSEN1=P10; sbit LSEN2=P11; sbit RSEN1=P12; sbit RSEN2=P13; sbit IN1=P20; sbit IN2=P21; sbit IN3=P22; sbit IN4=P23; sbit ENA=P24; sbit ENB=P25; /*初始化定时器,中断* void init() TMOD=0x01;TH0=0XF8;TL0=0X30; EA=1;ET0=1;TR0=1; /*中断函数+脉宽调制* void timer() interrupt 1 if (tz
4、kb1)ENA=1;else ENA=0;if (t=30)t=0; /*直走*/ void qianjin() zkb1=15;zkb2=15;/*左走函数1*/void turn_left1() zkb1=25;zkb2=0;/*左走函数2*/void turn_left2()zkb1=25;zkb2=0;/*右走函数1*/void turn_right1()zkb1=0;zkb2=25;/*右走函数2*/void turn_right2()zkb1=0;zkb2=25;/*循迹函数*/void xunji()unsigned char flag;if (RSEN1=0)&(RSEN2=0
5、)&(LSEN1=0)&(LSEN2=0)flag=0; /*直走*/else if (RSEN1=1)&(RSEN2=0)&(LSEN1=0)&(LSEN2=0)flag=1; /*右走函数1*/else if (RSEN2=1)&(RSEN1=0)&(LSEN1=0)&(LSEN2=0)flag=2; /*右走函数2*/else if (LSEN1=1)&(LSEN2=0)&(RSEN1=0)&(RSEN2=0)flag=3; /*左走函数1*/else if (LSEN2=1)&(LSEN1=0)&(RSEN1=0)&(RSEN2=0)flag=4; /*左走函数2*/else if (
6、RSEN1=1)&(RSEN2=1)&(LSEN1=1)&(LSEN2=1)flag=5; /*直走*/switch (flag)case 0:qianjin();break;case 1:turn_right1();break;case 2:turn_right2();break ;case 3:turn_left1();break;case 4:turn_left2();break ;case 5:qianjin();break;default :break;/*主函数*/void main()init();zkb1=15;zkb2=15;while(1)IN1=0;IN2=1;/*给电机加启动*/IN3=0;IN4=1;ENA=1;ENB=1;while (1)xunji();/*循迹*/5.参考资料教科书,百度。