SERIAL USART

7
SERIAL USART A. DASAR TEORI Sistem USART ATMega8535 memiliki beberapa keuntungan dibandingkan dengan sistem UART, yaitu: a. Operasi full duplex. b. Mode operasi asinkron dan sinkron. c. Mendukung komunikasi multiprosesor. 1. Inisialisasi USART Berikut register yang perlu disetting untuk mengatur komunikasi serial USART: a. UBRR (USART Baud Rate Register) UBBR merupakan register 16 bit yang berfungsi melakukan penentuan kecepatan transmisi data yang akan digunakan. Dibagi menjadi dua, yaitu UBBRH dan UBBRL. Digunakan untuk menentukan baud rate USART. Gambar 3.1 USART Baud Rate Register Rumus : UBRR = (fosc/16xbaudrate)-1; untuk mode kecepatan normal asinkron b. UCSRA (USART Control and Status Register A) Tabel 3.1 Register UCSRA RXC TXC UDRE FE DOR PE U2X MPCM 1) RXC bernilai 1 jika ada data atau yang belum terbaca dan bernilai 0 jika tidak ada data. 2) TXC bernilai 1 jika keseluruhan data sudah terkirim.

description

USART, komunikasi serial, UCSRA, UCSRB, UCSRC, UBRR

Transcript of SERIAL USART

Page 1: SERIAL USART

SERIAL USART

A. DASAR TEORISistem USART ATMega8535 memiliki beberapa keuntungan dibandingkan

dengan sistem UART, yaitu:a. Operasi full duplex.b. Mode operasi asinkron dan sinkron.c. Mendukung komunikasi multiprosesor.

1. Inisialisasi USARTBerikut register yang perlu disetting untuk mengatur komunikasi serial USART:a. UBRR (USART Baud Rate Register)

UBBR merupakan register 16 bit yang berfungsi melakukan penentuan kecepatan transmisi data yang akan digunakan. Dibagi menjadi dua, yaitu UBBRH dan UBBRL. Digunakan untuk menentukan baud rate USART.

Gambar 3.1 USART Baud Rate RegisterRumus : UBRR = (fosc/16xbaudrate)-1; untuk mode kecepatan normal asinkron

b. UCSRA (USART Control and Status Register A)

Tabel 3.1 Register UCSRARXC

TXC UDRE FE DOR PE U2X MPCM

1) RXC bernilai 1 jika ada data atau yang belum terbaca dan bernilai 0 jika tidak ada data.

2) TXC bernilai 1 jika keseluruhan data sudah terkirim.3) UDRE adalah interup yang akan aktif jika UDRIE pada UCSRB diset 1. UDRE

bernilai 1 jika buffer kosong.4) FE bernilai 1 jika terjadi error pada proses penerimaan data.5) DOR bernilai 1 jika terjadi over run data, artinya ketika register penerimaan

telah penuh dan terdapat data baru yang menunggu.6) PE bernilai 1 jika terjadi error pada parity.7) U2X berhubungan dengan mode asinkron.8) MPCM berkaitan dengan proses multiprosesor.

Page 2: SERIAL USART

c. UCSRB (USART Control and Status Register B)UCSRB merupakan register 8 bit pengatur aktivasi penerima dan pengirim

USART. Digunakan untuk mengaktifkan penerimaan dan pengiriman data USART

Gambar 3.2 USART Control and Status Register B

RXEN : Jika di set 1 maka akan mengaktifkan penerimaanTXEN : Jika di set 1 maka akan mengaktifkan pengirimanRXCIE : Jika di set 1 maka akan mengaktifkan interupsi penerimaan

d. UCSRC (USART Control and Status Register C)UCSRC merupakan register 8 bit yang digunakan untuk mengatur mode

komunikasi USART.

Gambar 3.3 USART Control and Status Register C

URSEL : Jika di set 1 maka register UCSRC bisa diakses, sebab alamat register UCSRC dan UBRR samaUCSZ2..UCSZ0 : Menentukan ukuran karakter yang dikirimkan.Jika UCSZ2..UCSZ0 = 000 maka ukuran karakter 5 bitJika UCSZ2..UCSZ0 = 001 maka ukuran karakter 6 bitJika UCSZ2..UCSZ0 = 010 maka ukuran karakter 7 bitJika UCSZ2..UCSZ0 = 011 maka ukuran karakter 8 bitJika UCSZ2..UCSZ0 = 100-110 tidak digunakanJika UCSZ2..UCSZ0 = 111 maka ukuran karakter 9 bit

Page 3: SERIAL USART

Contoh inisialisasi USART :.equ fclock =11059200.equ baud_rate =19200.equ ubbr_value =(fclock / (16*baud_rate)) - 1init_usart:ldi temp,high(ubbr_value)out UBRRH,templdi temp,low(ubbr_value)out UBRRL,templdi temp,(1<<RXEN)|(1<<TXEN)|(1<<RXCIE)out UCSRB,templdi temp,(1<<URSEL)|(3<<UCSZ0)out UCSRC,temp

2. Pengiriman DataPengiriman data dilakukan per byte menunggu UDR kosong (UDR=register tempat

menyimpan data USART, menjadi satu dengan register UBRR). Jika kosong, maka bitUDRE (USART Data Register Empty) pada UCSRA akan set 1 sehingga siap menerimadata baru yang akan dikirim.

Contoh pengiriman USART:usart_tx:sbis UCSRA,UDRErjmp usart_txout UDR,txbyte

3. Penerimaan DataPenerimaan data dilakukan dengan memeriksa bit RXC (USART Receive

Complete) pada register UCSRA. RXC akan set 1 jika ada data yang siap dibaca. Data yang diterima akan disimpan pada register UDR.

Contoh penerimaan USART :usart_rx:sbis UCSRA,RXCrjmp usart_rxin rxbyte,UDR

Page 4: SERIAL USART

4. Contoh Program

.include"m8535def.inc"

.def temp =r16

.def txbyte =r17

.def rxbyte =r18

.equ fclock =11059200

.equ baud_rate =19200

.equ ubbr_value =(fclock / (16*baud_rate)) - 1.org 0x0000rjmp main

main: ldi temp,low(ramend)out spl,templdi temp,high(ramend)out sph,temprcall init_usart

loop: ldi zl,low(2*msg)ldi zh,high(2*msg)

load: lpmmov txbyte,r0cpi txbyte,0breq donercall usart_txinc zlrjmp load

done: rjmp done

init_usart:ldi temp,high(ubbr_value)out UBRRH,templdi temp,low(ubbr_value)

out UBRRL,templdi temp, (1<<RXEN)|(1<<TXEN)|(1<<RXCIE)out UCSRB,templdi temp,(1<<URSEL)|(3<<UCSZ0)out UCSRC,tempret

usart_tx:sbis UCSRA,UDRErjmp usart_txout UDR,txbyteret

usart_rx:sbis UCSRA,RXCrjmp usart_rxin rxbyte,UDRret

msg:.db "******Welcome To uPCi Labz******",13,10,0

Page 5: SERIAL USART

Keterangan: Angka 13,10 adalah kode ASCII untuk Enter. Jadi pesan akan ditampilkan pada baris baru di editor Hyper Terminal. Angka 0 menunjukkan akhir karakter dari pesan yang dikirim.