8255流水灯显示 很酷的哦
现在大家都在用电脑实现一些声音效果 但是大家有没有想过如果用一些老古董的东西会给人更奇妙的感觉
现在就让我们用8255来实现流水灯,8255这种板子在很多学校里都有淘汰的@@
首先我们用的是汇编语言 ,代码如下:
8255流水灯显示实验
;****************根据查看端口资源修改下列符号值*******************
IOY0 EQU 9C00H ;片选IOY0对应的端口始地址
;*****************************************************************
MY8255_A EQU IOY0+00H*4 ;8255的A口地址
MY8255_B EQU IOY0+01H*4 ;8255的B口地址
MY8255_C EQU IOY0+02H*4 ;8255的C口地址
MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DATA SEGMENT
LA DB ? ;定义数据变量
LB DB ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,MY8255_MODE ;定义8255工作方式
MOV AL,80H ;工作方式0,A口和B口为输出
OUT DX,AL
MOV DX,MY8255_A ;写A口发出的起始数据
MOV AL,80H
OUT DX,AL
MOV LA,AL
MOV DX,MY8255_B ;写B口发出的起始数据
MOV AL,01H
OUT DX,AL
MOV LB,AL
LOOP1: CALL DALLY
MOV AL,LA ;将A口起始数据右移再写入A口
ROR AL,1
MOV LA,AL
MOV DX,MY8255_A
OUT DX,AL
MOV AL,LB ;将B口起始数据左移再写入B口
ROL AL,1
MOV LB,AL
MOV DX,MY8255_B
OUT DX,AL
MOV AH,1 ;判断是否有按键按下
INT 16H
JZ LOOP1 ;无按键则跳回继续循环,有则退出
QUIT: MOV AX,4C00H ;结束程序退出
INT 21H
DALLY PROC NEAR ;软件延时子程序
PUSH CX
PUSH AX
MOV CX,3FFH
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
POP AX
POP CX
RET
DALLY ENDP
CODE ENDS
END START
连接的话 就是在电脑上用数据线连到板子,然后IOY0 CS RDWR的线接好 就可以看到流水灯了 试试吧@@ 首次发主题 请大家都支持 版主多体谅