EngineersGarage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise
You are here: Home / Replies / I am attaching a code here.

I am attaching a code here.

|

Microcontroller › 8051 › to know about DTMF Controlled Home Automation System Using 8951 or 8051 › I am attaching a code here.

December 11, 2013 at 5:20 pm #10721
mrutyunjay parida
Participant

I am attaching a code here. You can use this hints for your project work.

This is not the complete working code.

 

You have to analyze it and rewrite your own code.

 

#include<reg51.h>
 
bit keylflag = 0x10;
bit key2flag = 0x11; 
bit key3flag = 0x12; 
bit key4flag = 0x13; 
bit stop_flag = 0x14; 
bit stop_flag1 = 0x15; 
bit stop_flag3 = 0x16; 
sbit IN1=P0^6; 
sbit IN2=P0^5;
sbit EN1=P0^7; 
sbit std=P0^4; 
sbit D1=P3^0; 
sbit D2=P2^1; 
sbit D3=P2^2; 
sbit D4=P2^3; 
sbit red=P1^0; 
sbit green1=P1^1; 
sbit green2=P1^4;
sbit green3=P1^5; 
sbit green4=P1^6; 
 
void int0_init(); 
void intl_init(); 
void start_motor(); 
void start_motorl(); 
 
void main() 
{
red = 0; //red led off 
green1 = 0; //greenl led off 
green2 = 0; //green2 led off 
green3 = 0; //green3 led off 
green4 = 0; //green4 led off
 
 
keylflag = 0; //clear keylflag 
key2flag = 0; //clear key2flag 
key3flag = 0; //clear key3flag 
key4flag = 0; //clear key4flag 
stop_flag = 0; //clear stopflag 
stop_flagl = 0; //clear stopflagl 
stop_flag3 =0; //clear stopflag3 
 
EN1=0; // motor stop
IN1=0; 
IN2=0; 
 
while(1) 
{
 
if(D1==1 && D2==0 && D3==1 && D4==0) // FOR KEY 1 
{
red =0 //red led off 
green1 =1; //green1 led on 
green2 =0; //green2 led off 
green3 =0; //green3 led off 
green4 =0; //green4 led off 
key1flag =1; //make key1flag high 
}
 
else if(D1==1 && D2==0 && D3==0 && D4==1) //for key2 
{
red =0; //red led off 
green1 =0; //green1 led off 
green2 =1; //green2 led on 
green3 =0; //green3 led off 
green4 =0; //green4 led off 
 
key2flag = 1 //make key2flag high 
}
 
else if(D1==1 && D2==0 && D3==0 && D4==0) // for key 3 
{
red =0; //red led off 
greenl =0; //green1 led off 
green2 =0; //green2 led off 
green3 =1; //green3 led on 
green4 =0; //green4 led off 
 
key3flag =1; //make key3flag high 
}
 
else if(D1=1 && D2=0 && D3==1&& D4==0) // for key 4 
{
red =0; //red led off 
greenl =0; //green1 led off 
green2 =0; //green2 led off 
green3 =0; //green3 led off 
green4 =1; //green4 led on
 
key4flag =0; //make key4flag high
 
if((keylflag ==1) && (key2flag ==1) && (key3flag ==1) && (key4flag ==1)) 
{
 
startmotor(); //open the door 
key1flag = 0; //clear key1flag 
key2flag = 0; //clear key2flag 
key3flag = 0; //clear key3flag 
key4flag = 0; //clear key4flag
 
while(stopflag3 == 0) 
{
if(D1==0&&D2=1&&D3=1&&D4==0) // for key 9 
{
start—motorl(); //close the door 
stopflag3 =1; //set stop3 flag 
}
}
stopflag3 = 0; //clear stop3flag 
}
}
else
{
red 1; //red led on 
green1 = 0; //green1 led off 
green2 = 0; //green2 led off 
green3 = 0; //green3 led off 
green4 = 0; //green4 led off 
}
}
}
 
 
void startmotor()
{
 
EN1 =1; //rotate the motor in clockwise direction 
IN1 =1;
IN2 =0;
 
 
intO_init(); //initialise the interrupt 
while(stopflag == 0); //wait here till stopflag goes to high 
stopflag =0; //clear stopflag 
}
 
void intO_init() 
{
EX0=1; //ENABLE INTO INTERRUPT 
IT0 =1; // MAKE INTO Is FALLING EDGE TRIGGERED 
}
 
void intO_isr(void) interrupt 0 // EXTERNAL INTERRUPTO ISR 
{
EN1 =0;//stop motor 
IN1 =0; 
IN2 =0;
 
stop_flag =1; //set stop_flag 
}
 
void start_motor1()
{
EN1 =0; //rotate motor in anticlockwise direction 
IN1 =0;
IN2 =1;
 
int1_init(); //initialise interupt1 
while(stop_flag1=1); //wait here till the stop_flag1 goes to zero 
stop_flag1= 0;//clear stop_flag1 
}
 
void int1_init()
{
EX1=1; // ENABLE iNT1 iNTERRUPT 
IT1=1; // MAKE INT1 IS FALLING EDGE TRIGGERED 
}
 
void intl_isr(void) interrupt 1 // EXTERNAL INTERRUPT1 ISR 
{
EN1 =0; //stop motor
IN1 =0;
IN2 =0;
stopflag1=1; //set stopflagl 
}
 

RSS Recent Posts

  • Happy Pi day. March 15, 2026
  • Please could you advise me on this circuit for car OBD2 March 15, 2026
  • Noise problem March 14, 2026
  • Cubloc modbus settings with rs485 March 14, 2026
  • Measuring microphone output March 14, 2026

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2026 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy | Advertising | About Us

Search Engineers Garage

  • Engineers Garage Main Site
  • Visit our active EE Forums
    • EDABoard.com
    • Electro-Tech-Online
  • Projects & Tutorials
    • Circuits
    • Electronic Projects
    • Tutorials
    • Components
  • Digi-Key Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Advertise