/* ===================================================
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