步進電機的仿真原理圖:
單片機匯編語言程序:
- ORG 0000H
- MOV R0,#03AH
- START:JB P1.0, LP ;如果p。為1則正傳 否則就反轉
- CALL FZ
- JMP START
- LP:CALL ZZ
- JMP START
-
- ZZ: MOV P2,#01H
- CALL L1
- MOV P2,#03H
- CALL L1
- MOV P2,#02H
- CALL L1
- MOV P2,#06H
- CALL L1
- MOV P2,#04H
- CALL L1
- MOV P2,#0cH
- CALL L1
- MOV P2,#08H
- CALL L1
- RET
- FZ: MOV P2,#08H
- CALL L1
- MOV P2,#0cH
- CALL L1
- MOV P2,#04H
- CALL L1
- MOV P2,#06H
- CALL L1
- MOV P2,#02H
- CALL L1
- MOV P2,#03H
- CALL L1
- MOV P2,#01H
- CALL L1
-
- RET
-
-
-
- L1: JB P1.1 ,LP2 ; 如果為0則向下執行加速
- DJNZ R0,LP2 ; 加速 否澤跳 lp2
- MOV R0,#01H
- JMP LP2
- LP2:JB P1.2,L2 ; 如果為0則向下執行減速
- CJNE R0,#0FFH ,LPP2 ;減速最大值
- JMP L2
- LPP2:INC R0 ;減速
- JMP L2
-
- L2: MOV A,R0 ;延時程序
- MOV P3 ,R0
- LPP: MOV R2,#0FFH
- DJNZ R2,$
- DJNZ R0,LPP
- MOV R0,A
- RET
- END
復制代碼
|