单片机与mpc运动控制模块组成的三轴运动控制系统.docVIP

单片机与mpc运动控制模块组成的三轴运动控制系统.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机与mpc运动控制模块组成的三轴运动控制系统单片机与mpc运动控制模块组成的三轴运动控制系统.doc

MPC微型运动控制模块  PAGE 18 单片机与mpc运动控制模块组成的三轴运动控制系统 摘要:采用单片机stc89C2051和mpc微型运动控制模块作为控制系统的核心,控制三路步进电机做运动实验。单片机发送指令给mpc微型运动控制模块,模块信号输出给步进驱动器作高速度运动。可以定点运动,直线插补和圆弧插补。 1.引言 运动控制的应用在国内已有十几年的历史,技术也相当成熟。通常运动控制都需要用到运动控制卡,运动控制器等产品,但这些产品价格高昂,使用复杂,也不适合由单片机构成的控制系统。而如果直接采用单片机来做运动控制,由于运动控制对系统性能要求非常高,单片机速度资源有限,难以设计出性能优良的运动控制模型。因此,本文采用单片机和专业的mpc微型运动控制模块构成运动控制系统。 MPC微型运动控制模块采用新型FPGA设计,集成实用运动控制功能,可与普通单片机通过串口通讯对步进电机和伺服电机控制。具有如下特点: ◆ 串口通讯,仅需使用几条指令,简单可靠。 ◆ 单模块最高六轴输出,多个模块组网工作可达120轴。 ◆ 最大脉冲输出频率为2MHz,脉冲输出使用脉冲+方向方式。 ◆ 最高六轴独立运动控制,任意两轴直线插补,任意两轴圆弧插补。 ◆ 每轴一路硬件回原点。 ◆ 模块带1000级指令缓存深度,指令先进先出。 ◆ 模块体积小巧,仅3.5*2.5*1.5cm,双排直插30脚。 2,系统硬件设计 硬件系统由四部分构成: 单片机部分 单片机与模块只需三根线连接,用作串口通讯的RXD和TXD,用作模块缓存满输出的BUSY信号。P3.7引出一按键作为测试使用。 mpc微型运动控制模块部分 mpc微型运动控制模块采用5V电源供电,RXD,TXD,BUSY与单片机连接。X0,X1,X2可作为三路电机的原点信号,P1,D1为1轴的脉冲和方向信号。P2,D2为2轴的脉冲和方向信号。P3,D3为3轴的脉冲和方向信号。 (3)原点信号输入部分 原点采用光藕隔离输入,输入端可接NPN型光电开关来作为原点信号。 信号输出部分 输出采用NPN晶体管极电极开路输出,分别接到电机驱动器脉冲和方向信号输入端。 3,系统软件设计 MPC微型运动控制模块与单片机串口通讯速率为115200bps,数据位为8位,停止位0位,无校验。使用函数前先设置好单片机的串口功能,并将需要用到的函数的原型拷贝到当前程序内。 试验程序如下: #include reg52.h //STC89C2051 sfr IPH =0XB7; sfr CCON =0XD8; sfr CMOD =0XD9; sfr CL =0XE9; sfr CH =0XF9; sfr CCAP0L =0XEA; sfr CCAP0H =0XFA; sfr CCAPM0 =0XDA; sfr CCAPM1 =0XDB; sfr P3M1= 0XB1; sfr P3M0= 0XB2; sfr P1M1= 0X91; sfr P1M0= 0X92; sfr WAKE_CLKO= 0X8f; sfr BRT =0x9c; sfr AUXR =0x8E; sfr AUXR1 = 0xA2; sfr WDT_CONTR = 0xc1; sfr T2MOD = 0xC9; ////////////////// sbit busy = P3^2; sbit s1 = P3^7; void initial() { P3M1 = 0x00; P3M0 = 0x80; P1M1 = 0x00; P1M0 = 0xf9; } void init_uart() { PCON = 0x7f; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 BRT = 0xFD; //设定独立波特率发生器重装值 波特率115200bps AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T AUXR |= 0x01; //串口1选择独立波特率发生器为波特率发生器 AUXR |= 0x10; //启动独立波特率发生器 } /* 串口发送一个字节,需根据所使用的单片机作适当更改。 */ void USART_Txbyte(unsigned char i) { SBUF = i; wh

文档评论(0)

ganqludp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档