基于AT89S52的智能小车研究与设计.docx

上传人:b****7 文档编号:8980227 上传时间:2023-02-02 格式:DOCX 页数:42 大小:467.75KB
下载 相关 举报
基于AT89S52的智能小车研究与设计.docx_第1页
第1页 / 共42页
基于AT89S52的智能小车研究与设计.docx_第2页
第2页 / 共42页
基于AT89S52的智能小车研究与设计.docx_第3页
第3页 / 共42页
基于AT89S52的智能小车研究与设计.docx_第4页
第4页 / 共42页
基于AT89S52的智能小车研究与设计.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

基于AT89S52的智能小车研究与设计.docx

《基于AT89S52的智能小车研究与设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S52的智能小车研究与设计.docx(42页珍藏版)》请在冰豆网上搜索。

基于AT89S52的智能小车研究与设计.docx

基于AT89S52的智能小车研究与设计

 

毕业论文(设计)

 

题目基于AT89S52的智能小车研究与设计

系部电子信息工程系 

专业年级

学生姓名 

学号 

指导教师 

基于AT89S52的智能小车研究与设计

07电子科学与技术

学生:

指导教师:

【摘要】本设计是基于AT89S52的智能小车研究与设计。

由主单片机分别控制从单片机实现该系统的功能,此方案设计不仅简化了单片机的负担,而且在提升系统的工作效率同时,通过单片机主机跟对从机之间的分阶段地控制,降低了程序控制的繁琐程度。

单片机从机主要实现电机的转动模块,路面检测模块、障碍物探测模块、光源探测模块等功能模块的检测和控制。

而主单片机主要用于对各个从单片机进行通信控制,决定是否执行操作及采集小车的实时数据。

【关键词】智能小车AT89S52单片机光电检测器电机驱动

 

researchinganddesigningofintelligencecarBasedonAT89S52

【Abstract】ThisdesignisbasedontheintelligenceAT89S52carresearchanddesign.Bythesingle-chipmicrocontrollerrespectivelyfromthecontrolfunctionofthesystem,thisplanisdesignednotonlysimplifythemicrocontrollerburden,butinascendingthesystemefficiencyatthesametime,throughthemicrocontrollerhostfrommachinewiththecontrolbetweenstages,reducestheprogramcontroltrivaldegree.Frommachinemainlyrealizesmotormicrocontrollerrotationmodule,theroadtestmodule,obstaclesdetectionmodule,lightdetectionmodulefunctionmodulesofthedetectionandcontrol.AndtheLordofallmicrocontrollerismainlyusedforcommunicationfromthesingle-chipmicrocomputercontrol,anddecidewhethertoimplementoperationandcollectingcarreal-timedata.

【Keywords】IntelligentcarAT89S52single-chipInfrareddetectorphotoelectricdetector

 

第1章绪论

智能小车是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统,涉及到传感器技术、微处理器控制、信号处理、电机驱动、人工智能、驱动电源的设计方面。

为了更加接近真实的模拟实现智能小车的功能,所以必须具备人工智能、信息交换、系统稳定的特点。

智能小车国外研究现状[3]:

1.日本大阪大学的研究大阪大学的shirai实验室所研究的智能小车,采用了航位推行系统,分别利用旋转编码器和电位计来获得智能小车的转向角,从而完成小车的定位功能。

2.德意志联邦大学的研究1985年,第一辆VaMoRs智能原型车在户外高速公路以100km/h进行测试,它使用了机器视觉来保证横向和纵向的车辆控制。

智能小车国内研究现状:

相对于国外,国内的研究则相对较晚。

开始于20世纪80年代,而且大多数研究还停留在针对某个单项技术的研究。

例如:

1.清华大学在90年代中期曾研究一种采用图象识别来实现自动导航的功能。

2.北京理工大学近年来也在进行用GPS与数字地图导航的智能车辆的研究。

目前,智能车领域的研究已经能够在具有一定标记的道路上为司机提供辅助驾驶系统甚至实现无人驾驶。

这些智能车的设计通常依靠特定道路标记完成识别,通过推理判断模仿人工驾驶进行操作。

通常,智能车接受辅助定位系统提供的信息完成路径规划,如由GPS等提供的地图,交通拥堵状况,道路条件等信息。

21世纪的汽车概念将发生根本性的变化。

现在的“汽车”是带有一些电子控制的机械装置,将来的“汽车”将转变为带有一些辅助机械的机电一体化装置,汽车的主要部分不再仅仅是个机械装置,它正向消费类电子产品转移。

同时,智能汽车在传统汽车上配备了远程信息处理器、传感器和接收器,通过无线网络获取前方交通状况信息,引导汽车加速或减速。

这样,汽车就能更为平稳地行驶,避免不断刹车、启动的动作,以降低油耗。

随着汽车电子控制技术的发展,中国的汽车工业将面临着巨大的发展机遇和挑战,开展智能汽车技术的研究与开发工作具有重要意义。

第2章方案论证及硬件设计

方案一:

采用一片单片机来完成本设计所需要实现的所有功能模块,将所有信息的处理由唯一一片单片机来完成,实现智能小车寻光、避障、显示以及报警功能。

方案二:

采用分模块控制,每一个单独的功能由各自的从单片机进行信号的采集和控制,然后再通过主机与从机之间的通信,将信息传递给单片机主机进行处理,这种设计方案具有编程简单,设计更加清楚直观的特点,有利于将设计的复杂程度简化。

本系统按照设计要求,应具有避障、寻光、显示、报警等功能,以及主机与从机之间进行信息交换并实现主机控制从机的功能。

若只用一片单片机来实现上述所有功能,其硬件电路非常复杂,软件编程比较繁琐,故为了简化系统设计并使得各模块实现其功能,我采用分模块控制的设计方案(方案二,如图2-1),即各电路模块把检测得到的信息传送至各自的单片机进行运算、分析、处理并等待控制,同时给主控单片机握手信息让其决策是否执行,得到执行命令后,主单片机将各从单片机实时反馈回的各个检测量的信息给显示模块进行实时显示,这样设计就可以简单明确,更具可行性。

图2-1控制系统模块图

主机与从机的控制模块具有以下优点:

1.单个模块电路的程序设计比起一个系统综合程序设计易编写和调试;

2.模块之间都由主控制系统控制,一个模块可以被多个任务在不同条件下调用;

3.模块程序允许分割任务和利用已有程序,为设计提供方便。

综上所述,本系统的设计目的以及设计的思路方案,是用AT89S52单片机(主机跟从机)来实现所要完成的所有功能,按照以上思路实现智能小车的功能设计。

2.1单片机最小系统

本设计采用的是AT89S52作为主控芯片,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K存储空间的系统可编程Flash存储器。

使用密度比较高非易失性存储器技术来实现芯片开发,具有兼容以前51的管脚以及功能的特点。

芯片中的Flash允许程序存储器在系统设计中可编程,同样可以选择应用于常规编程器。

AT89S52拥有下面的一些标准功能:

8k的字节Flash存储器,256字节的RAM存储器,32位的数据交换I/O,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

AT89S52可降至0Hz静态逻辑操作,可选择支持2种软件节电模式。

在闲置状态的时候,CPU就不会继续工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护的模式下,RAM的内容不会因为断电而流失,振荡器被冻结,单片机将会停止一切工作,等待下一个中断或硬件复位为止[1]。

单片机的最小系统是单片机实现功能的基础,在设计中具有以下要求:

1.复位电路:

复位电路包括商店复位和手动复位两部分,52系列单片机多为高电平复位,即采用上电复位,其原理就是利用电容充电的一段时间将复位脚拉至高电平,使单片机完成复位。

2.晶振电路:

单片机要想工作必须有一个外部时钟源,这个时钟源有外部晶振产生。

3.ISP下载接口:

改下载接口在实际制作是可以用双排的5*2的排针代替,电路是根据标准的ISP下载线来设计的,与常用的并口下载线,串口下载线和笔记本用的USBASP下载线兼容,只需将下载线接口插到本接口上就可以直接向单片机烧写程序。

单片机AT89S52外接显示电路、障碍物检测、光源探测电路和电机驱动电路。

其中障碍物检测、光源探测电路是信号输入,显示电路和电机驱动是输出。

为了方便单片机引脚的使用,将单片机的所有引脚用接口引出[4]。

AT89S52的最小系统电路如图2-1-1所示。

图2-1-1AT89S52最小系统电路

2.2基于LM2576的电源设计

LM2576系列的稳压器是单片集成电路,有优异的线性和负载调整能力。

本系统采用LM2576电源芯片给系统进行供电,在指定输入电压和输出负载条件下保证输出电压的误差在4%以内,以及震荡频率误差在10%以内,效率高。

本系统选用LM2576进行电源模块的设计,提供5V的电压给单片机,如图2-2-1所示电路供电。

电机驱动电路由另外一12V电源供电。

这样可以避免互相干扰,从而提高系统的稳定性[4]。

图2-2-1单片机电源电路

2.3直流电机驱动模块

由于单片机的输出功率小,对电机的驱动能力不足,所以本系统选用L298N作为设计的驱动芯片。

工作比较稳定的电机驱动信号是由单片机提供的。

信号要经过光耦隔离之后,传送至芯片L298N。

光耦隔离电路如下图2-3-1所示。

图2-3-1光耦隔离电路

L298N是专用驱动集成电路,属于H桥集成电路,与L293D相比,其输出电流增大,功率增强。

其输入端可以直接和单片机相连,方便受单片机控制。

L298N芯片内部包含4通道逻辑驱动电路,是一种二相和四相的专用驱动器,内含二个H桥的高电压大电流双全桥驱动器,接收标准TTL逻辑电平信号,符合两轮驱动和单片机控制。

它可驱动46V,2A以下的电机,正好满足小车马达的驱动要求,可以直接控制电机实现正转与反转,实现此功能只需要改变输入端的逻辑电平,所以采用L298N作为驱动模块的控制芯片。

电机驱动的电路原理图如下图2-3-2所示。

电路图中有两个电源,一路为L298工作需要的5V电源VCC,一路为驱动电机用的电池电源VSS。

图2-3-2直流电机驱动模块

在设计中,智能小车调速控制采用单片机端口某四位模拟PWM调速,利用输出高低电平的占空比的不同来模拟实现PWM调速的功能,采用这个方案,可以简化小车调速控制的复杂程度,使设计更加简单化。

PWM调速系统有下列优点:

1.利用PWM调速系统的开关频率较高,电枢电感通过简单的滤波就可以得到脉动非常小的直流电流,电流比较连续,系统在低速环境下比较稳定,并且可实现调速的范围比较大,在10000倍左右。

电动机的磨损会很小,并且散热比较好。

2.因为开关的频率比较大,如果与快速响应的电机互相组合,调速系统就能够得到非常宽的频带,所以快速响应的性能比较好,与此同时的动态抗干扰能力就比较强。

3.因为电子器件只会在开关连接的时候才会工作,,开关断开则停止,因此主电路中的损耗非常少,大大提升了装置的效率。

根据以上综合比较,以及本设计中受控电机的容量和直流电机调速的发展方向,本设计采用了H型单极型可逆PWM变换器进行调速。

  脉冲宽度调制(PulseWidthModulation—PWM)是固定一个基本的脉冲周期,改变基本周期内有效的工作周期的大小来实现控制输出功率。

对于一个定时器来说,其时钟源的输入频率在普通情况下是不会改变的,就是将定时器的预分值和定时器的分割值的值选定以后就不用再修改。

因此PWM就能够获得比较稳定的一定频率的时钟源。

电机的转速是和电机两端的电压成正比的,然而电机两端的电压是和PWM调制波中的有效电平的占空比成正比的,所以电机的速度控制和PWM调制电路的有效电压的占空比成正比,占空比的值越大,电机就转动的快,反之则慢。

TCNTBn决定系统中PWM脉冲频率,同时TCMPBn的值决定了PWM脉冲宽度值,然后我们通过占空比的计算公式TCMPn/TCNTn来计算出占空比的值。

假如想控制电机的转速偏低,就需要一个很低的PWM脉宽输出值,这样可以降低占空比的值来使小车的转速减慢;同理如果想要电机的速度变大,可以通过一个更高的PWM的输出值,可以增加TCMPBn的值。

在双缓冲器的独有特性下,下一个PWM周期的TCMPBn值可以通过ISR(中断服务程序)或者使用别的方法在当前PWM周期中低电平时的任何一点写入,就是在软件的设计中可以通过中断重新设置TCMPBn的值来实现改变电机的转速的功能。

缓冲区TCMPBn,TCNTBn的值不一定等于这个周期的TCMPn,TCNTn的值,但一定是TCMPn,TCNTn的下一个周期的值[3]。

2.4障碍物检测模块

避障模块的设计采用超声波传感器检测路面信息,检测信号通过电路处理后转换成单片机能识别的电信号,由单片机进行分析控制。

超声波可以传递很强的信号,因此可以很清楚地检测到回波信号,再使本方案具有可行性。

超声波发生器和单片机的P2.6脚连接,将超声波信号发送出去,检测信号后传送至AT89S52单片机进行处理,判断执行哪一种预先编制的程序来控制小车的行驶状态。

前进时,驱动直流电机正转,进入减速区时,由单片机控制进行模拟PWM变频调速,通过软件改变脉冲调宽波形的占空比,实现调速。

小车在移动区域要沿着光源的方向行驶,但由于小车不可能始终保持一定的方向,因为路面有障碍物,所以为了使小车能调整方向,绕过障碍物后继续行驶,直到检测到停止信号。

系统需要将路面的状态实时的以电信号的形式传送至控制部分,控制部分驱动车轮的直流电机反转或正转,使小车绕过障碍物继续行驶。

障碍物探测模块用来判断小车前方是否有障碍物并计算出小车与障碍物之间的距离,使小车可以顺利绕过障碍物而继续前行。

为了保证小车在行驶的过程中顺利避开障碍物,需要用超声波传感器电路检测出障碍物与小车之间的距离和方向,将检测的数据传送至该模块的单片机进行分析控制,最后再由主单片机决定是否执行,执行后小车可正确的避开障碍物继续行驶。

而要实现以上过程,就必须对接受的回波信号进行处理,让AT89S52单片机获得可以识别的回波信号,因此将超声波探头接收回的信号经过CD4011后,可以实现对回波信号的放大和整形,其电路图如下图2-4-2所示。

图2-4-1超声波避障原理图

2.5光源探测模块

本设计模块电路是用光敏电阻作为光电传感器,将其分别放置在小车顶盘前端的左、右两个方向。

光源探测模块具有引导小车向光源方向行驶,使小车追寻光源的功能。

通过检测光源信息,单片机将处理后的信息转换成控制量PWM波传送到直流电机,使小车追寻着光源方向前进。

寻光采样过程中,利用ADC0809转换芯片将光敏电阻两端的电压值转换成数字量并让该模块的单片机读取,并进行运算控制,此时的控制信息发送至系统主单片机让其判断是否执行该操作。

当某一路光源检测电路检测出的光源强度大于其他路检测出的光源强度,相对应的光敏电阻阻值增大,分压变大,由此来判断光源方向,使小车跟着光源方向前行。

在寻光过程中,还要考虑实际环境外界光线对小车的干扰,如何滤去外界光的干扰是本设计的一个难题,引导小车的光源为200W的灯泡,但是白天和夜晚小车实际的AD采样也不一样,会造成小车的不稳定。

但是,为了更好地区分光源的强弱,避免外界光线的干扰,提高小车寻光的准确性和抗干扰性,我们在光敏电阻周围围了一圈黑胶布,并调整光强系数,适应电机转速[7]。

这样做可以使小车对光线强弱的识别以及数据信息的准确性更好,光源检测电路图如2-5-1所示电路图。

图2-5-1光源检测电路

在本设计模块电路中,利用ADC0809来实现对光敏电阻传感器采集得到的电压信号进行模数转换的,其原理图如下2-5-2所示:

图2-5-2ADC0809进行A/D转换电路图

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

是目前国内应用最广泛的8位通用A/D芯片[6]。

1.主要特性

8路输入通道,8位A/D转换器,即分辨率为8位,具有转换起停控制端。

转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时),单个+5V电源供电,模拟输入电压范围0~+5V,不需零点和满刻度校准,工作温度范围为-40~+85摄氏度,低功耗,约15mW[9]。

2.内部结构

ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近[9]。

3.外部特性(引脚功能)

ADC0809芯片有28条引脚,采用双列直插式封装IN0~IN7:

8路模拟量输入端。

2-1~2-8:

8位数字量输出端。

ADDA、ADDB、ADDC:

3位地址输入线,用于选通8路模拟输入中的一路,ALE:

地址锁存允许信号,输入,高电平有效,START:

A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

EOC:

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHZ,REF(+)、REF(-):

基准电压。

Vcc:

电源,单一+5V。

GND:

接地[9]。

ADC0809的工作过程

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中,此地址经译码选通8路模拟输入之一到比较器,START上升沿将逐次逼近寄存器复位,下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行[5]。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请,当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上,转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理[3]。

数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。

为此可采用下述三种方式。

1.定时传送方式对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。

例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。

可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。

2.查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。

因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。

3.中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送,不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送,首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受[3]。

2.6显示和报警模块

本系统采用LCD显示器来实现小车速度和运行时间的显示功能,并在电路中连接一个蜂鸣器电路,当小车在行驶途中遇见障碍物并且检测到信息时,从单片机就会将检测信息发送给主单片机,由主单片机控制蜂鸣器电路导通,实现小车障碍物报警的功能[9]。

该芯片所驱动的显示电路如图2-6-1显示电路所示:

2-6-1集成显示电路

当系统出现上述情况的时候,微控制器就会控制蜂鸣器电路导通,蜂鸣器就会发出警报,其电路图如下图2-6-2所示:

图2-6-2蜂鸣器电路

2.7通信模块

多个AT89C52单片机可以利用串行口进行多机通信。

为此,要保证主机与所选择的从机实现可靠通信,必须保证串行口具有识别功能。

串行口控制寄存器SCON中的SM2位就是为了满足这一条而设置的多机通信控制位。

如图2-7-1所示:

图2-7-1各模块通信示意图

多机通信的工作过程如下:

1.从机初始化程序允许串行口中断,将串行口编程方式2或者方式3接收,且SM2和REN位置“1”,使从机只处于多机通信切接收地址帧的状态。

2.在主机和某个从机通信前,先将从机地址(即准备接收数据的从机)发送给各个从机系统,接着才传送数据或者命令,主机发出的地址信息的第9位为1,数据(包括命令)信息的第9位为0,当主机向各个从机发送地址时,各个从机的串行口接收到的第9位信息RB8为1,且由于SM=1,则中断标志位RI置“1”,各个从机89C52响应中断,执行中断服务程序[1]。

在中断服务子程序中,判断主机送来的地址是否和本机的地址相符合,若为本机地址,则从机SM2位清“0”,准备接收主机的数据或者命令,若地址不符,则保持SM2=1状态。

3.接着主机发送数据帧,此时各个从机串行口接收到的RB8=0,只有与前面地址相符合的从机系统(即SM2位已清“0”的从机)才能激活中断标志位RI,从而进入中断服务程序,在中断服务程序中接收主机的数据(或者命令);其他从机因SM2保持位1,有RB8=0,不能激活中断标志RI,所有不能进入中断,把所有接收的数据丢失不做处理,从而保证主机和从机间的通信正确性[1]。

第3章软件设计

3.1系统软件设计说明

在进行本系统设计的时候,除了系统硬件设计外,就是如何根据每一个电路模块的实际需要设计应用程序。

所以,软件设计在该系统设计中占有重要的地位。

在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。

数据处理包括:

数据的采集、数字滤波、标度变换等。

过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制各模块实现设计的功能。

为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。

所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。

模块程序设计法的主要优点是:

1.单个模块电路的程序设计比起一个系统综合程序设计易编写和调试;

2.模块之间都由主控制系统控制,一个模块可以被多个任务在不同条件下调用;

3.模块程序允许分割任务和利用已有程序,为设计提供方便。

本系统软件采用模块化结构,由主程序﹑定时子程序、避障子程序﹑寻光子程序、中断子程序显示子程序﹑调速子程序构成。

其主程序流程图如图3-1-1所示

在进行系统设计时,除了系统的硬件设计外,大量的工作就是如何根据每个电路模块的实际需要设计应用程序,为了实现模块的电路功能,在进行软件设计时,我们把该模块功能又分成若干个部分分别实现,最后再统一起来。

3-1-1主程序系统流程图

3.2光源探测模块程序设计

按照硬件设计要求,光源探测模块需要检测光源的方向,并让小车跟随着光源方向前进,软件程序设计的方法需按照这个思路进行,单片机完成光源的检测并分析处理检测信息,此信息再传送给系统主单片机显示其相关信息,其软件程序设计流程如下图3-3-1所示。

图3-2-1光源探测模块程序流程图

3.3避障模块程序设计

避障程序需要按照避障模块需要完成的功能来进行软件

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1