步进电机设计报告

合集下载

步进电机实验报告册(3篇)

步进电机实验报告册(3篇)

第1篇一、实验目的1. 熟悉步进电机的工作原理和特性。

2. 掌握步进电机的驱动方式及其控制方法。

3. 学会使用常用实验设备进行步进电机的调试和测试。

4. 了解步进电机在不同应用场景下的性能表现。

二、实验设备1. 步进电机:选型为双极性四线步进电机,型号为NEMA 17。

2. 驱动器:选型为A4988步进电机驱动器。

3. 控制器:选型为Arduino Uno开发板。

4. 电源:选型为12V 5A直流电源。

5. 连接线、连接器、电阻等实验配件。

三、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机。

它具有以下特点:1. 转动精度高,步距角可调。

2. 响应速度快,控制精度高。

3. 结构简单,易于安装和维护。

4. 工作可靠,寿命长。

步进电机的工作原理是:通过控制驱动器输出脉冲信号,使步进电机内部的线圈依次通电,从而产生步进运动。

四、实验步骤1. 搭建实验电路(1)将步进电机连接到驱动器上,确保电机线序正确。

(2)将驱动器连接到Arduino Uno开发板上,使用连接线连接相应的引脚。

(3)连接电源,确保电源电压与驱动器要求的电压一致。

2. 编写控制程序(1)使用Arduino IDE编写程序,实现步进电机的正转、反转、调速等功能。

(2)通过串口监视器观察程序运行情况,调试程序。

3. 调试步进电机(1)测试步进电机的正转、反转功能,确保电机转动方向正确。

(2)调整步进电机的转速,观察电机运行状态,确保转速可调。

(3)测试步进电机的步距角,确保步进精度。

4. 实验数据分析(1)记录步进电机的正转、反转、调速等性能参数。

(2)分析步进电机的运行状态,评估其性能。

五、实验结果与分析1. 正转、反转测试步进电机正转、反转功能正常,转动方向正确。

2. 调速测试步进电机转速可调,调节范围在1-1000步/秒之间。

3. 步距角测试步进电机的步距角为1.8度,与理论值相符。

4. 实验数据分析步进电机的性能指标符合预期,可满足实验要求。

步进电机驱动电路的设计报告

步进电机驱动电路的设计报告

步进电机的驱动(一)工作原理:(1)步进电机与直流电机不同,步进电机是一种将电脉冲信号转换成相应的角位移的电磁机械装置。

当给步进电机输入一个电脉冲信号时,电机的输出轴就转动一个角度,这个角度称为步距角。

对于大多数的步进电机,一个电脉冲可以使电机转轴转动0.9°。

控制MSP430每次输入一个或多个脉冲,可以使转轴每次转动特定的角。

(2)L297L297是步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。

芯片内的PWM 斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。

该集成电路采用了SGS 公司的模拟/数字兼容的I2L 技术,使用5V 的电源电压,全部信号的连接都与TFL/CMOS 或集电极开路的晶体管兼容。

L297各引脚功能说明:1脚(SYNC)——斩波器输出端。

如多个297同步控制,所有的SYNC端都要连在一起,共用一套振荡元件。

如果使用外部时钟源,则时钟信号接到此引脚上。

2脚(GND)——接地端。

3脚(HOME)——集电极开路输出端。

当L297在初始状态(ABCD=0101)时,此端有指示。

当此引脚有效时,晶体管开路。

4脚(A)——A相驱动信号。

5脚(INH1)——控制A相和B相的驱动极。

当此引脚为低电平时,A相、B相驱动控制被禁止;当线圈级断电时,双极性桥用这个信号使负载电源快速衰减。

若CONTROL端输入是低电平时,用斩波器调节负载电流。

6脚(B)——B相驱动信号。

7脚(C)——C相驱动信号。

8脚(INH2)——控制C相和D相的驱动级。

作用同INH1相同。

9脚(D)——D相驱动信号。

10脚(ENABLE)——L297的使能输入端。

当它为低电平时,INH1,INH2,A,B,C,D都为低电平。

当系统被复位时用来阻止电机驱动。

11脚(CONTROL)——斩波器功能控制端。

低电平时使INH1和INH2起作用,高电平时使A,B,C,D起作用。

步进电动机实验报告

步进电动机实验报告

一、实验目的1. 了解步进电动机的工作原理和驱动方式。

2. 掌握步进电动机的驱动电路设计方法。

3. 熟悉步进电动机的控制程序编写和调试方法。

4. 掌握步进电动机的速度和方向控制方法。

二、实验器材1. 步进电动机一台2. 步进驱动器一台3. 单片机实验板一块4. 电源模块一块5. 连接线若干6. 示波器一台7. 电脑一台三、实验原理步进电动机是一种将电脉冲信号转换为角位移或线位移的电机,其特点是输出角位移与输入脉冲数成正比,转速与脉冲频率成正比。

步进电动机的驱动电路主要由驱动器和控制电路组成。

驱动器负责将单片机输出的脉冲信号转换为步进电动机所需的驱动信号,而控制电路则负责生成步进电动机所需的脉冲信号。

四、实验步骤1. 步进电动机驱动电路设计(1)根据步进电动机的型号和规格,选择合适的驱动器。

(2)设计驱动电路原理图,包括驱动器、单片机、电源模块等。

(3)焊接驱动电路,并检查无误。

2. 步进电动机控制程序编写(1)编写步进电动机控制程序,包括初始化、脉冲生成、速度和方向控制等模块。

(2)通过示波器观察脉冲信号的波形,确保脉冲信号符合步进电动机的要求。

(3)调试程序,确保步进电动机能够按照预期运行。

3. 步进电动机速度和方向控制(1)通过调整脉冲频率控制步进电动机的转速。

(2)通过改变脉冲信号的顺序控制步进电动机的转动方向。

(3)观察步进电动机在不同速度和方向下的运行情况,分析控制效果。

五、实验结果与分析1. 步进电动机驱动电路设计成功,步进电动机能够按照预期运行。

2. 步进电动机控制程序编写成功,能够实现速度和方向控制。

3. 通过调整脉冲频率,步进电动机的转速在0-300转/分钟范围内可调。

4. 通过改变脉冲信号的顺序,步进电动机的转动方向可在正转和反转之间切换。

5. 实验结果表明,步进电动机的速度和方向控制方法可行,控制效果良好。

六、实验总结本次实验成功地实现了步进电动机的驱动电路设计、控制程序编写和速度、方向控制。

PLC步进电机课程设计报告

PLC步进电机课程设计报告

1 课程设计任务与要求1.1 课程设计任务利用PLC构成三相步进电机控制系统,完成主电路的接线,并编写三拍、六拍、单步和连续控制的程序并调试。

1.2 课程设计要求①当钮子开关拨到单步时,必须每按一次起动,电机才能旋转一个角度;②当钮子开关拨到连续时,按一次起动,电机旋转,直到按停止;③当钮子开关拨到三拍时,旋转的角度为3度;④当钮子开关拨到六拍时,旋转的角度为1.5度;⑤当钮子开关拨到正转时,旋转按顺时针旋转;⑥当钮子开关拨到反转时,旋转按逆时针旋转;⑦当单步要转到连续,可以通过停止也可以直接转换;(通过编程)⑧当连续要单步连续,可以通过停止也可以直接转换;(通过编程)⑨当三拍要转到六拍,可以通过停止也可以直接转换;(通过编程)⑩当六拍要转到三拍,可以通过停止也可以直接转换;(通过编程)⑪当正转要转到反转,可以通过停止也可以直接转换;(通过编程)⑫当反转要转到正转,可以通过停止也可以直接转换;(通过编程)2 步进电机的工作原理及其控制要求2.1 设计思路本次设计的是一个三相步进电机控制系统,主要由步进电机及一些其他相关元件设计而成。

本设计采用自顶向上的设计思想。

先确定了系统的格局,再分模块实现发的方案。

首先对步进电机的实际要求进行逻辑抽象,确定这个系统的输入与输出,输入有启动与停止、单步与连续、三拍与六拍、正转与反转,输出有A、B、C三相。

可以通过开关来控制系统的启/停工作,当系统运转时,用开关来控制方向,并使相应的指示灯亮起,同样由开关来选择工作模式。

最后根据思路所设计出来的硬件图设计相适应的软件。

2.2 控制系统的工作原理2.2.1 步进电机的工作原理步进电机是纯粹的数字控制电动机,它将电脉冲信号转换成角位移,即给一个脉冲信号,步进电机就转动一个角度,一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。

每输入一个脉冲信号,该电动机就转过一定的角度(有的步进电动机可以直接输出线位移,称为直线电动机)。

三相六拍步进电机课程设计报告

三相六拍步进电机课程设计报告

数字电子技术课程设计报告一、步进电机相关知识介绍步进电机是一种数字信号控制的传动机构, 若在其输入端加入一个脉冲信号, 该电动机就会转动一个角度或移动一定距离。

步进电机由转子和定子两部分组成。

在定子的6个磁极上分别绕有绕组, 对称的绕组形成一相绕组, 三相电机有A.B.C三相绕组。

每给一相绕组通电一次称为一拍。

三相六拍步进电机的工作的次序为A—AB—B—BC—C—CA—A。

步进电机每步旋转的角度大小, 称为步距角。

它是由电动机本身转子的齿数和每一个通电循环内通电节拍决定的。

本次课程设计采用转子为4个齿的步进电机, 三相六拍模式的步距角为15°。

脉冲信号按规定的方式分配给步进电机各相绕组, 使各相绕组轮流接受脉冲信号的控制, 通常是由环形分配器来实现的。

实现这种分配方式的电路称为环形分配器。

它是一个中间转换环节, 前面与脉冲振荡器相接, 后面接功率驱动器。

三者组成了步进电机的驱动电路。

环形脉冲分配器的设计是驱动电路设计的第一步, 也就是本次课程设计的重点和难点。

环形分配器目前逐步走向集成电路化, 各种相数的步进电机环形分配器的集成块市场已有出售, 但采用各种门电路和常用芯片组成的环形分配器仍普遍应用。

此次课程设计要求运用数字电路设计一个三相六拍步进电机控制器, 其意义便在于此。

二、方案设计1.电路设计要求对三相六拍步进电机的控制, 主要分为两个方面: 三相绕组的接通与断开顺序控制。

即: 正转顺序: A-AB-B-BC-C-CA-A: 反转顺序: A-AC-C-CB-B-BA-A以及每个步距角的行进速度。

围绕这两个主要方面, 可提出具体的控制要求如下:(1)可正转起动或反转起动;(2)运行过程中, 点击能够正转、反转、保持;(3)可使用手动使时钟频率f=1~50Hz, 连续可调。

2.电路用到的实验仪器74LS00*3(与非门)74LS74*2(D触发器)74LS04 *1(非门)LED灯*3+5V 电源导线若干时钟频率发生器三、总体设计原理及框图通常来说, 步进电机驱动器所要实现的功能简单来说就是控制电机的转动方向和转速。

步电机的实验报告(3篇)

步电机的实验报告(3篇)

第1篇一、实验目的1. 了解步进电机的工作原理和驱动方式。

2. 掌握步进电机的控制方法,包括正反转、速度调节和方向控制。

3. 通过实验验证步进电机的性能和稳定性。

二、实验原理步进电机是一种将电脉冲信号转换为角位移的电动机,其特点是控制精度高、响应速度快、易于控制。

步进电机的工作原理基于电磁感应原理,通过控制电流的通断,使电机绕组产生磁场,从而驱动转子旋转。

三、实验仪器与设备1. 步进电机实验平台2. 电脑3. 步进电机驱动器4. 步进电机5. 电源6. 接线端子四、实验内容1. 步进电机驱动电路搭建2. 步进电机正反转控制3. 步进电机速度调节4. 步进电机方向控制5. 步进电机性能测试五、实验步骤1. 步进电机驱动电路搭建(1)将步进电机驱动器与电脑连接,并确保电源连接正常。

(2)根据步进电机驱动器的说明书,将步进电机、电源和连接端子连接到相应的接口。

(3)检查电路连接是否正确,确保无误。

2. 步进电机正反转控制(1)编写程序实现步进电机正反转控制。

(2)在电脑上运行程序,观察步进电机正反转是否正常。

3. 步进电机速度调节(1)编写程序实现步进电机速度调节。

(2)在电脑上运行程序,调整速度参数,观察步进电机转速是否改变。

4. 步进电机方向控制(1)编写程序实现步进电机方向控制。

(2)在电脑上运行程序,观察步进电机旋转方向是否改变。

5. 步进电机性能测试(1)测试步进电机的空载转速和负载转速。

(2)测试步进电机的步距角和定位精度。

(3)测试步进电机的稳定性。

六、实验结果与分析1. 步进电机正反转控制实验结果显示,步进电机正反转控制正常,转速和方向可调。

2. 步进电机速度调节实验结果显示,步进电机速度调节正常,转速可调。

3. 步进电机方向控制实验结果显示,步进电机方向控制正常,旋转方向可调。

4. 步进电机性能测试(1)空载转速:步进电机空载转速为300转/分钟。

(2)负载转速:步进电机负载转速为200转/分钟。

步进电机实验报告【范本模板】

步进电机实验报告【范本模板】

北京工业大学电子课程设计报告(数电部分)题目:步进电机一、设计题目步进电机控制电路二、设计任务和设计要求1.设计任务:本课题要求设计一个步进电机的控制电路,该电路能对步进电机的运行状态进行控制.2.设计技术指标及设计要求:基本要求:(1)。

能控制步进电机正转和反转及运行速度,并由LED显示运行状态。

(步进电机工作方式可为单四拍或双四拍).A.单四拍方式,通电顺序为A—B—C—D—AB.双四拍方式,通电顺序为AB—BC-CD-DA-AB(2)。

测量步进电机的步距角。

(通过实测步进电机旋转一周所需要的脉冲数,推算出步进电机的步距角)。

扩展要求:设计步进电机的工作方式为四相八拍。

C.四相八拍方式,通电顺序为A—AB—B—BC—C—CD—D-DA—A(4).参考元器件:步进电机,发光二极管,续流二极管IN4004,复合三极管TIP122;5Ω(1W)电阻,其它电容、电阻若干.三、设计框架首先我们先设计一个脉冲发生电路,我们选择用ne555设计这个脉冲发生电路,用于提供我们整个电路的时钟信号,然后将这个时钟置于74ls161芯片的时钟端,使161处于计数状态,然后161会在输出端产生0000到1111的序列,这里我们只用前三个端口,然后经过一定的组合将这三个端口接到74ls138译码器的输入端口,使译码器处于工作状态然后列真值表,确定A、B、C、D四相的逻辑表达式,并按照表达式进行组合,最后将A、B、C、D 四相分别连接驱动电路,接上电机。

我们首先形成一个脉冲发生电路,如图所示:这个脉冲电路用于提供整个电路的时钟信号。

由于我们还要实现步进电机的变速,有此电路的频率公式f=1/[ln2(R1+2R2)C] 和q=(R1+R2)/(R1+2R2),可知,我们只需改变R1的电阻大小即可.这样会对时钟频率产生影响,从而改变电机的转速。

接下来是环形脉冲分配电路。

首先我们写出我们需要的真值表,然后计算出逻辑表达式,最后根据逻辑表达式进行电路的连接。

步进电机设计报告

步进电机设计报告

四相步进电机控制学生学号:095021323 学生姓名:张道龙专业班级:电子09-2指导教师:刘燎原目录目录 (II)第1章课程设计的目的和意义 (1)1.1课程设计的目的 (1)1.2课程设计的意义 (1)第二章:步进电机 (2)2.1:步进电机的原理 (2)2.2:四相步进电机 (2)第三章元器件介绍 (3)3.1STC89C52 (3)3.2.1 主要特性 (6)3.2.2 内部结构 (6)3.2.3 外部特性(引脚功能) (6)3.2.4 ULN2003 (6)第四章硬件电路设计 (7)4.1电路图 (7)4.2电机驱动 (8)4.3源程序 (9)4.3实物图 (11)结论 (12)第1章课程设计的目的和意义1.1 课程设计的目的及要求课程设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。

通过课程设计使学生获得以下几方面能力,为毕业设计(论文)奠定基础。

1、进一步巩固和加深学生所学一门或几门相关专业课(或专业基础课)理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能;2、培养学生实践动手能力及独立分析和解决工程实际问题的能力;3、培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。

4.掌握步进电机控制方法;4.掌握A/D转换原理;6.掌握ADC0809、2003芯片等应用;7.初步掌握用电路图软件绘制电路原理图方法。

要求:1.熟悉A/D转换、数码管动态显示、步进电机控制电路2.熟悉并说明所用芯片功能3.熟悉构成电路的各元件功能4.画出四相步进电机控制电路图5.用硬件四相步进电机电路(用实验板焊接电路)6.技术指标:实现电机启、停、正转、反转、电压调速功能1.2 课程设计的意义1、有利于基础知识的理解通过四相电机的学习,学生进一步理解了单片机的相关基本知识,对于实验室的各种元器件有了更深入的了解,具备了在日常生活中识别相关元器件的能力,2、有利于逻辑思维的锻炼在许多常规学科的日常教学中,我们不难发现这样一个现象,不少学生的思维常常处于混乱的状态。

步进电机驱动系统设计报告

步进电机驱动系统设计报告

步进电机驱动系统设计报告1. 引言步进电机是一种常用的控制设备,它能够以离散的步进角度旋转,并且能够保持稳定位置。

本报告旨在介绍我们设计的步进电机驱动系统,包括硬件设计、软件开发和性能测试。

2. 硬件设计步进电机驱动系统的硬件设计包括供电电路、控制电路和电机驱动电路。

2.1 供电电路供电电路负责为整个系统提供电源。

我们选择了12V直流电源作为系统的供电电源,以保证电机稳定运行。

2.2 控制电路控制电路用于接收用户的控制指令,并将其转化为电机驱动信号。

我们采用了微处理器进行控制电路的设计,利用其IO口和相关外围电路实现与电机驱动电路的连接。

2.3 电机驱动电路电机驱动电路通过给定特定的电流和方向信号,控制步进电机的转动。

我们采用了步进电机驱动芯片进行电机驱动电路的设计,驱动芯片能够根据输入信号的变化,控制电机按照给定的步进角度旋转。

3. 软件开发软件开发包括电机控制程序的编写和电机控制界面的设计。

3.1 电机控制程序电机控制程序根据用户的输入指令,通过控制电路向电机驱动电路发送正确的信号,从而控制电机转动。

我们采用了C语言进行程序编写,结合控制电路的IO 口进行控制信号的生成。

3.2 电机控制界面电机控制界面是用户与系统进行交互的接口。

我们设计了一个简单的图形用户界面,用户可以通过该界面设置电机的运行参数,包括步进角度、转速等。

4. 性能测试为了验证步进电机驱动系统的性能,我们进行了一系列的性能测试。

4.1 步进角度测试我们通过设置不同的旋转角度,测试步进电机在给定角度下的准确度。

测试结果显示,步进电机能够非常稳定地按照给定角度旋转。

4.2 转速测试转速测试用于检验步进电机在不同速度下的运行情况。

实验结果表明,步进电机能够在不同速度下保持平稳运行,并且具有较高的转速稳定性。

4.3 负载能力测试负载能力测试用于测试步进电机在不同负载情况下的运行情况。

我们通过增加外加负载,测试了步进电机在不同负载下的转速和转矩。

步进电机控制课程设计报告

步进电机控制课程设计报告

(封面)XXXXXXX学院微机原理课程设计实验报告题目:院(系):专业班级:学生姓名:指导老师:时间:年月日课题名:步进电机控制一、课题内容和提示:编程提示:(1)步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机做步进式旋转。

调节输入脉冲的频率可改变步进电机的转速。

(2)编写程序使步进电机按正转10圈,反转5圈,再正转10圈,再反转5圈的规律旋转。

(3)调整延时参数,使步进电机的转动速度为每秒5转。

二、报告要求:每秒5转对应的延时参数是多少?,这个数字与微机的速度有什么关系?为什么?三、设计思路:(1)前言:步进电机具有控制简便、定位准确等特点。

随着科学技术的发展,在许多领域将得到广泛的应用。

鉴于传统的脉冲系统移植性不好,本文提出微机控制系统代替脉冲发生器和脉冲分配器,用软件的方法产生控制脉冲,通过软件编程可以任意设定步进电机的转速、旋转角度、转动次数和控制步进电机的运行状态。

以简化控制电路,降低生产成本,提高系统的运行效率和灵活性。

在此基础上提出了双三拍步进电机程序控制的硬件接口电路、程序流程图和汇编程序。

步进电机是自动控制系统中常用的执行部件。

步进电机的输入信号为脉冲电流,它能将输入的脉冲信号转换为阶跃型的角位移或直线位移,因而步进电机可看作是一个串行的数/模转换器。

由于步进电机能够直接接受数字信号,而不需数/模转换,所以使用微机控制步进电机显得非常方便。

(2)步进电机有以下优点:(1)通常不需要反馈就能对位置和速度进行控制;(2)位置误差不会积累;(3)与数组设备兼容,能够直接接收数字信号;(4)可以快速启停。

(3)步进电机的工作原理:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

步进电机课程设计实验报告

步进电机课程设计实验报告

汇编及接口技术课程设计题目:步进电机控制系统班 级: 学 号: 姓 名:时 间:成绩:目录1 设计任务与要求 (3)1.1设计任务 (3)1.2设计要求 (3)2 设计方案 (3)2.1设计思路 (3)2.2使用的芯片 (4)2.3芯片的作用 (4)3 硬件线路设计 (5)3.1线路图及连线说明 (5)4 软件设计 (5)4.1程序流程图 (6)5源程序清单与注释 (6)6 调试过程 (9)6.1实验步骤 (9)6.2出现的问题及解决的方法 (9)7.总结 (9)8.参考资料 (10)步进电机控制系统一、设计任务与要求1.1设计任务1.了解步进电机控制的基本原理。

2.掌握控制步进电机转动的编程方法。

3.进一步熟练8255的使用。

1.2设计要求1.开关K8控制电机的启动与停止:当K8向上拨时,电机启动,否则电机停止;2.开关K7控制电机的正反转。

3.开关K1~K6控制电机的转速:K1向上拨时,得到最低转速,…… K6向上拨时,得到最高转速。

4.在数码管上显示速度编号。

二、设计方案2.1设计思路步进电机驱动原理是通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。

驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。

本实验使用的步进电机线圈由四相组成,驱动方式为二相激磁方式,如图4.1所示。

图4.1 步进电机原理图如表4.1所示,首先使HA线圈和HB线圈有驱动电流,接着使HB和HC、HC和HD、HD和HA,又返回到HA和HB有驱动电流,按这种顺序切换,电机轴按顺时针方向旋转。

表4.1 步进电机激磁方式相HA HB HC HD 顺序0 + + --1 -+ + -2 --+ +3 + --+注:当实验结束要立即关闭电源,否则一直停留在某一相上会使电机发热。

2.2使用的芯片8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。

步进电机实验报告

步进电机实验报告

一、实验目的1. 了解步进电机的工作原理和特性;2. 掌握步进电机的驱动方式和控制方法;3. 熟悉步进电机在不同控制方式下的运行特点;4. 提高电子电路设计、调试和故障排除能力。

二、实验原理步进电机是一种将电脉冲信号转换为角位移的执行元件,其特点是步进角小、定位精度高、响应速度快。

步进电机主要由转子、定子和控制电路组成。

1. 转子:由永磁材料制成,具有多个均匀分布的齿;2. 定子:由铁芯和线圈组成,线圈分为若干相,每相对应一组线圈;3. 控制电路:产生脉冲信号,驱动步进电机转动。

步进电机的驱动方式主要有两种:直流驱动和交流驱动。

本实验采用直流驱动方式,通过控制线圈电流的通断,使步进电机产生旋转。

三、实验仪器与设备1. 步进电机实验装置一套;2. 电源一台;3. 信号发生器一台;4. 示波器一台;5. 电流表一台;6. 电压表一台;7. 集成电路测试仪一台。

四、实验内容及步骤1. 步进电机工作原理观察(1)观察步进电机转子与定子齿的相对位置;(2)分析步进电机转动过程中的齿对齿的相互作用。

2. 步进电机驱动电路设计(1)根据步进电机型号,设计驱动电路,包括电源、驱动芯片、驱动线圈等;(2)连接电路,检查无误后通电测试。

3. 步进电机控制方法实验(1)观察步进电机在不同控制方式下的运行特点,如正转、反转、慢速、快速等;(2)调整控制参数,使步进电机满足实验要求。

4. 步进电机运行特性分析(1)观察步进电机在不同转速下的运行情况;(2)分析步进电机转速与控制脉冲频率的关系;(3)研究步进电机负载变化对转速的影响。

5. 步进电机故障排除(1)观察步进电机运行过程中的异常现象;(2)分析故障原因,如驱动电路故障、控制程序错误等;(3)进行故障排除,确保步进电机正常运行。

五、实验结果与分析1. 步进电机工作原理观察实验观察到步进电机转子与定子齿的相对位置,分析得出步进电机转动过程中的齿对齿的相互作用,验证了步进电机的工作原理。

单片机课程设计步进电机报告

单片机课程设计步进电机报告

目录一、课程设计任务 (2)二、设计思路 (2)三、硬件原理图 (2)四、硬件连线 (2)五、单片机应用程序 (3)六、存在的问题和解决方法 (5)1、存在的问题 (5)2、解决方法 (6)3、设计总结与心得 (6)设计人:2015年6月25日一、课程设计任务利用DICE-5210K实验开发系统,编写步进电机控制软件实现:快速正转,设定步局距为80H,第5、6位从80H逐渐减小到0,转入快速反转,设定步局距为80H,第5、6位从80H逐渐减小到0,再转入快速正转,如此循环。

二、设计思路数码管显示各位内容为:显示位置 1 2 3 4 5 6显示内容0为正转1为反转0为快速1为慢速设定步距设定步距逐步减小1、检查P1.4是否为低电平来判断正反转,是则执行正转子程序,否则执行反转子程序。

2、步进电机一直是快速转动,第2位显示0一直不变。

利用延时子程序来设定它的快速慢速转,根据延时的长短来区别快速和慢速。

3、步局距一直是80H,设定它为80H不变。

4、不管正转还是反转都是从80H逐渐减小到0。

判断步局数是否为0,是0则转向下一个旋转循环,不为0则减1后显示在数码管上。

三、硬件原理图见A2图纸四、硬件连线1、确认KB1开关打在“一般模式”,KB2短路块插在MCS-51(1、2)位置上,SW1短路块插在“UP”位置。

SW3、SW4、SW5打在“ON”的位置。

2、在确认断电的情况下,取下DICE-5210K实验仪右上角锁紧插座上的AT89S52单片机芯片。

3、将40芯白色的扁平线上的IDC40插头与DICE-KEIL USB仿真器的IDC40插座插好,然后用随机配送的USB线将仿真器与PC机连接。

4、将40芯白色的扁平线另一头的40芯仿真头插在DICE-5210K实验仪右上角绿色锁紧插座上。

5、用双头线将P1.0~P1.3接至HA~HD。

五、单片机应用程序ORG 0000HLJMP STORG 0080HST: MOV P2,#0FFHMOV 7EH,#00HMOV 7DH,#01HMOV 7CH,#10HMOV 7BH,#10HMOV 7AH,#10HMOV 79H,#10H ;显示缓冲区赋初值MOV A,#43HMOV DPTR,#0FF20HMOVX @DPTR,A ;8155初始化,8155用于控制数码管和键盘 ;MOV R0,#59HMOV A,#7EH;MOVX @R0,AMOV DPTR,#2059HMOVX @DPTR,ADOJ0: MOV SP,#53HDOJ5: MOV R6,#80HMOV R7,#80HSHIT: MOV 78H,#20HMOV 7DH,#00HMOV 7EH,#00HMOV R3,#01HDOJ1: MOV P1,#03H ;顺时针转动子程序LCALL DEL0YLCALL GGJ0MOV P1,#06HLCALL DEL0YLCALL GGJ0MOV P1,#0CHLCALL DEL0YLCALL GGJ0MOV P1,#09HLCALL DEL0YLCALL GGJ0SJMP DOJ1SHIT2: MOV 78H,#20HMOV 7DH,#00HMOV 7EH,#01HMOV R3,#00HDOJ2: MOV P1,#09H ;逆时针转动子程序LCALL DEL0YLCALL GGJ0MOV P1,#0CHLCALL DEL0YLCALL GGJ0MOV P1,#06HLCALL DEL0YLCALL GGJ0MOV P1,#03HLCALL DEL0YLCALL GGJ0SJMP DOJ2;延时子程序DEL0Y: MOV A,7DH ;根据(7D)内容改变延时时间 SWAP AMOV R2,AMOV R5,#80HDEL1Y: DJNZ R5,DEL1YLCALL SSEEDJNZ R2,DEL1YRETGGJ0: CJNE R7,#00H,GGJ1 ;步距数为0停止CJNE R6,#00H,GGJ1 ;不为0,减1后显示AJMP DOJ4GGJ1: DJNZ R6,DOJ3DOJ4: LCALL DOJ7MOV R6,#80HCJNE R3,#00H,SHIT2LJMP SHITDOJ3: LCALL DOJ7RETDOJ7: MOV R0,#79HMOV A,R6LCALL PTDS5MOV A,R7LCALL PTDS5LCALL SSEE ;调用显示子程序RETPTDS5: MOV R1,A ;拆送数据子程序ACALL PTDS6MOV A,R1SWAP APTDS6: ANL A,#0FHMOV @R0,AINC R0RETSSEE: SETB RS1 ;换工作区MOV R5,#05HSSE2: MOV 30H,#20HMOV 31H,#7EHMOV R7,#06HSSE1: ;MOV R1,#21H ;字位MOV A,30HCPL A;MOVX @R1,AMOV DPTR,#0FF21HMOVX @DPTR,AMOV R0,31HMOV A,@R0MOV DPTR,#DDFFMOVC A,@A+DPTR ;取字形代码;MOV R1,#22H;MOVX @R1,A ;字形送入MOV DPTR,#0FF22HMOVX @DPTR,AMOV A,30HRR A ;右移MOV 30H,ADEC 31HMOV A,#0FFH;MOVX @R1,A ;关显示MOV DPTR,#0FF22HMOVX @DPTR,ADJNZ R7,SSE1 ;六位显示完了吗?DJNZ R5,SSE2 ;5次显示完了吗?CLR RS1RETDDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND六、存在的问题和解决方法1、存在的问题设计过程中出现了两个问题,一是第二位始终显示1即慢速而实验要求是显示0即快速。

步进电机设计报告

步进电机设计报告

步进电动机的设计报告题目:步进电动机的设计与制作学院:大数据与信息工程学院专业:计算机科学与技术班级:电信113学生姓名:王浩指导教师:马光喜老师2015年1月6日目录前言---------------------------------------------------------------2 1.设计目标及内容------------------------------------------------31.1 设计内容---------------------------------------------------41.2 设计目的---------------------------------------------------42.硬件原理及设计分析--------------------------------------------42.1 步进电机的工作原理-----------------------------------------52.2 液晶显示原理----------------------------------------------52.3 步进电机转速控制及显示设计(LCD显示转速)的硬件框图--------62.4 总的硬件电路图---------------------------------------------73.软件分析及设计------------------------------------------------83.1 软件需求分析-----------------------------------------------83.2程序流程图-------------------------------------------------83.3软件代码---------------------------------------------------94.操作说明及结果分析-------------------------------------------185.调试过程中遇到的问题和解决方法-------------------------------186.硬件实习总结-------------------------------------------------19 7.参考文献-----------------------------------------------------19前言在电子科技不断飞速发展的今天,数字控制技术得到了广泛而深入的应用。

步进电机课程设计报告

步进电机课程设计报告

目录一、步进电机介绍 11.1 步进电机发展现状 11.2 步进电机工作原理 11.3 步进电机的特点 21.4 步进电机换相、转向及加/减速控制方案 21.5 步进电机工作方式 21.6 选用电机 3二、硬件电路设计 42.1 设计思路 42.2 芯片介绍 42.2.1 8088CPU 42.2.2 8255A 72.2.3 ULN2803 92.3 模块接线图 92.4 硬件原理图 102.4.1 8088最小系统连接电路 102.4.2 步进电机控制接线电路 102.4.3 驱动电路2803 112.4.4 35BYJ46步进电机接线电路 11三、软件设计 123.1 软件算法 123.2 程序流程图 143.3 源程序 14四、总结 17一、步进电机介绍1.1 步进电机发展现状步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字执行元件,随着计算机应用技术、电子技术和自动控制技术在国民经济各个领域中的普及与深入,步进电机的需求量越练越大。

随着工业技术的不断发展,以及同类产品的不断出现,步进电机面临着前所未有的挑战。

但近30年来,数字技术、计算机技术和永磁材料的迅速发展,推动步进电机的发展,为步进电机的应用开辟了广阔的前景,近几年来,步进电机需求量一直呈现出较快的增长速度,其中扫描仪、打印机、传真、DVD-ROM/CD-ROM驱动器、空调及多功能自动化办公设备等应用对步进电机的需求增长最强。

此外由于USB2.0的日益流行促进了高分辨率扫描仪的销售,步进电机向着小型、薄型和更小的步进角度发展。

1.2 步进电机工作原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机控制设计课设报告

步进电机控制设计课设报告

步进电机控制设计课设报告引言步进电机是一种电动机根据控制信号的脉冲数进行角度移动的设备。

它具有精准的位置控制、高转矩和低功耗等优点,被广泛应用于各个领域。

本次课设旨在设计一套步进电机控制系统,通过编程控制步进电机的转动角度,实现不同工作环境下步进电机的精确控制。

设计方案我们基于`Arduino`开发板和`EasyDriver`驱动板来搭建步进电机控制系统。

材料准备1. Arduino开发板2. EasyDriver驱动板3. 步进电机4. 电源5. 连接线硬件连接1. 首先,将Arduino开发板与EasyDriver驱动板通过引脚连接线连接好。

其中,Arduino的数字引脚9、10、11分别连接到EasyDriver驱动板的Step、Dir、EN引脚,GND与GND相连,以及VCC与5V相连。

2. 将EasyDriver驱动板与步进电机连接。

EasyDriver的A和B引脚分别与步进电机的两个相连接。

软件编写1. 首先,在Arduino开发环境中创建一个新的项目。

然后,导入`AccelStepper`库,该库提供了进行步进电机控制的相关功能。

2. 在代码中初始化步进电机对象,并设置电机类型为`FULL3WIRE`,也就是设置步进电机的引脚数为3。

3. 设置步进电机的速度和加速度等参数。

这些参数可以根据实际需求进行调整。

4. 在主循环中,通过调用步进电机对象的`runSpeedToPosition`函数来控制电机的转动角度。

参数为目标位置的步数。

如果希望电机一直转动,则可以将参数设置为`NAN`。

5. 最后,上传代码到Arduino开发板中运行。

实验过程及结果我们将步进电机控制系统连接好后,通过编写相应的代码进行控制。

首先,我们进行了简单的步进电机测试,调整电机的速度和加速度参数,分别观察电机的转动情况。

通过调整参数,我们成功实现了不同速度和加速度下电机的转动控制。

接着,我们设计了一个简单的应用场景来测试步进电机的精确控制能力。

步进电机课程设计报告

步进电机课程设计报告

(步进电机的驱动系统的设计)课程设计说明书系(部):班级:学生姓名:学号:指导教师:时间:2011年12月26日到2011年12月30日课程设计任务书题目步进电机驱动系统的设计系(部)专业班级学生姓名学号12 月26 日至12 月30 日共1 周指导教师(签字)系主任(签字)2011年12 月30日目录摘要 (7)一、系统方案 (8)1、元件介绍 (8)二、实验原理 (9)1、步进电机原理 (9)2.三相六拍环形脉搏冲分配器 (10)三、源程序 (18)四、结果分析与总结 (20)五、主要参考资料 (21)摘要本次课程设计主要基于试验台的步进电机控制的设计。

主要使用AT89C51芯片以及ULN2003驱动芯片等来驱动步进电机,主要通过脉冲的输入顺序来控制步进电机的正反转,通过延时来控制步进电机的转速,软件部分采用了汇编语言编写程序代码,通过判断,跳转,循环,延时等基本技术实现。

关键词:Keil Proteus 步进电机 AT89C51 ULN2003一、系统方案1、元件介绍本实验用到了AT89C51.ULN2003、步进电机等主要芯片。

实验的主要过程是通过按键的扫描和串口程序的输入,根据输入值得不同来设置不同的数值。

然后通过8255输出不同的电压来控制不进电机的转速通过8253设置延时中断,以每一步中间的延时来控制转动速度。

LED模块的功能是显示步进电机的速度。

此次试验主要分为软件设计和硬件设计两方面来实施,在掌握步进电机的原理之上来了解硬件电路,再通过汇编语言的编程和串口的功能扩展实现外部串口的软件通信。

2、流程图如图1所示、图1、试验流程图二、实验原理1、步进电机原理电机是工业过程控制及仪表中常用的控制元件之一,例如在机械装置中可以用丝杠把角度变为直线位移,也可以用步进电机带螺旋电位器,调节电压或电流,从而实现对执行机构的控制。

步进电机可以直接接收数字信号,不必进行数模转换,用起来非常方便。

步进电机设计报告

步进电机设计报告
目录
一、步进电机控制原理介绍………………………………………………………………2
1.1、步进电机的控制原理………………………………………………………………2
1.2步进电机的控制方式…………………………………………………………………2
1.3步进电机的驱动方式…………………………………………………………………2
MOV R ,#POINT ;建立正转数据指针
LOOP1: MOV A,@R ;读控制字
JZ LOOP3 ;结束符转
MOV P ,A ;
ACALL DELAY ;延时
INC R ;数据指针加1
AJMP LOOP1 ;循环
LOOP2: MOV A,@POINT ;建立反转数据指针
ADD A,#06H
MOV R ,A ;
1.4步进电机的单片机控制………………………………………………………………3
1 .4.1双相三拍控制………………………………………………………………………3
1.4.2三相六拍控制程序…………………………………………………………………4
二、方案比较与选择………………………………………………………………………5
//void cmd_wr();
void ShowState1();
void ShowState2();
void ShowState3();
void clock(unsigned int Delay) ;
void DoSpeed(); //计算速度
//正转值
#define RIGHT_RUN 1
//反转值
图8、仿真图
3.2仿真工具
画好图后双击芯片得如图9对话框:
图9程序仿真对话框

步进电机课程设计报告

步进电机课程设计报告

湖南工程学院课程设计课程名称微机原理与应用课题名称步进电机控制系统设计专业 ***班级 ***学号 ****姓名 ***指导教师 ***2011年 6 月 27日湖南工程学院课程设计任务书课程名称微机原理与应用课题步进电机控制系统设计专业班级 ***学生姓名 *** 学号 ***指导老师 *** 审批任务书下达日期 2011年 6月 27日任务完成日期2011年7 月 8日目录第1章概述................................ 错误!未定义书签。

1.1单片机概述............................. 错误!未定义书签。

1.2步进电机概述........................... 错误!未定义书签。

第2章系统总体方案设计 .................... 错误!未定义书签。

2.1系统总体设计思路....................... 错误!未定义书签。

2.2系统总体设计方案方框图................. 错误!未定义书签。

第3章硬件介绍与说明 ...................... 错误!未定义书签。

3.1开发板按键硬件连接及实物说明........... 错误!未定义书签。

3.2开发板数码管硬件连接及实物说明..... 错误!未定义书签。

3.3开发板步进电机硬件连接及实物图......... 错误!未定义书签。

第4章软件设计流程........................ 错误!未定义书签。

4.1系统整体流程概述....................... 错误!未定义书签。

4.2系统整体流程图......................... 错误!未定义书签。

第5章调试结果与说明 ...................... 错误!未定义书签。

5.1系统调试............................... 错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理课程设计报告题目步进电机控制课程设计学院电子信息工程学院专业自动化(本)学生姓名黄万林学号201010311123 年级2010 级指导教师程浩职称副教授二〇一二年七月步进电机转速实时控制摘要:本设计主要是通过编写程序来驱动步进电机转动,进一步对转速实时控制。

采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调整。

根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。

实验中采用电压为DC12V的四相八拍步进电机35BYJ46型电机。

用ULN2003作为步进电动机驱动电路主芯片,以8255A作为8086并行输出接口,8086对步进电机的控制信号则通过8255A送到ULN2003。

关键词:步进电机;8255;驱动程序;第1章绪论 (4)1.1 研究背景 (4)1.2 选题的目的和意义 (4)1.3 本课程设计的主要内容 (5)第2章步进电机转速实时控制 (6)2.1 设计方案 (6)2.2 硬件系统基本原理 (6)2.3 设计思想 (8)2.4 软件框图 (9)2.5 软件清单 (13)第3章结束语 (20)参考文献 (22)一、绪论1.1 研究背景1.2 选题的目的和意义一、前言步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。

这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。

使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

二、感应子式步进电机工作原理(一)反应式步进电机原理由于反应式步进电机工作原理比较简单。

下面先叙述三相反应式步进电机原理。

1、结构:电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开0、1/3て、2/3て,(1/3て,C与齿3向右错开2/32、旋转:如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……通电,电机就反转。

由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。

而方向由导电顺序决定。

1/3て改变为1/61/3て变为1/12て,1/24て,这就是电机细分驱动的基本理论依据。

不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m……(m-1)/m,1。

并且导电按一定的相序电机就能正反转被控制——这是步进电机旋转的物理条件。

只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。

3、力矩:电机一旦通电,在定转子间将产生磁场(磁通量Ф)当转子与定子错开一定角度产生力F与(dФ/dθ)成正比S 其磁通量Ф=Br*S Br为磁密,S为导磁面积F与L*D*Br成正比L为铁芯有效长度,D为转子直径Br=N·I/R N·I为励磁绕阻安匝数(电流乘匝数)R 为磁阻。

力矩=力*半径力矩与电机有效体积*安匝数*磁密成正比(只考虑线性状态)因此,电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。

实验目的:1、掌握四相步进电机工作原理以及相关接口电路的原理;2、理解步进电机正、反转工作原理和转速控制原理。

意义:本设计为掌握利用计算机来加深对所学知识的理解和掌握,通过步进电机转速实时控制平台,运用所学的理论和方法进行实践、解决问题。

1.3 本课程设计的主要内容(1)实现步进电机转速实时控制,利用键盘控制电机的正反转、调节转速,连续转动或转动指定步数;并将相应数据显示在数码管上。

(2)对步进电机转速实时控制的主要环节,包括设计要求及思路、硬件系统基本原理、软件框图及程序清单进行了详细的阐述。

二、步进电机转速实时控制2.1 设计要求及思路1、设计要求:使用键盘控制步进电机的正反转、调节转速,连续转动或转动指定步数;将相应的数据显示在数码管上。

2、设计思路:成都学院(成都大学)课程设计报告2.2 硬件系统的基本原理1、系统硬件子系统的构成本设计采用的步进电机为35BYJ46型四相八拍电机,电压为DC12V ,其励磁线圈及其励磁顺序如图2-1及表2-1所示:图2-1 励磁线圈示意图表2-1 励磁顺序表2、步进电机工作原理以及8255接口的关系如图2-2:图2-2 实验线路135 423、工作原理四相步进电机示意图如图2-3、2-4,转子由一个永久磁铁构成,定子分别由四组绕组构成:图2-3 电机定子和转子示意图图2-4 电气连接示意图当S1连通电源后,定子磁场将产生一个靠近转子为N极,远离转子为S极才磁场,这样的定子磁场和转子的固有磁场发生作用,转子就会转动,正确地S1、S4的送电次序,就能控制转子旋转的方向。

例如:若送电的顺序为S1闭合断开S2闭合断开S3闭合断开S4闭合断开,周而复始的循环,在定子和转子共同作用下,电机就顺时针旋转,如图2-5:图2-5 电机顺时针旋转示意图若送电的顺序为S4闭合断开S3闭合断开S2闭合断开S1闭合断开,周而复始的循环,则电机就逆时针旋转,原理同理。

8255A向步进电机发出控制脉冲如图2-6:图2-6 控制脉冲2.3 设计思想根据步进电机的励磁顺序列写控制步进电机顺序转动的输出的数据表——→初始化8255A的工作方式——→设定需要步进电机转过的步数——→顺序依次逐个延时(调用延时函数1:延时较长,实现慢转)输出表中数据——→设定需要步进电机快速转过的步数——→顺序依次逐个延时(调用延时函数2:延时较短,实现快转)输出表中数据——→设定需要反转过的步数——→逆序依次逐个延时(电泳延时函数1.慢速)输出表中的数据——→设定需要步进电机快速反转的步数——→逆序依次逐个延时(调用延时函数2,快速)输出表中数据。

以此循环,则可实现让步进电机先从低速正转到高速正转,再从高速正转到低速反转,再由低速反转到高速反转,周而复始。

2.4 软件框图本课程设计的软件框图如图2-7至2-12:图2-7 主程序框图图2-10 增速子程序图2-11 减速子程序图2-12 定时中断程序图2-13 主程序框图2.5 软件清单.MODEL TINYEXTRN Display8:NEAR, SCAN_KEY:NEARIO8259_0 EQU 0F000H ;IO8259_1 EQU 0F001H ;Con_8253 EQU 0E003H ;8353控制字端口地址T0_8253 EQU 0E000H ;8253计数器0的端口地址IO8255_Con EQU 0D003H ;8255控制字端口地址IO8255_PC EQU 0D002H ;8255PC端口地址.STACK 100.DATAStepControl DB 0 ;下一次送给步进电机的值buffer DB 8 DUP(0) ;显示缓冲区,8个字节buffer1 DB 8 DUP(0) ;显示缓冲区,8个字节SpeedNo DB 0 ;选择哪一级速度StepDelay DB 0 ;转动一步后,延时常数StartStepDelay DB 0;若选择速度过快,延时由长到短,最终使用对应延时常数StartStepDelay1 DB 0 ;StartStepDelaybFirst DB 0 ;有没有转动过步进电机bClockwise DB 0 ; =1 顺时针方向 =0 逆时针方向转动bNeedDisplay DB 0 ;已转动一步,需要显示新步数StepCount DW 0 ;需要转动的步数StepDelayTab: DB 250,125,83,62,50,42,36,32,28,25,22,21.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPMOV bFirst,1 ;有没有转动过步进电机MOV bClockwise,1 ;顺时针方向MOV StepControl,33H ;下一次送给步进电机的值MOV SpeedNo,5 ;第五级速度CALL Init8255 ;初始化8255CALL Init8253 ;初始化8253CALL Init8259 ;初始化8259CALL WriIntverMOV buffer,0 ;显示缓冲器初始化MOV buffer+1,0MOV buffer+2,0MOV buffer+3,0MOV buffer+4,10HMOV AL,SpeedNoMOV buffer+5,ALMOV buffer+6,10HMOV buffer+7,0STAR2: LEA SI,bufferLEA DI,buffer1MOV CX,8REP MOVSBLEA SI,buffer1CALL Display8STAR3: CALL Scan_KeyJB STAR5CMP bNeedDisplay,0JZ STAR3MOV bNeedDisplay,0CALL Step_SUB_1JMP STAR2STAR5: CLI ;终止步进电机转动CMP AL,10JNB STAR1MOV AH,buffer+2MOV buffer+3,AHMOV AH,buffer+1MOV buffer+2,AHMOV AH,bufferMOV buffer+1,AHMOV buffer,ALJMP STAR2STAR1: CMP AL,14JNB STAR3LEA SI,DriverTabSUB AL,10SHL AL,1XOR AH,AHMOV BX,AXJMP CS:[SI+BX]DriverTab: DW Direction ;转动方向DW Speed_up ;提高转速DW Speed_Down ;降低转速DW Exec ;步进电机根据方向、转速、步数开始转动Direction: CMP bClockwise,0JZ ClockwiseMOV bClockwise,0MOV buffer+7,1AntiClockwise: CMP bFirst,0JZ AntiClockwise1MOV StepControl,91HJMP Direction1AntiClockwise1: MOV AL,StepControlROR AL,2MOV StepControl,ALJMP Direction1Clockwise: MOV bClockwise,1MOV buffer+7,0CMP bFirst,0JZ Clockwise1MOV StepControl,33HJMP Direction1 Clockwise1: MOV AL,StepControlROL AL,2MOV StepControl,AL Direction1: JMP STAR2Speed_up: MOV AL,SpeedNoCMP AL,11JZ Speed_up2Speed_up1: INC ALMOV SpeedNo,ALMOV buffer+5,ALSpeed_up2: JMP STAR2Speed_Down: MOV AL,SpeedNoCMP AL,0JZ Speed_Down1DEC ALMOV SpeedNo,ALMOV buffer+5,ALSpeed_Down1: JMP STAR2Exec: MOV bFirst,0CALL TakeStepCountLEA BX,StepDelayTabMOV AL,SpeedNoXLATMOV StepDelay,ALCMP AL,50JNB Exec1MOV AL,50Exec1: MOV StartStepDelay,ALMOV StartStepDelay1,ALSTIJMP STAR2TIMER0: PUSH AXPUSH DXDEC StartStepDelayJNZ TIMER0_1MOV AL,StartStepDelay1CMP AL,StepDelayJZ TIMER0_2DEC ALMOV StartStepDelay1,ALTIMER0_2: MOV StartStepDelay,ALMOV AL,StepControlMOV DX,IO8255_PCOUT DX,ALCMP bClockwise,0JNZ TIMER0_3ROR AL,1JMP TIMER0_4TIMER0_3: ROL AL,1TIMER0_4: MOV StepControl,ALCMP StepCount,0JZ TIMER0_1MOV bNeedDisplay,1DEC StepCountJNZ TIMER0_1add sp,8 ;小写部分不允许使用单步、单步进入命令popfclipushfsub sp,8nopTIMER0_1: MOV DX,IO8259_0MOV AL,20HOUT DX,ALPOP DXPOP AXIRETStep_SUB_1 PROC NEARMOV CX,4LEA BX,bufferStep_SUB_1_1: DEC BYTE PTR [BX]CMP BYTE PTR [BX],0FFHJNZ Step_SUB_1_2MOV BYTE PTR [BX],9INC BXLOOP Step_SUB_1_1Step_SUB_1_2: RETStep_SUB_1 ENDPTakeStepCount PROC NEARMOV AL,buffer+3 ;转动步数送入StepCountMOV BX,10MUL BLADD AL,buffer+2MUL BLADD AL,buffer+1ADC AH,0MUL BXADD AL,bufferADC AH,0MOV StepCount,AXRETTakeStepCount ENDPInit8255 PROC NEAR ;初始化8255MOV DX,IO8255_ConMOV AL,80HOUT DX,AL ;8255 PC输出DEC DXDEC DXMOV AL,0FFHOUT DX,AL ;0FFH->8255 PCRETInit8255 ENDPInit8253 PROC NEAR ;初始化8253MOV DX,Con_8253MOV AL,35HOUT DX,AL ;计数器T0设置在模式2状态,BCD码计数MOV DX,T0_8253MOV AL,10HOUT DX,ALMOV AL,02HOUT DX,AL ;CLK0/210RETInit8253 ENDPInit8259 PROC NEAR ;初始化8259MOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HOUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0FEHOUT DX,ALRETInit8259 ENDPWriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,TIMER0STOSWMOV AX,CSSTOSWPOP ESRETWriIntver ENDPEND START三、结束语本次课程设计能圆满完成,首先要感谢校方给与我这么一次诚挚的机会,能够独立地完成一次课程设计,并在这个过程中,给予我们各种方便,使我们在这个学期快要结课的时候,能够将学到的知识应用到实践中,增强了我们实际操作和动手应用能力,提高了独立思考的能力。

相关文档
最新文档