步进电机设计报告.doc_第1页
步进电机设计报告.doc_第2页
步进电机设计报告.doc_第3页
步进电机设计报告.doc_第4页
步进电机设计报告.doc_第5页
免费预览已结束,剩余14页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成都学院(成都大学)课程设计报告 微机原理 课程设计报告题 目 步进电机控制课程设计 学 院 电子信息工程学院 专 业 自 动 化 (本) 学生姓名 黄 万 林 学 号 201010311123 年级 2010 级 指导教师 程 浩 职称 副教授 二一二年七月步进电机转速实时控制摘要:本设计主要是通过编写程序来驱动步进电机转动,进一步对转速实时控制。采用开环控制方式,使之能对步进电机的转动方向,速度和角度进行调整。根据步进电机控制绕组的多少可以将电机分为三相、四相和五相。实验中采用电压为DC12V的四相八拍步进电机35BYJ46型电机。用ULN2003作为步进电动机驱动电路主芯片,以8255A作为8086并行输出接口,8086对步进电机的控制信号则通过8255A送到ULN2003。关键词:步进电机;8255;驱动程序; 第1章 绪论41.1 研究背景41.2 选题的目的和意义41.3 本课程设计的主要内容5 第2章 步进电机转速实时控制62.1 设计方案62.2 硬件系统基本原理62.3 设计思想82.4 软件框图92.5 软件清单13第3章 结束语20参考文献 22一、 绪论 1.1 研究背景1.2 选题的目的和意义一、前言 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。 二、感应子式步进电机工作原理 (一)反应式步进电机原理 由于反应式步进电机工作原理比较简单。下面先叙述三相反应式步进电机原理。 1、结构: 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开0、1/3、2/3,(相邻两转子齿轴线间的距离为齿距以表示),即A与齿1相对齐,B与齿2向右错开1/3,C与齿3向右错开2/3,A与齿5相对齐,(A就是A,齿5就是齿1) 2、旋转: 如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3,此时齿3与C偏移为1/3,齿4与A偏移(-1/3)=2/3。如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3,此时齿4与A偏移为1/3对齐。如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A通电,电机就每步(每脉冲)1/3,向右旋转。如按A,C,B,A通电,电机就反转。 由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定。不过,出于对力矩、平稳、噪音及减少角度等方面考虑。往往采用A-AB-B-BCC-CA-A这种导电状态,这样将原来每步1/3改变为1/6。甚至于通过二相电流不同的组合,使其1/3变为1/12,1/24,这就是电机细分驱动的基本理论依据。 不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制这是步进电机旋转的物理条件。只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。 3、力矩: 电机一旦通电,在定转子间将产生磁场(磁通量)当转子与定子错开一定角度产生力F与(d/d)成正比 S 其磁通量=Br*S Br为磁密,S为导磁面积 F与L*D*Br成正比L为铁芯有效长度,D为转子直径 Br=NI/R NI为励磁绕阻安匝数(电流乘匝数)R为磁阻。 力矩=力*半径 力矩与电机有效体积*安匝数*磁密 成正比(只考虑线性状态)因此,电机有效体积越大,励磁安匝数越大,定转子间气隙越小,电机力矩越大,反之亦然。 实验目的:1、掌握四相步进电机工作原理以及相关接口电路的原理;2、理解步进电机正、反转工作原理和转速控制原理。意义:本设计为掌握利用计算机来加深对所学知识的理解和掌握,通过步进电机转速实时控制平台,运用所学的理论和方法进行实践、解决问题。1.3 本课程设计的主要内容(1) 实现步进电机转速实时控制,利用键盘控制电机的正反转、调节转速,连续转动或转动指定步数;并将相应数据显示在数码管上。(2) 对步进电机转速实时控制的主要环节,包括设计要求及思路、硬件系统基本原理、软件框图及程序清单进行了详细的阐述。二、 步进电机转速实时控制 2.1 设计要求及思路1、设计要求:使用键盘控制步进电机的正反转、调节转速,连续转动或转动指定步数;将相应的数据显示在数码管上。2、设计思路: 2.2 硬件系统的基本原理 1、系统硬件子系统的构成本设计采用的步进电机为35BYJ46型四相八拍电机,电压为DC12V,其励磁线圈及其励磁顺序如图2-1及表2-1所示:图2-1 励磁线圈示意图表2-1 励磁顺序表13542123456785+4-3-2-1- 2、步进电机工作原理以及8255接口的关系如图2-2: 图2-2 实验线路 3、工作原理四相步进电机示意图如图2-3、2-4,转子由一个永久磁铁构成,定子分别由四组绕组构成:图2-3 电机定子和转子示意图图2-4 电气连接示意图当S1连通电源后,定子磁场将产生一个靠近转子为N极,远离转子为S极才磁场,这样的定子磁场和转子的固有磁场发生作用,转子就会转动,正确地S1、S4的送电次序,就能控制转子旋转的方向。例如:若送电的顺序为S1闭合断开S2闭合断开S3闭合断开S4闭合断开,周而复始的循环,在定子和转子共同作用下,电机就顺时针旋转,如图2-5:图2-5 电机顺时针旋转示意图若送电的顺序为S4闭合断开S3闭合断开S2闭合断开S1闭合断开,周而复始的循环,则电机就逆时针旋转,原理同理。8255A向步进电机发出控制脉冲如图2-6:图2-6 控制脉冲 2.3 设计思想根据步进电机的励磁顺序列写控制步进电机顺序转动的输出的数据表初始化8255A的工作方式设定需要步进电机转过的步数顺序依次逐个延时(调用延时函数 1:延时较长,实现慢转)输出表中数据设定需要步进电机快速转过的步数顺序依次逐个延时(调用延时函数2:延时较短,实现快转)输出表中数据设定需要反转过的步数逆序依次逐个延时(电泳延时函数1.慢速)输出表中的数据设定需要步进电机快速反转的步数逆序依次逐个延时(调用延时函数2,快速)输出表中数据。以此循环,则可实现让步进电机先从低速正转到高速正转,再从高速正转到低速反转,再由低速反转到高速反转,周而复始。2.4 软件框图本课程设计的软件框图如图2-7至2-12:图2-7 主程序框图图2-8 改变方向子程序图2-9 启动步进电机子程序YYNNY开始转动方向标志=091H-下次送给步进电机值下次送给步进电机值循环右移二次1-转动方向标志0-送给数码管的第7位步进电机未转动过标志33H-下次送给步进电机值下次送给步进电机值循环左移二次0-转动方向标志1-送给数码管的第7位步进电机未转动过标志返回YNY开始0-步进电机未转动过标志取转动步数取转速对应的延时值(转速延时)初始转速延时1=初始转速延时转速延时需要刷新显示标志1-步进电机未转动过标志1-转动方向标志(1:表示顺时针方向)33H-下次送给步进电机值5-步进电机转速初始化8255(PC口输出)初始化8253(计数器T0设置在模式2状态,BCD码计数,CLK0/210)初始化8259(允许8253中断)初始化8253中断向量初始化显示缓冲区:(数码管第8位:0,顺时针方向;5、7位消隐;6位:转速;1、2、3、4位:0,表示连续转动,其他值表示需要转动的步数)调用显示子程序有键按下需要刷新显示标志=10-需要刷新显示标志调用步数调整子程序关中断(终止步进电机转动)数码管的1、2、3位-2、3、4位键值送给数码管的第一位调用改变转向子程序键值9键值=0AH调用增速子程序调用减速子程序调用启动步进电机子程序Y键值=0BH键值=0CH键值=0DH开始YYY图2-12 定时中断程序NNYNNNYYNY初始转速延时1=转速延时初始转速延时 -1=0时初始转速延时1 - 1初始转速延时=初始转速延时11-1转动方向标志=0时下次送给步进电机值循环右移一次1-1转动步数=0时1-需要刷新显示标志转动步数减一1-1转动步数=0时关中断清中断标志开始下次送给步进电机值循环左移一次1-1返回下次送给步进电机值-8255的PC口(控制步进电机转动一步)Y 图2-13 主程序框图2.5 软件清单.MODELTINYEXTRNDisplay8:NEAR, SCAN_KEY:NEARIO8259_0EQU0F000H;IO8259_1EQU0F001H;Con_8253EQU0E003H;8353控制字端口地址T0_8253EQU0E000H;8253计数器0的端口地址IO8255_ConEQU0D003H;8255控制字端口地址IO8255_PCEQU0D002H;8255PC端口地址.STACK100.DATAStepControlDB0;下一次送给步进电机的值bufferDB8 DUP(0);显示缓冲区,8个字节buffer1DB8 DUP(0);显示缓冲区,8个字节SpeedNoDB0;选择哪一级速度StepDelayDB0;转动一步后,延时常数StartStepDelayDB0;若选择速度过快,延时由长到短,最终使用对应延时常数StartStepDelay1 DB0;StartStepDelaybFirstDB0;有没有转动过步进电机bClockwiseDB0 ; =1 顺时针方向 =0 逆时针方向转动bNeedDisplayDB0;已转动一步,需要显示新步数StepCountDW0;需要转动的步数StepDelayTab:DB250,125,83,62,50,42,36,32,28,25,22,21.CODESTART:MOV AX,DATAMOVDS,AXMOVES,AXNOPMOVbFirst,1;有没有转动过步进电机MOVbClockwise,1;顺时针方向MOVStepControl,33H;下一次送给步进电机的值MOVSpeedNo,5;第五级速度CALLInit8255;初始化8255CALLInit8253;初始化8253CALLInit8259;初始化8259CALLWriIntverMOVbuffer,0;显示缓冲器初始化MOVbuffer+1,0MOVbuffer+2,0MOVbuffer+3,0MOVbuffer+4,10HMOVAL,SpeedNoMOVbuffer+5,ALMOVbuffer+6,10HMOVbuffer+7,0STAR2:LEASI,bufferLEADI,buffer1MOVCX,8REPMOVSBLEASI,buffer1CALLDisplay8STAR3:CALLScan_KeyJBSTAR5CMPbNeedDisplay,0JZSTAR3MOVbNeedDisplay,0CALLStep_SUB_1JMPSTAR2STAR5:CLI;终止步进电机转动CMPAL,10JNBSTAR1MOVAH,buffer+2MOVbuffer+3,AHMOVAH,buffer+1MOVbuffer+2,AHMOVAH,bufferMOVbuffer+1,AHMOVbuffer,ALJMPSTAR2STAR1:CMPAL,14JNBSTAR3LEASI,DriverTabSUBAL,10SHLAL,1XORAH,AHMOVBX,AXJMPCS:SI+BXDriverTab:DWDirection;转动方向DWSpeed_up;提高转速DWSpeed_Down;降低转速DWExec ;步进电机根据方向、转速、步数开始转动Direction:CMPbClockwise,0JZClockwiseMOVbClockwise,0MOVbuffer+7,1AntiClockwise:CMPbFirst,0JZAntiClockwise1MOVStepControl,91HJMPDirection1AntiClockwise1:MOVAL,StepControlRORAL,2MOVStepControl,ALJMPDirection1Clockwise:MOVbClockwise,1MOVbuffer+7,0CMPbFirst,0JZClockwise1MOVStepControl,33HJMPDirection1Clockwise1:MOVAL,StepControlROLAL,2MOVStepControl,ALDirection1:JMPSTAR2Speed_up:MOVAL,SpeedNoCMPAL,11JZSpeed_up2Speed_up1:INCALMOVSpeedNo,ALMOVbuffer+5,ALSpeed_up2:JMPSTAR2Speed_Down:MOVAL,SpeedNoCMPAL,0JZSpeed_Down1DECALMOVSpeedNo,ALMOVbuffer+5,ALSpeed_Down1:JMPSTAR2Exec:MOVbFirst,0CALLTakeStepCountLEABX,StepDelayTabMOVAL,SpeedNoXLATMOVStepDelay,ALCMPAL,50JNBExec1MOVAL,50Exec1:MOVStartStepDelay,ALMOVStartStepDelay1,ALSTIJMPSTAR2TIMER0:PUSHAXPUSHDXDECStartStepDelayJNZTIMER0_1MOVAL,StartStepDelay1CMPAL,StepDelayJZTIMER0_2DECALMOVStartStepDelay1,ALTIMER0_2:MOVStartStepDelay,ALMOVAL,StepControlMOVDX,IO8255_PCOUTDX,ALCMPbClockwise,0JNZTIMER0_3RORAL,1JMPTIMER0_4TIMER0_3:ROLAL,1TIMER0_4:MOVStepControl,ALCMPStepCount,0JZTIMER0_1MOVbNeedDisplay,1DECStepCountJNZTIMER0_1addsp,8 ;小写部分不允许使用单步、单步进入命令popfclipushfsubsp,8nopTIMER0_1:MOVDX,IO8259_0MOVAL,20HOUTDX,ALPOPDXPOPAXIRETStep_SUB_1PROCNEARMOVCX,4LEABX,bufferStep_SUB_1_1:DECBYTE PTR BXCMPBYTE PTR BX,0FFHJNZStep_SUB_1_2MOVBYTE PTR BX,9INCBXLOOPStep_SUB_1_1Step_SUB_1_2:RETStep_SUB_1ENDPTakeStepCountPROCNEARMOVAL,buffer+3;转动步数送入StepCountMOVBX,10MULBLADDAL,buffer+2MULBLADDAL,buffer+1ADCAH,0MULBXADDAL,bufferADCAH,0MOVStepCount,AXRETTakeStepCountENDPInit8255PROCNEAR;初始化8255MOVDX,IO8255_ConMOVAL,80HOUTDX,AL;8255 PC输出DECDXDECDXMOVAL,0FFHOUTDX,AL;0FFH-8255 PCRETInit8255ENDPInit8253PROCNEAR;初始化8253MOVDX,Con_8253MOVAL,35HOUTDX,AL ;计数器T0设置在模式2状态,BCD码计数MOVDX,T0_8253MOVAL,10HOUTDX,ALMOVAL,02HOUTDX,AL;CLK0/210RETInit8253ENDPInit8259PROCNEAR;初始化8259MOVDX,IO8259_0MOVAL,13HOUTDX,ALMOVDX,IO8259_1MOVAL,08HOUTDX,ALMOVAL,09HOUTDX,ALMOVAL,0FEHOUTDX,ALRETInit8259ENDPWriIntverPROCNEARPUSHESMOVAX,0MOVES,AXMOVDI,20HLEAAX,TIMER0STOSWMOVAX,CSSTOSWPOPESRETWriIntverENDPENDSTART三、 结束语本次课程设计能圆满完成,首先要感谢校方给与我这么一次诚挚的机会,能够独立地完成一次课程设计,并在这个过程中,给予我们各种方便,使我们在这个学期快要结课的时候,能够将学到的知识应用到实践中,增强了我们实际操作和动手应用能力,提高了独立思考的能力。同时也要感谢张老师的指导,她在忙碌的教学工作中抽出时间来指导我的的设计。你严谨的治学态度、丰富渊博的知识、敏锐的学术思维、精益求精的工作态度以及诲人不倦的师者风范是我终生学习的楷范,你的高深精湛的造诣与严谨求实的治学精神,将永远激励着我。你严谨细致、一丝不苟的工作作风一直是我工作、学习的榜样。你循循善诱的教导和不拘一格的思想给予了我无尽的启迪。还要感谢设计中帮助、指导过我的同学,感谢你们为我提出了许多的宝贵建议和意见。这篇这个设计的每个细节和每个数据,都离不开你们的细心指导。而你们开朗的个性和宽容的态度,帮助我能够很快的进入状态。有了你们的支持、鼓舞和帮助,我才能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论