资源描述
摘摘 要要80C51 单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。这里介绍的是如何用 80C51 单片机来实现长春工业大学的毕业设计,该设计是结合科研项目而确定的设计类课题。本系统以设计题目的要求为目的,采用 80C51 单片机为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。整个系统的电路结构简单,可靠性能高。实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。采用的技术主要有:(1)通过编程来控制小车的速度;(2)传感器的有效应用;(3)新型显示芯片的采用。关键词关键词 :80C51 单片机;光电检测器;PWM 调速;电动小车。ABSTRACT80C51 is a 8 bit single chip computer. Its easily using and multi-function suffer large users. This article introduces the CCUT graduation design with the 80C51 single chip computer. This design combines with scientific research object. This system regards the request of the topic, adopting 80C51 for controlling core, super sonic sensor for test the hinder. It can run in a high and a low speed or stop automatically. It also can record the time, distance and the speed or searching light and mark automatically the electric circuit construction of whole system is simple, the function is dependable. Experiment test result satisfy the request, this text emphasizes introduced the hardware system designs and the result analyze.The adoption of technique as:(1)Reduce the speed by program the engine;(2)Efficient application of the sensor;(3)The adoption of the new display chip.Key words:80C51 single chip computer; light electricitydetector;PWM speed adjusting;Electricity motive small car.目目 录录1 绪绪 论论 .31.1 本课题研究的背景和意义 .31.2 智能循迹小车设计原理 .52 方案设计与论证方案设计与论证 .52.1 直流调速系统 .52.2 检测系统 .63 智能寻迹小车模块设计智能寻迹小车模块设计 .103.1 总体方案 .103.2 传感检测单元 .113.2.1 小车循迹原理.113.2.2 传感器的选择及检测电路设计.113.2.3 传感器的安装.123.3 软件控制单元 .133.3.1 单片机选型及程序流程.133.3.2 车速的控制.133.3.3 电机驱动单元.143.3.4 蜂鸣器电路设计.153.3.5 稳压电源设计.154 系统功能测试系统功能测试 .154.1 测试仪器及设备.154.2 功能测试.155 结束语结束语 .17致致 谢谢 .18参考文献参考文献 .19附附 录录 .201 相关芯片介绍 .201.1 单片机概述.201.2 LM339 芯片介绍.241.3 L298N 芯片介绍.271.4 7805 芯片介绍.282 小车控制程序源代码(C).301 绪绪 论论1.1 本课题研究的背景和意义本课题研究的背景和意义随着汽车工业的迅速发展,关于汽车的研究也就越来越受人关注。全国电子大赛和省内电子大赛几乎每次都有智能小车这方面的题目,全国各高校也都很重视该题目的研究。可见其研究意义很大。本设计就是在这样的背景下提出的,指导教师已经有充分的准备。本题目是结合科研项目而确定的设计类课题。设计的智能电动小车应该能够实时显示时间、速度、里程,具有自动寻迹、寻光、避障功能,可程控行驶速度、准确定位停车。根据题目的要求,确定如下方案:在现有玩具电动车的基础上,加装光电、红外线、超声波传感器及金属探测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。本设计采用 MCS-51 系列中的 80C51 单片机。以 80C51 为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。80C51是一款八位单片机,它的易用性和多功能性受到了广大使用者的好评。它是第三代单片机的代表。第三代单片机包括了 Intel 公司发展 MCS-51 系列的新一代产品,如8C15280C51FA/FB80C51GA/GB8C4518C452,还包括了PhilipsSiemensADMFujutsuOKIHarria-MetraATMEL 等公司以 80C51 为核心推出的大量各具特色与 80C51 兼容的单片机。新一代的单片机的最主要的技术特点是向外部接口电路扩展,以实现 Microcomputer 完善的控制功能为己任,将一些外部接口功能单元如 A/DPWMPCA(可编程计数器阵列)WDT(监视定时器)高速 I/O 口计数器的捕获/比较逻辑等。这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单片机应用系统设计提供了更加灵活的方式。Philips 公司还为这一代单片机80C51 系列 8C592 单片机引入了具有较强功能的设备间网络系统总线-CAN(Controller Area Network BUS).新一代单片机为外部提供了相当完善的总线结构,为系统的扩展与配置打下了良好的基础。 本设计就采用了比较先进的 80C51 为控制核心,80C51 采用 CHOMS 工艺,功耗很低。该设计具有实际意义,可以应用于考古、机器人、医疗器械等许多方面。尤其是在足球机器人研究方面具有很好的发展前景;在考古方面也应用到了超声波传感器进行检测。所以本设计与实际相结合,现实意义很强。1.2 智能循迹小车设计原理智能循迹小车设计原理这里的循迹是指小车在黑色地板上循白线行走,通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过 3cm。1.3 智能循迹小车设计要求智能循迹小车设计要求(1)自动寻迹小车从安全区域启动。(2)小车按指定路线运行,自动区分直线轨道和弯路轨道,在指定弯路处拐弯,实现灵活前进、转弯、倒退等功能,在轨道上划出设定的地图。2 方案设计与论证方案设计与论证根据题目的要求,确定如下方案:在现有玩具电动车的基础上,加装光电检测器,实现对电动车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制,控制灵活、可靠,精度高,可满足对系统的各项要求。2.1 直流调速系统直流调速系统方案一:串电阻调速系统。方案二:静止可控整流器。简称 V-M 系统。方案三:脉宽调速系统。旋转变流系统由交流发电机拖动直流电动机实现变流,由发电机给需要调速的直流电动机供电,调节发电机的励磁电流即可改变其输出电压,从而调节电动机的转速。改变励磁电流的方向则输出电压的极性和电动机的转向都随着改变,所以 G-M 系统的可逆运行是很容易实现的。该系统需要旋转变流机组,至少包含两台与调速电动机容量相当的旋转电机,还要一台励磁发电机,设备多、体积大、费用高、效率低、维护不方便等缺点。且技术落后,因此搁置不用。V-M 系统是当今直流调速系统的主要形式。它可以是单相、三相或更多相数,半波、全波、半控、全控等类型,可实现平滑调速。V-M 系统的缺点是晶闸管的单向导电性,它不允许电流反向,给系统的可逆运行造成困难。它的另一个缺点是运行条件要求高,维护运行麻烦。最后,当系统处于低速运行时,系统的功率因数很低,并产生较大的谐波电流危害附近的用电设备。采用晶闸管的直流斩波器基本原理与整流电路不同的是,在这里晶闸管不受相位控制,而是工作在开关状态。当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管关断时,直流电源与电动机断开,电动机经二极管续流,两端电压接近于零。脉冲宽度调制(Pulse Width Modulation) ,简称 PWM。脉冲周期不变,只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。与 V-M 系统相比,PWM 调速系统有下列优点:1)由于 PWM 调速系统的开关频率较高,仅靠电枢电感的滤波作用就可以获得脉动很小的直流电流,电枢电流容易连续,系统的低速运行平稳,调速范围较宽,可达1:10000 左右。由于电流波形比 V-M 系统好,在相同的平均电流下,电动机的损耗和发热都比较小。2)同样由于开关频率高,若与快速响应的电机相配合,系统可以获得很宽的频带,因此快速响应性能好,动态抗扰能力强。3)由于电力电子器件只工作在开关状态,主电路损耗较小,装置效率较高。根据以上综合比较,以及本设计中受控电机的容量和直流电机调速的发展方向,本设计采用了 H 型单极型可逆 PWM 变换器进行调速。脉宽调速系统的主电路采用脉宽调制式变换器,简称 PWM 变换器。脉宽调速也可通过单片机控制继电器的闭合来实现,但是驱动能力有限。为顺利实现电动小汽车的前行与倒车,本设计采用了可逆 PWM 变换器。可逆 PWM 变换器主电路的结构式有 H 型、T 型等类型。我们在设计中采用了常用的双极式 H 型变换器,它是由 4 个三极电力晶体管和 4 个续流二极管组成的桥式电路。2.2 检测系统检测系统检测系统主要实现光电检测,即利用各种传感器对电动车的避障、位置、行车状态进行测量。1) 行车起始、终点及光线检测:本系统采用反射式红外线光电传感器用于检测路面的起始、终点(2cm 宽的黑线) ,玩具车底盘上沿黑线放置一套,以适应起始的记数开始和终点的停车的需要。利用超声波传感器检测障碍。光线跟踪,采用光敏三极管接收灯泡发出的光线,当感受到光线照射时,其 c-e 间的阻值下降,检测电路输出高电平,经 LM393 电压比较器和 74LS14 施密特触发器整形后送单片机控制。本系统共设计两个光电三极管,分别放置在电动车车头的左、右两个方向,用来控制电动车的行走方向,当左侧光电管受到光照时,单片机控制转向电机向左转;当右侧光电管受到光照时,单片机控制转向电机向右转;当左、右两侧光电管都受到光照时,单片机控制直行。见图 2.1 电动车的方向检测电路(a)。行车方向检测电路(见图 2.2 电动车的方向检测电路(b))采用反射接收原理配置了一对红外线发射、接收传感器。该电路包括一个红外发光二极管、一个红外光敏三极管及其上拉电阻。红外发光二极管发射一定强度的红外线照射物体,红外光敏三极管在接收到反射回来的红外线后导通,发出一个电平跳变信号。此套红外光电传感器固定在底盘前沿,贴近地面。正常行驶时,发射管发射红外光照射地面,光线经白纸反射后被接收管接收,输出高电平信号;电动车经过黑线时,发射端发射的光线被黑线吸收,接收端接收不到反射光线,传感器输出低电平信号后送80C51 单片机处理,判断执行。哪一种预先编制的程序来控制玩具车的行驶状态。前进时,驱动轮直流电机正转,进入减速区时,由单片机控制进行 PWM 变频调速,通过软件改变脉冲调宽波形的占空比,实现调速。最后经反接制动实现停车。前行与倒车控制电路的核心是桥式电路和继电器。电桥上设置有两组开关,一组常闭,另一组常开。图 2.1 电动车的方向检测电路(a)图 2.2 电动车的方向检测电路(b)检测放大器方案:方案一:使用普通单级比例放大电路。其特点是结构简单、调试方便、价格低廉。但是也存在着许多不足。如抗干扰能力差、共模抑制比低等。方案二:采用差动放大电路。选择优质元件构成比例放大电路,虽然可以达到一定的精度,但有时仍不能满足某些特殊要求。例如,在测量本设计中的光电检测信号时需要把检测过来的电平信号放大并滤除干扰,而且要求对共模干扰信号具有相当强的抑制能力。这种情况下须采用差动放大电路,并应设法减小温漂。但在实际操作中,往往满足了高共模抑制比的要求,却使运算放大器输出饱和;为获得单片机能识别的 TTL 电平却又无法抑制共模干扰。方案三:电压比较器方案。电压比较器的功能是比较两个电压的大小,例如将一个信号电压 Ui 和一个参考电压 Ur 进行比较,在 UiUr 和 Ui15k-200-V/mV灌电流LsinkVi(-)1V,Vi(+)=0V,Vo(p)1.5V616-mA输出漏电流IOLEVi(-)=0V,Vi(+)=1V,VO=5V-0.1-nA1.3 L298N 芯片介绍芯片介绍L298 是 SGS 公司的产品,比较常见的是 15 脚 Multiwatt 封装的 L298N,内部同样包含 4 通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N 可接受标准 TTL 逻辑电平信号 VSS,VSS 可接 457 V 电压。4 脚 VS 接电源电压,VS 电压范围 VIH 为2546 V。输出电流可达 25 A,可驱动电感性负载。1 脚和 15 脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298 可驱动 2 个电动机,OUT1,OUT2 和 OUT3,OUT4 之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12 脚接输入控制电平,控制电机的正反转。EnA,EnB 接控制使能端,控制电机的停转。其引脚图如图 3 所示。图 3 L298N 引脚图L298N 的管脚分布及其功能描述见表 4 所示。表 4 L298N 管脚及其功能MW.15PowerSoName Function1;152;19Sense A;Sense BBetween this pin and ground is connected the sense resistor to control the current of the load.2;34;5Out1;Out2Outputs of the Bridge A;the current that flows through the load connected between thsese two pins is monitored at pin 1.46VsSuppy Voltage for the Power Output Stages.Anon-inductive 100nF capacitor must be connected between this pin and ground. 5;77;9Input1;input2TTL Compatible inputs of the Bridge A6;118;14EnableA;enableBTTL Compatible inputs of the L state disable the bridge A (enable A)and/or the bridge B(enable B)81,10,11,20GND Ground912VSS Suppy Voltage for the Logic Blocks A100nF capactor must be connected between this pin and ground.10;1213;15Input3;input4 t TTL Compatible inputs of the Bridge B13;1416;17Out3;Out4Outputs of the Bridge B.The current that flows through the load connected between thses two pins is monitored at pin 15.-3;18N,CNot connected1.4 7805 芯片介绍芯片介绍X78XX 系列是三端正电源稳压电路,它的封装形式为 TO-220。它有一系列固定的电压输出,应用非常的广泛,每种类型由于内部电流限制,以及过热保护和安全工作区的保护,使它基本上不会损坏,如果能够提供足够的散热片,他们就能够提供大于 1.5A的输出电流,虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就能获得各种不同的电压和电流。特点:特点:最大输出电流为 1.5A。输出电压为 5V;6V;8V;9V;10V;12V;15V;18V;24V。热过载保护。短路保护。输出晶体管安全工作区保护。7805 的内部框架如图 4 所示。图 4 7805 内部框架图7805 芯片的极限参数见表 5 所示。表 5 极限参数(Ta=25)参数符号数值单位输入电压(Vo=5V to 18V) (Vo=24V)Vi3540VV结到空气热阻RJA65/W结到壳热阻RJC5/W工作温度Topr0+125贮存温度Tstg-65+150X7805 的电参数如下表 6 所示。表 6 X7805 电参数(除特别说明,0Tj125,lo=500Ma,Vi=10V,Ci=33Uf,Co=0.1uF)参数符号测试条件最小值典型值最大值单位Tj=254.85.05.2.V输出电压Vo5.0mAlo1.0A,Po15W4.755.005.25VVi=7.5V to 20VTj=25,Vi=7.5V to 25V4.0100mV线性调整率VoTj=25,Vi=8V to 12V1.650mVTj=25,lo=5.0mA to 1.5mA9100mV负载调整率VoTj=25,lo=250mA to 750mA450mV静态电流IQTj=255.08mVLo=5mA to 1.0 A0.030.5mV静态电流变化率IQVi=8V to 25V0.30.8mV输出电压温漂Vo/TLo=5mA0.8Mv/输出噪音电压VNf=10Hz to 100kHz,Ta=2542uV文波抑制比RRf=120Hz,Vi=8V to 18V6273dB输入输出电压差VoLo=1.0A,Tj=252V输出阻抗RoF=1kHz15m短路电流IscVi=35V,Ta=25230mA峰值电流IpkTj=252.2A2 小车控制程序源代码(小车控制程序源代码(C)#include reg51.htypedef unsigned int uint;typedef unsigned char uchar;sbit p1_0 = P10; /红外检测sbit p1_1 = P11;sbit p1_2 = P12;sbit p1_3 = P13;sbit speaker = P14; /speakersbit p2_0 = P20; /驱动电机sbit p2_1 = P21;sbit p2_2 = P22;sbit p2_3 = P23;/* 延时函数 总共延时 1ms 乘以 count*/void DelayX1ms(uint count)uint j;while(count-!=0)for(j=0;j72;j+);/* 蜂鸣器函数定义 count:发出 beep 的个数 soundlong:音长,声音的长短 tone:声音的高低,以 KHz 为单位*/void speakerfunc(uint count,uchar soundlong,uchar tone)uint i,j,k,SpFreq;SpFreq=(1000/tone)/2;for(i=0;icount;i+)for(j=0;jsoundlong;j+)for(k=0;kSpFreq;k+)speaker=1;for(k=0;kSpFreq;k+)speaker=0;DelayX1ms(12);/* 电机转动函数定义*/void ZhiXing()p2_0=0;p2_1=1;p2_2=0;p2_3=1;void ZuoZhuan()p2_0=1;p2_1=0;p2_2=0;p2_3=1;speakerfunc(3,20,20);void YouZhuan()p2_0=0;p2_1=1;p2_2=1;p2_3=0;speakerfunc(3,20,20);void Stop()p2_0=1;p2_1=1;p2_2=1;p2_3=1; /* 主函数*/void main()while(1)if(p1_0=1 & p1_1=1 & p1_2=1 & p1_3=1)ZhiXing();else if(p1_0=1 & p1_1=0 & p1_2=1 & p1_3=1)ZuoZhuan();else if(p1_0=1 & p1_1=1 & p1_2=0 & p1_3=1)YouZhuan();else if(p1_0=0)ZuoZhuan();else if(p1_3=0)YouZhuan();else if(p1_0=0 & p1_1=0 & p1_2=0 & p1_3=0)YouZhuan();DelayX1ms(1000);elseStop(); while(1);
展开阅读全文