无线遥控小车论文.doc 33页

  • 565.00 KB
  • 2022-04-22 11:23:05 发布

无线遥控小车论文.doc

  • 33页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'姓名王延大专业班级12电子4班论文名称智能遥控小车指导教师梁召峰 姓名王延大专业班级12电子4班论文名称智能遥控小车指导教师梁召峰 毕业设计(论文)任务书专业(班):13电子1班姓名:陈仕泓Ø课题名称、主要内容和基本要求课题名称:超声波测距离主要内容:小小测量超声波到反射物的距离,此设计中关键的是计算从超声波发出到途中遇到障碍物反射回来的往返时间,然后利用有关参数根据距离计算公式算出所测距离,要求测距的范围是0.5到10米,所测到距离要能够实时显示。基本要求:1、收发传感器均选用超声波传感器;2、距离要求显示;3、探测距离0.5m—10m;4、工作温度-20—45℃。Ø进度安排周次工作内容执行情况2-4选定题目、明确题目要求、开题报告5-8硬件设计与程序编制9-10软硬件调试与软硬件完善11-12系统硬软件联合调试13-14撰写论文、教师审阅论文、完成论文的修改、定稿及评审工作 15参加毕业答辩Ø指导教师评语指导教师签名:Ø评阅教师评语评阅教师签名:Ø毕业设计(论文)成绩 答辩委员会主任签名: 目录摘要5Abstract5第一章方案的论证61.1AVR单片机的选择61.1.1AVR单片机用于智能小车的优点:61.1.2AVR单片机用于智能小车的缺点:61.2C51单片机的选择61.2.1STC89C52单片机简介工作原理:61.2.2C51单片机用于智能小车的优点:61.2.3C51单片机用于智能小车的缺点:71.2.4C51单片机用领域:71.3选题的原因及结果7第二章系统硬件设计92.1系统硬件的总体设计92.1.1系统硬件总体框图92.1.2各个组成模块92.1.3总体电路原理图122.2遥控电路设计122.2.1驱动电路13第三章系统软件设计163.1主程序框图:163.2电机驱动程序163.4避障模块、避障框图19第四章系统调试224.1 测试工具:224.2PCB的设计制作与安装224.3 调试过程22结束语23致谢23参考文献24 摘要超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。本文主要是根据超声波传感器的原理和特性,利用传输中距离与时间的关系,计算从超声波发出到途中遇到障碍物反射回来的往返时间,然后利用有关参数,由距离计算公式算出所测距离,此次设计采用AT89C51单片机为核心器件,形成相应的测距电路,信号处理电路,自行编制单片机控制程序,并进行硬件调试、软件调试,最后进行软硬件联调,达到性能要求。该测距仪主要由超声波发射器电路、超声波接收器电路、单片机控制电路、环境温度检测电路及显示电路构成。关键词:超声波测距,51单片机,传感器,LED显示屏等前言随着我国汽车产业的高速发展,我国已开始进入私家车时代,而随之增加的是交通事故的发生的频率。为了提高汽车运行的安全性,倒车雷达预警系统的问世不仅受到了广大顾客的青睐,也使电子产业成汽车行业中的新兴热点。尤其是近年来倒车雷达受到了商家的热捧,很多防盗器的生产商纷纷涉足倒车雷达,使得我国汽车电子行业逐渐繁荣起来,倒车雷达俨然形成一个较大的商机,市场也开始呈现出一派竞争的态势。倒车雷达系统经历了三个阶段,六代技术的改良。最早的是倒车防撞仪,功能单一只能测试车后限定范围内的障碍物,然后发出警报。慢慢的倒车雷达发展到可以根据距离远近程度分段报警。前两个阶段的倒车雷达一般采用集成电路,所以功能比较单一。随着人们对汽车驾驶辅助系统易用性要求的提高,以及单片机价格不断下降和汽车电子系统网络化发展的要求,新型的倒车雷达都是以单片机为核心的智能测距传感系统。要求倒车雷达连续测距并显示障碍物距离,并采用不同间歇鸣叫频率的声音报警提示距离,让驾驶员全神贯注地注视场景。汽车电子系统网络化发展还要求作为驾驶辅助系统子系统的倒车雷达具有通信功能,能够把数据发送到汽车总线上。如最为先进的倒车雷达系统为智能可视倒车雷达系统,它在车尾部装上针孔摄像头,倒车时可以在显示屏上显示车后的真实图像。而倒车雷达控制系统的核心部分就是超声波测距仪的研制。因此,设计好的超声波测距仪就显得非常重要了。这就是我设计超声波测距仪的意义。 第一章方案的论证1.1AVR单片机的选择1.1.1AVR单片机用于超声波测距仪的优点:1)高可靠性、作用强、低功耗和低价位。2)多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等作用,零外围电路也可以工作。3)在相同的系统时钟下AVR运行速度最快。1.1.2AVR单片机用于超声波测距仪的缺点:1)功能寄存器多,不适合初学者。2)供货不稳定,导致价格起伏波动较大,对于长期产品的成本核算不利。不过总的说来这几年还是处于价格下降趋势,毕竟是较新的芯片系列。3)型号较少,且价格在15以下的型号均没有开放总线,对于低成本应用比较困难。1.2C51单片机的选择1.2.1STC89C52单片机简介工作原理:STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构,在本系统中定时器T0用来测量超声波的传输时间。1.2.2C51单片机用于超声波测距仪的优点:1)集成度高,体积小,简单易操作,可靠性好。2)性价比高,控制能力强。3)开发装置多。4)低功耗,低电压,便于生产便携式产品。 1.2.3C51单片机用于超声波测距仪的缺点:1)解密容易。2)不具备自编程能力,使用不够灵活。3)改变延时间受到硬件设置的限制1.2.4C51单片机的应用与设计方案:C51单片机广泛应用于:温度控制系统,电子密码锁,智能风扇设计,宿舍门禁管理系统,自动电阻测量仪等。本系统主要是基于单片机的测距系统,以STC89C52RC单片机为核心控制器件,分为超声波发射电路和超声波检测接收电路、显示三部分。超声波测距电路的设计框图如图1-1所示:本方案采用单片机作为控制系统,用单片机产生40kHz的超声波,脉冲持续时间为0.2ms左右,时隔59.8ms反复进行。此脉冲信号作为计时的起始脉冲,由单片机输出的端口的高频脉冲经过74LS04六反相器功率放大、升压后与超声波探头产生共振,使超声波探头工作,则超声波由超声波发射头发射出去。接收电路由超声波接收器、CX20106A集成电路组成。使用CX20106A集成电路对接收探头收到的信号进行放大、滤波。当CX20106A接收到反射40kHz的信号时,会在第7脚产生一个低电平下降脉冲,这个信号可以接到单片机的外部中断引脚作为中断信号输入,停止计数器T0计数,并读取T0计数值存储。发射超声波时,压电传感器中的压电晶片受发射电脉冲激励后产生共振,并带动共振板振动,便产生超声波。接收超声波时,两电极间未外加电,共振板接收到超声波,将压迫压电晶片作振动将机械能转换为电信号。74LS04反相器CX20106A集成电路超声波发射器超声波接收器MCS-51单片机显示屏图1-1超声波测距电路的设计框图 1.3选题的原因及结果1)性价比高,控制能力强,开发装置多。2)低功耗,低电压,便于生产便携式产品。3)有众多芯片制造厂商加盟,可广泛选择。4)利用STC89C52能简单快速解决和实现我没想要的各种功能。对于C51系列单片机和AVR单片机哪个更适合超声波测距仪的控制芯片。就AVR单片机而言:首先在价格方面比较昂贵,在优化与使用性能上较低,如它的32个通用寄存器中前16个寄存器都不能直接与立即数打交道。因此我决定使用C51系列单片机:STC89C52单片机作为我们本次智能小车的控制芯片。 第二章系统硬件电路设计2.1系统硬件的总体设计2.1.1系统硬件总体框图本系统的硬件电路主要分为单片机系统、显示电路、超声波发射电路、超声波检测接收电路四部分。超声波发射电路超声波接收电路MCS-51单片机显示电路电源图2-1整体设计方框图2.2单片机系统电路 图2-2STC89C52单片机2.2.1单片机STC89C52单片机最小系统电路是整个硬件电路中非常重要的一部分。单片机系统主要起控制电路中的各部分能够按照设计要求正常工作的作用,在本电路中单片机采用STC89C52,采用了12MHz高精度的晶振,以获得较稳定的时钟频率,减小测量误差。单片机STC89C52系统电路如图2-2所示:STC89C52的主要性能如下:1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]2.工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)3.工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz4.用户应用程序空间为8K字节5.片上集成512字节RAM6.通用I/O口(32个),复位后为:P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8.具有EEPROM功能9.共3个16位定时器/计数器。即定时器T0、T1、T210.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒11.通用异步串行口(UART),还可用定时器软件实现多个UART12.工作温度范围:-40~+85℃(工业级)/0~75℃(商业级)2.2.2时钟电路常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种为外部时钟方式,本系统采用的是内部时钟方式。51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2.。这两个引脚跨接石英晶体振荡器和微调电容。这里晶振的振荡频率为12MHz,电路中的2个电容选为30pF。2.2.3复位电路本系统设计是的上电自动复位电路,上电自动复位是通过外部复位电路的电容充电来实现的,当电源接通时只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。2.3显示电路  在本系统的显示电路的设计中主要采用的是4位共阴LED数码管,根据LED数码管内部发光二极管的连接方式,数码管结构可以分为共阳极型和共阴极型两种,共阴极型的内部发光二极管是由阴极连在一起接高电平。由于P2口输出电压很低,无法驱动数码管点亮,在此用74ls138驱动;显示电路如图2-3所示:  图2-3显示电路2.4超声波发射电路超声波发射电路主要由六反相器74LS04组成的推挽电路和超声波发射传感器构成。超声波发射电路如图3.4所示。单片机P1.0端口向外输出超声波脉冲信号,该信号一路经一级反相器后送到超声波换能器的一个电极,另一路经两极反相器后送到超声波换能器的另一个电极。用这种推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用两个反相器并联,用以提高驱动能力。其中的上拉电阻R1、R2一方面可以提高反相器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡的时间。 图2-4超声波发射电路2.4.1反相器在本系统的超声波发射电路中采用的反相器是六反相器74LS04芯片,其引脚结构如图:图2-5芯片74LS04引脚结构由其引脚结构可知,7脚接地,14脚接电源,剩下12个管脚可分为六个反相器,其中A为输入端,Y为输出端,例如:1A输入,1Y输出。 2.4.2超声波传感器超声波传感器是利用晶体的压电效应和电致伸缩效应,将机械能与电能相互转换,并利用波的特性,实现对各种参量的测量。人们能听到声音是由于物体振动产生的,它的频率通常在20Hz-20kHz范围内,超过20kHz称为超声波,低于20Hz的称为次声波。常用的超声波频率为几十kHz-几十MHz。超声波是一种在弹性介质中的机械振荡,它的波形有纵波、横波、表面波三种。质点的振动与波的传播方向一致的波称为纵波;质点的振动与波的传播方向垂直的波称为横波;质点的振动介于纵波与之间,沿着表面传播,振幅随着深度的增加而迅速衰减的波称为表面波。横波、表面波只能在固体中传播,纵波可在固体、液体及气体中传播。2.5超声波检测接收电路超声波检测接收电路主要是由红外线检波接收的专用芯片CX20106A以及超声波接收传感器R构成的,其电路图如图3.12所示。考虑到红外遥控常用的载波频率38kHz与测距的超声波频率40kHz较为接近,而且CX20106A的载波频率可以通过其5脚与电源所接的电阻大小调整到40kHz,所以可以利用它制作超声波检测接收电路。用CX20106A接收超声波(无信号时输出高电平),具有很高的灵敏度和较强的抗干扰能力。以集成片CX20106A的7脚做为指今输出端,利用单片机外中断0口监测超声波接收电路输出的返回信号;CX20106A的5脚与电源之间所接电阻R7的大小决定着它本身的带通滤波器的中心频率的大小,在本系统中选择R7的阻值为200k,此时的中心频率=40kHz;超声波接收传感器R接在CX20106A的1脚与地所接电容C5的两端,根据测量范围要求不同,可适当更改接于超声波接收传感器R电极两端的电容C5的大小,以改变接收电路的接收灵敏度和抗干扰能力。图2-6超声波接收电路 红外线检波的专用芯片CX20106A是8脚单列直插式塑封结构,其各引脚功能如表3.2所示,它的主要功能是对接收到的超声波信号进行放大、滤波。它主要是由前置放大器、限幅放大器、带通滤波器(BPF)、峰值检波器和波形整形器等组成。其主要特点如下:(1)低电压供电(Vcc=5V),低功耗(Vcc=5V时,典型功耗为9mV)。(2)带通滤波器在集成电路内部,滤波特性由5脚和电源之间外接电阻的阻值来决定,可不必进行调整,带通滤波器的频率范围为30~60kHz,由于没有使用电感,可免受磁场的影响。(3)集电极开路输出,能直接与TTL或CMOS电路相连使用CX20106A集成电路对接收探头受到的信号进行放大、滤波。其总放大增益80db。以下是CX20106A的引脚注释。1脚:超声信号输入端,该脚的输入阻抗约为40kΩ。2脚:该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性。增大电阻R1或减小C1,将使负反馈量增大,放大倍数下降,反之则放大倍数增大。但C1的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R1=4.7Ω,C1=3.3μF。3脚:该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为3.3μf。4脚:接地端。5脚:该脚与电源间接入一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。例如,取R=200kΩ时,f0≈42kHz,若取R=220kΩ,则中心频率f0≈38kHz。6脚:该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。7脚:遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22kΩ,没有接受信号是该端输出为高电平,有信号时则产生下降。8脚:电源正极,4.5~5V。第三章系统软件设计3.1主程序的设计:系统初始化后就启动定时器T1从0开始计数,此时主程序进入等待,当到达60ms时T1溢出进入T1中断服务子程序;在T1中断服务子程序中将启动一次新的超声波发射,此时将在P1.0引脚上开始产生超声波脉冲信号,同时开启计数器T0计数,为了避免直射波的绕射,需要延迟1 ms后再开INT0中断允许;INT0中断允许打开后,若P3.2(INT0)引脚出现低电平则代表收到回波信号,将提出中断请求进入INT0中断服务子程序,在INT0中断服务子程序中将停止计数器T0计数,读取计数器T0计数值到相应的存储区,同时设置接收成功标志;主程序一旦检测到接收成功标志,单片机再调用距离计算子程序进行计算,计算出传感器到目标物体之间的距离;此后主程序调用显示子程序进行显示;若超过设定的最小报警距离还将报警;如果没有检测到接收成功标志,则继续等待回波;当一次发射、接收、显示的过程完成后,系统将再次启动T1以溢出,进入下一次测距。主程序的流程图如图3-1所示:开始系统初始化启动定时器T1定时调用距离计算显示距离清回波接收成功标志位回波接收成功标志位置1NY启动计数器T0,开始计数,开外部中断INT0图3-1 主程序框图 3.2硬件调试:在整个系统的设计当中,首先就是要进行硬件设计,硬件设计以及焊接完成后,就是硬件调试部分。总体来说,超声波测距系统的制作和调试都较为简单,其中超声波发射和接收选用的是Ф16的超声波传感器T/R40-16(T发射/R接收),中心频率为40kHz,在焊接时应保持两传感器的中心轴线平行并相距4~8cm,其余元器件无特别要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。下面就来说明一下本系统的硬件调试部分。在焊接显示部分时,跳线太多结果把数码管两个引脚焊反了,在调程序时数码管有两段led显示反了。后来重新焊接后解决问题。用万用表检测硬件电路是否有断接、短接等情况,同时重点检查一下高、低电平的连接有没有错误。在此检查中由于焊接的过于密集发现在74ls04处出现短接,后将短接处的锡吸掉后重新焊接后解决,改正后继续检测,没有发现其它的错误了,硬件调试结束。3.3软件调试:在编程时提示有错误产生,提示说不可以调用延时程序,检查发现是在主程序中的显示部分用到的延时程序放在了主函数的后面,而前面又没有定义,导致无法调用,后来将程序调到前面后解决。软件程序是在KEIL单片机仿真系统中完成的,软件程序的主程序以及各部分子程序都编完后,进行软件编译,编译不通过,提示说在发生脉冲程序中的_nop_()没有定义,原来是头文件中没有定义,加上#include头文件后,继续编译。之后没有太大的问题。所以本程序在设计中并没有太大的逻辑上的错误,只是有一些语法上的错误,比如重复定义等,经过调试﹑修改后,没有了语法上的错误,软件调试结束。3.4程序清单:#include#include//头文件#defineuintunsignedint#defineucharunsignedcharsbitout=P1^0;//发射超声波端口sbitintt=P3^2;//接收超声波端口uintsec;ucharcodeleddata[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//共阴数码管ucharbwei,swei,gwei,qwei;uintCOUNT,TIME;//接收变量 ucharflag;//接收标志voidstart();//初始化函数voiddelay1()//延时子函数,2个空指令{_nop_();_nop_();}voiddel1()//延时1{unsignedchari;for(i=0;i<255;i++);}voidDisplay(){qwei=sec/1000;bwei=sec%1000/100;swei=sec%100/10;gwei=sec%10;P0=leddata[gwei];P2=0xc0;del1();P0=leddata[swei]|0x80;//0x01小数点P2=0x40;del1();P0=leddata[bwei];P2=0x80;del1();P0=leddata[qwei];P2=0x00;del1();}voidDisplay2(){P0=0x40;P2=0xc0;del1();P0=0x40;P2=0x40;del1();P0=0x40;P2=0x80;del1();P0=0x40; P2=0x00;del1();}voiddelay(uchari){while(i!=0){i--;}}voidtim(void)interrupt3{uinti;ET1=0;TR0=0;TH0=0;TL0=0;TR0=1;EX0=1;for(i=0;i<4;i++)//超声波发射40KHZ{out=~out;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}delay(50);IT0=1;//下降边延ET1=1;TH1=0Xb0;TL1=0X3c;EX0=1;}/*=======接收到超声波触发中断0============*/voidr_int()interrupt0//接收超声波{_nop_();if(intt==0)//判接收到{ TR0=0;EX0=0;TIME=TH0*256+TL0;//数据转换COUNT=TIME*0.17;flag=1;//置位标志位while(!intt);//判是否已经完成转换}EX0=1;}voidstart()//初始化{ET1=1;TR1=1;TMOD=0X11;TH0=0;TL0=0;TH1=0Xb0;//50msTL1=0X3c;IT0=1;EX0=1;EA=1;}voidmain(void){start();//程序初始化while(1){if(flag==1)//判是否接收到{flag=0;sec=COUNT;//将接收并转换后的数据赋给显示变量}if(sec<=100)Display2();elseif(sec>=3000)Display2();elseDisplay();}} 总结通过这次的单片机设计,我获益良多。在做设计的这段时间里,我深刻的体会到自动化专业是一门工程特点和实践性很强的学科,加强工程训练,特别是技能的培养,对于工程人员的素质和能力具有十分重要的作用。使我在设计电路的过程中提高了自身运用知识的能力,也为将来的工作打下了坚实的基础,同时也让我对电子技术产生了更加浓厚的兴趣,更加深了对本专业知识的热爱与追求。在做单片机课程设计的过程中,我将这几年里所学的有关本次设计的基础知识和专业知识又复习了一遍,特别是单片机方面的知识,对单片机的原理以及接口方面的知识做了进一步的理解,以便能够更加顺利地完成此次毕业设计。同时在焊接过程中,一定要先弄明白且读懂原理图。搞明白整个电路图的原理,还要细心和仔细,因为每一个焊点你都要牢固以保持它的耐用性,更不能出现虚焊和漏焊的事情发生。同时你必须对芯片的特性都非常清楚,这样你才能让你的实际电路达到你所要求的性能,双列直插的芯片引脚彼此都挨得很近。而每一个引脚都有不同的功用,有的是输出端,有的是输入端,所以在焊接时这些点都是应该特别注意的地方。否则轻者电路的功能实现不了,重者会造成芯片永久的损坏。所以在以后的学习和工作中,当我要使用某个器件时一定要先查资料,将它的工作原理搞清楚,然后再进行实际的操作。这样往往会事半功倍。还有我体会到的一点是电路仿真和实际有一定的差别,在仿真中我们只需要明白电路的工作原理即可,在实际组装电路时,我们要根据实际器件的性能和仿真图的原理来进行调试,二者都很重要。根据以上设计的完成功能来看,已基本上完成了本次设计的题目要求,但由于个人能力有限,设计中也难免会有错误和疏漏,所以还肯请各位老师以及同学多多批评指正。 致谢首先感谢我的专业老师梁召峰,在梁老师的耐心指导、帮助下,我才能顺利完成毕业设计。从电路的设计到调试整个过程中,我都从梁老师那里学会了很多专业方面的知识。其次感谢郭志林师兄,在我的毕业设计中给单片机烧录程序和焊接电路的过程中给予了我帮助。最后感谢在这整个设计过程中帮助过我的所有朋友们。参考文献[1]高光天.传感器与信号调理器件应用技术[M].北京:科学出版社,2004[2]赵负图.传感器集成电路手册[M].北京:化学工业出版社,2003[3]林渭勋.现代电力电子电路[M].杭州:浙江大学出版社,2005.[4]陈国成.新型电力电子变换技术[M].北京:中国电力出版社,2004.[5]陈平、罗晶.现代监测技术[M].北京:电子工业出版社,2003[6]夏继强.数据采集系统实用设计[J].自动化学报,2001,19(4):318~410.[7]徐惠民、安德宁.单片微型计算机原理接口与应用[M].第1版.北京:北京邮电大学出版社,2000 3.2电机驱动程序#includesbitLeftLed=P2^0;//定义前方左侧指示灯端口sbitRightLed=P0^7;//定义前方右侧指示灯端口sbitFontLled=P1^0;sbitLeftIR=P3^5;//定义前方左侧红外探头端口sbitRightIR=P3^6;//定义前方右侧红外探头端口sbitFontIR=P3^7;//定义前方正前方红外探头端口sbitM1A=P0^0;//定义左侧电机驱动A端sbitM1B=P0^1;//定义左侧电机驱动B端sbitM2A=P0^2;//定义右侧电机驱动A端sbitM2B=P0^3;//定义右侧电机驱动B端sbitB1=P0^4;//定义语音识识别传感器端口sbitSB1=P0^6;//定义蜂鸣器端口voidtingzhi(){M1A=0;//将M1电机A端初始化为0M1B=0;//将M1电机B端初始化为0M2A=0;//将M2电机A端初始化为0M2B=0;}voidqianjin(){M1A=1;M1B=0;M2A=1;M2B=0;}voidhoutui(){M1A=0;M1B=1;M2A=0;M2B=1;} voidzuozhuan(){M1A=0;M1B=1;M2A=1;M2B=0;}voidyouzhuan(){M1A=1;M1B=0;M2A=0;M2B=1;}voiddelay_nus(unsignedinti)//延时:i>=12,i的最小延时单12us{i=i/10;while(--i);}voiddelay_nms(unsignedintn)//延时nms{n=n+1;while(--n)delay_nus(900);//延时1ms,同时进行补偿}voidControlCar(unsignedcharConType)//定义电机控制子程序{tingzhi();switch(ConType)//判断用户设定电机形式{case1://前进//判断用户是否选择形式1{qianjin();break;}case2://后退//判断用户是否选择形式2{ houtui();//M2电机反转break;}case3://左转//判断用户是否选择形式3{zuozhuan();//M2电机正转break;}case4://右转//判断用户是否选择形式4{youzhuan();//M1电机正转//M2电机反转break;}case8://停止//判断用户是否选择形式8{tingzhi();break;//退出当前选择}}}3.4避障模块、避障框图 图3-3 避障框图红外程序:voidIR_IN()interrupt2using0//定义INT2外部中断函数{unsignedcharj,k,N=0;//定义临时接收变量EX1=0;//关闭外部中断,防止再有信号到达delayms(15);//延时时间,进行红外消抖if(IRIN==1)//判断红外信号是否消失{EX1=1;//外部中断开return;//返回}while(!IRIN)//等IR变为高电平,跳过9ms的前导低电平信号。{delayms(1);//延时等待}for(j=0;j<4;j++)//采集红外遥控器数据{for(k=0;k<8;k++)//分次采集8位数据{while(IRIN)//等IR变为低电平,跳过4.5ms的前导高电平信号。{delayms(1);//延时等待}while(!IRIN)//等IR变为高电平{delayms(1);//延时等待}while(IRIN)//计算IR高电平时长{delayms(1);//延时等待N++;//计数器加加if(N>=30)//判断计数器累加值{EX1=1;//打开外部中断功能return;//返回}} IRCOM[j]=IRCOM[j]>>1;//进行数据位移操作并自动补零if(N>=8)//判断数据长度{IRCOM[j]=IRCOM[j]|0x80;//数据最高位补1}N=0;//清零位数计录器}}if(IRCOM[2]!=~IRCOM[3])//判断地址码是否相同{EX1=1;//打开外部中断return;//返回}for(j=0;j<10;j++)//循环进行键码解析{if(IRCOM[2]==RecvData[j])//进行键位对应{//ControlCar(j);ControlCar_yaokong(j);//数码管显示相应数码}}EX1=1;//外部中断开}避障程序:voidRobot_Avoidance(){LeftLed=LeftIR;//前方左侧指示灯指示出前方左侧红外探头状态RightLed=RightIR;//前方右侧指示灯指示出前方右侧红外探头状态FontLled=FontIR;SB1=FontIR;if(FontIR==0)//如果前面避障传感器检测到障碍物{ControlCar(8);//停止 delay_nms(300);//停止300MS防止电机反相电压冲击导致系统复位ControlCar(2);//后退delay_nms(1000);//后退1500MSControlCar(3);delay_nms(1800);}else{ControlCar(1);//右侧没有信号时,开始向左转一定的角度delay_nms(10);}ControlCar(1);} 第四章系统调试4.1 测试工具: 图4-1测试工具4.2PCB的设计制作与安装采用DXP2004绘制原理图与PCB板,布线的过程中必须注意焊盘的大小与铜线的宽度。我选取的焊盘内径为0.8mm,外径2mm;铜线宽1mm。从做板的情况来看基本达到制作得要求。 采用螺丝将循迹板安装在车头,主板与电机驱动安装在车尾。4.3 调试过程我们尝试着先用STC89C52来控制小车避障,结果实验成功。证明单片机运行正常。然后尝试循迹,结果不是很满意,小车能跑动起来但是不能做到精准循迹。这个小实验是为了检测小车的机械性能。达到了我没预期目的。主板通电前检查:电路安装完毕,我们首先直观检查电路各部分生产线是否正确,检查电源、地线、信号线、元器件引脚之间有无短路,器件有无接错。给电机通电,观察电机是否工作正常。 结束语整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。本系统能实现如下功能: 从系统总体来看,无线遥控小车有近端操作人员,远端移动小车和运行环境场所构成,由此构成了人~小车~环境三者相互紧密联系的一个整体。操作人员在遥控作业端根据作业任务的要求,通过遥控操作平台的人机交换接口,借助反馈信息控制小车完成特定的作业任务。操作人员依据终端反馈的信息,根据特定作业任务的要求发送操作雨控制指令,控制无线遥控小车的前进、后退、转向、加速和减速。遇到障碍物后自动转向。致谢本设计能够顺利完成,还承蒙梁召峰老师以及身边的很多同学的指导和帮助。在设计过程中,晏凯老师给予了悉心的指导,最重要的是给了我解决问题的思路和方法,并且在设计环境和器材方面给予了大力的帮助和支持,在此,我对梁召峰老师表示最真挚的感谢!同时感谢所有帮助过我的同学! 感些评阅老师百忙之中抽出时间对本论文进行了评阅 参考文献[1]王东锋,王会良,董冠强. 单片机C语言应用100例[M]. 电子工业出版社,2009.3:145-300. [2]王晓明.电动机的单片机控制[J]. 学术期刊,2002,13(15):1322-1755. [3]烛光忠《基于单片机的红外遥控开关控制起》<计算机工程与设计>2006年[4]李光弟《单片机基础》北京航空航天大学出版社2001年[5]刘东汉《基于微处理器解码多功能遥控系统设计》2006年'