一. 实验要求
通过8253的通道1和通道2级联,clk1输入时钟信号为420kHz,使out2 每隔1s,通过不可屏蔽引脚NMI产生中断,依次轮流点亮8盏LED灯。
二. 实验代码
DATA SEGMENT
LIGHT_ADD EQU 200H
LIGHT_STATUS DB 11111110B
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEGIN:
MOV AX,DATA
MOV DS,AX
NMI_INIT:
PUSH ES
XOR AX,AX
MOV ES,AX
MOV AL,02H
XOR AH,AH
SHL AX,1
SHL AX,1
MOV SI,AX
MOV AX,OFFSET NMI_SERVICE
MOV ES:[SI],AX
INC SI
INC SI
MOV BX,CS
MOV ES:[SI],BX
POP ES
MOV DX,406H
MOV AL,01110110B
OUT DX,AL
MOV DX,402H
MOV AX,348H
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,406H
MOV AL,10110000B
OUT DX,AL
MOV DX,404H
MOV AX,1f4H
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,LIGHT_ADD
MOV AL,LIGHT_STATUS
OUT DX,AL
JMP $
MOV AH,4CH
INT 21H
NMI_SERVICE PROC FAR
MOV DX,LIGHT_ADD
MOV AL,LIGHT_STATUS
ROL AL,1
OUT DX,AL
MOV LIGHT_STATUS,AL
MOV DX,406H
MOV AL,10110000B
OUT DX,AL
MOV DX,404H
MOV AX,1f4H
OUT DX,AL
MOV AL,AH
OUT DX,AL
IRET
NMI_SERVICE ENDP
CODE ENDS
END BEGIN
(只提供代码,不提供代码注释)
三. 实验结果
如需要电路原理图和详细的实验报告,请自行点击下面网址付积分查看。