步进电机的单片机控制系统软件设计.docx

上传人:scccc 文档编号:14612708 上传时间:2022-02-10 格式:DOCX 页数:21 大小:277.40KB
返回 下载 相关 举报
步进电机的单片机控制系统软件设计.docx_第1页
第1页 / 共21页
步进电机的单片机控制系统软件设计.docx_第2页
第2页 / 共21页
步进电机的单片机控制系统软件设计.docx_第3页
第3页 / 共21页
步进电机的单片机控制系统软件设计.docx_第4页
第4页 / 共21页
步进电机的单片机控制系统软件设计.docx_第5页
第5页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《步进电机的单片机控制系统软件设计.docx》由会员分享,可在线阅读,更多相关《步进电机的单片机控制系统软件设计.docx(21页珍藏版)》请在三一文库上搜索。

1、步进电机的单片机控制系统软件设计4.1 控制程序总体设计系统软件采用模块化程序设计,使程序流程清晰明了。系统主程序主 要完成的内容:系统参数初始化、判断保护信号、打开中断启动电机。系 统主程序流程图如下图4-1所示1。可以看出,主程序是一个死循环,在 系统上电初始化完毕后,系统一直在不断的执行这个循环程序o在循环过程中,若产生中断,则程序就转去执行相应的中断服务程序。在后面将逐 一介绍中断服务程序,功能子程序等的设计。图4-1主程序流程图步进电动机的速度控制通过控制单片机发出的步进脉冲频率来实现。 对于用软件实现脉冲分配,可以采用调整两个控制字之间的时间问隔来实 现调速。根据调速原理,控制步进

2、电动机速度的方法可有两种:一、通过 软件延时的方法。改变延时的时间长度就可以改变输出脉冲的频率,但这种方法使CPU长时间等待,占用大量机时,因此没有实用价值。二、通 过定时器中断的方法。在中断服务子呈现中进行脉冲输出操作, 调整定时器的定时常数就可以实现调速。本系统软件延时的方法实现调速,从HSO.0通道输出连续脉冲信号。在50H单元存放脉冲处于“1”电平时间值(单位为2 ) , 52H 单元存放脉冲处于“0”电平时间值(单位为 2 ) 。改变 50H 和 52H 单元的内容,就可以改变脉冲输出的频率及占空比。程序如下:主程序ORG2080HOUPSS:LDSP, #00C0H;设栈指针DI;

3、关中断ORBINT-MASK , #8H;允许HSO 中断LDTEMP, #HSO-INT;送HSO中断服务程序入口地址STTEMP, 2006H0ADD54H, T1 , 52H;计算上跳变时刻SCALLLDCAM;调 CAM 装载子程序EI;开中断HERE:SJMPHERE;等待中断中断服务程序HSO-INT:PUSHF;保护PSW,同时清PSWSCALLLDCAM;调 CAM 装载子程序POPF;恢复PSWRET;返回主程序CAM 装载子程序LDCAM :LDBHSO-COMMAND,#20H ; HSO.0LDHSO-TIME , 54HADD54H, 50H;计算下跳变时刻NOPNO

4、P;空操作LDBHSO-COMMAND,#10H ; 0-HSO.0,并产生HSO 中断LDHSO-TIME , 54HADD54H, 52H;计算上跳变时刻RET其它高速输出口(HSO)的连续脉冲信号的产生程序可依据如上程序写入。这样可通过改变输出脉冲的频率达到控制步进电动机速度和方向。4.2 键盘/显示器的自动扫描8279是Intel公司生产的通用可编程键盘和显示器I/O接口芯片。利用8279,可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号, 这样可以大大节省CPU对键盘/显示器的操作时间,从而减轻 CPU的负 担,而且显示稳定,程序简单,不会出现误动作。主程序框图如下图4-2所

5、示用户程序图4-2主程序框图送DH单元I K1键状态字置“ 1取DH单元内容高 4位右移四次到低4位送显示缓冲区I置缓冲区I满标志调显示子程序DH内浮住四位送显示缓冲区II置缓冲区II满标志调显示子程序开中断返回A图4-3中断服务子程序框图;主程序STATUSEQU7FFFHDATAEQU7FFEHAXEQU20HALEQU20HAHEQU21HBXEQU22HBLEQU22HBHEQU23HCXEQU24HCLEQU24HCHEQU25HDXEQU 26HDLEQU 26HDHEQ 27HEXEQ 28HELEQU 28HEHEQU 29HFXEQU 2AHFLEQU 2AHFHEQU 2B

6、HLDAX, #200EHLDBX, #3000HSTBX, AXLDBBL, #0DEHSTBBL, STATUSR0LDBL, #00HSTBBL, STATUSR0LDBBL, #34HSTBBL, STATUSR0LDBAH , #00HLDBAL , #00HLDBAH , #00HEI中断服务程序LDBBL, #40HSTBBL, STATUSR0LDBBL, DATAR0STBBL, ELCLRCSUBBBL, #38HJCL1LDBBL, AHSHRBBL, #01HJNCL2INCBALLDBBL, ALSHRBBL, #01HJCL3LDBBL, ELSTBINCBL8LJ

7、MP L4EIRETL3LDBSTBLDBLJMPL1CLRCSUBB JNZ INCB LDBSHRB ANLB STB LDBLJMP LDB ANLB STBINCBLJMPL9EIRETL5LDBCLRCSUBB JNZ SHRB JCLDBBL, EH FLBL, ELBL, DLFL, #80HL8BL, #38HL5AHBL, DHBL, #04HBL, #0FHBL, DL FL, #80HL4BL, DHBL, #0FHAL , EH FLL4BL, ELBL, #39HL2AL , #02HL2AH , #00HLDBAL ,#00HLDBBL,DLSHLBBL,#04HA

8、NLBBL,#0F0HORBBL,EHSTBBL,DHLJMPL94.3 软件脉冲分配器软件脉冲分配器是指实现脉冲分配控制的计算机程序,其控制的基本原理是:根据步进电机与计算机的接线情况及通电方式列出脉冲分配控制数据表;运行时按节拍序号查表获得相应的控制数据;在规定时刻通过输出口将数据输出到步进 电机驱动电路。下面通过单片机8031对X-Y工作台的两台四相步进电机进行控 制的接口电路原理图。图中采用了负逻辑控制,即当8031的P1 口某一口线输出 低电平“ 0”时,对应的步进电机绕组被接通。下图 4-4是单片机与步进电机的 接口电路图:P1.0P1.1P1.2P1.3P1.4P1.58031P

9、1.6P1.7GND光电隔离接口GNDABCDABC *D 平00X向电动机Y向电动机卜表4-1是按上图列出的四相八拍脉冲分配控制数据表:表4-1四相八拍脉冲分配控制数据表节 拍 序 号Y向电动机X向电动机通电相控制数据旋转方向P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0DCBADCBA111101110AEEH向 下 正 转向 上 反 转211001100ABCCH311011101BDDH410011001BC99H510111011CBBH600110011CD33H701110111D77H801100110DA66H下图4-5为脉冲分配控制程序框图:X分配Y分配图

10、4-5脉冲分配控制程序框图对应的子程序清单如下:XPD:CLR01HMOVR1, #52HMOVC , 02HAJMPPPDYPD:SETB01HMOV R1 ,#53HMOV C ,03HPPD:JCPPD2INCR1CJNER1,#09H,PPD3MOVR1,#01HAJMPPPD3PPD2:DECR1CJNER1,#00H,PPD3MOVR1,#08HPPD3:MOV A,R1ADDA,#01HMOVCA+PCAJMPPPD5TABLE :DB: 0EEH, 0CCH, 0DDH, 99HDB: 0BBH, 33H,77H, 66HPPD5:JB 01H,PPD6ANLA, #0FHAN

11、L55H, #0F0HORL55H, #0F0HORL55H, ARETPPD6:ANLA,#0F0HANL55H, #0FHORL55H, ARET关于子程序的若干问题说明:1) 标号 XPD 和 YPD 分别为向X 向及 Y 向步进电机分配脉冲时的子程序入口。2)位02H、 03H 分别为 X 向、 Y 向步进电机正反转标志位,其值来自主程序。3) 55H 为脉冲分配控制数据缓冲单元,其中的数据将从P1 口输出给步进电机。由于子程序每次运行只能对一个步进电机进行脉冲分配控制,故55H 中的数据每次只有半个字节被修改,而另一半则保留。4.4 速度控制程序与方向控制程序4.4.1 速度控制程序

12、通过控制脉冲分配频率可实现步进电机的速度控制。速度控制也有硬、软件两种方法。硬件方法是在硬件脉冲分配器的时钟脉冲输入端(CP 端)接一可变频率脉冲发生器,改变其振荡频率,即可改变步进电机速度。下面主要介绍软件方法。软件方法常采用定时器来确定每相邻两次脉冲分配的时间问隔,即脉冲分配周期,并通过中断服务器程序向输出分配控制数据12 0下面的程序即可实现这一功能,其中采用了单片机8031的CTC0 (零号定时/计数器)。FC:MOVTL0,5BHMOVTH0,5AHSETBTR0;5AH、5BH中存放着与速度相关数据;相应的定时常数;启动定时器;其他程序INTR0:;重装定时常数;输出脉冲分配控制数

13、据;中断返回MOVTL0, 5BHMOVTH0, 5AHMOVP1, 55HRETI程序中前三条指令的作用是预置定时常数及启动定时器,可放在主程序中执 行,也可作为子程序调用。定时器启动后,计算机可进行其他工作。当有定时中 断申请时,CPU向应中断,从标号为INTR0的中断服务器程序入口开始进行中断 服务。首先重装定时器常数,为下个节拍做好准备,然后从 P1 口输出55H中寄 存的脉冲分配控制数据。速度控制的关键是定时常数的确定。设数控X-Y工作台的脉冲当量为H(mm), 要求的运动速度为v(mm/min), 8031的晶振频率为fose(HZ),采用CTC0的工作 模式1 (即16位定时器模

14、式),则定时常数Tx(s)可按下式确定。丁 c165 fosc* hTx 2v4.4.2 方向控制程序在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20H单元的 各位为步进电机正转标志位;21H单元各位为反转标志位。在正转时,不仅给正 转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机 换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步130 下图4-6是方式1程序框图:图4-6正反转程序框图方式1源程序:MOV20H, #00H;20H单兀置初值,电机止转位置指针MOV21H

15、, #00H;21H单元置初值,电机反转位置指针MOVP1, #0C0H;P1 口置初值,防止电机上电短路MOVTMOD , #60H;T1计数器置初值,开中断MOVTL1 , #0FFHMOVTH1 , #0FFHSETBET1SETBEASETBTR1SJMP$*计数器1 中断程序*IT1P:JB P3.7, FAN ;电机正、反转指针*电机正转*JB00H, LOOP0JB01H, LOOP1JB02H, LOOP2JB03H, LOOP3JB04H, LOOP4JB05H, LOOP5JB06H, LOOP6JB07H, LOOP7LOOP0:MOVP1, #0D0HMOV20H, #

16、02HMOV21H, #40HAJMPQUITLOOP1:MOVP1, #090HMOV20H, #04HMOV21H, #20HAJMPQUITLOOP2:MOVP1, #0B0HMOV20H, #08HMOV21H, #10HAJMPQUITLOOP3:MOVP1, #030HMOV20H, #10HMOV21H, #08HAJMPQUITLOOP4:MOVP1, #070HMOV20H, #20HMOV21H, #04HAJMPQUITLOOP5:MOVP1, #060HMOV20H, #40HMOV21H, #02HAJMPQUITLOOP6:MOVP1, #0E0HMOV20H, #

17、80HMOV21H, #01HAJMPQUITLOOP7:MOVP1, #0C0HMOV20H, #01HMOV21H, #80HAJMPQUIT*电机反转*FAN:JB08H, LOOQ0JB09H, LOOQ1JB0AH , LOOQ2JB0BH, LOOQ3JB0CH, LOOQ4JB0DH, LOOQ5JB0EH, LOOQ6JB0FH, LOOQ7LOOQ0:MOVP1, #0A0HMOV21H, #02HMOV20H, #40HAJMPQUITLOOQ1 :MOVP1, #0E0HMOV21H, #04HMOV20H, #20HAJMPQUITLOOQ2:MOVP1, #0C0HM

18、OVMOVAJMPLOOQ3:MOVMOVMOVAJMPLOOQ4:MOVMOVMOVAJMPLOOQ5:MOVMOVMOVAJMPLOOQ6:MOVMOVMOVAJMPLOOQ7:MOVMOVMOVQUIT:END21H, #08H20H, #10H QUITP1, #0D0H21H, #10H20H, #08HQUITP1, #050H21H, #20H20H, #04H QUITP1, #070H21H, #40H20H, #02H QUITP1, #030H21H, #80H20H, #01H QUITP1, #0B0H21H, #01H20H, #80HRETI该驱动器经实当验证能驱

19、动0.5Nm的步进电机。将驱动部分的电阻、电容 及续流二极管的有关参数加以调整,可驱动 1.2N m的步进电机。该驱动器电 路简单可靠,结构紧凑,对于I/O 口线与单片机资源紧张的系统来说特别适用。4.5 自动升降速程序步进电机允许的启动频率一般较低,当要求高速运行时,必须用较低的频率启动, 然后逐渐加速,否则不能正常启动。制动时也应该逐步降到较低的频率后再制动, 否则定位不准。步进电机自动升降速也可以通过硬、软件两种方法实现。这里只介绍软件自动升降速控制。软件自动升降速控制的基本原理是:根据允许的启动频率确定定时器的初始定时常数,在升速过程中,按一定规律不断增加定时常数(对加法计数的定时器

20、来讲),减小中间时间问隔,加快脉冲分配频率;在恒速过程中,保持定时常数 不变;在降速过程中,按规律不断减小定时常数,降低脉冲分配频率,直到定时 常数等于希望的制动频率所对应的值时,停止脉冲分配,使步进电机制动14 0升降速过程可按指数或直线(匀加速)规律控制,前者的特点是升降速过程 短,与步进电机的阶跃响应规律吻合,但程序设计复杂;后者的特点是程序简单, 但升降速过程较长。下图4-7是采用分段直线规律进行的自动升降速控制的程序框图:图4-7自动升降速控制的程序框图 对应的单片机程序清单如下:MOVA, 58HANLA, #0FCHORLA , 57HJZVDONMOVA, 5AHCLR CJN

21、E MOV CJNE RETURN : RET VUP:JNCDJNZ MOV CJNE MONVDV1 :INC MOV ADD MOV MOV ADDC MOV RETVDON :MOV CLR CJNE MOV CJNE VD :RETVD1 :JC MOV CLR SUBB MOV MOV SUBB MOV RETCA, 1AH, VUPA, 5BHA, 1BH, VUPRETURN4CH, RETURNA, 5AHA, 1AH, VDV14CH , #02H4CHA, 5BHA, #01H5BH, AA, 5AHA , #00H5AH , AA, 5AHCA, 18H, VD1A,

22、5BHA, 19H, VD1VDA, 5BHCA, #01H5BH, AA, 5AHA, #00H5AH , A对程序中若干问题说明如下:1) 57H、 58H、 59H 三个字节中所寄存的距终点所需要的脉冲当量数最初由主程序设定,并在每分配出一个脉冲后作一次减1 运算。 最终判别也在主程序中进行。2) 5AH、 5BH 中存放对应当前频率的定时常数,在升降速过程中作加1 或减1修改;18H、19H中存放对应启动频率f0的定时常数;1AH、1BH中存放对 应最高运行频率fmax的定时常数。3)当至终点距离为03FFH 个脉冲当量时,步进电机开始减速。当频率减到启动频率f0 后,步进电机恒速趋近终点,然后制动。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1