基于单片机控制的步进电机调速系统的设计

更新时间:2024-04-10 01:44:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(论文)

目 录

基于单片机控制的步进电机调速系统的设计

中文摘要 ................................................................. 2 关键词 ................................................................... 2 ABSTRACT: ............................................... 错误!未定义书签。 KEY WORDS: .............................................. 错误!未定义书签。 前 言 .................................................................. 2 1.1步进电机的特点 ..................................................... 3 1.2步进电机的基本参数 ................................................. 5 1.3步进电机的技术参数 ................................................. 4 1.4 步进电机的分类 ..................................................... 7 1.5 步进电机详细调速原理: ............................................. 8 第2章 本次设计的基本要求 ................................................ 8 2.1基本要求 .......................................................... 8 第3章 方案的论证 ....................................................... 8 3.1 控制方式的确定 .................................................... 8 3.2 驱动方式的确定 ................................................... 10 3.3 驱动电路的选择 ................................................... 10 3.4 基本方案的确定 ................................................... 11 第4章 硬件电路的设计 .................................................. 12 4.1 单片机的选择 .................................................... 12 4.2 步进电机的选择 .................................................. 14 4.3 驱动电路的选择 .................................................. 19 4.4 显示电路与键盘的选择 ............................................ 22 4.5 反馈电路的选择 .................................................. 25 第5章 算法的设计: .................................................... 26 5.1 PID控制算法 ..................................................... 30 第6章 软件的设计 ..................................................... 31 6.1 显示子程序的设计 ................................................. 31 6.2 键盘子程序的设计 ................................................. 31 6.3 驱动程序流程的设计: ............................................. 33 6.4 正反转程序流程图 ................................................. 34 第7章 实验结果与分析 ................................................. 37 7.1 有关参数的计算与分析 ............................................. 37 7.2 理论与实际的分析 ................................................. 37 附 录 .................................................................. 39 第8章 总 结 ............................................................ 52 参考文献 ................................................ 错误!未定义书签。 致 谢 ................................................ 错误!未定义书签。

第1页 共53页

(论文)

基于单片机控制的步进电机调速系统的设计

中文摘要:

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。在本设计方案中采用AT89C51型单片机内部的定时器改变CP脉冲的频率从而实现对步进电机的转速进行控制,实现电机调速与正反转的功能。

关键词: 步进电机, 单片机, 调速系统

言步进电机最早是在1920年由英国人所开发。1950年后期晶体管的发明也逐渐

应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。

步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙

第2页 共53页

(论文)

磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。

现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。混合式步进电机是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛,也是本次细分驱动方案所选用的步进电机。第

1章 步进电机概述

1.1步进电机的特点:

1) 一般步进电机的精度为步进角的3-5%,且不累积。

2) 步进电机外表允许的温度高。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。

3)步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。

4)步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率应更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。

第3页 共53页

(论文)

1.2步进电机的工作原理:

步进电机是一种用电脉冲进行控制 ,将电脉冲信号转换成相位移的电机 ,其机械位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成正比 ,每一个脉冲信号可使步进电机旋转一个固定的角度.脉冲的数量决定了旋转的总角度 ,脉冲的频率决定了电机运转的速度.当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

1.3步进电机的技术参数: 1.3.1步进电机的基本参数 1) 空载启动频率:

即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,

电机不能正常启动,可能发生丢步或堵转。在有负载的情况下,启动频率更低。如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后一定加速度升到所希望的高频(电机转速从低速升到高速)。 2) 电机固有步距角:

它表示控制系统每发一个步进脉冲信号,电机所转动的角度。电机出厂时给出 了一个步距角的值,如86BYG250A型电机给出的值为0.9°/1.8°(表示半步工作 时为0.9°、整步工作时为1.8°),这个步距角可以称之为‘电机 固有步距角’, 它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。 3) 步进电机的相数:

是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。 电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的 为0.75°/1.5°、五相的为0.36°/0.72°。在没有细分驱动器时,用户主要靠选 择不同相数的步进电机来满足自己步距角的要求。如果使用细分驱动器,则‘相数’ 将变得没有意义,用户只需在驱动器上改变细分数,就可以改变步距角。 4) 保持转矩(HOLDING TORQUE):

是指步进电机通电但没有转动时,定子锁住转子的力矩。它是步进电机最重要 的参数之一,通常步进电机在低速时的力矩接近保持转矩。由于步进电机的输出力

第4页 共53页

(论文)

矩随速度的增大而不断衰减,输出功率也随速度的增大而变化,所以保持转矩就成 为了衡量步进电机最重要的参数之一。比如,当人们说2N.m的步进电机,在没有 特殊说明的情况下是指保持转矩为2N.m的步进电机。 1.3.2步进电机动态指标及术语:

1) 步距角精度: 步进电机每转过一个步距角的实际值与理论值的误差。用百分表示:

误差/步距角*100%。不同运行拍数其值不同, 四拍运行时应在5%之内,八拍运行时应在15%以内。 2) 失步:

电机运转时运转的步数,不等于理论上的步数。称之为失步。 3) 失调角:

转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的 误差,采用细分驱动是不能解决的。 4) 最大空载起动频率:

电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起 动的最大频率。 5) 最大空载的运行频率:

电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。 6) 运行矩频特性:

电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩特 性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。 如下 图1-1所示:

图1-1 力矩频率曲线

7) 电机的共振点:

步进电机均有固定的共振区域,二、四相感应子式步进电机的共振区一般在180-250pps之间(步距角1.8度)或在400pps左右(步距角为0.9度),电机驱

第5页 共53页

(论文)

动电压越高,电机电流越大,负载越轻,电机体积越小,则共振区向上偏移,反之亦然,为使电机输出电矩大,不失步和整个系统的噪音降低,一般工作点均应偏移共振区较多。

其它特性还有惯频特性、起动频率特性等。电机一旦选定,电机的静力矩确定而动态力矩却不然,电机的动态力矩取决于电机运行时的平均电流(而非静态流)平均电流越大,电机输出力矩越大,即电机的频率特性越硬。如下图1-2所示:

图1-2 力矩频率特性曲线

其中,曲线3电流最大、或电压最高;曲线1电流最小、或电压最低,曲线与负载的交点为负载的最大速度点。要使平均电流大,尽可能提高驱动电压,使采用小电感大电流的电机。

1.4步进电机的分类

1.4.1 步进电机分为三大类 :

1)反应式步进电机(VAriABle ReluCtAnCe,简称 VR)反应式步进电机的转子是由软磁材料制成的,转子中没有绕组。它的结构简单,成本距角可以做得很小,但动态性能较差。反应式步进电机有单段式和多段式两种类型。

2)永磁式步进电机(PermAnent MAgnet),简称 PM永磁式步进电机的转子是用永磁材料制成的,转子本身就是一个磁源。转子的极数和定子的极数相同,所以一般步进角比较大,它输出转矩大,动态性能好,消耗功率小(相比反应式),但启动运行频率较低,还需要正负脉冲供电。

3)混合式步进电机(HyBrid,简称 HB) 混合式步进电机综合了反应式和永磁式两者的优点。混合式与传统的反应式相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低 。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作

第6页 共53页

(论文)

用比较好,使其在运转过程中比较平稳、噪声低、低频振动小。这种电动机最初是作为一种低速驱动用的交流同步机设计的,后来发现如果各相绕组通以脉冲电流,这种电动机也能做步进增量运动。由于能够开环运行以及控制系统比较简单,因此这种电机在工业领域中得到广泛应用 。

1.4.2步进电机的内外结构

步进电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开如图1-3所示:

图1-3 定子展开图

电动机定子铁心和一般电机一样由硅钢片叠成,铁心内孔表面有开口槽。转子装有一个轴向磁化永磁体用以产生一个单向磁场。永磁体产生的磁通,在每一个气隙圆周上都是单方向通过气隙的,这时作用在气隙中的磁势是同极性的,称为单极磁势。而转子包括两段,一段经永磁体磁化成N 极,另一段磁化为S 极,每段转子齿以一个齿距间隔均匀分布,但两段转子的齿相互错开1/2 个转子齿距。A) N 极段截面图 B) S 极段截面图如图1-4所示:

A) N 极段截面图 B) S 极段截面图

图1-4 三相混合式步进电机截面图

第7页 共53页

(论文)

1.5 步进电机详细调速原理:

步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电的调速。具体的延时时间可以通过软件来实现。

这就需要采用单片机对步进电机进行加减速控制,实际上就是改变输出脉冲的时间间隔,单片机控制步进电机加减法运转可实现的方法有软件和硬件两种 ,软件方法指的是依靠延时程序来改变脉冲输出的频率,其中延时的长短是动态的,软件法在电机控制中, 要不停地产生控制脉冲, 占用了大量的CPU 时间,使单片机无法同时进行其他工作;硬件方法是依靠单片机内部的定时器来实现的,在每次进入定时中断后,改变定时常数,从而升速时使脉冲频率逐渐增大,减速时使脉冲频率逐渐减小,这种方法占用CPU 时间较少,在各种单片机中都能实现,是一种比较实用的调速方法。

第2章本次设计的基本要求

研究步进电机的特性、工作原理、及其具体的调速原理。

2.1基本要求

步进电机采用三相步进电机,功率为1W。 调速范围为0到1000r/min 最高转速时,精度2%

要基本上完成毕业设计,作到步进电机能精确的调速,正反转、并能在起动时不失步,基本上没有振荡,能完成完整的硬件电路图,软件设计。

第3章 方案的论证

3.1 控制方式的确定

步进电机控制虽然是一个比较精确的,步进电机开环控制系统具有成本低、简单、控制方便等优点,在采用单片机的步进电机开环系统中,控制系统的CP脉冲的频率或者换向周期实际上就是控制步进电机的运行速度。系统可用两种办法实现步进电机的速度控制。一种是延时,一种是定时。延时方法是在每次换向之后调用一个延时子程序,待延时结束后再次执行换向,这样周而复始就可发出一定频率的CP脉冲或换向周期。延时子程序的延时时间与换向程序所用的时间和,就是CP脉冲的周期,该方法简单,

第8页 共53页

(论文)

占用资源少,全部由软件实现,调用不同的子程序可以实现不同速度的运行。但占用CPU时间长,不能在运行时处理其他工作。因此只适合较简单的控制过程。定时方法是利用单片机系统中的定时器定时功能产生任意周期的定时信号,从而可方便的控制系统输出CP脉冲的周期。当定时器启动后,定时器从装载的初值开始对系统及其周期进行加计数,当定时器溢出时,定时器产生中断,系统转去执行定时中断子程序。将电机换向子程序放在定时中断服务程序中,定时中断一次,电机换向一次,从而实现电机的速度控制。由于从定时器装载完重新启动开始至定时器申请中断止,有一定的时间间隔,造成定时时间增加,为了减少这种定时误差,实现精确定时,要对重装的计数初值作适当的调整。调整的重装初值主要考虑两个因素一是中断响应所需的时间。二是重装初值指令所占用的时间,包括在重装初值前中断服务程序重的其他指令因。综合这两个因素后,重装计数初值的修正量取8个机器周期,即要使定时时间缩短8个机器周期。用定时中断方式来控制电动机变速时,实际上是不断改变定时器装载值的大小。在控制过程中,采用离散办法来逼近理想的升降速曲线。为了减少每步计算装载值的时间,系统设计时就把各离散点的速度所需的装载值固化在系统的ROM中,系统在运行中用查表法查出所需的装载值,这样可大幅度减少占用CPU的时间,提高系统的响应速度愿大多数步进电机运动控制系统都运行在开环状态下,因为成本较低,并可提供运动控制技术固有的位置控制,无须反馈。但是,在某些应用中,需要更多的可靠性、安全性或产品质量的保证,因此,闭环控制也是一种选择.以下是一些实现步进电机闭环控制的方法:

1) 步进确认,这是最简单的位移控制,使用一个低值的光学编码器计算步进移动的数量。一个简单的回路与指令校验的步进电机比较,验证步进电机移动到预计的位置;

2) 反电动势, 一种无传感器的检测方法,使用步进电机的反电动势(eleCtromotiveforCe,emf)信号,测量和控制速度。当反电动势电压降至监测探测水平时,闭环控制转为标准开环,完成最终的位移移动;

3)全伺服控制,指全时间的使用反馈设备,用于步进电机--编码器、解码器、或其它反馈传感器上,从而更为精确地控制步进电机位移和转矩。

其它的方法包括各种不同的反电动势控制电机参数测量和软件技术,一些制造企业都会使用这些方法。这里,步进驱动监控和测量电机线圈,使用电压额电流信息提高步进电机控制。正阻尼使用这一信息阻挡振动的速度,产生更多的可用的转矩输出,降低转矩的机械振动损耗。无编码器安装监测采用信息检测同步速度的损耗。

传统步进电机控制通常采用反馈设备和非传感方法,是有效的实现带有安全需求、

第9页 共53页

(论文)

危险状况或高精确度要求的运动应用的方法。

大多数基于步进电机的系统,一般都运行在开环状态下,这样可提供一个低成本的方案。 事实上,步进系统可提高位移控制的的性能,且不需要反馈。但是,当步进电机在开环时运行,在命令步幅和实际步幅之间会有同步损耗的可能。

闭环控制,是传统步进控制的一个部分,能有效地提供更高地可靠性、安全性或产品质量。在这些步进系统中,反馈设备或间接参数传感方法的闭环能进行校正或控制失步、监测电机停滞,以及确保更大的可用转矩输出。近期,步进电机的闭环控制(CLC)还能帮助执行智能分布运动架构。然而,开环操作会有失步的风险,这将产生定位失误。但与伺服系统中使用的编码器相比,闭环步进电机采用的编码器成本更低。故选择闭环控制。

3.2 驱动方式的确定

并于步进电机的驱动一般有两种方法,一种是通过CPU直接来驱动,这种方法一般不宜采用,因为CPU的输出电流脉冲是特别小的它不能足以让步进电机的转动;别一种是通过CPU来间接驱动,就是把从CPU输出的信号进行放大,然后直接驱动或是再通过光电隔离间接来驱动步进电机,这种方法比较安全可靠。固本次设计应采用CPU间接驱动步进电机。用编码器还的测速发电机作为转速测量工具,因为选择了闭环控制,就必须有反馈元件,反馈元件一般有两种,一种是采用同轴的测速发电机,把步进电机的转速反馈回来,然后通过显示器显示出来并对步进电机进行调节;别一种是通过光同轴的电编码器把步进电机的转速反馈回来对步进电机进行调节;两者相比,后者的设计比较简单,价格便宜,安全可靠,污染少。固一般采用后者,用光电骗码器作为反馈元件。

3.3 驱动电路的选择

步进电机的驱动电机有多种,但最为常用的就是单电压驱动、双电压驱动、斩波驱动、细分控制驱动等。单电压驱动是步进电机控制中最为简单的一种驱动电路,它在本质上是一个单间的反相器。它的最大特点是结构简单,因它的工作效率低,特别是在高频下更显的突出。它的外接电阻R要消耗相当一部分的热量,这样就会影响电路的稳定性所以此种驱动方式一般只用在小功率的步进电机的驱动电路中。双电压驱动是电路一般采用两种电源电压来驱动,因这两个电源分别是一个为高压一个为低压,因此也称为高低压驱动电路。双电压驱动电路的缺点是在高低压连接处电流出现谷点,这样必然引起力矩在谷点处下降。不宜于电机的正常运行。对于斩波电路驱动则可以克服这种缺点,

第10页 共53页

(论文)

并且还可以提高步进电机的效率。所以从提高效率来看这是一种很好的驱动电路,它可以用较高的电源电压,同时无需外接电阻来限定期额定电流和减少时间常数。但由于其波形顶部呈现锯齿形波动,所以会产生较大的电磁噪声。细分驱动是用脉冲电压来供电的,对于一个电压脉冲,转子就可以转动一步,一般会根据电压脉冲的分配方式,步进电机各相绕阻会轮流切换,固可以使步进电机的转子旋转。细分控制的电路一般分为两类,一类是采用线性模拟功率放大器的方法获得阶梯形电流,这种方法简单,但效率低。别一种是用单片机采用数子脉宽调制的方法获得阶梯电流,这种方法需要复杂的计算可使细分后的步距角一致。但因本次设计对步进电机的精度要求比较高转速的调节范围比较广,固应选用驱动芯片8713来驱动,并通过软件来实现步进电机的调速。

3.4 基本方案的确定

因本次设计的要求,选用三相三拍步进电机,单片机选用89C51作为控制器。选取用8279来驱动显示和键盘。选用8713作为步进电机的驱动芯片并通过光电耦合来驱动步进电机。然后由于步进电机同轴的光电编码器作为反馈元件,并把反馈回的信号经CPU处理后再由显示器显示出来。但由键盘输入的速度数值了得通过显示器来显示,固本次设计要两排显示,一排来显示给定的转速一排来显示实际的转速。系统原理框图如3-1所示:

第11页 共53页

(论文)

图3-1 系统原理框图

第4章 硬件电路的设计

4.1 单片机的选择

本次设计以CPU选用89C5l作为步进电机的控制芯片.89C51的结构简单并可以在编程器上实现闪烁式的电擦写达几万次以上.使用方便等优点,而且完全兼容MCS5l系列单片机的所有功能。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FAlsh ProgrAmmABle And ErAsABle ReAd Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 4.1.1单片机的引脚功能: 1)VCC(40):电源+5V。

2)VSS(20):接地,也就是GND。 3)XTL1(19)和XTL2(18):振荡电路。

单片机是一种时序电路,必须有脉冲信号才能工作,在它的内部有一个时钟产生电路,有两种振荡方式,一种是内部振荡方式,只要接上两个电容和一个晶振即可;另一种是外部振荡方式,采用外部振荡方式时,需在XTL2上加外部时钟信号(详细的内容将在以后的课程中专门介绍)。

4)PSEN(29):片外ROM选通信号,低电平有效。

5)ALE/PROG(30):地址锁存信号输出端/EPROM编程脉冲输入端。 6)RST/VPD(9):复位信号输入端/备用电源输入端。 7

EA/VPP

31

/

ROM

择 端 8)P0口(39-32):双向I/O口。9.P1口(1-8):准双向通用I/0口。 9)P2口(21-28):准双向I/0口。原理图如4-1所示:

第12页 共53页

(论文)

图4-1 AT89C51的引脚图

4.1.2 主要特性:

与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:全静态工作:0Hz-24Hz三级程序存储器锁定、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源 、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路 1) 振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2) 芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

第13页 共53页

(论文)

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

4.2 步进电机的选择

因本次设计的要求,步进电机的应选用三相三拍的步进电机,关于步进电机的具体说明如下;

反应式步进电动机是利用凸极转子交轴磁阻与直轴磁阻之差所产生的反应转矩而转动的所以也称为磁阻式步进电动机现以一个最简单的三相反应式步进电动机为例说明其工作原理.

图4-2是一台三相反应式步进电动机的原理图定子铁芯为凸极式共有三对六个磁极每两个相对的磁极上绕有一相控制绕组转子用软磁性材料制成也是凸极结构只有四个齿齿宽等于定子的极靴宽下面通过几种基本的控制方式来说明其工作原理.

图4-2 三相反应式步进电动机的原理图

4.2.1 三相单三拍通电方式

当A 相控制绕组通电,其余两相均不通电,电机内建立以定子A 相极为轴线的磁场.由于磁通具有力图走磁阻最小路径的特点,使转子齿1, 3 的轴线与定子A 相极轴线对齐,如图4-4 (A)所示.若A 相控制绕组断电,B 相控制绕组通电时,转子在反应转矩的作用下,逆时针方向转过30,°使转子齿2,4 的轴线与定子B 相极轴线对齐,即转子走了一步,如图4-4(B)所示, 若再断开B相,使C相控制绕组通电,转子又转过30° 使转子齿1,3 的轴线与定子C相极轴线对齐,如图4-4(C)所示.如此按A-B–C-A 的顺序轮流通

第14页 共53页

(论文)

电,转子就会一步一步地按逆时针方向转动,其转速取决于各相控制绕组通电与断电的频率,旋转方向取决于控制绕组轮流通电的顺序若按A-C-B-A 的顺序通电,则电机按顺时针反方向转动.

上述通电方式称为三相单三拍运行,”三相”是指三相步进电动机,”单”是指每次只有一相控制绕组通电,控制绕组每改变一次通电方式称为一拍,三拍是指经过三次改变通电方式为一个循环,我们称每一拍转子转过的角度为步距角.三相单三拍运行时的步距角为30度.其原理图如4-2所示:

图4-2-1定转子展开图(A相绕组通电)

4.2.2 三相双三拍通电方式

控制绕组的通电方式为AB-BC-CA-AB 或AB-CA-BC-AB 每拍同时有两相绕组通电三拍为一个循环,当A B 两相控制绕组同时通电时转子齿的位置应同时考虑到两对定子极的作用,只有A 相极和B 相极对转子齿所产生的磁拉力相平衡才是转子的平衡位置如4-2-2 B 所示,可见双三拍运行时的步距角仍是30°,但双三拍运行时每一拍总有一相绕组持续通电,例如由A B 两相通电变为B C 两相通电时,B 相保持持续通电状态C 相磁拉力图使转子逆时针方向转动,而B 相磁拉力却起有阻止转子继续向前转动的作用。即起到一定的电磁阻尼作用所以电机工作比较平稳,而在三相单三拍运行时由于没有这种阻尼作用,所以转子达到新的平衡位置容易产生振荡稳定性不如双三拍运行方式。三相双三拍运行方式AB相与BC相导通的结构如图4-2-2所示:

第15页 共53页

(论文)

(A)AB 相导通 (B)BC 相导通 图4-2-2 三相双三拍运行方式

在分析步进电动机动态运行时,不仅要知道某一相控制绕组通电时的矩角特性,而且要知道整个运行过程中各相控制绕组通电状态下的矩角特性,即所谓矩角特性族以三相单三拍的通电方式为例,若将失调角θ的坐标轴统一取在A 相磁极的轴线上,显然A 相通电时矩角特性如图4-3中曲线A 所示稳定平衡点为O,点B 相通电时转子转过1/3 齿距相当于转过2π/3 电角度,它的稳4-3中曲线C, 这三条曲线就构成了三相单三拍通电方式时的矩角特性族总之矩角特性族中的每一条曲线依次错开一个用电角度表示的步矩角?SE

?SE?Zr?s?2?N

(4-1)

同理可得到三相单双六拍通电方式时的矩角特性族如图4-4与4-5 所示:

图4-3三拍时的矩角特性族

第16页 共53页

(论文)

图4-4六拍时的矩角特性族

步进电机的动态特性是指步进电动机在运行过程中的特性它直接影响系统工作的可靠性和系统的快速反应。 1)单步运行状态

单步运行状态是指步进电动机在一相或多相控制绕组通电状态下仅改变一次通电状态时的运行方式. 2)动稳定区

当A 相控制绕组通电时矩角特性如图1-12中的曲线A 所示,若步进电动机为理想空载则转子处于稳定平衡点?A处,如果将A相通电改变为B相通电,那么矩角特性应向前移动一个步距角?SE变为曲线B,OA点为新的稳定平衡点由于在改变通电状态的初瞬转子位置来不及改变还处于θ=0的位置,对应的电磁转矩却由O 突变为曲CT线B上的C 点,电机在该转矩的作用下转子向新的稳定平衡位置,移动直至到达OB点为止对应它的静稳定区为止,(-π+?SE )<θ <(π+?SE), 即改变通电状态的瞬间只要转子在这个区域内就能趋向新的稳定平衡位置,因此把后一个通电相的静稳定区称为前一个通电相的动稳定区,把初始稳定平衡点OA 与动稳定区的边界点A 之间的距离称为稳定裕度,拍数越多步距角越小,动稳定区就越接近静稳定区稳定裕度越大,运行的稳定性越好转子从原来的稳定平衡点到达新的稳定平衡点的时间越短,能够响应的频率也就越高.原理图如4-5所示:

第17页 共53页

(论文)

4-5 稳定响应曲线

3)最大负载能力

步进电动机

带恒定负载时负载转矩为TL1,TL1?Tst若A 相控制绕组通电则转子的稳定平衡位置为图1-13 A中曲线A 上的OA点,这一点的电磁转矩正好与负载转矩相平衡,当输入一个控制脉冲信号通电状态由A相改变为B 相,矩角特性变为曲线B 在改变通电状态的瞬间

''TT电机产生的电磁转矩A大于负载转矩L,电机在该转矩的作用下转过一个步距角到达新

的稳定平衡点OB′,如图4-6所示:

(a)

第18页 共53页

(论文)

?b?

图4-6 最大负载转矩的确定

?a? TST?TL1 ?b? TST?TL2

\如果负载转矩增大为TL2,且TL2?TST,如图4-14(B)则初始平衡位置为OA点,但

在改变通电状态的瞬间电机产生电磁转矩为TA,由于TA?TL2,转子不能到达新的稳定平衡位置点OB,而是向失调角θ减小的方向滑动,电机不能带动负载作步进运行,这时步进电动机实际上是处于失控状态,由此可见只有负载转矩小于相邻两个矩角特性交点S 所对应的电磁转矩TST才能保证电机正常的步进运行,把TST称为最大负载转矩也称为启动转矩当然它比最大静转矩Tmax可求得启动转矩公式4-2-1。

\''????SQTST?Tmaxsin??2? ????TmaxcosSQ?2? (4-2-1

4.3驱动电路的选择

因从CPU输出的脉冲信号特别小,固应先经过PWM8713脉冲分配器对脉冲进行分配并经过放大然后再经过光耦驱动来驱动步进进电机。具体的连接图如4-3-1所示:

第19页 共53页

(论文)

图4-3-1 步进电机驱动电路图

PWM8713芯片介绍如下;

PMM8713是日本三洋电机公司生产的步进电机脉冲分配器。该器件采用DIP 16封装,适用于二相或四相步进电机。PMM8713在控制二相或四相步进电机时都可选择三种励磁方式(1相励磁,2相励磁,3相励磁三种励磁方式之一),每相最小的拉电流和灌电流为20mA,它不但可满足后级功率放大器的要求,而且在所有输人端上均内嵌有施密特触发电路,抗干扰能力很强,其原理框图如图1所示,表1所列是PMM8713的引脚功能。在PMM8713的内部电路中,时钟选通部分用于设定步进电机的正反转脉冲输入法。PMM8713有两种脉冲输人法:双脉冲输人法和单脉冲输人法。采用双脉冲输人法的连线方式如图4-3-2(A)所示,其中CPI CA两端分别输人步进电机正反转的控制脉冲。当采用单脉冲输人法时,其连线方式如图2所示;

4-3-2

第20页 共53页

(论文)

8713

图4-3-3 PWM8713的引脚图

PMM8713 功能介绍

PMM8713 是专用的步进电机的步进脉冲产生芯片,它适用于三相和四相步进电机。如图1 所示PMM8713 的引脚,Cu 为加脉冲输入端,它使步进电机正转,Cp 为减脉冲输入端,它使步进电机反转,Ck

为脉冲输入端,当脉冲加入此引脚时,Cu 和Cp 应接地,正反转由U/ D 的电平控制,EA 和EB 用来选择励磁方式的,可以选择的方式有一相励磁、二相励磁和一二相励磁,ΦC 用来选择三、四相步进电机,Vss 为芯片工作地,R 为芯片复位端,Φ4~Φ1 为四相步进

脉冲输出端,Φ3~Φ1 为三相步进脉冲输出端,Em 为励磁监视端,Co 为输入脉冲监视端,VDD为芯片的工作电源( + 4~ + 18V).其具体的原理框图如4-3-4所示:

图4-3-4 驱动电路框图

第21页 共53页

(论文)

4.4 显示电路与键盘的选择

显示电路的用8279芯片来驱动,8279芯片分别接两排显示器,每排为4位显示,分别用来显示步进电机的实际转速与给定转速。 8279与CPU的连接框图如4-11所示:

图4-4 8279与CPU的接线图

8279芯片的具体介绍如下;

1) DB0~DB7:双向数据总线。在CPU于827数 据与命令的传送。 2) CLK:8279的系统时钟,100KHZ为最佳选择。

3) RESET:复位输入线,高电平有效。当 RESET 输入端出现高电平时,8279被初始复位。

4) /CS:片选信号。低电平使能,使能时可将命令写入8279或读取8279的数据。 5) A0:用于区分信息的特性。当A0=1时,CPU向8279写入命令或读取8279的状态;当A0为0时,读写一数据。

6) /RD:读取控制线。/RD=0,8279会送数据至外部总线。 7) /WR:写入控制线。/WR=0,8279会从外部总线捕捉数据。

8) IRQ:中断请求输出线,高电平有效。当FIFO RAM 缓冲器中存有键盘上闭合键的键码时,IRQ线升高,向CPU请求中断,当CPU将缓冲器中的输入键数的数据全部读取时,中断请求线下降为低电平。

9) L0~SL3:扫描输出线,用于对键盘显示器扫 描。可以是编码模式(16对1)或译码模式(4对1)。

第22页 共53页

(论文)

10) ~RL7:反馈输入线,由内部拉高电阻拉成高电平,也可由键盘上按键拉成低电平。 11) FT、CNTL/STB :控制键输入线,由内部拉高电 阻拉成高电平,也可由外部控制按键拉成低电平。

12) TB0~3、OUTA0~3:显示段数据输出线,可分别作为两个半字节输出,也可作为8位段数据输出口,此时OUTB0为最低位, OUTA3位最高位。

13) 消隐输出线,低电平有效。当显示器切换时或使用消隐命令时,将显示消隐。具体芯片理框图如4-4-1所示:

图4-4-1 8279的引脚图

键盘的连接一般有两种方式,一种是独立式键盘;一种是行列式键盘。独立式键盘就是各个键相互独立,每个键盘接一根输入线,通过检测输入线的电平状态来确定那个键按下。这种键盘的输入线较多,结构复杂,一般适用于按键较少操作速度较高的场合。而行列式键盘是由行和列线交义组成,一般用于按键较多的场合。本次设计一共用9个

第23页 共53页

(论文)

键因此采用行列式键盘。具体的原理图如4-4-2所示:

图4-4-2 键盘连接图

显示电路的选择

显示电路选用两排LED显示,每排分别为四位。能满足设计的要求,转速范围为0至1000。LED显示电路有两种接法,一种为共阴极,一种为共阳极。原理图如4-14所示:

第24页 共53页

(论文)

图4-4-3 显示器接线图

4.5 反馈电路的选择

应选用光电编码器作为反馈元件,光电编码器与步进电机是同轴的输出经过放大送到计算机。并通过显示器显示出步进电机的实际转速。关于光电编码器的说明如下; 4.5.1光电编码器原理

光电编码器,是一种通过光电转换将位移量转换成脉冲或数字量的传感器。这是目前应用最多的传感器,光电编码器是由光栅盘和光电检测装置组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,电动机旋转时,光栅盘与电动机同速旋转,经发光二极管等电子元件组成的检测装置检测输出若干脉冲信号,其原理示意图如图1所示;通过计算每秒光电编码器输出脉冲的个数就能反映当前电动机的转速。

图4-5-1 光电编码器的原理图

根据检测原理,编码器可分为光学式、磁式、感应式和电容式。根据其刻度方法及信号输出形式,可分为增量式、绝对式以及混合式三种。 本次设计用绝对式编码器其原理如下:

绝对编码器是直接输出数字量的传感器,它的圆形码盘上沿径向有若干同心磁道,每条道上由透光和不透光的扇形区相间组成,相邻码道的扇区数目是双倍关系,码盘上的码道数就是它的二进制数码的位数,在码盘的一侧是光源,另一侧对应每一码道有一光敏元件;当码盘处于不同位置时,各光敏元件根据受光照与否转换出相应的电平信号,形成二进制数。这种编码器的特点是不要计数器,在转轴的任意位置都可读出一个固定的与位置相对应的数字码。显然,码道越多,分辨率就越高,对于一个具有 N位二进制分辨率的编码器,其码盘必须有N条码道。目前国内已有16位的绝对编码器产品。绝对式编码器是利用自然二进制或循环二进制(格雷码)方式进行光电转换的。绝对式编

第25页 共53页

(论文)

码器与增量式编码器不同之处在于圆盘上透光、不透光的线条图形,绝对编码器可有若干编码,根据读出码盘上的编码,检测绝对位置。编码的设计可采用二进制码、循环码、二进制补码等。它的特点如下: 1) 可以直接读出角度坐标的绝对值; 2) 没有累积误差;

3) 电源切除后位置信息不会丢失。但是分辨率是由二进制的位数来决定的,也就是说精度取决于位数,目前有10位、14位等多种。

第5章 算法的设计:

算法对于步进电机调速系统设计是一个相当重在的环节,因为只有确定了算法之后才能对步进电机的速度进行准确的控制,并时也能达到精确的调速目的。同时算法也是编写软件的前提与基础。控制算法有多种,常用的两种算法是PID和模糊控制算法。

PID 控制与模糊控制是两种常用的控制方法,但它们还存在一些不足,如一般PID 控制容易产生超调、模糊控制的稳态精度不高,在这两种控制方法基础上进行改进,可产生多种更好的控制方法。本文采用的复合PID 控制算法和带动态补偿的模糊控制算法克服了以上缺陷,取得了较好的实验效果。

5.1 PID 控制算法

PID 调节的实质就是根据输入的偏差值,按比例、积分、微分的函数关系,进行运算,将其运算结果用以输出控制,将基本PID 算式离散化可得到位置型PID 控制算法,对位置型PID 进行变换可得到增量型PID 控制算法。对控制精度要求较高的系统一般采用位置型算法,而在以步进电机或多圈电位器做执行器件的系统中,则采用增量型算法。

PID是一种工业控制过程中应用较为广泛的一种控制算法,它具有原理简单,易于实现,稳定性好,适用范围广,控制参数易于整定等优点。PID控制不需了解被控对象的数学模型,只要根据经验调整控制器参数 ,便可获得满意的结果。其不足之处是对被控参数的变化比较敏感。但是通过软件编程方法实现PID控制 ,可以灵活地调整参数。,尽管近年来出现了很多先进的控制算法,但PID控制仍然以其独有的特点在工业控制过程中具有相当大的比重,且控制效果相当令人满意。

连续PID控制器也称比例-积分-微分控制器,即过程控制是按误差的比例

第26页 共53页

(论文)

(P-ProportionAl)、积分(I-IntegrAl)和微分(D-DerivAtive)对系统进行控制,其系统原理框图如图5-1所示:

图5-1 PID的原理框图

它的控制规律的数学模型如下:

?1u?t??kp?e?t??TI??t0e?t?dt?Tdde?t???dt? (5-1)

或写成传递函数形式:

G?s??

??U?s?1??KP?1??Tsd??E?s??Tis? (5-2)

式中,e(t):调节器输入函数,即给定量与输出量的偏u(t):调节器输出函数。

Kp:比例系数; T:积分时间常数; T:微分时间常数。

将式(2-1)展开,调节器输出函数可分成比例部分、积分部分和微分部分,它们分别是:

⑴ 比例部分 比例部分的数学表达式是kpe?t?,p在比例部分中,Kp是比例系数,Kp

第27页 共53页

(论文)

越大,可以使系统的过渡过程越快,迅速消除静误差;但Kp过大,易使系统超调,产生振荡,导致不稳定。因此,此比例系数应选择合适,才能达到使系统的过渡过程时间短而稳定的效果。 图为比例调节器

u?KPe?u0

(5-3)

比例调节器

其中: U控制器的输出

KP比例系数 E 调节器输入偏差 U0控制量的基准

比例作用:迅速反应误差,但不能消除稳态误差,过大容易引起不稳定

KP⑵ 积分部分 积分部分的数学表达式是

TI?e?t?dt从它的数学表达式可以看出,要

0t是系统误差存在,控制作用就会不断增

加或减少,只有e(t)=0时,它的积分才是一个不变的常数,控制作用也就不会改变,积分部分的作用是消除系统误差。

TI较大,积分时间常数TI的选择对积分部分的作用影响很大。积分作用较弱,这时,系统消除误差所需的时间会加长,调节过程慢;TI较小,积分作用增强,这时可能使系统过渡过程产生振荡,但可以较快地消除误差。

第28页 共53页

(论文)

⑶ 微分部分

kpde?t?微分部分的数学表达式是.

TDd?t?微分部分的作用主要是抵消误差的变化,作用强弱由微分时间常数T确定。TD越大,则抑制误差e(t)变化的作用越强,但易于使系统产生振荡; TD越小,抵消误差的作用越弱。因而,微分时间常数要选择合适,使系统尽快稳定。 比例积分微分调节器如图5-2所示:

图5-2

但PID算法有两种分别为: 位置式、增量式. 位置式PID控制算法 u?K?1tde?P?e??T?0edt?TDdt??u?0I ?tk oe(t)dt?T?ejj?0 de(t)ek?ek?1(5-5) dt?T由(5-5)与(5-6)式可以推出下式

u[eT (5-6)

k?KPk?T?kej?TDIT(ek?ek?1)]?u0j?0

位置式控制算法提供执行机构的位置uk,需要累计Ek.

第29页 共53页

(5-4) (论文)

增量式PID控制算法

Tuk?KP[ek?TIuk?1?KP[ek?1??ej?j?0kTD(ek?ek?1)]?u0T(5-8)

TTk?1ej?D(ek?1?ek?2)]?u0?TIj?0T (5-9)

由(1)与(2)式可推出下式:

u?u?K[e?e?Te?TD(e?2e?e)]?uk?kk?1Pkk?1kkk?1k?2TIT(5-10)

增量式控制算法提供执行机构的增量Δuk只需要保持.现时以前3个时刻的偏差值即可.增量式算法不需做累加,计算误差和计算精度问题对控制量的计算影响较小;位置式算法要用到过去偏差的累加值,容易产生较大的累计误差。

控制从手动切换到自动时,位置式算法必须先将计算机的输出值置为原始值uo时,才能保证无冲击切换;增量式算法与原始值无关,易于实现手动到自动的无冲击切换。

在实际应用中,应根据被控对象的实际情况加以选择。一般认为,在以闸管或伺服电机作为执行器件,或对控制精度要求较高的系统中,应当采用位置式算法;而在以步进电机或多圈电位器作执行器件的系统中,则应采用增量式算法。

因本次设计对步进电机的调速范围与控制精确的要求,应采用增量式PID控制:系统的流程框图如5-2所示:

图5-2 步进电机调速系统的控制流程图

第30页 共53页

(论文)

第6章 软件的设计

6.1 显示子程序的设计

图6-1-1 显示程序流程图

6.2 键盘子程序的设计

第31页 共53页

(论文)

图6-2-1 键盘程序流程图

第32页 共53页

(论文)

6.3 驱动程序流程的设计:

返回

图6-3-1 主程序流程图

第33页 共53页

(论文)

6.4 正反转程序流程图

6.4.1 正反转程序流程图

图6-4-1 正反转程序流程图

第34页 共53页

(论文)

6.4.2 转速快慢程序流程图

6-4-2 转速快慢程序流程图

第35页 共53页

(论文)

6.4.3定时中断流程图

图6-4-2 中断子程序流程图

第36页 共53页

(论文)

第7章 实验结果与分析

7.1 有关参数的计算与分析

在单相三拍方式控制中,假如A相电源通电,B、C两相都不通电,在磁场作用下,使转子齿和A相的定子齿对齐。若此时为初始状态,并设与A相磁极对齐的齿为0号齿,由于B相齿与A相齿相差120度。且

1201?13不为整数。所以此转子不能和B号齿对93齐,只有13号小齿靠近B相磁极的中心线,与中心线相差3度,如果此时变为B相通电,万里A、C两相不通电,则B相磁极迫使与13号齿对齐,整个齿就转了3度,称为一步。步进电机就是以这种方式作为动力而转动。

在单相三拍A-B-C-A通电一周,转子转动了9度。固步距角可用公式7-1表示:

360?QS?NZr (7-1) 其中QS为步距角,N为运行的拍数,Zr为转子的齿数。其中N?mc*c,

mc为控制的相绕阻,C在三拍中为1,在六拍中为2。

步距角的速度的控制是通过改变脉冲的时间间隔来控制的。如果步进电机每转20圈要2秒。则每进一步所在的时间为:计算公式如7-2所示:

2000mst?20?100ms?833?sNZr3*1*40 (7-2)

可见只要输出一个脉冲后延时833?s再输脉冲就可以达到自定的速度。本次设计在

r求的转速范围为0到1000min,最高转速时的精度为2%。功率为1W。

得:步进脉冲之间的延迟时间为T1?T2。T1?0。

600001000?499.8?s?500?s T2=3*1*40 延迟时间在0到500?S。精度是由步进电机的性能决定的。

7.2 理论与实际的分析

从QS?

360的公式看到,改变步进电动机步距的大小有三种方式: NZr第37页 共53页

(论文)

1) 改变步进电动机的相数。步进电动机的相数越多、步距角就越小。 2) 与步进电动机的定、转齿数有关。

3) 与定子控制绕组的通电方式有关。要改变步进电机步距角的大小也只能通过这三种方式。设计中步进电机为三相,功率为1W。因步进电机的转子上没有绕阻而是由40个小齿均匀地分布在圆周上。定子的齿也是固定不变的,通电方式是选取用三相单三拍方式。可见步进电机的一但选定,其步距角就不能再改变了。要改变转束也就只能通过脉冲之间的延时来改变。但对步进电动机的步距角的控制,可以实现对步进电动机的转速精度控制。

但实际上步进电机在用行时是带有一定量的负载,当运转时会存在许多误差,同时因为负载的存在可能引起失步和震荡。这就使步进电机不能按预定的规律运行,从而是很难达到转速精度的要求。为准确测量电机的转速稳定度,须选用高精度测量仪器。光电编码器因光电式数字输出而更具抗干扰性强和处理简便的优势。增量式旋转编码器如图7-1 所示。其核心部件为光栅码盘,玻璃盘表面的光栅道数决定了编码器的分辨率,而后者制约了转速测量的精度。当编码器分辨率与系统误差相近时,其影响将不复存在。

图7-1 增量式旋转编码器

光电编码器的分分辨率是决定着反馈的准确性与反馈的精度。也对步进电机的延时长短起到一定的作用。可见实际与理论是有一定的差别的。

第38页 共53页

(论文)

附 录

8279的初始化程序如下:

INIT:MOV DPTR,#7FFFH ;置8279命令/状态口地址 MOV A,#0D1H ;置清显示命令字 MOVX @DPTR,A ;送清显示命令 WEIT:MOVX A,@DPTR ;读状态

JB ACC.7,WEIT ;等待清显示RAM结束 MOV A,#34H ;置分频系数,晶振12MHz MOVX @DPTR,A ;送分频系数 MOV A,#00H ;置键盘/显示命令 MOVX @DPTR,A ;送键盘/显示命令 MOV IE,#84H ;允许8279中断 RET 显示子程序如下:

DIS:MOV DPTR,#7FFFH ;置8279命令/状态口地址 MOV R0,#30H ;字段码首地址 MOV R7,#08H ;8位显示 MOV A,#90H ;置显示命令字 MOVX @DPTR,A ;送显示命令 MOV DPTR,#7FFEH ;置数据口地址 LP:MOV A,@R0 ;取显示数据 ADD A,#6 ;加偏移量

MOVC A,@A+PC ;查表,取得数据的段码 MOVX @DPTR,A ;送段码显示 INC R0 ;调整数据指针 DJNZ R7,LP ;

第39页 共53页

(论文)

RET

SEG:DB 3FH,06H,5BH,4FH,66H,6DH ;字符0、1、2、3、4、5段码 DB 7DH,07H,7EH,6FH,77H,7CH ;字符6、7、8、9、A、B段码 DB 39H,5EH,79H,71H,73H,3EH ;字符C、d、E、F、P、U段码 DB 76H,38H,40H,6EH,FFH,00H ;字符H、L、-、Y、“空”段码 键盘中断子程序如下:

KEY:PUSH PSW PUSH DPL PUSH DPH PUSH ACC PUSH B SETB PSW.3

MOV DPTR,#7FFFH ;置状态口地址 MOVX A,@DPTR ;读FIFO状态 ANL A,#0FH ; JZ PKYR ;

MOV A,#40H ;置读FIFO命令 MOVX @DPTR,A ;送读FIFO命令 MOV DPTR,#7FFEH ;置数据口地址 MOVX A,@DPTR ;读数据 LJMP KEY1 ;转键值处理程序 PKYR: POP B POP ACC POP DPH POP DPL POP PSW

第40页 共53页

(论文)

RETI ; KEY1: ? ? ;键值处理程序 键盘程序清单:

KEY1: ACALL KS1 ; 有无键按下子程序

JNZ LK1 AJMP

KEY1

;有键按下,转去抖延时

;无键按下,继续扫描

LK1: ACALL DELA12 ;12ms延时程序调用

ACALL KS1 JNZ LK2 AJMP

KEY1

;判断键是否真正按下 ;有键按下,转逐列扫描 ;无键按下,继续扫描

LK2: MOV R2,#0FEH ;设置首列扫描字

MOV R4,#00H

;保存首列号

LK4: MOV DPTR,#7F01H;列扫描字送至PA口 MOV

A,R2

@DPTR,A

;指向PC口

MOVX

INC DPTR INC DPTR MOVX

A,@DPTR ;读入行状态

JB ACC.0,LONE ;第0行无键按下,转LONE MOV A,#00H ;有键按下,设置行首键号 AJMP

LKP ;转求键号

LONE: JB ACC.1,LTWO ;第1行无键按下,转LTWO

MOV A,#08H ;有键按下,设置行首键号 AJMP

LKP ;转求键号

LTWO: JB ACC.2,LTHR ;第2行无键按下,转LTHR

LTHR: JB ACC.3,NEXT ;第3行无键按下,查下一列

第41页 共53页

MOV A,#10H ;有键按下,设置行首键? AJMP

LKP ;转求键号

(论文)

MOV A,#18H ;有键按下,设置行首键

;求键号,键号=行首键号+列号

LKP: ADD A,R4 PUSH

ACC ;保护键号

LK3: ACALL KS1 ;等待键释放

JNZ LK3 ;键未释放,继续等待 POP ACC ;键释放,键号送A AJMP

OVER

;键扫描结束

NEXT: INC R4 ;列号加1,指向下一列

MOV A,R2

;判断8列扫描完否

JNB ACC.7,KND ;8列扫描完,继续 RL A ;扫描字左移一位 MOV R2,A AJMP

;送扫描字

LK4 ;转下一列扫描

KEY1

KND: AJMP

OVER: RET ;键扫描结束 KS1: MOV DPTR,#7F01H

;指向PA口

MOV A,#00H ;设置扫描字 MOVX

@DPTR,A

;扫描字送PA口

INC DPTR INC DPTR MOVX

;指向PC口

A,@DPTR ;读入PC口状态

CPL ;以高电平表示有键按下 ANL A,#0FH ;屏蔽高4位 RET

初始化程序如下:

INIT:MOV DPTR,#7FFFH ;置8279命令/状态口地址 MOV A,#0D1H ;置清显示命令字 MOVX @DPTR,A ;送清显示命令 WEIT:MOVX A,@DPTR ;读状态

JB ACC.7,WEIT ;等待清显示RAM结束

第42页 共53页

(论文)

MOV A,#34H ;置分频系数,晶振12MHz MOVX @DPTR,A ;送分频系数 MOV A,#00H ;置键盘/显示命令 MOVX @DPTR,A ;送键盘/显示命令 MOV IE,#84H ;允许8279中断 RET 显示子程序如下:

DIS:MOV DPTR,#7FFFH ;置8279命令/状态口地址 MOV R0,#30H ;字段码首地址 MOV R7,#08H ;8位显示 MOV A,#90H ;置显示命令字 MOVX @DPTR,A ;送显示命令 MOV DPTR,#7FFEH ;置数据口地址 LP:MOV A,@R0 ;取显示数据 ADD A,#6 ;加偏移量

MOVC A,@A+PC ;查表,取得数据的段码 MOVX @DPTR,A ;送段码显示 INC R0 ;调整数据指针 DJNZ R7,LP ; RET 键盘中断子程序如下:

KEY:PUSH PSW PUSH DPL PUSH DPH PUSH ACC PUSH B SETB PSW.3

MOV DPTR,#7FFFH ;置状态口地址 MOVX A,@DPTR ;读FIFO状态 ANL A,#0FH ;

第43页 共53页

(论文)

JZ PKYR ;

MOV A,#40H ;置读FIFO命令 MOVX @DPTR,A ;送读FIFO命令 MOV DPTR,#7FFEH ;置数据口地址 MOVX A,@DPTR ;读数据 LJMP KEY1 ;转键值处理程序 PKYR: POP B POP ACC POP DPH POP DPL POP PSW

RETI ; 驱动电路子程序的设计

PUSH:MOV R3 , # NUM

PUSH A PUSH PSW LOOP: SETB P1.0 ACALL DELAY1 CLR P1.0 ACALL DELAY2 DJNZ R3,LOOP POP PSW POP A RET 延时子程序的设计 MOV R2,#18H LCALL 7FEBH RET

ORG 7FEBH

第44页 共53页

通用延时子程序

;(论文)

(07EBH & 0FEBH & ...)

L7FEB: PUSH 02H ;R2(复位后R2即为02H)存放时间常数,进栈保护

L7FED: PUSH 02H ; R2进栈保护 L7FEF: PUSH 02H ; 进栈 L7FF1: DJNZ R2,$ ;R2不为零等待 POP 02H ;出栈 DJNZ R2,L7FEF ; R2不为零转 POP 02H ; 出栈 DJNZ R2,L7FED ; R2不为零转 POP 02H ; 出栈 DJNZ R2,L7FEB ; R2不为零转 RET ;子程序返回 END

图6-4-1 主程序流程图

主程序如下:

CON: MOV R3, # N MOV TMOD , # 10H MOV TL1 , # LOW MOV TH1 , # H IGH JNB FLAG ,LEFT MOV R0 , RM AJMP TIME - S LEFT: MOV R0 , LM TIME: SETB EA SETB ET1 SETB TR1

步进电机控制程序p3.2正转,p3.3反转,p3.4停止 步进电机接p1.0p1.1p1.2p1.3

第45页 共53页

(论文)

org 00h

stop: orl p1,#0ffh ; 步进电机停止 loop:jnB p3.2,for2 ; 如果p3.2按下正转 jnB p3.3,rev2 ; 如果p3.3按下反转 jnB p3.4,stop1 ; 如果p3.4按下停止 jmp loop ;反复监测键盘 for: mov r0,#00h for1:mov A,r0 mov dptr,#tABle movC A,@A+dptr

jz for Cpl A mov p1,A jnB p3.4,stop1 jnB p3.3,rev2 CAll delAy inC r0 jmp for1 rev:mov r0,#05h rev1:mov A,r0

mov dptr,#tABle movC A,@A+tABle

jz rev Cpl A mov p1,A jnB p3.4,stop1 jnB p3.3,rev2 CAll delAy inC r0 jmp rev1

第46页 共53页正转到tAB取码指针初值 ;取码 ; ;是否到了结束码00h ;把ACC反向 ;输出到p1开始正转 ; 如果p3.4按下停止 ; 如果p3.3按下反转 ;转动的速度 ;取下一个码 ;继续正转 ;反转到tAB取码指针初值 ;取码 ;是否到了结束码00h ;把ACC反向 ;输出到p1开始反转 ; 如果p3.4按下停止 ; 如果p3.3按下反转 ;转动的速度 ;取下一个码 ;继续反转

;

(论文)

stop1:CAll delAy ; 按p3.4的消除抖动 jnB p3.4,$ ; p3.4放开否? CAll delAy ;放开消除抖动 jmp stop

for2:CAll delAy ; 按p3.2的消除抖动 jnB p3.2,$ ; p3.2放开否? CAll delAy jmp for

rev2:CAll delAy jnB p3.3,$ CAll delAy jmp rev

delAy:mov r1,#40 d1:mov r2,#248 djnz r2,$ djnz r1,d1 ret tABle:

dB 03h,09h,0Ch,06h ;正转表

dB 00 dB 03h,06h,0Ch,09h ;反转

dB 00 end 步进电机正反快慢程序

org 00h

x1:mov r3,#48 ;一圈48步 stArt:mov r0,#00h ;正转取码初值 stArt1:

mov p1,#0ffh ;先停止 mov A,r0

第47页 共53页

;放开消除抖动 ; 按p3.3的消除抖动 ; p3.3放开否? ;放开消除抖动 步进电机的转速20ms ;正转结束 ;反转结束 ; (论文)

mov dptr,#tABle movC A,@A+dptr

jz stArt ;是否到了结束码00? Cpl A

mov p1,A ;输出运转

CAll delAy ;调用慢速的延时转动

inC r0 ;取码指针加1取下一个码 djnz r3,stArt1 ;是否走了48步? mov r3,#48 ;是则重新设定48步 stArt2: mov p1,#0ffh

mov r0,#05 ;逆转的取码初值 stArt3:mov A,r0 mov dptr,#tABle movC A,@A+dptr

jz stArt2 Cpl A mov p1,A CAll delAy2 inC r0 djnz r3,stArt3

jmp x1 ; 重复开始

DELAY: ; 延时程序 (慢速) MOV R7,#255 D1:MOV R6,#50 D2: DJNZ R6,D2 DJNZ R7,D1 RET

DELAY2: ; 延时程序 (快速)

第48页 共53页

(论文)

MOV R5,#255 D3:MOV R2,#25 D4: DJNZ R2,D4 DJNZ R5,D3 RET tABle:

dB 03h,09h,0Ch,06h ;正转表 dB 00

dB 06h,0Ch,09h,03h ;反转表 dB 00 end

中断服务程序如下:

INTTO: PUSH A PUSH PSW MOV A , @R0 MOV P1 ,A INC R0 MOV A , # 00H XRL A , @R0 JNZ NEXT MOV A , R0 CLR C

SUBB A , # 03H MOV R0 , A NEXT: DJNZ R3 , RETU CLR ET1 CLR EA RETU: POP PSW POP A RETI

第49页 共53页

(论文)

利用软件形成脉冲序列的程序清单:

PULSE_S: MOV R7,#NUM PUSH PUSH

;设定脉冲个数

A ;保护现场 PSW

P1.0

;输出高电平

LOOP: SETB

ACALL DELAY1 ;延时 CLR P1.0

;输出低电平

ACALL DELAY2 ;延时 DJNZ

R7,LOOP

;R7≠0,继续输出脉冲

POP PSW ;恢复现场

A

POP

RET

定时中断子程序

TIME0: CLR EA ;关中断

INC 30H MOV A,30H

XRL A,#50H ;判断是否到8秒 JZ S_8 ;8秒定时到,转至S_8 AJMP

RECOUN ;未到8秒,继续计时

P3.2

;触发外部中断0

S_8: SETB NOP CLR P3.2 NOP

RECOUN:

MOV TH0,#3CH

MOV TL0,#0B0H ;设定定时器初值 SETB RETI

EA ;开中断 ;中断返回

中断子程序 T_CON: PUSH

A ;保护现场

PUSH PSW

第50页 共53页

本文来源:https://www.bwwdw.com/article/r76r.html

Top