USART Pada Mikrokontroler ATMEGA16

USART (Universal Syncronous Asyncronous Receiver/Transmiter) pada mikrokontroler ATMEGA16 memiliki beberapa keuntungan diantaranya ialah operasi full duplex (memiliki register receive dan transmiter yang terpisah), mendukung komunikasi multiprosesor dan kecepatan transmisi berorde Mbps.
Dalam Uji coba kali ini mikrokontroler ATMEGA16 akan berkomunikasi secara USART dengan komputer melalui port serial. berikut rangkaian uji coba lengkapnya :
USART_1
Mikrokontroler akan menerjemahkan data yang dikirimkan PC dan menyalakan / mematikan LED berdasarkan data yang diterima dari PC.

RS232
Chip Max 232 dalam uji coba ini berfungsi untuk mengkonversi level tegangan mikrokontroler ke level tegangan komunikasi serial PC dan sebaliknya.
Berikut merupakan aplikasi yang digunakan untuk menguji coba komunikasi serial antara mikrokontroler dan PC :
MICU
Aplikasi ini dapat di download disini
Aplikasi ini berfungsi untuk mengirimkan data ke mikrokontroler dan menerima data dari mikrokontroler. dalam uji coba ini LED akan menyala ketika dikirimkan data ‘1’ dan padam ketika dikirimkan data ‘0’. Ketika LED menyala mikrokontroler akan mengirimkan string “LED ON” kepada PC dan dalam aplikasi akan menampilkan string yang dikirimkan mikrokontroler.
Program lengkap dan penjelasan uji coba ini dapat dilihat berikut ini :
#include <mega16.h>
#include <delay.h>

// Standard Input/Output functions
#include <stdio.h>
unsigned char data;

void main(void)
{
PORTC=0xff;  //Pull Up internal diaktifkan
DDRC=0xff;
//PORTA sebagai Output
//// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;

while (1)
      { 
       data=getchar();delay_ms(1000); //Baca data yang dikirimkan PC simpan dalam var data
      if(data=='1'){PORTC=0x00;printf ("\n LED ON");}  //Jika data=1 LED on, kirimkan LED ON 
      if(data=='0'){PORTC=0xff;printf ("\n LED OFF");}  //Jika data=1 LED on, kirimkan LED ON
      }
}

1 komentar:

saya ingin bertanya bang, apakah program ini sama jika kita menggunakan dua buah micro. jadi transmitternya menggunakan micro juga. dan menghidupkan led menggunakan button dari transmitternya....
mohon bantuannya bang...