一、实验要求编写程序,以8255为输出口,控制四个双色灯按要求发光。第三副图是8255内部引脚图
二、实验目的1.学习单板方式下扩展简单I/O接口的方法以双色灯的使用。2.进一步学习微处理器的编程技术。
三、实验电路连线8255的CS片选接至适配板上138译码处的200H~207H插孔。
四、实验说明1、 因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态,东西绿灯通车,南北灯灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。 2、 双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。
D1 EQU 10HD2 EQU 200HDATA SEGMENTPB DB ?DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: 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 DLYBG: MOV AL,B ;南北绿,东西红 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03HXH1: 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,03XH2: 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 BGDLY PROC NEAR PUSH CXDDD: MOV CX,2ffHCCC: LOOP CCC DEC BX CMP BX,0 JNE DDD POP CX RETDLY ENDP CODE ENDSEND START
上述汇编程序模拟了日常生活中交通红绿灯。