📄 pwm.asm
字号:
;FILENAME:PWM.ASM
;内容: PWM脉宽调制(小直流电机转速控制实验)
PORT1 EQU 290H
PORT2 EQU 28BH
PORT3 EQU 28AH
DATA SEGMENT
BUF1 DW ?
BUF2 DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX, PORT2
MOV AL, 8BH
OUT DX, AL ;8255K口输入
LLL: MOV AL, 80H
MOV DX, PORT1
OUT DX, AL ;D/A 输出0V
PUSH DX
MOV AH, 06H
MOV DL, 0FFH
INT 21H
POP DX
JE INTK ;有无键按下
MOV AH, 4CH
INT 21H ;返回DOS
INTK: MOV DX, PORT3
IN AL, DX ;读开关状态
TEST AL, 01H
JNZ K0
TEST AL, 02H
JNZ K1
TEST AL, 04H
JNZ K2
TEST AL, 08H
JNZ K3
TEST AL, 10H
JNZ K4
TEST AL, 20H
JNZ K5
JMP LLL
K0: MOV BUF1, 0400H
MOV BUF2, 0330H ;置延时常数
DELAY: MOV CX, BUF1
DELAY1:
LOOP DELAY1
MOV AL, 0FFH
MOV DX, PORT1
OUT DX, AL ;D/A 输出5V
MOV CX, BUF2
DELAY2:
LOOP DELAY2
JMP LLL
K1: MOV BUF1, 0400H
MOV BUF2, 0400H
JMP DELAY
K2: MOV BUF1, 0400H
MOV BUF2, 0500H
JMP DELAY
K3: MOV BUF1, 0400H
MOV BUF2, 0600H
K4: MOV BUF1, 0400H
MOV BUF2, 0700H
JMP DELAY
K5: MOV BUF1, 0400H
MOV BUF2, 0800H
JMP DELAY
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -