毕业设计基于PIC单片机的步进电机控制系统设计_第1页
毕业设计基于PIC单片机的步进电机控制系统设计_第2页
毕业设计基于PIC单片机的步进电机控制系统设计_第3页
毕业设计基于PIC单片机的步进电机控制系统设计_第4页
毕业设计基于PIC单片机的步进电机控制系统设计_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、山东科技大学泰山科技学院毕业论文论文题目: 基于pic单片机的步进电机控制系统设计年 级: 2009 专 业: 机电一体化 姓 名: 宋启明 学 号: 0942120120 指导教师: 荆刚 2012年 5 月 20日ii 摘 要步进电机是一种将数字信号直接转换成角位移或线位移的控制驱动元件,具有快速启动和停止的特点。其驱动速度和指令脉冲能严格同步,能实现正反转和平滑速度调节,因而被广泛应用于数模转换,速度控制和位置控制系统。但是步进电机的驱动信号往往还是由专门的模拟芯片控制器或者信号发生器产生,缺乏灵活性和可靠性。尤其在一些智能化要求较高的场合,用模拟芯片及信号发生器来控制步进电机有一定的局

2、限。而利用单片机进行脉冲控制,控制精度高,外围电路也比较简单,因此在工业应用场合,基于单片机的步进电机控制器应用广泛。本设计采用pic系列单片机作为步进电机控制系统的核心,实现了软件与硬件相结合的控制方法。用软件代替脉冲分配器,达到了对步进电机的最佳控制。采用单极性驱动电路对小功率步进电机进行驱动,电路简单,实用性好。用lcd显示屏对步进电机的预设工作状态进行动态显示,直观、明了。关键词:步进电机;pic单片机;lcdabstractstepper motor is a control-driven component which directly convert digital signal

3、 to angular displacement or linear displacement, with a rapid start and stop characteristics the driving velocity of the stepper motor are strictly synchronous with instructions pulse, and can achieve positive and negative rotation and smooth speed adjustment, so it is widely used in digital-to-anal

4、og converter, speed control and position control system however, the driving signals of stepper motor are often generated by a special controller of analog chip or signal generator, it is lack of flexibility and reliability especially in some occasions of higher intelligence, using analog chips and

5、signal generator to control the stepper motor has some limitations because of its single-chip high-precision pulse and relatively simple peripheral circuits, so stepper motor controllers based on single-chip are widely used in industrial applications the design uses a pic mcu as the core of stepper

6、motor control system, and a control method of combination of software and hardware is realized we choose software instead of the pulse distributor to achieve the best control of the stepper motor unipolar drive circuit is used for driving low-power stepper motor, which is simple and really functiona

7、l lcd is used for dynamic displaying intuitively and clearly the state of the stepper motorkeywords:stepper motor;pic microcontroller;lcdii目 录摘要iabstractii绪论1第一章 控制系统实现原理2一、步进电机的分类和主要性能指标2(一)步进电机的分类2(二)步进电机的主要性能指标2二、步进电动机的结构及工作原理3(一)反应式步进电动机的结构及工作原理3(二)混合式步进电动机的结构及工作原理4(三)kp39m2-025型混合式步进电动机的工作方式5(四

8、)步进电动机的加减速6三、液晶显示模块ocmj48c7(一)带有中文字库图形点阵液晶显示模块的应用7(二)ocmj48c液晶显示模块的功能8四、pic单片机8(一)pic系列单片机的特点8(二)pic16f877单片机的结构9第二章 控制系统硬件设计12一、控制系统总体概述12二、控制系统的硬件电路12(一)控制系统总体电路12(二)单片机与步进电机接口驱动电路14(三)单片机与lcd显示屏接口电路(8位并行模式)14(四)单片机与键盘接口电路15三、步进电动机的选型16四、开发平台mplab icd简介16第三章 控制系统软件设计18一、控制系统总流程图18二、系统监控模块19(一)系统监控

9、模块流程图19(二)步进电机转向设置子程序范例20(三)步进电机转速设置21三、键盘识别处理模块21四、lcd显示模块22五、控制信号产生模块23(一)步进脉冲产生模块23(二)系统中断模块24(三)步进电机加减速模块25结论29参考文献30致谢31基于pic单片机的步进电机控制系统设计绪 论步进电机是机电控制中一种常用的执行机构。它将电脉冲信号转变成角位移,即给一个脉冲信号,步进电动机就转动一个角度,具有快速启动和停止的特点。其驱动速度和指令脉冲严格同步,具有较高的重复定位精度,并能实现正反转和平滑速度调节。它的运行速度和步距不受电源电压波动和负载的影响,而且由于步进电动机组成的控制系统结构

10、简单,价格低廉,性能上能满足工业控制的基本要求,在简易数控机床,数字绘图仪,点阵打印机,家用电器等大量角度、速度、位移控制系统中,得到了极其广泛的应用1。但是步进电机的驱动信号往往还是有专门的模拟芯片控制器或者信号发生器产生,缺乏灵活性和可靠性。尤其在一些智能化要求较高的场合,用模拟芯片及信号发生器来控制步进电机有一定的局限2。而利用单片机进行脉冲控制,控制精度高,外围电路相对也比较简单,因此在工业应用场合,基于单片机的步进电机控制器应用广泛。pic系列8位单片机是美国microchip technology公司推出的精简指令集计算机(risc)结构的嵌入式控制器,其硬件系统设计简洁,指令系统

11、设计简练。pic系列单片机具有体积小,功能强,功耗低、设计开发灵活方便和价格低廉等特点,可以应用在数字化仪器仪表,自动测试和控制,智能化家用电器等领域3。基于pic单片机的上述特点,本设计采用pic16f877单片机作为控制系统核心,具体介绍了一个步进电机运动控制系统的结构组成,既包括硬件设计,也有具体的软件实现。该控制系统可实现如下功能:1通过键盘可以设定步进电机的转速及转数(以整转为单位),2通过键盘可以设定步进电机转向,3键盘所设置的参数可以通过lcd进行实时显示。33第一章 控制系统实现原理一、步进电机的分类和主要性能指标(一)步进电机的分类步进电机可分为3大类1反应式步进电动机反应式

12、步进电动机的转子是有软磁材料制成的,转子中没有绕组,定子上有多相励磁绕组。它的结构简单,成本低,步距角可以做的很小,一般为1.5度,但噪声和振动都很大4。2永磁式步进电动机永磁式步进电动机的转子是用永磁材料制成的,转子本身就是一个磁源。它的输出转矩大,动态性能好。转子的级数与定子的级数相同,所以步距角较大,一般为7.5度或15度。需供给正负脉冲信号4。3混合式步进电动机混合式步进电动机综合了反应式和永磁式两者的优点,它的输出转矩大,动态性能好。它又分为两相、三相和五相:两相步距角一般为1.8度而五相步距角一般为0.72度。这种步进电机应用最为广泛,也是本控制系统所选用的步进电动机4。(二)步进

13、电机的主要性能指标1电机固有步距角它表示控制系统每发出一个步进脉冲信号,电机所转动的角度。电机出厂时给出了一个步距角的值,如本设计所选用的kp39hm2-025型电机给出的值为0.9°/1.8°(表示半步工作时为0.9°,整步工作时为1.8°),即电机固有步距角。它不一定是电机实际工作时的真正步距角,真正步距角和驱动器有关5。2步进电机的相数步进电机的相数是指电机内部的线圈组数,目前常用的有二相,三相,四相,五相步进电机。电机的相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5&#

14、176;、五相的为0.36°/0.72°5。3电机的保持转矩保持转矩指电机各相绕组通额定电流,且处于静态锁定状态时,电机所能输出的最大转矩。通常电动机在低速时的力矩接近保持转矩。由于步进电机的输出力矩随速度的增大而不断衰减,输出功率也随速度的变化而变化5。4启动频率启动频率又称突跳频率,是指步进电机能够不失步启动的最高频率,是步进电动机的一项重要指标。负载启动频率与负载转矩即惯量的大小有关。负载量一定,负载转矩增加,或负载转矩一定,负载惯量增加,都会使启动频率下降5。5运行频率步进电机启动后,控制脉冲频率连续上升而维持不失步的最高频率,称为运行频率。通常给出的也是空载情况下

15、的运行频率5。二、步进电动机的结构及工作原理(一)反应式步进电动机的结构及工作原理1反应式步进电动机的结构图1-1是一个三相反应式步进电机结构图。从图中可以看出,它分为转子和定子两部分。定子由硅钢片叠成。定子上有6个磁极,每两个相对的磁极组成一对,共有三对。每对磁极都缠有同一绕组,也即形成一相。每个磁极内表面都分布着许多小齿,它们大小相同,间距相同。反应式步进电动机运动的动力来自于电磁力,在电磁力的作用下,转子被强行推动到最大磁导率的位置即对齿的位置,并处于平衡状态。当某一相的磁极处于最大磁导位置时,另外两相必须处于非最大磁导位置,即错齿位置6。1-定子 2-转子 3-定子绕组图1-1 三相反

16、应式步进电动机结构62反应式步进电动机的工作原理如果给处于错齿状态的相通电,则转子在电磁力的作用下,将向磁导率最大的位置转动,即向趋于对齿的状态转动。步进电动机就是基于这一原理转动的。下面以三相反应式步进电机为例,起典型结构如图1-2所示。当a相控制绕组接通脉冲电流时,在电磁力作用下使a相的定、转子对齐,相邻的b相和c相小齿错开。若换成b相通电,则电磁力使b相定、转子小齿转过,而与b相相邻的c相和a相的定、转子小齿又错开,即步进电机转过一个步距角。图1-2 三相反应式步进电机工作原理1若按abca循环顺序通电,则步进电机按一定方向转动。若改变通电顺序为acba,则电动机反向转动,这种控制方式成

17、为三相单三拍。按abbccaab或aabbbcccaa顺序通电则称为三相双三拍或三相单、双六拍。无论采用何种控制方式,在一个通电循环内步进单机转角恒为一步距角,可以通过改变步进电机通电循环次序来改变转动方向,通过改变通电频率来改变其角频率1。(二)混合式步进电动机的结构及工作原理由于本设计是选用kp39hm2-025型混合式步进电动机作为控制对象,下面主要介绍混合式步进电机的结构和工作原理。混合式步进电动机又称为感应子式步进电动机,它的定子铁心与反应式步进电动机相同,即分为若干大极,每个大极上有小齿及控制绕组;定子控制绕组与永磁式步进电动机相同,也是两相集中绕组,每相绕组有两对极,按ab(-a

18、)(-b)a的顺序轮流通以正负脉冲;转子中间为环形轴向磁化的永磁体,磁体两端各套有一段开有齿槽的铁心,两段齿心错开半个齿距,且转子齿距与定子小齿的齿距相等。由于定子同一个极的两端极性相同,转子两端极性相反,且错开半个齿距,所以当转子偏离平衡位置时,两端作用转矩的方向是一致的。当定子各相绕组按顺序通以直流脉冲时,转子每次将转过一个步距角。这种电机可以像反应式步进电动机那样做成小步距角,并有较高的启动频率,同时它具有控制功率小的优点。当然,由于采用永磁体,转子铁心需分成两段,结构和工艺都比反应式要复杂一些6。(三)kp39m2-025型混合式步进电动机的工作方式经实验测定,该类型混合式步进电动机以

19、两相双四拍工作方式进行工作。该步进电动机的正转通电顺序为aba(-b)(-a)(-b) (-a)bab;反转通电顺序为ab(-a)b(-a)( -b)a(-b)ab。双四拍工作时各相通电的电压和电流波形如图1-3,图1-4所示。双四拍方式还有一个优点就是不易产生失步。这是因为当两相通电后,两相绕组中的电流幅值不同,产生电磁力的作用方向也不同,所以,其中一相产生的电磁力起到阻尼作用。绕组中的电流越大,阻尼作用就越大,这有利于步进电机在低频区工作4。图1-3 正向旋转、双四拍工作方式时的相电压,电流波形图1-4 反向旋转,双四拍工作方式时的相电压,电流波形(四)步进电动机的加减速步进电机有一个空载

20、启动频率fa,即步进电机在空载情况下能正常启动的脉冲频率。若脉冲频率高于该值,电机不能正常启动,会发生失步或堵转现象。而在有负载的情况下,正常启动频率应该更低。在停止时也应该有一个减速过程,而不能突然停止,否则会出现超程现象,因此步进电机需要加速启动和减速停止7。升降速有两种方法:直线升降法,指数曲线升降法。匀加减速控制是指加速度保持不变,速度以线性规律上升或下降,如图1-5所示。这种控制方法软件实现比较简单,适用速度变化较大的快速定位,但是该方法不完全符合步进电机的速度变化规律,效果不是很理想。图1-5 匀加减速控制7指数曲线控制是指在加速或减速时步进电机的速度呈指数曲线变化。指数曲线如图1

21、-6所示,在开始时加速度最大,随着时间的推移,加速度逐渐减小,在理想情况下应该减小为零,这种方法符合步进电机的矩频特性,快速响应特性好,升降时间短。因此采用指数曲线控制法是最好的选择7。如果采用指数曲线升降法,要用离散法将加减速曲线离散化。将离散所得的转速序列所对应的定时常数序列,做成表格储存在程序控制器中。在程序运行中,使用查表的方式重装定时常数,这样做比用计算法节省时间,提高系统的响应速度7。图1-6指数曲线控制7由于本次设计选用的步进电机为混合是步进电动机,且输出功率较小,多用于对控制精度要求相对不高的场合,因此采用匀加减速控制方法来实现控制系统运行过程中的加减速。三、液晶显示模块ocm

22、j48c(一)带有中文字库图形点阵液晶显示模块的应用随着仪表的智能化以及人们对显示信息和操作界面要求的不断提高,液晶显示器件得到了广泛的应用。自上个世纪七十年代初,液晶开始作为一种显示媒体使用以来,液晶显示器件lcd以其具有体积小,重量轻,超薄型,工作电压低,功耗低,显示信息量大,寿命长,不产生电磁辐射污染,可以显示复杂的文字,图形,表格及曲线等优点,在仪表设备中作为显示终端和人机接口,而被广泛在各种仪器仪表,电子设备,移动通讯及家用电器中8。液晶显示模块是将液晶显示器件,连接件,驱动控制器,pcb线路板,背光源,结构件等装配在一起的组件,简称lcm。根据液晶显示器件结构的不同,液晶显示模块可

23、以分为段式和点阵式两种。在单片机应用系统中,段式led显示应用比较广泛,但由于电极引出线数量少,一般只能用于显示数字和个别字符,无法显示更多复杂的字符,而点阵型液晶显示器则可以解决这个问题。本系统采用的液晶显示模块作为人机交互的接口体现了数字化的优势,能够根据用户的需求对步进电机工作状态的参数进行设置89。(二)ocmj48c液晶显示模块的功能本设计采用ocmj48c液晶显示模块作为步进电机控制系统的显示部分,下面简要介绍一下该模块的功能。ocmj48c液晶显示模块是肇庆金鹏电子有限公司开发制造的c系列中文显示模块中的一种。c系列中文模块可以显示字母,数字符号,中文字型及图形,具有绘图及文字画

24、面混合显示功能。提供三种控制接口,分别是8位微处理器接口,四位微处理器接口及串行接口。所有的功能,包括显示ram,字型产生器在内都包含在一个芯片里面,只要一个最小的微处理器系统,就可以方便操作模块。内置2m-位中文字型rom总共提供8192个中文字型(16x16点阵),16k-位半宽字型rom(cgrom)总共提供126个符号字型(16x8点阵),64x16位字型产生ram(cgram),另外绘图显示画面提供一个64x256点的绘图区域gdram,可以和文字画面混合显示。提供多功能指令:画面清除(display clear)、光标归位(return home)、显示打开/关闭(display

25、on/off)、光标显示/隐藏(cursor on/off)、显示字符闪烁(display character blink)、光标移位(cursor shift)、显示移位(display shift)、垂直画面卷动(vertical line scroll)、反白显示(by_line reverse display)、待命模式(standby mode)10。四、pic单片机(一)pic系列单片机的特点美国microchip公司的pic系列单片机主要有以下特点:(1)哈佛总线结构;(2)指令单字节化;(3)寻址方式简单;(4)精简指令集(risc)技术;(5)代码压缩率高;(6)运行速度高;

26、(7)功耗低;(8)驱动能力强,达到20ma的电流驱动能力;(9)自带硬件看门狗电路;(10)外接电路简单;(11)开发方便。这些特点使pic系列单片机越来越受到中国用户的青睐,在工业控制,智能仪表等不同领域得到广泛的应用11。pic16f87x系列单片机是microchip公司于1998年年底推出的新产品,可以实现在线调试和在线编程。本设计系统采用pic16f877型号单片机作为控制芯片来实现步进电机的旋转,调速以及lcd显示等功能,下面介绍一下该类型单片机的结构及用到的各模块。(二)pic16f877单片机的结构1pic16f877单片机的基本功能模块首先对pic16f877单片机的基本功

27、能区域所包含的主要部件及其功能进行介绍,以便对其基本功能硬件有一个概要的认识。基本功能区域的主要功能模块包括以下7部分,它们是:程序控制区域,数据存储区域,e2prom数据存储区域,算数逻辑运算区域,输入/输出端口模块、多功能定时器模块,核心模块11。本设计没有用到该类型单片机的专用功能模块,在此将不再赘述。下面主要介绍一下用到的输入/输出端口模块和多功能定时模块。2输入/输出端口模块pic16f877单片机具有丰富的接口资源,共设置有5个输入输出端口,分别为ra(6位)、rb(8位)、rc(8位)、rd(8位)、re(3位),合计共有33个引脚。大多数引脚除了具有i/o功能外,还配置有其它特

28、殊功能。通用i/o引脚可以看作是最简单的外设,pic单片机通过i/o端口监视和控制其它设备,为了增强器件的灵活性和功能,一些引脚被定义为多功能复用引脚。这些功能由器件上相应外设的特点决定。一般来说,当相应的外设使能时,其对应的引脚不能作为通用i/o引脚使用。图1-7是一个典型的i/o端口,它没有画出i/o引脚复用的外设功能。读port寄存器是读取引脚上的电平状态,而写port寄存器是将数据写入端口的数据寄存器。所有的写操作都是读-修改-写入操作。因此对一个端口进行写入操作意味着总是光读取端口的引脚电平,在修改这个值,然后再写入端口的数据锁存器12。图1-7 典型的i/o端口123定时器/计数器

29、tmr0定时器/计数器模块的正常工作一般表现为计数累计功能,通常是由时钟脉冲来驱动的。该时钟可以是单片机本身的工作时钟,即使用内部时钟,称之为定时器;也可以使用外部引脚输入的时钟,即使用外部的时钟输入来累计,称之为计数器。pic16f877单片机配置3个定时器/计数器模块,分别为tmr0,tmr1和tmr2。本控制系统主要利用tmr0的定时功能为步进电机合理分配脉冲宽度以达到调节电机转速的目的。下面主要介绍tmr0的功能特性及与该模块相关的寄存器。tmr0定时器/计数功能主要是基于一个8位累加定时/计数寄存器tmr0,采用时钟信号的上升沿,下降沿触发计数方式。tmr0在ram数据寄存器中具有特

30、定的地址001h和101h,可通过软件指令进行读/写操作。另外,tmr0带有一个可编程预分频器,可达到定时/计数的扩展效果。在tmr0计数溢出时,相应的溢出中断标志自动置位,可通过设置tmr0中断使能状态而产生溢出中断12。该模块的结构框图如图1-8所示图1-8 tmr0结构框图12定时器/计数器tmr0主要设计有4个寄存器,它们分别是定时器/计数器tmr0,选项寄存器option_reg,中断控制寄存器intcon,方向寄存器trisa。本控制系统主要是靠改变tmr0的计数初值以及option_reg中的分频比来调节脉冲的宽度,以达到精确调速的目的12。第二章 控制系统硬件设计一、控制系统总

31、体概述本控制系统采用pic16f877单片机作为控制核心,通过键盘输入指令,产生各种控制信号,实现步进电机的转速和转向的控制,并可通过lcd显示系统的运行状态。系统电路由五部分组成,即输入、显示部分;pic单片机;驱动控制电路;直流电压源及步进电机。控制系统总体结构框图如图2-1所示。该控制系统可实现如下功能:1通过键盘可以设定步进电机的转速及转数(以整转为单位),2通过键盘可以设定步进电机转向,3键盘所设置的参数可以通过lcd进行实时显示。由于本控制系统所控制的电机类型为两相六线混合式步进电动机,因此系统由pic16f877单片机的porta端口产生a和-a、b和-b两相信号。为提高系统的驱

32、动能力,在单片机与步进电机之间增加控制驱动电路。图2-1 控制系统总体结构框图二、控制系统的硬件电路(一)控制系统总体电路本控制系统硬件总体电路以单片机作为系统核心,主要由pic16f877单片机及单片机工作外围电路、步进电机控制驱动电路、lcd显示屏接口电路、键盘输入电路等组成。在该系统中输入由单片机接口电路构成的1*4键盘完成,单片机根据输入的键值控制步进电机的脉冲分配,输出脉冲控制电动机的运行以及lcd显示屏实时对步进电机的状态进行相应的显示。由于本设计所要控制的步进电机功率较小,步距角也相对较小,所要求实现的控制精度要求也不是很高,因此采用单极性驱动电路并且省略了细分驱动电路,硬件电路

33、相对来说比较简单。控制系统电路图如图2-2所示。图2-2控制系统总体电路图(二)单片机与步进电机接口驱动电路本控制系统采用pic16f877单片机产生脉冲控制信号。单片机内部的ram和rom即可满足该设计的要求。步进电机控制信号将pic16f877单片机的porta端口的ra1、ra2、ra3、ra5,4个引脚输出的具有时序的高低电平作为步进电机的控制信号,用于作用在作为开关的三极管基极以导通三极管,使直流电压源能直接向步进电机供电。kp39hm2-025型混合式步进电动机是两相六线制步进电动机,导线颜色分别为红色、红色、黄色、橙色、黑色、棕色。其中两根红色导线为公共端,接12v稳压电源,黄色

34、、橙色、黑色、棕色导线依次为电动机a相、a非相、b相、b非相。由于单电压驱动电路结构简单,功率驱动元件少,成本低,适用于驱动小功率步进电动机或用于性能指标要求不高的场合,基于上述特点与本设计的要求恰好符合故采用此驱动电路对步进电机进行驱动。图2-3为单电压功率驱动电路的原理图(只画出其中一相)。来自单片机的信号电压经过电流放大后加到三极管vt的基极,控制vt的导通和截止,从而控制相绕组的通电和断电。r和vd构成了相绕组关断时的续流电路13。由于电感的存在,绕组的通电和断电不能瞬时完成,电流上升缓慢会导致电机的动态转矩下降,因此应缩短电流上升的时间常数,使电流前沿变陡。通常在绕组回路中串入电阻r

35、s,使绕组回路的时间常数减小。图2-3 单电压驱动电路(其中一相)13(三)单片机与lcd显示屏接口电路(8位并行模式)8位并行模式下,模块与单片机的接口电路如图2-4所示。模块的数据线可与单片机数据线直接相连。ocmj48c液晶模块的读写控制信号r/w由pic16f877单片机的rb4来控制,rb3连接液晶模块的片选信号e,rb5连接指令和数据通道选择信号rs(cs),rb2连接液晶模块的并行模式和串行模式的数据选择信号psb,rb1连接液晶模块的复位信号/rst,因此液晶模块的复位有pic16f877单片机的程序控制。另外在本设计中我们使用portd作为单片机与液晶的数据接口。图2-4 单

36、片机与lcd显示屏接口电路(四)单片机与键盘接口电路由于本控制系统只用到四个按键,所以使用最简单的方法即将按键直接与单片机引脚相连,一个按键对应一个引脚。单片机与键盘接口电路如图2-5所示。单片机的rc1与键盘的确认键s1相连,rc2连接键盘的电机方向设置键、速度设置键、转数增按键s2,rc3连接电机转数减按键s3,rc4连接启动键s4。图2-5 单片机与键盘接口电路三、步进电动机的选型在本控制系统的设计中,采用日本某公司出产的两相六线混合式步进电动机,其型号为kp39hm2-025。具体参数为:相电压12v;相电流0.2a;阻抗63;精度1.8deg/step。四、开发平台mplab icd

37、简介mplab-icd是针对microchip公司的pic16f87x系列mcu的廉价开发工具。mplab-icd既是一个在线调试器,又是一个编程器。它工作于mplab-ide集成开发环境下,利用了microchip公司的在线串行编程技术(in-circuit serial programming),在所仿真的mcu(pic16f87x)中嵌入监控程序来实现实时仿真。将其仿真头直接连接到应用系统的mcu插座中,就如同一片pic16f87x一样运行用户的应用程序。mplab-icd 的主要功能:·在线调试功能·实时仿真调试源程序·实时、单步或断点运行程序·

38、调试目标板硬件系统·对目标应用控制器进行编程。mplab-icd使用的资源由于仿真mcu(pic16f87x)内嵌调试监控程序和使用microchip“在线串行编程”功能,mplab-icd将会占用仿真mcu中的以下资源:·mclr/vpp脚(系统复位/编程电压脚)·禁止低电压“在线串行编程(icsp)”·rb6和rb7保留为编程和在线调试用·六个通用文件寄存器保留给调试监控程序(见表2-1)·程序存储器第一条指令(地址0x0000)必须是空操作指令nop14表2-1 不同芯片被占用的资源处理器类型被占用的通用寄存器被占用的程序存储器

39、pic16f870/871/8720x70,0x0bb-0x0bf0x06e0-0x07ffpic16f873/8740x70, 0x0eb-0x0f00x0ee0-0x0fffpic16f876/8770x70,0x1eb-0x1ef0x1f00-0x1fff第三章 控制系统软件设计一、控制系统总流程图在本控制系统中,相应的控制信号由单片机来产生,根据需要通过键盘输入电机的转动方向,转动速率及运行转数,并通过lcd显示屏将电动机各种设置信息及运行状态实时显示,当各参数设置完毕时按下启动键,使步进电机按要求进行工作。所以软件部分共有4大模块组成:系统监控,键盘识别处理,lcd显示程序,控制信号

40、产生程序。本控制系统完全采用软件的方式,按照给定的通电换向顺序,通过单片机的i/o口向驱动电路发出控制脉冲。控制系统总流程图如图3-1所示。图3-1 控制系统总流程图二、系统监控模块(一)系统监控模块流程图在系统监控中,应完成系统的启动,进行键盘扫描,得到相应键值,完成对步进电机转向,转速,运行转数等参数的设置,使设置参数在lcd显示屏动态显示出来,并使步进电机按照要求进行工作。该模块的流程图如图3-2所示。图3-2 系统监控模块流程图为增加控制的灵活性,键盘输入数据及确认命令,启动命令均采用中断的方式实现。所以系统监控模块只完成对系统的初始化设置,通过键盘中断,实现键盘扫描及处理程序的跳转。

41、(二)步进电机转向设置子程序范例以设置步进电动机转向为例,其处理程序如下。其它设置流程与设置电机转向类似,无需赘述。lcd_clear();/显示屏清屏lcd_printer(0,0,str4);/显示屏出现“请选择电机转向”motor_df=0;/初始设置电机转向为负向lcd_printer (2,0,str10);/显示屏显示“电机方向:反向”affirm=0;/确认按键标志位复位while(!affirm)/设置转向while(!keyset_manage)/扫描按键标志位;if(keyset_manage)code_search_manage();/有键按下,键盘处理if(df_set

42、)/若方向按键按下,电机方向设置。motor_df=!motor_df;/电机方向标志位取反df_set=0;/方向按键标志位复位if(motor_df)lcd_printer (2,0,str9);elselcd_printer (2,0,str10);df_set=0;(三)步进电机转速设置本步进电动机转速设置共分为三个档次,其中一档为100转/分,二档为150转/分,三档为200转/分,只用一个按键来实现各转速之间的切换。步进电机的转速是有单片机内部定时器tmr0的中断频率决定的,改变定时器的装载初值和分频比就可以改变电机的运转速度。因此当转速档次设置完毕后,相应的定时初值和预分频设置就

43、会通过相应子程序进行装入,从而控制电机的运转速率。三、键盘识别处理模块本模块主要完成对按键的扫描识别,并对相应的电机标志位进行置位,以保证系统监控模块的顺利执行。对pic单片机进行初始化后由其扫描键盘,键盘消除抖动及控制,得到输入的数据或命令,并通过int中断与单片机进行信息交换,单片机根据得到的不同信息执行相应的数据处理程序,同时将处理结果送pic单片机由其完成数据显示的管理和lcd显示屏的控制,显示步进电动机的各种控制信息。该模块的软件流程图如图3-3所示。图3-3 键盘识别处理软件流程图四、lcd显示模块本模块是采用将金鹏c系列的lcd显示屏的所有驱动程序都以子程序的方式写在一个c文件中

44、,在需要时直接调用相应子程序即可。本模块采用并行通信,至少占有11个i/o口,并不涉及中断。本控制系统软件部分共用到字符模式清屏子程序lcd_clear(void)、打印字符子程序lcd_printer(unsigned char, unsigned char, unsigned char*)、黑屏待机子程序lcd_black(void)。(上述子程序名称皆由用户定义)根据lcd液晶显示模块与单片机接口的硬件电路和液晶显示模块的读写流程设计出液晶显示模块的软件流程图如图3-4所示。在pic单片机上电复位后,进行系统的参数设定,液晶显示模块初始化后,pic单片机对液晶显示模块ocmj48c进行指

45、令数据写操作和读数据操作。图3-4 液晶显示模块的软件流程图五、控制信号产生模块(一)步进脉冲产生模块本模块主要是单片机根据步进电机的型号和键盘输入的数据,产生相应的电脉冲控制信号并由ra端口的ra1、ra2、ra3、ra5的四个引脚输出。ra端口的数据格式与步进电机的型号有关。步进电机有单拍、双拍和多拍三种工作方式,由于本控制系统所应用的步进电机为两相步进电机,又经实验测定证明该步进电机在双四拍工作方式下工作特性较好,因此在本系统中步进电机的工作方式为两相四拍。这里列出kp39hm2-025型步进电机在两相四拍工作方式下的正向与反向励磁方式,如表3-1,3-2所示。表3-1 pic单片机ra

46、端口引脚数据与步进电机(正向)励磁方式对照励磁方式励磁相ra1ra5ra3ra2两相四拍正向ab1010a(-b)1001(-a)(-b)0101(-a)b0110表3-2 pic单片机ra端口引脚数据与步进电机(反向)励磁方式对照励磁方式励磁相ra1ra5ra3ra2两相四拍反向ab1010(-a)b0110(-a)(-b)0101a(-b)1001此处以步进电机在两相四拍工作方式下正向励磁为例,来说明单片机是如何发送脉冲对步进电机进行控制的,其处理程序如下。步进电动机反向励磁与正向相似。该程序中a、na、b、nb分别代表步进电机的a相、a非相、b相、b非相信号所连接的单片机引脚。void

47、drive()/正向驱动子程序signal=0;/励磁信号标志位复位if(na&&b)/a相和b相绕组导通na=0;a=1;else if(a&&b)/a相和b非相绕组导通b=0;nb=1;else if(a&&nb)/a非相和b非相绕组导通a=0;na=1;else if(na&&nb)/a非相和b相绕组导通nb=0;b=1;(二)系统中断模块本系统中断分为外部int中断和内部定时器tmr0中断。外部int中断已在第三节键盘处理模块中详细讲述,由于步进电动机控制信号的频率是由tmr0溢出中断的定时初值和分频比决定的,这里着重讲述

48、内部定时器tmr0中断。内部定时器tmr0中断服务程序流程框图如图3-5所示 图3-5 内部定时器tmr0中断服务流程图内部定时器中断主要是利用单片机的内部定时器的tmr0模块(8位计数方式)产生不同周期的定时信号,每次中断都给步进电机两个绕组一次脉冲,使得步进电机转动一个节拍,因此步进电机的转速是由单片机内部定时器的中断频率来决定的,在不改变分频器分频比的情况下,不断改变定时器的装载初值就可改变电机的运转速度。由于在不改变分频比的情况下,定时器的定时范围是有限的,并不能取到控制系统所想要的所有的控制信号频率。因此为了使控制系统的运行尽可能精确,减小运行误差,我们需要在每次进入中断之前重新设置

49、分频比,通过改变上述两个参数来改变电机的运转速度,将会使步进电机尽可能接近理想转速,以达到精确控制的目的。通过定时器中断的方法产生硬件延时的效果,只需调整定时器的定时常数就可以实现调速。这种方法占用cpu时间较少,利用pic单片机可以达到精确控制步进电机转速的目的,是一种比较实用的调速方法。(三)步进电机加减速模块在第一章控制系统实现原理中已对步进电机的加减速原理作过详细的阐述,而且确定了本控制系统是以匀加减方法即直线规律来实现步进电机的加减速。本控制系统的加减速曲线如图3-6所示。图3-6 控制系统的加减速曲线本控制系统利用单片机控制步进电机加减速时,采用的是定时器中断方式,实际上是改变定时

50、器装载值的大小,这在前面已经说明。在加减速的控制过程中,不一定每步都计算定时器重装值,可以采用阶梯曲线来逼近加减速曲线如图3-7所示。在加速过程中,速度不是连续变化,而是分档变化,为了与要求的加速频率相逼近,必须确定每个阶段上的运行时间t。时间t越小,加速越快,反之越慢。程序执行过程中,每次速度升一档,都要计算这个台阶应走的步数,然后以递减方式检查,当减至零时,该档速度运行完毕,升入又一档速度15。电机在加速过程中,对加速总步数进行递减操作,当减至零时加速过程结束,转入匀速运转过程。减速过程的规律与加速相同只是按相反的顺序进行。在此过程中,时间t是通过一定的数学运算获得的,由于pic8位单片机

51、的数学运算能力有限,建议使用数组的形式将各间隔时间作为常量事先存储在单片机中,需要时直接调用即可。图3-7 步进电机的加减速曲线15在本控制系统中,软件实现的方法是通过不断修改定时器tmr0初值来实现的。首先应根据输出总脉冲数确定加速,恒速和减速的时间并确定下一的时间值,并将定时器的初值送给定时器tmr0,从电机启动瞬间开始,每产生一个脉冲,通过查询数组定时器初值增加某一定值,则相应的脉冲周期减少,即脉冲频率增加;若定时器初值逐步减少,则相应的脉冲周期增加,即脉冲频率减少15。单片机控制步进电机加减速的软件流程图如图3-8所示。图3-8 步进电机加减速软件流程图(中断部分)该控制系统的步进电机

52、加减速子程序是在中断子程序中实现的,该程序如下所示:if (! steps)halt=1;步进电机停止标志位置位else电机正常运行,对电机速度参数进行设置signal=1;电机驱动标志位置位if(up)若电机处于加速状态,设定速度参数tmr0b=upi;i+;else if(down)若电机处于减速状态,设定速度参数tmr0b=downj;j+;else 恒速运行时设定电机参数tmr0=constant_rate;结论单片机控制系统设计的趋势为单片化,即尽量发挥单片机的功效,使用尽量少的元器件与连线来构成硬件,通过软件来实现尽量多的功能。我们设计的步进电机控制系统大量使用了同步并行总线,简化

53、了硬件系统的复杂度,同时使用模块化设计思想提高了软件的聚合度,利用按键进行设置以及lcd显示屏及时显示,实现了软件编写简单,系统直观易用,突出了在设计时的简单、易用、实用性强的原则。由于该系统是用于作为控制步进电机的转向,转速等各种状态,所以在实际应用中还有很多需要完善的地方。虽然真正的高精度的步进电机控制系统是相当复杂的,但是我们制作的控制系统作为原理性的说明已经足够了。通过对步进电机工作参数设置,lcd显示,加减速控制等功能的实现,我们完成了对单片机控制步进电机的原理剖析,对步进电机加减速技术有了一定了解,加深了对pic单片机应用的认识,掌握了基于单片机的编程思想,为日后走向工作岗位积累了

54、软件开发设计及硬件制作方面的宝贵经验。参考文献1 许洪斌,杜向斌步进电机控制系统设计j重庆工学院学报(自然科学)2008,第22卷,第5期):32-342 孟武胜,李亮基于at89c52单片机的步进电机控制系统设计j微电机2007,第40卷,第3期):65-663 李荣正,刘启中,陈学军pic单片机原理及应用(第2版)m北京:北京航空航天大学出版社2005:13-174 王晓明电动机的单片机控制m北京:北京航空航天大学出版社,2002:181-2145 徐国山,潘振良步进电机的基本原理j科技论坛,2007,第7期):96 孙建忠,白凤仙特种电机及其控制m北京:中国水利水电出版社,2005:14

55、7-1787 李晓贞,王福志,王忠举基于单片机的步进电机调速研究j农业装备与车辆工程2008,第5期):22-238 朱利军,袁丽娟,王应海液晶显示模块在控制系统中的应用j电子技术2006):529 怀业强,梁健宏hy-240128m-201图形点阵式液晶显示模块及其应用j电子设计应用2006,第3期):13610 金鹏电子有限公司c系列中文液晶显示模块使用说明书pdfhttp:/wwwgptlcmcn200511 田丰国,贺莹,武淑娟基于pic16f877a单片机软件环分的步进电机控制系统j电气技术2009,第3期):5812 microchip technology incpic16f87x data sheetpdfhttp:/wwwmicrochipcom200113 何兵基于mcs-51单片机的步进电机正反转控制实现j泸州职业技术学院学报2008,第1期):56-57致谢感谢荆刚老师,他那严谨的治学态度和丰富的实战经验永远是我们学习的榜样。在赵老师这里,正直、诚信、乐观、宽博对我们来说

温馨提示

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

评论

0/150

提交评论