Skip to main content

home appliance control 8051 code

#include <REGX52.H>
#include <string.h>
#include <ctype.h>
#include "lcd.c"
#include "serial.c"

#define MAX_DELAY() delay(65000)

sbit Device=P0^0;

bit Dev_Stat=0;

unsigned char SE_INTR_ST = 0;
unsigned char re_str[6], number[14];
unsigned char dummy[6];


void intro()
{
 lcd_init();
 lcd_str(" Applaince Ctrl ",0x80);
 lcd_str("Using GSM - 8051",0xc0);
 MAX_DELAY();MAX_DELAY();
MAX_DELAY();MAX_DELAY();
 lcd_clr();
 }

void serial0() interrupt 4
{
char z;
if(RI==1)
{
z=SBUF;RI=0;
if(z=='+')
SE_INTR_ST = 1;
}
}

void temp_receive(unsigned char r)
{
unsigned char ten;
do
{
ten=se_rx();
}while(ten!=r);
}

void gsmread(const unsigned char *str,char limit,unsigned char *dummy_str)
{
unsigned char i,temp,lmt_chk = 0;
lcd_clr();
while(*str!='\0')
{
se_tx(*str);
str++;
}
se_tx('\r');//se_tx(0x0a);
if(limit==1)
{
for(i=0;i<2;i++)
temp_receive('"');temp_receive('1');
i=0;
do
{
temp=se_rx();
if(isdigit(temp))
{
number[i]=temp; i++;
}
}while(temp!='"');
temp_receive(0x0d);
number[i]='\0';
}
// if(RI == 1)
// do
// {
// temp=se_rx();
// }
// while(isalnum(temp) || (temp == '=') || (temp == '+'));
if(limit!=1)
temp_receive('O');
i=0;lmt_chk = 0;
do
{
temp=se_rx();
if(isalnum(temp))
{
lmt_chk = 1;
dummy_str[i]=toupper(temp); i++;
}
}while(((temp!=0x0d) || (lmt_chk == 0)) && (i < 10));
dummy_str[i]='\0';

if(limit==1)
{
temp_receive(0x0d);
temp_receive(0x0d);
temp=se_rx();
lcd_clr();
}
delay(5000);
}

void msgdelete()
{
gsmread("AT",0,dummy);
lcd_str(dummy,0xc0);delay(50000);
gsmread("AT+CMGF=1",0,dummy);
lcd_str(dummy,0xc0);delay(50000);
gsmread("AT+CMGD=1",0,dummy);
lcd_str(dummy,0xc0);delay(50000);
}

void main()
{
unsigned char i=0;
Device = 0;
intro();
se_init();
delay(35000);//se_gsm("Testing Testing");while(1);
msgdelete();
lcd_clr();
delay(50000);
TI = 0; RI = 0;
delay(5000);
EA=1; //Enabling Global interrupt
ES=1; //Enabling Serial interrupt
while(1)
{
 if(SE_INTR_ST == 1)
{
IE=0x00;

SE_INTR_ST = 0;
lcd_clr();
lcd_str("Msg Received",0x80);
delay(65000);delay(65000);
TI = 0; RI = 0;
delay(65000);

gsmread("AT",0,dummy); //lcd_str(dummy,0xc0);delay(50000);
gsmread("AT+CMGF=1",0, dummy); //lcd_str(dummy,0xc0);delay(50000);
gsmread("AT+CMGR=1",1, re_str); //lcd_str(re_str,0xc0);delay(50000);
gsmread("AT+CMGD=1",0, dummy); //lcd_str(dummy,0xc0);delay(50000);

lcd_clr();
lcd_str(re_str,0x80);
// lcd_str(number,0xc0);
MAX_DELAY();MAX_DELAY();
// MAX_DELAY();MAX_DELAY();
lcd_clr();
if(!strcmp(re_str,"DONN"))
{
lcd_str("Device turned On",0x80);
Device = 1;Dev_Stat = 1;
}
else if(!strcmp(re_str,"DOFF"))
{
lcd_str("Device turnd Off",0x80);
Device = 0;Dev_Stat = 0;
}
else
{
lcd_str("  Wrong Format  ",0x80);
}
MAX_DELAY();MAX_DELAY(); MAX_DELAY();
IE=0x90;
}
else
{
lcd_clr();
lcd_str("No Msg Received",0x80);
if(Dev_Stat == 1)
{
lcd_str("Device turned On",0xc0);
}
else
{
lcd_str("Device turnd Off",0xc0);
}
while(SE_INTR_ST == 0);
}
}
}

Comments

Popular posts from this blog

Jio

Reliance Jio planning its own  cryptocurrency called JioCoin  elder son Akash Ambani leading the JioCoin project, Reliance Jio plans to build a 50-member team of young professionals to work on blockchain technology, which can also be used to develop applications such as smart contracts and supply chain management logistics

garbage monitoring using arduino code with gsm

#include <SoftwareSerial.h> #include <LiquidCrystal.h> //LiquidCrystal lcd(7, 6, 5, 4, 3, 2); LiquidCrystal lcd(13, 12, 11, 10, 9, 8); SoftwareSerial mySerial(0,1); #define trigPin 2 #define echoPin 3 #define PIR_sensor 4 #define m11 5 #define m12 6 void setup() {    lcd.begin(16, 2);    lcd.print("    Garbage    ");    Serial.println("garbage ");   lcd.setCursor(0,1);   lcd.print("   Open Close    ");   Serial.println(" open close");   delay(3000);   lcd.clear();   //lcd.print(" ");   delay(2000); mySerial.begin(9600); // Setting the baud rate of GSM Module Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT);  pinMode(m11, OUTPUT);   pinMode(m12, OUTPUT);   } void loop() {  readPIR();  pingDist();  SendMessage(); } void pingDist ()   {     long duration, distance;...