2. 流水灯显示实验
使 8255 的 A 口和 B 口均为输出,数据灯 D7~D0 由左向右,每次仅亮一个灯,循
环显示,D15~D8 与 D7~D0 正相反,由右向左,每次仅点亮一个灯,循环显示。实验
接线图如图 4 所示。
图 3-5 8255 流水灯实验接线图
实验步骤:
(1)按图 3-5 连接实验线路图;
(2)编写实验程序,经编译、链接无误后装入系统;
(3)运行程序,观察 LED 灯的显示,验证程序功能;
(4)自己改变流水灯的方式,编写程序。
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
CODE SEGMENT PUBLIC
org 100h
START: MOV DX, 04a6H ;控制寄存器地址
MOV AL, 80H ;设置为 A 口,B 口均为输出
OUT DX, AL
MOV BX, 8001H ;把 8001H 传送到 BX 中
AA1: MOV DX, 04a0H ;A 口地址
MOV AL, BH ;把 BX 中的高 8 位传送到 AX 的低 8 位中
OUT DX, AL ;把 AX 的低 8 位输出
ROR BH, 1 ;把 BX 中的高 8 位循环右移一位
MOV DX, 04a2H ;B 口地址
MOV AL, BL ;把 BX 中的低 8 位传送到 AX 的低 8 位中
OUT DX, AL ;把 AX 的低 8 位输出
ROL BL, 1 ;把 BX 中的低 8 位循环右移一位
CALL DELAY ;延时
CALL DELAY