由于本人要把这段代码背下来,求讲解的越详细越好,每部都是干什么用的。最后简单总结下8255和A/D转换器结合实现了什么功能。
题目:8255地址信息为0378H---037BH,A B C这三个端口均工作方式0,A口作为输入口,输入转换后的结果;B口输出,用来输出通道地址,发出第之所存信号和启动转换信号;C口低4位为输入口,用来读取转换状态,高4位没有使用。
INIT_8255 PROC NEAR
MOV DX,037BH
MOV AL,91H
OUT DX,AL
RET
INIT_8255 ENDP
数据采集:
START:MOV AX,SEG DATA
MOV DS,AX
MOV SI,OFFSET DATA
CALL INIT_8255; 初始化8255
MOV BL,0
MOV CX,8
AGAIN:MOV AL,BL
MOV DX,0379H
OUT DX,AL
OR AL,10H
OUT DX,AL
AND AL,0EFH
OUT DX,AL
NOP
MOV DX,037AH
WAIT1:IN AL,BL
AND AL,02H
JZ WAIT1
MOV DX,0379H
MOV AL,BL
OR AL,20H
OUT DX,AL
MOV DX,0378H
IN AL,DX
MOV [SI],AL
INC SI
INC BL
LOOP AGAIN
MOV DX,0379H
MOV AL,0
OUT DX,AL
HLT