步进电机启动停止正反转控制程序的汇编语言的实现
51单片机步进电机正反转停止实验[1]
51单片机步进电机正反转停止实验 - C51源代码#include <reg51.h> //51芯片管脚定义头文件#include <intrins.h> //内部包含延时函数 _nop_();#define uchar unsigned char#define uint unsigned intuchar code FFW[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //四相八拍正转编码uchar code REV[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; ////四相八拍反转编码sbit K1 = P3^2; //正转sbit K2 = P3^3; //反转sbit K3 = P3^4; //停止sbit BEEP = P3^6; //蜂鸣器/********************************************************//*/* 延时t毫秒/* 11.0592MHz时钟,延时约1ms/*/********************************************************/void delay(uint t){uint k;while(t--){for(k=0; k<125; k++){ }}}/**********************************************************/void delayB(uchar x) //x*0.14MS{uchar i;while(x--){for (i=0; i<13; i++){ }}}/**********************************************************/void beep(){uchar i;for (i=0;i<100;i++){delayB(4);BEEP=!BEEP; //BEEP取反}BEEP=1; //关闭蜂鸣器}/********************************************************//*/*步进电机正转/*/********************************************************/ void motor_ffw(){uchar i;uint j;for (j=0; j<8; j++) //转1*n圈{if(K3==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = FFW[i]; //取数据delay(2); //调节转速}}}/********************************************************/ /*/*步进电机反转/*/********************************************************/ void motor_rev(){uchar i;uint j;for (j=0; j<8; j++) //转1×n圈{if(K3==0){break;} //退出此循环程序for (i=0; i<8; i++) //一个周期转45度{P1 = REV[i]; //取数据delay(2); //调节转速}}}/******************************************************** ** 主程序**********************************************************/ main(){uchar r,N=64; //N 步进电机运转圈数while(1){if(K1==0){beep();for(r=0;r<N;r++){motor_ffw(); //电机正转if(K3==0){beep();break;} //退出此循环程序}}else if(K2==0){beep();for(r=0;r<N;r++){motor_rev(); //电机反转if(K3==0){beep();break;} //退出此循环程序}}elseP1 = 0xf0;}}/********************************************************/按实验板上的K1按键步进电机正转按实验板上的K2按键步进电机反转按实验板上的K3按键步进电机停止。
PLC实现步进电机的正反转及调整控制
PLC实现步进电机的正反转及调整控制
一、PLC实现步进电机的控制原理
拿步进电机举例,大家可以把它想象成一个隔著一定距离的圆盘,隔着每一环的距离形成齿轮的节点。
步进电机的正向或反向转动,就是将这一环索引和圆盘一起发动转动。
步进电机的转动,是靠每一步索引圆盘来完成的,每一步都有一个控制信号来告诉电机从哪一环节点开始转动,当接收到控制信号时,电机开始转动,并且每转一圈循环转动几个索引。
1、正向、反向控制
要实现步进电机的正向反向控制,就要在PLC程序中控制信号形式来实现,一般可以使用两个控制信号,一个是正反控制信号,一个是步进电机转动的速度,要求PLC程序根据正反控制信号来实现正向和反向控制。
正反控制信号就是设置一个开关量变量,当这个开关量为ON时,电机运行正转,当开关量为OFF时,电机运行反转,具体可以采用T函数来实现,T11=1,电机正转,T12=0,电机反转。
由于步进电机的转动是一布一射的过程,所以需要用一个电位器来控制步进电机的转动速度,当电位器的旋钮调整到一定位置时,就会给出一定频率的步进信号,PLC程序可以根据此步进信号,来控制步进电机的转动速度。
步进电机启动停止正反转控制程序的汇编语言的实现
DELAY 1MS MACRO TIME ;延时宏命令LOCAL AALOCAL BBPUSH CXMOV CX,TIMEAA: PUSH CXMOV CX,1000BB: NOPLOOP BBPOP CXLOOP AAPOP CXENDMDA TA SEGMENTTABA DB 01H,03H,02H,06H,04H,05H;正转的模型TABB DB 05H,04H,06H,02H,03H,01H;反转的模型DA TA ENDSCODE SEGMENTZZ PROC NEARPUSH DSMOV AX,DA TAMOV DS,AXMOV AX,0PUSH AXMOV DX,203HMOV AL,80HOUT DX,AL ;8255的控制字设定MOV DX,200HMOV AL,0OUT DX,AL ;先输出制动命令MOV CX,360 ;设定正转步数DD:MOV BL,6 ;六拍MOV DX,200HLEA DI,TABA ;指针指向正转的数字模型CC: MOV AL,[DI]OUT DX,ALDELAY 1MS 10INC DI ;指针加1,指向下一步的数字模型DEC BL ;拍数减1JNZ CC ;六拍未结束,则继续循环LOOP DD;360个周期的六拍未结束,继续循环ZZ ENDPFZ PROC NEARMOV CX,400 ;设定反转步数FF: MOV BL,6MOV DX,200HLEA DI,TABB ;指针指向反转的数字模型EE: MOV AL,[DI]OUT DX,ALDELAY 1MS 10DEC DI ;指针减1,指向反转下一步数字模型DEC BLJNZ EELOOP FFFZ ENDPMOV DX,200HMOV AL,0OUT DX,AL ;结束后,输出制动命令RETMAIN ENDPCODE ENDSEND START。
步进电机正反转和调速控制中功能指令的应用
三菱FX2N系列PLC功能指令的应用
步进电机正反转和调速控制中功能指令的应用 五、部分功能指令
1、数据变换指令 BCD/BIN BCD变换指令的编号为FNC18。它是将源元件中的二进制数转换成BCD码 送到目标元件中,如图。如果指令进行16位操作时,执行结果超出0~9999 范围将会出错;当指令进行32位操作时,执行结果超过0~99999999范围也 将出错。
1、控制要求 以三相六拍步进电动机为例,要求PLC产生脉冲序列,作为步进 电动机驱动电源功放电路的输入。脉冲正序列为A-AB-B-BC-C-CA,脉 冲反序列CA-C-BC-B-AB-A。
2021/8/7
三菱FX2N系列PLC功能指令的应用
步进电机正反转和调速控制中功能指令的应用
2、PLC的I/O分配表:
(1)单三拍工作方式:三相步进电动如果按A-B-C-A方式循环通电工作, 就称这种工作方式为单三拍工作方式。
(2)双三拍工作方式:每次对两相同时三拍”,转子转动一个齿距角。
(3)三相六拍工作方式:即以一相和两相相间隔轮流通电的方式运行, 如A-AB-B-BC-C-CA。 2021/8/7
输入 总开关 手动/自动 单步按钮 反转按钮
输出
X0
A相功放电路
X1
B相功放电路
X2
C相功放电路
X3
3、接线图:
Y0 Y1 Y2
减速按钮
X4
加速按钮
X5
2021/8/7
三菱FX2N系列PLC功能指令的应用
步进电机正反转和调速控制中功能指令的应用 3、梯形图及程序分析 参阅配套课本
2021/8/7
电气控制与PLC技术
电气控制与PLC技术
PLC实现步进电机的正反转及调整控制
实训课题三 PLC实现步进电机正反转和调速控制一、实验目的1、掌握步进电机的工作原理2、掌握带驱动电源的步进电机的控制方法3、掌握DECO指令实现步进电机正反转和调速控制的程序二、实训仪器和设备-48MR PLC一台1、FX2N2、两相四拍带驱动电源的步进电机一套3、正反切换开关、起停开关、增减速开关各一个三、步进电机工作原理步进电机是纯粹的数字控制电动机,它将电脉冲信号转换成角位移,即给一个脉冲信号,步进电机就转动一个角度,图3-1是一个三相反应式步进电机结图。
从图中可以看出,它分成转子和定子两部分。
定子是由硅钢片叠成,定子上有六个磁极(大极),每两个相对的磁极(N、S极)组成一对。
共有3对。
每对磁极都绕有同一绕组,也即形成1相,这样三对磁极有3个绕组,形成三相。
可以得出,三相步进电机有3对磁极、3相绕组;四相步进电机有4对磁极、四相绕组,依此类推。
反应式步进电动机的动力来自于电磁力。
在电磁力的作用下,转子被强行推动到最大磁导率(或者最小磁阻)的位置,如图3-1(a)所示,定子小齿与转子小齿对齐的位置,并处于平衡状态。
对三相异步电动机来说,当某一相的磁极处于最大导磁位置时,另外两相相必处于非最大导磁位置,如图3-1(b)所示,即定子小齿与转子小齿不对齐的位置。
把定子小齿与转子小齿对齐的状态称为对齿,把定子小齿与转子小齿不对齐的状态称为错齿。
错齿的存在是步进电机能够旋转的前提条件,所以,在步进电机的结构中必须保证有错齿的存在,也就是说,当某一相处于对齿状态时,其它绕组必须处于错齿状态。
本实验的电机采用两相混合式步进电机,其内部上下是两个磁铁,中间是线圈,通了直流电以后,就成了电磁铁,被上下的磁铁吸引后就产生了偏转。
因为中间连接的电磁铁的两根线不是直接连接的,是采用在转轴的位置用一根滑动的接触片。
这样如果电磁铁转过了头,原先连接电磁铁的两根线刚好就相反了,所以电磁铁的N极S极就和以前相反了。
但是电机上下的磁铁是不变的,所以又可以继续吸引中间的电磁铁。
(毕业设计)基于单片机的步进电机控制系统(汇编及C语言程序各一个)
基于单片机的步进电机控制系统设计前言步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。
控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。
为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。
人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。
此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。
步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。
1.步进电机原理及硬件和软件设计1.1步进电机原理及控制技术由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备一步进电机控制驱动器,典型步进电机控制系统如图1所示:控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输入端,以驱动步进电机的转动,环形分配器主要有两大类:一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。
最新单片机课程设计步进电机启动停止正反转
单片机课程设计步进电机启动停止正反转单片机课程设计报告步进电机控制设计姓名:黄盛海 201030480108詹志勋 201030480125郑榕生 201030480128 班级: 10车辆工程1班指导老师:李震姜晟日期: 2012.6.18~6.20 华南农业大学工程学院摘要:步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。
本次课程设计主要采用AT89S52芯片,用汇编语言编写出电机的正转、反转、加速、减速、停止程序,通过单片机、电机的驱动芯片ULN2003以及相应的按键实现以上功能,并且步进电机的工作状态要用相应的发光二极管显示出来。
控制系统主要由硬件设计和软件设计两部分组成。
其中,硬件设计包括单片机的最小系统模块、电源模块、控制模块、步进电机ULN2003A驱动模块、彩灯显示模块5个功能模块的设计。
并且通过仿真控制系统对硬件、软件进行了调试和改善,实现了上述功能。
本系统具有智能性、实用性及可靠性的特点。
关键词:步进电机单片机电脉冲驱动系统汇编语言目录1、课程设计目的及要求 (4)2、整体系统分析 (4)3、硬件系统分析 (6)4、软件系统分析 (10)5、调试结果 (10)6、结论 (11)7、参考文献 (12)附一:源程序 (12)1. 课程设计目的及要求1.1 课程设计目的①增进对单片机的感性认识,加深对单片机理论方面的理解;②掌握单片机的内部功能模块的应用,如定时器/计数器、中断、存贮器、I/O口、A/D转换等;③了解和掌握单片机应用系统的软硬件设计过程及实现方法。
1.2 课程设计要求①设计一个步进电机控制器,要求用多个按键控制电机的启动/停止、加速、减速、反转等控制功能;②用彩灯显示电机的转动状态,如加速就控制彩灯快速闪烁,减速则控制彩灯慢速闪烁等。
2. 整体系统分析2.1步进电机控制工作原理步进电机实际上是一个数字\角度转换器,也是一个串行的数\模转换器。
西门子S系列PLC控制步进电机进行正反转的方法
西门子S系列P L C控制步进电机进行正反转的方法Hessen was revised in January 20211、主程序先正转,等到正转完了就中断,中断中接通个辅助触点(M0.X),当M.0X闭合,住程序中的反转开始运做。
这样子就OK了。
2、用PTO指令让Q0.0 OR Q0.1高速脉冲,另一个点如Q0.2做方向信号,就可以控制正反转了,速度快慢就要控制输出脉冲周期了,周期越短速度越快,如果你速度很快的话请考虑缓慢加速,不然它是启动不了的,如果方向也变的快的话就要还做一个缓慢减速,不然它振动会蛮厉害,而且也会失步。
3、程NETWORK 1 // 用于单段脉冲串操作的主程序(PTO)// 首次扫描时,将映像寄存器位设为低// 并调用子程序0LD SM0.1R Q0.0 1CALL SBR_0NETWORK 1 // 子程序0开始LD SM0.0MOVB 16#8D SMB67 // 设置控制字节:// - 选择PTO操作// - 选择单段操作// - 选择毫秒增加// - 设置脉冲计数和周期数值// - 启用PTO功能MOVW +500 SMW68 // 将周期设为500毫秒。
MOVD +4 SMD72 // 将脉冲计数设为4次脉冲。
ATCH INT_0 19 // 将中断例行程序0定义为// 处理PTO完成中断的中断。
ENI // 全局中断启用PLS 0 // 激活PTO操作,PLS0 =》 Q0.0MOVB 16#89 SMB67 // 预载控制字节,用于随后的// 周期改动。
NETWORK 1 // 中断0开始// 如果当前周期为500毫秒:// 将周期设为1000毫秒,并生成4次脉冲LDW= SMW68 +500MOVW +1000 SMW68PLS 0CRETINETWORK 2// 如果当前周期为1000毫秒:// 将周期设为500毫秒,并生成4次脉冲LDW= SMW68 +1000MOVW +500 SMW68PLS 0序注释艾驰商城是国内最专业的MRO工业品网购平台,正品现货、优势价格、迅捷配送,是一站式采购的工业品商城!具有10年工业用品电子商务领域研究,以强大的信息通道建设的优势,以及依托线下贸易交易市场在工业用品行业上游供应链的整合能力,为广大的用户提供了传感器、图尔克传感器、变频器、断路器、继电器、PLC、工控机、仪器仪表、气缸、五金工具、伺服电机、劳保用品等一系列自动化的工控产品。
步进电动机正反转控制方法
步进电动机正反转控制方法
步进电动机是一种可编程的电机驱动器,可以通过控制其步进序列来实现精确的控制。
步进电动机的正反转是一个重要的功能,以下是实现步进电动机正反转的一些方法:
1. 使用两个不同的控制信号来控制步进电动机的正反转。
这种方法需要使用两个不同的控制信号,一个用于正转,另一个用于反转。
在控制电路中,需要将两个信号进行切换,以实现步进电动机的正反转。
2. 使用一个控制信号,通过控制步进电动机的步进序列来实现反转。
这种方法需要使用一个控制信号,将其与步进电动机的步进序列进行关联,以实现反转。
例如,当控制信号为高电平时,步进电动机会正向旋转;当控制信号为低电平时,步进电动机会反向旋转。
3. 使用反转开关来控制步进电动机的正反转。
这种方法需要使用一个反转开关,将其设置为“开”或“关”,以控制步进电动机的正反转。
在控制电路中,需要将反转开关的信号与步进电动机的控制信号进行关联,以实现反转。
以上是三种常见的实现步进电动机正反转的方法。
每种方法都有其优缺点,具体选择哪种方法取决于具体的应用场景和需求。
例如,使用两个不同的控制信号来控制步进电动机的正反转方法可以提供更精确的控制,但需要更多的电路和元件;使用反转开关来控制步进电动机的正反转方法则更为简单,但无法控制步进电动机的精确旋转方向。
0202 电动机“正-反-停”控制程序设计
。按压停止按钮SB3,PLC执行[MOV K0 K2Y000] 指令,使(K2Y000)=K0,即Y0= Y1=0,Y0和Y1 线圈均失电,电动机停止运行。
在M8000驱动下,PLC执行[ZCP K-1 K1 D0 M0]指令时, 如果(D0)>K1,则中间继电器M2得电,使Y0线圈得电,电 动机正转运行;如果(D0)<K-1,则中间继电器M0得电,使 Y1线圈得电,电动机反转运行;如果(D0)=K0,则中间继 电器M0和M2均不得电,使Y0和Y1线圈也不得电,电动机停 止运行。
任务实施
› (7)用比较指令设计
按压正转按钮SB1,PLC执行[MOV K1 D0]指令,将十进制立即数K1 传送到D0数据存储单元当中,使 (D0)=K1。
按压反转按钮SB2,PLC执行[MOV K-1 D0]指 令,将十进制立即数K-1传送到D0数据存储单元 当中,使(D0)=K-1。
当PLC执行[CMP D0 K0 M0]指令时, 如果(D0)>K0,则中间继电器M0得电,使Y0线圈得电,电动 机正转运行; 如果(D0)<K0,则中间继电器M2得电,使Y1线圈得电,电动 机反转运行; 如果(D0)=K0,则中间继电器M0和M2均不得电,使Y0和Y1 线圈也不得电,电动机停止运行。
模拟 仿真调
试
设备安 装调试
任务实施
› (1)用“与或非”指令设计
按压正转按钮SB1,X0常开触点闭合,正 转Y0线圈得电,电动机正转运行。
步进电机控制实验c语言程序,用AT89C51单片机控制步进电机的汇编源程序
步进电机控制实验c语⾔程序,⽤AT89C51单⽚机控制步进电机的汇编源程序:单⽚机(2540)源程序(50)步进电机(282)汇编语⾔(64)下⾯程序完成的主要功能:实现的正反转,加速、减速;显⽰电机转速(转速级别)和⼯作状态(正转、反转、不转)。
源程序SPEED EQU 10H ;SPEED为转速等级标志,共7级,即1~7FX EQU 11H ;FX 为⽅向标志COUNT EQU 12H ;COUNT次数标志ORG 0000HAJMP MAINORG 0003H ;外部中断0⼊⼝地址,加速⼦程序AJMP UPORG 0013H ;外部中断1⼊⼝地址,减速⼦程序AJMP DOWNORG 000BH ;定时器0中断⼊⼝地址,控制中断次数来达到控制转速 AJMP ZDT0ORG 0030HMAIN: MOV SP,#60HMOV TMOD,#01H ;⼯作于定时、软件置位启动,模式1(16 位计时器)MOV TH0,#0CFHMOV TL0,#2CHMOV COUNT,#01HSETB ET0 ;定时/计数器允许中断CLR IT0 ;外部中断为电平触发⽅式,低电平有效CLR IT1SETB EX0 ;外部允许中断SETB EX1SETB EA ;开总中断MOV R1,#11H ;四相单四拍运⾏,共阳数码管⽅向显⽰8,速度值显⽰0MOV SPEED,#00HMOV FX,#00HXIANS: MOV A,SPEEDMOV DPTR,#LEDMOVC A,@A+DPTR ;查表获取等级对应数码管代码MOV P2,A ;第⼆个数码管显⽰转速等级MOV A,FX ;准备判断转向CJNE A,#11H,ELSMOV P0, #0F9H ;第⼀个数码管显⽰ 1,表⽰正转AJMP QDELS: CJNE A,#00H,ZHENGMOV P0,#0C0H ;第⼀个数码管显⽰ 0,表⽰不转AJMP QDZHENG: MOV P0,#0BFH ;第⼀个数码管显⽰-,表⽰反转QD: JB P3.4,DD ;P3.4 接启动开关 K1,P3.4=1 时启动CLR TR0 ;停⽌定时/计数器MOV P0,#0C0H ;第⼀个数码管显⽰ 0,表⽰不转MOV P2,#0C0H ;第⼆个数码管显⽰ 0,表⽰转速为 0 MOV SPEED,#00H ;重新赋初值MOV FX,#00HAJMP QDDD: MOV A,SPEEDJNZ GO ;A 不等于 0,即初始速度不为零,则转移到 GO CLR TR0 ;停⽌定时/计数器AJMP QDGO: SETB TR0 ;开启定时/计数器ACALL DELAYAJMP XIANSDELAY: MOV R6,#10 ;延时⼦程序DEL1: MOV R7,#250HERE1: DJNZ R7, HERE1DJNZ R6,DEL1RET。
步进电机单片机控制及汇编语言
本程序的资源分配如下:R0——中间寄存器;R1——储存速度级数;R2——储存级数步数;R3——加减速状态指针,加速时指向35H,恒速时指向37H,减速时指向3AH;32H~34H——存放绝对参数(假设用3个字节),低位在前;35H、36H——存放加速总步数(假设2个字节),低位在前;37H~39H——存放恒速总步数(假设3个字节),低位在前;3AH、3BH——存放减速总步数(假设2个字节),低位在前;P0.0——正转脉冲输入;P0.1——反转脉冲输入;P1.3——正转按钮K1;P1.4——反转按钮K2;P1.5——加速按钮K3;P1.6——减速按钮K4;定时常数序列放在以ABC为起始地址的ROM中。
初始R3=35H,R1、R2都有初始值。
程序如下:ORG 0000HJNB P0.0 ZZ;JNB P0.1 FZ;ZZ:INC R0CJNE R0,#06H ZZ1;MOV R0,00H;ZZ1:MOV A,R0;MOV DPTR,#ABC;MOVC A,@A+DPTR;MOV P0 A;FZ: DEC R0;CJNE R0 #0FFH,FZ1;MOV R0,#05H ;FZ1:MOV A,R0;MOV DPTR,#ABC;MOVC A,@A+DPTR;MOV P0,A;ABC:DB 01H 03H 02H 06H 04HRETJS:MOV R0,#35;CJNE@R0 #0FFH,JS1;INC R0;DEC @R0;JS1:DJNC R2 JS2;INC R1;MOV A R1;MOV B,#N;MUL AB;MOV R2 A;JS2:MOV A,35H;ORL A,36H;JNB R3 #37H;MOV R0 #3AH;DEC @R0;CJNE @R0,#0FFH,JS4;INC R0;DEC @R0;JS4:DJNC R2 JS5;DEC R1;MOV A,R1;MOV B,#N;MUL AB;MOV R2,A;JS5:MOV A,3AH;ORL A,3B;JNB R3;RET;。
(毕业设计)基于单片机的步进电机控制系统(汇编及C语言程序各一个)
基于单片机的步进电机控制系统设计前言步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。
控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。
为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。
人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。
此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。
步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。
1.步进电机原理及硬件和软件设计1.1步进电机原理及控制技术由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备一步进电机控制驱动器,典型步进电机控制系统如图1所示:控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输入端,以驱动步进电机的转动,环形分配器主要有两大类:一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DELAY 1MS MACRO TIME ;延时宏命令
LOCAL AA
LOCAL BB
PUSH CX
MOV CX,TIME
AA: PUSH CX
MOV CX,1000
BB: NOP
LOOP BB
POP CX
LOOP AA
POP CX
ENDM
DATA SEGMENT
TABA DB 01H,03H,02H,06H,04H,05H;正转的模型
TABB DB 05H,04H,06H,02H,03H,01H;反转的模型DATA ENDS
CODE SEGMENT
ZZ PROC NEAR
PUSH DS
MOV AX,DATA
MOV DS,AX
MOV AX,0
PUSH AX
MOV DX,203H
MOV AL,80H
OUT DX,AL ;8255的控制字设定
MOV DX,200H
MOV AL,0
OUT DX,AL ;先输出制动命令
MOV CX,360 ;设定正转步数
DD: MOV BL,6 ;六拍
MOV DX,200H
LEA DI,TABA ;指针指向正转的数字模型
CC: MOV AL,[DI]
OUT DX,AL
DELAY 1MS 10
INC DI ;指针加1,指向下一步的数字模型
DEC BL ;拍数减1
JNZ CC ;六拍未结束,则继续循环
LOOP DD;360个周期的六拍未结束,继续循环
ZZ ENDP
FZ PROC NEAR
MOV CX,400 ;设定反转步数
FF: MOV BL,6
MOV DX,200H
LEA DI,TABB ;指针指向反转的数字模型
EE: MOV AL,[DI]
OUT DX,AL
DELAY 1MS 10
DEC DI ;指针减1,指向反转下一步数字模型
DEC BL
JNZ EE
LOOP FF
FZ ENDP
MOV DX,200H
MOV AL,0
OUT DX,AL ;结束后,输出制动命令
RET
MAIN ENDP
CODE ENDS
END START。