交通信号灯控制程序设计

交通信号灯控制程序设计,第1张

简单I/O实验(交通灯控制)

一实验要求

以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。

二实验目的

1学习在单片机系统中扩展简单I/O接口的方法。

2学习数据输出程序的设计方法。

3学习模拟交通灯控制的方法。

4学习双色灯的使用。

三实验电路及连线

四实验说明

1因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。

2双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

五实验程序框图

程序框图:

源代码:

ORG 0000H

LJMP START

ORG 0040H

START:

MOV SP,#60H

LCALL STATUS0 ;初始状态(都是红灯)

CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯

LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯

LCALL STATUS3 ;南北红灯,东西绿灯

LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯

LJMP CIRCLE

STATUS0: ;南北红灯,东西红灯

MOV DPTR,#8300H

MOV A,#0FH

MOVX @DPTR,A

MOV R2,#10 ;延时1秒

LCALL DELAY

RET

STATUS1: ;南北绿灯,东西红灯

MOV DPTR,#08300H

MOV A,#5AH ;南北绿灯,东西红灯

MOVX @DPTR,A

MOV R2,#50 ;延时5秒

LCALL DELAY

RET

STATUS2: ;南北绿灯闪转黄灯,东西红灯

MOV DPTR,#8300H

MOV R3,#03H ;绿灯闪3次

FLASH: MOV A,#5FH

MOVX @DPTR,A

MOV R2,#03H

LCALL DELAY

MOV A,#5AH

MOVX @DPTR,A

MOV R2,#03H

LCALL DELAY

DJNZ R3,FLASH

MOV A,#0AH ;南北黄灯,东西红灯

MOVX @DPTR,A

MOV R2,#10 ;延时1秒

LCALL DELAY

RET

STATUS3: ;南北红灯,东西绿灯

MOV DPTR,#8300H

MOV A,#0A5H

MOVX @DPTR,A

MOV R2,#50 ;延时5秒

LCALL DELAY

RET

STATUS4: ;南北红灯,东西绿灯闪转黄灯

MOV DPTR,#8300H

MOV R3,#03H ;绿灯闪3次

FLASH1: MOV A,#0AFH

MOVX @DPTR,A

MOV R2,#03H

LCALL DELAY

MOV A,#0A5H

MOVX @DPTR,A

MOV R2,#03H

LCALL DELAY

DJNZ R3,FLASH1

MOV A,#05H ;南北红灯,东西黄灯

MOVX @DPTR,A

MOV R2,#10 ;延时1秒

LCALL DELAY

NOP

RET

DELAY: ;延时子程序

PUSH 2

PUSH 1

PUSH 0

DELAY1: MOV 1,#00H

DELAY2: MOV 0,#0B2H

DJNZ 0,$

DJNZ 1,DELAY2 ;延时 100 mS

DJNZ 2,DELAY1

POP 0

POP 1

POP 2

RET

END

五叉路口红绿灯走法图解如下:

1、五岔路口的行驶其实和我们一般行驶时的准则是一样的,如果我们要直行的话就看前方的红绿灯,假如是要右转的话只需要注意观察右转红绿灯便可,根据实际的路面标识牌进行驾驶就没问题。

2、如果身边有比较高的车辆,如公交车,泥头车,货车等情况时,我们要注意不要被它们的车高挡住视线,应减速慢行看清楚灯位再前进。

3、还要注意各行其道,尽量避免插队和横跨几条车道的行为,若果我们需要转弯的话可以进入待转区等候。

4、要注意行人,有时候行人并不会严格遵守斑马线上穿行的规定,有的人甚至会直接从中间横穿过去,对于禁行区域一定要注意避让。

五岔路口看红绿灯与平时是一样的,主要是根据自己要行驶的路线来看前方红绿灯,比如直行就要看直行红绿灯,左转就要看左转红绿灯,右转也要看右转红绿灯。

根据路面标识牌驾驶基本上就是没有什么问题的,五岔路口也是比较复杂的路况,所以一定要具有对周围环境变化和路况预判的能力,减速慢行。

五岔路口应该注意什么

1、五岔路口时需要注意,转弯的车辆可以进入带转弯区等候。

2、五岔路口行驶时,还要注意行人,避免因为行人没有遵守斑马线上穿行规定或直接从中间横穿过去,要及时的避让。

3、如果身边有较高的车辆,比如货车、公交车等等,要避免被车高挡住视线,一定要慢行。

4、注意自己要行驶的道路,减少插队和横跨几条车道的行为。

package guidemo;

import javaawt;

import javaawteventMouseEvent;

import javaawteventMouseListener;

/

<p>Title: 图形用户界面</p>

<p>Description: 简单的图形界面编程</p>

<p>Copyright: Copyright (c) 2006</p>

<p>Company: </p>

@author vic

@version 10

/

public class ColorFrame extends Frame implements MouseListener {

Label L; //标签

TextField T; //文本域

Button B1, B2; //按钮

public ColorFrame() {

thissetLayout(null); //想要手动指定各组件的的位置

L = new Label("输入学号:"); //设定标签L内容

LsetBounds(60, 50, 50, 25); //设定标签L外观

thisadd(L); //将标签L添加到窗口中

T = new TextField("请在这里输入"); //设定文本域T的内容

TsetBounds(125, 50, 90, 25); //设定文本域T的外观

thisadd(T); //将文本域T添加到窗口中

B1 = new Button("变红!"); //设定按钮B1的内容

B1setBounds(25, 90, 90, 25); //设定按钮B1的外观

B1addMouseListener(this);//在B1上注册鼠标监听器

thisadd(B1); //将按钮B1添加到窗口中

B2 = new Button("变绿!");

B2setBounds(125, 90, 90, 25);

B2addMouseListener(this);

thisadd(B2);

WindowDestroyer Listener = new WindowDestroyer(); //创建关闭窗口监听器

thisaddWindowListener(Listener); //将监听器添加到窗口中

thissetBackground(Coloryellow); //设定窗口背景颜色

thissetTitle("This is Frame!"); //设定窗口标题文字

thissetBounds(0, 0, 250, 220); //设定窗口位置和大小

thissetVisible(true); //显示窗口

}

public void mouseClicked(MouseEvent e) {

if (egetComponent() == B1) {//getComponent返回按钮上面的字符串

thissetBackground(Colorred);

}

if (egetComponent() == B2) {

thissetBackground(Colorgreen);

}

}

public void mouseExited(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {}

public void mouseReleased(MouseEvent e) {}

public void mousePressed(MouseEvent e) {}

public static void main(String[] args) {

new ColorFrame();

}

}

通灯显示控制

一、前言

(1)通过8255A实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用

(2)进一步学习微处理器的编程技术

二、8255的工作原理:

8255有三种方式可以选择:

方式0:基本输入/输出方式;

方式1:带选通的输入/输出方式

方式2:双向传输方式。

8255为总线兼容型,可以与CPU的总线直接接口。其中,口地址取决于片选CS和A1、A0

如图所示,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程时六个灯按交通灯变化规律燃灭。

交通灯变化要求:

(1)、南北路口的绿灯,东西路口的红灯同时亮30秒左右;

(2)、南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮;

(3)、南北路口的红灯,东西路口的绿灯同时亮30秒左右;

(4)、南北路口的红灯继续亮,同时东西路口的黄灯闪烁若干次;

(5)、转(1)重复。

1硬件原理图如图

2硬件线路连接

4流程图

按上面所述过程得出5程序

DATA SEGMENT

PC DB

MESS DB 'ENTER ANY KEY CAN EXIT TO DOS!',0DH,0AH,'$'

DATA ENDS

STACK SEGMENT STACK

STA DW 200 DUP()

TOP EQU LENGTH STA

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK

START:

MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV AH,09H

MOV DX,OFFSET MESS

INT 21H

MOV DX,28BH

MOV AL,10000001B

OUT DX,AL

MOV DX,28AH

IN AL,DX

MOV PC,AL

MOV DX,28BH

MOV AL,10000000B

OUT DX,AL

MOV DX,28AH

MOV AL,PC

MOV DX,28AH

MOV AL,00000000B

OUT DX,AL

LLL: MOV DX,28AH

MOV AL,00100100B ;1绿2红

OUT DX,AL

CALL DONE2

CALL DONE2

MOV DX,28AH

MOV AL,01000100B ; ;1黄2红

OUT DX,AL

CALL DONE2

MOV DX,28AH

MOV AL,10000001B ;1红2绿

OUT DX,AL

CALL DONE2

CALL DONE2

MOV DX,28AH

MOV AL,10000010B ;1红2黄

OUT DX,AL

CALL DONE 2

MOV AH,06H

MOV DL,0FFH

INT 21H

JNZ PPP

JMP LLL

PPP: MOV AX,4C00H

INT 21H

DONE1 PROC NEAR

PUSH CX

MOV CX,0FFFFH

CC: LOOP CC

POP CX

RET

DONE1 ENDP

DONE2 PROC NEAR

PUSH AX

PUSH CX

MOV CX,0FFFH

UU: CALL DONE1

LOOP UU

POP CX

POP AX

RET

DONE10 ENDP

CODE ENDS

END START

有些东西发不上来 要的Q我

以上就是关于交通信号灯控制程序设计全部的内容,包括:交通信号灯控制程序设计、五叉路口红绿灯走法图解、模拟交通灯 单片机C51,要电路图和程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9277663.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存