Dalam mikrokontroler ATMega8535 terdapat fitur USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter ), merupakan salah satu mode komunikasi yang dimiliki oleh Mikrokontroler ATMega8535. USART memiliki 2 pin (RxD dan TxD) untuk Asynchronous dan 3 bit TxD, RxD, xCK untuk Synchronous.
Untuk mengatur komunikasi USART dilakukan melalui beberapa register yaitu :
- USART Data Register (UDR)
Register ini merupakan register yang paling penting dalam komunikasi serial ini. Sebab data yang dikirim keluar harus ditempatkan pada register ini. Rrgister ini berfungsi sebagai buffer untuk menyimpan data, baik yang akan dikirim maupun yang diterima.
- USART Control and Status Register A (UCSRA)
Mempunyai 8 bit yang memiliki fungsi masing-masing:
Bit 7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
RXC |
TXC |
UDRE |
FE |
DOR |
PE |
U2X |
MPCM |
||
R |
R/W |
R |
R |
R |
R |
R/W |
R/W |
||
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
*) Bit-7 / RXC : | (USART Receive Complete), digunakan untuk mengetahui penerimaan data, jika bernilai 1 maka ada data baru yang diterima RXB dan belum terbaca, dan jika bernilai 0 maka sebaliknya. |
*) Bit-6 / TXC : | (USART Transmit Complete), digunakan untuk mengetahui pengiriman data, jika bernilai 1 maka ada data baru yang diterima TXB dan belum terbaca, dan jika bernilai 0 maka sebaliknya. |
*) Bit-5 / UDRE : | (USART Data Register Empty), digunakan untuk mengetahui isi UDR, jika bernilai 1 maka register UDR kosong, dan jika bernilai 0 maka sebaliknya. |
*) Bit-4 / FE : | (Frame Error), digunakan untuk mengetahui terjadinya frame error pada penerimaan data. |
*) Bit-3 / DOR : | (Data Over Run), digunakan untuk mengetahui kondisi over run dimana data yang masuk terlalu cepat. |
*) Bit-2 / PE : | (Parity Error), digunakan untuk mengetahui terjadinya parity error. |
*) Bit-1 / U2X : | (Double the Usart Transmission Speed), digunakan untuk membuat kecepatan transfer data menjadi 2x lipat. |
*) Bit-0 / MPCM : | (Multi Processor Communication Mode), digunakan pada komunikasi multi prosesor. |
- UCSRB (USART Control and Status Register B):
Mempunyai 8 bit yang memiliki fungsi masing-masing:
Bit 7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||
RXCIE |
TXCIE |
UDRIE |
RXEN |
TXEN |
UCSZ2 |
RXB8 |
TXB8 |
||
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R |
R/W |
||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
*) Bit-7 / RXCIE : | (RX Complete Interrupt Enable), untuk mengaktifkan interupsi RX, jika bernilai 1 interupsi aktif dan jika bernilai 0 maka sebaliknya. | ||||||
*) Bit-6 / TXCIE : | (TX Complete Interrupt Enable), untuk mengaktifkan interupsi TX, jika bernilai 1 interupsi aktif dan jika bernilai 0 maka sebaliknya. | ||||||
*) Bit-5 / UDRIE : | (USART Data Register Empty Interrupt Enable), digunakan untuk mengaktifkan interrupt UDR, jika bernilai 1 interupsi aktif dan jika bernilai 0 maka sebaliknya. | ||||||
*) Bit-4 / RXEN : | (Receiver Enable), digunakan untuk mengaktifkan receiver, jika bernilai 1 maka aktif dan jika bernilai 0 maka sebaliknya. | ||||||
*) Bit-3 / TXEN : | (Transmitter Enable), digunakan untuk mengaktifkan transmitter, jika bernilai 1 maka aktif dan jika bernilai 0 maka sebaliknya. | ||||||
|
UCSZ2 |
|
UCSZ1 |
UCSZ0 |
Ukuran Karakter |
||
|
|
|
|
|
|||
|
0 0 0 0 1 1 1 1 |
|
0 0 1 1 0 0 1 1 |
0 1 0 1 0 1 0 1 |
5 bit 6 bit 7 bit 8 bit Reserved Reserved Reserved 9 bit |
||
*) Bit-2 / UCSZ2 : | (Character Size), digunakan bersamaan dengan UCSZ1 & UCSZ0, berfungsi untuk menentukan ukuran data dalam 1 frame. | ||||||
*) Bit-1 / RXB8 : | (Receive Data 8 bit), bit ke-9 dari data yang diterima bila menggunakan 9 bit. | ||||||
*) Bit-0 / TXB8 : | (Transmit Data 8 bit), bit ke-9 dari data yang dikirim bila menggunakan 9 bit. | ||||||
- UCSRC (USART Control and Status Register C):
Mempunyai 8 bit yang memiliki fungsi masing-masing:
Bit 7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|||||||||
URSEL |
UMSEL |
UPM1 |
UPM0 |
USBS |
UCSZ1 |
UCSZ0 |
UCPOL |
|||||||||
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
R/W |
|||||||||
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
|||||||||
*) Bit-7 / URSEL : | (USART Register Select) untuk memilih register yang digunakan yaitu register UCSRC atau UBRRH karena kedua register ini menempati lokasi register i/o yang sama. Jika bernilai 1 maka UCSRC yang dipilih dan jika bernilai 0 maka UBRRH yang dipilih. | |||||||||||||||
*) Bit-6 / UMSEL : | (USART Mode Select) digunakan untuk menentukan mode komunikasi, jika bernilai 1 maka synchronous mode yang dipilih dan jika bernilai 0 maka ansynchronous yang dipilih. | |||||||||||||||
*) UPM 1 dan 0 :
Bit 5 & Bit 4
|
(USART Parity Mode) untuk mengatur parity dengan setting: |
|||||||||||||||
*) Bit-3 / USBS : | (USART Stop Bit Select) untuk menentukan jumlah stop bit dalam setiap frame. Jika bernilai 0 maka panjang stop bit adalah 1 bit, jika bernilai 1 maka panjang stop bit adalah 2 bit.
|
|||||||||||||||
*) UCSZ1 & UCSZ0 :
Bit 2 & Bit 1
|
(USART Character Size) sama seperti pengertian sebelumnya. | |||||||||||||||
*) Bit-0 / UCPOL : | (USART Clock Parity) untuk mengatur mode transisi clock, berlaku hanya pada synchronous saja. | |||||||||||||||
UCPOL |
Pin TxD |
Pin RxD |
0 |
Transisi Naik XCK |
Transisi Turun XCK |
1 |
Transisi Turun XCK |
Transisi Naik XCK |