Sunday, 28 August 2016

8051 C program to toggle all bits of P2 continuously every 500 ms.


A. Use Timer 1, mode 1 to create delay.





  1. XLAT = 11.0592 MHz

    #include <reg51.h>
    #define TOG P2;
    void delay(int time)
    {
                    unsigned int i;
                    TMOD=TMOD & 0x0f;
                    TMOD=TMOD | 0x10;

                     for(i=0;i<time;i++)
                     {
                    TH1=0xfc;
                    TL1=0x66;
                    TR1=1;
                     while(TF1==0);
                    TR0=0;
                    }
            }

          void main()
         {
                    while(1)
                    {
                    TOG=0xff;
                    delay(500);
                    TOG=0x00;
                    delay(500);
                    }
          }









  2. XLAT = 12 MHz

    #include <reg51.h>
    #define TOG P2;
    void delay(int time)
    {
                        unsigned int i;
        TMOD=TMOD & 0x0f;
        TMOD=TMOD | 0x10;

        for(i=0;i<time;i++)
        {
            TH1=0xfc;
            TL1=0x18;
            TR1=1;
            while(TF1==0);
            TR0=0;
        }
    }
                   
    void main()
    {
        while(1)
        {
            TOG=0xff;
            delay(500);
            TOG=0x00;
            delay(500);
        }
    }


















  3. XLAT = 22 MHz

    #include <reg51.h>
    #define TOG P2;
    void delay(int time)
    {
        unsigned int i;
        TMOD=TMOD & 0x0f;
        TMOD=TMOD | 0x10;
                   
                       for(i=0;i<time;i++)
        {
            TH1=0xf8;
            TL1=0xd7;
            TR1=1;
            while(TF1==0);
            TR0=0;
        }
    }

    void main()
    {
        while(1)
        {
            TOG=0xff;
            delay(500);
            TOG=0x00;
            delay(500);
        }
    }

















    B. Use Timer 0 , mode 2 to create delay.



  1. XLAT = 11.0592 MHz

    #include <reg51.h>
    #define TOG P2;
    void delay(int time)
    {
        unsigned int i;
        TMOD=TMOD & 0xf0;
        TMOD=TMOD | 0x02;
        TH0=0xA3;
        for(i=0;i<time*10;i++)
        {
            TR0=1;
            while(TF0==0);
            TR0=0;
        }
    }

    void main()
    {
        while(1)
        {
            TOG=0xff;
            delay(500);
            TOG=0x00;
            delay(500);
        }
    }

















  2.  XLAT = 12 MHz

    #include <reg51.h>
    #define TOG P2;
    void delay(int time)
    {
        unsigned int i;
        TMOD=TMOD & 0xf0;
        TMOD=TMOD | 0x02;
        TH0=156;
        for(i=0;i<time*10;i++)
        {
            TR0=1;
            while(TF0==0);
            TR0=0;
        }
    }

    void main()
    {
        while(1)
        {
            TOG=0xff;
            delay(500);
            TOG=0x00;
            delay(500);
        }
    }
















  3.  XLAT = 22 MHz



    #include <reg51.h>
    #define TOG P2;
    void delay(int time)
    {
        unsigned int i;
        TMOD=TMOD & 0xf0;
        TMOD=TMOD | 0x02;
        TH0=72;
        for(i=0;i<time*10;i++)
        {
            TR0=1;
            while(TF0==0);
            TR0=0;
        }
    }

    void main()
    {
        while(1)
        {
            TOG=0xff;
            delay(500);
            TOG=0x00;
            delay(500);
        }
    }

No comments:

Post a Comment