欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年步进电动机驱动程序 .pdf

    • 资源ID:39894016       资源大小:62.81KB        全文页数:8页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年步进电动机驱动程序 .pdf

    步进电机正转loop:mov R3,#0FFh ;30h送 ff即-1 main:INC R3 mov a,R3 tt:MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A ;送显示 mov r7,#5 dec r7 lcall delay ;延时一段时间 cjne a,#06H,main ;如果是最后一个数据重新开始 ljmp loop ;否则 R3 清除 ret TAB:DB 03H,09H,0CH,06H;步进电机正转表 DELAY:;延时程序MOV R5,#255 D3:MOV R2,#25 D4:DJNZ R2,D4 DJNZ R5,D3 RET ;步进电机控制程序p3.2 正转,p3.3反转,p3.4 停止步进电机接p1.0p1.1p1.2p1.3 org 00h stop:orl p1,#0ffh ;步进电机停止loop:jnb p3.2,for2 ;如果 p3.2 按下正转 jnb p3.3,rev2 ;如果 p3.3 按下反转 jnb p3.4,stop1 ;如果 p3.4 按下停止 jmp loop ;反复监测键盘for:mov r0,#00h ;正转到 tab 取码指针初值for1:mov a,r0 ;取码 mov dptr,#table ;movc a,a+dptr jz for ;是否到了结束码00h cpl a ;把 acc 反向 mov p1,a ;输出到 p1 开始正转 jnb p3.4,stop1 ;如果 p3.4 按下停止 jnb p3.3,rev2 ;如果 p3.3 按下反转 call delay ;转动的速度 inc r0 ;取下一个码 jmp for1 ;继续正转rev:mov r0,#05h ;反转到 tab 取码指针初值rev1:mov a,r0 mov dptr,#table ;取码 movc a,a+table jz rev ;是否到了结束码00h cpl a ;把 acc 反向 mov p1,a ;输出到 p1 开始反转 jnb p3.4,stop1 ;如果 p3.4 按下停止 jnb p3.3,rev2 ;如果 p3.3 按下反转 call delay ;转动的速度 inc r0 ;取下一个码名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -jmp rev1 ;继续反转stop1:call delay ;按 p3.4 的消除抖动 jnb p3.4,$;p3.4放开否?call delay ;放开消除抖动 jmp stop for2:call delay ;按 p3.2 的消除抖动 jnb p3.2,$;p3.2放开否?call delay ;放开消除抖动 jmp for rev2:call delay ;按 p3.3 的消除抖动 jnb p3.3,$;p3.3放开否?call delay ;放开消除抖动 jmp rev delay:mov r1,#40 ;步进电机的转速20ms d1:mov r2,#248 djnz r2,$djnz r1,d1 ret table:db 03h,09h,0ch,06h ;正转表 db 00 ;正转结束 db 03h,06h,0ch,09h ;反转 db 00 ;反转结束 end;步进电机正转,反转各3 圈org 00h x1:mov r3,#250 start:mov r0,#00h start1:mov p1,#0ffh mov a,r0 mov dptr,#table movc a,a+dptr jz start cpl a mov p1,a call delay inc r0 djnz r3,start1 mov r3,#250 start2:mov p1,#0ffh mov r0,#05 start3:mov a,r0 mov dptr,#table movc a,a+dptr jz start2 cpl a mov p1,a call delay 名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -inc r0 djnz r3,start3 jmp x1 delay:mov r5,#40;延时。d1:mov r6,#10 d2:mov r7,#18 djnz r7,$djnz r6,d2 djnz r5,d1 ret table:db 03h,09h,0ch,06h db 00 db 06h,0ch,09h,03h db 00 end ;步进电机正反快慢程序org 00h x1:mov r3,#48 ;一圈 48 步start:mov r0,#00h ;正转取码初值start1:mov p1,#0ffh ;先停止mov a,r0 mov dptr,#table movc a,a+dptr jz start ;是否到了结束码00?cpl a mov p1,a ;输出运转call delay ;调用慢速的延时转动inc r0 ;取码指针加1 取下一个码djnz r3,start1 ;是否走了 48步?mov r3,#48 ;是则重新设定48 步start2:mov p1,#0ffh mov r0,#05 ;逆转的取码初值start3:mov a,r0 mov dptr,#table movc a,a+dptr jz start2 cpl a mov p1,a call delay2 inc r0 djnz r3,start3 jmp x1 ;重复开始 DELAY:;延时程序(慢速)MOV R7,#255 D1:MOV R6,#50 D2:DJNZ R6,D2 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -DJNZ R7,D1 RET DELAY2:;延时程序(快速)MOV R5,#255 D3:MOV R2,#25 D4:DJNZ R2,D4 DJNZ R5,D3 RET table:db 03h,09h,0ch,06h ;正转表db 00 db 06h,0ch,09h,03h ;反转表db 00 end ;遥控电机程序,按遥控器 0-9 步进电机正转0-9 步,按遥控器11-19 步进电器分别反转;0-9步,同时数码管分别显示当前的数字!org 00h JMP MAIN ORG 30H MAIN:MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH START:JB P3.7,$;等待遥控信号出现SB:MOV R4,#8 ;8毫秒为高电平错误SBA:MOV R5,#250 SBB:JB P3.7,SXB1 DJNZ R5,SBB DJNZ R4,SBA MOV R4,#2 JMP SBC SXB1:MOV R5,#5 SXB2:;去掉 20US的尖峰干扰信号 JNB P3.7,SBB DJNZ R5,SXB2 JMP START SBC:MOV R5,#250 SB1:JB P3.7,SB2 ;2MS内不为高电平错误(监测9MS的低电平引导码)DJNZ R5,SB1 DJNZ R4,SBC JMP START 名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -SB2:;去掉 20US的尖峰干扰信号 MOV R5,#5 SB2_A:JNB P3.7,SB1 DJNZ R5,SB2_A MOV R4,#3 SB2_1:MOV R5,#250 SB3:;监测 4.5MS高电平,如3MS内出现低电平错误 JNB P3.7,SXC DJNZ R5,SB3 DJNZ R4,SB2_1 MOV R4,#2 JMP SB3_1 SXC:;去掉 20US的尖峰干扰信号 MOV R5,#5 SXC1:JB P3.7,SB3 DJNZ R5,SXC1 JMP START SB3_1:;监测 4.5MS高电平,如5MS 内不为低电平错误 MOV R5,#250 SB3_2:JNB P3.7,SB4 DJNZ R5,SB3_2 DJNZ R4,SB3_1 JMP START SB4:;去掉 20US的尖峰干扰信号 MOV R5,#5 SB4_1:JB P3.7,SB3_2 DJNZ R5,SB4_1 MOV R1,#1AH ;设定 1AH为起始 RAM 区 MOV R2,#4 PP:MOV R3,#8 JJJJ:MOV R5,#250 JJJJ2:;1MS内不为低电平错误 JB P3.7,JJJJ3 DJNZ R5,JJJJ2 JMP START JJJJ3:LCALL YS1 ;高电平开始后用882 微秒的时间尺去判断信号此时的高低电平状态 MOV C,P3.7 ;将 P3.7 引脚此时的电平状态0 或 1 存入 C中 JNC UUU ;如果为 0 就跳转到 UUU MOV R5,#250 JJJJ4:JNB P3.7,UUU NOP DJNZ R5,JJJJ4 JMP START UUU:MOV A,R1 ;将 R1中地址的给A RRC A ;将 C中的值 0 或 1 移入 A中的最低位 MOV R1,A ;将 A中的数暂时存放在R1中 DJNZ R3,JJJJ ;接收地址码的高8 位名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -INC R1 ;对 R1中的值加 1,换成下一个RAM DJNZ R2,PP ;接收完 16 位地址码和8 位数据码和8 位数据反码,存放在1AH/1BH/1CH/1DH的 RAM 中;以下对代码是否正确和定义进行识别 MOV A,1AH;比较高 8 位地址码 XRL A,#00000000B;判断 1AH的值是否等于00000000,相等的话A为 0 JNZ EXIT;如果不相等说明解码失败退出解码程序 MOV A,1BH;比较低 8 位地址 XRL A,#11111111B;再判断高 8 位地址是否正确 JNZ EXIT;如果不相等说明解码失败退出解码程序 LCALL YS3 MOV A,1CH;比较数据码和数据反码是否正确?CPL A XRL A,1DH ;将 1CH的值取反后和1DH比较 不同则无效丢弃,核对数据是否准确 JNZ EXIT;如果不相等说明解码失败退出解码程序 LCALL YS3 CLR P2.6 ;选中数码管 CLR P3.3;解码成功喇叭响?AJMP BIJIAO;判断在 118 毫秒内是否有连发码AA:MOV R1,#25 XX:ACALL YS2 JNB P3.7,HH;跳转到判断连发代码是否正确的程序段 DJNZ R1,XX EXIT:;对所有端口清零 AJMP START;连发码判断程序段-HH:MOV R6,#4 S:ACALL YS1;调用 882 微秒延时子程序 JB P3.7,EXIT;延时 882 微秒后判断P3.7 脚是否出现高电平如果有就退出解码程序 DJNZ R6,S;重复 4 次,目的是确认连发码的低电平信号波形 JNB P3.7,$;等待高电?LCALL YS3 AJMP AA BIJIAO:MOV R0,#18;一共 18 个按键 MOV DPTR,#TAB_REM;遥控键值查表LOOKUP_1:MOV A,R0 ;查表偏移量 MOVC A,A+DPTR XRL A,1cH ;比较键值 JZ REM_BAK0 ;相等转移 DJNZ R0,LOOKUP_1 ;直到 18 个健比较完毕 JMP EXIT ;都不对退出REM_BAK0:;键值处理 MOV A,R0 ;R0 MOV R1,A ;SUBB A,#9 ;如果大于 9 则反转并将值减去9 JC REM_BAK1 ;小余或等于9 到正转 INC A ;加 1 MOV R1,A ;查显示码表 MOV DPTR,#TABLE1 ;MOVC A,A+DPTR 名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -MOV P0,A ;送显示 CLR P2.6 ;开显示REM_REV:;反转程序 CALL REV CALL delay ;转速 DJNZ R1,REM_REV ;转动的步数到了停止 JMP AA REM_BAK1:;正转程序 NOP MOV A,R1 ;按键数值判断执 MOV DPTR,#TABLE1 ;查显示码表 MOVC A,A+DPTR MOV P0,A ;送显示 CLR P2.6 ;开显示REM_FOR:;正转 CALL FOR CALL DELAY DJNZ R1,REM_FOR JMP AA for:mov r0,#00h ;正转到 tab 取码指针初值for1:mov a,r0 ;取码 mov dptr,#table ;movc a,a+dptr jz FOREXT ;是否到了结束码00h cpl a ;把 acc 反向 mov p1,a ;输出到 p1 开始正转 call delay ;转动的速度 inc r0 ;取下一个码 jmp for1 ;继续正转rev:mov r0,#05h ;反转到 tab 取码指针初值rev1:mov a,r0 mov dptr,#table ;取码 movc a,a+table jz FOREXT ;是否到了结束码00h cpl a ;把 acc 反向 mov p1,a ;输出到 p1 开始反转 call delay ;转动的速度 inc r0 ;取下一个码 jmp rev1 ;继续反转FOREXT:RET YS1:MOV R4,#20 ;延时子程序1,精确延时882 微秒 D1:MOV R5,#20 DJNZ R5,$DJNZ R4,D1 RET YS2:MOV R4,#10 ;延时子程序2,精确延时4740 微秒 D2:MOV R5,#235 DJNZ R5,$DJNZ R4,D2 RET YS3:MOV R4,#2;延时程序 3,精确延时1000 微秒名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -D3:MOV R5,#248 DJNZ R5,$DJNZ R4,D3 RET TAB_REM:;遥控的键值 DB 00H DB 10H,03H,01H,06H,09H,1DH,1FH,0DH,19H DB 11H,15H,17H,12H,16H,4CH,40H,48H,04H delay:mov r3,#40 ;步进电机的转速20ms m3:mov r2,#248 djnz r2,$djnz r3,m3 ret TABLE1:db 28h,7eh,0a2h,62h,74h,61h,21h,7ah,20h,60h;数码管的码表 ;0 1 2 3 4 5 6 7 8 9 table:db 03h,09h,0ch,06h ;正转表 db 00 ;正转结束 db 03h,06h,0ch,09h ;反转 db 00 ;反转结束 end 名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -

    注意事项

    本文(2022年步进电动机驱动程序 .pdf)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开