Introduction

This documentation provides an overview of a Traffic Light Control System implemented using an 8051 microcontroller. The system is designed to control a set of traffic lights and pedestrian lights at an intersection. It also includes a feature to adjust the intensity of streetlights based on the ambient light level sensed by a Light Dependent Resistor (LDR).

Schematic Diagram

SCHEMATIC.png

Hardware Components

The project makes use of several essential hardware components to ensure its functionality. These components include:

By utilizing these carefully selected hardware components, the project is able to function effectively and deliver the desired results reliably and efficiently.

Pin Connections

LEDs for Traffic Lights

LEDs for Pedestrian Signals

Light Sensor and Output

Code Structure

#include <reg51.h>	// Standard 8051 defines

sbit T1_R = P1^2;
sbit T1_Y = P1^1;
sbit T1_G = P1^0;

sbit T2_R = P1^5;
sbit T2_Y = P1^4;
sbit T2_G = P1^3;

sbit T3_R = P3^0;
sbit T3_Y = P1^7;
sbit T3_G = P1^6;

sbit T4_R = P3^3;
sbit T4_Y = P3^2;
sbit T4_G = P3^1;

sbit T5_R = P3^5;
sbit T5_G = P3^4;

sbit P1_R = P3^6;
sbit P1_G = P3^7;

sbit P2_R = P0^0;
sbit P2_G = P0^1;

sbit LDR = P0^2;
sbit LED = P0^3;
// Define Signal pins

// Initialize functions
void delay(unsigned int);
void streetlight();

void main()
{	
	// Initialize traffic light states
  T1_R = T2_R = T3_R = T4_R = T5_R = 0;
  T1_Y = T2_Y = T3_Y = T4_Y = 0;
  T1_G = T2_G = T3_G = T4_G = T5_G = 0;
	P1_R = P2_R = 0;
	P1_G = P2_G = 0;
  delay(1000);
	T1_R = T2_R = T3_R = T4_R = T5_R = 0;
  T1_Y = T2_Y = T3_Y = T4_Y = 1;
  T1_G = T2_G = T3_G = T4_G = T5_G = 1;
	P1_R = P2_R = 1;
	P1_G = P2_G = 0;
	delay(1000);
	while(1)
		{
			T1_R = T5_R = P1_G = 1;
			T1_G = T5_G = P1_R = 0;
			streetlight();
			delay(5000);
			T1_G = 1;
			T1_Y = 0;
			streetlight();
			delay(3000);
			T1_Y = 1;
			T5_G = P1_R = 1;
			T1_R = T5_R = P1_G = 0;
			
			T2_R = 1;
			T2_G = 0;
			streetlight();
			delay(5000);
			T2_G = 1;
			T2_Y = 0;
			streetlight();
			delay(3000);
			T2_Y = 1;
			T2_R = 0;
			
			T3_R = 1;
			T3_G = 0;
			streetlight();
			delay(5000);
			T3_G = 1;
			T3_Y = 0;
			streetlight();
			delay(3000);
			T3_Y = 1;
			T3_R = 0;
		
			T4_R = P2_G = 1;
			T4_G = P2_R = 0;
			streetlight();
			delay(5000);
			T4_G = 1;
			T4_Y = 0;
			streetlight();
			delay(3000);
			T4_Y = P2_R = 1;
			T4_R = P2_G = 0;
		}
}

void delay(unsigned int a)
{
	unsigned int i,j;
	for(i=0;i<a;i++)
	{
		for(j=0;j<1275;j++)
		{
			streetlight();
		}
	}
}

void streetlight()
{
	if (LDR == 0)
	{
		LED = 0;
	}
	else
	{
		LED = 1;
	}
}

Header Files