预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共11页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第PAGE11页共NUMPAGES11页第PAGE\*MERGEFORMAT11页共NUMPAGES\*MERGEFORMAT11页电动小汽车的设计系别:自动化系专业名称:自动化学生姓名:陈聪陈永宇蒋海勇学号:指导教师姓名、职称:汪再兴完成日期2010年08月26日摘要本实验是设计一个基于单片机控制的电动小车,小车具有前进,后退,转弯的功能,且在扩展部分具有循迹功能(按路面的黑色轨道行驶)。主要以两个直流电机作为主动力,通过红外对管传感器来采集信息,送入主控单元stc89c51单片机,处理完数据后完成相应动作。电机的驱动部分采取了高电压,高电流的二道驱动集成芯片L298n。关键字:单片机;电机;L298n;红外对管电子技术课程设计正文一、电子设计题目:电动小车设计二、电子设计任务和基本要求:1.设计任务基于单片机设计一台可以控制的电动的小车。2.基本要求(1).用单片机来控制电动小车前进后退。(2).能用单片机来对直流电机进行调速。(3).能控制电动小车进行左右转弯和停止。(4).扩展部分:能用传感器检测路面,使得小车按着地面的黑线循迹走。三、课程设计题目分析:1.设计要点(1).设计一个单片机小系统电路(2).设计电机驱动电路(3).设计传感器检测电路2.工作原理:(1)单片机小系统原理:单片机最小系统由晶振电路,复位电路和电源基本组成。晶振电路在电路上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。时钟电路用于产生单片机工作所需要的时钟信号,而时序的所研究的是指令执行中每个信号之间的相互的关系。单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格的按照时序进行工作。复位电路的成功与否,关系到单片机系统能否正常的工作,电路上电时候或电压波动不稳定的时候,当给单片机上电那一瞬间,电压有在几微秒内(有的是几毫秒内)不是直接跳变到5V的而是一个直线上升的阶段,这时候,单片机不能正常工作,需要复位电路给它延时以等到电压稳定。(2)电机驱动电路原理:本实验利用了L298N驱动电路。L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。表1是L298N功能逻辑图(3)传感器检测电路原理:传感器检测电路主要是利用了红外对管传感器,它对地面的黑线有很好的检测作用。由于红外接收管对通过黑线和白线的反射,而自身的阻值变化很大,这样利用这一点再和一个参考电压通过一个比较器LM393,从而输出数字信号再接到单片机的I/O口,以达到检测效果。四、电路原理图:电机驱动整体设计电路图:五、c程序设计部分:电动小汽车程序相对来说还是比较简单,其核心问题就是电机的PWN调速部分和检测路面黑线部分。还利用了中断函数的定时功能。源代码如下:#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitleft_1=P1^0;sbitleft_0=P1^1;sbitright_0=P1^2;sbitright_1=P1^3;sbitzuo_2=P2^1;//左眼2sbitzuo_1=P2^2;//左眼1sbitzhong=P2^3;//中sbityou_1=P2^4;//右眼1sbityou_2=P2^6;//右眼2ucharspeed=0,sp,num=0;/*voiddelay_1ms(uintt)//中断简易延时t=1,就为1ms{while(num1<=t*10);num1=0;}*/voidleftzhengzhuan()//左正转{left_1=0;left_0=1;}voidleftchangshu()//左常速{left_1=0;left_0=sp;}voidleftstop()//左停{left_1=0;left_0=0;}voidrightzhengzhuan()//右正转{right_1=0;right_0=1;}voidrightchangsh