步进电机控制系统课程设计.doc_第1页
步进电机控制系统课程设计.doc_第2页
步进电机控制系统课程设计.doc_第3页
步进电机控制系统课程设计.doc_第4页
步进电机控制系统课程设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

步进电机控制系统课程设计报告课程名称: 微型计算机控制技术 设计题目: 步进电机控制系统 专 业: 计算机科学与技术 班 级: 学 号: 姓 名: 时 间: 指导老师: 目 录一、系统概述 31. 系统设计摘要 32. 系统设计概要 3(1) 设计目的 3(2) 设计内容 3(3) 工作原理 3I.步进电机工作原理II.设计工作原理二、系统硬件设计 51总体设计 52系统控制电路 5三、系统软件设计 81总体设计 8(1) 设计思想 8(2) 系统总体流程图 92关键模块设计 . 10 (1)开关控制流程图 10(2)通电方式流程图 11四、结束语 12附录 (程序) 13参考文献 16一、系统概述1. 系统设计摘要 步进电动机是机电数字控制系统中常用的控制元件之一。由于其精度高,体积小,控制方便灵活,因此在智能仪表和位置中得到了广泛应用。如在绘图机,打印机及光学仪器中,都采用了步进电机。步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转 动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而 达到调速的目的。步进电机是一种将脉冲信号转换成直线位移或角位移的控制微电机,其步距角位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成比例;它易于实现与计算机或其它数字元件接口,适用于数字控制系统。本设计通过一种设计方案,包括硬件的介绍和组建、硬件原理图和软件流程图的设计、源程序的编写等,介绍一种基于单片机的步进电机运行控制系统。2. 系统设计概要(1) 设计目的a. 了解步进电机的基本结构和工作原理;b. 了解步进电机的的基本控制原理;c. 掌握用单片机的步进电机控制系统的硬件设计方法;d. 熟悉步进电机驱动程序的设计与调试并使用仿真软件进行调试;e. 掌握控制步进电机的步数、转向、启停等功能的程序设计方法; f . 提高单片机应用系统设计和调试水平。(2) 设计内容设计一个单片机控制三相步进电机控制系统,系统具有如下功能:a. 电机启停由K3键控制,方向控制由K4控制;b. 通电方式选择由K0-K2键决定,K0为单三拍,K1为双三拍,K2为三相六拍;c. 电机停止转时的状态,由绿色指示灯亮;正转时红色指示灯亮,反转时黄色指示灯亮, d. 电机的步数不是给定的,需要用K5-K11作为步数的给定值。e. 电机转动过程中要显示剩余工作步数,采用3位LED数码管。(3) 设计环境Windows XP 环境, Office2007环境,Proteus仿真设计软件工具,3000TC仿真实验仪平台。(4) 工作原理I . 步进电机工作原理步进电机实际上是一个数字/角度转换器,也是一个串行的数/模转换器。步进电机的结构与步进电机所含的相数有关。三相发电机主要是三相交流同步发电机。其转子通常为直流励磁线圈产生的电磁铁,为发电机工作提供磁场。定子是在空间互差120度电角度的三相交流绕组。步进电机是一种将电脉冲转换成相应角位移的控制电动机。步进电机的控制装置由脉冲发生器、环形分配器和功率放大器组成,只要将脉冲依次送到步进电机的每一相,它便沿着方向控制线信号所确定的方向走一步。根据步距角的大小及实际走的步数,只要知道初始位置,便可知道步进电机的最终位置。本设计以三相步进电机为例,三相步进电机有3种工作方式:a.单三拍,通电顺序为: A B Cb.双三拍,通电顺序为: AB BC CAc.三相六拍,通电顺序: A AB B BC C CA对于方向控制,例如三相六拍,如果是AABBBCCCA这样的顺序,那么电机是正转;如果是AACCBBBA这样的顺序,那么电机是反转。(如图1)通电时序图:图1 三相通电时序图另外通过控制脉冲发出的频率,就可以控制电机的转速。 II. 设计工作原理本设计实现的工作过程如下述: 首先系统电源开启,然后检测启动开关(K3键实现),如果开关(K3)处于启动状态,则系统开始工作,否则将等待。启动后,系统能按照我们所控制的方式控制步进电机转动。如K0单三拍,K1双三拍,K2三相六拍三种通电方式;运转过程中可以用方向控制开关(K4)控制方向。整个系统工作过程,指示灯指示步进电机工作方式(正转红灯亮,反转黄灯亮,停止绿灯亮)。系统连续工作,过程中可以随时启动或停止,以及调节它的步数(K5-K12实现)。在LED显示器上显示剩余的工作步数,直至给定的步数转完为止,系统停止。二、系统硬件设计1总体设计(1)本系统主要原理框图:步进电机(三相)外部控制电路单片机80C51接口8255A驱动器ULN (2)系统总体电路框图:本系统设计的所有硬件电路均用Proteus仿真系统工具实现,采用到的主要元件有单片机80C51,接口芯片8255A,电机以及其驱动器,573锁存器,开关,指示灯(这里我采用交通灯替代),四位共阴极数码显示管,以及晶振等元件。各个模块的电路图如下所示:系统总体电路图2系统控制电路控制部分电路图步数设定模块电路图这里采用K0-K2三个开关接至单片机的P1口,实现电机三种工作方式的转换,用K3实现系统的启停,用K4实现正反转转换,再用七个开关调节电机的步数由8255A芯片的A口读入该步数值到单片机。 步进电机及驱动器模块电路图电机部分的设计,由于Proteus没有三相步进电机的元件,我是先用一个PWSMERVO电机模仿三相电机,先用来测试程序是否正确,看其功能是否实现。后面我另外补充了对三相电机制作,如下图所示,采用单片机直接驱动电机运转。另外设计的三相步进电机电路图由于此仿真系统软件没有三相步进电机的元件,这是我另外设计了用光电耦合器,三极管等实现三相步进电机的电路。3显示电路 数码管显示步数电路 指示灯指示电路显示电机工作时的剩余步数部分,我采用四位共阴极数码显示管,接至8255A的B、 C口,B口用来输出位选,而C口用于决定段选。当然程序中要先转化为BCD码,再显示。对于指示灯,我是用一个交通灯的模拟元件来指示工作状态,这样实现起来比较方便,三根线接至单片机上剩余没用的P1口其他三条口线。三、系统软件设计1总体设计(1) 设计思想步进电机三相绕组的电流是正弦阶梯电流,通过改变给定电流的每一次变化的阶梯数可以实现可变细分功能。驱动器的任务就是控制绕组的电流,使之按正弦阶梯波的规律变化。每给一个步进脉冲, A 、 B 、 C 三相绕组的电流沿正弦阶梯波前进一步,电机转动一个步距角。根据步进电机工作原理,使用80C51的 P3.0-P3.2分别驱动步进电机A、B、C相,用软件控制P3口输出一脉冲序列,控制步进电机转速、方向、步距。同时为能观察步进电机旋转状态,在A、B、C相输出到状态指示灯,并利用接口芯片8255A输入步进电机步数,及显示步进电机工作工程中剩余的步数。本系统的控制程序能够根据开关的设定改变电机的启挺,转动方向及转动步数。根据步进电机与单片机的接口和有效电平方式,输出控制字。如下表三相步进电机控制模型以及通电顺序和控制方式字(若通电放式相反,电机反转):方 式 P3端口(电平0有效,1无效)十六进制通电状态P3.7P3.6P3.5P3.4P3.3P3.2C相P3.1B相P3.0A相三相单三拍111111100FEHA相111111010FDHB相111110110FBHC相三相双三拍111111000FCHAB相111110010F9HBC相111110100FAHCA相三 相 六 拍111111100FEHA相111111000FCHAB相111111010FDHB相111110010F9HBC相111110110FBHC相111110100FAHCA相(2) 系统总体流程图开 始开 始驱动步进电机工作定义栈区指示灯指示状态8255A初始化调用显示子程序设定步数结 束查询各个工作控制字(开关) 控制实验主程序流程图2关键模块设计(1)开关控制流程:程序初始化完成启停开关 N Y读入步数各个开关状态暂存步数 R查询通电方式三个开关单三拍? Y N双三拍? Y N N三相六拍? Y正/反转? N查反转模型 Y查表正转模型输出模型 开关中断程序框图说明:此模块设计实现的是对这个系统的工作方式以及状态的控制,本设计用K0-K2做为通电方式选择键,K0为单三拍,K1为双三拍,K2为三相六拍;K3、K4分别为启动和方向控制;K5-K11作为步数的给定值。各个控制模块既相互联系,又相互分开,在程序实现中,做到模块化,使程序井井有条,让人看着简单易懂。(2)三种通电方式流程图步进电机控制程序R 步数检查通电方式键DPTR 正向模型地址判断正反转 NDPTR 反向模型地址 Y取控制模型步数R=0?模型=00H? Y控制模型输出 N模型地址加1 N Y Y返回说明:此模块设计实现的是三相步进电机的三种通电方式工作流程。首先由8255A口送7位步进电机的步数,再由K0-K2键判别电机通电方式,送控制模型地址,再检查方向控制键状态,根据相应状态转到相应子程序,找到模型,控制电机运转,并输出和显示。到此,此步进电机的控制系统设计就完成了,其中的硬件设计是在Proteus下完成,再导出电路图的,软件设计中的程序流程图画的不是很完整,对步进电机的三种方式工作流程没有细化,但是他们的工作原理大同小异,因此用一个流程图体现。四、结束语 本次微机控制技术课程设计整个过程花了一个多星期,期间不断探索和努力争取做好这个设计。虽有很多不足和不尽人意的地方,比如硬件方面的知识还是很薄弱,一些芯片不懂得正确使用,或不懂得它的用处等。但是在这个课程设计的过程中学到很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次设计,使我进一步加深了对单片机以及控制技术课程的掌握和领会,让我对它有了增加了不少兴趣。整个过程最让我受益的还是硬件设计这方面,它虽然难,但是很能激发我的兴趣,通过查资料等途径,最后还是设计出属于自己的设计电路,当设计成功后,心里特别的开心。至于软件设计方面还好,根据硬件的设计成功后,很快有了设计思想,编写出主要的实现程序,但也有不少遗忘的细节内容知识,通过翻阅以前的书籍和资料,也能一一解决。只是个人觉得这个程序实现写的不够精辟,存在不少冗余或不够活用的地方,以及调试过程中出现不少小错误,调试编译程序也是一个困难的过程,历时挺长时间的。今后将再加强自己这方面的努力,争取编写更高水平的程序。总体来说,这次设计的步进电机控制体统算是成功的,使自己内心也有一点成就感,同时也感受到老师平时对我们的教诲,硬件方面也是可以追逐的,只要自己肯往这方面努力,据平时老师的讲述,硬件这方面在社会还是很需要人才的,因此这里还得要感谢老师平时的教诲和指导,现在总算是觉得平时所学的知识有了实用的价值,也懂得了老师话语的含义。在剩余的大学学生时间里,要努力锻炼了自己的能力,使自己在踏入社会之前,多掌握更多的知识,为自己的就业前景努力。附录 (程序) ;步进电机控制系统程序D8255A EQU 8000H ;8255A口 D8255B EQU 8001H ;8255B口D8255C EQU 8002H ;8255C口D8255D EQU 8003H ;8255控制口 K0 BIT p1.1 ;单三拍K1 BIT P1.2 ;双三拍K2 BIT P1.3 ;三相六拍K3 BIT P1.0 ;启动停止键K4 BIT p1.4 ;方向控制键 ORG 0000H AJMP STARTSTART:MOV SP,#60H ;定义栈区 MOV A,#90H ;8255A初始化,A口输入,B口输出,PC.0-PC.3输出 MOV DPTR,#D8255D MOVX DPTR,A MAIN:ORL P2,#0FFH JNB K3,LOP ;判断启停 SETB P1.5 ;停止绿灯亮 CPL P1.6 CPL P1.7 LCALL DIY AJMP MAINLOP: LCALL DIY MOV DPTR,#D8255A ;读取A口数字量, MOVX A,DPTR ;作为步数送到R1中 MOV R1,ALOP1:JNB K0,MOS1 ;选择电机通电方式 JNB K1,MOS2 JNB K2,MOS3 AMJP LOP1 ;三种都没选,继续返回查看LOP2:MOV R7,#00H JB K4,LOP4 ;判断正反转LOP3: SETB P1.7 CPL P1.5 ;正转红灯亮 CPL P1.6 MOV A, R7 ;正转开始 ACALL LOP5 JB K3,MAIN ;判断是否停止 JB K4,LOP4 ;判断是否方向改变 LCALL DIY INC R7 DEC R1 LCALL BCD ;显示剩余步数 MOV R1,A JNZ LOP3 ;判断步数是否走完 LJMP DONELOP4:SETB P1.6 ;反转红灯亮 CPL P1.5 CPL P1.7 MOV A,R7 ;反转开始 JNB K2,LOP6 ADD A,#04H ;双三拍反转模型 AJMP LOP7LOP6:ADD A,#07H ;三相六拍反转模型LOP7:MOV R7,A MOV A,R7 ACALL LOP5 JB K3,MAIN ;判断是否停止 JNB K4,LOP3 ;判断是否方向改变 LCALL DIY INC R7 DEC R1 LCALL BCD ;显示剩余步数 MOV R1,A JNZ LOP4 ;判断步数是否走完 LJMP DONELOP5:MOVC A,A+DPTR ;查表找电机模型 JZ LOP2 MOV P2,A ;输出模型 AJMP DONE MOS1:MOV DPTR,#TAB ;控制模型位置,单三拍 LJMP LOP2MOS2:MOV DPTR,#CAB ;双三拍 LJMP LOP2 MOS3:MOV DPTR,#SAB ;三相六拍 LJMP LOP2DONE:RET DIY:MOV R5,#50 ;步进延时子程序(20ms)DIY1:MOV R6,#100 DJNZ R6,$ DJNZ R5,DIY1 RET BCD:MOV A,R1 ;16进制转化为BCD码 MOV B,#100 DIV AB MOV 32H,A ;将带显示的数存于30H-32H MOV A,B MOV B,#10 DIV AB MOV 31H,A MOV A

温馨提示

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

评论

0/150

提交评论