导航:首页 > 操作系统 > 交通信号灯单片机

交通信号灯单片机

发布时间:2024-10-16 07:27:35

1. 基于单片机的交通信号灯控制系统_基于单片机的交通信号灯控制系统设计毕业论文

HD2000交通信号集中控制系统是华路德公司开发研制的HD202、HD204、HD207系列交通信号控制器的远程控制软件,利用城域宽带网,远程监视和控制路口信号机的工作状态和运行方式,使用户足不出户即可了解和控制路口交通状况,实现区域内交通信号灯的联动绿波带协调控制,从而提高道路通行能力和管理部门紧急情况处置反基烂慎应能力,能极大地减轻交通管理部门的维护和调节工作量。

性能与特点

高级语言编制,界面友好,操作方便。

联网方式灵活,可以通过以太网、无线通讯、电话拨号、GPRS等实现中心与路口的通讯联系。

覆盖路口控制机类型广泛,可以选择我公司出厂的HD202系列、HD204系列、HD207系列交通信号控制器,给用户最大的选择余地。

建设成本低,本系统涵盖了我公司所有档次的信号机,在已经安装了电子警察的道路交叉口,可以借用电子警察网络资源,避免了重复投资。

控制路口点数多,可以同时控制多达180个以上路口的交通信号控制机,如果建立分级通讯机制,则控制点数不受限制。

系统提供软件接口与其他系统(如GPS卫星定位系统、城市交通诱导系统、公安视频监控系统、电子警察系统等)实现交警数据的共享,为建设和谐交通提供一手交通流量数据。

采用服务器/客户端模式,后台系统由服务器和若干工作站组成,监控路口真正做到足不出户,有条件的客户甚至能通过Internet实现对路口信号机搏敬的远程监控。

功能介绍

远程监视功能,通过控制中心能实时监视路口信号机的运行状况,包括当前运行方式、运行总周期、信号灯输出状态等用户首先需要了解的路口信息。用户可以通过两种画面监视运行状态:监视主画面和路口模拟图画面。监视主画面用于全面了解路口信号机的运行状态,而路口模拟图画面能使用户直观了解实际路口信号灯的红绿显示情况。

单路口远程控制功能,通过远程监视画面(包括监视主画面和路口示意图画面)用户可以实现对路口信号机的远程手、自动切换和运行方式变换,配合视频监控能有效、及时地疏导交通和临时交通处置。

远程设置功能,通过不同类型信号机的设置画面,用户能远程设置和修改路口信号机的运行参数,如相位方案、时段方案、配时方案、运行常量等。

远程流量收集,若路口设置有车辆检测器,系统能自动、定时地收集和保存不同时段路口车道流量状态。

绿波带控制功能,系统能根据路口之间的距离、车速等信息自动协调关联路口的信号历稿灯输出周期,实现多路口之间的绿波带协调控制功能,并能根据路段的车流状态定时切换协调方向。

警卫路线控制功能,系统能根据预先设置的警卫路线,准确命令警卫路线上的信号机在特定时间段开启指定信号灯绿灯,并在持续一段时间后自动后恢复。

远程登录与控制功能,系统采用服务器/客户端模式,所有信号机数据和用户需求信息均通过服务器实现转发、存储和提取;用户通过客户端实现对服务器的登录,并通过服务器实现对路口的监视与控制。详细资料你可以看参考!

2. 如何用单片机制作交通灯

LED模拟交通灯

本例中的12只LED分成东西向和南北向两组,各组指示灯均有相向的2只红色、2只黄色与2只绿色的LED,本例中对应的LED单独进行定义,程序运行时模拟了十字路口交通信号灯得切换过程与显示效果。
本例电路如下图:
(呵呵 图片插入不进来)
程序设计调试与实训:
源程序中用6行sbit对东西和南北向的红、黄、绿指示灯分别进行定义,这样便于对它们进行单独控制。
本例交通指示灯切换时间设置的较短,这样可在调试的时候较快观察到运行效果,可在调试运行本例后修改代码,使指示灯切换过程更接近于实际的交通指示灯切换过程。

源程序代码:
//----------------------------------------------------------------
// 名称:LED模拟交通灯
//----------------------------------------------------------------
// 说明:东西向绿灯亮若干秒后,黄灯闪烁5次后亮红灯,红灯亮后,
// 南北向由红灯变为绿灯,若干秒后,南北向黄灯闪烁,
// 闪烁5次后亮红灯,东西向绿灯亮,如此重复。
//
//-----------------------------------------------------------------
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit RED_A=P0^0; //东西向指示灯
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P0^3; //南北向指示灯
sbit YELLOW_B=P0^4;
sbit GREEN_B=P0^5;

uchar Flash_Count = 0;
Operation_Type = 1; //闪烁次数及操作类型变量
//--------------------------------------------------------
//延时
//--------------------------------------------------------
void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=120;t>0;t--);
}
}

//---------------------------------------------------------
//交通灯交换子程序
//---------------------------------------------------------
void Traffic_lignt()
{
switch(Operation_Type)
{
case 1: //东西向绿灯与南北向红灯亮
RED_A=1;YELLOW_A=1;GREEN_A=0;
RED_B=0;YELLOW_B=1;GREEN_B=1;
DelayMS(2000); // 延时
Operation_Type = 2; //下一操作
break;
case 2: //东西向黄灯开始闪烁,绿灯关闭
DelayMS(300); //延时
YELLOW_A=!YELLOW_A; //闪烁5次
if(++Flash_Count !=10)
return;
Flash_Count=0;
Operation_Type = 3; //下一操作
break;
case 3: //东西向红灯与南北向绿灯亮
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;
DelayMS(2000); //延时
Operation_Type = 4; //下一操作
break;
case 4: //南北向黄灯开始闪烁
DelayMS(300); //延时
YELLOW_B=!YELLOW_B;
if(++Flash_Count !=10)
return; //闪烁5次
Flash_Count=0;
Operation_Type = 1; //回到第一种操作
break;
}
}

//----------------------------------------------------------
//主程序
//----------------------------------------------------------
void main()
{
while(1)
{
Traffic_lignt();
}
}

3. 单片机AT89C51 交通信号灯

用汇编,编写的程序如下,经过了仿真调试,在12MHz的条件下,通过.
ORG 0000H
MOV P0, #01111011B ;P0.7=P0.2=0, 东西 南北 都是红灯.
LCALL DL3S
LOOP:
MOV P0, #11011011B ;P0.5=P0.2=0, 南北绿 东西红.
LCALL DL15S
MOV P0, #10111011B ;P0.6=P0.2=0, 南北黄 东西红.
LCALL DL3S
MOV P0, #01111110B ;P0.7=P0.0=0, 南北红 东西绿.
LCALL DL15S
MOV P0, #01111101B ;P0.7=P0.1=0, 南北红 东西黄.
LCALL DL3S
SJMP LOOP

DL15S:
MOV R2, #5
DL2:
CALL DL3S
DJNZ R2, DL2
RET

DL3S: ;延时3s,实测3.03s
MOV R5, #23
DL3:
MOV R6, #0
DL4:
MOV R7, #0
DL5:
DJNZ R7, DL5
DJNZ R6, DL4
DJNZ R5, DL3
RET
END

4. 交通信号灯控制程序设计

简单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

5. 基于51单片机控制交通灯的电路图与C语言程序

思路:

红灯停,绿灯行,黄灯闪烁提示行人红绿灯即将切换。四个方向各有一个红、黄、绿显示和两个数码管。

东西道为人行道(20秒),南北道为车行道(60秒),黄灯延时最后三秒时,闪烁并切换。

三、硬件电路设计

此电中路设计采用AT89C51单片机,74LS47(数码管驱动)74LS373(数码管驱动输出锁存),8个数码管显示其延时值,四个红、黄、绿指示灯。硬件设计关键在于,延时显示时,要考虑到当个位数字显示时,要确保十位数字显示输出的不变。因此,可加输出锁存器。在延时最后三秒时,要让黄灯进行闪烁,并同时显示数字(这一步在软件设计上很关键)。

四、软件程序(C语言)

以下是整个设计的软件程序,直接可以编译成*。Hex代码。通过以上电路,下载到单片机,可直接运行。

//*****************************//

//程序名:十字路口交通灯控制

//编写人:黄庭剑

//初写时间:2009年1月2日

//程序功能:南北为车行道,延时60秒;东西方向为人行道,延时20秒,且在最后3秒黄灯显示2秒钟再实现切换.

//CPU说明:AT89C51型单片机;24MHZ晶体振荡器

//完成时间:2009年1月6日

//*****************************//

#include<stdio.h>

#include<reg51.h>

#include<intrins.h>

sfrp0=0x80;

sfrp1=0x90;

sfrp2=0xA0;

sfrp3=0xb0;//这部分内容其实在“#include<reg51.h>”里已经有,但里面定义的必须区分大小写,在这里,因为我程序采用的是小写,reg51.h里对各个端口与寄存器的定义都是大写,所以在编译连接时,会报错,所以,在本设计程序里,我只用到了端口,在这里也就只定义了四个,而没有去改reg51.h里面的内容。其实两者是一样的。

sbitsw=p0^0;

sbitOE=P0^6;

sbitLE=P0^7;//74LS373锁存器控制端定义

chardisplay[]={0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88,0x99};//p1口的数码管时间显示调用,利用74L74BCD码,8位驱动输出;

//函数声明begin

voiddelay1(intcount);

voiddelay_long(intnumber1,intnumber2);

voidpeople_car_drive();

//函数声明end

//***********************//延时子程序

voiddelay1(intcount)

{inti;

for(i=count;i>0;i--)

{;}

}

voiddelay_long(intnumber1,intnumber2)

{

inta,b;

for(a=number1;a>0;a--)

{

for(b=number2;b>0;b--)

{_nop_();}

}

}

//**********************//延时子程序

voidpeople_car_drive()

{

intp_1=2,i,j=9,p_2=6;//****************//行人通行时,延时20秒

p2=0x09;//南北红灯亮

p3=0x24;//东西绿灯亮

while(p_1-->0)

{LE=1;

OE=0;

if(p_1==0){OE=1;}//当十位数减到0时,只显示个位数

p1=display[p_1];

delay1(1000);

LE=0;

j=9;

for(i=10;i>0;i--)

{

if(p_1==0&&j==3)break;//减到3时退出循环,让其黄灯闪烁显示

p1=display[j--];

delay_long(16000,2);

if(sw==1)return;

}

}

//*******************************************************************************//

p2=0x12;//南北黄灯闪烁三秒,以提醒行人注意

p3=0x12;

p1=display[3];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[2];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[1];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

//*****************以下是车辆通行时延时60秒//

p2=0x24;//南北绿灯亮

p3=0x09;//东西红灯亮

while(p_2-->0)

{LE=1;

OE=0;

if(p_2==0){OE=1;}//当十位数减到0时,只显示个位数

p1=display[p_2];

delay1(1000);

LE=0;

j=9;

for(i=10;i>0;i--)

{

if(p_2==0&&j==3)break;//减到2时退出循环

p1=display[j--];

delay_long(16000,2);

if(sw==1)return;

}

}

p2=0x12;//南北黄灯闪烁三秒,以提醒行人注意

p3=0x12;

p1=display[3];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[2];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);

p2=0x12;

p3=0x12;

p1=display[1];

delay_long(8000,1);

p2=0x00;

p3=0x00;

delay_long(14000,1);//南北黄灯闪烁三秒完毕

}

voidmain()//主函数入口处

{

p0=0x01;

p1=0x00;

p2=0x00;

p3=0x00;//初始化各端口

{while(1)

{

if(sw==0)

{people_car_drive();}

else

{

p2=0x00;

p3=0x00;//关闭所有交通灯

}

}

}

}

详情访问:http://hi..com/hjiannew/

6. 单片机中十字路口交通信号灯的过程,内容,原理

基于单片机的十字路口交通灯设计

摘要:知道了交通灯的重要性,而对于交通灯最重要的是单片机。跟随单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机通常作为一个核心部件来使用,仅凭对单片机简单了解是不够的,应该根据具体硬件结构并且软硬件结合,实现自己想要达到的目的。单片机自问世以来,性能不断提高和完善,所以实用许多场合。单片机具有集成度高、功能多、速度快、体积小、功耗低、使用方便、性能可靠、价格便宜,其易于产品化、抗干扰能力强、可以在恶劣的情况下坚持工作。特别是它强大的面向控制能力,使它在工业控制领域,智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。 考虑到单片机具有物美价廉、灵活方便、还有各种优秀的特点,所以我们从中选择用MCS-51系列单片机AT89C51单片机来实现十字路口交通信号灯的控制。单片机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。该交通灯拟系统的硬件部分主要由键盘、显示和运算部分组成,再根据实际车流量通过8051芯片的P3口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。

关键词:单片机、MCS-51系列单片机AT89C51、交通灯

阅读全文

与交通信号灯单片机相关的资料

热点内容
java编程的三个步骤 浏览:772
s点b点主图源码 浏览:434
电脑可以删除的临时文件夹 浏览:7
小杜app上怎么启用 浏览:305
为什么服务器喇叭喊了一次就不行 浏览:480
phpdbo驱动 浏览:255
程序员寻找转行建议 浏览:632
psgrepjava 浏览:415
梦幻诛仙12职业变态源码 浏览:370
汽车的控制是怎么编程的 浏览:686
稳定的ip地址服务器 浏览:641
python多线程编程教程 浏览:252
笔记本编程电脑排行榜 浏览:32
微信好友缓存文件在哪个文件夹 浏览:614
javafloat小数点后两位小数 浏览:166
澳门pdf 浏览:409
es解压文件默认路径 浏览:833
jar命令war包 浏览:121
福州交警app预约在哪里签字确认 浏览:623
android各版本sdk异同 浏览:726