Sunday, 28 August 2016

Genrate Frequancy In 8051 GPIO Pin Using Switch

A switch is connected to pin P1.2. Write an 8051 C program to monitor SW and create the following frequencies on pin P1.7:
SW = 0 :-  500 Hz
SW  = 1 :- 750 Hz
XLAT=14MHz





#include<reg51.h>
sbit S=P1^2;
sbit OUTPUT=P1^7;
void delay_1(unsigned int T)
{
    unsigned int i;
    TMOD=TMOD & 0xF0;
    TMOD=TMOD | 0x01;
    for(i=0;i<T;i++)
    {
        TH0=0xFC;
        TL0=0x18;
        TR0=1;
        while(TF0==0);
        TR0=0;
    }
}
void delay_2(unsigned int T)
{
 unsigned int i;
 TMOD=TMOD & 0xF0;
     TMOD=TMOD | 0x02;
 TH0=255;
 for(i=0;i<T;i++)
 {
  TR0=1;
  while(TF0==0);
  TR0=0;
 }
}
void main()
{
    if(S==0)
    {
        OUTPUT=1;
        delay_1(2);
        OUTPUT=0;
    }
    else
    {
        OUTPUT=1;
        delay_2(1333);
        OUTPUT=0;
    }
}

No comments:

Post a Comment