红绿灯设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

红绿灯设计

一、设计目的

查阅可编程并行芯片8255或其他相关资料,用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。通过对红、绿、黄LED(发光二极管)的控制熟练掌握8255A可编程并行接口的编程方法。

二、设计要求

编写程序控制8255A可编程并行接口芯片,使红、绿、黄发光二极管按照十字路口交通信号灯的规律交替发光。当按下任意键则停止运行,返回DOS。

1、红绿灯亮灭规律:a:初态为东西南北4个红灯全亮,禁止通行;b:经过一定时间南北路口绿灯亮东西路口红灯亮;c:经过一定时间,南北路口绿灯灭;d:南北路口黄灯闪烁;e:经过一定时间,4个路口红灯全亮。f:经过一定时间,东西路口绿灯亮,南北路口红灯亮;g:东西路口绿灯灭;h:东西路口黄灯闪烁.i:转向步骤a循环执行。

三、电路及连线设计

本次微机原理设计的题目为交通灯,它是通过对8255芯片和LED发光二极管的连接设计来模拟交通信号灯的控制,使红黄绿三色灯按照正常交通规则亮灭;

十字路口交通信号灯的工作原理是在正常情况下以8086/8088的CPU与8255芯片相连接来实现的。8255芯片包括四个口,即A口、B口、C口和控制口。通过对其控制端口写入控制字,来设定8255的工作方式,在本设计中,使8255工作于方式0,将B口和C口都设计为输出,A口设计成输入。其中B口控制东西方向的交通灯,C口控制南北方向的交通灯。当程序正常

运行时,依次为东西南北方向都是红灯,延时后,南北方向的绿灯和东西方

向红灯亮,延时后南北方向的黄灯闪3次,随后南北方向的红灯和东西方向

的绿灯亮,延时后,东西方向的黄灯闪3次,之后同理进行循环。

四、流程图设计

开始

8255初始化

南北红,东西红

延时

南北绿,东西红

延时

南北黄灯闪烁

南北红,东西绿

延时

东西黄灯闪烁

开始进行8255初始化然后南北红灯东西红灯亮,延时南北绿灯东西红灯亮延时南北黄灯闪烁,南北红灯东西绿灯亮延时东西黄灯闪烁,然后从开始循环。

五、程序设计如下:

SSTACK SEGMENT STACK ;定义堆栈段

DW 32 DUP(?)

SSTACK ENDS

CODE SEGMENT ;定义代码段

ASSUME CS:CODE,SS:SSTACK

START:

MOV AL,90H

MOV DX,9003H

OUT DX,AL ;将8255控制字设置为10010000

; B、C口输出 A口输入工作方式0 RED: MOV AL,22H

MOV DX,9001H

OUT DX,AL ;东西方向红灯亮

MOV DX,9002H

OUT DX,AL ;南北方向红灯亮

CALL DELAY ;调用延时程序DELAY NORMAL:STI

MOV AL,88H

MOV DX,9002H

OUT DX,AL ;南北方向绿灯亮

MOV AL,22H

MOV DX,9001H

OUT DX,AL ;东西方向红灯亮

CALL DELAY ;调用演示程序DELAY

MOV AL,00H

MOV DX,9002H

OUT DX,AL ;南北方向绿灯灭

CALL DELAY1 ;调用演示程序DELAY1

MOV CX,0005H ;将黄灯闪烁次数设为5 RECALL1:MOV AL,44H

MOV DX,9002H

OUT DX,AL ;南北方向黄灯亮

CALL DELAY2

XOR AL,AL

OUT DX,AL ;南北方向黄灯灭

CALL DELAY2 ;调用演示程序DELAY2

LOOP RECALL1

MOV AL,88H

MOV DX,9001H

OUT DX,AL ;东西方向绿灯亮

MOV AL,22H

MOV DX,9002H

OUT DX,AL ;南北方向红灯亮

CALL DELAY

CALL DELAY ;两次调用演示程序DELAY,东西方向设为主干道 MOV AL,00H

MOV DX,9001H

OUT DX,AL ;东西方向绿灯灭

CALL DELAY1 ;调用延时程序DELAY1

MOV CX,0005H ;将黄灯闪烁次数设为5

RECALL2:MOV AL,44H

MOV DX,9001H

OUT DX,AL ;东西方向黄灯亮

CALL DELAY2 ;调用延时程序DELAY2 XOR AL,AL

OUT DX,AL ;东西方向黄灯灭

CALL DELAY2 ;调用延时程序DELAY2

LOOP RECALL2

JMP NORMAL ;无条件跳转到NORMAL,实现循环DELAY: PUSH CX ;延时程序 DELAY

MOV BX,008FH

T1:MOV CX,1000H

T2:NOP

NOP

LOOP T2

DEC BX

CMP BX,0000H

JNZ T1

POP CX

RET

DELAY1: PUSH CX ;延时程序 DELAY1

MOV CX,0FFFFH

T3:NOP

NOP

LOOP T3

POP CX

RET

DELAY2: PUSH CX ;延时程序 DELAY2

MOV CX,0F900H

T4:PUSH AX

POP AX

LOOP T4

POP CX

RET

CODE ENDS

相关文档
最新文档