步进电机实验微机原理
- 格式:doc
- 大小:187.50 KB
- 文档页数:10
第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. 让学生掌握微机原理在步进电机控制中的应用,理解步进电机的结构、原理及其特点。
2. 使学生了解步进电机与微控制器之间的接口技术,掌握步进电机的驱动程序编写方法。
3. 让学生掌握步进电机速度和位置控制的基本算法,并运用到实际项目中。
技能目标:1. 培养学生运用微机原理解决实际问题的能力,学会编写和调试步进电机控制程序。
2. 培养学生的动手实践能力,能独立完成步进电机的组装、调试和故障排查。
3. 培养学生团队协作能力,通过分组合作完成课程设计任务。
情感态度价值观目标:1. 激发学生对微机原理和步进电机控制技术的兴趣,培养其探索精神和创新意识。
2. 培养学生严谨、认真的学习态度,养成良好的实验操作习惯。
3. 增强学生的环保意识,关注步进电机在节能环保领域的应用。
本课程针对高年级学生,课程性质为理论与实践相结合。
在分析课程性质、学生特点和教学要求的基础上,将课程目标分解为具体的学习成果。
教学过程中,注重培养学生的实际操作能力和团队协作精神,使学生在完成课程设计任务的过程中,达到知识、技能和情感态度价值观的全面提升。
二、教学内容根据课程目标,教学内容主要包括以下几部分:1. 微机原理基础:回顾微控制器的基本原理,重点讲解微控制器与步进电机的接口技术,涉及课本第3章相关内容。
2. 步进电机原理与结构:介绍步进电机的种类、结构、原理及特点,对应课本第5章内容。
3. 步进电机驱动技术:讲解步进电机的驱动电路设计,包括驱动芯片的选型、接口电路设计等,参考课本第6章相关内容。
4. 步进电机控制算法:学习步进电机的速度和位置控制算法,如PID控制、闭环控制等,结合课本第7章内容。
5. 实践操作:分组进行步进电机的组装、调试及控制程序编写,巩固理论知识,培养实际操作能力。
教学大纲安排如下:第1周:微机原理基础回顾,了解步进电机接口技术;第2周:学习步进电机原理与结构,选型及参数了解;第3周:步进电机驱动技术学习,驱动电路设计;第4周:步进电机控制算法学习,编写控制程序;第5周:实践操作,步进电机组装、调试及故障排查;第6周:课程设计总结,成果展示及评价。
步进电机控制实验报告一、实验要求利用P0输出脉冲序列,74LS244输入开关量,开关K2-K8控制步进电机转换(分6挡),K0、K1控制步进电机转向。
必须要K2-K8中一开关和K0、K1中一开关同时为‘1’时步进电机才启动,其他情况步进电机不工作。
步进电机驱动原理是通过对它每线圈中的电流的顺序切换来使电机作步进式旋转。
驱动电路又脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。
微电脑控制步进电机最合适。
二、试验目的1、了解步进电机控制的基本原理。
2、掌握控制步进电机转动编程方法。
三、步进电机工作原理步进电机是将给定的电脉冲信号转变为角位移或线位移的开环控制元件。
给定一个电脉冲信号,步进电机转子就转过相应的角度,这个角度就称作该步进电机的步距角。
目前常用步进电机的步距角大多为1.8度(俗称一步)或0.9度(俗称半步)。
以步距角为0.9度的进步电机来说,当我们给步进电机一个电脉冲信号,步进电机就转过0.9度;给两个脉冲信号,步进电机就转过1.8度。
以此类推,连续给定脉冲信号,步进电机就可以连续运转。
由于电脉冲信号与步进电机转角存在的这种线性关系,使得步进电机在速度控制、位置控制等方面得到了广泛的应用。
步进电机的使用至少需要三个方面的配合,一是电脉冲信号发生器,它按照给定的设置重复为步进电机输送电脉冲信号,目前这种信号大多数由可编程控制器或单片机来完成;二是驱动器(信号放大器),它除了对电脉冲信号进行放大、驱动步进电机转动以外,还可以通过它改善步进电机的使用性能,事实上它在步进电机系统中起着重要的作用,一般一种步进电机可以根据不同的工况具有多种驱动器;三是步进电机,它有多种控制原理和型号,现在常用的有反应式、感应子式、混合式等。
步进电机的速度控制是通过输入的脉冲频率快慢实现的。
当发生脉冲的频率减小时,步进电机的速度就下降;当频率增加时,速度就加快。
还可以通过频率的改变而提高步进电机的速度或位置精度。
大连理工大学本科设计报告(计算机原理接口实验综合设计)题目:步进电机控制系统设计课程名称:计算机原理实验学院(系):电信专业:自动化班级:电自1301学号:201382062学生姓名:宁博成绩:2015年12月26 日题目:步进电机1. 设计要求利用实验台上的开关K7控制步进电机的转向,利用电位器控制步进电机的转速。
具体要求如下:1.利用D8255A的PA0-PA3做输出,输出步进电机的相序、驱动步进电机工作,相序之间的时间决定着步进电机的转速,而间隔时间由延时程序中的CX寄存器的初值决定。
2.利用D8255A的PB7做输入控制转向,与K7连接。
其中K7做步进电机的转向控制,用ADC0809实现AD转换,利用电位器控制转速,程序运行时通过K7和电位器对步进电机实施动态控制;3.利用8253做秒脉冲发生器,产生约2秒的周期性方波信号。
其中CNT0做分频器:将1MHZ信号分频为100HZ;CNT1做秒脉冲输出(0.5HZ);4.利用386模块的主8259的MIR5做中断请求输入,将CNT1的OUT1秒信号方波作为中断请求信号,引发中断服务ISR;5.在中断服务程序中实现对步进电机的转速、转向实时控制。
方法如下:在ISR中,对D8255A的PB口进行一次输入操作,并根据输入的数据:1)对D7(与K7对应)位的数据为步进电机的转向控制;2)ADC0809读入的数据为步进电机的转速控制。
2 .设计分析及系统方案设计1.使用“寄存器间接寻址”的方式输出相序信号:将步进电机的相序数据定义在数据段当中,使用SI查表(间接寻址)获取相序数据。
其中查表顺序决定着电机转动方向;2.对8253进行编程,使OUT1输出2秒周期的脉冲方波信号。
为了便于调试,建议使用逻辑笔监测OUT1的输出;3.编制与中断相关的程序。
包括中断屏蔽字的设定、中断向量表的创建以及开中断的操作。
上述这些操作都应当加到程序的初始化中;4.编写中断服务程序ISR。
步进电机微机实验报告步进电机微机实验报告引言:步进电机是一种特殊的电动机,它可以根据输入的电脉冲信号精确地控制转动角度和速度。
在本次实验中,我们使用了微机控制步进电机的转动,通过编写程序和控制电路,实现了步进电机的正转、反转和定位功能。
本报告将详细介绍实验的目的、原理、实验过程和结果,并对实验中遇到的问题进行分析和解决。
一、实验目的本次实验的目的是通过微机控制步进电机的转动,掌握步进电机的工作原理和控制方法。
具体目标包括:1. 理解步进电机的工作原理和结构特点;2. 掌握步进电机的控制方式和驱动电路设计;3. 通过编写程序实现步进电机的正转、反转和定位功能;4. 分析实验中可能遇到的问题,并提出解决方案。
二、实验原理步进电机是一种将电脉冲信号转化为机械转动的电动机。
它由定子、转子和驱动电路组成。
定子上有多个绕组,每个绕组上有若干个磁极。
转子上有多个磁极,与定子的磁极相对应。
通过改变绕组的通电顺序,可以使转子按一定的步距转动。
步进电机有两种常见的控制方式:全步进和半步进。
全步进模式下,每个步进脉冲使电机转动一个步距角度;半步进模式下,每个步进脉冲使电机转动半个步距角度。
在实验中,我们将使用全步进模式进行控制。
三、实验过程1. 设计驱动电路:根据步进电机的额定电流和电压,设计合适的驱动电路。
选择合适的功率晶体管和电流限制电阻,确保电机能够正常工作。
2. 连接电路:按照驱动电路的设计连接步进电机和微机。
注意接线的正确性和稳定性。
3. 编写控制程序:使用合适的编程语言编写步进电机的控制程序。
程序需要实现电机的正转、反转和定位功能。
4. 调试程序:通过调试程序,确保电机能够按照预期的方式工作。
可以通过改变电脉冲的频率和脉冲数来调整电机的转速和转动角度。
5. 实验结果记录:记录电机的转动角度、转速和实际运行情况。
分析实验结果,验证实验的准确性和可行性。
四、实验结果与分析经过实验,我们成功实现了步进电机的正转、反转和定位功能。
一、实验目的1. 熟悉步进电机的工作原理和特性。
2. 掌握通过微机控制步进电机的基本方法。
3. 了解步进电机在微机控制下的应用。
二、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,其特点是步进角固定,控制精度高,响应速度快。
步进电机的工作原理是:当给步进电机输入一定频率的脉冲信号时,电机就会以一定的步进角进行旋转。
步进电机的控制方式主要有以下几种:1. 单相控制:将步进电机绕组分为A、B、C、D四相,每相依次通电,实现电机的旋转。
2. 双相控制:将步进电机绕组分为A、B两相,通过改变A、B两相的通电顺序,实现电机的旋转。
3. 四相控制:将步进电机绕组分为A、B、C、D四相,通过改变A、B、C、D四相的通电顺序,实现电机的旋转。
三、实验设备1. 微机:一台2. 步进电机驱动器:一台3. 步进电机:一台4. 编程软件:例如Keil、IAR等5. 连接线:若干四、实验内容1. 步进电机基本特性测试(1)观察步进电机在不同脉冲频率下的转动情况。
(2)观察步进电机在不同脉冲数下的转动角度。
2. 步进电机单相控制(1)编写程序,实现步进电机单相控制。
(2)测试步进电机单相控制下的转动情况。
3. 步进电机双相控制(1)编写程序,实现步进电机双相控制。
(2)测试步进电机双相控制下的转动情况。
4. 步进电机四相控制(1)编写程序,实现步进电机四相控制。
(2)测试步进电机四相控制下的转动情况。
5. 步进电机转速控制(1)编写程序,实现步进电机转速控制。
(2)测试步进电机在不同转速下的转动情况。
6. 步进电机转向控制(1)编写程序,实现步进电机转向控制。
(2)测试步进电机正转和反转的情况。
五、实验步骤1. 连接步进电机驱动器和步进电机。
2. 在微机上编写程序,实现步进电机的基本控制。
3. 编写程序,实现步进电机单相、双相、四相控制。
4. 编写程序,实现步进电机转速和转向控制。
5. 运行程序,观察步进电机的转动情况。
微型计算机原理步进电机实验一、实验目的掌握步进电机的基本工作原理和控制方法,理解步进电机与微型计算机的接口原理。
二、实验器材1.电脑2.步进电机3.驱动器电路板4.接口电缆5.实验面包板6.杜邦线7.电源三、实验步骤1.搭建电路连接:将步进电机与驱动器电路板连接,然后将驱动器电路板与微型计算机的接口电缆连接。
2.编写控制程序:使用任何一种编程语言,编写通过微型计算机控制步进电机的程序。
3.载入程序:将编写好的控制程序载入微型计算机。
4.运行程序:执行控制程序,观察步进电机的运动情况。
四、实验内容1.观察步进电机是否正常运转。
2.改变控制程序中的参数,例如步进角度和转速,观察步进电机的运动情况。
3.尝试通过控制程序改变步进电机的运动方向。
4.尝试同时控制多个步进电机。
五、实验原理步进电机是一种能够按照指令进行旋转的电机。
它可以精确控制转动角度和转速,适用于需要精确定位的应用场景。
步进电机的控制通常使用驱动器来实现。
驱动器接受来自微型计算机的指令,然后根据指令来控制步进电机的转动。
步进电机的控制方法有多种,常见的有脉冲信号控制方法和磁场控制方法。
脉冲信号控制方法是通过给步进电机的控制端口发送不同的脉冲信号来实现转动控制;磁场控制方法是通过改变电磁铁的磁场来使步进电机转动。
在本实验中,我们使用脉冲信号控制方法来控制步进电机。
步进电机的转动是按照一定的角度来进行的,这个角度叫做步角。
步进电机通常有两种类型:单圈步进电机和多圈步进电机,它们的步角不同。
每接收到一个脉冲信号,步进电机就会转动一定的步角。
驱动器电路板通常有多个控制端口,用来接收控制信号。
控制信号可以是高电平或低电平的脉冲信号,通过给这些控制端口发送不同的脉冲信号,就可以控制步进电机的转动方向和转动步数。
六、实验问题与解答1.为什么要使用驱动器来控制步进电机?答:步进电机的控制需要精确的脉冲信号来实现转动控制,而微型计算机无法直接提供这种精确的信号。
实验七步进电机控制一、实验目的1、了解步进电机控制的基本原理2、掌握步进电机转动编程方法二、实验说明1.步进电机的基本原理:步进电机是一种静电脉冲信号转换成相应角位移或是线位移的电磁机械装置。
在没有超出负载的情况下,它能在一瞬间实现启动和停止。
步进电机的转动速度只取决于外加脉冲信号的频率和脉冲数,而不受负载变化的影响。
例如,给步进电机施加一个脉冲信号,步进电动机就会转过一个歩距角。
步进电机既能控制转动方向也能控制转动速度。
2.步进电机的驱动脉冲:步进电动机通过控制输入电流形成一个旋转磁场而工作,旋转磁场可以由1相励磁,2相励磁,3相励磁和5相励磁等方式产生。
本次实验使用时小型2相励磁步进电动机有两组励磁线圈是AB。
应用时只需要在两组线圈的4个端口分别输入规定的环形脉冲信号(通过控制单片A和B机的P0.0、P0.1、P0.2和P0.3这四个引脚的高低电平),就可以制定步进电动机的转动方向。
3.本次实验使用独立式键盘控制小型2相励磁步进电机,要求按下S1键,步进电机正传;按下S2键,步进电机反转;按下S3键,步进电机停转。
4.绘制仿真原理图时,步进电机选用“MOTOR-STEPPER”,功率放大集成电路选用“ULN2003A”,逻辑部件选用“74LS04”。
三、实验步骤1.先建立文件夹“ex7”,然后建立“ex7”工程项目,最后建立源程序文件“ex7.c”,输入如下源程序;//独立式键盘控制步进电机实验#include<reg51.h> //包含51单片机寄存器定义的头文件sbit S1=P1^4; //将S1位定义为P1.4引脚sbit S2=P1^5; //将S2位定义为P1.5引脚sbit S3=P1^6; //将S3位定义为P1.6引脚unsigned char keyval; //储存按键值unsigned char ID; //储存功能标号/*软件消抖延时(约50ms)*/void delay(void){unsigned char i,j;for(i=0;i<150;i++)for(j=0;j<100;j++);}/*步进电机转动延时,延时越长,转速越慢*/void motor_delay(void){unsigned int i;for(i=0;i<2000;i++);}/*步进电机正转*/void forward( ){P0=0xfc; //P0口低四位脉冲1100motor_delay();P0=0xf6; //P0口低四位脉冲0110motor_delay();P0=0xf3; //P0口低四位脉冲0011motor_delay();P0=0xf9; //P0口低四位脉冲1001motor_delay();}/*步进电机反转*/void backward(){P0=0xfc; //P0口低四位脉冲1100motor_delay();P0=0xf9; //P0口低四位脉冲1001motor_delay();P0=0xf3; //P0口低四位脉冲0011motor_delay();P0=0xf6; //P0口低四位脉冲0110motor_delay();}/*步进电机停转*/void stop(void){P0=0xff ; //停止输出脉冲}/*主函数*/void main(void){TMOD=0x01; //使用定时器T0的模式1EA=1; //开总中断ET0=1; //定时器T0中断允许TR0=1; //启动定时器T0TH0=(65536-500)/256; //定时器T0赋初值,每计数200次(217微秒)发送一次中断请求TL0=(65536-500)%256; //定时器T0赋初值keyval=0; //按键值初始化为0,什么也不做ID=0;while(1){switch(keyval) //根据按键值keyval选择待执行的功能{case 1:forward(); //按键S1按下,正转break;case 2:backward(); //按键S2按下,反转break;case 3:stop(); //按键S3按下,停转break;}}}/*定时器T0的中断服务子程序:键盘扫描程序*/void Time0_serve(void) interrupt 1 using 1{TR0=0; //关闭定时器T0if((P1&0xf0)!=0xf0) //第一次检测到有键按下{delay(); //延时一段时间再去检测if((P1&0xf0)!=0xf0) //确实有键按下{if(S1==0) //按键S1被按下keyval=1;if(S2==0) //按键S2被按下keyval=2;if(S3==0) //按键S3被按下keyval=3;}}TH0=(65536-200)/256; //定时器T0的高8位赋初值TL0=(65536-200)%256; //定时器T0的低8位赋初值TR0=1; //启动定时器T0}2.用Proteus软件仿真经过Keil软件编译通过后,可利用Proteus软件仿真。
一、实验目的1. 了解步进电机的工作原理,掌握其控制方式和调速方法。
2. 学习使用微机对步进电机进行控制,提高微机应用能力。
3. 培养实验操作和数据分析能力。
二、实验设备及器件1. 微机一台2. 步进电机驱动器一台3. 步进电机一台4. 电源一个5. 连接导线若干三、实验原理步进电机是一种将电脉冲信号转换为角位移或线位移的电机,具有定位精度高、响应速度快、控制简单等优点。
步进电机的工作原理是利用电机的磁极与定子磁极之间的磁力相互作用,通过控制脉冲信号的输入,使电机产生相应的角位移。
步进电机的控制方式主要有以下几种:1. 单拍控制:每输入一个脉冲信号,电机转动一个步距角。
2. 双拍控制:每输入两个脉冲信号,电机转动一个步距角。
3. 四拍控制:每输入四个脉冲信号,电机转动一个步距角。
步进电机的调速方法主要有以下几种:1. 脉冲频率调速:通过改变脉冲信号的频率,实现电机转速的调节。
2. 脉冲宽度调速:通过改变脉冲信号的宽度,实现电机转速的调节。
3. 脉冲分配调速:通过改变脉冲信号的分配方式,实现电机转速的调节。
四、实验步骤1. 将步进电机驱动器连接到微机,确保连接正确。
2. 将步进电机连接到驱动器,确保连接牢固。
3. 将电源连接到驱动器,确保电源电压符合要求。
4. 编写程序,实现步进电机的控制功能。
5. 调试程序,观察步进电机的转动情况。
6. 分析实验结果,总结实验经验。
五、实验程序以下是一个简单的步进电机控制程序,实现单拍控制方式:```c#include <reg51.h>#define STEP_PIN P2 // 定义步进电机控制端口void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 123; j++);}void main() {while (1) {STEP_PIN = 0x01; // 输入第一个脉冲信号delay(100); // 延时STEP_PIN = 0x00; // 清除脉冲信号delay(100); // 延时}}```六、实验结果与分析1. 在实验过程中,通过改变脉冲信号的频率,实现了步进电机的调速。
实验六步进电机控制实验一、实验目的:1.了解步进电机的原理以及控制方法。
2.掌握对步进电机的编程。
二、实验内容:1.编写程序实现步进电机的正反转。
2.编写程序实现对步进电机的单步运行。
三、实验设备:1.ARM教学实验平台。
2. ADS 1.2集成开发环境和ARM仿真器。
3.串口连接线。
四、实验原理:1.步进电机介绍步进电机是将电脉冲信号转变为角位移或线位移的开环控制组件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。
多相步进电动机有多相方波脉冲驱动,用途很广。
使用多相步进电动机时,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各项绕组。
每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。
正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
2.常用步进电机类型反应式步进电动机(VR):结构简单,生产成本低,步距角可以做的相当小,但动态性能相对较差。
永磁式步进电动机(PM):出力大,动态性能好;但步距角一般比较大。
混合步进电动机(HB):综合了反映式和永磁式两者的优点,步距角小,出力大,动态性能好,是性能较好的一类步进电动机。
3.步进电机参数和指标步进电机的静态指标术语相数:产生不同对极 N、S 磁场的激磁线圈对数。
一、实验目的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. 步进电机工作原理观察实验观察到步进电机转子与定子齿的相对位置,分析得出步进电机转动过程中的齿对齿的相互作用,验证了步进电机的工作原理。
微机原理步进电机控制微机原理步进电机控制实验报告实验步进电机控制⼀、实验内容l、⽤8255的PA0,PA3输出脉冲信号,驱动步进电机转动,通过键盘设定来控制步进电机正转、反转、停⽌。
2、实验预备知识,步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转。
驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速,⽤微电脑控制步进电机最适合。
⼆、实验步骤1、在系统处于命令提⽰符“P.”态下,按SCAL键。
2、按图6,9连好实验线路图,8255的PA0,PA3依次连到HA-HD插孔。
3、运⾏实验程序。
在系统处于命令提⽰符“P.”态下,输⼊1630,按EXEC键,显⽰BJ?,按“1”键正转;按“2”键反转;按“3”停⽌。
4、观察步进电机转动情况。
三、实验原理图, 实验接线图:四(实验程序清单CODE SEGMENT ;BJ.ASM ASSUME CS: CODE IOCONPT EQU 0FF2BH IOBPT EQU 0FF29H IOAPT EQU 0FF28HPA EQU 0FF20H ;字位⼝PB EQU 0FF21H ;字形⼝PC EQU 0FF22H ;键⼊⼝ORG 1630HSTART: JMP START0 BUF DB ?,?,?,?,?,? KZ DB ?ltime db ?lkey db ?data1:db0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH,0F1HSTART0: CALL BUF1 ;写显⽰缓冲区初值MOV AL,88H ;MOV DX,IOCONPTOUT DX,AL ;写命令字redikey: call dispkey ;调⽤显⽰键扫cmp KZ,01h ;是1键正转JZ ZZcmp KZ,02h ;是2键反转JZ STXJMP REDIKEY ;继续读键JMP ST ;转停⽌ STX:ZZ: CALL BUFZ ;显⽰正转值ZZ1: MOV DX,IOAPT ;PA⼝MOV AL,03H ;MOV DX,IOAPTOUT DX,AL ;驱动步进电机,A.B两相CALL DELPZ ;延时,读键MOV AL,06HMOV DX,IOAPTOUT DX,AL ;驱动步进电机,A.d两相CALL DELPZ MOV AL,0CHMOV DX,IOAPTOUT DX,AL ;驱动步进电机,C.D两相CALL DELPZ MOV AL,09H ;驱动步进电机,B.C两相MOV DX,IOAPT OUT DX,ALCALL DELPZMOV AL,03HMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,0CHMOV DX,IOAPTOUT DX,ALCALL DELPZMOV AL,09HMOV DX,IOAPTOUT DX,AL;------------------------- FZ: CALL BUFF ;反转⼊⼝FZ1: MOV DX,IOAPTMOV AL,0CHOUT DX,ALCALL DELPFMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV DX,IOAPTMOV AL,03HOUT DX,ALCALL DELPFMOV AL,09HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,0CHMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,06HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,03HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,09HMOV DX,IOAPTOUT DX,ALCALL DELPFMOV AL,00HOUT DX,ALST1: call dispkey cmp KZ,01hJZ ZZMONcmp KZ,02hJZ FZMONJMP ST1delpZ: mov cx,02h con1: push cx CALL dispkey pop cxcmp KZ,02hJZ FZMONcmp KZ,03hJZ STMONloop con1RETdelpF: mov cx,02h con2: push cx CALL dispkey pop cxcmp KZ,01hJZ ZZMONcmp KZ,03hJZ STMONloop con2RETZZMON: POP CXJMP ZZFZMON: POP CXJMP FZSTMON: POP CXJMP ST;-------------------------dispkey: call disp ;键盘显⽰⼦程序,见前注释call key mov ah,al ;newkeymov bl,ltime ;ltimemov dx,PA ;0ff21hout dx,alcmp ah,bhmov bh,ah ;bh=new keymov ah,bl ;al=timejz disk4mov bl,88hmov ah,88hdisk4: dec ahcmp ah,82hjz disk6cmp ah,0ehjz disk6cmp ah,00hjz disk5mov ah,20hdec bljmp disk7disk5: mov ah,0fhdisk6: mov bl,ahmov ah,bhdisk7: mov ltime,blmov lkey,bhmov KZ,bhmov al,ahretkey: mov al,0ffh ;键扫⼦程序mov dx,PB out dx,almov bl,00hmov ah,0fehmov cx,08hkey1: mov al,ahmov dx,PAmov ah,alnopnopnopnopnopnopmov dx,PCin al,dxnot alnopnopand al,0fhjnz key2inc blloop key1jmp nkeykey2: test al,01h je key3 mov al,00hjmp key6key3: test al,02h je key4 mov al,08hjmp key6key4: test al,04h je key5 mov al,10hjmp key6key5: test al,08hje nkeymov al,18hkey6: add al,blcmp al,10hjnc fkeymov bl,almov al,[bx+si]retnkey: mov al,20h fkey: retdata2: db 07h,04h,08h,05h,09h,06h,0ah,0bh DB 01h,00h,02h,0fh,03h,0eh,0ch,0dh DISP: MOV AL,0FFH ;显⽰⼦程序 ,5ms MOV DX,PAOUT DX,ALMOV CL,0DFH ;20HMOV BX,OFFSET BUF DIS1: MOV AL,[BX]MOV AH,00HPUSH BXMOV BX,OFFSET DATA1ADD BX,AXMOV AL,[BX]POP BXMOV DX,PBOUT DX,ALMOV AL,CLMOV DX,PAOUT DX,ALPUSH CXDIS2: MOV CX,0a0HLOOP $POP CXCMP CL,0FEHJZ LX1INC BXROR CL,1JMP DIS1LX1: MOV AL,0FFHMOV DX,PBOUT DX,ALRETBUF1: MOV BUF,0BH ;写”BJ----” MOV BUF+1,019HMOV BUF+4,17HMOV BUF+5,17HRETBUFZ: MOV BUF,0BH ;写”BJ---F” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,0FHRETBUFF: MOV BUF,0BH ;写”BJ---r” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,18HRETBUFS: MOV BUF,0BH ;写”BJ---S” MOV BUF+1,19HMOV BUF+2,17HMOV BUF+3,17HMOV BUF+4,17HMOV BUF+5,05HRETCODE ENDSEND START五、实验总结1、通过实验进⼀步了解8086的使⽤,学习汇编语⾔编程⽅法及调试技巧。
一、实验目的1. 了解步进电机的工作原理和特点。
2. 掌握步进电机的驱动方式和控制方法。
3. 学会使用PLC编程控制步进电机。
4. 培养动手能力和实验技能。
二、实验原理步进电机是一种将电脉冲信号转换成角位移的电动机,具有精度高、响应快、控制简单等优点。
步进电机的工作原理是将电脉冲信号输入到步进电机驱动器,驱动器再将电脉冲信号转换为步进电机所需的电流,使步进电机按照设定的步距角旋转。
三、实验仪器与设备1. PLC编程器2. 步进电机驱动器3. 步进电机4. 电源5. 连接导线6. 电脑四、实验步骤1. 步进电机驱动器与PLC的连接:将步进电机驱动器的输入端连接到PLC的输出端口,将电源连接到步进电机驱动器。
2. 步进电机与驱动器的连接:将步进电机连接到驱动器的输出端。
3. PLC编程:在PLC编程器中编写步进电机控制程序。
(1)设置步进电机控制参数:包括步进电机的步距角、脉冲频率等。
(2)编写步进电机控制程序:编写程序控制步进电机的启动、停止、正转、反转等功能。
4. 程序下载与运行:将编写好的程序下载到PLC中,运行程序控制步进电机。
五、实验结果与分析1. 步进电机启动:按下启动按钮,步进电机开始旋转。
2. 步进电机正转:按下正转按钮,步进电机按照设定的步距角正转。
3. 步进电机反转:按下反转按钮,步进电机按照设定的步距角反转。
4. 步进电机停止:按下停止按钮,步进电机停止旋转。
六、实验总结通过本次实验,我们了解了步进电机的工作原理和特点,掌握了步进电机的驱动方式和控制方法。
同时,学会了使用PLC编程控制步进电机,提高了我们的动手能力和实验技能。
以下为实验过程中的关键代码段:1. 步进电机控制参数设置:```步距角= 1.8°脉冲频率 = 1000Hz```2. 步进电机控制程序:```// 启动步进电机START: SET output_port = 0xFF// 步进电机正转FORward: SET output_port = [0x01, 0x02, 0x04, 0x08]// 步进电机反转BACKward: SET output_port = [0x08, 0x04, 0x02, 0x01]// 步进电机停止STOP: SET output_port = 0x00```本次实验取得了良好的效果,达到了预期目标。
步进电机实验微机原理步进电机是一种特殊类型的电动机,可以将输入的电信号转化为机械运动。
它具有先进的控制技术和广泛的应用领域,特别是在微机控制系统中。
本文将介绍步进电机的原理和在微机控制系统中的实验。
步进电机的原理是利用电磁场的磁力作用产生力矩,从而使电机转动。
步进电机是依靠控制电机驱动器对电机的每一个步进角度进行控制,从而实现精确的定位和运动控制。
步进电机通常由一个转子和一个定子组成。
转子是由一系列的磁极组成,而定子则是由一对电磁线圈组成,称为相。
根据电磁线圈的激励方式,步进电机可以分为单相和双相两种。
通过对不同相的激励,可以实现电机转动和定位控制。
在微机控制系统中,步进电机通常与微控制器或PLC(可编程逻辑控制器)等设备相结合,通过输出脉冲信号来控制电机的运动。
为了实现步进电机的精确定位和运动控制,需要将运动要求转化为脉冲信号,并通过控制器将脉冲信号发送给电机驱动器。
电机驱动器接收到脉冲信号后,根据脉冲信号的频率和方向来控制电机转动的角度和速度。
步进电机实验可以通过搭建简单的电路和编程控制来实现。
首先,需要选购适当的步进电机、电机驱动器和微控制器等设备。
然后,将步进电机和电机驱动器连接起来,确保电路正确连接,并通过编程控制器来控制电机的运动。
在步进电机实验中,可以进行一些常见的实验项目,如定向旋转、正反转、加减速运动等。
为了能够准确控制电机的运动,需要设置合适的脉冲频率和方向。
脉冲频率决定了电机的转速,而脉冲方向决定了电机的转动方向。
通过不同的脉冲频率和方向组合,可以实现各种精确的运动控制。
除了基本的实验项目,还可以根据实际需求进行更复杂的步进电机实验。
例如,可以将步进电机与传感器相结合,实现闭环控制。
通过读取传感器的反馈信号,可以实现电机的位置闭环控制,从而实现更高精度的运动控制。
此外,还可以通过与其他设备的联动控制,实现更复杂的自动化系统。
步进电机实验微机原理实验旨在通过搭建实际电路和编程控制来了解步进电机的工作原理和应用。
微机步进电机实验报告微机步进电机实验报告引言:微机步进电机是一种常见的电动机,其特点是精准的定位和控制能力。
本实验旨在通过对微机步进电机的实际操作和观察,了解其工作原理和应用。
一、实验目的本实验的主要目的是:1. 了解微机步进电机的基本工作原理;2. 学习使用微机控制器对步进电机进行控制;3. 掌握步进电机的定位和旋转控制技术。
二、实验器材和原理1. 实验器材:- 微机步进电机;- 微机控制器;- 电源;- 连接线。
2. 实验原理:微机步进电机是一种定位精度高、控制简单的电动机。
它通过控制电流的方式,使电机按一定步进角度旋转。
步进电机的转子由若干个磁极组成,通过逐个激励磁极,可以实现转子的精确定位和旋转。
三、实验步骤1. 连接电路:将微机步进电机与微机控制器连接,并接通电源。
2. 编写控制程序:使用编程软件编写控制程序,设定步进电机的旋转角度和速度。
3. 运行程序:将编写好的程序下载到微机控制器中,并运行程序,观察步进电机的运动。
四、实验结果与分析在实验中,我们成功地控制了微机步进电机的旋转。
通过调整程序中的参数,我们可以控制步进电机的旋转角度和速度。
实验结果表明,微机步进电机具有较高的定位精度和控制能力。
五、实验总结通过本次实验,我们深入了解了微机步进电机的工作原理和控制技术。
步进电机作为一种常见的电动机,广泛应用于各种自动化设备中。
掌握步进电机的原理和控制方法,对于我们今后的工程实践具有重要意义。
六、实验心得本次实验让我对微机步进电机有了更深入的认识。
通过亲自操作和观察,我对步进电机的工作原理和控制方法有了更直观的理解。
同时,实验过程中也遇到了一些问题,但通过自己的努力和与同学的讨论,最终取得了良好的实验结果。
七、改进方向在今后的实验中,我们可以进一步探索微机步进电机的应用领域,尝试更复杂的控制方法和算法,提高步进电机的运动精度和效率。
同时,我们也应加强对电机控制技术的学习,为今后的工程实践做好准备。
步进电机实验报告步进电机实验报告引言步进电机是一种常见的电动机,其特点是能够实现精确的位置控制和旋转运动。
本实验旨在通过对步进电机的实际操作,深入了解其工作原理和应用。
一、实验目的本实验的目的是通过实际操作步进电机,了解步进电机的基本结构和工作原理,掌握步进电机的控制方法,并能够利用步进电机实现简单的运动控制。
二、实验仪器和材料1. 步进电机:本实验使用4相5线式步进电机。
2. 电机驱动器:采用常用的双H桥驱动器。
3. 控制器:使用Arduino开发板作为控制器。
4. 电源:提供步进电机和驱动器所需的电源。
5. 连接线:用于连接各个部件。
三、实验原理步进电机是一种通过控制电流方向和大小来实现旋转运动的电机。
它由定子和转子组成,定子上布有若干个电磁线圈,转子上有若干个磁极。
当电流依次通过定子上的线圈时,会产生磁场,与转子上的磁极相互作用,从而使转子旋转一定的角度。
四、实验步骤1. 连接电路:将步进电机、驱动器和控制器按照电路图连接起来。
2. 编写控制程序:使用Arduino开发板编写控制程序,通过控制引脚输出高低电平来控制电机的旋转方向和步进角度。
3. 上传程序:将编写好的控制程序上传到Arduino开发板中。
4. 运行实验:通过调用控制程序中的函数,控制步进电机的旋转运动。
五、实验结果与分析在实验中,我们通过编写控制程序,成功控制步进电机的旋转运动。
通过改变控制程序中的参数,我们可以控制电机的旋转方向、速度和步进角度。
实验结果表明,步进电机可以实现较为精确的位置控制,适用于一些对运动精度要求较高的应用场景。
六、实验总结通过本次实验,我们深入了解了步进电机的工作原理和控制方法。
步进电机作为一种常见的电动机,具有精确的位置控制和旋转运动的特点,在工业自动化和机器人领域有着广泛的应用。
掌握步进电机的原理和控制方法,对于我们今后的学习和工作具有重要的意义。
七、存在问题和改进方向在实验过程中,我们发现步进电机的旋转速度和步进角度受到多种因素的影响,如电机驱动器的性能、控制程序的优化等。
步进电机的实验报告步进电机的实验报告引言:步进电机是一种常见的电机类型,它以步进的方式进行转动,具有精准定位和高效能的特点,被广泛应用于各个领域。
本实验旨在通过对步进电机的研究和实验,了解其工作原理、性能特点以及应用场景。
一、步进电机的工作原理步进电机是一种将电脉冲信号转化为机械转动的电机。
它由定子和转子两部分组成,其中定子由若干个电磁线圈组成,每个线圈分别与电机驱动器的输出端相连。
当电机驱动器输出电流时,线圈中产生磁场,使得转子受到磁力作用而转动。
通过不断输入电流脉冲,可以实现步进电机的精准定位。
二、步进电机的性能特点1. 精准定位:步进电机能够按照电脉冲信号的频率和方向精确旋转,可实现高精度的定位控制。
2. 高效能:步进电机具有高效能的特点,能够在不产生磁滞损耗的情况下实现转动,因此能够提供较高的功率输出。
3. 可逆性:步进电机可根据输入的电脉冲信号实现正转和反转,具有较强的可逆性。
4. 低速高扭矩:步进电机在低速运转时,具有较高的扭矩输出,适合用于需要较大扭矩的应用场景。
三、步进电机的应用场景1. 机械加工:步进电机在数控机床、激光切割机等机械加工设备中广泛应用,能够实现高精度的定位和控制。
2. 打印设备:步进电机被广泛应用于打印设备中,如打印机、绘图仪等,能够精确控制打印头的位置和移动速度。
3. 机器人技术:步进电机在机器人领域中起到重要作用,能够实现机器人的运动和定位控制,广泛应用于工业自动化、医疗器械等领域。
4. 汽车电子:步进电机在汽车电子领域中有广泛应用,如车载导航系统、车载仪表盘等,能够实现精确的指针位置控制和显示。
结论:通过本次实验,我们对步进电机的工作原理、性能特点和应用场景有了更深入的了解。
步进电机作为一种精准定位和高效能的电机类型,在各个领域都有广泛的应用前景。
随着科技的不断发展,步进电机的性能将得到进一步提升,应用领域也将不断扩大。
大连理工大学本科设计报告(计算机原理接口实验综合设计)题目: 步进电机控制系统设计课程名称:计算机原理实验学院(系): 电信专业: 自动化班级: 电自1301学号: 201382062学生姓名: 宁博成绩:2015年12月26 日题目:步进电机1。
设计要求利用实验台上得开关K7控制步进电机得转向,利用电位器控制步进电机得转速。
具体要求如下:1.利用D8255A得PA0-PA3做输出,输出步进电机得相序、驱动步进电机工作,相序之间得时间决定着步进电机得转速,而间隔时间由延时程序中得CX寄存器得初值决定。
2.利用D8255A得PB7做输入控制转向,与K7连接。
其中K7做步进电机得转向控制,用ADC0809实现AD转换,利用电位器控制转速,程序运行时通过K7与电位器对步进电机实施动态控制;3.利用8253做秒脉冲发生器,产生约2秒得周期性方波信号。
其中CNT0做分频器:将1MHZ信号分频为100HZ;CNT1做秒脉冲输出(0。
5HZ);4.利用386模块得主8259得MIR5做中断请求输入,将CNT1得OUT1秒信号方波作为中断请求信号,引发中断服务ISR;5.在中断服务程序中实现对步进电机得转速、转向实时控制。
方法如下:在ISR中,对D8255A得PB口进行一次输入操作,并根据输入得数据:1)对D7(与K7对应)位得数据为步进电机得转向控制;2)ADC0809读入得数据为步进电机得转速控制。
2 .设计分析及系统方案设计1. 使用“寄存器间接寻址”得方式输出相序信号:将步进电机得相序数据定义在数据段当中,使用SI 查表(间接寻址)获取相序数据。
其中查表顺序决定着电机转动方向;2. 对8253进行编程,使O UT1输出2秒周期得脉冲方波信号。
为了便于调试,建议使用逻辑笔监测OUT1得输出;3. 编制与中断相关得程序。
包括中断屏蔽字得设定、中断向量表得创建以及开中断得操作、上述这些操作都应当加到程序得初始化中;4. 编写中断服务程序ISR 。
在IS R中读取D 8255A 得PB 口数据与AD转换得数据,然后进行数据分析、根据数据来调整CX 寄存器中得数据,因而改变步进电机得转速与转向。
3。
系统电路图。
外围接口模块硬件电路功能描述8253 OUT1 CLK1 GATE1/CSOUT0 CLK0 GATE01MHZ 脉冲K7输入 K6输入Vcc210H8255APA3 PA2 PA1 PA0 D7 ·· D0A1 A0/CSPB7 PB6、、、、 PB0LED3 LED2 LED1 LED0200H 步进 电机 5~12V BJ_IN4BJ_IN3 BJ_IN2 BJ_IN1 系统总线 K7 …… … K00、5HZ 方波 ADC0809模块 IN7 …IN0 VREF(-)/CS D7、、 D0总线区220H /IOW /IOR A0 A1 A1A0 500KH CLOC VCC VREF(+) ADDA ADDB ADDC 图 1 、1 实验参考逻辑电路 +5V8253具有三个独立得16位减法计数器,每个计数器可按照二进制或十进制计数,每个通道都有六种不同得工作方式。
8255有3个8位并行I/O 口。
具有3个通道3种工作方式得可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强、8255可作为主机与多种外设连接时得中间接口电路。
ADC 0809 就是8位逐次逼近式A/D 模数转换器。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后得信号,只选通8路模拟输入信号中得一个进行A /D 转换,具有转换起停控制端。
模拟输入电压范围0~+5V,不需零点与满刻度校准。
5 主程序中主要变量说明 变量名称 内存单元功能 FLAG AX 转向标志 SPEED SI 可调转速 SD AL 默认转速6。
系统软件中各个子程序得功能描述子程序名称 入口参数 出口参数 功能 描述 se rvic e io8255_BAD C0809SD中断服务 DEL AY 无无 延时spe edin 无无 电机按照一定参数转起来7.主程序程序流程图8。
程序清单IO_AD DR ESStimeequ 210had_io equ220hdata segmentorder1db 01h,03h,02h,06h,04h,0ch,08h,09horder2 db 09h,08h、0ch,04h,06h,02h,03h,01hFLAG db ?speedﻩ dw 0300h,0380h,0480h,0580h,0680h,0780h,0880h SDﻩ dwﻩ0280h ;默认转速data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,IO_ADDRESSadd dx,03mov al,82h ;B端口输入,A、C输出,方式0 out dx,alclimov FLAG,00h ;标志位置0in al,021h;设置中断屏蔽字and al,11011111b;IR5out 021h,alpush ds ;设置中断向量表mov ax,0mov ds,axmov si,35hadd si,siadd si,simov ax,offsetservicemov [si],axpushcspop axmov [si+2],axpop dsmovdx,time ;分频得到0,5s脉冲add dx,03mov al,37h ﻩﻩ;计数器0,方式3,BCD码计数,先低后高outdx,almov dx,timeﻩﻩﻩ;计数器0设初值mov al,0out dx,alout dx,alﻩﻩﻩ;写初值10000mov dx,timeadd dx,03mov al,56hﻩﻩ;计数器1,方式3,二进制计数,低8位outdx,almov dx,time ;设计数器1初值为200inc dxmov al,200 ;产生0。
5s脉冲outdx,alstispeedin:cmp FLAG,01h ﻩ;转向,转速jz cccmov dx,IO_ADDRESSmov cx,08lea si,order1aaa: mov al,[si]out dx,alcall delayinc siloop aaajmp speedinccc: mov dx,IO_ADDRESSmov cx,08lea si,order2ddd: mov al,[si]out dx,alcalldelayinc siloop dddjmp speedinservice proc far ;中断服务子程序push axpushdxpush sipushbxmov dx,IO_ADDRESSinc dxin al,dxmov bl,alshl bl,1jnc mmm ﻩﻩﻩ ;CF=0,则跳转mov ﻩFLAG,01Hmovdx,ad_ioﻩﻩﻩ;ADC启动转换地址out dx,alﻩﻩﻩﻩ;启动ADCmov dx,ad_ioﻩﻩ;获取ADC EOC状态地址 add dx,2L1: inal,dxtest al,01hﻩﻩﻩﻩ;测试EOC=1?jz L1mov dx,ad_io ﻩ;读数据地址inc dxin al,dxcmpal,00Hjnzﻩcmp11mov SD,0280hjmp endsercmp11:cmpﻩal,10Hjncﻩcmp12mov si,WORD PTR speed[0]movﻩSD,sijmp endsercmp12:cmpal,20Hjnc cmp13mov si,WORD PTR speed[2]mov SD,sijmpendsercmp13:cmp al,30Hjncﻩ cmp14mov si,WORD PTR speed[4]mov SD,sijmp endsercmp14:cmp al,40Hjnc cmp15mov si,WORD PTR speed[6]movﻩSD,sijmp endsermmm: jmp cmp20cmp15:cmpﻩ al,50Hjnc cmp16mov si,WORD PTR speed[8]movﻩSD,sijmp endsercmp16: cmp al,60Hjncﻩcmp17movsi,WORD PTR speed[10] mov SD,sijmp endsercmp17:mov si,WORD PTR speed[12]mov SD,sijmp endsercmp20: mov dx,ad_ioout dx,almov dx,ad_ioadd dx,2L2: in al,dxtest al,01hjz L2mov dx,ad_ioincdxin al,dxmov ﻩFLAG,00Hcmp al,00Hjnzﻩcmp21movﻩ SD,0280Hjmpendsercmp21:cmp al,10Hjncﻩcmp22mov si,WORD PTR speed[0] movﻩSD,sijmp endsercmp22:cmp al,20Hjnc cmp23movsi,WORD PTR speed[2]movﻩSD,sijmp endsercmp23:cmpﻩal,30Hjncﻩcmp24mov si,WORD PTR speed[4] mov SD,sijmp endsercmp24:testﻩal,40Hjnc cmp25mov si,WORD PTR speed[6]mov SD,sijmp endsercmp25:cmp al,50Hjnc cmp26mov si,WORD PTRspeed[8]mov SD,sijmp endsercmp26:cmpﻩal,60Hjnccmp27mov si,WORD PTR speed[10]movﻩSD,sijmp endsercmp27:mov si,WORD PTR speed[12]movSD,siendser: ;发EOI命令mov al,20hout 20h,alpop bxpop sipop dxpop axstiiretservice endpdelayproc ;延时程序 push axpush cxpush dxmov dh,6x1: mov cx,SDx2: loop x2decdhjnz x1pop dxpopcxpop axretdelay endpcode endsend start9。
系统调试运行结果说明、分析所出现得问题,设计体会与建议运行结果说明:基本完成了任务要求,可以控制步进电机得转速与旋转方向、问题:通过寄存器间接寻址得方法使电机旋转,在此程序中电机运行状态得改变稍有延迟,原因就是在主程序中,状态得改变就是在一个完整得相序周期结束后才发生得,可能需要等待循环得过程,稍有延迟。