基于AT80C51单片机的智能小车设计Word格式文档下载.docx
《基于AT80C51单片机的智能小车设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于AT80C51单片机的智能小车设计Word格式文档下载.docx(42页珍藏版)》请在冰豆网上搜索。
1.1课题背景……………………………………………………………….………
(1)
1.2课题的目的和意义……………………………………………………….……
(1)
1.3设计要求……………………………………………………………….………
(1)
2总体方案设计………………………………………………………….…..…….(3)
2.1整体方案的设计思想………………………………………………..…………(3)
2.2总体设计框图……………………………………………………….…………(3)
2.3各模块分析选择……………………………………………………….….……(3)
2.3.1小车部分分析……………………………………………………..…………(3)
2.3.2控制芯片的分析选择…………………………………………….…………(4)
2.3.3电机驱动模块的分析与选择…………………………………..……………(5)
2.3.4避障模块的分析与选择…………………………………….….……………(5)
2.3.5电源分析与选择………………………………………………..……………(6)
2.3.6智能小车最后方案………………………………….………….……………(6)
3系统单元电路的设计………………………………………………..……………(7)
3.1单片机最小系统的设计……………………………………………….………(7)
3.1.1STC89C52单片机基本结构简介……………………………………………(7)
3.1.2单片机时钟震荡电路……………………………………………...………(10)
3.1.3单片机复位电路………………………………………...…………………(10)
3.2显示模块的设计……………………………………………...………………(12)
3.3电机驱动电路的设计……………………………………...…………………(13)
3.3.1智能小车驱动电机的要求…………………………………………………(13)
3.3.2直流电机调速原理…………………………………………………………(14)
3.3.3L298N双H桥直流电机驱动芯片简介………………………..……………(15)
3.4HC—SR04超声波测距模块………………………………………...…………(18)
3.4.1模块特点……………………………………………………………………(18)
3.4.2主要技术参数………………………………………………………………(19)
3.4.3模块实物图…………………………………………………………………(19)
3.4.4基本工作原理………………………………………………………………(19)
3.4.5超声波测距模块与单片机相连的接线方法………………………………(20)
3.4.6超声波时序图…………………………………………...………….………(20)
3.4.7超声波测距原理及系统组成…………………………….………………(21)
3.4.8超声波检测电路……………………………………………………………(21)
3.5速度检测模块…………………………………………………………………(22)
3.6电源模块的设计…………………………………………………...…………(27)
4软件设计…………………………………………………………...……………(25)
4.1系统主程序流程图…………………………………………………...………(25)
4.2显示子程序设计及流程图……………………………………………...……(26)
4.3测距子程序设计与流程………………………………………………………(27)
4.4按键改变占空比程序设计……………………………………………………(28)
5“看门狗”技术……………………………………….…………………………(30)
6软件的简单介绍……………..………………………..……………...……….(32)
6.1Keil软件简介……………………………...…………………………………(32)
6.2STC_ISP_V480的简介……………………...…………………………………(32)
7总结……………………………………………...………………………………(34)
致谢………………………………………………….……………………………(35)
参考文献………………………………………………...…………………………(36)
附录A作品实物图………………………………………………………………(37)
附录B总程序……………………………………………………………………(37)
1引言
1.1课题背景
随着电子技术的不断发展人们发明了各式各样的具有感知,决策,行动和交互能力的机器人。
智能小车可以理解为机器人的一种特例,它是一种能够通过编程手段完成特定任务的小型化机器人。
与普遍意义上的机器人相比智能小车制作成本低廉,电路结构简单,程序调试方便,具有很强的趣味性,为此其深受广大机器人爱好者以及高校学生的喜爱。
全国大学生电子设计竞赛每年都设有智能小车类的题目,由此可见国家对高校机器人研究工作的重视程度。
本次设计的智能小车应该能够调节速度,具有自动避障功能,可以记录行驶速度、显示小车与前面障碍物的距离。
根据题目的要求,确定了如下方案:
在现有玩具电动车的基础上,加装光电、红外线,实现对电动车的速度、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。
本设计与实际相结合,现实意义很强!
智能的技术研究、应用也都是非常有意义而且有很高的市场价值的。
随着电子技术、计算机技术和制造技术的飞速发展,智能控制必将迎来它的发展新时代。
1.2课题的目的和意义
本题目设计的是具有自动避障功能的智能小车,其设计思想与一些日常生活迫切需要的智能机器人类似。
由于采用了超声波传感器,它不受光照强弱和能见度的影响,能耗低,灵敏度高,即使在较复杂的环境内也可以工作。
智能小车系统的设计采用了模块化的设计方法,电路结构简单,调试方便,有很大的扩展空间,稍加改动便可应用于实际生产生活中,也可作为高校学生以及广大机器人爱好者学习研究使用。
1.3设计要求
本设计要求采用单片机为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快、慢速行驶,以及自动停车,并可以自动记录时间、里程和速度。
小车能够显示距障碍物的距离。
使用51单片机的输出端口产生四路占空比可调的PWM信号,驱动四轮两路智能小车的软件实现方法。
程序中T0定时器采用中断的方式控制PWM信号的频率,T1定时器采用查询的方式控制PWM信号的占空比;
并通过单片机自带的串行口接收主机传输过来的控制智能小车运动方向和速度(即占空比)的信号,方便、及时、可靠、简洁地控制智能小车的运动状态。
2总体方案设计
2.1整体方案的设计思想
利用超声波检测模块检测道路前面的障碍物,然后把回响信号交给单片机处理,如果前面有障碍物,单片机的引脚会输出两个高电平信号控制小车刹车,当距离接近到一定程度以后控制小车向左转,与此同时继续检测障碍物。
当然小车启动的时候就要求开始显示小车与前面障碍物的距离。
当小车又检测到障碍物时,说明刚才向左转的动作行不通,此时就要求小车退后,一定时间以后再向右转,然后再检测障碍,如果又遇到障碍物就停车。
在小车上加装光电传感器以后,小车后轮每转过一圈,就计一个脉冲,通过记录单位时间内的脉冲数就可以算出小车的速度。
2.2总体设计框图
本系统基本框图2-1所示:
调速模块
看门狗电路
图2-1总体设计框图
2.3各模块分析选择
2.3.1小车部分分析
在本设计中采用了实验室提供的玩具电动车。
该玩具电动车价格低廉,有完整的驱动、传动和控制单元,其中传动装置是我们所需的,克服了自己设计制作小车时周期较长的缺点。
此玩具电动小车采用普通直流电机驱动,带负载能力稍差,调速方面对程序要求较高。
同时,该玩具电动车装有两个电机,分别控制小车的前后两组轮子,转向依靠前轮电机带动前轮转向完成,精度低。
加速减速依靠后面的电机带动后面一组车轮完成。
可以完成前进、后退、左转、右转、左后转、右后转等动作满足本次设计的要求。
减速电机扭矩大,转速较慢,易于控制和调速,符合避障小车的要求。
考虑到利用玩具电动小车做车架开发周期短,可留够充分的时间用于系统调试,且硬件上的不足可以通过优良的算法来弥补。
本次利用的小车如图2-2所示:
图2-2本次设计用到的小车实物图
2.3.2控制芯片的分析选择
凌阳公司的16位单片机是16位控制器,具有体积小、驱动能力强、可靠性高、功耗低、结构简单、具有语音处理、运算速度快等优点,但我对这种单片机并不熟悉,使用起来并不是很方便,这对于硬件电路的设计和软件编程增加了难度。
因此采用STC89C52单片机作为主控制器,STC89C52是一个超低功耗,和标准51系列单片机相比较具有运算速度快,抗干扰能力强,支持ISP在线编程,片内含8k空间的可反复擦写1000次的Flash只读存储器,具有256bytes的随机存取数据存储器(RAM),32个I/O口,3个16位可编程定时计数器。
其指令系统和传统的8051系列单片机指令系统兼容,降低了系统软件设计的难度,电路设计简单、价格低廉。
且在运用过程中STC89C52的精确度和运算速度也都完全符合系统的要求。
综合以分析选用了比较普通的且更为熟悉的STC89C52单片机为整个系统的控制核心。
2.3.3电机驱动模块的分析与选择
在选用驱动芯片的过程中,刚开始我考虑了与小车配套的传统的功率三极管作为功率放大器的输出控制直流电机。
线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻的电流大,发热厉害,损耗大。
在使用的过程中发现它满足不了本次设计的要求,后来考虑了专用芯片L298N作为电机驱动芯片。
L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
且由L298N结合单片机可实现对小车速度的精确控制。
这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。
因此决定采用L298N控制直流电机。
2.3.4避障模块的分析与选择
采用红外线避障,利用单片机来产生38KHz信号对红外线发射管进行调制发射,发射出去的红外线遇到避障物的时候反射回来,红外线接收管采用数字接受器件HS0038对反射回来信号进行解调,输出TTL电平,外界对红外信号的干扰比较小,且易于实现,价格也比较便宜。
用漫反射式光电开关进行避障。
光电开关的工作原理是根据光线发射头发出的光束,被物体反射,其接收电路据此做出判断反应,物体对红外光由同步回路选通而检测物体的有无。
当有光线反射回来时,输出低电平。
当没有光线反射回来时,输出高电平。
但是这种电路在户外容易受阳光的影响。
因此放弃此方案。
用超声波传感器进行避障。
超声波传感器的原理是:
超声波由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,再被超声波传感器接收。
超声波传感器在避障的设计中被广泛应用。
采用超声波避障,超声波受环境影响较大,电路复杂,而且地面对超声波的反射,会影响系统对障碍物的判断。
考虑到本系统只需要检测前面的障碍物,基本上没有十分复杂的环境。
且模块化的芯片使用起来方便,便于操作和调试,故选择了超声波传感器。
2.3.5电源分析与选择
如果采用双电源供电。
电动机驱动电源采用四节五号电池,单片机及其外围电路电源采用5V钮扣电池供电,两路电源完全分开,这样做虽然可以将电动机驱动所造成的干扰彻底消除,提高了系统稳定性。
但是不如单电源方便灵活。
如果所有器件采用单一电源,虽然会在电动机启动瞬间电流很大,会造成电压不稳、有毛刺等干扰等。
但是这样供电会比较简单,且能够找到基本符合要求的镍镉充电电池来供电,单片机的开发板上就有一个7805稳压芯片可以利用,这样在实现起来也比较可行,因此决定采用镍镉充电电池供电。
2.3.6智能小车最后方案
经过上面的思考和分析最终确定智能避障小车的最终方案如下:
●采用STC89C52单片机作为整个电路的控制核心。
●直接使用镍镉电池提供基准电源。
●采用直流减速电机作为小车系统的驱动电机。
●使用电机专用驱动芯片L298N作为直流电机的驱动芯片。
、
●采用超声波探测器进行障碍检测。
●用开发板自带的数码管显示时间、里程、以及到障碍物的距离。
3系统单元电路的设计
3.1单片机最小系统的设计
3.1.1STC89C52单片机基本结构简介
本模块采用STC89C52单片机作为核心处理器。
STC89C52是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写10000次以上的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的STC89C52可为许多嵌入式控制应用系统提供高性价比的解决方案。
其应用范围广,性能良好,可用于解决复杂的控制问题。
利用STC89C52的I/O端口对传感器信号进行实时判断监控来控制步进电机做出相应的反映。
STC89C52单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。
如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。
它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。
但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。
其基本结构框图如图3-2图所示:
图3-1单片机基本结构框图
●微处理器
该单片机中有一个8位的微处理器,与通用的微处理器基本相同,同样包括了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。
●数据存储器
片内为128个字节,片外最多可外扩至64k字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。
●程序存储器
由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k字节。
●中断系统
具有5个中断源,2级中断优先权。
●定时器/计数器
片内有2个16位的定时器/计数器,具有四种工作方式。
●串行口
1个全双工的串行口,具有四种工作方式。
可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。
●特殊功能寄存器
共有21个,用于对片内的个功能的部件进行管理、控制、监视。
实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。
由上可见,STC89C52单片机的硬件结构具有功能部件种类全,功能强等特点。
特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位寄存器、I/O口和指令集。
1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;
而8位机在数据采集,运算处理方面有明显的长处。
MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。
如图3-2是本次设计用到的单片机开发板实物图。
图3-2本次设计用到的单片机开发板实物图
其原理图如图3-3所示:
图3-3开发板原理图
3.1.2单片机时钟震荡电路
MCS51单片机各功能部件运行都是以时钟控制信号为基准,有条不紊的一步一步地工作,因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
单片机虽然有内部振荡电路,但要形成时钟,必须外部附加电路。
单片机的时钟产生方法有两种。
内部时钟方式和外部时钟方式。
本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。
本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHZ到12MHZ之间选择。
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高的频率稳定性。
所以本设计中,振荡晶体选择6MHZ,电容选择65pF。
在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。
为了提高温度稳定性,应采用NPO电容。
图3-4是单片机时钟振荡电路图:
图3-4单片机时钟振荡电路
3.1.3单片机复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
单片机复位的条件是:
必须使RST/Vpd或RST引脚(9)加上持续两个机器周期(即24个振荡周期)的高电平。
本系统时钟频率为12MHz,每机器周期为1us,则只需2us以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。
80C51的复位是由外部的复位电路来实现的。
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
除了上电复位外,有时还需要按键手动复位。
按键手动复位有电平方式和脉冲方式两种。
其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。
按键手动复位电路如图3-5所示。
图中S1、R2构成按键复位电路。
若要复位,只需按图中的S键,此时电源VCC经电阻R4、R9分压,在RESET端产生复位高电平,两个机器周期后单片机复位。
图中C为上电复位电容,它是利用电容充放电来实现的。
在接电瞬间,RESET端的电位与VCC相同,随着充电电流的减少,RESET的电位逐渐下降。
只要保证RESET为高电平的时间大于两个机器周期,便能正常复位。
图3-5单片机复位电路
3.2显示模块的设计
在本次设计中采用数码管作为显示部分,数码管实际上是由7个发光二极管组成8字形构成的,加上小数点就是8个。
我们分别把他命名为a、b、c、d、e、f、g、dp。
如图3-6所示。
图3-2数码管原理图
图3-6数码管作为显示部分
本电路采用四位一体共阴极数码管,利用动态扫描方式来完成显示功能。
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
CPU送来的数据信号直接送入数码管的段号码,进行数字显示,本次设计中采用了开发板自带的ULN2003作为数码管的位选控制芯片,要控制右边的数码管中的哪个点亮只需要在ULN2003的左边的A1、A2、A3、A4端送入相应的控制信号就可以点亮其中一位。
而数码管的段选信号则由单片机的P1口控制,超声波传感器检测到的距离通过数字编码转换后才送到数码管显示,在送段选信号时