多功能智能小车制作毕业设计Word格式.docx
- 文档编号:21734587
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:54
- 大小:2.82MB
多功能智能小车制作毕业设计Word格式.docx
《多功能智能小车制作毕业设计Word格式.docx》由会员分享,可在线阅读,更多相关《多功能智能小车制作毕业设计Word格式.docx(54页珍藏版)》请在冰豆网上搜索。
(四)光电耦合………………………………………………………………………35
1、光电耦合的工作原理……………………………………………………………37
2、具体应用…………………………………………………………………………45
(五)选取原则……………………………………………………………………47
(六)光电耦合的作用……………………………………………………………47
(七)控制电路图………………………………………………………………49五、程序设计…………………………………………………………………………50
6、作品外观照片…………………………………………………………………64
7、结束语…………………………………………………………………………67
8、致谢……………………………………………………………………………68
9、参考文献………………………………………………………………………69
一、作品设计
制作一智能小车,给小车通上电后,有必要可以手动按下复位开关,在液晶上可以显示小车最初的基本信息。
按下启动开关小车开始向前运动,小车前头装有高大约10厘米的红外发射与接收装置,通过这个装置来探测前方有无障碍。
当发出的红外线遇到障碍时,红外线被反射回来并被红外接收管接收,并把信传递给单片机系统。
单片机做出反应并发出转弯的命令,通过12864中文液晶显示出来,人就可以看到小车遇到了障碍。
当小车第一次遇到障碍时,单片机发出向左90度转弯的命令,如这时前方无障碍小车继续前进。
小车底部安装3对光电耦合器传感器,通过按键使小车进入寻记功能,同时12864中文液晶显示出来。
当小车底部左边的传感器检测到白线时,小车右转。
当小车底部右边的传感器检测到白线时,小车左转。
当小车底部中间的传感器检测到黑线时,小车左右转直到传感器一直在白线上,小车这样一直寻记下去。
同时小车车轮上安装一个光电耦合器,来检测车轮上的黑白线,计算小车行左的距离而且在12864上时时显示。
并通过液晶显示小车在运行中的情况。
按下停止开关小车停止工作。
参考小车外形如图1。
图1小车外形图
(1)
1、智能小车的意义和作用
自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。
近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。
人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。
随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。
视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。
视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。
但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。
机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。
避障控制系统是基于自动导引小车(AVG—auto-guidevehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。
使用传感器感知路线和障碍并作出判断和相应的执行动作。
该智能小车可以作为机器人的典型代表。
它可以分为三大组成部分:
传感器检测部分、执行部分、CPU。
机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。
可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。
基于上述要求,传感检测部分考虑到小车一般不需要感知清晰的图像,只要求粗略感知即可,所以可以舍弃昂贵的CCD传感器而考虑使用价廉物美的红外反射式传感器来充当。
智能小车的执行部分,是由直流电机来充当的,主要控制小车的行进方向和速度。
单片机驱动直流电机一般有两种方案:
第一,勿需占用单片机资源,直接选择有PWM功能的单片机,这样可以实现精确调速;
第二,可以由软件模拟PWM输出调制,需要占用单片机资源,难以精确调速,但单片机型号的选择余地较大。
考虑到实际情况,本文选择第二种方案。
CPU使用STC89C52单片机,配合软件编程实现。
2、智能小车的现状
现智能小车发展很快,从智能玩具到其它各行业都有实质成果。
其基本可实现循迹、避障、检测贴片、寻光入库、避崖等基本功能,这几节的电子设计大赛智能小车又在向声控系统发展。
比较出名的飞思卡尔智能小车更是走在前列。
我此次的设计主要实现循迹避障这两个功能。
二、硬件设计
一个单片机应用系统的硬件电路设计包含有两部分内容:
一是系统扩展,即单片机内部的功能单元,如ROM﹑RAM﹑I/O口﹑定时/记数器﹑中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。
二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器﹑打印机﹑A/D﹑D/A转换器等,要设计合适的接口电路。
(一)电源部分
电源电路如图2所示。
图2电源电路
(2)
小车采用+9V的直流电供电省去了整流桥电路和滤波电路,通过三端稳压集成电路LM7805得到系统工作的+5V的直流电压,接一个发光二极管指示电源有无正常工作,电源接通时指示灯亮。
负极接一个1N4007二极管防止电源插反时烧坏LM7805。
LM7805是常用的三端稳压集成电路,能提供DC5V的输出电压,内含过流和过载保护电路。
只有三条引脚,分别是输入端、接地端和输出端。
1脚输入,2脚接地,3脚输出,这种芯片极易发热,当输出电流较大时,LM7805应配上散热板,带散热片时能持续提供1A的电流。
它的封装有TO-220的标准封装,也有lm9013样子的TO-92封装。
我们这里采用TO-220的封装形式的芯片,也是一种比较普遍的封装形式,市场上容易买到。
1、LM7805简介
三端稳压集成电路lm7805。
电子产品中,常见的三端稳压集成电路有正电压输出的lm78×
×
系列和负电压输出的lm79×
系列。
顾名思义,三端IC是指这种稳压用的集成电路,只有三条引脚输出,分别是输入端、接地端和输出端。
它的样子象是普通的三极管,TO-220的标准封装,也有lm9013样子的TO-92封装。
用lm78/lm79系列三端稳压IC来组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
该系列集成稳压IC型号中的lm78或lm79后面的数字代表该三端集成稳压电路的输出电压,如lm7806表示输出电压为正6V,lm7909表示输出电压为负9V。
因为三端固定集成稳压电路的使用方便,电子制作中经常采用。
在实际应用中,应在三端集成稳压电路上安装足够大的散热器(当然小功率7805IC内部电路图的条件下不用)。
当稳压管温度过高时,稳压性能将变差,甚至损坏。
当制作中需要一个能输出1.5A以上电流的稳压电源,通常采用几块三端稳压电路并联起来,使其最大输出电流为N个1.5A,但应用时需注意:
并联使用的集成稳压电路应采用同一厂家、同一批号的产品,以保证参数的一致。
另外在输出电流上留有一定的余量,以避免个别集成稳压电路失效时导致其他电路的连锁烧毁。
在lm78..、lm79..系列三端稳压器中最常应用的是TO-220和TO-202两种封装。
这两种封装的图形以及内部电路图。
LM7805封装图(3)
LM7805内部电路图(4)
LM7905封装(5)
LM7905内部电路图(6)
图中的引脚号标注方法是按照引脚电位从高到底的顺序标注的。
这样标注便于记忆。
引脚①为最高电位,③脚为最低电位,②脚居中。
从图中可以看出,不论正压还是负压,③脚均为输出端。
对于lm78**正压系列,输入是最高电位,自然是①脚,地端为最低电位,即②脚,如附图所示。
对与lm79**负压系列,输入为最低电位,自然是③脚,而地端为最高电位,即①脚,如上图所示。
LM7805系列集成稳压器的典型应用电路图,是一个输出正5V直流电。
LM7805引脚正确的顺序:
1脚接输入,2脚接地,3脚接输出。
lm7805典型应用:
LM7805稳压电路(7)
2、Lm7805稳压电路
LM7805系列集成稳压器的典型应用电路如下图所示,这是一个输出正5V直流电压的稳压电源电路。
IC采用集成稳压器7805,C1、C2分别为输入端和输出端滤波电容,RL为负载电阻。
当输出电较大时,7805应配上散热板。
+5V直流电压的稳压电源电路(8)
下图为提高输出电压的应用电路。
稳压二极管VD1串接在78XX稳压器2脚与地之间,可使输出电压Uo得到一定的提高,输出电压Uo为LM7805稳压器输出电压与稳压二极管VC1稳压值之和。
VD2是输出保护二极管,一旦输出电压低于VD1稳压值时,VD2导通,将输出电流旁路,保护7800稳压器输出级不被损坏。
提高输出电压的应用电路(9)
为提高输出电压的应用电路。
稳压二极管VD1串接在lm78XX稳压器2脚与地之间,可使输出电压Uo得到一定的提高,输出电压Uo为78XX稳压器输出电压与稳压二极管VC1稳压值之和。
VD2是输出保护二极管,一旦输出电压低于VD1稳压值时,VD2导通,将输出电流旁路,保护lm7800稳压器输出级不被损坏。
为输出电压可在一定范围内调节的应用电路。
由于R1、RP电阻网络的作用,使得输出电压被提高,提高的幅度取决于RP与R1的比值。
调节电位器RP,即可一定范围内调节输出电压。
当RP=0时,输出电压Uo等于lm78XX稳压器输出电压;
当RP逐步增大时,Uo也随之逐步提高。
为扩大输出电流的应用电路。
VT2为外接扩流率管,VT1为推动管,二者为达林顿连接。
R1为偏置电阻。
该电路最大输出电流取决于VT2的参数。
此外,还应注意,散热片总是和最低电位的第③脚相连。
这样在lm78**系列中,散热片和地相连接,而在lm79**系列中,散热片却和输入端相连接。
7805电参数(10)
(二)单片机的选择
对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。
AT89C51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可编程的Flash只
读程序存储器,兼容标准8051指令系统及引脚。
它集Flash程序存储器既可在线编程(ISP),也可用传统方法进行编程,所以低价位AT89C51单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。
单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
主要特性如下图-1所示:
●与MCS-51兼容
●4K字节可编程闪烁存储器
●寿命:
1000写/擦循环
●数据保留时间:
10年
●全静态工作:
0Hz-24Hz
●三级程序存储器锁定
●128*8位内部RAM
●32可编程I/O线
●两个16位定时器/计数器
●5个中断源AT89C51单片机引脚图(11)
●可编程串行通道
●低功耗的闲置和掉电模式
●片内振荡器和时钟电路
1、主要优势:
1·
与MCS-51兼容
2·
4K字节可编程闪烁存储器
3.寿命:
4.数据保留时间:
5·
全静态工作:
6·
三级程序存储器锁定
7·
128*8位内部RAM
8·
32可编程I/O线
9·
两个16位定时器/计数器
10·
5个中断源
11·
可编程串行通道
12·
低功耗的闲置和掉电模式
13·
片内振荡器和时钟电路
2、振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3、89S51相对于89C51增加的新功能:
--新增加很多功能,性能有了较大提升,价格却基本不变,甚至比89C51更低!
--ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。
是一个强大易用的功能。
--工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。
--具有双工UART串行通道。
--内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。
--双数据指示器。
--电源关闭标识。
--全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
--兼容性方面:
向下完全兼容51全部字系列产品。
比如8051、89C51等等早期MCS-51兼容产品。
也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89C51还是MCS-51等等),在89S51上一样可以照常运行,这就是所谓的向下兼容。
4、芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
串口通讯单片机的结构和特殊寄存器,这是你编写软件的关键。
至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,各代表什么含义呢?
SBUF数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。
有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?
而不是收发各用一个寄存器。
”实际上SBUF包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。
CPU在读SBUF时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。
发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。
操作SBUF寄存器的方法则很简单,只要把这个99H地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfrSBUF=0x99;
当然你也可以用其它的名称。
通常在标准的reg51.h或at89x51.h等头文件中已对其做了定义,只要用#include引用就可以了。
SCON串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。
SCON就是51芯片的串行口控制寄存器。
它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51芯片串行口的工作状态。
51芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON寄存器。
它的各个位的具体定义如下:
SM0SM1SM2RENTB8RB8TIRI SM0、SM1为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。
串行口工作模式设置。
SM0SM1模式功能波特率000同步移位寄存器fosc/12 0118位UART可变 1029位UARTfosc/32或fosc/64 1139位UART可变 在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。
表中的fosc代表振荡器的频率,也就是晶振的频率。
UART为(UniversalAsynchronousReceiver)的英文缩写。
SM2在模式2、模式3中为多处理机通信使能位。
在模式0中要求该位为0。
REM为允许接收位,REM置1时串口允许接收,置0时禁止接收。
REM是由软件置位或清零。
如果在一个电路中接收和发送引脚P3.0,P3.1都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0来禁止接收,在子程序结束处加入REM=1再次打开串口接收。
大家也可以用上面的实际源码加入REM=0来进行实验。
TB8发送数据位8,在模式2和3是要发送的第9位。
该位可以用软件根据需要置位或清除,通常这位在通信讯味中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。
RB8接收数据位8,在模式2和3是已接收数据的第9位。
该位可能是奇偶位,地址/数据标识位。
在模式0中,RB8为保留位没有被使用。
在模式1中,当SM2=0,RB8是已接收数据的停止位。
TI发送中断标识位。
在模式0,发送完第8位数据时,由硬件置位。
其它模式中则是在发送停止位之初,由硬件置位。
TI置位后,申请中断,CPU响应中断后,发送下一帧数据。
在任何模式下,TI都必须由软件来清除,也就是说在数据写入到SBUF后,硬件发送数据,中断响应如中断打开),这时TI=1,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其清零。
RI接收中断标识位。
在模式0,接收第8位结束时,由硬件置位。
其它模式中则是在接收停止位的半中间,由硬件置位。
RI=1,申请中断,要求CPU取走数据。
但在模式1中,SM2=1时,当未收到有效的停止位,则不会对RI置位。
同样RI也必须要靠软件清除。
常用的串口模式1是传输10个位的,1位起始位为0,8位数据位,低位在先,1位停止位为1。
它的波特率是可变的,其速率是取决于定时器1或定时器2的定时值(溢出速率)。
AT89C51和AT89C2051等51系列芯片只有两个定时器,定时器0和定时器1,而定时器2是89C52系列芯片才有的。
波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。
波特率是指串行端口每秒内可以传输的波特位数。
有一些初学的朋友认为波特率是指每秒传输的字行数,如标准9600会被误认为每秒种可以传送9600个字节,而实际上它是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是9600÷
10=960字节。
51芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M的晶振来计算,那么它的波特率可以达到1M。
模式2的波特率是固定在fosc/64或fosc/32,具体用那一种就取决于PCON寄存器中的SMOD位,如SMOD为0,波特率为focs/64,SMOD为1,波特率为focs/32。
模式1和模式3的波特率是可变的,取决于定时器1或2(52芯片)的溢出速率。
那么我们怎么去计算这两个模 式的波特率设置时相关的寄存器的值呢?
可以用以下的公式去计算。
波特率=(2SMOD÷
32)×
定时器1溢出速率 上式中如设置了PCON寄存器中的SMOD位为1时就可以把波特率提升2倍。
通常会使用定时器1工作在定时器工作模式2下,这时定时值中的TL1做为计数,TH1做为自动重装值,这个定时模式下,定时器溢出后,TH1的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。
在这个定时模式2下定时器1溢出速率的计算公式如下:
溢出速率=(计数速率)/(256-TH1) 上式中的“计数速率”与所使用的晶体振荡器频率有关,在51芯片中定时器启动后会在每一个机器周期使定时寄存器TH的值增加一,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M的晶振用在51芯片上,那么51的计数速率就为1M。
通常用11.0592M晶体是为了得到标准的无误差的波特率,那么为何呢?
计算一下就知道了。
如我们要得到9600的波特率,晶振为11.0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 智能 小车 制作 毕业设计