8255双色灯实验
一.实验要求
编写程序,以8255作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟十字路口交通灯管理。
二.实验目的
1.学习单板方式下扩展简单I/O接口的方法以及双色灯的使用。
2.进一步学习微处理器的编程技术。
三.实验电路及连线
将DG1~DG4,DR1~DR4用导线连至8255的PC0~PC7,8255的CS片选接至138译码处的200H~207H插孔。
四.程序代码
D1 EQU 10H
D2
EQU 200H
DATA SEGMENT
PB DB ?
DATA ENDS
STACK SEGMENT STACK
STA DW 50 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
PUSH
POP
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
OUT
MOV
CALL
BG: MOV
OUT
MOV
CALL
MOV
XH1: AND
OUT
MOV
CALL
OR
OUT
MOV
CALL
LOOP
OR
OUT
MOV
CALL
MOV
CALL
MOV CS DS DX,203H ;设置为全输出 AL,80H DX,AL DX,202H AL,00 DX,AL ;清LED DX,202H ;全红 AL,0F0H DX,AL BX,7fH DLY AL,01101001B ;南北绿,东西红 DX,AL BX,D2 DLY CX,03H AL,0F6H ;绿灭 DX,AL BX,D1 DLY AL,09H ;绿亮 DX,AL BX,D1 DLY XH1 AL,90H ;南北黄 DX,AL BX,D1 DLY BX,D1 DLY AL,10010110B ;南北红,东西绿
OUT DX,AL
MOV BX,D2
CALL DLY
MOV CX,03
XH2: AND AL,0F9H
OUT DX,AL
MOV BX,D1
CALL DLY
OR AL,06H
OUT DX,AL
MOV BX,D1
CALL DLY
LOOP XH2
OR AL,60H
OUT DX,AL
MOV BX,D1
CALL DLY
MOV BX,D1
CALL DLY
JMP BG
DLY PROC NEAR
PUSH CX
DDD: MOV CX,0FFFH
CCC: LOOP CCC
DEC BX
CMP BX,0
JNE DDD
POP CX
RET
DLY ENDP
CODE ENDS
END START
四,实验结果分析
先是南北绿灯亮,东西方向是红灯亮,然后过几十秒就是东西绿灯亮,南北方向是红灯亮,一直运行下去,
实验符合实际要求.