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

  • Raise your hand if your car had one of these: July 8, 2025
  • Tektronix 2235 channel 1 trace unstable July 8, 2025
  • How to make string LEDs? July 8, 2025
  • Wideband matching an electrically short bowtie antenna; 50 ohm, 434 MHz July 8, 2025
  • The Analog Gods Hate Me July 8, 2025

Stay Up To Date

Newsletter Signup
EngineersGarage

Copyright © 2025 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