单片机控制四相步进电机实例+.docVIP

  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文档。上传文档
查看更多
89C51单片机控制实例 一、实物图 二、原理图 三、参考程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;功能:测试步进电机程序,可以测试不用的相电机,本例只给出测4相电机的程序,其它可以相继加入操作:使用4个按钮来操作,1个正转,1个反转,1个停止,1个选择不同的相电机,在电机停止的时,可可以设定不同的相电机程序。 ;使用资源3.2正转,p3.3反转,p3.4停止 P3.5设定相电机,步进电机接p1.0 p1.1 p1.2 p1.3 ;使用单片机:AT89C51 PRONUM EQU 30H ;定义要测定那个电机程序 ORG 00h JMP MAIN ORG 0030H ;-------------------------- MAIN: MOV SP,#07H MOV PRONUM,#04H ;初始化数码管的显示数据 CLR P2.0 ;使数码管处于可用状态 PRO: ;要求运行的的数码,如果是4则运行四相电机,3则是三相电机 LCALL DISP MOV A,PRONUM CJNE A,#04H,PRO1;这里可以增加别的电机调试程序 JMP LOOP PRO1: JNB p3.5,ADDPRO ; 如果p3.5按下跳到下一个程序中执行 JMP PRO stp: ORL p1,#0ffh ; 步进电机停止 LOOP: JNB p3.2,for2 ; 如果p3.2按下正转 JNB p3.3,rev2 ; 如果p3.3按下反转 JNB p3.4,stop1 ; 如果p3.4按下停止 JNB p3.5,ADDPRO ; 如果p3.5按下跳到下一个程序中执行 LCALL DISP JMP LOOP ;反复监测键盘 ;------------------ DISP: MOV A,PRONUM MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV P0,A RET ;--------------------------程序跳转 ADDPRO: CALL delay ; 按p3.4的消除抖动 JNB p3.5,$ ; p3.4放开否? CALL delay ;放开消除抖动 MOV A,PRONUM INC A CJNE A,#0AH,ADDPRO1 MOV A,#00H ADDPRO1:MOV PRONUM,A JMP PRO ;---------------------------- for2: CALL delay ; 按p3.2的消除抖动 JNB p3.2,$ ; p3.2放开否? CALL delay ;放开消除抖动 MOV r0,#00h ;正转到tab取码指针初值 for1: MOV a,r0 ;取码 MOV dptr,#table1 ; MOVC a,@a+dptr CPL a ;把acc反向 MOV p1,a ;输出到p1开始正转 JNB p3.4,stop1 ; 如果p3.4按下停止 JNB p3.3,rev2 ; 如果p3.3按下反转 CALL delay ;转动的速度 INC r0 ;取下一个码 CJNE R0,#4,FOR1 MOV R0,#0 JMP for1 ;继续正转 ;----------------------------- rev2: CALL delay ; 按p3.3的消除抖动 JNB p3.3,$ ; p3.3放开否? CALL delay ;放开消除抖动 MOV r0,#00h ;反转到tab取码指针初值 rev1: MOV a,r0 MOV dptr, #table2 ;取码 MOVC a, @a+dptr CPL a ;把acc反向 MOV p1,a ;输出到p1开始反转 JNB p3.4,stop1 ; 如果p3.4按下停止 JNB p3.3,rev2 ; 如果p3.3按下反转 CALL delay ;转动的速度 INC R0 ;取下一个码 CJNE R0,#4,FOR1 MOV R0,#0 JMP rev1 ;继续反转 ;------------------------------ stop1: CALL delay ; 按p3.4的消除抖动 JNB p3.4,$ ; p3.4放开否? CALL delay ;放开消除抖动 JMP STP ;---------------------------- delay: mov r1,#20 ;步进电机的转速20ms d1: mov r2,#248 djnz r2,$ djnz r1,d1 ret ;------------------------------ ta

文档评论(0)

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

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

1亿VIP精品文档

相关文档