• 441.50 KB
  • 2022-04-29 14:08:13 发布

电动车翘翘板毕业设计论文.doc

  • 44页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'目录前言2第1章任务要求31.1设计任务31.2设计要求41.2.1基本部分要求41.2.2发挥部分要求41.3设计说明5第2章方案论证52.1系统设计方案选择与论证52.1.1电机方案的选择与论证52.1.2寻迹检测电路方案的选择与论证62.1.3平衡检测电路方案的选择与论证62.1.4平衡标志方案的选择与论证72.1.5显示时间电路方案的选择与论证72.1.6电源方案的选择与论证82.2系统电路组成及原理8第3章系统的软件设计与实现93.1单片机介绍93.2ADC0832数据读取程序设计流程123.3寻找平衡子程序设计流程143.4T0中断定时子程序流程图163.5LCD显示子程序流程173.6主程序流程18第4章系统测试及调试204.1系统测试204.1.1测试仪器204.1.2数据测试204.1.3测试数据与结果分析214.2软件调试21总结22致谢23参考文献24附录1硬件电路图25附录2系统软件设计清单26附录3英语原文40附录4中文翻译4344 前言随着计算机技术的飞速发展,单片机已逐渐发展成为一门关键的技术学科。20多年来,高校单片机课程成了很多专业的必修课。该课程是一门应用性很强的课程,如何让学生在学好基础知识的同时,迅速掌握设计应用技术,其中的实践教学起着非常重要的作用。单片机实践教学包括单片机基本理论实验、典型功能应用实验(课程设计)、应用开发实验(毕业设计)以及新技术使用实验等等多环节训练。21世纪是信息时代,是经济大发展的时期,要求培养更多的高素质、高能力、有开拓进取精神的探索创新型人才,因此不仅要使学生通过单片机实践教学来掌握基本实践手段,更重要的是使学生具备应用这些手段从事科学研究的独立工作能力。在实践教学中,仅仅传授实践技术是不够的,必须注重学生能力的培养,使学生在知识和能力方面得到全面的发展。古人云:“授之以鱼,只供一饭之需,教之以渔,则终生受用无穷。”培养能力无异于给学生一把开启知识之门的钥匙,有了这把钥匙才能使他们在知识的海洋里泛舟冲浪。所以单片机实践教学的方法得当,有利于创新人才的培养。传统的单片机实验均以单片机实验箱或者单片机技术开发装置为实验器材,开设的实验大多数属于验证性实验和训练性实验,学生实验时是在指导教师的指导下根据实验讲义一步一步完成相应的内容。在整个学习过程中,学生往往很被动,而且与实际应用不接轨。学生学完整个单片机课程后不知道单片机的应用场合,更谈不上开发一些具有实用价值的东西。一种型号的单片机可以学习很多年,学生训练分散、时间短暂,实践教学没有层次,阶段不明,忽视培养学生的实践能力和创新精神。要想从根本上解决问题,应该根据培养能力的要求,建立单片机实验教学新体系,打破单片机实验教学依附于理论教学,为理论教学服务的传统观念。而本课题就是为打破这种传统观念,而用实际物品来验证单片机各种性能的,运用现代化的实践教学手段和管理模式,课题充分利用实验室有利的条件,不断地改革和完善单片机实践教学的内容和方法,提高学生单片机应用与开发能力,达到培养具有实践能力和创新精神的高素质人才的目的。44 第1章任务要求1.1设计任务图1-1起始状态示意图设计并制作一个电动车跷跷板,在跷跷板起始端A一侧装有可移动的配重。配重的位置可以在从始端开始的200mm~600mm范围内调整,调整步长不大于50mm;配重可拆卸。电动车从起始端A出发,可以自动在跷跷板上行驶。电动车跷跷板起始状态和平衡状态示意图分别如图1-1和图1-2所示。图1-2平衡起始状态示意图44 1.2设计要求1.2.1基本部分要求在不加配重的情况下,电动车完成以下运动:(1)电动车从起始端A出发,在30秒钟内行驶到中心点C附近;(2)60秒钟之内,电动车在中心点C附近使跷跷板处于平衡状态,保持平衡5秒钟,并给出明显的平衡指示;(3)电动车从(2)中的平衡点出发,30秒钟内行驶到跷跷板末端B处(车头距跷跷板末端B不大于50mm);(4)电动车在B点停止5秒后,1分钟内倒退回起始端A,完成整个行程;(5)在整个行驶过程中,电动车始终在跷跷板上,并分阶段实时显示电动车行驶所用的时间。1.2.2发挥部分要求图1-3自动驶上跷跷板示意图将配重固定在可调整范围内任一指定位置,电动车完成以下运动:(1)将电动车放置在地面距离跷跷板起始端A点300mm以外、90°扇形区域内某一指定位置(车头朝向跷跷板),电动车能够自动驶上跷跷板,如图1-3所示。(2)电动车在跷跷板上取得平衡,给出明显的平衡指示,保持平衡5秒钟以上。(3)将另一块质量为电动车质量10%~20%的块状配重放置在A至C44 间指定的位置,电动车能够重新取得平衡,给出明显的平衡指示,保持平衡5秒钟以上。(4)电动车在3分钟之内完成(1)~(3)全过程。(5)其他。1.3设计说明(1)跷跷板长1600mm、宽300mm,为便于携带也可将跷跷板制成折叠形式。(2)跷跷板中心固定在直径不大于50mm的半圆轴上,轴两端支撑在支架上,并保证与支架圆滑接触,能灵活转动。(3)测试中,使用参赛队自制的跷跷板装置。(4)允许在跷跷板和地面上采取引导措施,但不得影响跷跷板面和地面平整。(5)电动车(含加在车体上的其它装置)外形尺寸规定为:长≤300mm,宽≤200mm。(6)平衡的定义为A、B两端与地面的距离差d=∣dA-dB∣不大于40mm。(7)整个行程约为1600mm减去车长。(8)测试过程中不允许人为控制电动车运动。第2章方案论证2.1系统设计方案选择与论证2.1.1电机方案的选择与论证方案一:采用步进电机。步进电动机的一个显著的特点就是具有快速启动和停止能力,能够达到我们所要求的标准。其转换灵敏度比较高。正转、反转控制灵活。但是步进电机的驱动能力较差、速度较低、对于方案要求相差较大,而且力矩小,容易步丢失[1]。方案二:采用减速电机,其最大的优点是转矩较大,驱动能力较强,但是减速电机的速度也较低,不能很好的满足要求方案三:采用大功率达林顿管组成的H型方向控制的电机驱动普通的直流电机。H型电机驱动电路具有优良的44 转向控制,电子开关速度很快,稳定性也很强,可实现频繁的无极快速启动、制动和反转,能满足各种不同的特殊运行要求。由于普通直流电机价格适宜,更易于购买,并且电路相对简单,因此采用方案三[2]。2.1.2寻迹检测电路方案的选择与论证本设计要求在整个行驶过程中,电动车始终在跷跷板上,为了防止小车在行使过程中掉下跷跷板,因此在跷跷板上画出黑色直线轨道。考虑到轨道是在白纸上打印的一条黑线,可以利用传感器辨认路面黑白两种不同的状态。对传感器的选择有以下方案。方案一:用光电传感器。光电传感器对黑色和白色的反射系数不同,由此判断传感器是否在黑线上行驶。但是,由于其他光源影响,需采用聚焦式光电传感器。方案二:用反射式红外传感器。红外线比可见光的波长要长,散射度小,可以降低环境对光源接收管的干扰,但由于直接利用直流电源对管子供电,限于管子的平均功率要求,工作电流只能在10mA左右,仍易受到干扰。基于可靠性和成本的考虑,我们选择方案一[3]。2.1.3平衡检测电路方案的选择与论证方案一:采用集成芯片SCA61T倾角传感器。该角度传感器是一个单轴倾角传感器,测量范围在+30度到-30度之间,符合跷跷板角度范围,该传感器可以输出模拟量和SPI数字量,易于单片机采集数据,稳定性高,抗冲击能力强,价格合理,与单片机接口电路简单易懂,容易实现[4]。44 方案二:采用旋转编码器。将编码器固定在跷跷板旋转的轴上,当跷跷板转动时,连带着编码器旋转某个角度,根据编码器旋转一周(即360度)编码器输出脉冲数目与检测到的数目比较可以得到板面与地面之间的角度,根据转动方向不同,编码器输出A与输出B比较,当B的相位超前于A的相位90度代表跷跷板正向旋转,当A的相位超前于B的相位90度代表跷跷板反向旋转,这样根据编码器输出不同就能得到跷跷板的角度与方向,可以根据此来控制单片机发出不同的指令控制小车状态,但此方案加大了系统的复杂性[5]。方案三:采用电位器。电位器可以安装在跷跷板上,跷跷板旋转就可以带动电位器轴旋转,因此电位器阻值发生变化,利用一片A/D转换芯片,将变化的模拟量经过转换得到不同的数字量,再根据数据运算后发出命令控制小车的运行状态。此方案元器件较为普遍,降低了系统的复杂性,但是电位器阻值变化快,不易采值。综合上述分析,我们采用方案一。2.1.4平衡标志方案的选择与论证方案一:采用蜂鸣器和发光二极管相结合。当跷跷板平衡时,利用蜂鸣器发出声音和发光二极管发亮示意平衡,此电路直观简单易懂。方案二:利用角度仪。当跷跷板平衡时,角度仪的指针刚好指向中间,但是,如在旁边不仔细观察,不能发现角度仪的作用。基于上述分析,我们采用方案一。2.1.5显示时间电路方案的选择与论证方案一:采用LED数码管静态显示的方法。此方法容易理解,驱动程序简单,但需要多片数码管驱动显示,增加成本,而且占用单片机多个I/O口,浪费系统硬件资源。方案二:采用LED数码管动态显示的方法。此方法需要7个I/O口可以驱动8个数码管显示,驱动程序也很简单而且容易理解,但是硬件电路也比较繁琐,由于小车的容纳空间有限,不易采用[6]。方案三:采用LCD液晶显示。采用1602A液晶显示器,占用单片机10个I/O口,浪费系统硬件资源,但其美观大方,使整个系统看起来更加漂亮。综合各方案的特点,我们选择方案三。44 2.1.6电源方案的选择与论证方案一:采用单电源供电。在测试过程当中,我们采用的是直流稳压电源提供的5V电压,可以使小车能正常完成各项功能。方案二:采用双电源供电。利用双电源供电会增加单片机工作的可靠性;但它增加小车系统的电路连线,可能会造成电线过多而产生错误的问题,而且也增加了电路的复杂性[7]。基于上述分析,我们采用了方案一。2.2系统电路组成及原理本系统电路主要由六大模块组成,微机主控制模块、寻迹检测模块、平衡检测模块、显示模块、蜂鸣器模块和直流电机驱动控制模块等六大模块组成。见图2-1。其工作原理是通过AT89C52来控制直流电机的转动,再由电机驱动小车行驶,小车在行驶过程中通过光电传感器检测黑线使小车直线前进。小车到达平衡位置时蜂鸣器有5秒的鸣响,同时指示灯亮,小车到终点时只有指示灯亮。在行驶过程中,由LCD液晶实时显示小车行驶的时间。AT89C52单片机平衡检测时间显示电机驱动、车向控制蜂鸣器引导线检测图2-1设计原理框图44 第3章系统的软件设计与实现3.1单片机介绍图3-1AT89C52引脚图目前,CPU的发展应用趋于多样化,主要可分为8位机和16位机两种,8位单片机的应用占主流,根据本系统的特点及功能要求,选用了一种低功耗、低价格、高性能的CMOS8位微处理器-AT89C52,芯片内部具有8K在系统可编程Flash存储器,芯片采用51系列指令集并与51系列单片机引脚完全兼容[8]。其引脚图见图3-1。AT89C52单片机的各引脚功能如下:(1)VCC:电源(2)GND:地(3)P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”44 时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。(4)P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。(5)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@Ri)访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。(6)P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为AT89C52特殊功能(第二功能)使用,见表3-1。(7)REST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,REST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。44 表3-1P3口引脚替换功能表P3口引脚第二功能P3.0RXD(串行口输入)P3.1TXD(串行口输出)P3.2(外部中断0输入)P3.3(外部中断1输入)P3.4T0(定时器0外部脉冲输入)P3.5T1(定时器1外部脉冲输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)(8)ALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。(9):外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。(10)/Vpp:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏Vpp电压。(11)XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。(12)XTAL2:振荡器反相放大器的输出端[9]。44 3.2ADC0832数据读取程序设计流程ADC0832芯片接口程序的编写:44为了高速有效的实现通信,我们采用汇编语言编写接口程序。由于ADC0832的数据转换时间仅为32uS,所以A/D转换的数据采样频率可以很快,从而也保证了某些场合对A/D转换数据实时性的要求。数据读取程序以子程序调用的形式出现,方便了程序的移植。程序占有资源有累加器A,工作寄存器R7,通用寄存器B和特殊寄存器CY。通用功能寄存器和转换值共用寄存器B。在使用转换子程序之前必须确定通道功能寄存器B的值,其赋值语句为“MOVB,#date”(00H-03H)。运行转换子程序后的转换数据值被放入B中。子程序退出后即可以对B中数据处理[10]。常情况下ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入两位数据用于选择通道功能。当此2位数据为“1”、“0”时,只对CH0进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当两位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2位数据为“0”、“1”时,将CH0作为负输入44端IN-,CH1作为正输入端IN+进行输入。到第3个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发4444 出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATD0。随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了[11]。44 3.3寻找平衡子程序设计流程倾角传感器SCA61T是一个单轴倾角传感器,其测量范围在+30度到-30度之间,单极5V供电,比例电压输出,具有很高的分辨率,具有数字SPI和模拟电压输出,内置温度传感器,长期稳定性好,低噪声,工作温度范围宽,抗冲击能力强。由于我们所用的AT89C52没有SPI接口,所以我们用的是模拟数据输出模式。小车在跷跷板上行驶时,倾角传感器SCA61T输出的模拟电压值由2.2伏到2.9伏。小车出发时(即跷跷板A点时),输出的电压值大约是2.2伏;当小车行驶到平衡位置时(即跷跷板C点时),输出的电压值大约是2.5伏,小车行驶到终端(即跷跷板B点时),输出的电压大约是2.9伏。图可见图1-1。我们把模拟方式输出的数据高位存在R4寄存器里,数据低位存在R5寄存器里,再存入21H存储单元里,由于跷跷板从始端到终端时R4寄存器里数据都不变,所以我们只需要比较数据低位就好。44 44 3.4T0中断定时子程序流程图44AT89C52内部有3个16位可编程的定时器/计数器,简称定时器0,定时器1,定时器2,分别用T0,T1,T2表示。本设计用T0工作在模式0下定时,赋5mS初值,用软件控制定时起停[12]。其中TMOD为模式控制寄存器,主要用来设置定时器/计数器的操作模式;TCON为控制寄存器,主要用来控制定时器的启动与停止。T0工作在定时方式时,计数脉冲输入信号是由内部时钟提供的,每一个机器周期使计数器的值加1。而每个机器周期等于12个振荡周期,故计数器的计数频率为振荡器频率的1/12。实质上定时工作方式,就是对单片机的机器周期数进行计数。44 3.5LCD显示子程序流程TC1602A可分为2行共显示32个字符,每行显示16个字符。内含HD44780控制器的液晶显示器模块的TC1602A有两个寄存器:一个是命令寄存器,另一个是数据寄存器。所有对TC1602A的操作必须先写命令字,再写数据。TCl602A内部结构由DDRAM、CGROM、IR、DR、BF、AC等大规模集成电路组成。DDRAM为数据显示用的RAM(DataDisplayRAM,简称DDRAM).用以存放要LCD显示的数据,只要将标准的ASCII码放入DDRAM,内部控制线路就会自动将数据传送到显示器上,并显示出该ASCII码对应的字符。CGROM为字符产生器ROM(CharacterGeneratorRAM,简称CGRAM),可供使用者存储特殊造型的造型码,CGRAM最多可存8个造型。IR为指令寄存器(InstructionRegister,简称IR),负责存储MCU要写给LCD的指令码。当RS及R/W引脚信号为0且Enable引脚信号由1变为0时,D0~D7引脚上的数据便会存入到IR寄仔器中。DR为数据寄存器(DataRegister,简称DR),它们负责存储微机要写到CGRAM或DDRAM的数据,或者存储MCU要从CGRAM或DDRAM读出的数据。因此,可将DR视为一个数据缓冲区.当RS及R/W引脚信号为1且Enable引脚信号由l变为0时,读取数据:当RS引脚信号为l,R/W引脚信号为0且Enable引脚信号由1变为0时,存入数据。BF为忙碌信号(BusyFlag.简称BF)。当BF为l时,不接收微机送来的数据或指令;当BF为0时,接收外部数据或指令,所以,在写数据或指令到LCD之前,必须查看BF是否为0。AC为地址计数器(Ad-dressCounter,简称AC),负责计数写入/读出CGRAM或DDRAM的数据地址,AC依照MCU对LCD的设置值而自动修改它本身的内容。44 443.6主程序流程主程序流程分3大部分,第一部分为小车从起始位置到寻找到平衡位置,这一部分里主要包括前进,寻迹,寻找平衡且显示时间子程序。第二部分为从平衡位置到走到终端这一段,这一部分主要包括前进,寻迹,判断是否到黑线子程序。第三部分为从终端返回到起始位置这一段路程,这一部分主要包括后退,寻迹子程序。44 44 第4章系统测试及调试4.1系统测试4.1.1测试仪器仪器名称型号用途数量直流电压源luyang提供电压1仿真器keil调试程序1烧写器RF-2148烧写程序1数字万用表测量电路电压、电流及各种器件14.1.2数据测试4.1.2.1跑道全程测试测试次数完成时间(S)行使路程(mm)寻迹次数1153320072129320053123320044.1.2.2平衡测试测试次数寻找平衡时间平衡次数误差率145有70%222无340有432有551无649有740有830无946有1023有44 4.1.3测试数据与结果分析通过多次测试数据,本电动车跷跷板系统设计的性能指标及实现功能如下:1、在规定的时间内小车可完成往返全程路;2、在配重物的情况下,小车达到的平衡度有一定的误差;3、小车可寻迹运行,并能循着黑线继续往前行驶;4、实时显示小车当前的时间功能;5、实现蜂鸣器和发光管示意的功能;4.2软件调试本系统软件程序较长,给程序的编写和调试带来了一定的困难,在调试过程中出现了很多问题,尤其是在调试小车平衡状态、寻迹等程序的调试,后来我们采用了模块化的调试过程,最终在多次尝试和细心修改后最终取得了成功。如我们在编写寻找平衡子程序时,由于我们不知道小车在具体位置时SC61T单轴倾角器输出的具体电压值,我们得先编写一个具体的显示SCA61T输出的电压值的程序,显示出小车在跷跷板上不同位置时输出的不同电压值。从而根据这些不同的电压值判断小车的位置。而在编写寻迹子程序时,当光电传感器检测到黑线时,转多大的角度也是我们一遍一遍修改程序,最后才最终选定的,从而达到比较好的效果。而如何让其实现分阶实时显示时间,我们也想了很多方案,最终我们选定了把主程序设成3个大循环,从而解决了分阶实时显示时间的功能。我们在编程过程中还遇到过很多问题,但经过我们多次尝试修改后最终完成了我们的任务要求。这让我们认识到只要自己不放弃,努力,再努力,就一定会成功。也让我们知道了知识的重要性。44 总结本系统设计基本达到了作品要求的功能,整个系统运行稳定。在调试过程中,首先对硬件进行调试,只有硬件电路没有问题了方可进行软件调试。通过本次毕业作品的设计与制作,让我们体会最深的是团队精神的重要性,在整个设计与制作过程中我们秉着互相信任、互相配合、分工合作的态度。最后基本完成了作品要求的功能。本次作品考验的不仅仅是我们的理论知识和动手能力更是对我们毅力、应变能力、心理素质的综合考验。另外电路板焊接技术也是很重要的,虽然电路板的焊接非常不起眼,但是它对整个设计作品的成败起着非常关键的作用。焊接电路板时,要高度集中精力,不能急于求成,因为每一个细微的焊接失误都会导致调试失败,这也让我们学到了细节决定成败的道理。同时最为重要的一点就是软件编程的问题,在这方面我还有很多不足,有待我们去提高。44 致谢我们所做的“电动车跷跷板的设计与制作”这个设计是一个结合科研的题目。它涉及到系统原理图设计,主控软件的设计,单片机汇编语言的编程还有相关软件(Keil)的使用。由于我们能力有限,在毕业设计的制作过程中,遇到很多问题和困难,但在老师的指导的帮助和关心下,我们成功地完成了主控软件的总体设计和编程工作。在此,我们向帮助过我们的老师致以真诚的感谢!本论文是我在尊敬的祝玲老师的精心指导下完成的。祝玲老师严谨的治学作风和孜孜不倦的工作态度深深地激励着我,使我尽最大努力克服工作中所遇到的困难,不断进步,在理论和实践方面的能力都获得了很大的提高。在四年的大学学习过程中,祝老师给予我的支持和鼓励使我倍感温暖,一生难忘。在此谨向我的导师祝老师致以崇高的敬意和衷心的感谢。衷心感谢电气信息工程学院各位领导和老师在我的四年的大学学习和毕业设计期间给予热情的关心和帮助。同时感谢我的各位朋友,在我的大学生活中,他们丰富了我的生活,也给了我莫大的支持,在此感谢他们对我的帮助。最后,我要特别感谢我的父母多年来对我的关爱。在我近年的学习生涯中,我的每一点进步、每一点成绩都与他们给予我的鼓励和全力支持密不可分。在我的求学生涯暂告一段落之际,谨向他们表示我深深的感谢。44 参考文献[1]王俊峰编著《电子产品开发设计与制作》人民邮电出版社2005版[2]黄智伟编著《全国大学生电子设计竞赛训练教程》电子工业出版社2005版[3]李民刚曹巧媛曹琳琳陈忠平主编《单片机原理及使用技术》高等教育出版社出版2005年版[4](美)PaulScherz著蔡声镇...[等]译《发明者电子设计宝典》福建科学技术出版社2004版[5]http://www.tan-yan.com[6]陈民荧编著《8051单片机课程设计实训教材》清华大学出版社出版2004年版[7]杨刚周群主编《电子系统设计与实践》电子工业出版社2004版[8]王振红张常年编著《综合电子设计与实践》清华大学出版社2005版[9]吴金戌沈庆阳郭庭吉编著《8051单片机实践与应用》清华大学出版社2002版[10]杨欣王玉凤主编《电子设计从零开始》清华大学出版社出版2005年版[11]http://www.51senor.com[12]李玉梅编著《基于MCS-51系列单片机原理的应用设计》国防工业出版社2006版44 附录1硬件电路图44 附录2系统软件设计清单系统总的软件程序如下:;===============================================================;主程序:实现控制电动机寻迹,找平衡功能,并且完成分段记时,;报警,显示等功能;===============================================================RSEQUP3.7;LCD数据/命令选择端RWEQUP3.6;LCD读/写选择端EEQUP3.5;LCD使能信号AD_CSEQUP3.3;ADC0832片选信号AD_CLKEQUP3.2;ADC0832时钟端AD_DATEQUP3.1;ADC0832数据端HOUREQU30HMINEQU31HSECEQU32H;定义时,分,秒,以及数据DEDAEQU33H;存储单元SEC0EQU34HXEQU35HD0_D7EQUP0;LCD数据?DIIBITP2.5;报警标志位DENGBITP2.6;指示灯标志位STOP_CHEBITPSW.5;用户自定义位F0,停车标志位STOP_AD0832BITPSW.1;用户自定义位F1,AD0832停止标志位ORG0000HORG000BH;T0中断入口LJMPT0_INT;T0中断LJMPSTARTORG0100H;--------------------------------------------------------START:MOVSP,#60HMOVA,#00HMOV20H,AMOV21H,A;清位MOVP2,A;清P2口CLRSTOP_CHECLRSTOP_AD0832;清标志位SETBDIISETBDENGMOVP0,#0FFHACALLINIT;调用清存储单元程序INIT44 ACALLINIT_TIMER;初始化T0中断程序ACALLINIT_LCD;初始化LCDLCALLDIS1;调用显示程序;===================================================================;LOOP1完成小车前进并寻迹,找到平衡位置;并显示这段路程所需时间;===================================================================LOOP1:CLRCLCALLAD_CONV;调用AD转换程序LCALLAD_CHULI;调用AD数据转换程序LCALLCONV;调用电子表显示程序LCALLDELAYLCALLDELAYLCALLLANGJIN;调用前进行车程序LCALLXUNJI3;发挥部分寻迹LCALLXUNJI1;调用前进寻迹程序MOVA,21HCJNEA,#70H,XUANZE;AD转换的低位值与70H比较SJMPWWW1;相等则转XUANZE:JCWWW;不等,A值小于70H则转CLRCLCALLAD_CONV;调用AD转换程序LCALLAD_CHULI;调用AD数据转换程序LCALLCONV;调用电子表显示程序LCALLDELAYLCALLDELAYMOVA,21HCJNEA,#70H,XUANZE0;再次确认A值SJMPWWW1XUANZE0:JCWWWWWW1:LCALLPINGHENG;调用寻找平衡程序JBSTOP_AD0832,LOOP2;判断是否停AD标志位WWW:SJMPLOOP1;=======================================================;LOOP2完成小车从平衡位置寻迹走到跷跷板终端功能;并记录这段时间,在终端停5秒,并报警;=======================================================LOOP2:LCALLCONV;调用电子表显示程序LCALLLANGJIN;调用前进行车程序LCALLXUNJI1;调用前进循迹程序LCALLHEIXIAN;调用判断到终点并停车程序JBSTOP_CHE,LOOP3;判断停车标志位44 SJMPLOOP2;=======================================================;LOOP3完成小车从跷跷板终端寻迹退回功能;并记录这段时间;=======================================================LOOP3:LCALLCONV;调用电子表显示程序LCALLLANGTUI;调用后退行车程序LCALLXUNJI2;调用后退寻迹程序SJMPLOOP3;========================================================;时间存储区域初始化;=========================================================INIT:MOVHOUR,#00HMOVMIN,#00H;清空MOVSEC,#00HMOVDEDA,#00HRET;==========================================================;T0中断初始化;==========================================================INIT_TIMER:MOVTMOD,#00H;设定T0工作模式MOVIE,#82H;开中断MOVTH0,#99MOVTL0,#24;赋5S初值SETBTR0;开始定时RET;===================================================;T0中断子程序;====================================================T0_INT:PUSHACCMOVTH0,#99MOVTL0,#24;赋初值INCDEDAMOVA,DEDACJNEA,#199,TT;一秒钟到?MOVDEDA,#0INCSECMOVA,SECCJNEA,#60,TT;一分钟到?INCMIN44 MOVSEC,#0MOVA,MINCJNEA,#60,TT;一小时到?INCHOURMOVMIN,#0MOVA,HOURCJNEA,#24,TTMOVSEC,#0MOVMIN,#0;清零MOVHOUR,#0TT:POPACCRETI;====================================================;LCD初始化子程序;=======================================================INIT_LCD:MOVA,#00000001B;清屏ACALLWRITE_LCD_COMMOVA,#00111000B;8位2行5*7点阵ACALLWRITE_LCD_COMMOVA,#00001100B;显示器开,光标开,闪烁开ACALLWRITE_LCD_COMMOVA,#10000000B;写显示起始地址,第二行第一个位置80H--8FHACALLWRITE_LCD_COMRET;=======================================================;检查忙碌子程序;=======================================================CHECKBUSY:PUSHACCLOP1:CLRRS;选择指令寄存器SETBRW;选择读模式MOVD0_D7,#0FFH;P1口写1,准备写入SETBE;使能LCDMOVA,D0_D7;将LCD的D0-D7由P1口送A,以便查第七位BF是否为0CLRE;禁止LCDJBACC.7,LOP1;判断由LCD读入第七位BF是否为1,若为1,表示LCD忙POPACCRET;=======================================================;写入IR寄存器子程序;=======================================================WRITE_LCD_COM:44 PUSHACCACALLCHECKBUSY;调检查忙碌子程序CLRE;禁止LCDCLRRS;选择指令寄存器CLRRW;选择写模式SETBE;使能LCDMOVD0_D7,A;将指令写入LCDLCD_PORTSETBE;使能LCDCLRE;使能LCDPOPACCRET;=======================================================;写入DR寄存器子程序;=======================================================WRITE_LCD_DATA:PUSHACCACALLCHECKBUSY;调检查忙碌子程序CLRE;禁止LCDSETBRS;选择数据寄存器CLRRW;选择写模式SETBE;使能LCDMOVD0_D7,A;将数据写入LCDSETBE;使能LCDCLRE;禁止LCDPOPACCRET;===================================================;PIGHENG:寻找平衡标志位子程序;====================================================PINGHENG:NOPWW1:CLRP2.0CLRP2.1CLRP2.2CLRP2.3;停车LCALLCONVLCALLDLYLCALLCONVLCALLDLY;电子表显示并延时一段时间LCALLCONVLCALLDLYLCALLCONVLCALLDLYSETBP2.044 SETBP2.3;小车后退LCALLCONVLCALLDLY;延时并显示时间LCALLCONVLCALLDELAY1CLRP2.0CLRP2.3;停车LCALLCONVLCALLDLYLCALLCONV;延时并显示时间LCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLAD_CONV;再次调用AD转换处理程序LCALLAD_CHULILCALLDELAYMOVA,21HCLRCCJNEA,#40H,XUANZE2;取转换值低位与40H比较XUANZE2:JCWW2;若小于40H则转CJNEA,#70H,XUANZE7;若大于40H,则与80H比较XUANZE7:JCSS;若小于70H则转LJMPWW1;若大转WW1WW2:SETBP2.1SETBP2.2;小车前进LCALLDLYLCALLXUNJI1CLRP2.1CLRP2.2;停车LCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONV;显示时间并延时一段时间LCALLDLY44 LCALLCONVLCALLDLYLCALLCONVLCALLDLYLCALLCONVLCALLAD_CONVLCALLAD_CHULILCALLDELAYMOVA,21HCLRC;再次调AD转换低位值于确认CJNEA,#40H,XUANZE3XUANZE3:JCWW2CJNEA,#70H,XUANZE4XUANZE4:JCSSLJMPWW1SS:MOVR5,#18HCLRDENGCLRDIILCALLINIT;找到平衡停车5秒LCALLCONV;并显示这段时间ZZ:LCALLDLYLCALLCONVDJNZR5,ZZSETBAD_CS;关掉AD转换SETBSTOP_AD0832;置停AD转换标志位LCALLINIT;把时间存储区域清空SETBDENGSETBDIIWW:RET;=====================================================================;HEIXIAN:判断是否到终点子程序;完成判断,停车5秒,并记录这段时间功能;=====================================================================HEIXIAN:MOVC,P1.0ORLC,P1.1JNCTING;P1.0,P1.1同时为0转TINGRETTING:NOPNOPMOVC,P1.0ORLC,P1.1;再次确认转TINGCHEJNCTINGCHERETTINGCHE:CLRP2.044 CLRP2.1CLRP2.2CLRP2.3SETBP2.4;停车MOVR5,#18HLCALLINITCLRDENGZZ1:LCALLCONV;延时5秒,并显示LCALLDLYDJNZR5,ZZ1SETBSTOP_CHE;置停车标志位LCALLINIT;清时间存SETBDENGRET;======================================================;LANGJIN:前进行车子程序;====================================================LANGJIN:CLRP2.0CLRP2.1CLRP2.2CLRP2.3SETBP2.2SETBP2.1LCALLDLYRET;======================================================;XUNJI1:前进寻迹子程序;======================================================XUNJI1:JNBP1.0,Q0;P1.0为0转Q0JNBP1.1,Q1;P1.1为0转Q1SJMPNOQ0:NOPNOPJBP1.0,NOLCALLYOUZHUAN;调用右转子程序SJMPNOQ1:NOPNOPJBP1.1,NOLCALLZUOZHUAN;调用左转子程序SJMPNO;----------------------------------------------------------------------------;右转子程序;-----------------------------------------------------------------------------44 YOUZHUAN:CLRP2.0CLRP2.1CLRP2.2CLRP2.3SETBP2.1LCALLDLYRET;-----------------------------------------------------------------------------;左转子程序;-----------------------------------------------------------------------------ZUOZHUAN:CLRP2.0CLRP2.1CLRP2.2CLRP2.3SETBP2.2LCALLDLYNO:RET;======================================================;XUNJI3发挥部分循迹子程序;======================================================XUNJI3:JNBP1.5,A0;P1.0为0转Q0JNBP1.6,A1;P1.1为0转Q1SJMPNO3A0:NOPNOPJBP1.5,NO3LCALLYOUZHUAN;调用右转子程序SJMPNO3A1:NOPNOPJBP1.6,NO3LCALLZUOZHUAN;调用左转子程序SJMPNO3NO3:RET;================================================;小车后退子程序;================================================LANGTUI:SETBP2.0SETBP2.3LCALLDLYRET;================================================;小车后退寻迹子程序;================================================44 XUNJI2:JNBP1.2,Q2;P1.2为0转Q2JNBP1.3,Q3;P1.3为0转Q3SJMPNO1Q2:NOPNOPJBP1.2,NO1LCALLZUOZHUAN1;调用左转子程序SJMPNO1Q3:NOPNOPJBP1.3,NO1LCALLYOUZHUAN1;调用右转子程序NO1:RET;----------------------------------------------------YOUZHUAN1:CLRP2.0;右转子程序CLRP2.1CLRP2.2CLRP2.3SETBP2.3LCALLDLYRET;--------------------------------------------------ZUOZHUAN1:CLRP2.0;左转子程序CLRP2.1CLRP2.2CLRP2.3SETBP2.0LCALLDLYRET;----------------------------------------------------------;AD_CONV:AD转换子程序;---------------------------------------------------------AD_CONV:;ADC0832初始化SETBAD_CS;一个转换周期开始CLRAD_CLKCLRAD_CS;CS置0,片选有效SETBAD_DAT;DI置1,起始位SETBAD_CLK;第一个脉冲CLRAD_DAT;在负跳变之前加一个DI反转操作CLRAD_CLKSETBAD_DAT;DI置1,设为单通道SETBAD_CLK;第二个脉冲CLRAD_DATCLRAD_CLK44 CLRAD_DAT;DI置0,选择通道0SETBAD_CLK;第三个脉冲SETBAD_DATCLRAD_CLKNOPSETBAD_CLK;第四个脉冲MOVR1,#08H;计数器初值,读取8位数据,AD_READ:CLRAD_CLK;下降沿MOVC,AD_DAT;读取DO端数据RLCA;C移入A,高位在前SETBAD_CLK;下一个脉冲DJNZR1,AD_READ;没读完继续SETBAD_CSMOV20H,A;转换结果发给20HRET;====================================================;AD转换值处理子程序;入口:(A)=AD转换值;出口:处理后的数据(R4)=高位,(R5)=低位;====================================================AD_CHULI:CLRCMOVR5,#00H;十进制转换的低位寄存器MOVR4,#00H;十进制转换的高位寄存器MOVR3,#08H;十进制调整的次数MOVA,20HAD_CHULI1:RLCAMOVR2,A;送R2保存MOVA,R5;(R5)乘2加CADDCA,R5DAA;做十进制调整MOVR5,A;结果存回R5MOVA,R4;(R4)乘2加CADDCA,R4MOVR4,A;结果存回R4MOVA,R2DJNZR3,AD_CHULI1;是否转换完?MOVA,R5;(R5)乘2ADDA,R5DAAMOVR5,A;结果存回R5MOVA,R4ADDCA,R4;(R4)乘2加C44 DAAMOVR4,A;结果存回R4MOV21H,R5;R5置存入21HRET;=====================================================================;在LCD的第一行显示Maker:LGSWW!;=====================================================================DIS1:PUSHACCMOVA,#10000000B;DDRAM地址设置指令,写显示起始地址,第一行第一个位置ACALLWRITE_LCD_COMMOVDPTR,#TAB1LPPP1:MOVA,#00HMOVCA,@A+DPTR;查表JZPROCACALLWRITE_LCD_DATAINCDPTRAJMPLPPP1;没查完,继续PROC:POPACCRET;===================================================;ASCII转换并在第二行显示数字子程序;====================================================CONV:MOVA,HOUR;加载数据MOVX,#5;设置位置ACALLSHOW;显示数据INCX;设置位置MOVA,#":"MOVB,XACALLLCDP;显示MOVA,MIN;加载数据INCX;设置位置ACALLSHOW;显示数据INCX;设置位置MOVA,#":"MOVB,X;显示ACALLLCDPMOVA,SEC;加载数据INCX;设置位置ACALLSHOW;显示数据RET;=================================================================LCDP:PUSHACC;入栈保护AMOVA,B;设置显示地址44 ADDA,#0C0H;设置LCD的第二行地址ACALLWRITE_LCD_COM;写入命令POPACC;由堆栈取出AACALLWRITE_LCD_DATA;写入数据RET;---------------------------------------;整数部分转换为ASCII码,送显示;---------------------------------------SHOW:PUSHACCMOVB,#10DIVABADDA,#30H;转换为ASCII码PUSHBMOVB,XACALLLCDP;送显示POPBMOVA,BADDA,#30H;转换为ASCII码INCXMOVB,XACALLLCDP;送显示POPACCRET;=======================================================;延时2.5ms子程序;=======================================================DELAY:MOVR5,#5D2:MOVR4,#248D1:DJNZR4,D1DJNZR5,D2RET;=====================================================================;延时10ms子程序;=====================================================================DELAY1:MOVR5,#100D4:MOVR4,#248D5:DJNZR4,D5DJNZR5,D4RET;------------------------------------------------------------DLY:MOVR7,#0FFHLOPP1:MOVR6,#0FFHLOPP2:NOPNOP44 DJNZR6,LOPP2DJNZR7,LOPP1RET;============================================================================TAB1:DB4DH,61H,6BH,65H,72H,3AH,4CH,47H,0FEH,53H,57H,57H,0FEH,21H,00H;"第一行显示Maker:LGSWW"END44 附录3英语原文Withthedevelopmentoftheeconomy,ITS(intelligentcommunicationsystem)wasbeingresearchedendattachedmoreimportanceinchina.Asaimportantpartoftrafficinformationcollection,detectorswerepaidmoreandmoreattentionbyexperts.Vehicledetectorsaimattraffic-flowanddetectthepassingorexistenceofvehicle,itcanprovidesufficientinformationsothatthewholetrafficcontrolsystemcanobtaintheoptimalperformance,therearemanykindsoftrafficdetectorssuchasloop-coildetectors,videodetectors,microwavedetectorsandsoon.Duetohighaccuracyandhighliability,lowcost,theloop-coildetectorsweremostlyselectedandapplied.Contra-posethecasethatdomesticfewmanufacturesandlowperformanceofproducts,andtheoverseaproductswithahighcostpricehavefewinterfaces,andhavenotthefunctiondiscerningthetypesofvehicles,wedevelopedtheintelligentloop-coilvehicledetector,whichhavetheadvantagessuchashighsensitivity,highqualitybutlowcost,moreinterfaces,andcandistinguishthetypesofvehicleswiththecomparisonofproductsimported.Loop-coildetectorsistheonebasedonelectromagnetisminduction,whosesensorsaretheloopsburiedundergroundandcarryingcertaincurrent(2m*1.5mgenerally).Whenthevehiclespassedorhaltedabovetheloops,thevehiclesmadeofironincisemagneticlineofforceandinducethechangeofthevehiclescoilinductance,thedetectorscandetectthepassingorexistenceofthevehiclesbymeasuringthechangeoftheinductance.Therearemainlytwomethodstomeasure,onecalculatethechangeofthecoilphaseusingthephaseflip-latchandcomparators,andtheotheristomeasuretheoscillationfrequencythroughthecouplingcircuitofloopformedbycoilburiedundergroundandwechoosethelater.Thedetectorswedevelopedhasthekeypart,i.e.8-bitsinglechip89C52madefromATMELasthecoreandotherparts,cancompletewellvehiclesdetectionanddatacommunications.WatchdogandresetcircuitismadeupofSchmitttrigger7414andMAX706.AndAT24C02isselectedandetc.Crystaloscillatorwithafrequency11.0592MHZcanmakethewholesystemfittothe9600bpscommunicationrate.ParallelI/OlineswiththeTTLlevelisformedbyflip-latch74273andlightcouplingTIL521-4.Asasensorimplement,professionalmultiple-turnloop-coilburiedundergroundisonepartofcouplingoscillatorcircuit,whoseoscillatorsignalistransferredtotheportsT0andT1of89C52fromthesignalconformitycircuitandelectronicswitchalternativecircuit,thenthecounterstartworking.Whenvehiclespassabovetheloop-coil,theironmaterialcanreducetheinductanceandaltertheoscillationfrequencyinthecouplingoscillationcircuit,so89C52canknowwhethervehiclespastornotaccordingtothecountofpulseinacertaintime.44 oscillationcircuitisonewiththree-pointcapacitancefeedback,(weintendnottodwellonitsworkprinciplehere).Thecircuitworkabout300KHZ,andtwoopposing-connectmanostatcanmakethesine-oscillatingsignalrangefrom-5Vto+5V,theratiooftwosidesinthecouplingdiodecanbeusedtorestrainthehighvoltageinducedduetothereasonssuchasstatic.Thesineoscillatingsignal,canbetakenintothesignalconformitycircuitaftersimpleadjustingofcomparatorLM339(itslong-timerisingedge).Infact,therearefourdetectingchannelsandeachoneiscorrespondingtoaloop-coilburied,oneisshowninFig.2Inourserialcommunication,weadoptRS-422interfacestandardthatiscompatiblewithRS-232andwasestablishedbyEIAasthestandardofbalancepotentialdigitalinterfacecircuitandcanimprovetheelectroniccharacterofRS-232.Transmittingsignalthroughtwo-endline,RS-422receivelogicalpotentialandtransformitintopotentialdifferencewillbedeliveredintothereceiverandthenpotentialdifferencewillbetransformedintologicalpotential.Thatis,RS-422canreceiveandsenddataatthesametime.DetectingtheexistenceofvehiclesInthecasethatnovehiclespasstheplaceloop-coilburied,thefrequencyofcouplingoscillationcircuitkeepaconstantandthepulsecountmeasuredbysinglechipperaunittimeisalmostinvariable.Ifvehiclespass,thefrequencywillaugmentedandthepulsecountwillincrease.Onaccountofthenot-uniformityintheironmaterialofthevehiclesandthepulsecountisvariable,wedesignedthethresholdcomparisonalgorithm.LetthepulsecountmeasuredbeNwhennovehiclespass,andbecomeNKifavehiclesisdetected.WerecordedNEastheerrorofNKandN,i.e.NE=MK-N,andtheexperientialthresholdTHwasrecordedbeforeinEEPROM.IfNEislargerthanTH,wecansaythereisavehiclespast,andviceversa.Fortheproblemtodetectthevehicleswithahighspeed,wemusttrytomaketheunittimesmaller,buttootinywillinducethatthepulsecountmeasuredisnoteasytoset.Afteralargernumberofexperiment,wefind10msbeaproperlengthofunittime.Inthealgorithm,wealsoputNdowntotheEEPROMthroughthemeasurementinlocale.Whenmeetingtheabnormalcase,suchasopencircuitoftheloop-coilburied,inwhichthecouplingtransformerisconsideredasempty-carryandtheoscillationfrequencyisfarlowerthanthenormalcase,sowecanstillknowwhethertheloop-coilburiedisconnectedandworkingnormallyornot.ThevehiclesclassificationmethodsThetestsshownthemaximumofincrementNEdependsonthedistanceoftheironmaterialandground(ingeneral,theloop-coilburiedis2m*1.5m,andtheironmaterialofallkindsofvehiclesisalmostsameintheweight).LargervehicleshavethesmallervalueofthemaximumofincrementNEforthehigherbarycenter,andsmallervehicleshavethegreaterrelatively,moreover,thetimepassingtheloop-coilburiedmainlydependsonthelengthofthevehicles(i.e.thespeedofvehiclesisalmostallsquare).Soonthefuzzyclassificationmethodswecandividethealltypesofvehiclesintothreetypes:smaller,middle,larger.44 Currently,thedetectorswedevelopedhadbeenappliedtospeedwayinmanycitiesinChina,andtheeffectsissatisfiedtoall,fortherateofdetectionnicetytothevehiclesrunningonspeedwaycanby98%,andtheonesrunningonthecomplicatedroadcanbe96%,generallyspeaking,loop-coildetectorsshouldhavethehighestcorrectnessandbeappliedthemostwidelyintraffic,theywillbeusedtocalculatesuchasvehicles-flow,thelengthofvehiclesqueue,occupationdegreeandothertransportparameterswhenextendingthecertainfunction.Sothebetterserviceofintelligenttra44 附录4中文翻译随着经济的发展,智能交通已在我国悄然兴起,车辆检测器作为交通信息采集的一个重要组成部分,越来越受到业内人士的关注。车辆检测器以机动车辆为检测目标,检测车辆通过或存在状况,其作用是为智能交通控制系统提供足够的信息以便进行最优的控制,目前国际上常用的车辆检测器主要有环形线圈车辆检测器,其中环形线圈车辆检测器由于其高准确率,低成本,和高可靠性而被大量使用。针对现阶段国内车辆检测器的生产厂家较少,产品性能较低,而国外进口产品价格高,外围接口少,没有车型分类功能的情况,我们研究开发了智能环形线圈检测器与进口产品相比具有性价比高。灵敏度高,外围接口多,具备车型分类功能等优势。环形线圈车辆检测器是一种基于电磁感应原理的车辆检测器,它的传感器是在一个埋在路面下,通有一定工作电流的环形线圈(一般为2米×1.5米)。当车辆通过环形地埋线圈或停在环形地埋线圈上时,车辆自身铁质切割磁通线,引起线圈回路电感量的变化,检测器通过检测该电感变化量就可以检测出车辆的存在,检测这个电感变化量一般来说有两种方式:一种是利用相位锁存器和相位变化比较器,对相位的变化进行检测。另一种方式则是利用由环形地埋线圈构成回路的耦合电路对其震荡频率进行检测。我们这里采用了后一种检测方式。我们设计的智能环形线圈车辆检测器以ATMEL的8位单片机89C52为核心,集车辆检测和数据通讯于一体。看门狗及复位电路由MAX706和一片施密特触发器7414构成,串行EEPROM采用AT24C02,用来储存设置信息和检测阈值等数据,晶振采用11.0592MHZ使用系统适用于9600bps的通讯速率,并行接口电路由锁存器74273和光耦芯片TIL521-4形成并行的TTL电平输入输出。多匝数专用环形线圈埋设于路面,它等效为一个感性器件,实际上它也是耦合振荡电路的一部分,其振荡信号通过整形电路和电子开关选择电路送入89C52的T0和T1端,进行计数。当机动车经过环形线圈时,由于其自身的铁质使得环形线圈的电感值减少,从而使耦合振荡电路频率发生改变,这样89C52就可以通过单位时间段的脉冲计数值来判断有无机车通过相应的环形线圈了。耦合振荡电路是一个电容反馈三点式振荡电路(对此电路的详细分析这里不再熬述),其振荡频率在300KHZ左右,两个反接的4.3V稳压管使正弦振荡信号被抑制在-5V至+5V的范围内,耦合变压器原副边匝数比为1:1,P6KE12CA是一个瞬间抑制二极管用于抑制由静电等原因产生的瞬间高压。正弦振荡信号经过比较器LM339初步整形后(其上升沿时间较长)进入信号整形电路。另外,一路环形地埋线圈对应一个检测通道,共有四路检测通道,这里只画出其中一路。串行通讯采用了RS-422串行接口标准是EIA公布的“平衡电压数字接口电路的电气特性”标准,是为了改善RS-232电气性能又考虑到与RS-232C兼容而制定的。RS-422采用双端线进行信号传输,它通过驱动器把逻辑电平换成电位差,通过传输线将电位差信号送入接收器,再将电位差转换成逻辑电平。TS-422允许同时接收和发送数据。车辆是否存在的检测44 正常情况下,在机动车没处在环形地埋线圈所在的位置的时候,耦合电路振荡频率保持恒定,单片机在单位时间段测到的脉冲数基本保持不变,当机动车辆经过环形地埋线圈所在的位置时,由于振荡频率的增加,使得单片机在单位时间段测得的脉冲个数也相应增加,但是机动车自身的铁质是不均匀的,所以当它通过环形地埋线圈时单片机在单位时间段测得的脉冲个数又是变化的,为此我们在软件设计中采用阈值比较法,设地埋线圈所在位置无机动车时单位时间段单片机测得的脉冲数为N,当机动车辆经过地埋线圈所在位置时单位时间段单片机测得的脉冲个数为NK,脉冲增量为NK与N的差值即NE=NK-N,脉冲增量的经验阈值TH预先设定在EEPROM中,当NE≥TH时认为有车,当NE≤TH时认为无车。这里要注意为了能检测到高速行使的车辆,应尽量将检测脉冲个数的单位时间段设的较小,但又不能太小,如果太小脉冲增量将不明显同时经验阈值也不好选取,经大量实验我们选取单位时间段为10ms,TH为10.地埋线圈所在位置无机动车经过时单位时间段测得的脉冲个数N通过现场实测也存放在EEPROM中。在非正常情况下,比如地埋线圈线断路,此时相当于耦合变压器空载,振荡频率远远小于地埋线圈正常连接时的耦合电路振荡频率,因此仍然可以用阈值比较法来判断地埋线圈是否正常连接。车辆分类方法试验表明在机动车行使过环形地埋线圈时脉冲增量NE的最大值主要由车体铁质与地面的距离所决定(地埋线圈一般为2米-1.5米,各类机动车经过地埋线圈时内部的车体铁质重量差异不是很大),大型车车体铁质重心较高因此测得的脉冲增量NE的最大值相对较小,小型车车体铁质重心较低因此测得的脉冲增量NE的最大值相对较大,另外考虑到机动车经过环形地埋线圈所用的时间由车身长度决定(实际场合中机动车车速差异不是很大),因此完全可以用测得的脉冲增量NE的最大值和机动车经过地埋线圈所用的时间这两个量对车辆类型进行模糊分类,从而把机动车分为小型,中型,大型三类。我们开发的智能环形线圈车辆检测器目前在国内许多城市及高速公路上得以应用,其效果是令人满意的,对高速路上的机动车辆进行检测其检测准确率达到98%,对城市复杂路口的机动车进行检测准确率达96%。总之,环形线圈检测器是目前用于交通领域最广泛,准确率最高的检测器。作为一种性能良好的存在型检测器通过一定的功能扩展就可以用来测量诸如车流量,车队长度,占有率等一系列的交通参数,从而为智能交通控制系统服务。44'