流水灯实验:
使8255的A口和B口均为输出,数据灯D7-D0由左向右,每次仅亮一个灯,循环显示;D15-D8与D7-D0正相反,由右向左,每次仅亮一个灯。
cs接IOY0,所以A口地址为600H,B口为602H。在以前写的博文中若出现600H,则cs接了IOY0,若为640H,则cs接了IOY1.
下面为代码:
CODE SEGMENT
ASSUME SC:CODE
START: MOV DX,606H
MOV AL,80H;A口选择00方式,B口0方式
OUT DX,AL;送控制字
MOV CL,80H ;赋初值
MOV BL,1H ;赋初值
AA1:MOV DX,600H
MOV AL,CL
OUT DX,AL
MOV DX,602H
MOV AL,BL
OUT DX,AL
CALL DELAY ;延时作用
ROL BL,1H ;循环左移一位
ROR CL,1H ;循环右移一位
JMP AA1
DELAY:PUSH CX
MOV CX,0FFFFH
AA2:PUSH AX
POP AX
LOOP AA2
POP CX
RET
CODE ENDS
END START