;单独用8255驱动
转动,A口输入控制信号00、01、11,所对应的转速越来越快,B口输出控制步进
转动 ;实现转速调整是通过调整延迟参数来实现的 CODE SEGME
ASSUME CS:CODE START: PUSH CS
POP DS ;数据段和代码段共用一个段地址
JMP MAIN
DAT DW 0AF
;定义延迟参数DAT
NUM
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
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
,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
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。
自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。