步进电机加速-匀速-减速运行程序(ASM)
功能:
????步进电机以加速方式启动,转速达到程序规定的最快速度后保持一段时间匀速运转,又开始以减速
方式运行直到步进电机停止转动。由K1键控制演示程序运行。步进电机模块上D1-D4可以指示工作状态。
?;/******************************************************************/
?;/*???????????????????????????????????????????????????????????????
?;/*?ME300B单片机开发系统演示程序?-?步进电机加减速运行程序??????????
?;/*????????????????????????????????????????????????????????????????
?;/*?步进电机启动时,转速由慢到快逐步加速。?????????????????????????
?;/*?步进电机匀速运行???????????????????????????????????????????????
?;/*?步进电机由快到慢逐步减速???????????????????????????????????????
?;/*??????????????????????????????????????????????????????????????????????????????????????????????????
?;/*?网站:?http:?;??????????????????????????????????????????????????????????????????????????
?;/*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!??????
?????????????????????????????????????????????????????????
?;/*********************************************************/
?;?步进电机步进角为?7.5度,一圈?360?度。
?;?双四拍工作方式:
?;?AB-BC-CD-DA?(即一个脉冲,转?7.5?度)
?;?单双八拍工作方式:
?;?A-AB-B-BC-C-CD-D-DA?(即一个脉冲,转?3.75?度)
?;-------------------------------------------------------
?;?A组线圈对应?P1.0????(桔色)
?;?B组线圈对应?P1.1????(棕色)
?;?C组线圈对应?P1.2????(黄色)
?;?D组线圈对应?P1.3????(黑色)
?;-------------------------------------------------------
??????????RATE??EQU??50H
??????????BEEP??BIT??P3.7
??????????K1????BIT??P1.4
?;-------------------------------------------------------
??????????ORG?0000H
??????????LJMP?MAIN
??????????ORG?0030H
?;----------------?---------正转-------------------------
MAIN:
???????????MOV??SP,#60H
???????????MOV??P1,#0F0H
???????????MOV??RATE,#10H
???????????JB???K1,$
???????????ACALL?BEEP_BL
?;-------------------------------------------------------
?;加速启动过程
?;-------------------------------------------------------???????????
FFW_RISE:
???????????MOV?R0,#00H
FFW1:
???????????MOV?A,R0
???????????MOV?DPTR,#TABLE_F??????;选择工作方式
???????????MOVC?A,@A+DPTR
???????????MOV?P1,A
???????????LCALL?DELAY
???????????INC?R0
???????????JNZ??FFW1
???????????MOV?R0,#00H
???????????MOV??A,RATE
???????????DEC??A
???????????MOV??RATE,A
???????????CJNE??A,#1,FFW1
???????????
?;---------------------------------------------------
?;匀速运行过程
?;---------------------------------------------------
FFW_CONSTANT:???????????
???????????MOV??R1,#0FFH
FFW2:???????????
???????????MOV?A,R0
???????????MOV?DPTR,#TABLE_F??????;选择工作方式
???????????MOVC?A,@A+DPTR
???????????MOV?P1,A
???????????LCALL?DELAY
???????????INC?R0
???????????JNZ??FFW2
???????????MOV?R0,#00H??????????
???????????DJNZ??R1,FFW2
?;---------------------------------------------------
?;减速停止过程
?;---------------------------------------------------?????????
FFW_FALL:
???????????MOV?R0,#00H
FFW3:???????????
???????????MOV?A,R0
???????????MOV?DPTR,#TABLE_F??????;选择工作方式
???????????MOVC?A,@A+DPTR
???????????MOV?P1,A
???????????LCALL?DELAY
???????????INC?R0
???????????JNZ??FFW3
???????????MOV?R0,#00H
???????????MOV??A,RATE
???????????INC??A
???????????MOV??RATE,A
???????????CJNE??A,#10H,FFW3
???????????
???????????JMP??MAIN
????????????
?;-------------------------------------------------------
?;?延时子程序
?;-------------------------------------------------------
DELAY:
???????????MOV???R5,RATE
DEL2:
???????????MOV???R7,#5
DEL3:
???????????MOV???R6,#250
???????????DJNZ??R6,$
???????????DJNZ??R7,DEL3
???????????DJNZ??R5,DEL2
???????????RET
???????????
?;-------------------------------------------------------
?;蜂鸣器响一声子程序
?;-------------------------------------------------------
BEEP_BL:
?????????MOV??R6,#100
??BL1:
?????????CALL??DEX1
?????????CPL??BEEP
?????????DJNZ??R6,BL1
?????????RET
?DEX1:
?????????MOV??R7,#180
?DEX2:
?????????NOP
?????????DJNZ??R7,DEX2
?????????RET
?;-------------------------------------------------------
?;?单双八拍工作方式
TABLE_F:???;正转表
????????DB??0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H
????????DB??00
TABLE_R:???;反转表
????????DB??0F9H,0F8H,0FCH,0F4H,0F6H,0F2H,0F3H,0F1H
????????DB??00
?;-------------------------------------------------------
?;?双四拍工作方式:
TABLE1:
????????DB???03H,06H,0cH,09H???;正转表
????????DB???00???;正转结束
TABLE2:
????????DB???09H,0CH,06H,03H???;反转表
????????DB???00???;反转结束
?;-------------------------------------------------------
????????END
评论