基于MCS51单片机智能小车控制器方案设计书.docx

上传人:b****1 文档编号:23262956 上传时间:2023-05-15 格式:DOCX 页数:26 大小:162.56KB
下载 相关 举报
基于MCS51单片机智能小车控制器方案设计书.docx_第1页
第1页 / 共26页
基于MCS51单片机智能小车控制器方案设计书.docx_第2页
第2页 / 共26页
基于MCS51单片机智能小车控制器方案设计书.docx_第3页
第3页 / 共26页
基于MCS51单片机智能小车控制器方案设计书.docx_第4页
第4页 / 共26页
基于MCS51单片机智能小车控制器方案设计书.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于MCS51单片机智能小车控制器方案设计书.docx

《基于MCS51单片机智能小车控制器方案设计书.docx》由会员分享,可在线阅读,更多相关《基于MCS51单片机智能小车控制器方案设计书.docx(26页珍藏版)》请在冰豆网上搜索。

基于MCS51单片机智能小车控制器方案设计书.docx

基于MCS51单片机智能小车控制器方案设计书

摘要

本文简要介绍了系统的开发背景、意义,重点介绍了硬件设计和软件设计的过程。

本选题是用单片机技术开发智能小车,通过对路面的检测而实现自动前进、左右转弯、后退等基本功能,可以方便的应用于路面的安全巡检。

小车的硬件控制单元主要包括传感器及调理电路,步进电机及驱动电路,控制器三个部分,并用PROTEL99软件制作原理图和电路板。

在软件设计方面,则分为三个模块,即数据采集模块,信号处理模块,控制器控制电机模块。

此设计结构简单,用传统的汇编语言编程,利用定时器中断控制信号采样频率和电机转速。

关键词:

单片机;传感器;步进电机;PROTEL99

目录

1绪论1

1.1课题研究的背景1

1.2开发的意义1

1.3课题设计方案1

2系统硬件设计2

2.1系统设计原理及框图3

2.2系统各部分电路元件的选择3

2.2.1单片机的选择4

2.2.2集成运放的选择5

2.2.3步进电机选择及其驱动电路设计5

2.2.4电源电路的设计8

2.3控制电路原理图的制作8

3软件设计9

3.1软件设计思想9

3.1.1定时器中断10

3.1.2电机驱动模块11

3.2源程序15

4总结17

5谢辞18

6参考文献19

1绪论

1.1课题研究的背景

随着现代科技的飞速发展,单片机已经在各个领域得到越来越广泛的应用。

单片机由于体积小,功耗低两个基本特征,在通讯,家电,工业控制,仪器仪表,汽车等产品中都可以看到单片机的身影。

单片机技术也随着集成电路技术的进步在近几年飞速的发展,这种发展可以分为两方面:

一方面在硬件上单片机内部集成了越来越多的功能部件,如A/D,D/A,PWM,WATCHDOG,LCD驱动,串行口,大容量FLASH存储器等;另一方面在开发手段上从汇编语言向高级C语言过度,计算机仿真调试,IAP,ISP技术的应用使单片机开发周期大大的缩短,为各类产品更新,软件的升级提供了可靠的技术保障。

在设计单片机应用系统时,由于历史的原因,目前在国内仍然以8051系列单片机为主。

作为机电专业的学生,非常有必要通过对实际产品的设计和制作,了解现代IT产品的开发全流程。

全面提高机,电,光,算知识的综合应用能力,掌握从系统级,电路级,到芯片级各个层次的设计和实现手段。

基于上述原因,我选择此设计课题,在此设计过程中,将会用到多门学科的理论知识,能复习和巩固以前所学的知识,更重要的是培养了发现问题,分析问题,解决问题的能力,还有锻炼了动手能力,是一次很好的实践,对以后的学习和工作也会有所帮助。

1.2开发的意义

科技的进步带动了产品的智能化,单片机的应用更是加快了发展的步伐,它的应用范围日益广泛,已远远超出了计算机科学的领域。

小到玩具、信用卡,大到航天器、机器人,从实现数据采集、过程控制、模糊控制等智能系统到人类的日常生活,到处都离不开单片机,此设计正是单片机的一个典型应用。

此设计实现了小车的无人驾驶,通过对路面的检测,由单片机来判断控制小车,使其变得智能化,实现自动的前进,转弯,停止功能.此系统完善后可以应用到道路检测,安全巡逻中,能满足社会的需要。

1.3课题设计方案

本选题是用单片机技术开发智能小车,通过对路面的检测能实现自动的前进,左右转弯,后退等基本功能,能够方便的应用于路面的安全巡检。

小车的控制单元主要包括传感器及调理电路,步进电机及驱动电路,控制器三个部分。

小车的行动离不开传感器,通过两个红外光电传感器,根据路面的情况分别输出高低信号,由于传感器检测到的信号比较微弱,通过比较运放将其信号扩大、调理,使其输出兼容TTL电平,以便与控制器接口。

控制系统采用AT89C52,控制器按一定的时钟周期对光电检测器的输入信号采样检测,根据光电检测器的状态,判断小车的动作,给步进电机输出正确的控制信号,实现电机的转动。

通过定时器中断用汇编语言编程实现对小车的控制,改变定时器的初值来控制小车的速度。

电机采用的是四相八拍反应式步进电机,实现上只要按一定的时钟周期(不小于1.25ms),往四个控制端循环输出一组固定的控制字即可,因左右轮的安装是反向的,要前进两个步进电机的转动必须是反向的,这里的方向可以由通电顺序来改变,如左转,左轮停止右轮转动就可以了;反之,右转时,右轮停止左轮转动便是,要使步进电机停止转动,只要输出其他的固定的控制字即可。

步进电机的运行还要一个驱动电路,这里采用ULN2803驱动芯片。

最后,由于系统各部分的驱动电压、电流的不同,在电源的设计上,用7805进行转换,满足各个模块的需要。

在软件设计方面,则分为三个模块,即数据采集模块、信号处理模块、控制器控制电机模块。

此设计结构简单,采用传统的单片机汇编语言进行编程,通过编译成机器语言,再由通信软件将机器码文件送入单片机联机经KEILC51仿真调试验证结果的正确性。

2系统硬件设计

2.1系统设计原理及框图

本系统的功能是机器小车沿地面黑白轨道完成自动寻迹,即实现左转弯,右转弯,前进,停止,后退的功能。

工作过程是:

二个红外光电传感器探测地面情况,由于轨迹为黑色的,不产生反射,其感应信号表现为低电平,通过比较运放后以高电平的形式输出到控制芯片,相反则为低电平,通过比较运放将感应信号放大输出,光电检测放大电路将其状态送入控制器AT89C52,对输入的信号进行相应的判别,并用汇编语言编写程序控制光电传感器的检测间隔,以及小车运动的速度,用驱动芯片ULN2803驱动小车运动,其运动的方向与检测信号有关,控制器根据步进电机类别输出相应的控制字,让小车实现位移。

其系统框图如图2.1所示:

 

 

图2.1系统结构框

2.2系统各部分电路元件的选择

2.2.1单片机的选择

单片机品种繁多,就应用情况看,应用最广者当属Intel公司的MCS-51系列8位机。

本设计所用单片机即选用MCS-51单片机。

(1)其引脚如图2.2所示。

 

图2.2MCS-51单片机引脚

 

vcc:

接正极电源+5v

GND:

接地

RST:

复位信号输入引脚

XTAL1,XTAL2:

接外部晶振引脚,外部时钟电路如图1-6

P0,P1,P2,P3:

不扩展功能作双向I/O口用,访问外部存储器时,P2,P0分别做地址总线高低8位地址

(2)其复位电路如图2.3所示。

 

图2.3复位电路

说明:

复位电路的原理是在通电瞬间,由于RC的充电过程,在RST端出现一定的脉冲宽度,只要该脉冲能保持10ms以上,就能使单片机可靠的复位。

(3)时钟电路的设计所以MCS-51单片机的时钟钟电路如图2.6

图2.4外部时钟电路

2.2.2集成运放的选择

目前广泛应用的电压型集成运算放大器是一种高放大倍数的直接耦合放大器。

在该集成电路的输入与输出之间接入不同的反馈网络,可实现不同用途的电路,例如利用集成运算放大器可非常方便的完成信号放大、信号运算(加、减、乘、除、对数、反对数、平方、开方等)、信号的处理(滤波、调制)以及波形的产生和变换。

集成运算放大器的种类非常多,可适用于不同的场合。

(1)集成运算放大器的分类:

按照集成运算放大器参数来分,集成运算放大器可分为:

通用型运算放大器,高阻型运算放大器,低温漂型运算放大器,高速型运算放大器,低功耗型运算放大器,高压大功率型运算放大器六大类。

下面介绍一下通用运算放大器的:

通用型运算放大器以通用为目的而设计的。

这类器件的主要特点是价格低廉、产品量大面广,其性能指标能适合于一般性使用。

例mA741(单运放)、LM358(双运放)、LM324(四运放)及以场效应管为输入级的LF356都属于此种。

它们是目前应用最为广泛的集成运算放大器。

在没有特殊要求的场合,尽量选用通用型集成运放,这样即可降低成本,又容易保证货源。

当一个系统中使用多个运放时,尽可能选用多运放集成电路,例如LM324、LF347等都是将四个运放封装在一起的集成电路。

(2)集成运放结构功能分析:

1.防止通过电源内阻造成高频振荡的措施是在集成运放的负供电电源的输入端对地加一高频滤波电容(0.01uF-0.1uF)。

2.输出保护。

当集成运放过载或输出端短路时,若没有保护电路,该运放就会损坏。

当输出保护时,由电阻R起限流保护作用。

3.调零。

由于集成运放的输入失调电压和输入失调电流的影响,当运算放大器组成的线性电路输入信号为零时,输出往往不等于零。

为了提高电路的运算精度,要求对失调电压和失调电流造成的误差进行补偿,这就是运算放大器的调零。

即图中的电位器就起调节电压的作用。

2.2.3步进电机选择及其驱动电路设计

1)步进电机概述

(1)步进电机分三种:

永磁式(PM),反应式(VR)和混合式(HB)。

永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;

反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。

在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。

它又分为两相和五相:

两相步进角一般为1.8度而五相步进角一般为0.72度。

这种步进电机的应用最为广泛。

本设计即选用混合式步进电机。

(2)步进电机的静态指标术语

相数:

产生不同对极N、S磁场的激磁线圈对数。

常用m表示。

拍数:

完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式,即A-AB-B-BC-C-CD-D-DA-A

步距角:

对应一个脉冲信号,电机转子转过的角位移用θ表示。

θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。

四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。

定位转矩:

电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成)。

静转矩:

电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。

此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。

虽然静转矩与电磁激磁安匝数成正比,与定齿转子间的气隙有关,但过份采用减小气隙,增加激磁安匝来提高静力矩是不可取的,这样会造成电机的发热及机械噪音。

(3)电机正反转控制:

它与通电顺序有关,如当电机绕组通电时序为AB-BC-CD-DA时为正转,通电时序为DA-CD-BC-AB时为反转。

2)驱动控制系统组成

使用控制步进电机必须由环形脉冲,功率放大等组成的控制系统,其方框图如图2.10所示。

(1)脉冲信号的产生:

脉冲信号一般由单片机或CPU产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。

(2)信号分配:

步进电机以二、四相电机为主,二相电机工作方式有二相四拍和二相八拍二种,具体分配如下:

二相四拍为,步距角为1.8度;二相八拍为,步距角为0.9度。

四相电机工作方式也有二种,四相四拍为AB-BC-CD-DA-AB,步距角为1.8度;四相八拍为AB-B-BC-C-CD-D-AB,(步距角为0.9度)。

(3)功率放大:

功率放大是驱动系统最为重要的部分。

步进电机在一定转速下的转矩取决于它的动态平均电流而非静态电流(而样本上的电流均为静态电流)。

平均电流越大电机力矩越大,要达到平均电流大这就需要驱动系统尽量克服电机的反电势。

因而不同的场合采取不同的的驱动方式,到目前为止,驱动方式一般有以下几种:

恒压、恒压串电阻、高低压驱动、恒流、细分数等。

(4)细分驱动器:

在步进电机步距角不能满足使用的条件下,可采用细分驱动器来驱动步进电机,细分驱动器的原理是通过改变相邻(A,B)电流的大小,以改变合成磁场的夹角来控制步进电机运转的。

图2.5驱动控制系统方框图

3)步进电机的选择

步进电机有步距角(涉及到相数)、静转矩、及电流三大要素组成。

一旦三大要素确定,步进电机的型号便确定下来了。

(1)步距角的选择

电机的步距角取决于负载精度的要求,将负载的最小分辨率(当量)换算到电机轴上,每个当量电机应走多少角度(包括减速)。

电机的步距角应等于或小于此角度。

目前市场上步进电机的步距角一般有0.36度/0.72度(五相电机)、0.9度/1.8度(二、四相电机)、1.5度/3度(三相电机)等。

(2)静力矩的选择

步进电机的动态力矩一下子很难确定,我们往往先确定电机的静力矩。

静力矩选择的依据是电机工作的负载,而负载可分为惯性负载和摩擦负载二种。

单一的惯性负载和单一的摩擦负载是不存在的。

直接起动时(一般由低速)时二种负载均要考虑,加速起动时主要考虑惯性负载,恒速运行进只要考虑摩擦负载。

一般情况下,静力矩应为摩擦负载的2-3倍内好,静力矩一旦选定,电机的机座及长度便能确定下来(几何尺寸)。

(3)电流的选择

静力矩一样的电机,由于电流参数不同,其运行特性差别很大,可依据矩频特性曲线图,判断电机的电流(参考驱动电源、及驱动电压)综上所述选择电机一般应遵循以下步骤,如图2.11所示。

 

图2.11电机选择流程

 

2.2.4电源电路的设计

图2.12中是本控制系统的电源电路,因电路中各个模块的要求的电压会有所不同,其工作原理是从变压器输出的直流电压经整流滤波后,输入到三端集成稳压块的输入端和接地端,即可从稳压块的输出端得到稳定的直流电压输出。

常见的三端固定输出稳压块有正电压输出的78系列和负电压输出的79系列,本电路采用三端集成稳压器7805,其封装形式有TO-3或TO-39,他们是以第三脚作为公共端,而TO-220或TO-92的封装是以第二脚作为公共端的。

7805的最大输出电流为500mA,最大输入电压为35V,当输出电压大于6V时,应在输入和输出的端接一保护二极管,可防止输入电压突然降低,输出电容对输出端放电引起稳压块的损坏。

 

图2.12系统中的电源电路

2.3控制电路原理图的制作

Protel99是ProtelTechnology公司1999年4月推出的全新的EDA软件,他不仅是以往版本的升级,更主要的是它融合了目前先进的新技术和新成果而使其功能和品质有了质的飞越,它是一个全面、集成、全32位的电路设计系统,它提供了在电路设计时从概念到成品过程中所需要的一切:

输入原理图设计,建立可编程逻辑器件,直接进行电路混合信号仿真,进行PCB设计和布线并保持电气连接和布线规则,检查信号完整性,生成一套加工文件。

原理图的制作步骤如下:

1.环境参数的设置

图纸的方向设为横向,大小用A4纸,其他的为缺省值。

2.元器件的载入和编辑

相关元件库加入元件管理器,并找出相应的元件放入原理图编辑区,按照设计要求修改元件属性,确定元件封装形式。

当元件库没有所需的元件的时候,进入SCH.LIB库编辑器,把自己建立的元件库加入元件库管理与其他系统库的使用方法一致。

3.原理图元件的布线

打开原理图绘图工具连接元件,其中包括导线的绘制;节点,电源和接地符号的放置;I/O端口,总线和网络的制作。

4.电路原理图设计的检查

电气设计ERC规则检查可以检查到电路中连接中的各种错误或者警告,根据其报告作出相应的检测直至没有错误为止;之后可以对元件的编号重新分配,使其更有顺序和规律性。

5.报表生成及原理图的输出

网络表是电路自动布线的灵魂,也是原理图设计软件SCH和印制电路板设计软件PCB之间的接口,它可以直接从电路图转化而得,也可以从已布线的电路中获得。

除此之外,还可以生成元件列表等其他报表,以便检查和核对,同时还可以直接进行修改和更新。

最后建立项目元件库文件,方便以后的调用。

最终获得的原理图如图2.13。

图2.13整个系统的整体原理图

3.软件设计

单片机应用系统是由硬件和软件共同完成一定任务的,只有两者紧密的结合协调一致才能组成高性能的应用系统,在设计过程中要相互适应,相互配合,达到最高性价比。

3.1软件设计思想

整个软件部分,可以分成三个模块,即主程序初始化模块,传感器信号检测模块,电机驱动模块。

对于信号的探测和控制字的输出,使用两个定时器中断,T0作为信号探测间隔时间控制,本系统将时间设为500ms左右,而控制字的输出间隔设为2ms。

3.1.1定时器中断

定时/计数器是一种可编程器件,在工作前必须将控制字写入工作方式寄存器和控制寄存器,即定时/计数器的初始化。

本系统中:

晶振的频率选用的是6MHZ,故其机器周期为12/6*10^6=2us,定时器T0的计数值为500多ms,但16的最长计时值为:

2us*2^16=131ms,故需四个这样的中断才采样传感器信号一次。

4*131ms=524ms,对于定时器T1定时为2ms,所以计数初值=2^16-2000/2us=0FC18H。

 

表3.1工作方式寄存器

D7

D6

D5

D4

D3

D2

D1

D0

GATE

C/T¯

M1

M0

GATE

C/T¯

M1

M0

定时器1

定时器0

表3.2定时/计数器工作方式

M1M0

工作方式

功能描述

00

01

10

11

工作方式0

工作方式1

工作方式2

工作方式3

13位计数器

16位计数器

自动再装入8位计数器

定时器0:

分成两个8位的计数器

定时器1:

停止计数

控制寄存器TCON如表3.3所示。

表3.3控制寄存器

地址

8FH

8EH

8DH

8CH

8BH

8AH

89H

88H

符号

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

功能

T1溢出标志

T1运行控制位

T0溢出标志

T0运行控制位

INT1中断请求标志

INT1触发选择位

INT0请求标志

INT0触发选择位

故在本系统中,需要运行T0,T1,设置TR0,TR1的值为1。

中断禁止和开放控制如表3.4所示。

表3.4中断控制

地址

AFH

ACH

ABH

AAH

A9H

A8H

符号

EA

ES

ET1

EX1

ET0

EXO

功能

CPU中断总允许位

串行口中断允许

T1中断允许位

外部中断1允许位

T0中断允许位

外部中断0允许位

在本系统中,首先要开放总中断,之后还要开放T0,T1中断,故其控制字为:

10001010B,对于多级中断要确定其优先级,这里是有传感器的检测信号来确定驱动信号的,因此设T0的优先级较高,即将优先级寄存器IP中的PT0置1。

3.1.2电机驱动模块

电机采用的是四相八拍的反应式步进电机,单电源的通电方式,八拍的其运转更为精细,步进角为0.9度,通电方式是A-AB-B-BC-C-CD-D-DA-A,设D为高位,通电的相为1,则控制字为:

0001-0011-0010-0110-0100-1100-1000-1001-0001,但在电路中电机驱动器,有将功能放大的作用外,实质上还是个反相器,即输出为:

1110-1100-1101-1001-1011-0011-0111-0110-1110,用十六进制表示为:

{0EH,0CH,0DH,09H,0BH,03H,07H,06H,0EH}。

因为左右轮是反向的,在对左右轮的控制上,输出也应该是反向的。

分别设R0,R1为正反方向的指针。

表3.5电机的控制字示意表

00H

01H

02H

03H

04H

05H

06H

07H

0EH

0CH

0DH

09H

0BH

03H

07H

06H

R0

R1

 

图3.1主程序流程图

 

图3.2定时器T0中断流程图

 

 

 

N

Y

 

 

图3.3定时器T1中断流程图

 

3.2源程序

;Robot.asm(基本部分)R2,R3保存左、右电机前一状态,R4,R5分别控制左、右转等运动方式,R6

;为计数;器P1.0,P1.1为传感器输入,P2口为驱动输出

;-------------------

ORG00H

LJMPBEGAN

ORG0BH

LJMPT0_INT

ORG1BH

LJMPT1_INT

BEGAN:

MOVSP,#40H

MOVTMOD,#00010001B;T0,T1均工作于方式1

MOVIE,#10001010B;开中断以及允许T0,T1中断

SETBPT0;T0有高优先权,T1用于2ms定时

MOVTL0,#00H

MOVTH0,#00H;T0最长计时2us*65536=131ms

SETBTR0

MOVTL1,#18H;T1计数初值=2^16-2000us/2us=FC18H

MOVTH1,#0FCH

SETBTR1

MOVA,#11111111B;设置P1.0,P1.1为光电传感器输入

MOVP1,A

MOVR6,#04H;次T0中断才检测一次传感器状态

;即(4*131=524ms)

MOVR4,#01H

MOVR5,#01H;默认前进

MOVR2,#0EH

MOVR3,#0EH;控制字的起始值

HERE:

AJMP$

;---------------------------------T1_INTERRUPT(控制车轮的驱动)

T1_INT:

PUSHACC

MOVTL1,#18H

MOVTH1,#0FCH

CJNER4,#00H,Lrun;R4!

=0(R4=1)左轮转动(不等转)

NEXT1:

CJNER5,#00H,Rrun;R5=1右轮转动

;-------------------------------------电机停转信号

NEXT2:

MOVA,R2;---以下为驱动输出P2口

ANLA,#0FH;屏蔽高4位

MOVR2,A

MOVA,R3

ANLA,#0FH

SWAPA

ORLA,R2

MOVP2,A;----R3高四位加R2低四位---->A

POPACC

RETI

Lrun:

MOVR0,#00H

MOVDPTR,#TAB;电机八种状态表的地址

NEXT11:

MOVA,R0

MOVCA,@A+DPTR

MOV20H,R2

CJNEA,20H,LOOP11;前一状态不是R2的值,继续查表

INCR0

MOVA,R0;----以下为下一状态-->R2

MOVCA,@A+DPTR

MOVR2,A;----

AJMPNEXT1

LOOP11:

INCR0

AJMPNEXT11

Rrun:

MOVR1,#08H

MOVDPTR,#TAB;电机八种状态表的地址

NEXT17:

MOVA,R1

MOVCA,@A+DPTR

MOV20H,R3

CJNEA,20H,LOOP17;前一状态不是R2的值,继续查表

DECR1

MOVA,R1;----以下为下一状态-->R2

MOVCA,@A+DPTR

MOVR3,A;----

AJMPNEXT2

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

当前位置:首页 > 总结汇报 > 学习总结

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

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