三节六拍电机.docx
《三节六拍电机.docx》由会员分享,可在线阅读,更多相关《三节六拍电机.docx(22页珍藏版)》请在冰点文库上搜索。
![三节六拍电机.docx](https://file1.bingdoc.com/fileroot1/2023-4/30/219d7b45-25f2-4dac-80c3-1666563c4a35/219d7b45-25f2-4dac-80c3-1666563c4a351.gif)
三节六拍电机
数理与信息工程学院
课程设计
题目:
用8051单片机实现步进电机控制
专业:
计算机科学与技术(专升本)
班级:
056班
姓名:
叶亿龙学号:
05191142
学院:
数理与信息工程学院
指导老师:
余水宝
成绩:
(2006.6)
目录
第1节引言……………………………………………………………………
(2)
1.1设计概述………………………………………………………………
(2)
1.2设计主要功能…………………………………………………………
(2)
第2节系统的硬件设计…………………………………………………………(3)
2.180C51单片计算机的组成原理…………………………………………(3)
2.1.1组成框图及内部总体结构……………………………………………(3)
2.1.2寄存器和存储器………………………………………………………(4)
2.1.3单片机各口及其负载能力、接口要求………………………………(5)
2.1.4MCS—51单片机的引脚功能…………………………………………(8)
2.2步进电机………………………………………………………………………(11)
2.2.1步进电机的控制原理………………………………………………(11)
2.2.2分类…………………………………………………………………(11)
2.2.2.1反应式步进电机………………………………………………(11)
2.2.2.2感应子式步进电机……………………………………………(12)
2.2.3步进电机的控制方式………………………………………………(12)
2.2.4步进电机的驱动方式………………………………………………(13)
2.2.5步进电机的单片机控制……………………………………………(14)
第3节系统的软件设计…………………………………………………………(15)
3.1双相三拍控制程序……………………………………………………………(16)
3.2三相六拍控制程序……………………………………………………………(17)
第4节结束……………………………………………………………………(18)
参考文献……………………………………………………………………………(19)
第1节引言
步进电机是一种将电脉冲转化为角位移的执行机构。
通俗一点讲:
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。
您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
由实验中进行过步进电机的控制实验。
经过一个学期的学习对8051单片机有了一定的了解,对实验思考题进行思考和多方资料的参考做了有8051单片机来实现步进电机转数控制。
1.1设计概述
结合对步进电机的了解,然后对步进电机的控制原理包括步进电机的控制方式和驱动方式作了系统的说明,采用8051单片机来控制步进电机,并给出了步进电机的双相三拍控制单片机控制和三相六拍的单片机控制的具体实现方法,用汇编程序进行控制运行。
1.2设计主要功能
使用单片机以软件方式驱动步进电机,通过编程方法,对步进电机的转速、往返转动的角度以及转动次数等进行控制使其在一定范围下运行,还可以方便灵活地控制步进电机的运行状态,以满足不同用户的要求。
图1步进电机
第2节系统的硬件设计
2.180C51单片计算机的组成原理
2.1.1组成框图及内部总体结构
80C5l内部组成方框图如图2所示,内部总体结构框图如图3所示。
图280C51单片机组成方框图
80C51主要包括算术/逻辑部件ALU、累加器A(有时也称ACC)、只读存储器ROM、随机存储器RAM、指令寄存器IR、程序计数据PC、定时器/计数据、I/O接口电路、程序状态寄存器PSW、寄存器组,此外,还有堆栈寄存器SP、数据指针寄存器DPTR等部件。
这些部件集成在一块芯片上,通过内部总线连接,构成完整的微型计算机。
下面按其部件功能分类予以介绍。
图380C51总体结构框图
2.1.2寄存器和存储器
微处理器中的寄存器是学习指令系统和程序设计中常会接触到的、寄存器是由触发器组成的,8位寄存器由8个触发器组成,16位寄存器由16个触发器组成。
MCS—51中的寄存器较多,大体可分为通用寄存器和专用寄存器两类。
图4微处理器存储器结构
MCS—51存储器配置:
微型计算机必须配置一定数量的存储器,但不同的微型计算机存储器的配置不同。
一种是程序与数据共用一个存储器,如图3(a)所示。
一般的通用计算机都采用此种形式。
另一种是将程序与数据分别放在两个存储器内,一个称程序存储器,另一个称数据存储器,如图3(b)所示。
MCS—5l单片机属于此类。
这是由单片机的应用特点所决定的,因为单片机往往是为某个特定对象服务的,这是与通用计算机不同的一个显著特点。
它的程序设计调试成功后,一般是固定不变的,因而程序(包括常数表)可以而且也应该一次性地永久放到单片机内。
这样不仅省去了每次开机后台程序重新装入步骤,还可以有效地防止围掉电和其它干扰而引起的程序丢失的错误。
MCS—51片内集成有一定容量的程序存储器(8031/80c31/8032除外)和数据存储器并具有较大的外部存储器扩展能力。
物理上,MCS—51有4个存储器空间:
片内程序存储器、片外程序存储器,片内数据存储器、片外数据存储器。
图5给出了访问程序存储器时,程序取指所涉及到的信号和时序。
如果程序存储器是外部的,则程序存储器读选PSEN一般是每个机器周期两次有效,如图5(a)所示,如果是访问外部数据存储器,如图5(b)所示,则要跳过两个PSEN,因为地址和数据总线正在用于访问数据存储器。
应该注意的是,数据存储器总线周期为程序存储器总线周期的2倍,图5给出了端口0和端口2所发送的地址ALE和PSEN的相对时序。
ALE用于将P0的低位地址字节锁存到地址锁存器中。
图5MCS-51执引外部程序存储器中指令码时的总线周期
2.1.3单片机各口及其负载能力、接口要求
MCS—51单片机有4个口,共32根I/O线。
所有4个端口都是双向口,每口都包含一个锁存器,即专用寄存器P0--P3,一个输出驱动器和输入缓冲器。
为了方便起见,我们把4个端口和其中的锁存器(即专用寄存器)都笼统地表示为P0—P3。
MCS-51在访问外部存储器时,地址由P0、P2口送出,数据则通过P1口传送,这时P0口是分时多路转换的双向总线。
无外部存储器的系统中,所有4个端口都可以作为准双向口使用。
P0口是8位双向三态输入/输出接口,如图6(a)所示。
P0口既可作地址/数据总
线使用.又可作通用I/O口用。
连接外部存储器时,P0口一方面作为8位数据输入/输出
口,另一方面用来输出外部存储器的低8位地址。
作输出口时,输出漏极开路,驱动NMOS电路时应外接上拉电阻;作输人口之前,应先向锁存器写1,使输出的两个场效应管均关断,引脚处于“浮空”状态,这样才能做到高阻输入,以保证输人数据的正确。
正是由于该端口用作I/O口,输入时应先写l,故称为准双向口。
当P0口作地址/数据总线使用时,就不能再把它当通用I/O口使用。
P1口是8位准双向口,作通用输入/输出口使用,如图6(b)所示。
在输出驱动器部分,Pl口有别于P0口,它接有内部上拉电阻。
P1口的每以一位可以独立地定义为输人或者输出,因此,P1口既可作为8位并行输入/输出口,又可作为8位输入/输出端。
CPU既可以对P1口进行字节操作,又可以进行位操作。
当作输入方式时,该位的锁存器必须顶写1。
P2口是8位准双向输入/输出接口,如图6(c)所示。
P2口可作通用I/0口使用与P1口相同。
当外接程序存储据时,P2口给出地址的高8位,此时不能用作通用,I/O口。
当外按数据存储器时,若RAM小于256KB,用R0、R1作间址寄存器,只需要P0口送出地址低8位,P2口可以用作通用I/O;若RAM大于256KB,必须用16位寄存器DPTR作间址寄存器.则P2口只能在一定限度内作一股I/O口使用。
P3口也是一个8位的准双向输入/输出接口,如图6(d)所示。
它具有多种功能。
一方面与P1口一样作为一般准双向输入/输出接口,具有字节操作和位操作二种工作方式;另一方面8条闲人/输出线可以独立地作为串行输入/输出口和其它控制信号线。
图6I/O一位锁存器和缓冲器结构
P0—P3端口的负载能力及接口要求
P0口的输出级与P1-P3口的输出级在结构上是不同的,因此它们的负载能力和接口要求也各不相同。
P0口的每一位输出可驱动8个LSTTL输入,但把它当通用口使用时,输出级是开漏电路,故用它驱动NM0S输入时需外接上拉电阻;把它当地址/数据总线时,则需接外部上拉电阻。
P1—P3口的输出级接有内部上拉电阻,它们的每一位输出可驱动4个LSTTL输入。
CHMOS端口只能提供几毫安的输出电流,故当作为输出口去驱动一个普通晶体管的基极时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。
I/O口的读一修改一写特性由图6可见,每个I/O端口均有两种读人方法,读锁存器和读引脚,并有相应的指令,那么如何区分读端口的指令是读锁存器还是读引脚呢?
读锁存器指令是从锁存器中读取数据,进行处理,并把处理以后的数据重新写入锁存器中这类指令称为“读一修改一写”指令。
当目的操作数是一个I/O端口或I/O端口的某一位时,这些指令是读锁存器而不是读引脚,即为“读一修改一写”指令,下面是一些“读一修改一写”指令。
ANL(逻辑与,例如ANLP1,A)
ORL(逻辑或,例如ORLP2,A)
XRL(逻辑异或,例如XRLP3,A)
JBC(若位=1,则转移并清零,例如JBCP1.1,LABEL)
CPL(取反位,例如CPL,P3.0)
INC(递增,例如INCP2)
DEC(递减,例如DECP2)
DJNZ(递减,若不等于0则转移,例如DJNZP3,LABEL)
MOVP1.7C(进位位送到端口P1的位7)
CLRP1.4(清零端口P1的位4)
SETBP1.2(置位端口P1的位2)
读引脚指令一般都是以I/O端口为原操作数的指令,执行读引脚指令时,打开三态门,输人口状态。
例如,读P1口的输入状态时,读引用指令为;MOVA,P1。
"读一修改一写"指令指向锁存器而不是引脚,其理由是为了避免可能误解引脚上的电平。
例如,端口位可能用于驱动晶体管的基极,在写1至该位时,晶体管导通,若CPU随后在引脚处而不是在锁存器处读端口位,则它将读回晶体管的基极电压,将其解释为逻辑0。
读该锁存器而不是引脚将返回正确值逻辑1。
2.1.4MCS—51单片机的引脚功能
MSC-51单片机采用40引脚的双列直插封装(DIP)方式。
图7为其引脚及逻辑符号图。
在40条引脚中,有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制引脚,3I/O引脚。
下面分别叙述各引脚的功能。
1、主电源引脚Vss和Vcc
Vss(20):
接地;Vcc(40):
正常操作时接十5V电源
2、外接晶体引脚XTAL1和XTAL2
当外接晶体振荡器时,XTAL1和XTAL2分别接在外接晶体两端,当采用外部时钟方式时,XTAL1接地,XTAL2接外来振荡信号。
图7MCS—51单片机引脚图及逻辑符号图
3、控制引脚
RST/Vpp(9):
当振荡器正常运行时,在此引脚上出现二个机器周期以上的高电平使单片机复位。
Vcc掉电期间,此引脚可接备用电源,以保持内部RAM的数据。
当Vcc下降掉到低于规定的水平,而VPD在其规定的电压范围内,VPD就向内部RAM提供备用电源。
ALE(30):
当访问外部存储器时,由单片机的P2口送出地址的高8位,P0口送出地址的低8位,数据也是通过P0口传送。
作为P0口某时选出的信息到底是低8位地址还是传送的数据,需要有一信号同步地进行分别。
当ALE信号(允许地址锁存)为高电平(有效).P0口送出低8位地址,通过ALE信号锁存低8位地址。
即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6,因此可用作对外输出的时钟。
但需注意:
当访问外部数据存储器(执行MOVX指令)时,将跳过一个ALE脉冲。
ALE端可驱动8个LSTTL输入。
PSEN(29):
程序存储器读选通信号,低电平有效。
MCS—51单片机可以外接程序存储器及数据存储器,它们的地址可以是重合的。
MCS—5l单片机是通过相应的控制信号来区别到底P2口和P0口送出的是程序存储器还是数据存储器地址。
从外部程序存储器取指令(或常数)期间,每个机器周期两次
有效,此时地址总线上送出地址为程序存储器地址;如果访问外部数据存储器,这两次有效的P5EN信号将不出现。
外部数据存储器是靠
(读)及(写)信号控制的。
同样可以驱动8个LSTTL输入。
EA/Vpp(31):
当EA保持高电平时,访问内部程序存储器(4K8),但当PC(程序计数器)值超过OFFFH时,将自动转向执行外部程序存储器内的程序当EA保持低电平时,则只访问外部程序存储器(从0000H地址开始),不管单片机内部是否有程序存储器。
对于EPROM型单片机,在EPROM编程期间,此引脚用于施加21V的编程电源(Vpp)。
输入输出引脚P0.0—P0.7(39—32):
P0口是一个漏极开路型准双向I/O口。
在访问外部存储器时,它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。
在E—
PROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1.0—P1.7(1—8):
P1口是带内部上拉电阻的8位双向I/O口。
在EPROM编程和程序验证时,它接收低8位地址。
P2.0—P2.7(21—28):
P2口是一个带内部上拉电阻的8位双向I/O口。
在访问外部存储器时,它送出高8位地址。
在对EPROM编程和程序验证期间,它接收高8位地址。
P3.0—P3.7(10—17):
P3口是一个带内部上拉电阻的8位双向I/O口。
在MCS—5l中,这8个引脚还兼有专用功能,这些功能见表1。
表1P3各口线与专用功能
这些专用功能的口线,在与外部设备接口、外接数据存储器等方面具有非常重要的作用。
2.2步进电机
2.2.1步进电机的控制原理
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
2.2.2分类
感应子式步进电机以相数可分为:
二相电机、三相电机、四相电机、五相电机等。
2.2.2.1反应式步进电机
下面先叙述三相反应式步进电机原理。
1、结构
电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开0、1/3て、2/3て,(相邻两轴子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)定转子的展开图如图8
图8定转子的展开图
2、旋转
如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。
如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。
如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3て,此时齿4与A偏移为1/3て对齐。
如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3て这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断低按A,B,C,A……通电,电机就每步(每脉冲)1/3て,向右旋转。
如按A,C,B,A……通电,电机就反转。
由此可见:
电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。
而方向由导电顺序决定。
不过,出于对力矩、平稳、噪音及减少角度等方面考虑。
往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3て改变为1/6て。
甚至于通过二相电流不同的组合,使其1/3て变为1/12て,1/24て,这就是电机细分驱动的基本理论依据。
不难推出:
电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m……(m-1)/m,1。
并且导电按一定的相序电机就能正反转被控制——这是步进电机旋转的物理条件。
3、力矩
电机一旦通电,在定转子间将产生磁场(磁通量Ф)当转子与定子错开一定角度产生力F与(dФ/dθ)成正比:
其磁通量Ф=Br*S,Br为磁密,S为导磁面积。
F与L*D*Br成正比:
L为铁芯有效长度,D为转子直径,Br=N·I/R,N·I为励磁绕阻安匝数(电流乘匝数)R为磁阻。
力矩=力*半径。
力矩与电机有效体积*安匝数*磁密成正比(只考虑线性状态)。
因此,电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。
2.2.2.2感应子式步进电机
1、特点
感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。
因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。
感应子式步进电机某种程度上可以看作是低速同步电机。
一个四相电机可以作四相运行,也可以作二相运行。
(必须采用双极电压驱动),而反应式电机则不能如此。
一个二相电机的内部绕组与四相电机完全一致,小功率电机一般直接接为二相,而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。
2.2.3步进电机的控制方式
如果通过单片机按顺序给绕组施加有序的脉冲电流,就可以控制电机的转动,从而实现数字一角度的转换。
转动的角度大小与施加的脉冲数成正比,转动的速度与脉冲频率成正比,而转动方向则与脉冲的顺序有关。
以三相步进电机为例,电流脉冲的施加共有3种方式。
(1)单相三拍方式(按单相绕组施加电流脉冲):
一A—B—C一正转;一A—C—B一反转。
(2)双相三拍方式(按双相绕组施加电流脉冲):
一AB—BC—CA一正转;一AC—CB—AB一反转。
(3)三相六拍方式(单相绕组和双相绕组交替施加电流脉冲):
一A—AB—B—BC—C—CA一正转;一A—AC—C—CB—B—BA一反转。
单相三拍方式的每一拍步进角为3°,三相六拍的步进角则为1.5°,因此,在三相六拍下,步进电机的运行反转平稳柔和,但在同样的运行角度与速度下,三相六拍驱动脉冲的频率需提高1倍,对驱动开关管的开关特性要求较高。
2.2.4步进电机的驱动方式
步进电机常用的驱动方式是全电压驱动,即在电机移步与锁步时都加载额定电压。
为了防止电机过流及改善驱动特性,需加限流电阻。
由于步进电机锁步时,限流电阻要消耗掉大量的功率,故限流电阻要有较大的功率容量,并且开关管也要有较高的负载能力。
步进电机的另一种驱动方式是高低压驱动,即在电机移步时,加额定或超过额定值的电压,以便在较大的电流驱动下,使电机快速移步;而在锁步时,则加低于额定值的电压,只让电机绕组流过锁步所需的电流值。
这样,既可以减少限流电阻的功率消耗,又可以提高电机的运行速度,但这种驱动方式的电路要复杂一些。
驱动脉冲的分配可以使用硬件方法,即用脉冲分配器实现。
现在,脉冲分配器已经标准化、芯片化,市场上可以买到。
但硬件方法结构复杂,成本也较高。
步进电机控制(包括控制脉冲的产生和分配)也可以使用软件方法,即用单片机实现,下面给出具体的使用单片机以软件方式驱动步进电机的实现方法。
图9驱动电源与单片机及电机接线图
说明:
CP接CPU脉冲信号(负信号,低电平有效)
OPTO接CPU+5V
FREE脱机,与CPU地线相接,驱动电源不工作
DIR方向控制,与CPU地线相接,电机反转
VCC直流电源正端
GND直流电源负端
A接电机引出线红线
A接电机引出线绿线
B接电机引出线黄线
B接电机引出线蓝线
步进电机转速越高,力距越大则要求电机的电流越大,驱动电源的电压越高。
电压对力矩影响如图10:
图10电压对力矩影响
2.2.5步进电机的单片机控制
步进电机控制的最大特点是开环控制,不需要反馈信号。
因为步进电机的运动不产生旋转量的误差累积。
由单片机实现的步进电机控制系统如图8所示。
图11单片机控制步进电机
第3节系统的软件设计
3.1双相三拍控制程序
图12控制系统方框图
步序
P1口输出状态
绕组
控制字
1
00000011
AB
03H
2
00000110
BC
06H
2
00000101
CA
05H
表2双相三拍控制模型
假定有如下工作单元和工作位定义:
R0为步进数寄存器;
PSW中,F0为方向标志位,F0=0正转,F0<>0反转。
参考程序如下:
BEGIN:
JBF0,;判正反转
L0OP2
LOOP1:
MOVA,#03H;第1拍控制码
MOVPl,A;
LCALLDELAY;延时
DJNZR0,DONE;
MOVA,#06H;第2拍控制码
MOVP1,A;
LCALLDELAY;
DJNZ,DONE;
MOVA,#05H;第3拍控制码
MOVPl,A;
LCALLDELAY;
DJNZR0,DONE;
AJMPLOOP;循环
LOOP2:
MOVA,#03H;反转
M0VPl,A;
LCALLDELAY;
DJNZRo,DONE;
MOVA,#05H;
M0VPl,A;
LCALLDELAY;
DJNZRo,DONE;
MOVA.#06H;
M0VPl,A;
LCALLDELAY;
DJNZRo,DONE;
AJMPLOOP2;循环
DONE:
RET;返回
3.2三相六拍控制程序
在双相三拍程序中,P1口输出的控制字是在程序中给定的。
而在三相六拍的控制中,由于控制字较多,故可以把这些控制字以表的形式预先存放在内部RAM单元中,运行程序时以查表的方式逐个取出并输出。
假定正反转控制字依次存放在以POINT为首地址的内部RAM中,表的内容如下:
POINT:
DB01H;正转A
DB03H;AB
DB0