限位开关链接AT89C51单片机,限位开关控制步进电机限位开关行程两个端点,行程到了开/关。电路图,

《基于AT89C51单片机的步进电机控制》 www.wenku1.com
基于AT89C51单片机的步进电机控制日期:
基于AT89C51单片机的步进电机控制摘要:随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。 步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。本设计是采用AT89C51单片机对步进电机的控制,通过I/O口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。实践证明,基于单片机控制的步进电机比传统的步进控制器具有更好的性能,更加简单、方便、可靠。本设计的主要研究对象就是开环伺服系统中最常用的执行器件——步进电机。 关键词:步进电机,单片机,正反转控制,键盘控制,LCD液晶显示目录摘要 ............................................................................................................................................ 1第一章 绪论 ............................................................................................................................ 31.1 步进电机及其发展 ................................................................................................... 31.2 步进电机在我国的发展应用及前景 ....................................................................... 31.3 设计研究内容 ........................................................................................................... 4第二章 控制系统硬件分析与设计 ........................................................................................ 52.1 步进电机 ................................................................................................................... 52.2 单片机的选择 ........................................................................................................... 72.3 步进电机控制系统的组成 ....................................................................................... 8第三章 控制系统软件分析与设计 ...................................................................................... 133.1 程序流程图 ............................................................................................................. 133.2 读键盘子程序流程图 ............................................................................................. 143.3 键盘处理子程序流程图 ......................................................................................... 143.4 电机控制中断程序流程图 ..................................................................................... 15第四章 调试与改进 .............................................................................................................. 174.1 调试与改进 ............................................................................................................. 174.2 运行结果 ................................................................................................................. 17第五章 总 结 ........................................................................................................................ 18致 谢 ...................................................................................................................................... 19参考文献 .................................................................................................................................. 20附录 .......................................................................................................................................... 21附录一源程序清单 ........................................................................................................... 21附录二控制原理图 ........................................................................................................... 26第一章 绪论1.1 步进电机及其发展步进电机又称为脉冲电动机或阶跃电动机,它是基于最基本的电磁感应作用,将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,大型望远镜,卫星天线定位系统等等。随着经济的发展,技术的进步和电子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。步进电机的原始模型起源于1830年至1860年,1870年前后开始以控制为目的的尝试,应用于氩弧灯的电极输送机构中,这被认为最早的步进电机。1950年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。到20世纪60年代后期,在步进电机本体方面随着永磁材料的发展,各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。1.2 步进电机在我国的发展应用及前景 我国步进电机的研究及制造起始于本世界50年代后期,从50年代后期到60年代后期,主要是高等院校和科研机构为研究一些装置而使用或开发少量产品。我国在文化大革命中开始大量生产和应用步进电机,例如江苏、浙江、北京、南京、四川等各地都有投入生产,而且都在各行业使用,其中的驱动电路所有半导体器件都是完全国产化的,当时是全分立元器件构成的逻辑运算电路,还有电容耦合输入的计数器,触发器,环形分配器。中等耐压的大功率半导体器件也完全国产化。70年代初期,步进电机的生产和研究都有所突破,除反映在驱动器设计方面的长足进步以外,对反应式步进电机本体的设计研究发展到一个较高的水平。70年代中期至80年代中期为成品发展阶段,新品种高性能电动机不断被开发。至80年代中期以来,由于步进电机精确模型做了大量研究工作,各种混合式步进电机及驱动器作为产品广泛利用。国外在大功率的工业设备驱动上,目前基本不使用大扭矩步进电动机,因为从驱动电路的成本,效率,噪音,加速度,绝对速度,系统惯量与最大扭矩比来比较,比较不划算,还是用直流电动机,加电动机编码器整体技术和经济指标高。一些少数高级的应用,就用空心转杯电机,交流电机。国外在小功率的场合,还使用步进电机,例如一些工业器材,工业生产装备,打印机,复印件,速印机,银行自动柜员机。国内过去是用大力矩步进电动机实现机床数控,有实力的公司现在也采用交流电动机驱动数控机床,在驱动设备的主要差距,是国外对交流电动机的控制理论与工程分析和应用能力强,先进的控制理论作为软件,写在控制器内部。目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,大部分的厂家只一、二十人,连最基本的设备都没有。仅仅处于一种盲目的仿制阶段。这就给户在产品选型、使用中造成许多麻烦。虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。1.3 设计研究内容本设计的目的是以单片机为核心设计出一个单片机控制步进电机的控制系统。本系统采用AT89C51作为控制单元,通过键盘实现对步进电机转动方向及转动速度的控制,并且将步进电机的转动速度动态显示在LCD液晶显示器上。总体设计框图如图1.1所示: 图1.1 总体设计框图第二章 控制系统硬件分析与设计2.1 步进电机步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。多相步进电动机有多相方波脉冲驱动,用途很广。使用多相步进电动机,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各相绕组。每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。2.1.1 步进电机的原理步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:1.控制换相顺序通电换相这一过程称为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为A—B—C—D,通电控制脉冲必须严格按照这一顺序分别控制A、B、C、D相的通断。2.控制步进电机的转向如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。3.控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。2.1.2 步进电机的特点1. 一般步进电机的精度为步进角的3-5%,角位移与输入脉冲数严格成正比,没有累计误差,具有良好的跟随性。2. 步进电机外表不允许较高的温度。步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。3. 步进电机的力矩会随转速的升高而下降。当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。4. 步进电机自身的噪声和振动较大,带惯性负载的能力较差。5. 由步进电机与驱动电路组成的开环数控系统,既非常简单、廉价,又非常的可靠。同时,它也可以与角度反馈环节组成高性能的闭环数控系统。6. 步进电机的动态响应快,易于启停,正反转及变速。7. 速度可在相当宽的范围内平滑调节,低速下仍能保证获得大转矩,因此,一般可以不用减速器而直接驱动负载。8. 步进电机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和直流电源。9. 步进电机存在振荡和失步现象,必须对控制系统和机械负载采取相应的措施。10. 步进电机低速时可以正常运转,但若高于一定速度就无法启动,并伴有啸叫声。 步进电动机以其显著的特点,在数字化制造时代发挥着重大的用途。伴随着不同的数字化技术的发展以及步进电机本身技术的提高,步进电机将会在更多的领域得到应用。2.1.3 步进电机的分类现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。1. 反应式步进电机:一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。2. 永磁式步进电机:一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;3. 混合式步进电机:是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛,性能最好。2.1.4 永磁步进电机的控制原理在本设计以常用的永磁式步进电机为例,用单片机控制步进电机。其接线图如图2.1所示: 图2.1 CZ-2801型永磁步进电机接线图从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有 5根引出线。要使用步进电机转动,只要轮流给各引出端通电即可。将 COM 端标识为C,只要 AC、BC或/AC、/BC,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将 COM 端接正电源,那么只要用开关元件(如三极管) ,将 A、B或/A、/B轮流接地。不难设计出控制电路,因其工作电压为 12V,因此用一块开路输出达林顿驱动器(这里用ULN2003,关于ULN2003将在后面介绍)作为驱动,通过 P1.0、 P1.3来控制各线圈的接通与切断。开机时,P1.0、 P1.3均为高电平,依次将 P1.0、 P1.2 (或P1.1、 P1.3反向)切换为低电平即可驱动步进电机运行。如果要改变电机的转动速度只要改变两次接通之间的时间。改变转速,只要改变 P1.0、 P1.2 (或P1.1、 P1.3反向)轮流变低电平的时间即可达到要求,因为不会影响到其他功能的实现,这个时间可以用延时来实现,。这里以定时的方式来实现。下面首先计算一下定时时间。 按要求,最低转速为 20 转/分,而上述步进电机的步距角为 7.5,即每 48 个脉冲为 1 周,即在最低转速时,要求为960脉冲/分,相当于 62.5ms/脉冲。而在最高转速时,要求为 100转/分,即 48000 脉冲/分,相当于 12.5ms/脉冲。2.2 单片机的选择 本次设计选用AT89C5l作为步进电机的控制芯片.AT89C51的结构简单并可以在编程器上实现闪烁式的电擦写达几万次以上.使用方便等优点,而且完全兼容MCS5l系列单片机的所有功能。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FAlsh ProgrAmmABle And ErAsABle ReAd Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案2.2.1 单片机的引脚功能 (1)VCC(40):电源+5V。(2)VSS(20):接地,也就是GND。(3)XTL1(19)和XTL2(18):振荡电路。单片机是一种时序电路,必须有脉冲信号才能工作,在它的内部有一个时钟产生电路,有两种振荡方式,一种是内部振荡方式,只要接上两个电容和一个晶振即可;另一种是外部振荡方式,采用外部振荡方式时,需在XTL2上加外部时钟信号。(4)PSEN(29):片外ROM选通信号,低电平有效。(5)ALE/PROG(30):地址锁存信号输出端/EPROM编程脉冲输入端。(6)RST/VPD(9):复位信号输入端/备用电源输入端。(7)EA/VPP(31):内/外部ROM选择端。(8)P0口(39-32):双向I/O口。(9)P1口(1-8):准双向通用I/0口。(10)P2口(21-28):准双向I/0口。2.2.2 主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:全静态工作:0Hz-24Hz三级程序存储器锁定、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路(1)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(2)芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.3 步进电机控制系统的组成步进电机控制系统共分为六个模块:单片机最小系统模块、键盘控制模块、数码显示模块、测速模块、步进电机驱动模块和电源模块。1.单片机最小系统主要由复位电路和时钟电路组成。复位电路为单片机系统提供可靠复位,使单片机能正常启动。时钟电路采用外部时钟方式,保证单片机个功能部件都是以时钟频率为基准,有条不紊地一拍一拍地工作。2.键盘控制模块包括方向控制键、加速键和减速键、启停键,分别与单片机的P2.0、P2.1、P2.2和P2.3相连。实现对步进电机的控制。并且键盘上连接有发光二极管,以指示键盘状态。3.数码显示模块采用共阴极数码管来动态显示步进电机的实际转动速度。利用I/O口为数码管的com端提供低电平。二号单片机的P1口提供数码管的段选信号,P2.6和P2.7控制数码管的位选信号。4.测速模块采用开关霍尔片对安放在步进电机转盘上的小磁片的磁信号进行检测,步进电机转盘每次带动小磁片经过霍尔片时,其都将有脉冲信号从霍尔片输出。单片机外部中断口对信号进行采集。5.步进电机驱动模块选用七个NPN达林顿连接晶体管ULN2003为步进电机提供脉冲信号,驱动步进电机转动。该模块与单片机的P1.0—P1.3相连。6.电源模块是通过将市电220V转变为直流12V和直流5V分别供给驱动模块和单片机模块。2.3.1 键盘控制电路键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。键盘实质是一组按键开关的集合。键盘所用开关为机械弹性开关,利用了机械触点的合、断作用。一个电压信号在机械触点的断开、闭合过程中,都会产生抖动,一般为5—10ms;两次抖动之间为稳定的闭合状态,时间由按键动作所决定;第一次抖动前和第二次抖动后为断开状态。按键的闭合与否,反映在输出电压上就是呈现出高电平或低电平。通过对输出电平的高低状态的检测,便可确认按键按下与否。在本设计中,高电平表示按键断开,低电平表示按键闭合状体。并且,为了能直观形象的表示按键闭合与否,还为每个按键相应增加了发光二极管,按键断开时,发光二极管灭,当有键闭合时,相应的发光二极管变亮。为了确保单片机对一次按键动作只确认一次按键,必须消除抖动的影响。消除按键抖动通常采用硬件、软件两种方法。由于硬件消抖电路设计复杂,本设计中没有采用,在此不再详细叙述;软件消抖适合按键较多的情况,方便简单。其原理是在第一次检测到有键按下时,执行一段延时10ms的子程序后在确认该键电平是否仍保持闭合状态电平,如果保持闭合状态电平则确认为真正有键按下,从而消除了抖动的影响。其原理图如图2.2所示:图2.2键盘控制模块原理图2.3.2 LCD液晶显示电路LCD1602简介液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,因此,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了。这里向大家介绍一款LCD1602液晶显示模块,它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格1602B外观如图2.3所示: 图2.3 LCD1602芯片管脚 接口引脚功能表如表2.1所示:表2.1 接口引脚功能表V0:液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS:寄存器选择,高电平时选择数据寄存器;低电平时选择指令寄存器。R/W:读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS为高电平R/W为低电平时可以写入数据。E:使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。在本设计中所采用的是共阴极LCD液晶显示器,这里用四位一体数码管SM420361K: 型号:SMP类别:4位一体共阴规格:长×宽×高-30.1×14.1×7.3mm管脚标号:12-9-8-6公共脚、A-11、B-7、C-4 D-2、E-1、F-10、G-5、DP-3 在本设计中采用数码管动态显示转速,数码显示电路通过交替向P2.6和P2.7输出低电平,使得与这两个端口连接的数码管公共端交替为低电平,从而为数码管提供导通回路,通过对交替时间的控制实现数码管在视觉上的不间断显示。通过P1口输出段选信号,控制了数码管显示的内容。如图2.4所示:图2.4数码管显示电路2.3.3 步进电机驱动电路本系统的设计目的为了高效控制步进电机的转动,因此需要将单片机发出的脉冲转化为步进角度,才能控制步进电机转动,我们在这里采用ULN2003为步进电机提供脉冲信号。ULN2003七NPN达林顿连接晶体管是低逻辑电平数字电路(如TTL,CMOS或PMOS/NMOS)和大电流高电压要求的灯、继电器、打印机锤和其他类似负载间的接口的理想器件。广泛用于计算机,工业和消费类产品中。所有器件有集电极开路输出和用于瞬变抑制的续流箝位二极管。ULN2003的设计与标准TTL系列兼容。它的管脚连接图如图2.5所示: 图2.5 ULN2003管脚连接图其主要特性为: 表2.2 ULN2003主要特性表极限值(若无其他规定,Tamb=25℃)ULN2003芯片是高耐压、大电流达林顿阵列,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。ULN2003芯片高压大电流达林顿晶体管阵列产品属于可控大功率器件。步进电机驱动电路的工作过程是:首先从P1口输出B,由于单片机与ULN2003连接只用到了P1.0—P1.3,所以ULN2003与单片机连接的四个管脚中每时刻只有一个管脚处于导通状态(采用单拍方式对步进电机控制),其他管脚处于断开状态。这样就使得与ULN2003连接的步进电机只有一个引出端导通。该系统驱动原理图如图2.6所示:图2.6步进电机驱动原理图第三章 控制系统软件分析与设计步进电机控制系统的软件需要同时完成读取键盘、处理键盘、控制步进电机转动、控制数码管动态显示等任务,这就必须通过中断技术来实现。在本设计中,主程序采用查询方式扫描键盘端口,检测按键动作是否发生,若有按键动作则处理键盘,根据按键值修改相应参数值,实现键盘的实时处理功能。定时器0中断服务程序控制步进电机的转动:根据当前显示的速度进行键盘手动改变T0定时时间常数,设置TH0和TL0的值,达到对转速精确控制的目的;根据转动方向控制位的值,控制脉冲信号循环移动的方向,达到对转动方向控制的目的。3.1 程序流程图步进电机控制系统的主程序在对整个系统初始化后主要完成读键盘和处理键盘的功能,如图3.1所示: 图3.1 步进电机控制系统主程序流程图系统上电复位后,先调用初始化子程序,对步进电机各端口,相关参数进行初始化,设置T0工作方式控制时间常数。初始化完成后,步进电机处于停止状态,T0定时器处于关闭状态。然后循环调用读键盘子程序和键盘处理子程序,等待中断,以便实现步进电机转动控制。3.2 读键盘子程序流程图首先初始化实际键值参数为0FH,然后扫描P2口,与初始值比较,相等则说明没有键按下,不相等则软件消抖,以便确认是否真的有键按下。延时10ms后再次扫描P2口,第二次与初始值比较,若相等则表明前一次比较不相等是由抖动产生;如果相等则表明确实有键按下。执行键盘之程序里的指令,将相应的变量值改变,为键盘处理子程序做准备。如图3.2所示:否 图3.2 扫描键盘字程序流程图 3.3 键盘处理子程序流程图按键处理子程序流程图如图3.3所示:步进电机的启停控制通过启停定时器T0来实现,因为定时器T0控制着脉冲信号的输出,关闭定时器T0也就阻止了脉冲信号的输出。 图3.3键盘处理子程序流程图3.4 电机控制中断程序流程图定时器中断0服务程序流程图如图3.4所示:定时器中断0服务程序的中断时间由当前的转速决定。进入中断程序后,首先要保护现场,再根据当前值设置TH0和TL0的值。然后判断转动方向控制位的值,如果是0则控制脉冲信号P1.0、P1.2输出,如果是1则控制脉冲信号P1.1、P1.3输出。最后恢复现场,返回,等待下次中断。通过用当前转速控制中断时间,控制了脉冲的输出频率,也就到达了控制步进电机转动速度的目的;通过检测方向控制位的电平,选择脉冲信号P1.0、P1.2与P1.1、P1.3间的切换,控制了步进电机各引出端的接通顺序,也就到实现了步进电机转动方向的控制。各模块控制的详细程序附于最后。图3.4 定时器中断0服务程序流程图 第四章 调试与改进4.1 调试与改进在系统完成后测试系统,检查硬件和软件是否能够协调运行,并对系统出现的情况进行分析,看是否能够达到系统创作之初所设想的效果,如达不到则重新修改系统的硬件结构或者修改软件的程序部分,直到达到设计需要为止。本系统的设计思路为:首先从整体上划分出各功能模块,然后硬件和软件同时进行依次完成各个功能模块,最后将各个模块联系起来完成整个系统。在硬件调试的过程中,遇到了很多问题。主要有:1. 确定步进电机的使用方法,和控制模式。此处尤为重要,这是整个系统的基础,也是确定软件是否能控制步进电机思路的开端。2.键盘设计完成后,在多次运行过程中发现按键是否按下难以直观准确判断,在此处进行改进设计,为每一个按键接上一个发光二极管,当有键按下时,相对应的发光二极管变亮,使得按键动作形象直观。并以此方法测试步进电机控制程序。3.向电源插座送入12V直流电源,测量LM7805输出脚对地电压,是否为5V左右,这个电压的测量可以直接在L7805的OUT脚和GND之间完成。4. 单片机应用(电源)注意事项:在电源两端应该加一个47uF以上的电解电容和一个0.1uF的小电容,进行电源去藕滤波。5.可供霍尔片检测到的信号注意是S磁极。 软件测试的时候也有些问题,主要有: 1.软件去抖方式,和时间的控制。2.控制步进电机转动的程序段完成后,调试发现对步进电机速度的控制范围过小,查阅资料后发现设计思路不太合理,原先的设计思路是用主程序控制步进电机转动,采用延时方式控制步进电机速度,由定时器处理键盘;改进程序,主程序用来处理键盘,由定时器控制步进电机转动,步进电机转动速度由定时器定时时间决定。问题得到解决,不仅扩大了步进电机速度的控制范围,也使得单片机对步进电机速度的控制更加精确。4.2 运行结果连接好硬件电路,上电复位,程序开始运行。1.运行后会生成一个文件,插入到AT89C51芯片里;按下开始键,步进电机开始转动,LCD液晶显示器显示数值当前数值;2.此时每按下加速键一次,LCD液晶显示器显示数值加1,步进电机转动速度相应增加;此时每按下减速键一次,LCD液晶显示器显示数值减1,步进电机转动速度相应减少;此时若按下方向控制键,步进电机立即向相反方向转动,转动速度保持不变;此时若按下启停键,步进电机停止转动,LCD液晶显示器停止显示为0,符合设计要求。第五章 总 结经过周老师耐心细致的指导,经过近两个月的努力,本次毕业设计课题步进电机控制系统告一段落。步进电机控制系统主要分为硬件设计和软件设计两个部分:硬件设计主要是把单片机最小系统、键盘控制模块、步进电机驱动模块、数码显示模块、测速模块各个硬件功能模块及其它元件合理搭配并连接起来使其能够为软件运行提供一个硬件平台。软件设计主要是通过编写程序代码,实现对整个系统的控制。在系统上电复位后程序自动运行,通过接受外部的键盘操作修改系统参数值,控制步进电机的启停,以及转速的增减和转动方向的改变;定时器T0根据系统参数控制步进电机的转动;实现步进电机转动速度的动态显示。本系统具有相当的实用功能,两片单片机分别实现步进电机控制和测速,能基本符合实际应用需求,本次设计由于设计时间较短,个人能力以及精力等因素的限制,加之设计经验的不足,该系统还有许多不尽如人意的地方。该系统未能完全的实现设计的所有功能。如:利用键盘输入转速值实现转速的控制,动态设置最低转速和最高转速等。在把理论设计转换成实物的整个过程,如:电路设计、分析计算、画电路图、焊接电路、检查调试、软件流程控制设计分析、编写调试软件、烧写软件到整个软硬件系统的调试,最后直到系统完成。其中整个系统的前期准备是首先必须做到位的,如控制什么、用什么控制、得到什么结果,进而对各部分应选择具体的芯片作进一步的考虑,以使系统得到最优的表现。通过本课题,一方面我在查阅资料的基础上,了解AT89C51单片机控制的一些基本技术,掌握其控制系统的分析方法与实现方法,能对单片机外围电路设计进行系统学习与掌握;另一方面,在设计步进电机控制系统的硬件电路,控制程序和相应的电路图时,应充分运用说学知识,善于思考,琢磨,分析。致 谢本论文是在周老师的精心指导下完成的。在做毕业设计的整个过程中,得到了周老师的耐心指导,特别是在设计的初始阶段,周老师在需求分析方面给了我很大的帮助,在老师帮助和指导下,使我能很快地就确定了系统的目的和开发方案,在后来的确定步进电机结构和性能方面周老师给了很大的帮助,使后来的程序实现方面使我少走了很多弯路,并提高了我的效率。这对于我以后的工作和学习都有很大的帮助,在此衷心感谢老师的耐心辅导。同时感谢那些在设计中给予帮助的同学,因为有充分的、默契的合作才有更顺利的结果。参考文献[1] 李庆亮. C语言程序设计实用教程. 北京:机械工业出版社,2006 [2] 王新颖. 单片机原理及应用设计. 北京:北京大学出版社,2008[3] 张亚华. 电子电路计算机辅助分析与辅助设计. 北京 航空工业出版社,2004 [4] 莫正康. 电力电子应用技术. 北京:机械工业出版社,2009 [5] 曾晓宏. 数字电子技术. 北京:机械工业出版社,2008[6] 江晓安. 模拟电子技术. 陕西:西安电子科技大学出版社,2007[7]蒋辉平 周国雄. 基于Proteus的单片机系统设计与仿真实例 北京:机械工业出版社,2009[8]王宗培.步进电动机及其控制系统[M].哈尔滨:哈尔滨工业大学出版社,2009 [9]余永权.单片机应用系统的功率接口技术[M].北京:北京航空航天大学出版社,2006[10]陈理壁.步进电机及其应用[M].上海:上海科学技术出版社,2009[11] 王晓明、 胡晓柏,电动机的单片机控制[M].北京航空航天大学出版社,2002年5月第1版:181-208[12] 刘宝延、 程树康,步进电动机及其驱动控制系统 [M] .1997年11月第一版:134-167[13] 史敬灼, 步进电动机伺服控制技术[M] .2007年3月第2版:23-35[14]刘国永, 陈杰平. 单片机控制步进电机系统设计. 安徽: 安徽技术师范学院学报, ) : 61-63.[15]孙笑辉,韩曾晋. 减少感应电动机直接转矩控制系统转矩脉动的方法[J]. 电气传动, 2001 (1) : 8-11. 附录附录一源程序清单汇编语言源程序KEY1 BIT P2.0 KEY2 BIT P2.1 KEY3 BIT P2.2 RS BIT P2.3 RW BIT P2.4;运行开关 ;正/反转开关 ;调整开关;LCD1602寄存器选择输入端 ;LCD1602读写信号线输入端 E BIT FLAG BIT 00H SPD EQU 30H DELAY_V EQU ORG LJMP ORG MAIN: MOV CALL MOV 显示)CALL MOV CALL MOV 1)CALL MOV CALL MOV CALL MOV CALL MOV CALL MOV CALL START: MOV MOV MOV CLR MOV CALLP2.5 ;LCD1602 ; ; 31H; 0000H MAIN 0030HP0,#01H ; ENABLE P0,#38H ;LCD ENABLE P0,#0FH ; ENABLE P0,#06H ;LCD ENABLE P0,#0CH ; ENABLE P0,#80H ;LCD1602 ENABLE DPTR,#TABLE1 ; WRITE1 P0,#0C0H ENABLE DPTR,#TABLE2 ; WRITE1DPTR,#TAB R4,#0 P1,#03H FLAGP0,#8DH ; ENABLE命令使能端 首次正反转标志 速度寄存 延时寄存清除LCD的屏幕 功能设定,DL=1(8位),N=1(2行显示屏幕 模式设定,I/D=1(计数地址加清除光标 第1行首地址 显示基本字符 显示基本字符 地址 第1行第13位
CALL MOV MOVWRITE2SPD,#00H ;速度 SPD DELAY_V,#04H ;延时时间LOOP: JNB KEY2,FANMOV P0,#85H ;地址 第1行第5位 CALL ENABLEMOV A,#5AH ;'Z' 正 ACALL AJMP SPEEDFAN: MOV CALL ENABLEMOV ACALL SPEED: SETB JB JNB INC MOV CJNE A,#3,CASE MOV CASE: MOV CJNE A,#0,CASE1 MOV CALL ENABLEMOV ACALL MOV AJMP A1 CASE1: MOV CJNE A,#1,CASE2MOV CALL ENABLEMOV ACALL MOV AJMP A1 CASE2: MOV CJNE A,#2,A1MOV P0,#8DH CALL MOV A,#33H WRITE2 ;'F' WRITE2;; ; ; ; WRITE2;4 ; ; WRITE2;3 ; ENABLE;地址 第1行第5位 反 是否调速 速度加1 判断速度等级第1行第5位地址 显示'1' 倍延时 第1行第13位地址 显示'2' 倍延时 第1行第13位地址 显示'3'P0,#85H ; A,#46H KEY3KEY3,A1 KEY3,$ SPD A,SPDSPD,#00H A,SPDP0,#8DH A,#31H DELAY_V,#4 A,SPDP0,#8DH A,#32H DELAY_V,#3 A,SPD MOV DELAY_V,#2 ;2倍延时A1: SETB KEY1JB KEY1,TOFF ;判断是否运行 ACALL CHECKMOV P0,#0C0H ;输入第2行首地址 CALL ENABLEMOV DPTR,#TABLE3 CALL WRITE1JB JNB POS: MOV MOV MOVC A,@A+DPTR MOV SETB FLAG ACALL DELAY2 AJMP LOOPNEG: MOV MOV MOV MOVC A,@A+DPTR MOV SETB FLAG ACALL AJMP LOOPKEY: MOV JNB CJNE R4,#08,LOOPZ MOV LOOPZ: INC MOV MOV MOVC A,@A+DPTR MOV ACALL AJMP LOOPFZ: CJNE R4,#0FFH,LOOPF ; MOV LOOPF: DEC MOV MOV MOVC A,@A+DPTR; ; ; ; DELAY2 ; ; ; DELAY2 判断是否为首次运行 判断正反转 首次运行正转9度标志位置位 首次运行反转9度标志位置位 读键盘情况 判断正反转是否为结束标志 正转 是否为结束标志 FLAG,KEY KEY2,NEG DPTR,#TAB A,R4 P1,A R4,#6 A,R4DPTR,#TAB P1,AP2,#03H KEY2,FZ R4,#0FFH R4 ; A,R4DPTR,#TAB P1,AR4,#8 R4 A,R4DPTR,#TABMOV P1,A ACALL DELAY2 AJMP LOOP TOFF: ACALL CHECKMOV P0,#0C0H ;输入第2行首地址 CALL ENABLEMOV DPTR,#TABLE2 CALL WRITE1 AJMP LOOP DELAY: MOV DJNZ RETDELAY1: DD4: MOV DJNZ DJNZ RETDELAY2: A3: ACALL DJNZ RETCHECK: MOV CLR SETB CLR NOP SETB JB P0.7,CHECK RET ENABLE: CLR CLR CALL SETB RETWRITE1: A2: MOV MOVC R6,#60 R6,$ R6,#0FFH R6,$ R7,DD4 R3,DELAY_V DELAY R3,A3 P0,#0FFH ;LCD1602 RS RW EERS RW EDELAY1 ER1,#00H ;LCD1602 A,R1A,@A+DPTR ;LCD1602测忙 使能输入 字符串写入 MOV R7,#5H MOV CLR MOV CALL WRITE2 INC R1CJNE A,#0FEH,A2 RETP0,A RS RW E WRITE2: MOV SETB CLR CLR ;LCD1602字符写入CALL SETB RETTAB: DB DB 08H,09H,01H,03HTABLE1: DB STA: SPD ,0FEH TABLE2: DB RUN: OFF ,0FEH TABLE3: DB RUN: ON ,0FEH ENDDELAY1 E02H,06H,04H,0CH 步进电机运行控制代码;附录二控制原理图无锡职业技术学院 毕业设计说明书(论文)本文由(www.wenku1.com)首发,转载请保留网址和出处!
免费下载文档:

我要回帖

更多关于 单片机步进电机编程 的文章

 

随机推荐