当前位置:文档之家› 四相八拍步进电机调速

四相八拍步进电机调速

目录引言 (1)第1章绪论 (2)1.1步进电机的概述 (2)1.1.1 步进电机的特点 (2)1.1.2步进电机的工作原理简述 (2)1.2四相八拍步进电机 (2)1.2.1 四相步进电机工作原理 (2)1.2.2 八拍得工作方式 (4)1.3单片机概述 (4)1.3.1 单片机原理简述 (4)1.3.2 8031单片机 (5)1.4总体方案设计 (5)1.4.1 系统的组成 (5)1.4.2 系统的工作原理 (6)第2章系统软件设计 (7)2.1显示子程序的设计 (7)2.2键盘子程序的设计 (8)2.3正反转程序流程图 (11)2.3.1 正反转程序流程图 (11)2.3.2 转速快慢程序流程图 (14)2.4定时中断流程图 (17)2.5语音报警系统 (19)2.6主程序设计 (20)参考文献 (22)致谢 (23)引言步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。

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

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

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

步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。

在本设计方案中采用单片机内部的定时器改变脉冲的频率从而实现对步进电机的转速进行控制,实现电机调速与正反转的功能。

关键词:步进电机,单片机,调速系统第1章绪论1.1 步进电机的概述1.1.1 步进电机的特点1)一般步进电机的精度为步进角的3-5%,且不累积。

2)步进电机外表允许的温度高。

步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。

3)步进电机的力矩会随转速的升高而下降。

当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。

在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。

4)步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。

步进电机有一个技术参数:空载启动频率,即步进电机在空载情况下能够正常启动的脉冲频率,如果脉冲频率高于该值,电机不能正常启动,可能发生丢步或堵转。

在有负载的情况下,启动频率应更低。

如果要使电机达到高速转动,脉冲频率应该有加速过程,即启动频率较低,然后按一定加速度升到所希望的高频(电机转速从低速升到高速)。

1.1.2步进电机的工作原理简述步进电机是一种用电脉冲进行控制 ,将电脉冲信号转换成相位移的电机 ,其机械位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成正比 ,每一个脉冲信号可使步进电机旋转一个固定的角度.脉冲的数量决定了旋转的总角度 ,脉冲的频率决定了电机运转的速度.当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

1.2 四相八拍步进电机1.2.1 四相步进电机工作原理图1.5是该四相反应式步进电机工作原理示意图。

图1.5 四相步进电机步进示意图开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。

当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。

而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。

依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。

四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。

单四拍与双四拍的步距角相等,但单四拍的转动力矩小。

八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图1-6.a、b、c所示:a 单四拍 b双四拍 c八拍图1.6步进电机工作时序波形图1.2.2 八拍得工作方式单双八拍工作方式:A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75度)八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。

1.3单片机概述1.3.1 单片机原理简述单片机(SINGLE-CHIP MICROCOMPUTER)是把微型计算机主要部分都集成在一块芯片上的单芯片微型计算机。

图1.7中表示单片机的典型结构图。

由于单片机的高度集成化,缩短了系统内的信号传送距离,优化了结构配置,大大地提高了系统的可靠性及运行速度,同时它的指令系统又很适合于工业控制的要求,所以单片机在工业过程及设备控制中得到了广泛的应用。

图1.7典型单片机结构图单片机在进行实时控制和实时数据处理时,需要与外界交换信息。

人们需要通过人机对话,了解系统的工作情况和进行控制。

单片机芯片与其它CPU比较,功能虽然要强得多,但由于芯片结构、引脚数目的限制,片内ROM、RAM、I/O口等不能很多,在构成实际的应用系统时需要加以扩展,以适应不同的工作情况。

单片机应用系统的构成基本上如图1.8所示。

图1.8 单片机的应用系统单片机应用系统根据系统扩展和系统配置的状况,可以分为最小应用系统、最小功耗系统、典型应用系统。

本设计是设计一款最小应用系统,最小应用系统是指能维持单片机运行的最简单配置的系统。

这种系统成本低廉、结构简单,常用来构成简单的控制系统,如开关量的输入/输出控制、时序控制等。

对于片内有ROM/EPROM的芯片来说,最小应用系统即为配有晶体振荡器、复位电路和电源的单个芯片;对与片内没有ROM/EPROM芯片来说,其最小应用系统除了应配置上述的晶振、复位电路和电源外,还应配备EPROM或EEPROM 作为程序存储器使用1.3.2 8031单片机8031单片机具有体积小,重量轻,价格低,耗电少,电源单一,抗干扰能力强,可靠性高,面向控制,控制功能强,运行速度快等特点。

所以本次调速设计芯片采用8031来控制。

8031单片机内部组成:1个8位微处理器CPU;128字节的数据存储器(RAM);32条I/O位线(四个8位口P0,P1,P2,P3);2个定时器;1个具有5个中断源,2个优先级的中断嵌套机构;1个全双工的串行通信端口,特许功能寄存器以及一个震荡和时钟电路。

各部分通过芯片内部总线连接。

8031单片机的硬件机构特点:8031单片机无内部存储器(ROM),有数据存储器(RAM);输入/输出(I/O)端口:它具有一个全双的串行口,该串行口由两根I/O位线构成,有四种工作方式,可通过编程选定,且8031还有32个I/O位线。

中断与堆栈:8031单片机有5个中断源,分为2级优先,每个中断源的优先级是可以编程的。

它的堆栈位置也是可以编程的,堆栈深度可以达到128字节。

定时/计数器与寄存区:8031单片机有2个16位定时/计数器,通过编程可以实现四种工作模式。

8031单片机在内部RAM中设置了四个通用工作寄存器区,共32个寄存器,以适应多种终端或子程序嵌套的要求。

指令系统:8031单片机指令系统功能大,指令段,执行速度快。

外接晶振的频率为128MHZ时,大部分指令执行时间为1μM。

1.4 总体方案设计1.4.1 系统的组成本系统主要组成部分为:主机芯片8031,转速测量采集系统,步进电机的驱动系统,8279扩展外部中断子系统,报警系统等多部分系统原理图图1.10 系统原理框图1.4.2 系统的工作原理系统的工作原理如下:有主机芯片8031发出指令至步进电机的驱动和隔离电路,步进电机启动,通过8031的内部中断来实现步进电机的加速运转。

电机的转速通过光电传感器,传输到采样保持电路到A/D转换器,转换成数字信号,存到主机芯片8031进行处理,在传输到8279到LED显示器。

如果转速超过规定速度,通过8031发出指令到报警电路报警。

单片机控制步进电机工作是,电机在几十伏,甚至一百幅的高压条件下工作,而单片机则在5V的低压条件下工作,一旦步进电机的电压窜到单片机部分,竟会引起单片机损坏;或者步进电机部分的有关信号干扰单片机,也会引起系统工作失误。

故单片机与不进电极之间的硬件接口一般需要进行电压隔离;对于四相步进电机,需要四路控制电路,每一路控制步进电机的一相;有时需要步进电机以不同的速度工作,不适应不同的目的,硬件接口中将包括工作频率发生器。

第2章系统软件设计2.1 显示子程序的设计图2.1 显示程序流程图8279的初始化程序如下:INIT: MOV DPTR,#7FFFH ;置8279命令/状态口地址 MOV A,#0D1H ;置清显示命令字MOVX @DPTR,A ;送清显示命令WEIT: MOVX A,@DPTR ;读状态JB ACC.7,WEIT ;等待清显示RAM结束MOV A,#34H ;置分频系数,晶振12MHZMOVX @DPTR,A ;送分频系数MOV A,#00H ;置键盘/显示命令MOVX @DPTR,A ;送键盘/显示命令MOV IE,#84H ;允许8279中断RET显示子程序如下:DIS: MOV DPTR,#7FFFH ;置8279命令/状态口地址 MOV R0,#30H ;字段码首地址MOV R7,#08H ;8位显示MOV A,#90H ;置显示命令字MOVX @DPTR,A ;送显示命令MOV DPTR,#7FFEH ;置数据口地址LP: MOV A,@R0 ;取显示数据ADD A,#6 ;加偏移量MOVC A,@A+PC ;查表,取得数据的段码MOVX @DPTR,A ;送段码显示INC R0 ;调整数据指针DJNZ R7,LP ;RETSEG: DB 3FH,06H,5BH,4FH,66H,6DH;字符0、1、2、3、4、5段码 DB 7DH,07H,7EH,6FH,77H,7CH;字符6、7、8、9、A、B段码DB 39H,5EH,79H,71H,73H,3EH;字符C、D、E、F、P、U段码DB 76H,38H,40H,6EH,FFH,00H;字符H、L、-、Y、“空”段码2.2 键盘子程序的设计图2.2 键盘程序流程图键盘中断子程序如下:KEY: PUSH PSWPUSH DPLPUSH DPHPUSH ACCPUSH BSETB PSW.3MOV DPTR,#7FFFH ;置状态口地址MOVX A,@DPTR ;读FIFO状态ANL A,#0FH ;JZ PKYR ;MOV A,#40H ;置读FIFO命令MOVX @DPTR,A ;送读FIFO命令 MOV DPTR,#7FFEH ;置数据口地址 MOVX A,@DPTR ;读数据 LJMP KEY1 ;转键值处理程序PKYR: POP BPOP ACCPOP DPHPOP DPLPOP PSWRETI ;KEY1: ……;键值处理程序键盘程序清单:KEY1: ACALL KS1;有无键按下子程序JNZ LK1;有键按下,转去抖延时AJMP KEY1;无键按下,继续扫描LK1: ACALL DELA12; 12MS延时程序调用ACALL KS1;判断键是否真正按下JNZ LK2 ;有键按下,转逐列扫描AJMP KEY1;无键按下,继续扫描LK2: MOV R2,#0FEH;设置首列扫描字MOV R4,#00H;保存首列号LK4: MOV DPTR,#7F01H;列扫描字送至PA口MOV A,R2MOVX @DPTR,AINC DPTR;指向PC口INC DPTRMOVX A,@DPTR;读入行状态JB ACC.0,LONE;第0行无键按下,转LONEMOV A,#00H;有键按下,设置行首键号AJMP LKP;转求键号LONE: JB ACC.1,LTWO;第1行无键按下,转LTWO MOV A,#08H;有键按下,设置行首键号AJMP LKP;转求键号LTWO: JB ACC.2,LTHR;第2行无键按下,转LTHR MOV A,#10H;有键按下,设置行首键?AJMP LKP;转求键号LTHR: JB ACC.3,NEXT;第3行无键按下,查下一列 MOV A,#18H;有键按下,设置行首键LKP: ADD A,R4 ;求键号,键号=行首键号+列号 PUSH ACC ;保护键号LK3: ACALL KS1 ;等待键释放JNZ LK3 ;键未释放,继续等待POP ACC;键释放,键号送AAJMP OVER;键扫描结束NEXT: INC R4;列号加1,指向下一列 MOV A,R2;判断8列扫描完否JNB ACC.7,KND; 8列扫描完,继续RL A;扫描字左移一位MOV R2,A;送扫描字AJMP LK4 ;转下一列扫描KND: AJMP KEY1OVER: RET;键扫描结束KS1: MOV DPTR,#7F01H;指向PA口MOV A,#00H;设置扫描字MOVX @DPTR,A;扫描字送PA口INC DPTR;指向PC口INC DPTRMOVX A,@DPTR;读入PC口状态CPL;以高电平表示有键按下ANL A,#0FH;屏蔽高4位RET2.3 正反转程序流程图2.3.1 正反转程序流程图图2.3 正反转程序流程图主程序如下:CON: MOV R3, # NMOV TMOD , # 10HMOV TL1 , # LOWMOV TH1 , # H IGHJNB FLAG ,LEFTMOV R0 , RMAJMP TIME - SLEFT: MOV R0 , LMTIME: SETB EASETB ET1SETB TR1步进电机控制程序P3.2正转,P3.3反转,P3.4停止步进电机接P1.0P1.1P1.2P1.3 ORG 00hSTOP: ORL P1,#0FFh; 步进电机停止LOOP: JNB P3.2,FOR2; 如果P3.2按下正转JNB P3.3,REV2 ; 如果P3.3按下反转JNB P3.4,STOP1; 如果P3.4按下停止JMP LOOP; 反复监测键盘FOR: MOV R0,#00h; 正转到TAB取码指针初值FOR1: MOV A,R0; 取码MOV DPTR,#TABLE ;MOVC A,@A+DPTRJZ FOR; 是否到了结束码00hCPL A ; 把ACC反向MOV P1,A; 输出到P1开始正转JNB P3.4,STOP1; 如果P3.4按下停止JNB P3.3,REV2; 如果P3.3按下反转CALL DELAY; 转动的速度INC R0; 取下一个码JMP FOR1; 继续正转REV: MOV R0,#05h ; 反转到TAB取码指针初值REV1: MOV A,R0MOV DPTR,#TABLE; 取码MOVC A,@A+TABLEJZ REV; 是否到了结束码00hCPL A; 把ACC反向MOV P1,A; 输出到P1开始反转JNB P3.4,STOP1; 如果P3.4按下停止JNB P3.3,REV2; 如果P3.3按下反转CALL DELAY; 转动的速度INC R0; 取下一个码JMP REV1; 继续反转STOP1: CALL DELAY; 按P3.4的消除抖动JNB P3.4,$; P3.4放开否?CALL DELAY; 放开消除抖动JMP STOP;FOR2: CALL DELAY; 按P3.2的消除抖动JNB P3.2,$; P3.2放开否?CALL DELAY; 放开消除抖动JMP FOR;REV2: CALL DELAY; 按P3.3的消除抖动JNB P3.3,$; P3.3放开否?CALL DELAY; 放开消除抖动JMP REV;DELAY: MOV R1,#40; 步进电机的转速20MS D1:MOV R2,#248;DJNZ R2,$DJNZ R1,D1RETTABLE:DB 03h,09h,0Ch,06h; 正转表DB 00; 正转结束DB 03h,06h,0Ch,09h; 反转DB 00; 反转结束END2.3.2 转速快慢程序流程图图2.4 转速快慢程序流程图步进电机正反快慢程序ORG 00hx1: MOV R3,#48 一圈48步START: MOV R0,#00h 正转取码初值START1:MOV P1,#0FFh; 先停止MOV A,R0MOV DPTR,#TABLEMOVC A,@A+DPTRJZ START; 是否到了结束码00?CPL AMOV P1,A; 输出运转CALL DELAY; 调用慢速的延时转动INC R0; 取码指针加1取下一个码DJNZ R3,START1; 是否走了48步?MOV R3,#48; 是则重新设定48步START2:MOV P1,#0FFhMOV R0,#05; 逆转的取码初值START3:MOV A,R0;MOV DPTR,#TABLEMOVC A,@A+DPTRJZ START2CPL AMOV P1,ACALL DELAY2INC R0DJNZ R3,START3JMP x1; 重复开始DELAY: ; 延时程序(慢速)MOV R7,#255D1: MOV R6,#50D2: DJNZ R6,D2DJNZ R7,D1RETDELAY2: ; 延时程序(快速)MOV R5,#255D3:MOV R2,#25D4: DJNZ R2,D4DJNZ R5,D3RETTABLE:DB 03h,09h,0Ch,06h; 正转表DB 00DB 06h,0Ch,09h,03h; 反转表DB 00END2.4 定时中断流程图图2.5 中断子程序流程图中断服务程序如下:INTTO: PUSH APUSH PSWMOV A , @R0MOV P1 ,AINC R0MOV A , # 00HXRL A , @R0JNZ NEXTMOV A , R0CLR CSUBB A , # 03HMOV R0 , ANEXT: DJNZ R3 , RETUCLR ET1CLR EARETU: POP PSWPOP ARETI利用软件形成脉冲序列的程序清单:PULSE_S: MOV R7,#NUM;设定脉冲个数PUSH A ;保护现场PUSH PSWLOOP: SETB P1.0 ;输出高电平ACALL DELAY1 ;延时CLR P1.0 ;输出低电平ACALL DELAY2 ;延时DJNZ R7,LOOP ;R7≠0,继续输出脉冲POP PSW ;恢复现场POP ARET定时中断子程序:TIME0: CLR EA ;关中断INC 30HMOV A,30HXRL A,#50H ;判断是否到8秒JZ S_8 ; 8秒定时到,转至S_8 AJMP RECOUN ;未到8秒,继续计时S_8: SETB P3.2;触发外部中断0NOPCLR P3.2NOPRECOUN: MOV TH0,#3CHMOV TL0,#0B0H ;设定定时器初值SETB EA ;开中断RETI ;中断返回中断子程序T_CON: PUSH A ;保护现场PUSH PSWMOV R7,#N ;设定控制步数JNB FLAG,LEFT ;判断旋转方向RIGHT: MOV R0,RM ;正转模型起始地址AJMP ROTATELEFT: MOV R0,LMROTATE: MOV A,@R0 ;取第一拍控制模型MOV P1,A ;输出第一拍控制模型ACALL DELAY1 ;延时INC R0MOV A,@R0 ;取第二拍控制模型MOV P1,A ;输出第二拍控制模型ACALL DELAY1 ;延时INC R0MOV A,@R0 ;取第三拍控制模型MOV P1,A ;输出第三拍控制模型ACALL DELAY1 ;延时DJNZ R7,ROTATE ;未走完要求的步数,继续POP PSW ;恢复现场POP ARET ;返回2.5 语音报警系统该系统采用专用集成语音芯片,将所要播放的语音信息一次性烧录到存储器内。

相关主题