步进电机可编程驱动控制器设计资料及例程

合集下载

步进电机控制方法及编程实例

步进电机控制方法及编程实例

步进电机控制方法及编程实例
步进电机在现代自动化控制系统中广泛应用,其精准的位置控制和相对简单的驱动方式使其成为许多工业和家用设备中的理想选择。

本文将介绍步进电机的控制方法及编程实例,帮助读者更好地理解和应用这一技术。

步进电机的基本原理
步进电机是一种将电能转换为机械能的电机,其运行原理基于磁场相互作用。

步进电机内部包含多个电磁线圈,根据电流方向和大小的不同来控制转子的运动。

通过逐个激活线圈,可以实现步进电机的准确位置控制,使其能够按照指定的步长旋转。

步进电机的控制方法
1.单相激励控制:最简单的步进电机控制方式之一。

通过依次激活每一相的线圈,
使电机按照固定步长旋转。

这种方法控制简单,但稳定性较差。

2.双相正交控制:采用两相电流的正交控制方式,提高了步进电机的稳定性和精
度。

可以实现正向和反向旋转,常用于对位置要求较高的应用场景。

3.微步进控制:将步进电机每个步进细分为多个微步进,以提高控制精度和减小振
动。

虽然增加了控制复杂度,但可以获得更平滑的运动和更高的分辨率。

步进电机的编程实例
下面以Python语言为例,演示如何通过控制步进电机的相序来实现简单的旋转控制。

通过以上代码,可以实现对步进电机的简单控制,按照设定的相序进行旋转,实现基本的位置控制功能。

结语
步进电机是一种常用的精准位置控制设备,掌握其控制方法和编程技巧对于工程师和爱好者来说都是有益的。

希望本文介绍的步进电机控制方法及编程实例能够帮助读者更好地理解和应用这一技术。

plc驱动步进电机课程设计

plc驱动步进电机课程设计

plc驱动步进电机课程设计一、课程目标知识目标:1. 学生能够理解PLC(可编程逻辑控制器)的基本原理和功能。

2. 学生能够掌握步进电机的构造、工作原理及其与PLC的连接方式。

3. 学生能够掌握PLC编程控制步进电机的相关指令和程序编写方法。

技能目标:1. 学生能够运用PLC对步进电机进行正转、反转、停止等基本控制。

2. 学生能够通过PLC编程实现步进电机的速度和位置控制。

3. 学生能够解决实际应用中步进电机控制中的常见问题,并进行故障排查。

情感态度价值观目标:1. 培养学生对自动化技术和电气工程领域的兴趣,激发探索精神。

2. 培养学生团队协作、沟通交流的能力,增强解决问题的自信心。

3. 培养学生具备安全意识,关注环境保护和可持续发展。

课程性质:本课程为实践性较强的课程,以理论为基础,侧重于实际操作和应用。

学生特点:学生具备一定的电工电子基础知识,对PLC和步进电机有一定了解,但实践经验不足。

教学要求:结合课程性质、学生特点,注重理论与实践相结合,以学生动手实践为主,培养实际操作能力。

在教学过程中,分解课程目标为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 理论知识:- PLC工作原理与结构组成- 步进电机的构造、原理及特性- PLC与步进电机的接口技术及连接方式2. 实践操作:- PLC编程软件的使用方法- 步进电机控制指令的编写和调试- 步进电机速度和位置控制程序的编写与实现3. 教学案例:- 分析实际应用中的步进电机控制案例,如自动化生产线、机器人等- 故障排查与解决方法4. 教学大纲安排:- 第一周:PLC工作原理、步进电机原理及特性学习- 第二周:PLC与步进电机接口技术、连接方式学习- 第三周:PLC编程软件使用、步进电机控制指令编写- 第四周:步进电机速度和位置控制程序编写、调试及优化- 第五周:教学案例分析与讨论,故障排查与解决教学内容关联教材章节:- 教材第1章:PLC概述- 教材第2章:PLC硬件与软件- 教材第3章:步进电机及其控制- 教材第4章:PLC应用实例教学内容注重科学性和系统性,结合教学大纲和教材章节,有序安排教学进度,确保学生能够逐步掌握PLC驱动步进电机的相关知识和技能。

PLC实训程序--步进电机的PLC控制

PLC实训程序--步进电机的PLC控制

步进电机的PLC控制一、实验目的1、掌握PLC控制的基本原理,掌握移位寄存器的使用。

2、掌握步进电机的工作原理,掌握环形分配器的使用方法。

3、掌握运用PLC驱动步进的方法。

二、实验器材1、PLC-2型可编程控制器实验台1台2、步进电机的PLC控制演示板1块3、PC机或手持编程器1台4、编程电缆1根5、自锁式连接导线若干图16.1三、实验原理与实验步骤1、步进电机的PLC控制演示板如图16.1所示。

2、实验原理本演示装置采用的四相步进电机,运用PLC设计一个步进电机的环形分配器的软件程序。

以此来实现步进电机的单步,连续运转。

四相步进电机的结构如下图所示。

演示板上四个LED发光管分别代表步进电机的四个相位。

3、设计要求:按照步进电机的工作方式,设四相线圈分别为A、B、C、D,公共端为E、F。

当电机正向转动时其工作时序如下:A→AB→B→BC→C→CD→D→DA当电机反向转动时其工作时序如下:A←AB←B←BC←C←CD←D←DA要求慢速度为I S—格,快速度为0.1S—格。

4、实验步骤:(1)打开PLC-2型实验台电源,编程器与PLC连接。

(2)根据具体情况编制输入程序,并检查是否正确。

(3)实验台与PLC-DOME008连接,检查连线是否正确。

(4)按下启动按钮,观察运行结果。

四、设计程序清单1、I/O地址分配清单:输入地址:正向启动X0 反向启动X1停止X2 速度控制X3 输出地址: A Y0 B Y1C Y2 C Y3E\F COM2、程序(1)指令表0 LD X0001 OR S02 ANI X0013 ANI X0024 OUT S06 LD X0017 OR S18 ANI X0009 ANI X00210 OUT S112 LD X00313 CJ P0 16 LDI T33 26 OUT Y01527 LDI X00328 CJ P131 P032 LDI T3333 OUT T32 K136 LD T3237 OUT T33 K140 OUT S242 OUT Y01543 P144 LD S245 PLS M1051 ANI M552 ANI M653 ANI M754 AND S155 LDI M256 ANI M357 ANI M458 ANI M559 ANI M660 ANI M761 ANI M862 AND S063 ORB68 AND S069 SFTR M0 M1 K8 K178 MPP79 AND S180 SFTL M0 M2 K8 K189 LD M190 OR M291 OR M892 OUT Y00093 LD M294 OR M395 OR M496 OUT Y00117 OUT T32 K520 LD T3221 OUT T33 K5 24 OUT S2101 LD M6102 OR M7 47 LDI M148 ANI M249 ANI M350 ANI M4103 OR M864 OUT M065 LD M800266 OR M1067 MPS104 OUT Y00397 LD M498 OR M599 OR M6100 OUT Y002105 END梯形图接线图※FX系列的输出继电器的公共端:FX2N-32MR为COM0~COM4;FX2N-48MR为COM0~COM5; FX1N-60MR为COM0~COM7五、思考题1、如果是三相步进电机,工作方式为三相六拍,程序该如何编制?2、如果是E、F公共端不接,作为二相时机使用,程序又该如何处理?。

PLC控制步进电机的应用案例

PLC控制步进电机的应用案例

P L C控制步进电机的应用案例1(利用P L S Y指令)任务:利用PLC作为上位机,控制步进电动机按一定的角度旋转。

控制要求:利用PLC 控制步进电机顺时针2周,停5秒,逆时针转1周,停2秒,如此循环进行,按下停止按钮,电机马上停止(电机的轴锁住)。

1、系统接线PLC控制旋转步进驱动器,系统选择/转,设置成N细分后,则1000脉冲/转。

Y1输出,Y3[S1.]用来指定脉冲频率(2~20000Hz),[S2.]指定脉冲的个数(16位指令的范围为1~32767,32位指令则为1~2147483647)。

如果指定脉冲数为0,则产生无穷多个脉冲。

指定脉冲输出完成后,完成标志M8029置1。

如上图所示,当X10由ON变为OFF时,M8029复位,停止输出脉冲。

若X10再次变为ON则脉冲从头开始输出。

注意:PLSY指令在程序中只能使用一次,适用于晶体管输出类型的PLC。

6、控制流程图7、梯形图程序(参考)8、制作触摸屏画面PLC控制步进电机的应用案例2(利用定时器T246产生脉冲)任务:利用步进电机驱动器可以通过PLC端的On和Off就能决定电机的正传或者反转;步进驱动器的其中一个。

Y2;PLC的COM1——GND;B绕组X0X4—频率增加,X5—频率4、制作触摸屏画面PLC控制步进电机的应用案例3(利用FX2N-1PG产生脉冲)任务:应用定位脉冲输出模块FX2N-1PG,通过步进驱动系统对机器人左右、旋转、上下运动进行定位控制。

控制要求:正向运行速度为1000Hz,连续输出正向脉冲,加减速时间为100ms,1、系统接线系统选择外部连接方式。

PLC通过FX2N-1PG控制左右、旋转、上下步进驱动器的其中一个。

VIN端、CP+端、U/D+端——+24VDC; CP-——FP;U/D-——Y4;PLC的COM1端、FX2N-1PG的COM0端——GNDA、A-——电机A绕组;B、B-2、I/O分配。

步进电机可编程驱动控制器设计及例程

步进电机可编程驱动控制器设计及例程

步进电机可编程驱动控制器【简要说明】一、尺寸:长88mmX宽68mmX高35mm二、主要芯片:AT89S52单片机、L298NL、298N(支持AT89S52编程)三、工作电压:输入电压(5V~30V)输入电压的大小由被控制电机的额定电压决定。

四、可驱动直流(5~30V之间电压的直流电机或者步进电机)五、最大输出电流2A (瞬间峰值电流3A)六、最大输出功率25W七、特点:1、具有信号指示2、转速可调3、抗干扰能力强4、具有续流保护5、转速、转向、工作方式可根据程序灵活控制6、可单独控制一台步进电机7、根据需要自己编程可以灵活控制步进电机,实现多种功能;8、可实现正反转9、采用光电隔离10、单片机P3口已用排针引出,可以方便使用者连接控制更多外围设备。

11、四位LED灯指示12、四位按键输入(可以对AT89S52单片机编程实现任何控制)13、核心控制芯片采用市场上最常用的AT89S52单片机,支持STC89C52单片机,控制方式简单,只需控制IO口电平即可!14、采用独立编码芯片L297,不用在单片机程序里编程复杂的逻辑代码和占用单片机资源。

15、设计有程序下载口,可以实时编程实时调试。

16、芯片都安装在对应的管座上,可以随时更换芯片。

17、外部连线采用旋转压接端子,使接线更牢固。

18、四周有固定安装孔。

产品最大特点:可以对AT89S52单片机编程实现任意控制被控的直流电机或者步进电机。

适用场合:单片机学习、电子竞赛、产品开发、毕业设计。

注意啦:本产品提供例程(附带原理图以及说明!)【标注图片】【步进电机控制接线图】步进电机的控制实例步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。

一、步进电机最大特点是:1、它是通过输入脉冲信号来进行控制的。

步进电机控制器编程实例

步进电机控制器编程实例

步进电机控制器编程实例步进电机控制器编程实例,是一种可以用来控制步进电机的编程语言。

步进电机控制器是一种微处理器,它通过应用特定的程序指令来控制步进电机的转动角度。

它可以根据不同的应用需求,以不同的步进电机控制器编程语言来编写不同的步进电机控制程序。

步进电机控制器编程实例主要包括以下几个部分:1、步进电机介绍:步进电机是一种常用的旋转电机,具有精确的控制功能,可以实现高精度的位置控制和精确的速度控制。

步进电机的特点是采用梯形转子,在每种工作状态下均能实现精确的转动角度控制。

2、步进电机控制系统概述:步进电机控制系统包括电机驱动器、步进电机控制器和外围设备三大部分,是一个复杂的控制系统。

步进电机电机驱动器是将电子信号转换成电流输出,驱动步进电机转动的重要环节;步进电机控制器是系统的控制中心,它根据输入的指令和参数,对步进电机的转动角度、速度和方向进行控制;而外围设备则是用于将系统中的信号转换成具体的控制信号的重要环节。

3、步进电机控制器编程语言:步进电机控制器编程语言是用于编写步进电机控制程序的语言,它主要由指令代码和参数组成。

根据不同的应用需求,可以使用不同的步进电机控制器编程语言来编写步进电机控制程序,如C语言、Assembler语言等。

4、步进电机控制程序编写:在步进电机控制程序的编写过程中,需要考虑到各种参数的设置,如脉冲频率、脉冲模式、步进电机驱动器的类型等。

步进电机控制程序的编写必须遵循相应的编程规则,以确保步进电机的精确性和可靠性。

5、步进电机控制程序优化:步进电机控制程序的优化是必不可少的,可以采取多种技术手段来提高步进电机控制程序的性能,如分析步进电机控制程序的指令和参数,优化程序的结构,以及提高步进电机的转动速度等。

6、步进电机控制程序调试:步进电机控制程序的调试是检查步进电机控制程序的功能和性能的重要环节,可以采用多种方法进行调试,如基于字节代码的调试、基于硬件的调试、基于模块的调试等。

毕业设计——步进电机控制器电路及程序

毕业设计——步进电机控制器电路及程序

步进电机控制器本毕设控制器采用STC89C52RC单片机,步进电机驱动采用ULN2003,利用液晶1602显示设置参数和运行状态。

通过设置实现对步进电机,转动度数、转动方向的控制。

程序:#include <reg51.h>#define uchar unsigned char#define uint unsigned intvoid init();void writec(uint com);void writed(uint dat);void delay(uint shu);void xieshuzu(uchar a[],uchar add); void kaiji();void option_turn(uchar n);void rightturn(uchar q);//uchar keyscan();sbit en_a=P1^0;sbit en_b=P1^1;sbit en_c=P1^2;sbit en_d=P1^3;sbit e=P3^4;sbit rs=P3^5;sfr duan=0x80;uchar code table[] =" 0713024031 "; uchar code table2[]=" BYSJ "; uchar code table3[]="POS: +360.00"; uchar code table4[]="V: R/s"; /***************delay1ms************/ void delay(uint shu){uint i,j;for(i=shu;i>0;i--)for(j=110;j>0;j--);}/******************反转****************************/ void option_turn(uchar n){uchar i;for(i=0;i<n;i++){en_a=1;en_b=1;en_c=1;en_d=0;delay(150); //D相en_a=1;en_b=1;en_c=0;en_d=0;delay(150); //DC相 */en_a=1;en_b=1;en_c=0;en_d=1;delay(150); // C 相 */en_a=1;en_b=0;en_c=0;en_d=1;delay(150); //BC相 */en_a=1;en_b=0;en_c=1;en_d=1;delay(150);//B相en_a=0;en_b=0;en_c=1;en_d=1;delay(150); //BA相*/en_a=0;en_b=1;en_c=1;en_d=1;delay(150); //A相en_a=0;en_b=1;en_c=1;en_d=0;delay(150); //DA相*/}}/******************正转****************************/ void rightturn(uchar q){uchar j;for(j=0;j<q;j++){en_b=1;en_c=1;en_d=1;delay(150); //A相en_a=0;en_b=0;en_c=1;en_d=1;delay(150); //ab相 */en_a=1;en_b=0;en_c=1;en_d=1;delay(150); // 、、B 相 */en_a=1;en_b=0;en_c=0;delay(150); //BC相 */en_a=1;en_b=1;en_c=0;en_d=1;delay(150);//c相en_a=1;en_b=1;en_c=0;en_d=0;delay(150); //CD相*/en_a=1;en_b=1;en_c=1;en_d=0;delay(150); //d相en_a=0;en_c=1;en_d=0;delay(150); //DA相*/}}/***********************/void kaiji(){xieshuzu(table,0x80);xieshuzu(table2,0xc0);}/***********************/void xieshuzu(uchar a[],uchar add) {uchar cis;writec(add);for(cis=0;a[cis]!='\0';cis++){writed(a[cis]);delay(2);}}/***********************/ void xies(uchar a,uchar add) {writec(add);writed(0x30+a);}/***********************/ void writec(uint com){ e=0;rs=0;duan=com;delay(2);e=1;delay(2);e=0;}/***********************/ void writed(uint dat){e=0;rs=1;duan=dat;delay(2);e=1;delay(2);e=0;}/***********************/void init(){writec(0x01);writec(0x38);writec(0x0c);}/*******************/ void keyscan(void){/***************uchar keyscan(){uchar k,skey;key=0xfe;skey=key;if(skey!=0xfe){ delay(10);skey=key;if(skey!=0xfe){switch(skey){case(0xee):k=7;kc++;break;case(0xde):k=8;kc++;break;case(0xbe):k=9;kc++;break;case(0x7e):k=0x0a;kc++;break;default:break;}while(skey!=0xfe)skey=key;return k;}key=0xfd;skey=key;if(skey!=0xfd){ delay(10);skey=key;if(skey!=0xfd){switch(skey){case(0xed):k=4;kc++;break;case(0xdd):k=5;kc++;break;case(0xbd):k=6;kc++;break;case(0x7d):k=0x0b;kc++;break;default:break;}while(skey!=0xfd)skey=key;return k;}}key=0xfb;skey=key;if(skey!=0xfb)delay(10);skey=key;if(skey!=0xfb){switch(skey){case(0xeb):k=1;kc++;break;case(0xdb):k=2;kc++;break;case(0xbb):k=3;kc++;break;case(0x7b):k=0x0c;kc++;break;default:break;}while(skey!=0xfb)skey=key;return k;}key=0xf7;skey=key;if(skey!=0xf7){ delay(10);skey=key;if(skey!=0xf7){switch(skey){case(0xe7):k=0x0d;kc++;break;case(0xd7):k=0; kc++;break;case(0xb7):k=0x0e;kc++;break;case(0x77):k=0x0f;kc++;break;default:break;}while(skey!=0xf7)skey=key;return k;}}}********//***********************//********************************************/ void main(void){init();kaiji();delay(2000);xieshuzu(table3,0x80);xieshuzu(table4,0xc0);while(1){if(P2^7==0)option_turn(250);//rightturn(250);delay(250);}}如果在做的过程中遇到问题可以联系我QQ:793001021乐意为大家服务!。

步进电机控制器设计

步进电机控制器设计

步进电机控制器设计一、引言步进电机是一种特殊的电动机,具有精度高、响应快、节能等优点,在许多领域有着广泛的应用。

为了充分发挥步进电机的性能,需要设计一套稳定可靠的步进电机控制器。

本文将介绍步进电机控制器的设计原理、控制算法和硬件实现方法。

二、设计原理1.步进电机工作原理步进电机是利用定位电磁铁的磁极之间的相互作用来实现转动的电机。

它可以通过在不同的电磁铁上通电,使其产生磁场,从而引起驱动轴的转动。

步进电机可分为单相步进电机和双相步进电机,其工作原理略有差异。

2.步进电机控制原理三、控制算法1.开环控制算法开环控制算法是最简单的步进电机控制算法,它通过给电机提供确定的脉冲序列来控制电机的转动。

这种控制方式适用于转动速度不变或较低精度要求的应用场景,如电子钟等。

2.闭环控制算法闭环控制算法是通过添加位置反馈装置,如光电编码器或霍尔传感器来实现的。

通过实时检测电机的位置信息,可以根据实际位置与预期位置之间的误差来控制驱动电流和脉冲信号,从而实现更高的精度和可靠性。

闭环控制算法适用于需要高精度定位和转动的应用场景,如机械臂、3D 打印机等。

四、硬件实现方法1.驱动电路设计2.信号生成电路设计为了实现精确的脉冲信号控制,需要设计合适的信号生成电路。

可以采用时序电路、计数器和锁相环等技术来生成脉冲信号,并根据控制算法调节脉冲频率和脉冲数。

3.位置反馈装置设计如果需要闭环控制,需要添加位置反馈装置来实时检测电机的位置信息。

可以选择光电编码器、霍尔传感器等位置传感器,并设计相应的信号处理电路。

五、总结步进电机控制器设计涉及到步进电机的工作原理、控制算法和硬件实现方法。

根据具体的应用需求和系统要求,可以选择合适的控制算法和电路设计方案。

同时,还需考虑控制器的稳定性、可靠性和成本等因素,以实现高性能的步进电机控制系统。

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

步进电机可编程驱动控制器
【简要说明】
一、尺寸:长88mmX宽68mmX高35mm
二、主要芯片:AT89S52单片机、L298NL、298N(支持AT89S52编程)
三、工作电压:输入电压(5V~30V)输入电压的大小由被控制电机的额定电压决定。

四、可驱动直流(5~30V之间电压的直流电机或者步进电机)
五、最大输出电流2A (瞬间峰值电流3A)
六、最大输出功率25W
七、特点:
1、具有信号指示
2、转速可调
3、抗干扰能力强
4、具有续流保护
5、转速、转向、工作方式可根据程序灵活控制
6、可单独控制一台步进电机
7、根据需要自己编程可以灵活控制步进电机,实现多种功能;
8、可实现正反转
9、采用光电隔离
10、单片机P3口已用排针引出,可以方便使用者连接控制更多外围设备。

11、四位LED灯指示
12、四位按键输入(可以对AT89S52单片机编程实现任何控制)
13、核心控制芯片采用市场上最常用的AT89S52单片机,支持STC89C52单片机,控制方式简单,只需控制IO口电平即可!
14、采用独立编码芯片L297,不用在单片机程序里编程复杂的逻辑代码和占用单片机资源。

15、设计有程序下载口,可以实时编程实时调试。

16、芯片都安装在对应的管座上,可以随时更换芯片。

17、外部连线采用旋转压接端子,使接线更牢固。

18、四周有固定安装孔。

产品最大特点:可以对AT89S52单片机编程实现任意控制被控的直流电机或者步进电机。

适用场合:单片机学习、电子竞赛、产品开发、毕业设计。

注意啦:本产品提供例程(附带原理图以及说明!)
【标注图片】
【步进电机控制接线图】
步进电机的控制实例
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。

一、步进电机最大特点是:
1、它是通过输入脉冲信号来进行控制的。

2、电机的总转动角度由输入脉冲数决定。

3、电机的转速由脉冲信号频率决定。

二、步进电机的驱动电路
根据控制信号工作,控制信号由单片机产生。

(或者其他信号源)
三、控制步进电机的速度
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。

两个脉冲的间隔越短,步进电机就转得越快。

调整单片机发出的脉冲频率,就可以对步进电机进行调速。

(注意:如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象)。

四、此板驱动步进电机测试程序
说明:以AT89S52单片机控制单元,C语言编程!
【测试程序】
/********************************************************************
汇诚科技
实现功能:正转_反转_减速_加速程序
使用芯片:AT89S52 或者 STC89C52
晶振:
编译环境:Keil
作者:zhangxinchun
淘宝店:汇诚科技
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!
*********************************************************************/ #include<>
#define uchar unsigned char
#define uint unsigned int
uchar Y=10; //初始化速度
/********************************************************
控制位定义
********************************************************/
sbit shi_neng=P1^0; // 使能控制位
sbit fang_shi=P1^1; // 工作方式控制位
sbit fang_xiang=P1^2;// 旋转方向控制位
sbit mai_chong=P1^3; // 脉冲控制位
sbit zheng_zhuan=P2^0; // 正转
sbit fan_zhuan=P2^1; // 反转
sbit jia_su=P2^2; // 加速
sbit jian_su=P2^3; // 减速
/********************************************************
延时函数
********************************************************/
void delay(uchar i)//延时函数
{
uchar j,k;
for(j=0;j<i;j++)
for(k=0;k<180;k++);
}
/********************************************************
加速函数
********************************************************/ void jia()
{
Y=Y-1;
if(Y<=1){Y=1;}//如果速度值小于等于1,值保持不变
}
/********************************************************
减速函数
********************************************************/ void jian()
{
Y=Y+1;
if(Y>=100){Y=100;}
}
/********************************************************
主函数
********************************************************/
main()
{
shi_neng=0; // 使能控制位
fang_shi=1; // 工作方式控制位
fang_xiang=1;// 旋转方向控制位
mai_chong=1; // 脉冲控制位
while(1)
{
if(zheng_zhuan==0){shi_neng=1;fang_xiang=1;}
if(fan_zhuan==0){shi_neng=1;fang_xiang=0;}
if(jia_su==0){delay(10);while(!jia_su);jia();}
if(jian_su==0){delay(10);while(!jian_su);jian();}
mai_chong=~mai_chong; //输出时钟脉冲
delay(Y); //延时(括号内数值越小,电机转动速度越快) }
}/********************************************************
结束
********************************************************/
【图片展示】。

相关文档
最新文档