標題: 求看下這段程序怎么改才能自如控制兩個電機 [打印本頁]

作者: highsolitude    時間: 2017-12-28 15:52
標題: 求看下這段程序怎么改才能自如控制兩個電機
ORG 1000H

MAINZ: MOV R2,#04H     ;設(shè)置步進電動機運行方式四拍
LOOPZ: JB P0.5,LOOPZ   ;Z啟停按鈕是否按下      
JB P0.4,POSZ     ;是否為正轉(zhuǎn)      
AJMP NEGZ        ;否則為反轉(zhuǎn)

POSZ:MOV DPTR,#TABLE1        ;正轉(zhuǎn)
LOOP1Z:CLR A
MOVC A,@A+DPTR      
MOV P2,A
INC DPTR      
JNB P0.3,LOOP2Z    ;是否提速      
MOV R5,#2      
ACALL DELAY
LOOP2Z:MOV R5,#1      
ACALL DELAY      
DJNZ R2,LOOP1Z      
AJMP MAINZ

NEGZ:  MOV DPTR,#TABLE2;反轉(zhuǎn)
LOOP3Z:CLR A      
MOVC A,@A+DPTR      
MOV P2,A   
INC DPTR      
JNB P0.3,LOOP4Z   ;是否提速      
MOV R5,#10      
ACALL DELAY
LOOP4Z:MOV R5,#1      
ACALL DELAY      
DJNZ R2,LOOP3Z      
AJMP MAINZ


MAINX: MOV R4,#04H     ;設(shè)置步進電動機運行方式四拍
LOOP: JB P0.2,LOOP   ;啟停按鈕是否按下      
JB P0.1,POS     ;是否為正轉(zhuǎn)      
AJMP NEG        ;否則為反轉(zhuǎn)

POS:MOV DPTR,#TABLE1        ;正轉(zhuǎn)
LOOP1:CLR A
MOVC A,@A+DPTR      
MOV P1,A      
INC DPTR      
JNB P0.0,LOOP2    ;是否提速      
MOV R5,#2      
ACALL DELAY
LOOP2:MOV R5,#1      
ACALL DELAY      
DJNZ R4,LOOP1      
AJMP MAINX

NEG:  MOV DPTR,#TABLE2;反轉(zhuǎn)
LOOP3:CLR A      
MOVC A,@A+DPTR      
MOV P1,A      
INC DPTR      
JNB P0.0,LOOP4   ;是否提速      
MOV R5,#10      
ACALL DELAY
LOOP4:MOV R5,#1      
ACALL DELAY      
DJNZ R4,LOOP3      
AJMP MAINX

TABLE1:DB  03H,06H,0CH,09H
TABLE2:DB  03H,09H,0CH,06H





DELAY:MOV R7,#200      
NOP
DEL1: MOV R6,#123
DEL2: DJNZ R6,DEL2      
DJNZ R7,DEL1                  
DJNZ R5,DELAY ;延時[1+(1+1+2*123+2*200+2]*R5  um
即0.5s實現(xiàn)30r/min或0.05s實現(xiàn)300r/min        
RET      
END





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1