Minggu, 01 Mei 2011

DASAR 7 ; Port 1 sbg KEYPAD port

* =================================================================
Nama : Praktek4
Fungsi :-Mengenal manipulasi outport, shif register pass parameter. 
 -Memanfaatkan sistem Timer untuk time delay
 -Memanfaat sistem interupt timer untuk time delay
 -Memanfaatkan Port1 sebagai input port 
 -Port1 sebagai input bilangan desimal 2 digit
===================================================================*/

#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 delay2(int mul)
{
while(dly_stone< (500*mul));
}

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

void delay1(int mul)
{int i,j;
for(i=0; i< mul*1000;i++)
 for(j=0;j < mul*1000;j++);
}
//-----------------------------------------------------------------------------

void timer0 (void) interrupt 1 using 2 
{
TL0=0xFF;
TH0=0xDB;
++dly_stone;
}
//-----------------------------------------------

int GetInputDesimal(void)
{
unsigned char bcd_data, bin_data;
bcd_data = P1;

return bin_data;
}
//-----------------------------------------------
void main(void)
{unsigned char data1;
InitTimer0();
IE = 0x82;
data1 = 0x03;
for(;;)
 {
 P0 = data1;
 delay1(1);
 if ((P1 & 0x01) == 0x01)data1= data1 << 1;
 else data1= data1 >> 1;
 if (CY == 1) data1 |= 0x01;
 delay2(1);
 }
}

//-------------------------- end file of Praktek7.c -----------------------

Tidak ada komentar:

Posting Komentar