Saturday, November 5, 2011

Pembacaan dan Penulisan Port pada 8051

Assalamualaikum
Salam
Ok sekarang kita akan membahas tentang Pembacaan dan Penulisan Port pada microkontroller MCS 51 series

Simple Teory
Microkontroller 8051 / MCS 51 mempunyai 4 buah Port ini tergantung series micro-nya, port ini difungsikan sebagai masukkan dan keluaran. Pengubahan fungsi keluaran dan masukan pada port tidak perlu ada proses inisialisasi. 4 port ini berada di Spesial Fungtion Register (SFR ). no port dan nama serta alamat dapat dilihat table dibawah ini.

NoNamaAlamat
1P10x80
2P20x90
3P30x0A
4P40x0B

semua port dilengkapi dengan resistor Pull-Up, kecuali P0 yang open drain. Oleh kerena itu P0 membutuhkan resistor Pull-Up secara eksternal.
Port dapat diakses (baca atau tulis) secara byte (8 bit) atau bit( 0 dan 1). operasi yang berhubungan dengan operasi baca tulis port dapat berupa operasi Bitwise atau logika.
nah untuk pembacaan port dan penulisan port ini sering digunakan mengambil keputusan. salah satu cara mengambil keputusan dengan metode ifelseelse if.
contoh :

if (penyeleksian)
{
  Pernyataan1;
}
else if (penyeleksian)
{
Pernyataan2;
}
else
{
pernyataan3;
}
ok langsung aja anda bisa langsung melihat video dan pembahasan dibawah ;)

ok dibawah ini simple scriptnya
#include <at89x51.h> //preprocessor atau register untuk 8051
void main()
{
unsigned char buffer; // deklarasi var buffer type char takbertanda -> di video "bertanda"  heheh males ralatnya disini aja di ralat :D
while(1) // dieksekusi terus-menerus
{
buffer = P1;  //nilai Port 1 di berikan pada buffer
P2 = buffer;  // lalu Port 2 kerjakan apa yang diperintahkan Port 1 -> di video "port 1" heheh males ralatnya disini aja di ralat :D
}
}


Pengambilan Keputusan dengan if
/*
Pembacaan dan penulisan port
Bitwise dan penyeleksian if
adhyrasade.wordpress.com
*/
#include <at89x51.h>//preprocessor atau register untuk 8051
 int main()
{
unsigned char buffer;
char A,B,C;
A=P2_0; //P1_0 ini contoh untuk mengakses Port per bit
B=P2_1;
C=P2_2;
for(;;) // sama dengan while(1)
{
  if(A&B) //a dan b bernilai 1 maka akan menjalakan pernyataan didalam kalang.
  {
  buffer = 0x0f;
  P2 = buffer;  //P2 = 00001111
  buffer = 0;
  return 0;
  }
  else if((A&B)|(B&C)) //ab = 0, bc =0 pernyataan tidak dijalakan
  {  P2 = 2;  }                        //ab = 0, bc =1 pernyataan didalam kalang dijalakan P2 = 00000010
                                                 //ab = 1, bc =0 pernyataan didalam kalang dijalakan
                                                 //ab = 1, bc =1 pernyataan didalam kalang dijalakan
  else
  {  P2 = 0;  }    // P2 = nol logic low
 } //end for(;;)
}//end

Perlengkapan
Editor dan Simulator Menggunakan Keil uv4
semoga bermanfaat :)
thanks







No comments:

Post a Comment

Please Comment