西安交通大学 agv设计 自动循迹代步轮椅设计说明书.doc_第1页
西安交通大学 agv设计 自动循迹代步轮椅设计说明书.doc_第2页
西安交通大学 agv设计 自动循迹代步轮椅设计说明书.doc_第3页
西安交通大学 agv设计 自动循迹代步轮椅设计说明书.doc_第4页
西安交通大学 agv设计 自动循迹代步轮椅设计说明书.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机自16班机械部分 王剑虹 2110101145电路部分 佀昶 2110302019 软件部分 罗运运 2110101141自动循迹代步轮椅设计说明书 目录1、概述11.1总体概述21.2市场背景21.3适用人群32、机械部分42.1设计要求42.2具体机构设计和标准件选择42.2.1车架设计42.2.1.1前车架设计52.2.1.2后车架设计62.2.2电机选择62.2.3后轮选择72.2.4前轮选择82.3可靠性分析83、控制电路部分93.1主芯片选择93.2位置检查模块123.3电机驱动模块选择134系统软件的设计 184.1应用软件的设计184.2软件测试184.3电机选择204.4轮椅转向系统的设计264.5具体程序代码28参考文献371、概述1.1总体概述自动循迹代步轮椅是一款辅助老人、残疾人士出行的自动循迹电动轮椅。其整体外观如图1.1所示。其设计思想是使用光电循迹原理,结合软件编程,机械控制等方法,达到自动循迹的效果。此产品设计过程中综合了机电一体化设计思想,将机械和电子有机结合起来,用电子辅助机械,使在功能不变的前提下结构尽量简单,运作可靠。产品的设计从用户角度出发,将产品设计得人性化。本产品使用电瓶作为动力,能源清洁,获取方便。车架选用钢材结构,保证强度的前提下,使结构紧凑可靠。轮胎使用实心橡胶轮胎,减震性能良好,避免用户充气的麻烦。图1.1 自动循迹轮椅整体外观1.2背景市场随着能源短缺和环保需要,电动车所占的比重越来越大。相对传统机车,电动车拥有结构简单,能源清洁,重量轻,运行可靠,维修方便,价格低廉等优点。设计过程中采用了机电一体化设计思路,使机械与电子部分充分结合起来,机电一体化设计模式见图1.2。图1.2 机电一体化设计模式简介近几年,电动轮椅也逐步发展起来,并且逐年改进,功能越来越完善。可见在电动轮椅这个方向是很有市场前景的。本产品在结构上对普通电动轮椅进行了优化,使结构简单,运行可靠。在功能上加入了自动循迹功能,主要使用对象是不能自主活动的老人,病人和残疾人。对比老式电动轮椅,本产品主要有以下优点:1)、结构更加轻便、可靠;2)、设计过程中采用了机电一体化设计思想,用电子控制机械,使功能更加齐全,结构简单;3)、加入了自动循迹功能,特别适合用于医院,疗养院,养老院使用;4)、电机,电瓶等部件使用标准件,维修方便,价格低廉;1.3适用人群本产品主打功能是自动循迹功能,即不需要外部人员和乘坐者的操作便可以循着事先规划好的路线前进,到达标准位置停下,返回等过程。适合用于医院,疗养院,养老院使用。未至于本产品时,一个护士或者工作人员只能照看一个病人,而在使用本产品后,一名护士可以同时照看多名病人。每位病人的轮椅按着事先安排好的路线前进,在病人运输,休闲散步等方面有着极大优势。相信本产品能为这些事业带来极大的方便。2、机械设计部分2.1设计要求本产品要实现的功能主要有1)、能载人正常行走,遇到紧急情况能安全停车;2)、给老人、病人、残疾人使用,要求避震效果好;3)、能实现自动循迹功能;4)、结构合理,安全可靠;因此具体的设计要求如下:1)、能载重80kg以上,主要受力机构应力不超过需用值,保证一定的安全系数,变形不查过许用值;2)、通过对测得电路的分析,机械部分接受到电路部分的控制后能正确实现前进,后退,转弯,停车等功能;3)、有良好避震功能;4)、为方便携带和搬运,重量不超过70kg; 2.2具体机构设计和标准件选择2.2.1车架设计为达到良好的避震效果,车架分为前后两个部分,前后两车架使用螺栓和减震机构进行连接。连接情况如图1.3所示。图1.3 车架总体结构2.2.1.1前车架设计前车架的主要结构如图1.4所示。前车架设计中重要使用了标准的方钢和圆管,材料为低碳钢,通过焊接的方式进行连接。为保证强度和足够空间,前车架采用双层结构设计。车架前方伸出圆管为连接脚踏板用。前车架通过螺栓与后车架和减震机构连接。侧边的圆环是连接扶手和前车轮用。图1.4 前车架结构展示2.2.1.2后车架设计后车架主要使用标准圆管焊接而成,主要结构如图1.5所示。前方通过螺栓与前车架连接,中间圆钢与电机连接,圆钢上焊接的方块用于电机的定位。中间中空的部位用于放置电瓶,为保证足够运行时间和路程,预留了较大空间来存放大容量的电瓶。后方伸出的部分用于安装防倾倒的后轮。图1.5 后车架结构示意图2.2.2电机选择计算电机所需转速和扭矩,考虑减速器减速比,选择直流电机,12v电压。电机和减速器外观如图1.6所示。图1.6 电机及减速器外形展示2.2.3后轮选择考虑到电机转速和扭矩,所需的运行速度为10km/h,有良好的减震性能。选择14寸实心橡胶轮作为驱动后轮。外形如图1.7所示。轮毂为铝合金材质,轮胎为实心橡胶。后轮为驱动轮,通过两个后轮的转速差来实现转向。选用实心橡胶轮胎在保证良好避震性能的前提下避免了用户充气的麻烦。图1.7 后轮外形图2.2.4前轮选择前轮选择8寸万向轮,材质为塑料和橡胶。在后轮的驱动下,前轮随着转向。外形如图1.8所示。图1.8 前轮外形展示2.3可行性分析取前车架和后车架主要部件进行受理分析,受力分析报告见附录。满足强度要求。3. 控制电路的设计控制电路作为控制程序的载体,主要分为主控芯片、位置检测模块和电机驱动模块。3.1主控芯片的选择经小组讨论,我们决定采用技术成熟且被广泛使用的80C51单片机。80C51单片机属于MCS-51系列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80C51内部有时钟电路,但需要石英晶体和微调电容外接。由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广,应用也很成熟,故采用来作为控制核心。以下对其管脚进行简单的介绍。图3.1 80C51管脚图Vss(20脚):接地Vcc(40脚): 主电源+5VXTAL1(19脚):接外部晶体的一端。在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。XTAL2(18脚): 接外部晶体的另一端。在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。RST(9脚): 单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)PSEN(29脚): 在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。ALE/PROG(30脚):在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。PSEN端同样可驱动8个LSTTL负载。我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。EA/VPP(31脚): 当EA端输入高电平时,CPU从片内程序存储器地址0000H单元开始执行程序。当地址超出4KB时,将自动执行片外程序存储器的程序。当EA输入低电平时,CPU仅访问片外程序存储器。在对87C51EPROM编程时,此引脚用于施加编程电压VPP。输入/输出引脚:(1)P0.0P0.7 (39脚32脚)(2)P1.0P1.7 (1脚8脚)(3)P2.0P2.7 (26脚21脚)(4)P3.0P3.7 (10脚17脚) 图3.2 主控芯片外围电路主控芯片选择完毕后,还需对其外接电路进行设计。外接电路要与电机控制模块和位置检测模块相适应,同时一些基本的电路如晶振的接法和频率的选择,则参照有关资料进行连接。下面结合实际电路来介绍一下。每个单片机系统里都有晶振,全称是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。其实晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步如上图所示,给单片机加上晶振X1,查阅单片机资料。将其频率调到22MHz。RC复位电路的工作原理是,上电前电容里的电荷放光,上电瞬间,电源通过电阻向电容充电,在充电过程中,RESET的电压慢慢上升,对外部电路进行复位,当RESET上升到复位高电平时,外部系统开始工作。这里存在两个问题,一个是必须合理选择电阻和电容的值否则复位时间过长或过短都不能满足要求,第二个问题是当系统正常复位后在工作状态下,电源突然有一个较短时间的大幅度抖动。因此设计复位电路主要考虑这两个问题来选取电阻电容值。 P1.0P1.5与L298N使能端和输入端相连,P0.0P0.2因为有AD转化功能,所以用来与光电检测器相连,接受位置信号。2.2位置检测模块位置检测采用反射式光电传感器。其原理如下:图3.3 TCRT5000及其信号放大电路光电传感器由两部分组成,一个发光二极管和一个光敏二极管。给发光二极管通电,使其发光。若检测到黑线,则发出的光被黑线吸收,光敏二极管接收不到反射回来的光,OUT端输出则为低电平。反之则为高电平。我们通过市场调研,了解到TCRT5000比较常用,且性能可以满足需求,所以决定采用TCRT5000作为位置检测传感器。以下为它的基本参数:光学 - 反射式 - 模拟输出检测距离: 0.591 (15mm)检测方法: 反射电压 - 集电极发射极击穿(最大): 70V电流 - 集电极 (Ic)(最大): 100mA电流 - DC 正向(If): 60mA输出类型: 光电晶体管工作温度: -25C 85C考虑到控制系统和整体性能,我们决定采用三个TCRT5000检测位置。有关TCRT5000个数选择,在控制算法设计中进行具体介绍。2.3电机驱动模块的选择经讨论,我们决定选择L298N芯片对两个直流电机进行驱动。L298N电机驱动模块具有以下特点:1. 可实现电机正反转及调速;2. 启动性能好,启动转矩答;3. 工作电压可达到36V,4A;4. 可同时驱动两台直流电机。L298N 是SGS 公司的产品,即是15 脚Multiwatt 封装的。内部包含4 通道逻辑驱动电路,可以方便的驱动两个直流电机或一个两相步进电机。因采用单个直流电机驱动,故设计成单直流双桥合并电路。暑促电压最高可达50V,可以直接通过电源来调节输出电压,而且可以直接用单片机的IO 口提供信号,而且电路简单,使用方便。L298N 使能端为高电平使能,使能端EN1、EN2 可以接I/O 口控制也可直接接电源正一直使能,至于使能端是接固定电平还是接I/O 口,视具体情况而定,若I/O 口资源够用可接I/O 口控制,若不够用,可直接接高电平。同时,控制电机的PWM 脉冲也可以从两个使能端输入,那么四个输入引脚IN1、IN2、IN3、IN4 只需设置为相应的高低电平可以控制电机的正反转,假如IN1 给固定高电平,IN2 给固定低电平电机正转,那么IN1 给低IN2 给高就可实现反转,IN3、IN4 同理。L298N的基本参数如下:类型 : 半桥输入类型 : 非反相输出数 :4电流-输出/通道 :2A电流-峰值输出 :3A电源电压 :4.5 V 46 V工作温度 :-25C 130C安装类型 : 通孔封装/外壳 :Multiwatt-15(垂直,弯曲和错列引线)供应商设备封装 :15-Multiwatt包装 :管件器件型号 L298N制造商 STMicroelectronics产品型号 Motion Motor Control图3.4 L298N管脚图上图是L298N的管脚图VSS:芯片电压5V。 VCC:电机电压,最大可接50V。GND:共地接法。OUT1OUT4:输出端,接电机。ENA、ENB:高电平有效,ENA、ENB分别为 IN1和IN2、IN3和IN4的使能端。IN1 IN4:输入端,输入端电平和输出端电平是对应的。我们使用的是两个直流电机,其接线示意图如下:图3.5 直流电机与L298N接线示意图由于电机是感性负载,所以需要在L298的输出端接四个快速二极管IN5822组成续流电路,将电机产生的感应电流消耗,防止对电路产生影响。L298还提供了两个负载电流的反馈引脚:1脚和15脚,将它们同时接一个0.1欧姆,12W的电流检测电阻,再接地,此时就可以通过对1脚或者15脚进行A/D采样,来得到电路中负载电流,实现恒流控制。L298有4脚(VS)和9脚(VSS)两个电源引脚,4脚为电机驱动电源输入端,该电压需要比9脚输入电压大,否则将会影响芯片的正常工作,而9脚为芯片工作电压输入端。图3.6 控制电路总图以上是控制电路的总图。为了精简起见,采用总线将各部分连接起来。4系统软件的设计设计单片机应用系统时,通过根据具体要求现场调查分析,确定单片机应用系统地目标,确定系统的功能与性能。系统的功能主要有数据采集、数据处理、输出控制等,每一功能又细分若干子功能。比如,数据采集可分为模拟信号采集和数字信号采样,数据处理可分为预处理、功能性处理、抗干扰处理等子功能;输出控制按对象不同可分为各种控制功能,如机电控制、D/A转换控制,数码管显示控制等。系统功能主要由控制精度、速度、功耗、体积、重量、价格、可靠性的技术指标来衡量。而一旦这些指标一旦确定下来,整个系统将在这些标定下进行设计。系统的速度、功耗、体积、重量、价格、可靠性的等指标会左右系统软硬件的功能划分。4.1应用软件的设计应用软件是根据系统功能进行设计的,应尽可能的实现系统的各种功能,一般应用软件应具有:软件结构清洗,简捷,流程合理。各功能程序事先模块化、系统化。这样既便于调试、连接,又便于移植、修改和维护。 程序存储区、数据存储区规划合理,既能节约存储容量,又能给程序的设计与操作带来方便。运行程序实现标志化管理。各个功能程序运行状态、运行结果以及运行需求都设置标志状态设置标志位以便于检查,程序的转移、运行、控制都可通过状态标志来控制。经过调试修改后的程序应该进行规范化,除去修改痕迹。规范化的程序便于交流、借鉴,也为软件的模块化、标准化打下基础。实现全面软件抗干扰设计。软件抗干扰是计算机应用系统提高可靠性的有力措施。为提高运行的可靠性,在软件中设置自诊断系统,在系统运行前先运行自诊断程序,以检查系统的各项参数是否正常。4.2软件调试4.2.1软件调试过程软件调试是通过对用户程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。 图 4-1 软件调试过程图4.2.2软件调试一般方法 先独立后联机软件是硬件的灵魂,没有软件系统将无法工作;同时大多数软件的运行又依赖于硬件,当软件测试参数进行事务处理时,往往是和硬件无关的,即这样可以通过对用户程序的仔细分析,把与硬件无关的、功能相对独立的程序抽取出来,形成与硬件无关和依赖硬件的两大类用户程序块。在具有交叉汇编软件或主机联机仿真的基础上,形成与硬件无关的程序调试与硬件同步进行,以提高软件调试速度。当与硬件无关的程序块全部调试完且用户系统调试也已完成以后,可以将仿真机与主机、用户系统连接,进行系统联调,先对依赖于硬件的程序块进行调试,调试成功后,再进行两大程序的有机结合及总调试。先分块后组合如果系统的用户规模较大,任务较多,那么即使先行将用户程序分为与硬件无关和依赖于硬件两部分,如果这两部分程序依旧较为庞大的话,采用顺序从头到尾的调试方法既浪费时间又不易进行错误性定位,所以常规的调试方法都是分别对两类程序块进一步采用分模块调试,以提高软件调试的有效性。每个程序模块调试完毕后,将相互关联的程序模块组合起来加以调试,以解决在程序模块连接中可能出现的逻辑错误,对所有程序模块的整体组合是在系统联调中进行得。由于各个程序模块已通过调试排除了内部错误,所以软件总体调试的错误就大大减少了,而调试成功可能性就大大的提高了。先单步后连续调试好程序模块的关键是实现对错误的正确定位。准确发现程序中错误的最有效的方法是采用单步加断点运行的方法调试程序。单步运行可以了解被调试程序中每条指令被执行的情况,分析指令的运行结果可以知道该指令的正确性,并且进一步了解是硬件电路错误、数据错误还是程序设计错误等引起该指令的执行错误,从而发现和排除错误。但是所有程序都单步运行的方式查找错误,是一件费时又费力的工作,所以为了提高调试效率,一般采用先使用断电运行的方式来精确定位错误所在,这样做到调试的快捷和准确。有些实时性操作利用单步运行方法无法调试,必须采用连续运行方法进行调试,为了提高对错误的定位,可使用连续加断点运行方式调试这类程序,即利用断点定位的改变,一步步缩小范围,直至最终确定出错误位置并加以排除。4.2.3系统联调系统联调是让用户系统的软件在其硬件上运行,进行软、硬件联合调试,从而发现硬件故障错误或软、硬件设计错误。系统联调主要解决以下问题:系统软硬件是否能按预定的要求配合工作;系统运行中是否有潜在的设计时难以预料的错误;系统的动态性能指标是否满足设计要求;4.3电机的选择常用的电机驱动技术有步进驱动、伺服驱动、变频驱动,其中伺服驱动又分为开环、半闭环、闭环系统。图4-2 开环系统流程图图4-3 半开环系统流程图图 4-4 闭环系统流程图4.3.1步进电机的驱动技术步进电机是一种将数字式电脉冲信号转换成机械角位移或线位移的机电元件。它的机械位移与输入的数字脉冲信号有着严格的对应关系,即一个脉冲信号可使步进电动机前进一步,又由于它的输入信号为脉冲电压,因此又被称作脉冲电动机。步进电动机作为数字控制系统的佳配,它是一种比较理想的执行元件。 步进电机驱动技术是典型的开环控制系统,主要用于位置或角位移变化的运动控制领域。图4-5 步进电机选择步进电机驱动技术主要特点:位置控制,成本较低。图4-6 步进电机驱动器4.3.2 变频驱动技术变频控制系统是一种能够实现机械平台或回转机构的速度的自动、连续、精确地复现输入指令信号的变化规律的自动控制系统。图4-7 变频器通用系统框图整流器:将交流电变换成直流的电力电子装置,其输入电压为正弦波,输入电流非正弦,带有丰富的谐波 。逆变器:将直流电转换成交流电的电力电子装置,其输出电压为非正弦波,输出电流近似正弦。变频驱动技术主要用于转速或频率变化的节能环保领域。图4-8 双极性SPWM回路图4-9 输出电压波示意图变频驱动技术的主要特点:速度控制,成本适中。 4.3.3伺服驱动技术伺服控制系统是一种能够准确、快速和稳定地实现机械平台或回转机构的位置、方位、速度、转矩或者其它机械状态的输出被控量跟随输入目标值(或给定值)的任意变化的自动控制系统。 伺服驱动技术主要用于速度、位置和转矩变化的全闭环准确运动控制领域。 伺服驱动技术的主要特点:速度、位置和转矩的全闭环控制,成本较高。 图4-10 常用伺服装置比较4.3.4电机控制方式选择不同的应用场合,对控制用电动机的性能密度的要求也有所不同。 (1) 对于起停频率低(如几十次分),但要求低速平稳和扭矩脉动小,高速运行时振动、噪声小,在整个调速范围内均可稳定运动的机械,如NC工作机械的进给运动、机器人的驱动系统,其功率密度是主要的性能指标; (2) 对于起停频率高(如数百次分),但不特别要求低速平稳性的产品,如高速打印机、绘图机、打孔机、集成电路焊接装置等主要的性能指标是高比功率。 (3) 在额定输出功率相同的条件下,交流伺服电动机的比功率最高、直流伺服电动机次之、步进电动机最低。而我们的自动循迹轮椅由于要求要有足够的响应速度,同时要能够要有优良的调速性能,并且在控制上能够和软件的设计进行较好的结合,所以充分结合各种控制电机调速方式的优缺点,并且根据轮椅的能源装置需要随身携带,只能采用类似蓄电池式的能源装置,我们选定直流调速电机作为驱动装置。为了便于控制,同时适应3个光电对管的控制形式,只设置两档调速,实际情况可以增加多档调速,同时将控制系统的复杂程度提高以适应变速过程。4.4轮椅转向系统的设计利用红外式传感器检测地面上引导线的光强模拟信号,3路模数转换通道AD0AD2与各个红外式传感器的反射信号相连,通过80C51自身的AD转换通道处理数据。反射后光的强弱是通过模拟电压来表征的,每一个接收管都对应了一个模拟电压,将他们进行A/D转换,并将所得的数值与每个光电管设置的阈值电平相比较,进而判断轮椅的行进状态是否需要改变,要进行调整,将3个光电管同时位于检测区,安装位置大致如图4-11所示。图4-11 轮椅检测位置示意图小车采用两轮驱动,其中使用L298是控制直流电机的专用集成芯片,它是双H桥高电压功率大电流功率集成电路,可驱动2个直流电动机等感性负载。L298可以驱动两个电机运动,A组控制电机,B组控制另一个电机。其中,ENA、IN1、IN2为L298的A组输入使能控制,IN1与IN2为输入端,输出端为OUT1、OUT2。当ENA=1,IN1=1,IN2=0时,电动机正转;当ENA=1,IN1=0,IN2=1时,电动机反转;B组控制方式与A组是一样的。反射式红外二极管检测地面引导线,通过A/D转换得到一个值,反射光越强,值越大;反射光越小,值越小。程序开始执行时,位置检测装置位于引导线上,测出引导线与地面背景值,求出平均值,作为阈值avg。规定:当A/D转换的检测值大于阈值,令状态dStatue=1;若A/D转换的检测值小于阈值,令状态dStatue=0;用定时器1控制定时采样轮椅的位置量,根据车的位置控制其运动,程序流程图如下:图4-12 系统控制流程图具体程序代码如下:#include#define TMOD_VALUE 0x20 /定义c/t1的工作方式#define TH1_VALUE 0xE6 /定义TH1的值#define TL1_VALUE 0xE6 /定义TL1的值typedef unsigned char uchar;uchar data value3 _at_ 0x40 ; /留意空格uchar data adNum; /AD通道号uchar data flag1; /完成3路数据采集,标志=1uchar data flag2; /完成阈值计算,标志=1uchar data avg; /阈值uchar xdata adAddr; /定义ADC0809地址,假设为0x2000uchar bdata dStatue=0;sbit dStatue_0=dStatue0;sbit dStatue_1=dStatue1;sbit dStatue_2=dStatue2;sbit P1_0=P10;sbit P1_1=P11;sbit P1_2=P12;sbit P1_3=P13;sbit P1_4=P14;sbit P1_5=P15;void iniTimer1(void)TMOD=TMOD_VALUE; /定时器1方式2TH1=TH1_VALUE; /定时器1预置数TL1=TL1_VALUE; /定时器1置重装载数TR1=1; /启动定时器return;void count(void)avg=value0/2+value1/2;/阈值计算完flag2=1;return;void delay(void)/延时uchar data i;while(i5000) i+;return;void turn(uchar x)/小车方向控制函数if(x=0)/左转 P1_3=1;P1_2=0;P1_4=0;P1_5=1;/使L298的ENA=1,ENB=1,右轮电机全速前进 while(1) P1_1=1;P1_2=0;/左轮半速前进 delay();/延时 P1_1=P1_1;P1_2=P1_2;/全速 delay(); if(x=1)/右转 P1_3=1;P1_2=0;P1_4=0;P1_5=1; /左轮电机全速 while(1) P1_4=1;P1_5=0;/左轮电机半速 delay(); P1_1=P1_1;P1_2=P1_2;/全速 delay(); if(x=2) /前进 P1_3=1;P1_0=1; /使L298 的ENA=1,ENB=1; P1_1=1;P1_2=0; /左轮前进 P1_4=0;P1_5=1; /右轮前进 return;if(x=3) /停止 P1_3=0;P1_0=0; /使L298 的ENA=0,ENB=0 P1_1=0;P1_2=0; /左轮停转 P1_4=0;P1_5=0; /右轮停转 return;void motorcontrol(uchar x)switch(x) case 0:turn(0);break; case 1:turn(1);break; case 2:turn(2);break; case 3:turn(3);break;void judge(void)if(value0avg) /小于阈值置位变量dState_0=0dStatue_0=0;elsedStatue_0=1; /AD转换值大于阈值,置位变量dState_0=1if(value1avg) dStatue_0=0;elsedStatue_0=1;if(value2avg) dStatue_0=0;elsedStatue_0=1;return;main()iniTimer1();adNum=0;IT1=1;EA=1;EX1=1;ET1=1;flag1=0;flag2=0;motorcontrol(2);adAddr=adNum;while(1) if(flag1=1) if(flag2=0)count();flag1=0;judge();switch(dStatue) case 0:motorcontrol(3);break; case 1:motorcontrol(1);break; case 2:motorcontrol(2);break; case 4:motorcontrol(0);break; default:motorcontrol(3);break; void timerInt(void) interrupt 3 using 3adAddr=adNum;return;void adcInt(void) interrupt 2 using 2valueadNum=adAddr;adNum+;if(adNum3) adNum+; return;else flag1=1; adNum=0; return;程序的设计定义,定义标志flag1,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论