四相步进电机地控制.doc

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

四相步进电机的控制 作者:未知 文章来源:本站原创 点击数:622 更新时间:2004-12-7 ;注:本程序为四相步进电机实验用,适于四组线圈的电机。 ;电路接法:P1.7 P1.6 P1.5 P1.4分别接晶体管驱动器A,B,C,D输入端, ; 相应输出端接步进电机的a,b,c,d四相,电机公共端接步进电机 ; 电源正。 ;******************************************************************* ? ORG 0000H ;让编译程序从0地址开始 JMP STAR ORG 0030H ? STAR: MOV SP,#30H ;堆栈指针设定 MOV 21H,#00H ;初始步调清零(0-7)有效 MOV 20H,#4 ;速度选择1至255(1最大) MOV A, #200 ;转200步 LOOP: MOV R3,#4 ;执行4次 L1: CALL BJDJ_4Z; ;正转 DJNZ R3,L1 MOV R3, #10 ;停止一秒 L2: CALL YS_01S ;延时2 ms DJNZ R3,L2 MOV R3, #4 ;执行4次 L3: CALL BJDJ_4F ;正转 DJNZ R3,L3 MOV R3, #10 ;停止一秒 L4: CALL YS_01S DJNZ R3,L4 JMP LOOP ? PROC YS_01S, YS_20MS ;延时子程序定义 YS_01S: MOV R7,#10 ;R7中送入数值10 LP3: MOV R6,#100 ;R6中送入数值100 LP2: MOV R5,#100 ;R5中送入数值100 LP1: DJNZ R5,LP1 ;R5减1不为0转LP1 DJNZ R6,LP2 ;R6减1不为0转LP2 DJNZ R7,LP3 ;R7减1不为0转LP3 RET ;子程序返回 YS_20MS: MOV R7,#1 ;R7中送入数值1 JMP LP3 ;转到LP3 END ;子程序编译结束 ? ? ;****************步进电机控制子程序************************* ;作用:四相步进电机角度及速度控制 ;使用方法:先在速度寄存单元20H写入速度值1至255(1最快) 将要转过的步数写入A(1-255),调用该正转或反转子程序。 ;电路接法: P1.7, P1.6 ,P1.5, P1.4分别接晶体管驱动器A,B,C,D输入端, ; 相应输出端接步进电机的a,b,c,d四相,电机公共端接步进电机 ; 电源正。 ;资源占用: 20H-速度,21H-步调,R0,B,DPTR ? PROC BJDJ_4Z,BJDJ_4F BJDJ_4Z: PUSH A MOV R0,A ;步进数送R0 MOV DPTR,#MTAB ;控制码地址送DPTR MOV A, P1 ;P1口状态送A ANL A,#0FH ;清零高四位 MOV B,A ;保存P1口低四位状态 ? LP2: INC 21H ;步调数加1

文档评论(0)

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

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

1亿VIP精品文档

相关文档