Komunikasi UART



1. Hardware [Kembali]



2. Rangkaian Simulasi [Kembali]

3. Flowchart [Kembali]





4. Listing Program [Kembali]

//MASTER

#define button 2 //Deklarasi pin 2 untuk button

void setup()        //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(button, INPUT_PULLUP);
  Serial.begin(9600); //Set baud rate 9600
}

void loop()         //Semua kode dalam fungsi ini dieksekusi berulang
{
  int nilai = digitalRead(button);

  //Button ditekan
  if (nilai == 0)
  {
    Serial.print("1");
  }
  else
  {
    Serial.print("2");
  }

  delay(200);
}

//SLAVE

#define led 12 //Deklarasi pin 12 untuk LED

void setup()    //Semua kode dalam fungsi ini dieksekusi sekali
{
  pinMode(led, OUTPUT); //Deklarasi LED sebagai output
  Serial.begin(9600);           //Set baud rate 9600
}

void loop()                          //Semua program dalam fungsi ini dieksekusi berulang
{
  if (Serial.available() > 0)
  {
    int data = Serial.read();
    if (data == '1') //Jika data yang dikirimkan berlogika
    {
      digitalWrite(led, HIGH); //LED menyala
    }
    else
    {
      digitalWrite(led, LOW); //LED mati
    }

  }
}


5. Video [Kembali]





6. Analisa [kembali]
  Bagaimana proses pengiriman data pada UART!
  Terdapat 4 macam mode kerja :

  • Mode 0 – bekerja sebagai sarana komunikasi data seri sinkron, data seri dikirim dan diterima melalui kaki RxD, sedangkan kaki TxD dipakai untuk menyalurkan clock yang diperlukan komunikasi data sinkron. Data ditransmisikan per 8 bit dengan kecepatan transmisi data (Baud rate) tetap, sebesar 1/12 frekuensi kerja dari AT89C2051.
  • Mode 1 – mode ini dan 2 mode berikutnya merupakan sarana komunikasi seri asinkron. Data seri dikirim melalui kaki TxD, dan diterima dari kaki RxD. Data ditransmisikan per 10 bit, terdiri atas 1 bit Start (‘0’), 8 bit data dan 1 bit stop (‘1’). Kecepatan transmisi data (Baud Rate) ditentukan lewat Timer 1, bisa diatur untuk berbagai kecepatan.
  • Mode 2 – Data seri dikirim melalui kaki TxD, dan diterima dari kaki RxD. Data ditransmisikan per 11 bit, terdiri atas 1 bit Start (‘0’), 8 bit data, 1 bit data tambahan (bit ke 9) dan 1 bit stop (‘1’). Kecepatan transmisi data (Baud Rate) hanya bisa dipilih 1/32 atau 1/64 frekuensi kerja dari AT89C2051.
  • Mode 3 – Data seri dikirim melalui kaki TxD, dan diterima dari kaki RxD. Data ditransmisikan per 11 bit, terdiri atas 1 bit Start (‘0’), 8 bit data, 1 bit data tambahan (bit ke 9) dan 1 bit stop (‘1’). Sesungguhnya Mode 2 dan 3 sama persis, perbedaannya adalah kecepatan transmisi data (Baud Rate) mode 3 ditentukan lewat Timer 1, bisa diatur untuk berbagai kecepatan, persis sama dengan mode 1

7. Link Download [Kembali]
     1. Listing Program Master
     2. Listing Program Slave
     3. Video
 

No comments:

Post a Comment