双色灯实验-------汇编语言
1、一、实验要求
编写程序,以8255为输出口,控制四个双色灯按要求发光。
第三副图是8255内部引脚图



2、二、实验目的
1.学习单板方式下扩展简单I/O接口的方法以双色灯的使用。
2.进一步学习微处理器的编程技术。

3、三、实验电路连线
8255的CS片选接至适配板上138译码处的200H~207H插孔。

4、四、实验说明
1、 因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态,东西绿灯通车,南北灯灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。
2、 双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。


5、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 CS
POP DS
MOV DX,203H ;设置为全输出
MOV AL,80H
OUT DX,AL
MOV DX,200H
MOV AL,0ffh
OUT DX,AL ;清LED
MOV DX,200H
MOV AL,0F0H
OUT DX,AL ;全红
MOV BX,7fH
CALL DLY
BG: MOV AL,01011010B ;南北绿,东西红
OUT DX,AL
MOV BX,D2
CALL DLY
MOV CX,03H
XH1: AND AL,0F5H ;绿灭黄亮
OUT DX,AL
MOV BX,D1
CALL DLY
OR AL,0aH ;绿亮
OUT DX,AL
MOV BX,D1
CALL DLY
LOOP XH1
OR AL,0a0H ;南北黄
OUT DX,AL
MOV BX,D1
CALL DLY
MOV BX,D1
CALL DLY
MOV AL,10100101B ;南北红,东西绿
OUT DX,AL
MOV BX,D2
CALL DLY
MOV CX,03
XH2: AND AL,0FaH
OUT DX,AL
MOV BX,D1
CALL DLY
OR AL,05H
OUT DX,AL
MOV BX,D1
CALL DLY
LOOP XH2
OR AL,50H
OUT DX,AL
MOV BX,D1
CALL DLY
MOV BX,D1
CALL DLY
JMP BG
DLY PROC NEAR
PUSH CX
DDD: MOV CX,2ffH
CCC: LOOP CCC
DEC BX
CMP BX,0
JNE DDD
POP CX
RET
DLY ENDP
CODE ENDS
END START
6、上述汇编程序模拟了日常生活中交通红绿灯。
