;單獨用8255驅動步進電機轉動,A口輸入控制信號00、01、11,所對應的轉速越來越快,B口輸出控制步進電機轉動
;實現(xiàn)轉速調整是通過調整延遲參數(shù)來實現(xiàn)的
CODE SEGMENT
ASSUME CS:CODE
START: PUSH CS
POP DS ;數(shù)據(jù)段和代碼段共用一個段地址
JMP MAIN
DAT DW 0AFFH ;定義延遲參數(shù)DAT
NUM DB 08H,04H,02H,01H ;定義控制步進電機的循環(huán)信號
MAIN: MOV DX,021BH; 初始化8255,A口輸入,B口輸出
MOV AL,90H
OUT DX,AL
MOV BX,OFFSET NUM;取循環(huán)信號的偏移地址
MOV SI,0 ;控制計數(shù)器歸零
;------步進電機控制信號循環(huán)-----
LOP: MOV DX,219H
MOV AL,[BX+SI]
OUT DX,AL
INC SI
CMP SI,04H
JNZ NEXT
MOV SI,0
;-------檢測A口輸入信號-------
NEXT: MOV DX,218H
IN AL,DX
CMP AL,00H
JZ NEXT1 ;若信號為00,則轉至NEXT1調整延遲參數(shù)DAT
CMP AL,01H
JZ NEXT2 ;若信號為01,則轉至NEXT2調整延遲參數(shù)DAT
CMP AL,03H
JZ NEXT3 ;若信號為11,則轉至NEXT3調整延遲參數(shù)DAT
MOV CX,DAT
LOOP $
JMP LOP
;------控制信號循環(huán)結束-----
NEXT1: MOV DAT,0AFFH
JMP LOP
NEXT2: MOV DAT,08FFH
JMP LOP
NEXT3: MOV DAT,05FFH
JMP LOP
CODE ENDS
END START