📄 5-5.asm
字号:
DATA SEGMENT
DAP EQU 2A0H
T0 EQU 290H
T1 EQU 291H
T2 EQU 292H
CTL EQU 293H
PA EQU 280HPB EQU 281H
PC EQU 282H
CTL1 EQU 283H
DATA ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA
START:
XOR AX,AX
MOV AX,DATA
MOV DS,AX
;--8253---------------------
MOV DX,CTL
MOV AL,27H ;写控制字
OUT DX,AL
MOV AL,10H
MOV DX,T0 ;写时间常数
OUT DX,AL
MOV DX,CTL
OUT DX,AL
MOV AL,10H
MOV DX,T1 ;写时间常数
OUT DX,AL
;---------8255-----------
MOV DX,CTL1
MOV AL,81H ;写控制字
OUT DX,AL
;---------------------------
MOV DX,DAP
L0: MOV AL,00H
F1: OUT DX,AL
;------------延时-----------
CALL DELAY
ADD AL,8
CMP AL,80H
JZ S1
JMP F1
S1: MOV SI,16 S2: DEC SI
OUT DX,AL
;------------延时-----------
CALL DELAY
CMP SI,0H
JZ P1
JMP S2
P1: OUT DX,AL
;------------延时-----------
CALL DELAY
SUB AL,8
CMP AL,0H
JZ L0
JMP P1
RET
MAIN ENDP
DELAY PROC NEAR
D1: MOV DX,PC ;从PC0读一个负脉冲
IN AL,DX
TEST AL,01H;下降沿
JNZ D1
D2: IN AL,DX ;上降沿
TEST AL,01H
JZ D2
RET
DELAY ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -