0% found this document useful (0 votes)
21 views14 pages

Substation Code of The Project

This document contains code for an embedded system that monitors conditions in an electrical substation and triggers alerts and safety mechanisms. It uses various sensors to detect smoke, shocks, objects in proximity, heavy rain, and manual cut-off activation. When a condition is detected, it activates lights, sounds an alarm, and disables the relay to cut power. It displays status messages on an LCD screen.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views14 pages

Substation Code of The Project

This document contains code for an embedded system that monitors conditions in an electrical substation and triggers alerts and safety mechanisms. It uses various sensors to detect smoke, shocks, objects in proximity, heavy rain, and manual cut-off activation. When a condition is detected, it activates lights, sounds an alarm, and disables the relay to cut power. It displays status messages on an LCD screen.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

/* Code copyright to “Circuits Bazaar” for Educational purposes .

you can’t use it for commercial


purpose */

#include<reg51.h>

#define dataport P0

#define key P3

sbit rs = P2^7;

sbit rw = P2^6;

sbit en = P2^5;

sbit relay= P2^0;

sbit smoke = P1^0 ; // smoke

sbit shock = P1^1 ; // shock

sbit ir = P1^2 ; // object

sbit mag = P1^3 ; // door open

sbit tog = P1^4 ; // airbag

sbit micro = P1^5 ;


sbit red = P3^0 ;

sbit white = P3^1 ;

sbit buzzer = P3^2 ;

void delay(unsigned int msec) //Time delay function

int i,j ;

for(i=0;i<msec;i++)

for(j=0;j<1275;j++);

void lcd_cmd(unsigned char item) //Function to send command to LCD

dataport = item;

rs= 0;

rw=0;

en=1;

delay(1);

en=0;

return;

}
void lcd_data(unsigned char item) // Function to send data to LCD

dataport = item;

rs= 1;

rw=0;

en=1;

delay(1);

en=0;

return;

void lcd_data_string(unsigned char *str) // Function to send string to LCD

int i=0;

while(str[i]!='\0')

lcd_data(str[i]);

i++;

//delay(10);

return;

void lcd(unsigned char str[10]) // Function to send string to LCD


{

lcd_cmd(0x38);

lcd_cmd(0x0e);

lcd_data_string(str);

void main()

red=white=0;

buzzer=1;

relay =1;

lcd_cmd(0x01);

lcd_cmd(0x38);

lcd_cmd(0x0C);
lcd_cmd(0x01);

lcd_cmd(0x82);

lcd("Pre-Heating");

lcd_cmd(0xC5);

lcd(" Time ");

red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);
red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);
red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);

red=0;

delay(30);

red=1;

delay(50);

while(smoke==0);

delay(50);
while(1)

relay= white= 1 ;

red=0;

buzzer=1;

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd("Substation is in");

lcd_cmd(0xC0);

lcd("Good Condition");

delay(100);

while(smoke == 1 && shock == 0 && ir ==0 && mag == 0 && tog ==1 );

if(smoke==0)

while(smoke==0 || micro == 1)

red=1;

white =0;

relay=0;

buzzer=0;

lcd_cmd(0x01);
lcd_cmd(0x80);

lcd("Smoke / Fire ");

lcd_cmd(0xC0);

lcd(" Detected ");

delay(300);

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd("inside the ");

lcd_cmd(0xC0);

lcd("Electri. Chamber");

delay(300);

if(shock==0)

red=1;

white =0;

relay=0;

buzzer=0;

while(shock ==0 || micro == 1)

{
lcd_cmd(0x01);

lcd_cmd(0x80);

lcd("strong Vibration");

lcd_cmd(0xC0);

lcd("Shock, Frequency");

delay(200);

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd(" Detected Near");

lcd_cmd(0xC0);

lcd("Electri. Unit");

delay(200);

if(ir==1)

red=1;

white =0;

relay=0;
while(ir ==1 || micro == 1 )

buzzer=0;

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd("Object");

lcd_cmd(0xC0);

lcd(" Detected");

delay(200);

buzzer=1;

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd("In the Proxmity");

lcd_cmd(0xC0);

lcd("Danger Zone");

delay(200);

if(mag==0)
{

red=1;

white =0;

relay=0;

buzzer=0;

while ( mag == 0 || micro == 1 )

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd(" Heavy Rain ");

lcd_cmd(0xC0);

lcd(" Detected ");

delay(200);

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd(" Near The ");

lcd_cmd(0xC0);

lcd("Danger Zone");

delay(200);

if( tog==0 )

{
red=1;

white =0;

relay=0;

while ( tog == 0 )

buzzer=0;

delay(40);

buzzer=1;

lcd_cmd(0x01);

lcd_cmd(0x80);

lcd("MANUAL CUT OFF ");

lcd_cmd(0xC0);

lcd(" ACTIVATED");

delay(200);

}
}

You might also like