单片机课程设计智能超声波测距小车设计.doc
单片机系统课 程 设 计成绩评定表设计课题 : 智能超声波测距小车设计 学院名称 : 电气工程学院 专业班级 : 学生姓名 : 学 号 : 指导教师 : 设计地点 : 设计时间 : 指导教师意见:成绩: 签名: 年 月 日单片机系统课 程 设 计设计课题 : 智能超声波测距小车设计 学院名称 : 电气工程学院 专业班级 : 学生姓名 : 学 号 : 指导教师 : 课程设计地点: 课程设计时间: 单片机系统 课程设计任务书学生姓名专业班级学号题 目智能超声波测距小车设计课题性质工程设计课题来源选题指导教师 主要内容(参数)利用89C51设计智能小车超声波测距,实现以下功能:1.智能小车能够按照给定的程序进行运动,包括前进、后退、左拐、右拐的运动控制。2.小车运动过程中,超声波测距模块正常工作,并将结果显示在1602液晶显示屏上。任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1 张迎新单片微型计算机原理、应用及接口技术(第2版)M北京:国防工业出版社,20042伟福LAB6000系列单片机仿真实验系统使用说明书3 阎石数字电路技术基础(第五版)北京:高等教育出版社,2006审查意见系(教研室)主任签字: 年 月 日 目 录1 概述41.1 应用情况及主要功能41.2 技术指标52总体方案设计及分析62.1总体方案设计62.2 系统方案73 硬件电路设计73.1 51单片机系统103.2超声波发射和接收模块113.3 1602液晶显示屏133.4电源电路143.5电机驱动模块143.6小车骨架154 系统软件设计154.1 主程序设计154.2 定义延时程序头文件164.3电机运动控制模块174.4液晶屏显示模块184.5测距模块185总结19参考文献20附录A 系统原理图21附录B 源程序211.概述本文所介绍的超声波测距报警系统在测距的时候采用的是两个超声波探头分别进行超声波发射和接收来进行距离的测量的。本设计的汽车防撞系统能测量出倒车方向的障碍物与汽车之间的距离, 并通过液晶屏显示单元模块显示两者之间的距离。本系统利用一片89C51单片机对超声波信号循环不断地进行采集。系统包括超声波测距单元(超声波集成模块)、89C51单片机控制、电机控制模块和液晶屏显示模块。这个设计的汽车倒车雷达要能够连续测距,数据经过单片机的处理后,用液晶屏显示所测量得到的距离。 11 应用情况及主要功能当前社会经济的不断发展和工业科学技术的不断提高,汽车已逐渐进入不少百姓家。汽车使用数量的不断增加,从而由此导致的倒车交通安全问题也非常严重,道路交通压力增加,交通安全问题也是面临严峻挑战。在面临如此严峻的交通安全问题,许多涉及安全问题的汽车辅助系统也纷纷现世。而本设计就是利用单片机知识、传感器知识等,进行的汽车防撞装置的设计,在汽车倒车时,这种装置可以在驾驶员对车尾与障碍物体的距离远近无法目测和判断时进行报警。倒车雷达系统的开始是以蜂鸣器报警为标志的。汽车离障碍物距离越近,蜂鸣器报警声越急,蜂鸣器报警虽然使驾驶员知道有障碍物的存在,但却不能确定汽车车尾离障碍物有多远,所以,蜂鸣器报警对驾驶员帮助不是很大;之后一个质的飞跃就是液晶屏显示的出现,特别是液晶显示开始出现动态显示系统,驾驶员就是只要发动车辆,而且不用挂倒挡,液晶显示器上就会出现汽车图案以及汽车与周围的障碍物的距离,液晶显示是动态显示,液晶显示器的外表美观,显示的色彩也很清晰,而且可以直接粘贴在仪表盘上,安装也很方便。不过由于液晶显示的灵敏度比较高,而且它的抗干扰能力也不是很强,所以误报的情况也较多。 现在市面上的魔幻镜倒车雷达应该算是比较先进的倒车雷达了,它结合了前几代产品的优点,并采用了最新仿生超声雷达技术,并用高速电脑控制,可全天准确地进行探测2 m以内的障碍物,并以不同的声音提示和直观的距离显示来提醒驾驶员;魔幻镜倒车雷达把后视镜、倒车雷达、免提电话、温度显示和车内空气温度显示等多项功能整合在一起1,并设计了语音功能,因为其外形就是一块倒车镜 ,所以可以不占用车内空间,可以直接安装在车内倒视镜的位置,而且它样式种类繁多,可以按照个人需求和车内装饰选配,当然它的价格也是比较贵的。最新的一代倒车雷达是整合影音系统,除了具备前几代倒车雷达的功能外还兼有影音系统。随着科学技术水平的迅速发展,相关电子技术也是飞跃前进,当然,汽车电子产业也得到飞速发展,电子产业的飞速发展使得车载电子安全产品有很大的发展前景。倒车雷达当然是每辆车必备的电子安全产品,如今市面上的主流的汽车倒车雷达基本都是以单片机芯片为控制核心的智能测距报警系统。这些的倒车雷达能够连续测距并显示汽车与障碍物之间的距离,而且采用蜂鸣器的不同频率的鸣叫声进行报警提示和距离显示提示,从而能够尽量不占用驾驶员的视觉空间。此外,汽车电子系统的网络化的发展还要求作为汽车行驶安全辅助系统的倒车雷达要具有通信功能,并能够把数据发送到汽车总线上去。1.2 技术指标超声波测距模块:1、典型工作用电压:5V2、超小静态工作电流:小于5mA3、感应角度(R3 电阻越大,增益越高,探测角度越大):R3 电阻为392,不大于15 度R3 电阻为472, 不大于30 度4、探测距离(R3 电阻可调节增益,即调节探测距离):R3 电阻为392 2cm-450cmR3 电阻为472 2cm-700cm5、高精度:可达0.3cm6、盲区(2cm)超近液晶显示模块:显示容量16*2个字符芯片工作电压4.55.5V工作电流2.0mA(5.0V)模块最佳工作电压5.0V字符尺寸2.95*4.35(WXH)mm2. 总体方案设计及分析2.1 总体方案设计超声波是一种超出人类听觉极限的声波即其振动频率高于20 kHz的机械波。超声波传感器在工作的时候就是将电压和超声波之间的互相转换,当超声波传感器发射超声波时,发射超声波的探头将电压转化的超声波发射出去,当接收超声波时,超声波接收探头将超声波转化的电压回送到单片机控制芯片。超声波具有振动频率高、波长短、绕射现象小而且方向性好还能够为反射线定向传播等优点,而且超声波传感器的能量消耗缓慢有利于测距。在中、长距离测量时,超声波传感器的精度和方向性都要大大优于红外线传感器,但价格也稍贵。从安全性,成本、方向性等方面综合考虑,超声波传感器更适合设计要求。2.2 系统方案此方案选择51单片机作为控制核心,所测得的距离数值由1602液晶显示屏显示,超声波发射信号由51单片机的P3.3口送出到超声波发射电路,将超声波发送出去,超声波接收电路由EM78P153芯片和超声波接收探头组成的电路构成,显示系统由液晶屏显示器电路构成。本设计中将收发超声波的探头分离这样不会使收发信号混叠,从而能避免干扰,可以很好的提高系统的可靠性。本设计的汽车防撞装置的系统框图如图1所示。超声波接受器检波电路51单片机超声波发射器放大电路放大电路显示模块电机模块图1 汽车防撞装置的系统框图本设计由Keil编程软件对51单片机进行编程,51单片机在执行程序后由P0.1端口产生40kHz的脉冲信号通过74LS04电路进行放大并送到到超声波发射探头,产生超声波。在超声波发射电路启动的同时单片机启动中断定时器,利用其计数的功能记录超声波发射超声波到接收到超声波回波的时间。当接收回射的超声波时,接收电路的输出端产生负跳变输出到单片机产生中断申请,执行外部中断子程序计算距离。结合各方面的因素考虑,依据设计的要求,查阅相关数据资料,选择了超声波测距传感器TR40-16Q(其中T表示超声波发射探头,R表示超声波接收探头),综合考虑设计的要求出于简便角度,选用了HC-SR04超声波集成模块。此超声波模块的最大探测距离为5 m,精度可以达到0.3 cm,盲区为2 cm,而且发射扩散角不大于15°,更有利于测距的准确性。而且,此模块的工作频率范围为39 kHz41 kHz左右,完全能在40 kHz工作频率工作。由于超声波的发射和接收是分开发送和接收的,所以发射探头和接收探头必须在同一条水平行直线上,这样才能准确地接收反射的回波。而由于测量的距离不同和发射扩散角所引起的误差以及超声波信号在空气中传播的过程中的超声波衰减问题,发射探头和接收探头距离不可以太远,而且还要避免发射探头对接收探头在接收信号时产生的干扰,所以二者又不能靠得太近。根据对相关资料查阅,将两探头之间的距离定在5 cm8 cm最为合适。本设计所用的HC-SR04模块的超声波探头之间的距离大约在6 cm左右。3 硬件电路设计本设计的汽车防撞装置由51单片机、超声波发射和接收探头、1602液晶显示屏、电源电路和电机模块组成。汽车防撞系统的测距是利用超声波测距的原理,在单片机内部程序的控制下,由超声波发射探头发射超声波,在超声波遇到障碍物时反射到超声波接收探头,由此回应到单片机,由单片机进行中断处理和数据的处理,计算出距离,由液晶屏显示距离。本设计的硬件电路分为六部分:51单片机、超声波发射和接收探头、1602液晶显示屏、电源电路、电机模块和小车骨架组成。 3.1 51单片机系统一般在系统的设计当中,能否完成设计任务最重要的就在于系统的核心器件是否选择合适,而单片机更是是系统控制的核心,所以对单片机的选择更是异常重要。如果选择了一个合适的单片机不仅可以最大地简化系统的操作,而且其功能可能是最好的,可靠性也比较高,对整个系统来说更方便。目前,市面上的单片机的种类繁多,并且他们在功能方面也是各自有各自的特点。在一般的情况下来讲,在选择单片机时要需要考虑的几个方面有5:(1)单片机最基本性能参数指标。例如:执行一条指令的速度、程序存储器的容量,I/O口的引脚数量等。(2)单片机的某些增强的功能。(3)单片机的存储介质。例如:对于程序存储器来说,最好选用的是Flash的存储器。(4)单片机的封装形式。封装的形式多种多样,例如:双列直插封装、PLCC封装及表面贴附等。(5)单片机对工作的温度范围的要求。例如:在进行设计户外的产品时,就必须要选用工业级的芯片,以达到温度范围的要求。(6)单片机的功耗。例如,如果信号线取电只能提供几mA的电流,所以为了能满足低功耗的要求这个时候选用STC的单片机是最合适的。(7)单片机在市面上的销售渠道是否畅通、其价格是否便宜。(8)单片机技术的支持网站如何,卖家提供的芯片资料是否足够完善,是否包含了用户手册,设计方案举例,相关范例程序等。(9)单片机的保密性是否很好,单片机的抗干扰的性能如何等。51系列单片机它在指令系统、硬件结构和片内资源等方面与标准的52系列的单片机可以完全的兼容。51系列的单片机执行速率快(最高时钟频率为90 MHz),功耗低,在系统、在应用可编程,不占用用户的资源5。根据本系统设计的实际要求,选择AT89S51单片机做为本设计的单片机使用,它是由ATMEL公司生产的高性能、低功耗的CMOS 8位单片机。89S51单片机具有以下几个性能特点:4 k字节的闪存片内程序存储器,128字节的数据存储器,32个外部输入和输出口,2个全双工串行通信口,看门狗电路,5个中断源,2个16位可编程定时计数器,片内震荡和时钟电路且全静态工作并由低功耗的闲置和掉电模式。51 单片机外部有40 个引脚,很好记忆这些管脚的功能。IO 口共32 个,晶振2 个,复位1 个,电源2 个,还有三个分别是EA/VP、ALE/PROG、PSEN 引脚。如图2所示。单片机最小系统如图3所示。 图2 80C51芯片原理图图3 单片机最小系统原理图3.2超声波发射和接收模块超声波是一种振动频率超过20 kHz的机械波,它可以沿直线方向传播,而且传播的方向性好,传播的距离也较远,在介质中传播时遇到障碍物在入射到它的反射面上就会产生反射波。由于超声波的以上几个特点,所以超声波被广泛地应用于物体距离的测量、厚度等方面。而且,超声波的测量是一种比较理想的非接触式的测距方法。当进行距离的测量时,由安装在同一水平线上的超声波发射器和接收器完成超声波的发射与接收,并且同时启动定时器进行计数。首先由超声波发射探头向倒车的方向发射超声波并同时启动定时器计时,超声波在空气中传播的途中一旦遇到障碍物后就会被反射回来,当接收探头收到反射波后就会给负脉冲到单片机使其立刻停止计时。这样,定时器就能够准确的记录下了超声波发射点至障碍物之间往返传播所用的时间t(s)。由于在常温下超声波在空气中的传播速度大约为340 m/s,所以障碍物到发射探头之间的距离为:S=340×t/2=170×t 因为单片机内部定时器的计时实际上就是对机器周期T的计数,而本设计中时钟频率fosc取12 MHz,设计数值N,则: T12/fosc=1s t=N×TN×0.000001(s) S170×N×T170×N/1000000(m) 在程序中按式S170×N×T170×N/1000000计算距离。本设计方案中使用的是由超声波发射和接收探头组成的HC-SR04模块。图4 HC-SR04内部结构图3.3 1602液晶显示屏1602液晶模块,显示屏是蓝色背光白色字体。字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚)其控制原理与14脚的LCD完全一样,引脚定义如下图5所示: 图5 1602液晶显示屏引脚定义图HD44780内置了DDRAM、CGROM和CGRAM。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。图6 液晶显示屏连接图3.4 电源电路:LM7805芯片是三端正电源稳压电路,其封装形式为T0-220.他有一系列固定的电压输出,应用非常广泛。由于内部电流的限制,以及过热保护和安全工作区的保护,使他基本上不会损坏。如果能够提供足够的散热片,它们就能提供大于1.5A的输出电流。虽然是按照固定电压值进行设计的,但是当接入适当的外接器件后,就能获得各种不同的电压和电流。图7 稳压电路原理图3.5 电机驱动模块L298N是意大利SGS半导体公司生产的步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。芯片内的PWM斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。该集成电路采用了SGS公司的模拟/数字兼容的I2L技术,使用5V的电源电压,全部信号的连接都与TFL/CMOS或集电极开路的晶体管兼容。L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相 和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准 TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号, 但在本驱动电路中用L297 来提供时序信号,节省了单片机IO 端口的使用。L298N 之接脚如图9 所示,Pin1 和Pin15 可与电流侦测用电阻连 接来控制负载的电路; OUTl、OUT2 和OUT3、OUT4 之间分别接2 个步进电机;input1input4 输入控制电位来控制电机的正反转;Enable 则控制电机停转。 图8 L298N原理图3.6 小车骨架被设计为4WD测速小车,外观更美,结构合理。搭配相关模块,可以完美实现寻迹,避障,测速,走迷宫,搬运,遥控等功能。材料:进口亚克力板,强度高(室外放5年不老化)尺寸:25CM*15CM(厚3MM)电压:3V-10V,电流:0.5-2A电机:180转/分与90转/分 额定工作电压:5V电压小车预留了、51单片机控制板,电机驱动模块、寻迹模块、避障模块,测速模块等传感器孔位,方便进行组装和扩展。图10 小车骨架图4 系统软件设计本设计采用的是模块化的思路来进行设计和编写程序,程序主要由系统主程序和各模块自定义的头文件程序构成。主程序完成单片机的子程序调用以完成所需功能,头文件程序主要实现具体的超声波的发射和接收、计算超声波发射点与障碍物之间的距离、液晶屏显示和电机运动等。系统程序设计的主要的功能是发射超声波、接受超声波、计算测量距离、数据计算、电机运动和液晶屏显示。4.1 主程序设计整个系统的设计的关键是对距离进行测量的,然后通过单片机来处理测量数据是比较容易实现的,能精确的实现测距。在测距中,各种信号包括温度对声速的影响都将干扰到测距的准确性,其中超声波的余波信号对整个设计中测距的精确度的干扰的影响比较大。超声波接收回路中的超声波信号一共有两种波信号:第一种波信号为余波信号就是当发射探头发射出信号之后,超声波接收探头马上就接收到的超声波信号,实际就是超声波的发射信号;另一种波信号就是有效信号,即经过障碍物表面反射回来的超声波回波信号,也是所需要测量的距离数值。 在进行超声波测距时,实际上测距就是记录从超声波发射电路发射超声波信号开始到接收到信号的声波的往返时间差,然后通过数据计算出距离,对于回波信号需要进行检测的有效信号是反射物体反射的回波信号,所以要尽量避免在检测时候检测到余波信号。余波就是在发射超声波时超声波信号直接到达接受探头的波信号,同时余波信号也是超声波测量时存在测量盲区的最主要的原因。所需头文件声明实现电机运行测量距离并转换对所得到的距离进行显示图11 主程序设计4.2 定义延时程序头文件包括两个种类的延时子程序,一个是毫秒级的延时程序,另一个是微秒级的延时程序。均为通过设计内外循环和变量的值来构成不同时间的延时。 图12 延时程序4.3 电机运动控制模块L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号,但在本驱动电路中用L297 来提供时序信号,节省了单片机IO 端口的使用。L298N 之接脚如图9 所示,Pin1 和Pin15 可与电流侦测用电阻连 接来控制负载的电路; OUTl、OUT2 和OUT3、OUT4 之间分别接2 个步进电机;input1input4 输入控制电位来控制电机的正反转;Enable 则控制电机停转。 图13 电机设计4.4 液晶屏显示模块1602是指显示的内容为16*2,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 图14 液晶屏显示设计4.5 测距模块在进行超声波测距时,实际上测距就是记录从超声波发射电路发射超声波信号开始到接收到信号的声波的往返时间差,然后通过数据计算出距离,对于回波信号需要进行检测的有效信号是反射物体反射的回波信号,所以要尽量避免在检测时候检测到余波信号。余波就是在发射超声波时超声波信号直接到达接受探头的波信号,同时余波信号也是超声波测量时存在测量盲区的最主要的原因。 超声波接收电路在接收到超声波回波后,通过CX20106A电路进行检波整形比较,并向单片机发出有效信号,单片机通过外部中断的改变记录回波信号的到达时间,中断发生之后就是表示已经接收到了回波信号,这个时候停止计时,并且读取计数器中的数值,这个数值就是需要进行测量的时间差的数据。程序中对测距距离的计算方法是按S=17×N/1000=0.017×N(cm)进行计算的,其中,N为计数器的值,声速的值取为340 m/s。 图15 测距模块设计5.总结本设计介绍的是基于单片机的智能信号声波测距小车的设计,文中给出了具体的系统的硬件和软件的设计思路方案。而超声波测距模块是设计中的关键模块,本设计中测距显示模块采用的是单片机1602液晶屏进行显示的。设计的程序是利用Keil编程软件来完成的,程序所用的语言是C语言。本设计所设计的智能信号声波测距小车的测距精度能达到0.3 cm的精度,而且测距盲区仅仅只有2 cm,能够很好的进行距离的测量,而且控制方便,在利用了超声波集成模块后的调试也很方便,测距的范围可以在2 cm5 m之间,测距稳定,可以达到设计要求。参 考 文 献1 鞠永胜. 基于嵌入式系统汽车倒车雷达的设计与实现D. 山东:山东大学,2010.2 张国熊. 测控电路M. 北京:机械工业出版社,2003.3 阎石. 数字电子技术基础M. 北京:高等教育出版社,2004.4 侯媛彬等. 凌阳单片机原理及其毕业设计精选M. 科学出版社,2006.5 李建忠. 单片机原理及应用M. 西安:西安电子科技大学出版社,2008. 6 霍孟友等. 单片机原理与应用M. 北京:机械工业出版社,2004.7 刘洪恩. 汽车倒车防撞超声波雷达的设计J. 仪表技术,2004,15(04):5560.8 李朝青. 单片机原理及接口技术M. 北京:北京航空航天大学出版社,2002.9 高海生,杨文焕. 单片机应用技术大全M. 成都:西南交通大学出版社,1996.10 张友德,赵志英,涂时亮. 单片机微型机原理、应用与实验M. 上海:复旦大学出版社,1992.11 陆冬妹. 基于温度补偿的超声波倒车测距系统的设计J. 齐齐哈尔大学学报,2011,27(2).12 刘典文等. 基于单片机STC89C51设计的超声波测距仪J. 中国新技术信产品,2010,8:1617.13 Vizimuller. RF design guide-systems, circuits, and equations M. Boston:Artech House,1995.14 Keil Software. The Final World On the 8051M. Germany:Keil Elektronik Gmbh and Keil software,1997.15 梁小流,陈炳森,梁建和. 基于89S52汽车防撞雷达系统设计J. 机电工程技术,2011,10(4):4951.附录A:附录B:主程序:#include <reg52.h>#include "wendu.h"#include "delay.h"#include "yejing.h" #include "dianji.h"#include "ceju.h" void main()PWM();yejing_init();ceju_init();zhengzhuan();delay(1000);zuozhuan();delay(1000);zhengzhuan();delay(1000);zuozhuan();delay(1000);zhidong();while(1)ceju();delay(5); 延时模块自定义的头文件:#ifndef _DEALAY_H_#define _DEALAY_H_#define uchar unsigned char #define uint unsigned intvoid delay(unsigned int i)/延迟I毫秒unsigned int x,y;for(x=i;x>0;x-)for(y=110;y>0;y-);void delayus(unsigned int a)/延迟a微妙while(a-);void delay_20us()uint i;for(i=100;i<100;i+); #endif 电机运行模块自定义的头文件:#ifndef _DIANJI_H_#define _DIANJI_H_#include <reg52.h>#include "delay.h"sbit ENA1=P20;sbit ENB1=P21;sbit ENA2=P26;sbit ENB2=P27;sbit IN1=P10;sbit IN2=P11;sbit IN3=P12;sbit IN4=P13;sbit IN5=P14;sbit IN6=P15;sbit IN7=P16;sbit IN8=P17;uchar time,a=1; void PWM() /输出PWM波¨TMOD=0x11; /使用定时器0用于电机模块,使用定时器1用于超声波测距模块TH0=0XFF;TL0=0XF7;EA=1;ET0=1;TR0=1;void tim0() interrupt 1TR0=0;TH0=(65535-400)/256;TL0=(65535-400)%256;TR0=1;time+;if(time>=100)time=0;if(time<=0) /若设time的数小于等于x,则占空比为(100-x)a=0;elsea=1;ENA1=a;ENA2=a;ENB1=a;ENB2=a;void zhengzhuan() /电机正转IN1=0;IN2=1;IN3=0;IN4=1;IN5=0;IN6=1;IN7=0;IN8=1;void fanzhuan() /电机反转IN1=1;IN2=0;IN3=1;IN4=0;IN5=1;IN6=0;IN7=1;IN8=0;void zuozhuan() /电机左转IN1=0;IN2=1;IN3=0;IN4=1;IN5=1;IN6=1;IN7=1;IN8=1;void youzhuan() /电机右转IN1=0;IN2=0;IN3=0;IN4=0;IN5=0;IN6=1;IN7=0;IN8=1;void zhidong() /电机制动IN1=1;IN2=1;IN3=1;IN4=1;IN5=1;IN6=1;IN7=1;IN8=1;#endif 液晶显示屏模块自定义的头文件:/*液晶显示 RS=P23 RW=P24 LCDEN=P25*/#ifndef _YEJING_H_#define _YEJING_H_#include <reg52.h>#include "delay.h"sbit lcdrs=P23;sbit lcdrw=P24;sbit lcden=P25;uchar code table="Temp= . C"uchar code table1="X= cm"uchar code table2="0123456789"/用此数列显示距离值的大小uchar num;void write_com(uchar com) /写命令lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date) /写数据lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;void display_distance(uint distance) /液晶屏显示距离,距离为3位数uchar bai=0,shi=0,ge=0;bai=distance/100; shi=distance%100/10; ge=distance%10; write_com(0x80+0x40+2);delay(1);write_date(table2bai);delay(1);write_date(table2shi);delay(1);write_date(table2ge);delay(1);void yejing_init() /液晶初始化 lcden=0;lcdrw=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80+0x40);/写液晶上距离的初始显示字符for(num=0;num<7;num+)write_date(table1num);delay(1);#endif超声波测距模块自定义的头文件:/*实现超声波测距离,并在液晶屏上显示出来trig=P33 echo=P32 */#ifndef _CEJU_H_#define _CEJU_H_#include <reg52.h>#include "delay.h"#include "yejing.h"sbit echo=P32;sbit trig=P33;uint outcomeH,outcomeL;unsigned long distance_data=0;void ceju_init() /测距模块初始化trig=0; TR1=1; ET1=1;IT0=0;EX0=0; EA=1; void ceju()trig=1;delay_20us();trig=0;EX0=0;while(!echo);EX0=1;TH1=0;TL1=0;EA=1;while(echo);TR1=0;