Minggu, 03 April 2011

DASAR3, MEMBUAT DELAY TIME

/* ===================================================
Nama : Praktek3
Fungsi :
        - Mengenal manipulasi outport, shif register pass parameter.
        -Memanfaatkan sistem Timer untuk delay
====================================================*/

#include <at89x52.h>
#include <STRING.H>

int dly_stone;

//-----------------------------------------------

void InitTimer0(void)
{
TL0  = 0xFF;        // 10 ms
TH0  = 0xDB;
TMOD = 0x01;        // mode 1
TR0=1;                // timer-0 On
}
//-----------------------------------------------

void InitTimer1(void)
{
TL1  = 0xFF;        // 10 ms
TH1  = 0xDB;
TMOD = 0x10;        // mode 1
TR1=1;                // timer-0 On
}
//------------------------------------------------

void delay2(int mul)
{
dly_stone = 0; do {
     if(TF1 == 1)
        {dly_stone++;
         TF1=0;
        TL0  = 0xFF;        // 10 ms
       TH0  = 0xDB;
        }
    } while(dly_stone< (50*mul));
}

//------------------------------------------------

void delay1(int mul)                  //variabel mul sbg  pass parameter untuk fungsi delay1
{int i,j;
for(i=0; i< mul*10;i++)
    for(j=0;j < mul*100;j++);                   // j++ => j = j + 1
}
//-----------------------------------------------------------------------------

void main(void)
{unsigned char data1;
InitTimer0();
data1 = 0x03;
for(;;)
    {
    P2 = data1 ^ 0xFF;
//    delay1(1);  // delay(5);
    data1= data1 << 1;
    if (CY == 1) data1 |= 0x01;
    delay2(1);
    }
}

Tidak ada komentar:

Posting Komentar