📄 main.asm
字号:
DC0809 EQU 1400H
8255 EQU 1440H
STACK SEGMENT STACK
DB 100 DUP(?)
STACK ENDS
DATA SEGMENT PUBLIC
frequency DB ? ;the speed of stepping motor and singing
sequnce DB 05H,0CH,0AH,03H ;the driver of stepping motor
index DB 0H ;the index of array
direction DB 0H ;rotate direction
DATA ENDS
CODE SEGMENT PUBLIC
ASSUME CS:CODE
main PROC FAR
start:
call initParallel
next:
MOV DX,1402H
OUT DX,AL
CALL delay
IN AL,DX
CALL delay
CALL getFrequency
MOV CL,frequency
MOV AH,0BH
INT 21H
CMP AL,0
JNZ exit
LOOP next
exit:
NOP
main ENDP
rotate PROC NEAR
MOV SI,index
MOV AL,sequnce[SI]
ADD SI,01H
MOV DX,8255
ADD DX,02H
OUT DX,AL
rotate ENDP
initParallel PROC NEAR
PUSH DX
PUSH AX
MOV DX,DC0809
ADD DX,03H
MOV AL,01H
OUT DX,AL
NOP
POP AX
POP DX
RET
initParallel ENDP
delay PROC NEAR
MOV CX,30H
count:
NOP
LOOP count
RET
delay ENDP
getFrequency PROC NEAR
PUSH DX
PUSH AX
MOV DX,1400H
OUT DX,AL
CALL delay
IN AL,DX
CALL delay
MOV frequency,AL
POP AX
POP DX
RET
getFrequency ENDP
setFrequency PROC NEAR
setFrequency ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -