步进电机控制系统设计
- 格式:doc
- 大小:166.50 KB
- 文档页数:13
步进电机运动控制系统设计设计时考虑到CPU在执行指令时可能受到干扰的冲击,导致程序”跑飞”或者进入”死循环”,因此,设计了看门狗电路,使用的是MAXIM公司生产的微处理系统监控集成芯片MAXI813。
本文还详细地给出了相关的硬件框图和软件流程图,并编制了该汇编程序。
步进电机最早是在1920年由英国人所开发。
1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。
以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的系统中。
在生产过程中要求自动化、省、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微和技术的发展,步进电机的需求量与日俱增,在各个国民领域都有应用。
步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。
步进电机可以直接用数字信号驱动,使用非常方便。
一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。
步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。
在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。
因此非常适合于单片机控制。
步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。
步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。
传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。
步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。
基于PID控制的步进电机位置闭环控制系统设计一、引言在现代自动化控制系统中,步进电机广泛应用于各种精密定位和定量控制需求的场景。
步进电机的控制涉及到位置的精确定位和稳定性的维持,这就需要一个有效的闭环控制系统来实现。
PID控制器被广泛应用于步进电机的闭环控制系统设计中,本文将探讨基于PID控制的步进电机位置闭环控制系统的设计原理和实现方法。
二、步进电机简介步进电机是一种特殊的直流电动机,通过控制脉冲信号的频率和顺序来实现精确控制。
步进电机的圆周分为若干等角度的步进角,每个步进角对应一个旋转角度,这使得步进电机在控制方面更加便捷和精确。
由于步进电机无需传感器反馈,因此常用于定量控制和精确位置控制的场合。
三、PID控制器原理PID控制器是一种经典的闭环控制器,其由比例(P)、积分(I)、微分(D)三个部分组成。
比例控制决定输出与偏差的比例关系,积分控制消除系统稳态误差和提高系统的响应速度,微分控制用于抑制系统对于负荷变化的敏感性。
PID控制器采用反馈控制策略,利用实际输出和期望输出之间的偏差来调整控制量。
四、步进电机位置闭环控制系统设计步进电机的位置闭环控制系统设计基于PID控制器。
首先,需要传感器来获得实际位置信息,然后与期望位置进行比较以获取偏差。
接下来,将偏差作为输入,经过PID控制器计算出控制量,并输出给步进电机驱动器。
步进电机驱动器根据控制量控制步进电机的旋转,从而实现位置的精确控制。
五、传感器选择为了获取步进电机的实际位置信息,需要选择合适的传感器。
常用的传感器包括光电编码器和霍尔传感器。
光电编码器具有高精度和高分辨率的特点,但价格较高;霍尔传感器则具有较低的价格和较高的可靠性,但分辨率较低。
根据具体需求和预算可选择合适的传感器。
六、PID参数调整PID控制器的性能很大程度上取决于参数的选择。
比例参数决定了响应的速度和稳定性,过大的比例参数会导致系统震荡,过小则导致响应速度慢;积分参数消除稳态误差,过大的积分参数会导致系统震荡,过小则无法消除稳态误差;微分参数能够抑制系统对负荷变化的敏感性,过大的微分参数会导致系统噪声,过小则无法起到抑制作用。
基于stm32的步进电机控制系统设计与实现基于STM32的步进电机控制系统设计与实现1. 概述步进电机是一种非常常见的电动机,在许多自动化系统和工控设备中得到广泛应用。
它们具有精准的定位能力和高效的控制性能。
本文将介绍如何使用STM32微控制器来设计和实现步进电机控制系统。
2. 硬件设计首先需要确定步进电机的规格和要求,包括步距角、相数、电流和电压等。
根据步进电机的规格,选择合适的驱动器芯片,常见的有L298N、DRV8825等。
接下来,将选定的驱动器芯片与STM32微控制器相连。
通常,步进电机的控制信号需要使用到微控制器的GPIO引脚,同时由于步进电机的工作电流比较大,需要使用到微控制器的PWM输出信号来调节驱动器芯片的电流限制。
除此之外,还需要一个电源电路来提供驱动器和步进电机所需的电源。
可以选择使用一个电源模块,也可以自行设计电源电路。
3. 软件设计软件设计是步进电机控制系统的核心部分,主要包括步进电机驱动代码的编写和控制算法的实现。
首先,需要在STM32的开发环境中编写步进电机驱动代码。
根据所选的驱动器芯片和步进电机规格,编写相应的GPIO控制代码和PWM输出代码。
同时,可以添加一些保护性的代码,例如过流保护和过热保护等。
接下来,需要设计和实现步进电机的控制算法。
步进电机的控制算法通常是基于位置控制或速度控制的。
对于位置控制,可以使用开环控制或闭环控制,闭环控制通常需要使用到步进电机的编码器。
对于开环控制,可以通过控制步进电机的脉冲数来控制位置。
通过控制脉冲的频率和方向,可以实现步进电机的转动和停止。
这种方法简单直接,但是定位精度有限。
对于闭环控制,可以使用PID控制算法或者更高级的控制算法来实现位置控制。
通过读取步进电机的编码器反馈信号,可以实时调整控制输出。
这种方法可以提高定位精度和抗干扰能力,但是算法实现相对复杂。
4. 系统实现在完成硬件设计和软件设计后,可以进行系统的调试和实现。
基于51单片机的步进电机控制系统设计步进电机是一种特殊的直流电动机,具有定角度、定位置、高精度等特点,在许多领域得到广泛应用,如机械装置、仪器设备、医疗设备等。
本文将基于51单片机设计一个步进电机控制系统,主要包括硬件设计和软件设计两部分。
一、硬件设计步进电机控制系统的硬件设计主要包括51单片机、外部电源、步进电机驱动模块、以及其他辅助电路。
1.51单片机选择由于步进电机控制需要执行复杂的算法和时序控制,所以需要一个性能较高的单片机。
本设计选择51单片机作为主控芯片,因为51单片机具有丰富的外设接口、强大的计算能力和丰富的资源。
2.外部电源步进电机需要较高的电流供给,因此外部电源选择稳定的直流电源,能够提供足够的电流供电。
电源电压和电流的大小需要根据具体的步进电机来确定。
3.步进电机驱动模块步进电机驱动模块是连接步进电机和51单片机的关键部分,它负责将51单片机输出的脉冲信号转化为对步进电机的驱动信号,控制步进电机准确转动。
常用的步进电机驱动芯片有L297、ULN2003等。
4.其他辅助电路为了保证步进电机控制系统的稳定运行,还需要一些辅助电路,如限流电路、电源滤波电路、保护电路等。
这些电路的设计需要根据具体的应用来确定。
二、软件设计1.系统初始化系统初始化主要包括对51单片机进行外部中断、定时器、串口和IO 口等初始化设置。
根据实际需求还可以进行其他模块的初始化设置。
2.步进电机驱动程序步进电机的驱动程序主要通过脉冲信号来控制电机的转动。
脉冲信号的频率和脉冲宽度决定了电机的转速和运行方向。
脉冲信号可以通过定时器产生,也可以通过外部中断产生。
3.运动控制算法步进电机的运动控制可以采用开环控制或闭环控制。
开环控制简单,但无法保证运动的准确性和稳定性;闭环控制通过对电机转动的反馈信号进行处理来调整脉冲信号的生成,从而实现精确的运动控制。
4.其他功能设计根据具体的应用需求,可以加入其他功能设计,如速度控制、位置控制、加速度控制等。
基于stm32103的步进电机控制系统设计步进电机是一类常用的电机,广泛应用于控制系统中。
本文旨在介绍步进电机及其在控制系统中的应用,并概述本文的研究目的和重要性。
步进电机是一种将电脉冲信号转换为旋转运动的电机。
构成和工作方式步进电机由定子、转子和驱动电路组成。
定子是电磁铁,可以根据输入的电流控制电磁铁产生磁场。
转子是由磁性材料制成的旋转部分,定子的磁场会使得转子受到磁力的作用而旋转。
步进电机的工作方式是通过不断输入脉冲信号来控制电机的运动。
每一次输入一个脉冲信号,步进电机就会转动一定的步进角度。
步进角度取决于步进电机的类型和驱动电路的设置,常见的步进角度有1.8度和0.9度。
输入脉冲信号旋转的步进角度输入脉冲信号的频率和方向决定了步进电机的转动速度和方向。
每一个脉冲信号的到来,步进电机会按照预定的步进角度旋转。
例如,若步进电机的步进角度为1.8度,那么每接收一个脉冲信号,步进电机就会旋转1.8度的角度。
综上所述,步进电机通过输入脉冲信号实现了精确而可控的旋转运动。
本文将阐述基于STM单片机的步进电机控制系统设计。
该设计包括硬件电路设计和软件程序设计。
本文将介绍如何通过STM与步进电机进行通信和控制,以实现预定的步进运动。
步进电机控制系统的硬件电路设计主要包括以下部分:步进电机驱动电路:通过STM的GPIO口控制步进电机驱动电路,实现电机的正转、反转和停止等操作。
电源电路:为步进电机提供稳定的电源供电,保证系统正常工作。
外设接口:设计相应的接口电路,实现STM与外部设备的连接。
步进电机控制系统的软件程序设计主要涉及以下方面:初始化设置:在程序开始运行时,对STM进行初始化设置,包括引脚配置、时钟设置等。
步进电机驱动程序:编写相应的程序代码,通过GPIO口控制步进电机的驱动电路,实现电机的正转、反转和停止等操作。
运动控制程序:编写相应的程序代码,通过控制步进电机的驱动电路,实现预定的步进运动,包括移动一定的步数、以特定的速度旋转等。
基于单片机的步进电机控制系统设计引言:步进电机是一种常用的电机类型,具有精准的位置控制、高效的能量转换等特点。
在许多自动化设备中广泛应用,如数控机床、3D打印机、机器人等。
本文将以基于单片机的步进电机控制系统设计为主题,介绍系统的硬件设计、软件设计以及实验验证。
一、硬件设计1.步进电机选型:根据实际应用需求,选择适当的步进电机。
包括步距角、转速范围、扭矩要求等等。
2.电源设计:步进电机需要驱动电压和电流,根据步进电机的额定电压和电流选用适当的电源。
3.驱动电路设计:步进电机通常需要驱动电路来控制电流和脉冲序列。
常见的驱动电路有全桥驱动器、半桥驱动器等。
4.信号发生器设计:步进电机通过脉冲信号来控制转动角度和速度,因此需要信号发生器来产生合适的脉冲序列。
常见的信号发生器有定时器、计数器等。
5.单片机接口设计:单片机作为步进电机控制系统的核心,需要与其他硬件进行通信。
因此需要设计合适的接口电路,将单片机的输出信号转换为驱动电路和信号发生器所需的电压和电流。
二、软件设计1.单片机程序框架设计:根据具体的单片机型号和开发环境,设计合适的程序框架。
包括初始化设置、主循环、中断处理等。
2.脉冲生成程序设计:根据步进电机的控制方式(如全步进、半步进、微步进等),设计脉冲生成程序。
通过适当的延时和输出信号控制,产生合适的脉冲序列。
3.运动控制程序设计:设计运动控制程序,实现步进电机的前进、后退、加速、减速等功能。
根据具体需求,可以设计不同的运动控制算法,如速度环控制、位置环控制等。
4.保护机制设计:为了保护步进电机和控制系统,设计合适的保护机制。
如过流保护、过压保护、过载保护等。
三、实验验证1.硬件连接:将步进电机、驱动电路和单片机按照设计进行连接。
2.软件调试:通过单片机编程,调试程序代码。
确保脉冲生成、运动控制等功能正常工作。
3.功能测试:对步进电机控制系统进行功能测试,包括正转、反转、加速、减速等功能。
通过观察步进电机的运动状态和测量相关参数来验证系统设计的正确性和性能。
基于stm32的步进电机控制系统设计与实现基于STM32的步进电机控制系统设计与实现步进电机是一种通过对电机的脉冲信号进行控制,使得电机按照一定角度或步长旋转的电机。
在许多应用中,如打印机、数控机床、纺织机械等场合,步进电机被广泛应用。
本文将介绍基于STM32的步进电机控制系统的设计与实现。
1. 系统设计在步进电机控制系统的设计中,首先需要确定系统的功能和要求。
常见的步进电机控制系统一般包括以下几个部分:1.1 信号发生器:信号发生器负责生成电机驱动的脉冲信号。
可以使用定时器或外部模块产生高频率的脉冲信号,同时可以通过调整频率和占空比来控制电机的转速和方向。
1.2 位置检测:位置检测模块用于监测电机的旋转角度,并将检测的位置信息反馈给控制系统。
常用的检测方式包括光电传感器、编码器等。
1.3 控制算法:控制算法根据位置信息和系统要求,计算出电机的驱动信号,控制电机的旋转。
常见的控制算法包括开环控制和闭环控制,其中闭环控制更精准。
1.4 驱动模块:驱动模块负责将控制信号转换成适合步进电机的驱动信号,以驱动步进电机旋转。
2. 硬件实现基于STM32的步进电机控制系统的硬件实现主要包括STM32微控制器、步进电机驱动模块和位置检测模块。
2.1 STM32微控制器:选择适合的STM32微控制器作为系统的核心,根据步进电机的要求,选择合适的型号,例如STM32F4系列或STM32F7系列。
2.2 步进电机驱动模块:选择适用于步进电机的驱动模块,常见的驱动模块有A4988、DRV8825等。
驱动模块通常需要电平转换和增加电流限制,以保证步进电机的正常工作。
2.3 位置检测模块:选择合适的位置检测模块,根据具体的需求可以选择光电传感器、编码器等。
位置检测模块通常需要与STM32微控制器进行连接,将检测到的位置信息传输给控制系统。
3. 软件实现基于STM32的步进电机控制系统的软件实现主要包括控制算法的编写、驱动模块的配置和位置检测模块的读取。
基于STM32的分布式步进电机控制系统设计随着工业化的不断发展,现代工业生产已经越来越依赖于各种控制系统。
其中,步进电机控制系统在现代生产中占据着非常重要的地位。
本文将详细介绍基于STM32的分布式步进电机控制系统设计。
一、系统设计介绍步进电机控制系统是一个复杂的系统,必须具备高效、稳定的性能。
为此,我们采用基于STM32的分布式步进电机控制系统设计。
该系统的设计包括如下几个部分:1.主控制器与多个从控制器:该系统采用了主控制器与多个从控制器的设计模式,主控制器通过网络连接多个从控制器,实现对多个步进电机的控制。
2.操作界面设计:操作界面为多族语言界面,使得不同地区及语种的客户使用时无压力,并可远程下载数据是否更新;该界面采用了人性化操作模式,实时检测设备状态,并且通过双向通讯方式与设备通信。
3.步进电机驱动器:步进电机驱动器采用数字驱动方式,控制精度高,同时具有更高的速度和更大的扭距;驱动器设备支持矢量控制,对于转矩、速度、位置等高精度控制非常有效。
4.网络通讯接口:网络通讯接口采用标准的以太网接口,支持多协议,可以与其他设备无缝连接。
同时,该接口可以支持多种网络通讯协议,支持远程访问、在线监控等功能。
二、系统架构设计系统架构设计采用七层网络架构,其中包括物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
物理层主要负责硬件设备的工作,数据链路层负责数据传输的可靠性,网络层负责数据包的传输与路由,传输层负责数据包的重传与控制,会话层负责为应用程序提供服务,表示层负责数据格式转换,应用层提供各种应用程序。
三、具体功能实现基于STM32的分布式步进电机控制系统主要实现以下功能:1.步进电机控制:系统可以控制多个步进电机的转矩、速度、位置等参数,实现高精度控制。
2.状态监测:系统可以实时监测步进电机的状态,包括位置、速度等,保证控制的准确性。
3.网络控制:系统可以通过网络远程控制多个步进电机,实现人机交互。
课程设计任务书设计题目:微机步进电机控制系统设计设计目的:1.巩固和加深课堂所学知识;2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;3.通过步进电机控制系统设计与制作,深入了解与掌握步进电机的运行方式、方向、速度、启/停的控制。
设计任务及要求:(在规定的时间内完成下列任务)任务:控制四相步进电机按双八拍的运行方式运行。
按下开关SW1时启动步进电机,按ESC键停止工作。
采用循环查表法,用软件来实现脉冲循环分配器的功能对步进电机绕组轮流加电。
要求对题目进行功能分析(四项功能:快速顺时针旋转,慢速顺时针旋转,快速逆时针旋转和慢速逆时针旋转),进行步进电机远程控制系统硬件电路设计,画出电路原理图、元器件布线图、实验电路图;绘制程序流程图,进行步进电机控制程序设计(采用8086汇编语言);系统调试、运行,提交一个满足上述要求的步进电机控制系统设计。
时间安排:(部分时间,某些工作可以自己安排重叠进行)具体要求:设计报告撰写格式要求(按提供的设计报告统一格式撰写),具体内容如下:①设计任务与要求②总体方案与说明③硬件原理图与说明④实验电路图与说明⑤软件主要模块流程图⑥源程序清单与注释⑦问题分析与解决方案(包括调式记录、调式报告,即在调式过程中遇到的主要问题、解决方法及改进设想);⑧小结与体会附录:①源程序(必须有简单注释)②使用说明③参考资料指导教师签名:08 年12 月01 日教研室主任(或责任教师)签名:年月日目录第1章需求分析 (1)1.1课程设计题目 (1)1.2步进电机介绍 (1)1.3课程设计任务及要求 (1)1.4软硬件运行环境及开发工具 (1)第2章概要设计 (2)2.1设计原理及实现方法 (2)2.1.1 步进电机控制原理 (2)2.1.2微机步进电机控制系统原理图 (2)2.1.3 运行方式与方向的控制——循环查表法 (3)2.1.4步进电机的启/停控制——设置开关 (4)2.2微机步进电机控制系统设计流程图 (4)第3章详细设计 (5)3.1 硬件设计与实现 (5)3.2软件设计 (5)3.2.1正向慢转子程序 (5)3.2.2正向快转子程序 (6)3.2.3反向慢转子程序 (6)3.2.4反向快转子程序 (6)3.2.5长延时子程序 (7)3.2.6短延时子程序 (7)第4章系统调试与操作说明 (7)4.1系统调试 (7)4.2 操作说明 (8)第5章课程设计总结与体会 (8)参考文献 (9)附录微机步进电机控制系统源程序 (9)第1章需求分析1.1课程设计题目微机步进电机控制系统设计1.2步进电机介绍步进电机是一种将电脉冲信号转换成相应的角位移和线位移的电磁机械装置,是一种输出与输入数字脉冲对应的增量驱动元件。
步进电机具有快速启动和停止的能力,它的步矩角和转速不受电压波动和负载变化的影响,也不受环境条件如:温度、气压、冲击和振动等影响,仅与脉冲频率有关。
它每转一周都有固定的步数,在不丢失步的情况下运行,其步矩误差不会长期累积。
正因为步进电机具有快速启动、精确步进以及能直接接收数字量的特点,所以在定位场合中得到了广泛的应用。
随着微机的发展,步进电机的使用领域将更加广阔。
1.3课程设计任务及要求任务:控制四相步进电机按双八拍的运行方式运行。
将开关K2置高电平时启动步进电机,将K2键置低电平时,停止工作。
步进电机的加电采用循环查表法,用软件来实现脉冲循环分配器的功能对步进电机绕组轮流加电。
要求:要使电机能通过控制实现四项功能:快速顺时针旋转,慢速顺时针旋转,快速逆时针旋转和慢速逆时针旋转,进行步进电机控制系统硬件电路设计,画出电路原理图、元器件布线图、实验电路图;绘制程序流程图,进行步进电机控制程序设计(采用汇编语言)。
1.4软硬件运行环境及开发工具硬件:唐都TDN86/88实验平台、PC机一台开发语言:汇编语言第2章概要设计2.1设计原理及实现方法2.1.1 步进电机控制原理步进电机是将电脉冲信号转换成角位移的一种机电式数模转换器。
其旋转的角位移与输入脉冲的个数成正比;转速与输入脉冲的频率成正比;转动方向和输入脉冲对绕组加电的顺序有关。
因此,步进电机旋转的角度位移、转速以及方向均受输入脉冲的控制。
步进电机在系统中是一种执行元件,都要带负载,因此需要功率驱动。
在电子设备中,一般所需功率较小,常采用达林复合管作功率驱动。
驱动原理如图2.1所示。
图2.1 步进电机驱动原理图2.1.2微机步进电机控制系统原理图步进电机接口的硬件部分主要是提供输送相序代码的并行数据线(8根),以及保护电机绕组的器件,所以接口电路以8255A为主芯片,将PA口作数据口,传送加电代码,再加上锁存器74LS373作绕组保护。
另外,还有功率驱动管TIP122,以及二极管、开关K0、K1、K2。
本实验采用A口作为控制口,B口作为输出口,PA0、PA1、PA2分别接开关的K0、K1、K2,PB0、PB1、PB2、PB3分别接motor unit的ABCD。
微机步进电机控制系统原理图如图2.2所示。
图2.2 微机步进电机控制系统原理图2.1.3 运行方式与方向的控制——循环查表法步进电机的运行方式是指各相绕组循环轮流通电的方式。
本次设计采用的是双八拍,即 步进电机的运行方式及方向控制采用 循环查表法。
循环查表法是将各绕组加电顺序的控制代码编制成一张步进电机相序表(如表2.1所示),存放在内存区,在设置一个地址指针。
表 2.1 步进电机相序表2.1.4步进电机的启/停控制——设置开关K0——控制步进电机旋转速度的快慢,K0=0 表示慢转,K0=1表示快转;K1——控制步进电机旋转方向,K1=0表示正转,K1=1表示反转;K2——控制步进电机的启/停,K2=0表示停,K2=1表示启动。
2.2微机步进电机控制系统设计流程图图2.3 微机步进电机控制系统设计流程图第3章详细设计3.1 硬件设计与实现本电路的设计是利用8255A的A口作为输入口,B口作为输出,C口没有用到。
PA0~~PA2分别用来控制步进电机的开启/停止、正反向、快慢转。
PB0~~PB3作为输出口,分别接步进电机的ABCD端口,输出相序表中的加电编码,从而使步进电机可以开始运转。
具体的接线如图3.1所示:图3.1 微机步进电机控制系统连线图3.2软件设计实现步进电机运行方式、方向和速度以及启/停的控制,是接口软件设计的主要任务。
为此,在编写程序之前,要建立一个相序表。
相序表的建立应根据步进电机运行方式的要求及各绕组与8255A端口连接情况来确定加电代码。
根据上图的连接情况,可以写出相序表中双八拍运行方式的加电代码为:03H,07H,06H,0EH,0CH,0DH,09H,0BH。
在8259初始化完毕后,取出相序表的首地址,将其存如BX。
当要求步行电机正转时,首地址进行加1操作。
在次过程中要检查指针是否指到末地址。
若是,指针减7,回到首地址,如此循环。
当要求反转时,将首地址进行加7操作到达末地址,在进行减1操作,在次过程找要检查指针是否到达首地址。
如是,则将指针加7回到末地址。
根据设计流程图,软件设计部分将本系统分为6个子程序,分别是正向慢转子程序、正向快转子程序、反向慢转子程序、反向快转子程序、长延时子程序、短延时子程序。
3.2.1正向慢转子程序ZM:MOV AL,[BX]CMP AL,0BH ; 检查是不是最后一个加电代码JNZ XH1SUB BX,8XH1:INC BX ; 指针作加1运算,及实现向后移动MOV AL,[BX]OUT 61H,AL ;从B口输出CALL DELAY1 ;调用长延时JMP A13.2.2正向快转子程序ZK:MOV AL,[BX]CMP AL,0BHJNZ XH2SUB BX,8XH2: INC BXMOV AL,[BX]OUT 61H,ALCALL DELAY2 ;调用短延时JMP A13.2.3反向慢转子程序FM:MOV AL,[BX]CMP AL,03H ;检查是不是第一个加电码JNZ FXH1ADD BX,8 ;若是第一个加电码,则指针加8跳到最后一个加电码FXH1:DEC BX ;指针减1,实现向前移动MOV AL,[BX]OUT 61H,ALCALL DELAY1 ;调用长延时子程序JMP A13.2.4反向快转子程序FM:MOV AL,[BX]CMP AL,03H ;检查是不是第一个加电码JNZ FXH1ADD BX,8 ;若是第一个加电码,则指针加8跳到最后一个加电码FXH1:DEC BX ;指针减1,实现向前移动MOV AL,[BX]OUT 61H,ALCALL DELAY2 ;调用短延时子程序JMP A13.2.5长延时子程序DELAY1:PUSH CXMOV CX,0E300H ;通过修改CX的值来提高旋转的速度ADD1: PUSH AXPOP AXLOOP ADD1POP CXRET3.2.6短延时子程序DELAY2:PUSH CXMOV CX,06300H ; CX的值就为循环的次数,通过循环来达到延时ADD2: PUSH AXPOP AXLOOP ADD2POP CXRET第4章系统调试与操作说明4.1系统调试在刚开始,从网上找了一个程序,运行之后,步进电机能够按照需求运转,但是后来同学提醒实现单步运行,这个时候就出现了问题,当要步进点击停止时,moto union 的指示灯总是停在相同的位置,而且单步运行时的灯的顺序并不是按照相序表来变化的,仅仅电机能转而已,所以最后舍弃了这个程序,开始自己写。
首先就是要让步进电机转起来,转起来的前提就是要读去相序表,在这个过程中,我一直采用的是单步运行方式,在单步运行时,能够顺利的读取相序表,但是当我运行时,就出现了问题,因为当读到最后一个时,不能返回来,每次只能顺序读一次。
最后和同学讨论,得到了解决方法,在正转时,每次都判断是不是到了最后一个加电码,如果是,则指针减8(因为正转时,每次指针都要加1),这样就又回到了首地址了。
在整个程序中,延时程序调试的次数最多了,刚开始,用的数值不是很大,这样电机转的速度很快,导致指示灯一直亮着,而且快、慢转几乎很难分清。
最后经过不断的试验,将数据调到了一个比较合理的值,即转的不是很快,灯能正常显示,又能很好的区分快慢转了。
4.2 操作说明首先打开唐都TDN86/88实验平台,按照微机步进电机控制系统连线图(图3.2)连接电路图。
然后在PC机上运行WMD86 4.0,将源代码导入,编译,运行。
各个开关控制步行电机的状态如表4.1所示。
第5章课程设计总结与体会这课程设计,花了差不多7天的时间,在这些天时间里不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。