自 动 往 返 电 动 小 汽 车吴阿敏Word文件下载.docx
《自 动 往 返 电 动 小 汽 车吴阿敏Word文件下载.docx》由会员分享,可在线阅读,更多相关《自 动 往 返 电 动 小 汽 车吴阿敏Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
目
标
和
要
求
设计内容目标
设计并制作一个能自动往返于起跑线与终点线间的小汽车。
ABCDEFG
0.5m
限速区
1m0.5m3--6m2m3--6m0.5mCL
K1
起跑线
终点线
跑道顶视图
跑道宽度0.5m,表面贴有白纸,两侧有挡板,挡板与地面垂直,其高度不低于20cm。
在跑道的B、C、D、E、F、G各点处画有2cm宽的黑线,各段的长度如图所示。
设计要求
1、车辆从起跑线出发(出发前,车体不得超出起跑线),到达终点线后停留10秒,然后自动返回起跑线(允许倒车返回)。
往返一次的时间应力求最短(从合上汽车电源开关开始计时)。
2.达终点线和返回起跑线时,停车位置离起跑线和终点线偏差应最小(以车辆中心点与终点线或起跑线中心线之间距离作为偏差的测量值)。
D~E间为限速区,车辆往返均要求以低速通过,通过时间不得少于8秒,但不允许在限速区内停车。
指导教师签名:
年月日
基层教学单位审核
审核
此表由指导教师填写学院审核
学年论文学生开题报告
课题名称
课题来源
学校
课题类型
AY
0902239
09电子科学与技术
(1)班
一、本课题的研究现状、研究目的及意义
单片机,作为嵌入式系统发展中不可或缺的一部分,它也占有了市场一定的份额。
但单片机的运用在中国并没有做强做大。
对它的设计、开发都只是运用在很局限的一定范围与有限的领域。
造成这方面的因素很多。
其中最大的因素是国内的单片机技术不成熟,核心技术受制于人。
且以美国为首的发达国家都限制对中国出售高性能的芯片。
由于芯片功能等限制而无法制出稳定度高、性能优秀、与功能强大的产品出来。
单片机,作为我的专业技术课之一的内容,一向是我所喜欢的东西。
这次通过做《自动往返电动小汽车》这个课程设计,我想我会在理论上更一步充实自己,也希望自己能在这方面以后有所建树。
二、论文拟阐明的主要问题
本系统为电动小汽车的自动控制系统,在该系统的设计中,研究采用了脉宽调制(PWM)控制算法,很好地解决了小车的速度和加速度问题。
系统采用89C51单片机为核心,三组光电检测电路分别用作位置、速度和方向的检测,功率三极管可控整流桥做马达驱动。
180型伺服电机控制小车前进、后退和转向。
系统液晶显示板可显示行驶时间和距离。
三、进度安排
第一阶段:
撰写开题报告。
第二阶段:
着手进行方案的实施,并开始撰写论文初稿。
第三阶段:
在朱老师的指导下进行论文初稿的修改。
第四阶段:
将修改后的论文交给朱老师进行审阅。
学年论文任务书.............................................2
学年论文开题报告.........................................4
摘要.................................................................6
课题需要完成的任务.....................................7
论文选题的动因(背景或意义).................7
论文拟阐明的主要问题.................................7
学年论文说明书.............................................7
4.1方案论证…………………………………...8
4.2光电检测电路………………………………9
4.3Intel8253的控制和PWM的输出…….....10
4.4光电耦合部分……………………………...18
4.5L298N型驱动电路……………………….19
4.6软件部分...........................27
附录1………………………………………….29
附录2………………………………………….30
参考文献………………………………………31
摘要
80C51单片机是一款八位单片机,他的易用性和多功能性受到了广大使用者的好评。
这里介绍的是如何用80C51单片机来实现成安徽三联学院的学年论文设计,该设计是结合科研项目而确定的设计类课题。
本系统以设计题目的要求为目的,采用80C51单片机为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。
整个系统的电路结构简单,可靠性能高。
实验测试结果满足要求,本文着重介绍了该系统的硬件设计方法及测试结果分析。
采用的技术主要有:
(1)通过编程来控制小车的速度;
(2)传感器的有效应用;
关键词:
单片机、电动小车、光电检测器、PWM调速
Abstract
80C51isa8bitsinglechipcomputer.Itseasilyusingandmulti-functionsufferlargeusers.ThisarticleintroducesAnhuiSanlianUniversitygraduationdesignwiththe80C51singlechipcomputer.Thisdesigncombineswithscientificresearchobject.Thissystemregardstherequestofthetopic,adopting80C51forcontrollingcore,supersonicsensorfortestthehinder.Itcanruninahighandalowspeedorstopautomatically.Italsocanrecordthetime,distanceandthespeedorsearchinglightandmarkautomaticallytheelectriccircuitconstructionofwholesystemissimple,thefunctionisdependable.Experimenttestresultsatisfytherequest,thistextemphasizesintroducedthehardwaresystemdesignsandtheresultanalyze
Theadoptionoftechniqueas:
(1)Reducethespeedbyprogramtheengine;
(2)efficientapplicationofthesensor;
Keywords:
Singlechip、Electricitymotivesmallcar、lightelectricitydetector、PWMspeedadjusting
一.课题需要完成的任务:
二.论文选题的动因(背景或意义):
单片机,作为嵌入式系统发展中不可或缺的一部分,它也占有了市场一定的份额。
2.论文拟阐明的主要问题:
本系统为电动小汽车的自动控制系统,在该系统的设计中,研究采用了脉宽调制(PWM)控制算法,很好地解决了小车的速度和加速度问题。
四.学年论文设计说明书
摘要本系统以单片机为核心,采用intel8253型微型计算机接口电路产生脉冲宽度调制波,设计了一种用脉冲计数控制小汽车行程的系统。
利用光电检测器,对跑道中的黑线进行监测,CPU通过对黑线标志进行检测分析利用灵活的单片机软件编程与其相结合实现对小汽车的前进,加速,减速,并实现自动转向功能。
使用L298N型桥式驱动器,实现对直流的一种简单有效的PWM调速方法。
使驱动电路效率提高,更加简单。
整个系统的电路结构简单,可靠性高,实验测试结果满足要求。
关键词Intel8253L298N自动往返小车
4.1方案论证
4.1.1速度控制
我们对两个方案进行了比较:
方案一:
采用D/A变换电路将数字量转换成控制电机电压的模拟量。
再利用电平的高低达到调速的目的。
原理框图如图1所示。
本方案达到了利用CPU输出的数字量精确控制模拟量的目的。
但愿电路比较复杂,成本较高。
方案二:
采用脉宽调制方式(PWM)从I/O口输出不同占空比的脉冲,经滤波后获得不同甘共苦高低电平控制电机。
本方案可以达到对速度的控制要求,且控制简单易实现。
通过比较明显方案二最单洁清晰、容易实现、速度快、精度高。
从系统指标要求来看,对速度要求较高,低速与高速之间差别较大,且准确度要求高,各个速度之间的切换也要求简单、迅速。
采用方案二可利用单片机运行速度快的特点进行速度的快速调整,且方案二速度准确度高、级数多容易达到系统指标要求,所以我们选用方案二作为控制部分具体实施的方案
4.1.2方向控制
利用继电器控制电机电压极性以控制方向。
该方案虽可实现方向控制,但继电器驱动耗电量大,且因有触点动作,易对电路造成干扰。
采用电子开关电路。
本方案通过改变控制端电平值改变电机两端电压极性控制方向。
采用电子开关电器具有转换速度快、无触点、和控制容易的优点。
两种方案相比,方案二有较明显的优势,且符合要求。
4.1.3速度控制
利用单片机控制,调用不同的电压输出实现速度的控制,低电压对应与慢车,高电压对应于快车,零电压对应与停车,电压极性相反实现小车的反向行驶。
利用Intel8253三个计数器的不同工作方式控制脉冲宽度调制的输出,实现对小车的加速,减速,停车,反向行驶的控制。
两种方案相比较,方案二较方案一更简单,方便。
只需要控制不同的占空比就可以实现同样的功能,且调速的范围较大。
4.1.4驱动电路
通过模拟电路或数字电路实现,例如用555搭成的触发电路。
使用内部集成有两个桥式电路专用芯片L298N所组成的电机驱动电路,利用内部的桥式电路来驱动直流电机。
比较两个方案,方案一电路的占空比不能自动调节,不能用于自动控制小车的调速。
方案二完全可以模拟任意频率,占空比随意调节的PWM信号输出,不言而喻我们选择后者。
至此我们的自动往返电动小汽车的大体方案已经出来了。
采用光电检测传感器采集信号为单片机8051提供中断源,Intel8253控制脉冲宽度调制实现电动小车的速度控制,正反转的实现等功能。
4.2光电检测电路
4.2.1光电检测系统要求
通过对系统指标要求分析,小车需自动检测出起跑线、变速线、终点线等标志线提示CPU控制方向,速度。
由于小汽车在行驶过程中要求传感元件有较高的灵敏度及较高的可靠性,所以我们选用了光电传感元件对信号进行采集,并给CPU提供检测信号以供CPU判断分析。
根据小车所处的位置改变行驶状态。
光电检测器采集外部信息传给INT0作为外部中断源,遇到黑线将产生一个中断,计数器通过对中断的计数确定小车位置,并对行驶状态做出相应的反映。
光电检测连接电路如图4.1所示。
图4.1光电检测电路
4.2.2LM324运放
由于采集电路得到的光信号转化成电信号后,信号较弱,且含有直流分量的类正弦波,CPU对其不能进行检测,所以必须加入一个整形放大电路对波形进行调整。
设计中曾采用过达林顿管、两极与非门对信号进行调整,但都达不到理想的效果。
为此采用LM324运放整形放大电路(附录2中所示):
由2脚输入0.7V的基准电压,与3脚的采集信号相比较,放大电路的输入为正弦波,输出波形为受正弦波控制的方波。
4.2.3工作过程
当小汽车在白色区行驶时,即Q1接收到D1的反射信号,反射光使信号持续为高电平,而行驶到黑色区后,Q1接收不到D1的反射信号,信号转化成低电平,由此得到脉冲。
利用CPU的INT0脚接收标志线检测信号,每检测到一条黑线,光电管给出一个高电平脉冲,CPU每检测到一个下降沿进行一次中断处理,判断小车处于跳道的哪一段,同时调整速度,一方面要符合不同的速度要求,同时使整个运行时间最短。
4.3Intel8253的控制和PWM的输出
4.3.1Intel8253的控制电路
Intel8253是本设计的重点,主要用于PWM脉冲的调制,以达到控制小车的加速,减速,停车,转向功能。
控制电路包括单片机8052,锁存器74LS373,其中8052的P0.0~P0.7通过锁存器74LS373控制Intel8253的A0,A1口,选择计数器0,计数器1,计数器2和控制字寄存器的工作状态,且为高电平有效,Intel8253的方式字控制字的格式是由8052的P0.0~P0.7控制的,主要用于计数通道的选择,计数通道读写方式的控制,计数器锁存命令的控制和计数通道工作方式的选择。
8052的21脚P2.0控制Intel8253的片选信号,为低电平有效,8052的16,17脚为外部数据存储器读/写选通信号,控制intel8253的读写信号,且为低电平有效,8052的30脚为频率不变(振荡器频率的1/6)周期性地发出正脉冲信号。
硬件连接图如图4.2
图4.2Intel8253的外围电路
4.3.2Intel8253的内部结构和引脚功能
Intel8253的内部包含3个彼此独立的16位减法计数器。
每个计数器都可由软件确定为16位二进制减法计数器或者十进制4位BCD减法计数器。
每个计数器都有6种不同的工作模式,也由软件确定。
每个计数器都有一个时钟输入端(CLK)、一个门控信号输入端(GATE)和输出端(OUT)。
读写由A1、.A0、RD、WR和CS等引脚加以控制,主要用以控制Intel8253的数据与命令的写入、读取与禁止。
8253的内部结构框图如图4.3所示。
数据总线缓冲器
读/写逻辑
控制字寄存器
计数通道0
计数通道1
计数通道2
内部数据总线
D0~D7
RD
WR
A0
A1
CS
CLK0
GATE0
OUT0
CLK1
GATE1
OUT1
CLK2
GATE2
OUT2
图4.38253内部结构框图
4.3.2.1数据总线缓冲器及数据总线D0~D7
这是8253与CPU数据总线连接的8位双向三态缓冲器,是8253内部总线与CPU系统的8位数据总线之间的接口。
CPU通过它写方式控制字到控制字寄存器,写计数初值到计数通道,读取计数通道的当前计数值。
即数据总线缓冲器有三个基本功能:
通过编程向8253写入确定8253工作方式的命令;
向计数寄存器装入计数初值;
读出当前计数值。
4.3.2.2读/写控制逻辑及控制引脚
这是8253内部操作的控制部分,按照CPU发来的读写信号及地址信号来控制对各个计数器的读写,以及对控制寄存器的写入。
当片选信号
为高电平时,数据总线缓冲器处于高阻状态。
当片选信号有效时(低电平),CPU可以对8253某端口进行读/写操作。
8253内部有3个独立的计数通道和1个控制字寄存器共4个端口,由A1和A0加以选择,但对控制字寄存器仅能进行写操作。
各个端口的读/写操作的选择见图4.4。
注意点是控制寄存器只能写入不能读出。
图4.48253读写操作及端口选择
CSA1A0RDWR执行操作
10001向计数器0(通道0)写入“计数初值”
10101向计数器1(通道1)写入“计数初值”
11001向计数器2(通道2)写入“计数初值”
11101向控制字寄存器写“方式控制字”
10010向计数器0读出“当前计数值”
10110向计数器0读出“当前计数值”
11010向计数器0读出“当前计数值”
11110无操作,三态
0xxxx未选中,三态
1xx00无操作,三态
4.3.2.3控制字寄存器
在初始化编程时,CPU写入方式控制字到控制字寄存器中,用以选择计数通道及其相应的工作方式。
4.3.2.4计数通道0、计数通道1、计数通道2
3个计数通道内部结构完全相同。
每个计数通道都由一个16位计数初值寄存器、一个16位减法计数器和一个16位计数值锁存器组成。
3个计数通道操作完全独立。
初始化编程时,虽然3个计数通道共用一个控制字寄存器端口地址,但CPU可以分别写3个方式控制字到控制字寄存器,分别选择各计数通道的工作方式。
在写计数初值到计数通道或CPU读取计数通道到当前计数值时,各计数通道都有各自的端口地址。
3个计数通道功能完全相同。
在设定了计数通道的工作方式后,接着可向该计数通道装入计数初值,该计数初值先送到计数初值寄存器保存,在GATE引脚为高电平时(方式0、2、3、4)或在GATE上升沿触发下(方式1、2、3、5),计数初值寄存器中的值自动装入到减法计数器中。
并启动计数器计数,减法计数器对CLK时钟脉冲的下降沿进行减1计数(方式3不是减1计数),并把结果送入计数值锁存器中。
当减1计数器减到0时,输出OUT信号,一次计数结束。
计数初值寄存器的内容,在计数过程中保持不变。
CPU读取计数通道当前计数值,实际上读取的是16位计数值锁存器的内容。
在计数通道用作定时器时,可在该通道CLK端输入一个频率精确已知的时钟脉冲,根据定时时间和公式:
计数初值=定时时间÷
时钟周期,计算出计数初值(也称时间常数)。
在计数通道用作计数器时,被计数的事件应以脉冲方式从CLK端输入。
各计数通道的CLK输入和OUT信号输出之间的关系与门控信号GATE有关,取决于工作方
4.3.3Intel8253的工作方式
8253具有六种工作方式,在不同的方式下,计数器启动方式、GATE端输入信号的作用以及OUT端的输出波形都不相同。
在任何一种方式下,都必须先向8253写入控制字,控制字还起复位作用它使OUT端变为工作方式中规定的状态和对计数器初值寄存器CR清零;
然后再写入计数初值到CR。
注意:
计数器初值寄存器CR的最大值为0000H。
(1)方式0----计数结束中断方式(InterruptonTerminalCount)
方式0的特点:
计数过程由软件启动;
GATE的作用是开放或进制计数。
方式0的作用:
方式0主要用于事件计数,OUT信号可作为中断请求信号。
当某计数器设置在方式0以后,微型计算机可以通过二条输出指令将16位数据M送入该计数器。
这时该计数器的输出端并无任何响应。
一旦该计数器到时,它的输出端立刻输出一个宽度为MT的负向脉冲,其输出波形如图4.5
图4.5工作方式0
(2)方式1----硬件可重触发单稳态方式(HardwareRetriggerableOne-shot)
(3)方式2----速率方式器
当某计数器设置在方式2以后,微型计算机可以通过二条输出指令将16位数据Ⅳ送入该计数器。
输出指令结束后,该计数器立即输出周期为NT的连续方波,其输出波形如图4.6
图4.6工作方式2
(4)方式3----方波发生器
方式3的特点:
方式3中计数过程是CE内容减2;
计数器启动过程有软件启动和硬件启动两种。
方式3的作用:
方式3主要用作方波脉冲发生器和波特率发生器。
如果将8253的计数器0和计数器1分别设置在方式2和方式0,并按图4.8所示连接,就可以得到一个十分简单的脉宽调制发生器。
工作开始前,先将常数Ⅳ送入计数器0,再将常数M送入计数器1中(M<
N),于是计数器0将输出周期为NT的连续方波。
计数器1的门控输入端每隔NT时间接到一次正跳变信号。
因此,每隔NT时间计数器l将输出一个宽度为Mr的负向脉冲。
因此,通过改变M与N可以得到一个占空比可调的PWM波。
4.3.4Intel8253的编程
使用8253时,必须首先进行初始化编程。
初始化编程的步骤和内容如下:
首先写入方式控制字,以选择计数通道,确定其工作方式。
每一计数通道的方式控制字都是由CPU依次写入控制字寄存器的,控制字寄存器端口地址只有一个。
然后写入计数初值到对应的计数通道中。
若规定只写低8位,则写入的计数初值为低8位,高8位自动清0;
若规定只写高8位,则写入的计数初值为高8位,低8位自动清0;
若规定写16位,则分两次写入,先写入的计数初值为低8位,后写入的计数初值为高8位,每个计数通道均有自己的端口地址。
3.4.2方式控制字的格式如下:
SC1、SC0:
计数通道选择。
确定这个方式控制字是确定哪个计数通道的工作方式的。
若SC1SC0=00,选择计数通道0;
若SC1SC0=01,选择计数通道1;
若SC1SC0=10,选择计数通道2;
若SC1SC0=11,为非法选择。
图4.7
D7
D6
D5
D4
D3
D2
D1
D0
SC1
SC0
RL1
RL0
M2
M1
M0
BCD
RL1、RL0:
规定CPU向计数通道写入计数初值的格式和向计数通道锁存器发锁存命令,以及未锁存时CPU从计数通道读取当前计数值的格式。
数据读/写格式为:
RL1RL0=00,计数器锁存命令
RL1RL0=01,只读/写低8位数据
RL1RL0=10,只读/写高8位数据
RL1RL0=11,读/写16位数据,先低8位,后高8位