8255双色灯 下载本文

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

四,实验结果分析

先是南北绿灯亮,东西方向是红灯亮,然后过几十秒就是东西绿灯亮,南北方向是红灯亮,一直运行下去,

实验符合实际要求.