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

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
步进电机的单片机控制系统软件设计

步进电机的单片机控制系统软件设计4.1 控制程序总体设计系统软件采用模块化程序设计,使程序流程清晰明了。系统主程序主要完成的内容:系统参数初始化、判断保护信号、打开中断启动电机。系统主程序流程图如下图4-1所示[1]。可以看出,主程序是一个死循环,在系统上电初始化完毕后,系统一直在不断的执行这个循环程序。在循环过程中,若产生中断,则程序就转去执行相应的中断服务程序。在后面将逐一介绍中断服务程序,功能子程序等的设计。图4-1主程序流程图步进电动机的速度控制通过控制单片机发出的步进脉冲频率来实现。对于用软件实现脉冲分配,可以采用调整两个控制字之间的时间间隔来实现调速。根据调速原理,控制步进电动机速度的方法可有两种:一、通过软件延时的方法。改变延时的时间长度就可以改变输出脉冲的频率,但这种方法使CPU长时间等待,占用大量机时,因此没有实用价值。二、通过定时器中断的方法。在中断服务子呈现中进行脉冲输出操作,调整定时器的定时常数就可以实现调速。本系统软件延时的方法实现调速,从HSO.0通道输出连续脉冲信号。在50H单元存放脉冲处于“1”电平时间值(单位为2 ),52H单元存放脉冲处于“0”电平时间值(单位为2 )。改变50H和52H单元的内容,就可以改变脉冲输出的频率及占空比。程序如下:主程序ORG 2080HOUPSS: LD SP,#00C0H;设栈指针 DI ;关中断 ORB INT-MASK,#8H;允许HSO中断 LD TEMP,#HSO-INT;送HSO中断服务程序入口地址 ST TEMP,2006H[0] ADD54H,T1,52H;计算上跳变时刻 SCALL LDCAM ;调CAM装载子程序 EI ;开中断HERE: SJMP HERE ;等待中断中断服务程序HSO-INT: PUSHF;保护PSW,同时清PSW SCALL LDCAM ;调CAM装载子程序 POPF ;恢复PSW RET ;返回主程序CAM装载子程序LDCAM: LDBHSO-COMMAND,#20H ;1→HSO.0 LD HSO-TIME,54H ADD 54H,50H ;计算下跳变时刻 NOP NOP ;空操作 LDB HSO-COMMAND,#10H ;0→HSO.0,并产生HSO中断 LD HSO-TIME,54H ADD 54H,52H ;计算上跳变时刻 RET其它高速输出口(HSO)的连续脉冲信号的产生程序可依据如上程序写入。这样可通过改变输出脉冲的频率达到控制步进电动机速度和方向。4.2 键盘/显示器的自动扫描8279是Intel公司生产的通用可编程键盘和显示器I/O接口芯片。利用8279,可实现对键盘/显示器的自动扫描,并识别键盘上闭合键的键号,这样可以大大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现误动作。主程序框图如下图4-2所示图4-2主程序框图图4-3中断服务子程序框图;主程序STATUSEQU 7FFFHDATAEQU 7FFEHAXEQU 20HAL EQU 20HAH EQU 21HBX EQU 22HBL EQU 22HBH EQU 23HCX EQU 24HCLEQU 24HCH EQU 25HDXEQU 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,#0DEH STB BL,STATUS[R0] LD BL,#00H STB BL,STATUS[R0] LDB BL,#34H STB BL,STATUS[R0] LDB AH,#00H LDB AL,#00H LDB AH,#00H EI中断服务程序 LDB BL,#40H STB BL,STATUS[R0] LDB BL,DATA[R0]STB BL,[EL]CLRCSUBB BL,#38HJC L1LDB BL,[AH]SHRB BL,#01HJNC L2INCB ALLDB BL,[AL]SHRB BL,#01HJC L3LDB BL,[EL]STB BL,[EH]INCB [FL]L8:

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档