当前位置:文档之家› 基于单片机的交通灯控制系统

基于单片机的交通灯控制系统

基于单片机的交通灯控制系统
基于单片机的交通灯控制系统

基于单片机的交通灯控制系统

一、实验目的

1、了解交通灯的控制方法

2、掌握8051单片机基本操作

3、掌握keil和PrOteuS软件的使用

二、实验原理

通过对十字路口的观察,发现红绿灯的控制原理:首先南北方向右转加直行的绿灯亮起。此时,东西方向为红灯;当右转加直行绿灯倒计时进入最后5秒, 绿灯切换为黄灯并开始闪烁,东西方向红灯不变;接着南北方向切换为左转灯,东西方向依然是红灯;同样当倒计时进入最后5秒时,黄灯开始闪烁。东西方向为红灯。然后东西方向的右转加直行绿灯亮起,以此类推。

三、实验内容及程序

主程序:

void main (VOid)

Busy_LED=O;

SPeCiaLLED=O;

ITO=1; //INTO 负跳变触发

TMOD=O X OI;//定时器工作于方式1

TH0=(65536-50000)∕256;// 定时器赋初值TL0=(65536-

50000)%256;

EA=1; //CPU开中断总允许

ET0=1;//开定时中断

EX0=1;//开外部INTO中断

TR0=1;// 启动定时

while(1)

{

Flag_EW_Yellow=0; //EW关黄灯显示信号

Time_EW=EW;

Time_SN=SN;

WhiIe(Time_SN>=5)

{P仁S[0]; /∕SN 通行,EW红灯

DiSPIay();}

P仁0x00;

WhiIe(Time_SN>=0

) {Flag_SN_Yellow=1; EW_Red=1; /∕SN

//SN开黄灯信号位

黄灯亮,等待左拐信号,EW红灯

DiSPIay();

}

Flag_SN_Yellow=0; /∕SN关黄灯显示信号Time_SN=SNL;

WhiIe(Time_SN>=5)

{P仁S[2];//SN左拐绿灯亮,EW红灯

DiSPIay();}

P仁0x00;

WhiIe(Time_SN>=0

) {Flag_SN_YeIIow=1; EW_Red=1; /∕SN

//SN开黄灯信号位

黄灯亮,等待停止信号,EW红灯

DiSPIay(); }

EW=EW1;

SN=SN1; EWL=EWLI; SNL=SNLI;

Flag_SN_Yellow=0; //SN 关黄灯显示信号

Time_EW=SN;

Time_SN=EW;

While(Time_EW>=5)

{P仁S[4]; //EW 通行,SN红灯

DiSPIay();}

P仁0X00;

WhiIe(Time_EW>=0)

{Flag_EW_Yellow=1;〃EW 开黄灯信号位

SN_Red=1;〃EW 黄灯亮,等待左拐信号,SN红灯DiSPIay();}

Flag_EW_Yellow=0; //EW 关黄灯显示信号

Time_EW=EWL;

WhiIe(Time_EW>=5)

{P仁S[6];//EW左拐绿灯亮,SN红灯

DiSPIay();}

P仁0X00;

WhiIe(Time_EW>=0)

{Flag_EW_YeIIow=1; //EN 开黄灯信号位

SN_Red=1;//EW 黄灯亮,等待停止信号,SN红灯DiSPIay();}

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

}

程序框图:

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

EW=EW1;

SN=SN1;

EWL=EWL1;

SNL=SNL1;

}

赋值********* */

主程序:

定时器TO:

CoUn

t==10 计时

0.5s

定时器中断开始

Cou nt==20 计

时Is

黄灯标志位

为1

黄灯标志位

为1

黄灯的值进行反转东西,南北方向时间减1

重装初值

黄灯的值进行反转

相关主题
文本预览
相关文档 最新文档