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 /   Try the code and update the

  Try the code and update the

|

Microcontroller › 8051 › GENERATING VARIABLE PWM ›   Try the code and update the

August 10, 2012 at 6:02 pm #8438
AJISH ALFRED
Participant

 

Try the code and update the result,

 

 

#include <reg51.h>
sbit INCREASE = P2^6;
sbit DECREASE = P2^7;
sbit MTR = P1^0;
void MSDelay(int value);
void main()
{
unsigned int on,off;
on=20;                                                                                             //initial value of ON time delay
off=0;                                                                                              //initial value of OFF time delay
 
while (1)
{
    while(ONE==1 && TWO==1)                                                  //when both keys are open
    {

        //—-generating PWM


//
        MTR=1;
        MSDelay(on);                                                                        //applying ON time delay
                                                                    
        MTR=0;
        MSDelay(off);                                                                        //applying OFF time delay
        //


//
    }

 

    //—when any of the key is down, exit from while loop and check which key is down–//
  

  if(INCREASE==0 && on<20)                                                 //if key increase is down check whether it has max value or not
    {

        on++;
        off–;                                                                                     //—-increment ON time delay if it is not maximum–//

       //


//
    }
    else if (TWO==0 && on>0)                                                     // if key decrease is down check whether it ON time delay >0//
    {

        on–;
        off++;                                                                                  //—-decrement ON time delay if it is not zero—-//

        //


//

 

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

//ADD DELAY HERE

 

MSDelay(1000);

 

    }
}

}
void MSDelay(int value)                                                               // Delay function //
{
int x;
for(x=0;x<=value;x++);
} 

RSS Recent Posts

  • H bridge current direction logic March 11, 2026
  • Very Curious Issue With DS3231 RTC Clock March 10, 2026
  • Distorted output from buffer March 10, 2026
  • Motor Getting Hot March 10, 2026
  • excessive technology in multimeters March 10, 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