步進(jìn)電機(jī)加速-勻速-減速運(yùn)行程序(ASM)
功能:
????步進(jìn)電機(jī)以加速方式啟動(dòng),轉(zhuǎn)速達(dá)到程序規(guī)定的最快速度后保持一段時(shí)間勻速運(yùn)轉(zhuǎn),又開(kāi)始以減速
方式運(yùn)行直到步進(jìn)電機(jī)停止轉(zhuǎn)動(dòng)。由K1鍵控制演示程序運(yùn)行。步進(jìn)電機(jī)模塊上D1-D4可以指示工作狀態(tài)。
?;/******************************************************************/
?;/*???????????????????????????????????????????????????????????????
?;/*?ME300B單片機(jī)開(kāi)發(fā)系統(tǒng)演示程序?-?步進(jìn)電機(jī)加減速運(yùn)行程序??????????
?;/*????????????????????????????????????????????????????????????????
?;/*?步進(jìn)電機(jī)啟動(dòng)時(shí),轉(zhuǎn)速由慢到快逐步加速。?????????????????????????
?;/*?步進(jìn)電機(jī)勻速運(yùn)行???????????????????????????????????????????????
?;/*?步進(jìn)電機(jī)由快到慢逐步減速???????????????????????????????????????
?;/*??????????????????????????????????????????????????????????????????????????????????????????????????
?;/*?網(wǎng)站:?http://m.makelele.cn?;??????????????????????????????????????????????????????????????????????????
?;/*【聲明】此程序僅用于學(xué)習(xí)與參考,引用請(qǐng)注明版權(quán)和作者信息!??????
?????????????????????????????????????????????????????????
?;/*********************************************************/
?;?步進(jìn)電機(jī)步進(jìn)角為?7.5度,一圈?360?度。
?;?雙四拍工作方式:
?;?AB-BC-CD-DA?(即一個(gè)脈沖,轉(zhuǎn)?7.5?度)
?;?單雙八拍工作方式:
?;?A-AB-B-BC-C-CD-D-DA?(即一個(gè)脈沖,轉(zhuǎn)?3.75?度)
?;-------------------------------------------------------
?;?A組線(xiàn)圈對(duì)應(yīng)?P1.0????(桔色)
?;?B組線(xiàn)圈對(duì)應(yīng)?P1.1????(棕色)
?;?C組線(xiàn)圈對(duì)應(yīng)?P1.2????(黃色)
?;?D組線(xiàn)圈對(duì)應(yīng)?P1.3????(黑色)
?;-------------------------------------------------------
??????????RATE??EQU??50H
??????????BEEP??BIT??P3.7
??????????K1????BIT??P1.4
?;-------------------------------------------------------
??????????ORG?0000H
??????????LJMP?MAIN
??????????ORG?0030H
?;----------------?---------正轉(zhuǎn)-------------------------
MAIN:
???????????MOV??SP,#60H
???????????MOV??P1,#0F0H
???????????MOV??RATE,#10H
???????????JB???K1,$
???????????ACALL?BEEP_BL
?;-------------------------------------------------------
?;加速啟動(dòng)過(guò)程
?;-------------------------------------------------------???????????
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
???????????
?;---------------------------------------------------
?;勻速運(yùn)行過(guò)程
?;---------------------------------------------------
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
?;---------------------------------------------------
?;減速停止過(guò)程
?;---------------------------------------------------?????????
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
????????????
?;-------------------------------------------------------
?;?延時(shí)子程序
?;-------------------------------------------------------
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:???;正轉(zhuǎn)表
????????DB??0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H
????????DB??00
TABLE_R:???;反轉(zhuǎn)表
????????DB??0F9H,0F8H,0FCH,0F4H,0F6H,0F2H,0F3H,0F1H
????????DB??00
?;-------------------------------------------------------
?;?雙四拍工作方式:
TABLE1:
????????DB???03H,06H,0cH,09H???;正轉(zhuǎn)表
????????DB???00???;正轉(zhuǎn)結(jié)束
TABLE2:
????????DB???09H,0CH,06H,03H???;反轉(zhuǎn)表
????????DB???00???;反轉(zhuǎn)結(jié)束
?;-------------------------------------------------------
????????END
電子發(fā)燒友App







評(píng)論