ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:309.19KB ,
资源ID:3768303      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3768303.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(步进电机的单片机控制系统软件设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

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

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

3、I ;关中断 ORB INT-MASK,#8H ;允许HSO中断 LD TEMP,#HSO-INT ;送HSO中断服务程序入口地址 ST TEMP,2006H0 ADD 54H,T1,52H ;计算上跳变时刻 SCALL LDCAM ;调CAM装载子程序 EI ;开中断HERE: SJMP HERE ;等待中断中断服务程序HSO-INT: PUSHF ;保护PSW,同时清PSW SCALL LDCAM ;调CAM装载子程序 POPF ;恢复PSW RET ;返回主程序CAM装载子程序LDCAM: LDB HSO-COMMAND,#20H ;1HSO.0 LD HSO-TIME,54H ADD

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

5、简单,不会出现误动作。主程序框图如下图4-2所示图4-2主程序框图图4-3中断服务子程序框图;主程序STATUS EQU 7FFFHDATA EQU 7FFEHAX EQU 20HAL EQU 20HAH EQU 21HBX EQU 22HBL EQU 22HBH EQU 23HCX EQU 24HCL EQU 24HCH EQU 25HDX EQU 26HDL EQU 26HDH EQ 27HEX EQ 28HEL EQU 28HEH EQU 29HFX EQU 2AHFL EQU 2AHFH EQU 2BH LD AX,#200EH LD BX,#3000H ST BX,AX LDB BL

6、,#0DEH STB BL,STATUSR0 LD BL,#00H STB BL,STATUSR0 LDB BL,#34H STB BL,STATUSR0 LDB AH,#00H LDB AL,#00H LDB AH,#00H EI中断服务程序 LDB BL,#40H STB BL,STATUSR0 LDB BL,DATAR0STB BL,ELCLRCSUBB BL,#38HJC L1LDB BL,AHSHRB BL,#01HJNC L2INCB ALLDB BL,ALSHRB BL,#01HJC L3LDB BL,ELSTB BL,EHINCB FLL8: LJMP L4EIRETL3: L

7、DB BL,ELSTB BL,DLLDB FL,#80HLJMP L8L1: CLRCSUBB BL,#38HJNZ L5INCB AHLDB BL,DHSHRB BL,#04HANLB BL,#0FHSTB BL,DLLDB FL,#80HLJMP L4LDB BL,DHANLB BL,#0FHSTB AL,EHINCB FLLJMP L4L9: EIRETL5: LDB BL,ELCLRCSUBB BL,#39HJNZ L2SHRB AL,#02HJC L2LDB AH,#00HLDB AL,#00HLDB BL,DLSHLB BL,#04HANLB BL,#0F0HORB BL,EHST

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

9、配控制数据表节拍序号Y向电动机X向电动机通电相控制数据旋转方向P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0DCBADCBA111101110AEEH向下正转向上反转211001100ABCCH311011101BDDH410011001BC99H510111011CBBH600110011CD33H701110111D77H801100110DA66H下图4-5为脉冲分配控制程序框图:图4-5脉冲分配控制程序框图对应的子程序清单如下:XPD: CLR 01H MOV R1,#52H MOV C ,02H AJMP PPDYPD: SETB 01H MOV R1, #53HM

10、OV C, 03HPPD:JC PPD2INC R1CJNE R1,#09H,PPD3MOV R1,#01HAJMP PPD3PPD2:DEC R1CJNE R1,#00H,PPD3MOV R1,#08HPPD3:MOV A, R1ADDA, #01HMOVC A+PCAJMP PPD5TABLE:DB:0EEH,0CCH,0DDH,99HDB:0BBH,33H,77H,66HPPD5:JB 01H, PPD6ANL A,#0FHANL 55H,#0F0HORL 55H,#0F0HORL 55H,ARETPPD6:ANLA, #0F0HANL 55H,#0FHORL 55H,ARET关于子程序

11、的若干问题说明:1)标号XPD和YPD分别为向X向及Y向步进电机分配脉冲时的子程序入口。2)位02H、03H分别为X向、Y向步进电机正反转标志位,其值来自主程序。3)55H为脉冲分配控制数据缓冲单元,其中的数据将从P1口输出给步进电机。由于子程序每次运行只能对一个步进电机进行脉冲分配控制,故55H中的数据每次只有半个字节被修改,而另一半则保留。4.4 速度控制程序与方向控制程序4.4.1速度控制程序通过控制脉冲分配频率可实现步进电机的速度控制。速度控制也有硬、软件两种方法。硬件方法是在硬件脉冲分配器的时钟脉冲输入端(CP端)接一可变频率脉冲发生器,改变其振荡频率,即可改变步进电机速度。下面主要

12、介绍软件方法。软件方法常采用定时器来确定每相邻两次脉冲分配的时间间隔,即脉冲分配周期,并通过中断服务器程序向输出分配控制数据12。下面的程序即可实现这一功能,其中采用了单片机8031的CTC0(零号定时/计数器)。FC:MOV TL0,5BH ;5AH、5BH中存放着与速度相关数据MOV TH0,5AH ;相应的定时常数SETB TR0 ;启动定时器. ;其他程序.INTR0:MOV TL0,5BH ;重装定时常数MOV TH0,5AH MOV P1,55H ;输出脉冲分配控制数据RETI ;中断返回程序中前三条指令的作用是预置定时常数及启动定时器,可放在主程序中执行,也可作为子程序调用。定时

13、器启动后,计算机可进行其他工作。当有定时中断申请时,CPU响应中断,从标号为INTR0的中断服务器程序入口开始进行中断服务。首先重装定时器常数,为下个节拍做好准备,然后从P1口输出55H中寄存的脉冲分配控制数据。速度控制的关键是定时常数的确定。设数控X-Y工作台的脉冲当量为H(mm),要求的运动速度为v(mm/min),8031的晶振频率为fose(HZ),采用CTC0的工作模式1(即16位定时器模式),则定时常数Tx(s)可按下式确定。4.4.2方向控制程序在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20H单元

14、的各位为步进电机正转标志位;21H单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步13。下图4-6是方式1程序框图:图4-6正反转程序框图方式1源程序:MOV 20H,#00H ;20H单元置初值,电机正转位置指针MOV 21H,#00H ;21H单元置初值,电机反转位置指针MOV P1,#0C0H ;P1口置初值,防止电机上电短路MOV TMOD,#60H ;T1计数器置初值,开中断MOV TL1,#0FFHMOV TH1,#0FFHSETB ET1SETB EA

15、SETB TR1SJMP $*计数器1中断程序* IT1P: JB P3.7,FAN ;电机正、反转指针*电机正转*JB 00H,LOOP0JB 01H,LOOP1JB 02H,LOOP2JB 03H,LOOP3JB 04H,LOOP4JB 05H,LOOP5JB 06H,LOOP6JB 07H,LOOP7LOOP0:MOV P1,#0D0HMOV 20H,#02HMOV 21H,#40HAJMP QUITLOOP1: MOV P1,#090HMOV 20H,#04HMOV 21H,#20HAJMP QUITLOOP2: MOV P1,#0B0HMOV 20H,#08HMOV 21H,#10H

16、AJMP QUITLOOP3: MOV P1,#030HMOV 20H,#10HMOV 21H,#08HAJMP QUITLOOP4: MOV P1,#070HMOV 20H,#20HMOV 21H,#04HAJMP QUITLOOP5: MOV P1,#060HMOV 20H,#40HMOV 21H,#02HAJMP QUITLOOP6: MOV P1,#0E0HMOV 20H,#80HMOV 21H,#01HAJMP QUITLOOP7: MOV P1,#0C0HMOV 20H,#01HMOV 21H,#80HAJMP QUIT*电机反转*FAN:JB 08H,LOOQ0JB 09H,LO

17、OQ1JB 0AH,LOOQ2JB 0BH,LOOQ3 JB 0CH,LOOQ4JB 0DH,LOOQ5JB 0EH,LOOQ6JB 0FH,LOOQ7LOOQ0: MOV P1,#0A0HMOV 21H,#02HMOV 20H,#40HAJMP QUITLOOQ1: MOV P1,#0E0HMOV 21H,#04HMOV 20H,#20HAJMP QUITLOOQ2: MOV P1,#0C0HMOV 21H,#08HMOV 20H,#10HAJMP QUITLOOQ3: MOV P1,#0D0HMOV 21H,#10HMOV 20H,#08HAJMP QUITLOOQ4: MOV P1,#0

18、50HMOV 21H,#20HMOV 20H,#04HAJMP QUITLOOQ5: MOV P1,#070HMOV 21H,#40HMOV 20H,#02HAJMP QUITLOOQ6: MOV P1,#030HMOV 21H,#80HMOV 20H,#01HAJMP QUITLOOQ7: MOV P1,#0B0HMOV 21H,#01HMOV 20H,#80HQUIT: RETIEND该驱动器经实验验证能驱动0.5Nm的步进电机。将驱动部分的电阻、电容及续流二极管的有关参数加以调整,可驱动1.2Nm的步进电机。该驱动器电路简单可靠,结构紧凑,对于I/O口线与单片机资源紧张的系统来说特别适用

19、。4.5 自动升降速程序 步进电机允许的启动频率一般较低,当要求高速运行时,必须用较低的频率启动,然后逐渐加速,否则不能正常启动。制动时也应该逐步降到较低的频率后再制动,否则定位不准。步进电机自动升降速也可以通过硬、软件两种方法实现。这里只介绍软件自动升降速控制。软件自动升降速控制的基本原理是:根据允许的启动频率确定定时器的初始定时常数,在升速过程中,按一定规律不断增加定时常数(对加法计数的定时器来讲),减小中间时间间隔,加快脉冲分配频率;在恒速过程中,保持定时常数不变;在降速过程中,按规律不断减小定时常数,降低脉冲分配频率,直到定时常数等于希望的制动频率所对应的值时,停止脉冲分配,使步进电机

20、制动14。升降速过程可按指数或直线(匀加速)规律控制,前者的特点是升降速过程短,与步进电机的阶跃响应规律吻合,但程序设计复杂;后者的特点是程序简单,但升降速过程较长。下图4-7是采用分段直线规律进行的自动升降速控制的程序框图:图4-7自动升降速控制的程序框图对应的单片机程序清单如下:VOU:MOV A,58H ANL A,#0FCHORL A ,57HJZ VDONMOV A,5AHCLR CCJNE A,1AH,VUPMOV A,5BHCJNE A,1BH,VUPRETURN:RETVUP:JNC RETURNDJNZ 4CH,RETURNMOV A,5AHCJNE A,1AH,VDV1MO

21、N 4CH,#02HVDV1: INC 4CH MOV A,5BH ADD A,#01H MOV 5BH,A MOV A,5AH ADDC A,#00H MOV 5AH,A RETVDON: MOV A,5AH CLR C CJNE A,18H,VD1 MOV A,5BH CJNE A,19H,VD1VD: RETVD1: JC VD MOV A,5BH CLR C SUBB A,#01H MOV 5BH,A MOV A,5AH SUBB A,#00H MOV 5AH,A RET对程序中若干问题说明如下:1)57H、58H、59H三个字节中所寄存的距终点所需要的脉冲当量数最初由主程序设定,并在每分配出一个脉冲后作一次减1运算。最终判别也在主程序中进行。2)5AH、5BH中存放对应当前频率的定时常数,在升降速过程中作加1或减1修改;18H、19H中存放对应启动频率f0的定时常数;1AH、1BH中存放对应最高运行频率fmax的定时常数。3)当至终点距离为03FFH个脉冲当量时,步进电机开始减速。当频率减到启动频率f0后,步进电机恒速趋近终点,然后制动。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1