Contoh Program Serial komunikasi AVR USART dgn Interupsi pada AVR Studio

Teory dasar USART ada disini : https://pccontrol.wordpress.com/2013/07/04/pengetahuan-dasar-pemrograman-usart-serial-komunikasi-avr-microcontroller/

/*
* AVRGCC5.c
*
* Created: 5/9/2011 9:25:11 AM
* Author: PCcontrol
*/

#include

void inisialisasi_UART (void)
{
UCSRB = (1<<TXEN) | (1<<RXEN)|(1<<RXCIE);
UCSRC = (1<<UCSZ1) | (1<<UCSZ0) | ( 1<<URSEL);
UBRRL =0x33;
}

ISR(USART_RXC_vect)
{
if(UDR=’a’)      // jika data yg diterima = a maka balas dengan mengirm  “ok”
{
kirim_data(‘o’);
kirim_data(‘k’);
kirim_data(‘\r’); // enter = cr lf
kirim_data(‘\n’);
}

}

void kirim_data (char data)
{
while(! (UCSRA & (1<<UDRE) ));
UDR = data;
}

int main(void)
{

inisialisasi_UART();

while(1)
{
//TODO:: Please write your application code
//program utama disini

}

return 0;

}

Menghitung nilai UBRR

Rumus mencari : baudrate = ( Freq_xtal / 16(UBRR+1) )

nilai baudrate yang kita inginkan tergantung Frekwensi Xtal dan nilai register UBRR.
jika kita tahu nilai Xtal dan baudrate yang kita nginkan maka nilai UBRR yg mesti
kita cari dengan rumus sbb:
UBRR =(Freq_Xtal/(16(baudrate)))-1.

jadi jika diketahui nilai Frekwensi Xtal = 8 Mhz dan baudrate 9600 maka
UBBR =(8000000/(16(9600)))-1 =51,08 = 51 (desimal) atau 33 hexa.

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis.

Posted on 05/09/2011, in Pemrograman C AVR Studio. Bookmark the permalink. Leave a comment.

Komentar ,Saran atau Pertanyaan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: