单片机步进电机控制.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流单片机步进电机控制.精品文档.单片机系统设计题目: 单片机步进电机控制系统姓名: 谢永胜 学号: 3080444907 学院: 机械与控制工程学院 班级: 机械08-3 指导老师: 蒋存波 单片机步进电机控制系统设计班级:机械08-3班 姓名:谢永胜 学号:3080444907 指导老师:蒋存波摘要:步进电机是将电脉冲信号转变为角位移或线位移的控制元件。正常工作情况下,电机的转速、停止的位置取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。对于控制步进电机正反转以及工作模式只要改变程序中的控制字即可。因为步进电机每次接受一个脉冲就转动一个固定的角度,所以可以通过调节两个脉冲之间的时间间隔来调整脉冲发送的频率,从而达到调节步进电机转速的目的。如此,一个具备基本控制功能的单片机步进电机控制系统便完成了。关键词:单片机、步进电机、方向控制。一、设计要求:MCS-51单片机的步进电机控制系统设计。要求步进电机为三相反应式步进电机,能够正反转。二、 步进电机控制系统的发展状况及现状步进电机是数字控制系统中的一种执行元件,其功能是将脉冲电信号转变为相应的角位移或直线位移。由于它独特的工作原理以及有利于设备向小型化和低成本方向发展,故被广泛地应用于众多领域并得以高速发展。作为一种执行元件,一般的数字电路信号能量远远不足以驱动步进电机运转。多年来,随着电子技术的不断发展,步进电机控制系统的驱动电路也得到了大力发展。最初使用在驱动电路中的功放元件是可控硅。作为一种脉冲触发的开关器件,它突出的特点是输入功率小而输出功率大、耐压高以及成本低。因此,以可控硅作为功率器件的驱动器曾一度占领主流市场。但是,可控硅驱动器触发关断困难、线路比较复杂,容易引起误触发,导致其可靠性差,另外也不便于维护和调试。随着大功率晶体管的迅猛发展,可控硅驱动器逐渐退出了历史舞台。晶体管驱动器具有调试容易、控制方便、元件损耗小以及开关速度快等优点,由于晶体管驱动器采用先进的设计理念,其开关特性和耐压能力以及过流能力有了很大的改进,因而在近年成为大部分驱动器的末级功放元件。步进电机驱动软件的发展状况:在微型计算机出现以前,步进电机的控制完全由硬件实现。如环形分配器。环形分配器由多个标准数字集成电路按逻辑真值表组合而成,不同类型的电机、不同的工作方式就需要不同的环形分配器,在设备更新以及调整中具有非常大的局限性。而随着单片机尤其是以MCS-51系列单片机的迅速普及,基于以软件为核心的通用环形分配器得以广泛的运用。这种环形分配器只需通过更换软件即可适应不同的电机,从而大大的节省了成本,更给设备的更新改进提供了很大的方便。随着自动控制技术、计算机通信技术以及微型计算机技术的高速发展,步进电机控制系统也将迈入数字化、自动化、智能化的控制的方向。三、 硬件设计1、 步进电机控制系统原理单片机步进电机控制系统主要由单片机系统、功率放大器以及步进电机组成。单片机系统代替传统的步进电机控制器把并行的二进制码转换成串行脉冲序列,并实现方向控制;功率放大器是把单片机系统输出的脉冲序列放大以驱动步进电机转动;常用的步进电机有三相、四相、五相、六相四种,下面以三相步进电机为例介绍其工作原理。 三相步进电机定子上有6个磁极,每两个相对磁极上绕有一相绕组,定子的三相绕组即为控制绕组,以A、B、C表示,定子两个磁极之间的夹角为60°。转子上没有绕组,它上面有40个矩形小齿均匀分布在圆周上,相邻两个齿之间的夹角为9°。当某相绕组通电时,相应的两个磁极就分别形成N-S极,产生磁场,并与转子形成磁路。如果这时定子的小齿与转子的小齿没有对齐,则在磁场的作用下,转子将转动一定的角度,使转子齿与定子齿对齐,从而使步进电机向前走一步。三相步进电机有3种工作方式:单三拍双三拍三相六拍如果按上述3种通电方式和通电顺序进行通电,则步进电机正向转动,如果通电顺序与上述顺序相反则反向转动。步进电机的方向控制方法是:用单片机输出接口的每一位控制一相绕组。如用AT89C51单片机控制步进电机时,可用P0.0、P0.1、P0.2分别接至步进电机A、B、C三相绕组。根据所选定的步进电机及控制方式,写出相应控制方式的数学模型。在上述三种通电方式中本人采用第三种(三相六拍)通电方式,其控制方式的数学模型如下:2、 步进电机控制系统硬件设计。通过对步进电机工作原理进行分析,当用单片机控制步进电机时,可以方便的控制步进电机按任何一种可行的通电方式进行控制。典型的控制系统原理框图如下图所示:其硬件图如下所示:由上图可知,由于被控制的步进电机要求的电压以及电流较大,而单片机P口的驱动能力非常有限,故需在单片机P0口加一个74LS04驱动器方能将单片机发出的脉冲序列放大,以使电机绕组的驱动电流达到电机的工作电流。四、 主要硬件选择a) 单片机的选择: 选用AT89C51单片机(1个) 其特性如下: 面向控制的8位CPU;一个片内振荡器和时钟产生电路,振荡频率为024MHz;片内4 KB Flash ROM程序存储器128 B的片内数据存储器;可寻址64 KB 的片外程序存储器和片外数据存储器控制电路;2个16位定时/计数器;4个并行I/O口,共32条可单独编程的I/O线;5个中断源,2个中断优先级;一个全双工的异步串行口;21个特殊功能寄存器;具有节电工作方式,即休闲方式和掉电保护方式。b) 驱动器:74LS04 (1个)c) 复位芯片:TLC7705(1个)五、 步进电机控制系统软件设计完成了系统硬件的设计,要使步进电机正常工作还需要软件的支持。硬件系统只有运行程序才能产生电脉冲驱动电机运转。1、 根据步进电机的工作原理,编写出步进电机控制系统的程序流程图如下图所示:主程序流程图:主程序ORG 000HLJMP MAINORG 000BHJLMP T0-KINORG 0050HMAIN: MOV P0.0,#00H ;系统初始化 MOV P0.1,#0FFH MOV 40H,#0 MOV 41H,#0 MOV P3,#10000000B ;停止指示灯亮 MOV TMOD,#01H ;设置定时器T0;工作模式为1 MOV IE,#82H ;T0开中断 MOV TL0, ;T0装初值 MOV TL1 SETB TR0 ;启动T0LOOP: LCALL KS_SUB ;调用键盘扫描子程序LCALL DISP_SUB ;调用显示子程序LJMP LOOP键盘扫描子程序流程图:键盘扫描子程序:KS_SUB:MOV P1,#0FFHMOV A,P1CJNE A,#0FFH,KNEXT1 ;若(A)0FFH,则有;按键按下,转KNEXT1,否则LJMP KNEXT ;转子程序返回KNEXT1: LCALL DLE_SUB ;调用延时20ms子程序去抖动 CJNE A,P1,KNEXT2 ;若(A)(P1),则没;有按键按下转KNEXT2 LJMP KNEXT ;否则,转子程序返回KNEXT2: CJNE A,#11111110B,KNEXT3 ;若(A)=11111110B,;停止键按下 MOV 40H,#0 ;设置电机控制标志为停止 LJMP KNEXTKNEXT3: CJNE A,#11111101B,KNEXT4 ;若(A)=11111101B,则;正转键按下 MOV 40H,#1 ;设置电机控制标志为正转 LJMP KNEXTKNEXT4: CJNE A,#11111011B,KNEXT ;若(A)=11111011B;则反转键按下 MOV 40H,#2 ;设置电机控制标志为反转 LJMP KNEXTKNEXT: RET显示子程序流程图:显示子程序:DISP_SUB: MOV P2,#00H ;初始化 MOV A,40H ;去点击控制标志 CJNE A,#0,DNEXT1 ;若(A)=0电机停止 MOV P2,#80H ;停止灯亮 LJMP DNEXTDNEXT1: CJNE A,#1,DNEXT2 MOV P2,#40H ;正转灯亮 LJMP DNEXTDNEXT2: MOV P2,#20H ;反转灯亮DNEXT: RET中断控制电机子程序流程图: KZ_SUB: MOV TL0,0C7H MOV TH0,OFEH MOV A,#41H MOV A,#5,ZNEXT1 MOV A,#0 LJMP ZNEXT2ZNEXT1: INC AZNEXT2: MOV 41H,A PUSH ACC MOV A,40H CJNE A,#1,ZNEXT3 MOV DPTR,#ZRUN_TAB LJMP ZNEXT4ZNEXT3: CJNE A,#2,ZNEXT MOV DPTR,#FRUN_TABZNEXT4:POP ACC MOVC A,A+DPTR MOV P0,AZRUN_TAB: DB 01H,03H,02H,06H,04H,05HZRUN_TAB: DB 05H,04H,06H,02H,03H,01H六、 设计总结与心得当今信息科学技术日新月异,以通信技术为代表的电子信息类专业知识更新尤为迅猛。而在众多电子信息技术中,单片机的出现绝对是计算机发展史上的一个重要里程碑,开辟了嵌入式计算机领域。目前单片机已经成为了工控领域、军事领域及日常生活中应用最广泛的计算机。懂得了单片机技术如此重要,在做本次单片机步进电机控制系统的设计时我也尽自己最大的努力尽量将设计任务做得较好。但由于本人弱电基础薄弱,在设计过程中遇到了非常多的困难,好在可以请教同学、从图书馆参考相关书籍以及从网上查找相关资料,最后终于完成了一个能实现最基本控制功能的单片机控制系统。虽然与其他优秀的同学做的设计相比,我的设计显得相对简陋。但是从一步一步的设计中走过来,还是学到了很多的知识。对于前面学过的单片机知识又重新温习了一遍,也弄懂了很多原来没有弄懂的问题。更重要的是,通过这次设计,我第一次进行了比较全面的单片机系统设计。从硬件设计到电子元器件的选择到软件的设计,将本学期学过的单片机知识连贯性、系统性运用到实际案例中。对平时所学的理论知识有了更进一步的理解,也提高了对理论知识的实际运用能力。另外,通过本次设计,我对国内外单片机的现状与发展状况有了一定的了解。总之,这次的单片机步进电机设计让我对单片机知识有了比较系统的理解,也算是掌握了一门技能吧,为将来从事相关工作打下了基础。让我受益匪浅。参考文献1 、耿长清.单片机应用技术.北京:化学工业出版社.2002. 82、潘新民,王燕芳.微型计算机控制技术.北京:电子工业出版社.2006.13、梅丽凤,王艳秋.单片机原理及借口技术.北京:清华大学出版社.2009.24、李叶紫,王喜斌.MCS-51单片机应用教程.北京:清华大学出版社2004.3