基于Proteus的步进电机控制系统仿真设计-精品

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机控制技术课程设计报告《基于Proteus的步进电机控制系统仿真设计》
专业及班级______ 09自动化(1)班_________ 姓名_____ 吴红田坤王林
指导老师_______ 丁健______________
完成时间_______ _ 2012-6-17__________________
基于protues的步进电机控制系统设计
摘要:步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。

控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。

为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。

人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。

此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。

步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。

一、步进电机原理、控制技术及其特点
由于步进电机是一种将电脉冲信号转换成直线或角位移的执行元件,它不能直接接到交直流电源上,而必须使用专业设备….步进电机控制驱动器,典型步进电机控制系统的控制器可以发出脉冲频率从几赫兹到几千赫兹可以连续变化的脉冲信号,它为环形分配器提供脉冲序列,环形分配器的主要功能是把来自控制环节的脉冲序列按一定的规律分配后,经过功率放大器的放大加到步进电机驱动电源的各项输入端,以驱动步进电机的转动,环形分配器主要有两大类:一类是用计算机软件设计的方法实现环形分配器要求的功能,通常称软环形分配器。

另一类是用硬件构成的环形分配器,通常称硬环形分配器。

功率放大器主要对环形分配器的较小输出信号进行放大,以达到驱动步进电机的目的,步进电机的基本控制包括转向控制和速度控制两个方面。

从结构上看,步进电机分为三相单三拍、三相双三拍和三相六拍3种,其基本原理如下:
(1)换相顺序的控制
通电换相这一过程称为脉冲分配。

例如,三相步进电机在单三拍的工作方式下,其各相通电顺序为 A→B→C→A,通电控制脉冲必须严格按照这一顺序分别控制 A、B、C 相的通断。

三相双三拍的通电顺序为 AB→BC→CA→AB,三相六拍的通电顺序为A→AB→B→BC→C→CA→A。

(2)步进电机的换向控制
如果给定工作方式正序换相通电,步进电机正转。

若步进电机的励磁方式为三相六拍,即 A→AB→B→BC→C→CA→A。

如果按反序通电换相,A→AC→C→CB →B→BA→A,则电机就反转。

其他方式情况类似。

(3)步进电机的速度控制
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。

两个脉冲的间隔越短,步进电机就转得越快。

调整送给步进电机的脉冲频率,就可以对步进电机进行调试。

(4)步进电机的起停控制
步进电机由于其电气特性,运转时会有步进感。

为了使电机转动平滑,减小振动,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波,可以减小步进电机的步进角,跳过电机运行的平稳性。

在步进电机停转时,为了防止因惯性
而使电机轴产生顺滑,则需采用合适的锁定波形,产生锁定磁力矩,锁定步进电机的转轴,使步进电机转轴不能自由转动。

(5)步进电机的加减速控制
在步进电机的控制系统中,通过实验发现,如果信号变化太快,步进电机由于惯性跟不上电信号的变化,这时就会产生堵转和失步现象。

所有步进电机在启动时,必须有加速过程,在停止时波形有减速过程。

理想的加速曲线一般为指数曲线,步进电机整个降速过程频率变化规律是整个加速过程频率变化规律的逆过程。

选定的曲线比较符合步进电机升降过程的运行规律,能充分利用步进电机的有效转矩,快速响应性好,缩短了升降速的时间,并可防止失步和过冲现象。

在一个实际的控制系统中,要根据负载的情况来选择步进电机。

步进电机能响应而不失步的最高步进频率称为“启动频率”,于此类似“停止频率”是指系统控制信号突然关断,步进电机不冲过目标位置的最高步进频率。

电机的启动频率、停止频率和输出转矩都要和负载的转动惯量相适应,有了这些数据,才能有效地对电机进行加减速控制。

加速过程有突然施加的脉冲启动频率f0。

步进电机的最高启动频率(突跳频率)一般为0.1KHz 到 3~4KHz,而最高运行频率则可以达到N*102KHz,以超过最高启动频率的频率直接启动,会产生堵转和失步的现象。

(6)步进电机的换向控制
步进电机换向时,一定要在电机降速停止或降到突跳频率范围之内在换向,以免产生较大的冲击而损坏电机。

换向信号一定要在前一个方向的最后一个脉冲结束后以及下一个方向的第一个脉冲前发出。

对于脉冲的设计主要要求其有一定的脉冲宽度、脉冲序列的均匀度及高低电平方式。

在某一高速下的正、反向切换实质包含了降速→换向→加速3个过程。

步进电机有如下特点:
①步进电机的角位移与输入脉冲数严格成正比,因此当它转一转后,没有累计误差,具有良好的跟随性。

②由步进电机与驱动电路组成的开环数控系统,既非常方便、廉价,也非常可靠。

同时,它也可以有角度反馈环节组成高性能的闭环数控系统。

③步进电机的动态响应快,易于启停、正反转及变速。

④速度可在相当宽的范围内平滑调节,低速下仍能保证获得很大的转矩,因此一般可以不用减速器而直接驱动负载。

⑤步进电机只能通过脉冲电源供电才能运行,它不能直接用交流电源或直流电源。

⑥步进电机自身的噪声和振动比较大,带惯性负载的能力强。

二、元器件介绍
(1)步进电机
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。

步进电机区别于其他控制电机的最大特点是:它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),步进电机又称为脉冲电机,是工业过程控制和仪表中一种能够快速启动,反转和制动的执行元件。

其功用是将电脉冲转换为相应的角位移或直线位移,由于开环下就能实现精确定位的特点,使其在工业控制领域获得了广泛应用。

步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机就转动一个角度(不距角)或前进、倒退一步。

步进电机旋转的角度由输入的电脉冲数确定,所以,也有人称步进电机为数字/角度转换器。

①四相步进电机的工作原理
该设计采用了 20BY-0 型步进电机,该电机为四相步进电机,采用单极性直流电源供电。

只要对步进电机的各相绕组按合适的时序通电,就能使步进电机转动。

当某一相绕组通电时,对应的磁极产生磁场,并与转子形成磁路,这时,如果定子和转子的小齿没有对齐,在磁场的作用下,由于磁通具有力图走磁阻最小路径的特点,则转子将转动一定的角度,使转子与定子的齿相互对齐,由此可见,错齿是促使电机旋转的原因。

②步进电机的静态指标及术语
相数:产生不同队N、S磁场的激磁线圈对数,常用 m表示。

拍数:完成一个磁场周期性变化所需脉冲用n表示,或指电机转过一个齿距角所需脉冲数,以
四相电机为例,有四相四拍运行方式即AB→BC→CD→DA→AB, 四相八拍运行方式即A→AB→B→BC→C→CD→D→DA→A。

步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。

50 齿角电机为例,四相运行时步距角为:
θ =360 度 /( 50*4 )=1.8 度;
八拍运行时步距角为:
θ=360 度/(50*8)=0.9 度。

定位转矩:电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)。

静转矩:电机在额定静态作业下,电机不做旋转运动时,电机转轴的锁定力矩。

此力矩是衡量电机体积的标准,与驱动电压及驱动电源等无关。

虽然静态转矩与电磁激磁匝数成正比,与定子和转子间的气隙有关。

但过分采用减小气隙,增加励磁匝数来提高静转矩是不可取的,这样会造成电机的发热及机械噪音。

③四相步进电机的脉冲分配规律
目前,对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。

本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。

四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。

各种工作方式在电源通电时的时序与波形分别如图1 a、b、c 所示。

本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。

(2)89C51单片机
Atmel公司生产的89C51单片机是一种低功耗/低电压‘高性能的8位单片机,它采用 CMOS 和高密度非易失性存储技术,而且其输出引脚和指令系统都与 MCS-51 兼容;片内的Flash ROM 允许在系统内改编程序或用常规的非易失性编程器来编程,内部除 CPU 外,还包括 256 字节 RAM,4 个 8 位并行 I/O 口,
5 个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。

(3)L297介绍
L297是意大利SGS半导体公司生产的步进电机专用控制器,它能产生4相控制信号,可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。

芯片内的PWM斩波器电路可开关模式下调节步进电机绕组中的电机绕组中的电流。

该集成电路采用了SGS公司的模拟/数字兼容的I2L技术,使用5V的电源电压,全部信号的连接都与TFL/CMOS或集电极开路的晶体管兼容。

L297的芯片引脚特别紧凑,采用双列直插20脚塑封封装,其引脚见图1,内部方框见图2。

图1 L297芯片引脚图
L297各引脚功能说明
1脚(SYNG)——斩波器输出端。

如多个297同步控制,所有的SYNC端都要连在一起,共用一套振荡元件。

如果使用外部时钟源,则时钟信号接到此引脚上。

2脚(GND)——接地端。

3脚(HOME)——集电极开路输出端。

当L297在初始状态(ABCD=0101)时,此端有指示。

当此引脚有效时,晶体管开路。

4脚(A)——A相驱动信号。

5脚(INH1)——控制A相和B相的驱动极。

当此引脚为低电平时,A相、B相驱动控制被禁止;当线圈级断电时,双极性桥用这个信号使负载电源快速衰减。


CONTROL端输入是低电平时,用斩波器调节负载电流。

6脚(B)——B相驱动信号。

7脚(C)——C相驱动信号。

8脚(INH2)——控制C相和D相的驱动级。

作用同INH1相同。

9脚(D)——D相驱动信号。

10脚(ENABLE)——L297的使能输入端。

当它为低电平时,INH1,INH2,A,B,C,D都为低电平。

当系统被复位时用来阻止电机驱动。

11脚(CONTROL)——斩波器功能控制端。

低电平时使INH1和INH2起作用,高电平时使A,B,C,D起作用。

12脚(Vcc)——+5V电源输入端。

13脚(SENS2)——C相、D相绕组电流检测电压反馈输入端。

14脚(SENS1)——A相、B相绕组电流检测电压反馈输入端。

15脚(Vref )——斩波器基准电压输入端。

加到此引脚的电压决定绕组电流的峰值。

16脚(OSC)——斩波器频率输入端。

一个RC网络接至此引角以决定斩波器频率,在多个L297同步工作时其中一个接到RC网络,其余的此引角接地,各个器件的脚 I (SYNC)应连接到一起这样可杂波的引入问题如图5所示。

17脚(CW/CCW)—方向控制端。

步进电机实际旋转方向由绕组的连接方法决定。

当改变此引脚的电平状态时,步进电机反向旋转。

18脚(CLOCK)——步进时钟输入端。

该引脚输入负脉冲时步进电机向前步进一个增量,该步进是在信号的上升沿产生。

19脚(HALF/FULL)——半步、全步方式选择端。

此引脚输入高电平时为半步方式(四相八拍),低电平时为全步方式。

如选择全步方式时变换器在奇数状态,会得到单相工作方式(单四拍)。

20脚(RESET)——复位输入端。

此引脚输入负脉冲时,变换器恢复初始状态(ABCD=0101)。

图2 L297内部方框电路图
图3 L297变换器换出的八步雷格码(顺时针旋转)图4 斩波器线路在图2所示的L297的内部方框图中。

变换器是一个重要组成部分。

变换器由一个三倍计算器加某些组合逻辑电路组成,产生一个基本的八格雷码(顺序如图3所示)。

由变换器产生4个输出信号送给后面的输出逻辑部分,输出逻辑提供禁止和斩波器功能所需的相序。

为了获得电动机良好的速度和转矩特性,相序信号是通过2个PWM斩波器控制电动波器包含有一个比较器、一个触发器和一个外部检测电阻,如图4所示,晶片内部的通用振荡器提供斩波频率脉冲。

每个斩波器的触发器由振荡器的脉冲调节,当负载电流提高时检测电阻上的电压相对提高,当电压达到Uref时(Uref是根据峰值负载电流而定的),将触发器重置,切断输出,直至第二个振荡脉冲到来、此线路的输出(即触发器Q输出)是一恒定速率的PWM信号,L297的CONTROL端的输入决定斩波器对相位线A,B,C,D或抑制线INH1和INH2起作用。

CONTROL为高电平时,对A,B,C,D有抑制作用;为低电平时,则对抑制线INH1和INH2有抑制作用,从而可对电动机和转矩进行控制
L297驱动相序的产生
L297能产生单四拍、双四拍和四相八拍工作所需的适当相序。

3种方式的驱动相序都可以很容易地根据变换器输出的格雷码的顺序产生,格雷码的顺序直接与四八拍(半步方式)相符合,只要在脚19输入一高电平即可得到。

其波形图如图5所示。

图5 四相八拍模式波形图
通过交替跳过在八步顺序中的状态就可以得到全步工作方式,此时需在脚19接一低电平,前已述及根据变换器的状态可得到四拍或双四拍2种工作模式,如图6,7所示
图6 单四拍模式波形图
图7 双四拍模式波形图
(4)L298简介
L298N 为SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片( Dual Full-Bridge Driver ) ,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge 的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号,但在本驱动电路中用L297 来提供时序信号,节省了单片机IO 端口的使用。

L298N 之接脚如图8 所示,Pin1 和Pin15 可与电流侦测用电阻连接来控制负载的电路; OUTl、OUT2 和OUT3、OUT4 之间分别接2 个步进电机;input1~input4 输入控制电位来控制电机的正反转;Enable 则控制电机停。

图8 L298引脚图
三、方案论证
从该系统的设计要求可知,该系统的输入量为速度和方向,速度应该有增减变化,通常用加减按钮控制速度,这样只要2根口线,再加上一根方向线盒,一根启动信号线共需要4根输入线。

系统的输出线与步进电机的绕组数有关。

这里选四相步进电机。

该电机共有四相绕组,工作电压为+5V,可以与单片机共用一个电源。

步进电机的四相绕组控制过程如下:P0.0口控制L297的方向控制端(CW/CCW),P0.1控制步进时钟输入端。

使L297输出四相八拍工作所需的适当相序(A,B,C,D四相)。

L297的四相输出接L298的IN0---IN4使其OUT0---OUT4输出放大后的四相驱动信号,驱动步进电机运行。

用P1口的P1.0~P1.7 控制LM016L显示步进电机的转速和转动方向。

四、硬件设计
本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。

最小系统只要是为了使单片机正常工作。

控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。

显示电路主要是为了显示电机的工作状态和转速。

驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。

(1)控制电路
图1控制电路原理图
根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是K1、K2、S2、S3,控制电路如图1所示。

通过 K1、K2 状
态变化来实现电机的启动和换向功能。

当 K1、K2 的状态变化时,内部程序检测P3.4 和 P3.5的状态来调用换向程序进行电机的正反转控制。

根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。

对于单片机而言,主要的方法有软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过S2、S3 的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。

图2步进电机驱动电路
通过L297和L298构成驱动电路,电路图如图 2 所示。

P0.0口控制L297的方向控制端(CW/CCW),P0.1控制步进时钟输入端。

使L297输出四相八拍工作所需的适当相序(A,B,C,D四相)。

L297的四相输出接L298的IN0---IN4使其OUT0---OUT4输出放大后的四相驱动信号,驱动步进电机运行。

图3显示模块
通过P1口的P1.0~P1.7 控制LM016L显示步进电机的转速和转动方向。

图4总体电路图(包括显示电路图)
(4)总体电路图
把各个部分的电路图组合成总电路图,如图4所示。

五、软件设计
通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成 4 个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断 0 和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。

下面分析主程序与定时器中断程序及外部中断程序。

(1)主程序设计
主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。

其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对 P1 口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。

若初始化 P1=11H、速度和方向初始值均设为 0,就意味着步进电机按四相单八拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显
示“0”,速度值显示“0”,主程序流程图如图4所示。

(2)定时中断设计
步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。

在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。

(3)外部中断设计
外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。

速度增加按钮 S2 为 INT0 中断,其程序流程为原数据,当值等于 7时,不改变原数值返回,小于 7 时,数据加 1 后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。

图10主程序流程
源程序代码
#include "AT89X51.h"
int delay();
void inti_lcd();
void show_lcd(int);
void cmd_wr();
void ShowState();
void clock(unsigned int Delay) ;
void DoSpeed(); //计算速度
//正转值
#define RIGHT_RUN 1
//反转值
#define LEFT_RUN 0
sbit RS=0xA0;
sbit RW=0xA1;
sbit E=0xA2;
char SpeedChar[]="SPEED(n/min):";
char StateChar[]="RUN STA TE:";
char STATE_CW[]="CW";
char STATE_CCW[]="CCW";
char SPEED[3]="050";
unsigned int RunSpeed=50; //速度
unsigned char RunState=RIGHT_RUN; //运行状态
main()
{
/*定时器设置*/
TMOD=0x66; //定时器0,1都为计数方式;方式2;
EA=1; //开中断
TH0=0xff; //定时器0初值FFH;
TL0=0xff;
ET0=1;
TR0=1;
TH1=0xff; //定时器1初值FFH;
TL1=0xff;
ET1=1;
TR1=1;
IT0=1; //脉冲方式
EX0=1; //开外部中断0:加速
IT1=1; //脉冲方式
EX1=1; //开外部中断1:减速
inti_lcd();
DoSpeed();
ShowState();
while(1)
{
clock(RunSpeed);
P0_1=P0_1^0x01;
}
}
//定时器0中断程序:正转
void t_0(void) interrupt 1
{
RunState=RIGHT_RUN;
P0_0=1;
P1=0x01;
cmd_wr();
ShowState();
}
//定时器1中断:反转
void t_1(void) interrupt 3
{
RunState=LEFT_RUN;
P0_0=0;
P1=0x01;
cmd_wr();
ShowState();
}
//中断0:加速程序
void SpeedUp() interrupt 0
{
if(RunSpeed>=12)
RunSpeed=RunSpeed-2;
DoSpeed();
P1=0x01;
cmd_wr();
ShowState();
}
//中断1:减速程序
void SpeedDowm() interrupt 2
{
if(RunSpeed<=100)
RunSpeed=RunSpeed+2;
DoSpeed();
P1=0x01;
cmd_wr();
ShowState();
}
int delay() //判断LCD是否忙{
int a;
start:
RS=0;
RW=1;
E=0;
for(a=0;a<2;a++);
E=1;
P1=0xff;
if(P1_7==0)
return 0;
else
goto start;
}
void inti_lcd() //设置LCD方式
{
P1=0x38;//设置16x2显示
cmd_wr();
delay();
P1=0x01; //清除
cmd_wr();
delay();
P1=0x0f;
cmd_wr();
delay();
P1=0x06;//光标移动设置
cmd_wr();
delay();
P1=0x0c;//显示开及光标设置
cmd_wr();
delay();
}
void cmd_wr() //写控制字
{
RS=0;
RW=0;
E=0;
E=1;
}
void show_lcd(int i) //LCD显示子程序
{
P1=i;
RS=1;
RW=0;
E=0;
E=1;
}
void ShowState() //显示状态与速度
{
int i=0;
while(SpeedChar[i]!='\0')//////char SpeedChar[]="SPEED(n/min):";
{
delay();
show_lcd(SpeedChar[i]);
i++;
}
delay();
P1=0x80 | 0x0d;///数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H) cmd_wr();
i=0;
while(SPEED[i]!='\0')
{
delay();
show_lcd(SPEED[i]);///SPEED[3]="050";
i++;
}
delay();
P1=0xC0;
cmd_wr();
i=0;
while(StateChar[i]!='\0')
{
delay();
show_lcd(StateChar[i]);//char StateChar[]="RUN STATE:";
i++;
}
delay();
P1=0xC0 | 0x0A;/////0x0c显示开及光标设置
cmd_wr();
i=0;
if(RunState==RIGHT_RUN)
while(STATE_CW[i]!='\0')
{
delay();
show_lcd(STA TE_CW[i]);///char STATE_CW[]="CW";
i++;
}
else
while(STATE_CCW[i]!='\0')
{
delay();
show_lcd(STA TE_CCW[i]);///char STA TE_CCW[]="CCW";
i++;
}
}
void clock(unsigned int Delay) //1ms延时程序
{ unsigned int i;
for(;Delay>0;Delay--)
for(i=0;i<124;i++);
}
void DoSpeed()
{
SPEED[0]=(1000*6/RunSpeed/100)+48;
SPEED[1]=1000*6/RunSpeed%100/10+48;
SPEED[2]=1000*6/RunSpeed%10+48;
}
六、总结
我们深知自己做的工作还很不够,由于软件和硬件的各方面原因,系统的应用讨论不够,精度还有待于进一步提高。

由于时间的原因,设备的原因,实验做的不好不够,相关验证性的数据、信息不够丰富。

可以肯定,随着技术的不断发展,步进电机的控制应用前景将越来越宽阔,而其控制系统也将向着智能化和网络化的方向发展。

本论文的研究和探讨还远远不够,我们要在现在的基础上,不断吸取新的技术和方法,并将它们应用于本课题的研究上来,进一步深化我们的研究深度,争取有更多的收获。

相关文档
最新文档