8255单独控制步进电机

;单独用8255驱动步进电机转动,A口输入控制信号00、01、11,所对应的转速越来越快,B口输出控制步进电机转动
 ;实现转速调整是通过调整延迟参数来实现的
 CODE    SEGMENT
 ASSUME CS:CODE
 START:  PUSH CS
 POP DS ;数据段和代码段共用一个段地址
 JMP MAIN
 DAT DW 0AFFH  ;定义延迟参数DAT
 NUM DB 08H,04H,02H,01H ;定义控制步进电机的循环信号
 MAIN:   MOV DX,021BH; 初始化8255,A口输入,B口输出
 MOV AL,90H
 OUT DX,AL
 MOV BX,OFFSET NUM;取循环信号的偏移地址
 MOV SI,0         ;控制计数器归零
 ;------步进电机控制信号循环-----
 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调整延迟参数DAT
 CMP AL,01H
 JZ NEXT2     ;若信号为01,则转至NEXT2调整延迟参数DAT
 CMP AL,03H
 JZ NEXT3     ;若信号为11,则转至NEXT3调整延迟参数DAT
 MOV CX,DAT
 LOOP $
 JMP LOP
 ;------控制信号循环结束-----
 NEXT1:  MOV DAT,0AFFH
 JMP LOP
 NEXT2:  MOV DAT,08FFH
 JMP LOP
 NEXT3:  MOV DAT,05FFH
 JMP LOP
 CODE    ENDS
 END START
以上是8255单独控制步进电机的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>