Anda di halaman 1dari 8

1

MODUL V
KOMUNIKASI SERIAL USART (SIMULASI)

TUJUAN

 Mahasiswa dapat mengirim data dari mikrokontroler ATmega8535 ke komputer


menggunakan komunikasi serial USART.
 Mahasiswa dapat mengirim data dari komputer ke mikrokontroler ATmega 8535
menggunakan komunikasi serial USART.
 Mahasiswa dapat mengirim data antar mikrokontroler ATmega 8535 menggunakan
komunikasi serial USART.

KOMUNIKASI SERIAL USART

Komunikasi serial USART merupakan komunikasi full duplex (dua arah) antara
pengirim dan penerima. Hal ini dapat dilakukan karena mikrokontroler AVR dilengkapi
dengan perangkat keras yang terpisah antara pengirim dan penerima. USART biasanya
digunakan untuk komunikasi asinkron, yaitu komunikasi yang tidak memerlukan clock yang
sama antara pengirim dan penerima untuk menyinkronkan antara satu dengan yang lainnya.
Untuk menjaga sikronisasi antara pengirim dan penerima, digunakan bit start dan stop di
awal dan di akhir setiap urutan transmisi satu byte data.
Mikrokontroler AVR cukup fleksibel. Mikrokontroler ini mempunyai kemampuan
untuk mengeset berbagai macam kecepatan transmisi data yang disebut dengan baud (bit
per second) rate. USART tersebut juga dapat diset untuk mengirimkan lebar data 5 sampai 9
bit dengan 1 atau 2 stop bit. Selain itu, mikrokontroler AVR juga dilengkapi dengan
perangkat keras pembangkit bit paritas (ganjil atau genap) dan perangkat keras pengecek
paritas pada sisi penerima. Sebuah bit parity digunakan untuk mendeteksi error satu bit
dalam satu byte data. USART juga dapat dikonfigurasi untuk beroperasi dalam mode sinkron.
Register yang digunakan untuk mengontrol sistem USART adalah sebagai berikut:
 UDR – USART I/O Data Register
 UCSRA – USART Control and Status Register A
 UCSRB – USART Control and Status Register B
 UCSRC – USART Control and Status Register C
 UBRRL dan UBRRH – USART Baud Rate Register

 UDR – USART I/O Data Register

Tempat data yang akan dikirim dan data yang diterima

 UCSRA – USART Control and Status Register A

 Bit 7 – RXC : USART Receive Complete


2
Bit ini berlogika 1 jika ada data yang belum dibaca pada buffer penerima dan
diberi logika 0 jika buffer penerima kosong.
 Bit 6 – TXC : USART Transmit Complete
Bit ini berlogika 1 jika semua data sudah keluar dari buffer pengirim.
 Bit 5 – UDRE: USART Data Register Empty
Flag ini menandakan jika UDR siap menerima data. Jika UDRE berlogika 1, maka
buffer sedang kosong dan siap untuk ditulis. Flag UDRE dapat membangkitkan
Data Register Empty interrupt.
 Bit 4 – FE: Frame Error
Bit ini diset jika karakter yang diterima di buffer penerima mempunyai frame yang
salah ketika diterima
 Bit 3 – DOR: Data Over Run
Bit ini diset ketika terdeteksi data overrun, artinya buffer penerima penuh.
 Bit 2 – PE: Parity Error
Bit ini diset ketika karakter berikutnya dalam buffer penerima mempunyai Parity
Error ketika diterima dan parity checking diaktifkan pada saat itu.
 Bit 1 – U2X: Double the USART Transmission Speed
Bit ini hanya berpengaruh untuk operasi asinkron. Jika menggunakan operasi
sinkron, tuliskan 0 ke bit ini.
 Bit 0 – MPCM: Multi-processor Communication Mode
Bit ini mengaktifkan mode Multi-processor Communication.

 UCSRB – USART Control and Status Register B

 Bit 7 – RXCIE : RX Complete Interrupt Enable


Menuliskan 1 ke bit ini akan mengaktifkan interrupt pada RXC Flag dan akan
membangkitkan USART Receive Complete interrupt.
 Bit 6 – TXCIE : TX Complete Interrupt Enable
Menuliskan 1 ke bit ini akan mengaktifkan interrupt pada TXC Flag dan akan
membangkitkan USART Transmit Complete interrupt.
 Bit 5 – UDRIE : USART Data Register Empty Interrupt Enable
Menuliskan 1 ke bit ini akan Data Register Empty interrupt.
 Bit 4 – RXEN : Receiver Enable
Menuliskan 1 ke bit ini akan mengaktifkan USART Receiver.
 Bit 3 – TXEN : Transmitter Enable
Menuliskan 1 ke bit ini akan mengaktifkan USART Transmitter.
 Bit 2 – UCSZ2 : Character Size
Dikombinasikan dengan UCSZ1:0 dalam UCSRC akan menentukan jumlah bit data
(Character Size) dalam frame Receiver dan Transmitter.
 Bit 1 – RXB8 : Receive Data Bit 8
Tempat data ke-8 karakter yang diterima jika menggunakan frame 9 bit. Harus
dibaca sebelum membaca UDR.
 Bit 0 – TXB8 : Transmit Data Bit 8
Tempat data ke-8 dari karakter yang akan dikirim jika beroperasi dengan frame 9
bit. Harus ditullis sebelum menulis data ke UDR.

 UCSRC – USART Control and Status Register C


3

 Bit 7 – URSEL : Register Select


Bit ini memilih antara mengakses regsister UCSRC atau UBRRH. Jika membaca
UCSRC maka berlogika 1. URSEL mesti berlogika 1 ketika menulis ke UCSRC
 Bit 6 – UMSEL : USART Mode Select
Bit ini memilih antara mode operasi asinkron dan sinkron.

 Bit 5,4 – UPM1:0 : Parity Mode


Bit ini mengaktifkan dan mengeset tipe pambangkit dan pengecek parity.

 Bit 3 – USBS : Stop Bit Select


Bit ini menentukan jumlah bit stop yang harus dimasukkan ke Transmitter.

 Bit 2,1 – UCSZ1:0 : Character Size


Dikombinasikan dengan UCSZ2 dalam UCSRB menentukan jumlah bit data
(character size) dalam frame Receiver dan Transmitter.

 Bit 0 – UCPOL : Clock Polarity


Bit ini digunakan untuk mode sikron saja dengan cara menuliskan 0 ke bit ini
kerika berada dalam mode asinkron. Bit UCPOL menentukan hubungan anatara
perubahan data output dan sampel data input, dan clock sinkron (XCK).
4

 UBRRL dan UBRRH – USART Baud Rate Register

 Bit 15 – URSEL : Register Select


Bit ini memilih antara mengakses register UBRRH atau UCSRC. Untuk mengakses
UBRRH maka harus diberi logika 0.
 Bit 14:12 –Reserved Bits
 Bit 11:0 – UBRR11:0 : USART Baud Rate Register
Ke-12 bit ini berisi USART Baud Rate

ALAT DAN BAHAN YANG DIGUNAKAN

 1 set PC/Laptop yang sudah berisi program Code Vision AVR, Proteus, VSPE (Vitual
Serial Port Emulator) dan HTerm.

PROSEDUR

A. MENGIRIM DATA DARI MIKROKONTROLER ATmega8535 KE KOMPUTER


1. Buatlah rangkaian seperti dalam Gambar 5.1 dengan software Proteus.
5

VCC
LCD1

PB7

PB6

PB5

PB4

PB3

PB2

PB1

PB0
LM016L
RP1
1

2
3
4
5

VDD
VSS

VEE
6

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
VCC

E
7
8

1
2
3

4
5
6

7
8
9
10
11
12
13
14
9

RESPACK-8 RV1

PC0
PC1
PC2

PC4
PC5
PC6
PC7
SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW0
SW-SPST SW-SPST SW-SPST SW-SPST SW-SPST SW-SPST SW-SPST SW-SPST

1k

U1
VCC
1 40
PB0 PB0/T0/XCK PA0/ADC0
2 39
PB1 PB1/T1 PA1/ADC1
3 38
PB2 PB2/AIN0/INT2 PA2/ADC2

XTAL1

XTAL2
4 37
PB3 PB3/AIN1/OC0 PA3/ADC3
5 36
PB4 PB4/SS PA4/ADC4 P1
6 35
PB5 PB5/MOSI PA5/ADC5
PB6
7
PB6/MISO PA6/ADC6
34 R1
PB7
8
PB7/SCK PA7/ADC7
33 10k X1 1
DCD
6
DSR
14 22 1 2 2
PDO PD0/RXD PC0/SCL PC0 PD0 RXD
15 23 7
PD1 PD1/TXD PC1/SDA PC1 RTS
16 24 3
PD2/INT0 PC2 PC2 RESET CRYSTAL PD1 TXD
17 25 8
PD3/INT1 PC3 PC3 CTS
18 26 4
PD4/OC1B PC4 PC4 DTR
19
PD5/OC1A PC5
27
PC5 C1 9
RI
20
PD6/ICP1 PC6/TOSC1
28
PC6 4,7uF C2 C3
21 29 1nF 1nF
PD7/OC2 PC7/TOSC2 PC7
13 ERROR
XTAL1 XTAL1
12 32 COMPIM
XTAL2 XTAL2 AREF
9 30
RESET RESET AVCC
ATMEGA8535

Gambar 5.1 Rangkaian praktikum yang dibuat di Proteus

2. Buka program Code Vision AVR. Buatlah project baru. Dengan menggunakan wizard,
set PORTB sebagai input dengan pull up dan komunikasi USART sebagai Transmitter,
baud rate 19200, frame format 8 data, 1 stop, no parity dan mode asynchronous.
3. Buat program untuk membaca data dari piranti input toggle switch kemudian
mengirim ke komputer untuk ditampilkan di hyperterminal/Hterm dalam bilangan
desimal dan heksadesimal. Compile program tersebut.
4. Buka rangkaian di Proteus, kemudian masukkan program yang sudah dicompile ke
mikrokontroler di Proteus.
5. Buka program VSPE kemudian set komunikasi virtual (pair) misalnya antara COM1
dan COM2.
6. Buka rangkaian di Proteus, set komponen COMPIM menggunakan port serial COM1.
Kemudian simulasikan rangkaian.
7. Buka aplikasi Hterm. Pilih Port COM2 dan Baud Rate 19200. Klik Connect.
8. Ubah kombinasi toggle switch di Proteus seperti dalam Tabel 5.1.
9. Lihat karakter yang muncul di jendela Transmitted Data dan catat di Tabel 5.1
(desimal dan heksadesimal).
10. Ulangi langkah 8 dan 9.

B. MENGIRIM DATA DARI KOMPUTER KE MIKROKONTROLER ATmega8535


1. Gunakan rangkaian seperti dalam Gambar 5.1.
2. Buka program Code Vision AVR. Buatlah project baru. Dengan menggunakan wizard,
set PORTC untuk LCD dan komunikasi USART sebagai Receiver, baud rate 19200,
frame format 8 data, 1 stop, no parity dan mode asynchronous.
3. Buat program untuk menerima karakter dari hyperterminal/Hterm dan
menampilkannya ke LCD. Compile program tersebut.
4. Buka rangkaian di Proteus, kemudian masukkan program yang sudah dicompile ke
mikrokontroler di Proteus.
6
5. Buka program VSPE kemudian set komunikasi virtual (pair) misalnya antara COM1
dan COM2.
6. Buka rangkaian di Proteus, set komponen COMPIM menggunakan port serial COM1.
Kemudian simulasikan rangkaian.
7. Buka aplikasi Hterm. Pilih Port COM2 dan Baud Rate 19200. Klik Connect.
8. Tulis karakter yang dikirimkan di hyperterminal seperti dalam Tabel 5.2.
9. Lihat karakter yang tampil di LCD dan catat di Tabel 5.2.
10. Ulangi langkah 8 dan 9.

C. MENGIRIM DATA DARI MIKROKONTROLER KE MIKROKONTROLER


1. Rangkailah komponen yang diperlukan seperti dalam Gambar 5.2 dengan software
Proteus.
2. Buka program Code Vision AVR. Buatlah project baru. Set mikrokontroler1 sebagai
Transmitter komunikasi USART dengan baud rate 19200, frame format 8 data, 1 stop,
no parity dan mode asynchronous. Set mikrokontroler2 sebagai Receiver komunikasi
USART dengan baud rate 19200, frame format 8 data, 1 stop, no parity dan mode
asynchronous, sekaligus PORTCnya dihubungkan dengan LCD.
3. Buat program pada mikrokontroler1 untuk mengirim karakter tertentu. Compile
program tersebut.
4. Buat program pada mikrokontroler2 untuk menerima karakter dan menampilkannya
ke LCD. Compile program tersebut.
5. Buka rangkaian di Proteus, kemudian masukkan program yang sudah dicompile ke
masing-masing mikrokontroler di Proteus.
6. Simulasikan rangkaian.
7. Tuliskan karakter yang dikirim dan ditampilkan ke LCD dalam Tabel 5.3.

U3 LCD2
VCC LM016L
1 40
PB0/T0/XCK PA0/ADC0
2 39
PB1/T1 PA1/ADC1
3 38
PB2/AIN0/INT2 PA2/ADC2
XTAL21

XTAL22

4 37
PB3/AIN1/OC0 PA3/ADC3
5 36
PB4/SS PA4/ADC4
6 35
PB5/MOSI PA5/ADC5
7
PB6/MISO PA6/ADC6
34 R3
8
PB7/SCK PA7/ADC7
33 10k X3
VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
VCC D7
E

14 22 1 2
PD1 PD0/RXD PC0/SCL PC0
15 23
PD0 PD1/TXD PC1/SDA PC1
1
2
3

4
5
6

7
8
9
10
11
12
13
14

16 24
PD2/INT0 PC2 PC2 RESET1 CRYSTAL
17 25
PD3/INT1 PC3 PC3 RV2
18 26
PD4/OC1B PC4 PC4
19 27 C7
PC0
PC1
PC2

PC4
PC5
PC6
PC7

PD5/OC1A PC5 PC5


20
PD6/ICP1 PC6/TOSC1
28
PC6 4,7uF C8 C9
21 29 1nF 1nF
PD7/OC2 PC7/TOSC2 PC7
13
XTAL21 XTAL1
12 32
XTAL22 XTAL2 AREF
9 30 1k
RESET2 RESET AVCC
ATMEGA8535

U2
VCC
1 40
PB0/T0/XCK PA0/ADC0
2 39
PB1/T1 PA1/ADC1
3 38
PB2/AIN0/INT2 PA2/ADC2
XTAL12
XTAL11

4 37
PB3/AIN1/OC0 PA3/ADC3
5 36
PB4/SS PA4/ADC4
6 35
PB5/MOSI PA5/ADC5
7
PB6/MISO PA6/ADC6
34 R2
8
PB7/SCK PA7/ADC7
33 10k X2
14 22 1 2
PDO PD0/RXD PC0/SCL
15 23
PD1 PD1/TXD PC1/SDA
16 24
PD2/INT0 PC2 RESET1 CRYSTAL
17 25
PD3/INT1 PC3
18 26
PD4/OC1B PC4
19
PD5/OC1A PC5
27 C4
20
PD6/ICP1 PC6/TOSC1
28 4,7uF C5 C6
21 29 1nF 1nF
PD7/OC2 PC7/TOSC2
13
XTAL11 XTAL1
12 32
XTAL12 XTAL2 AREF
9 30
RESET1 RESET AVCC
ATMEGA8535

Gambar 5.2 Rangkaian untuk mengirim data dari mikrokontroler ke mikrokontroler


7
DATA HASIL PERCOBAAN

1. Program mengirim data dari mikrokontroler ke komputer.

2.
Tabel 5.1 Hasil percobaan A
Kombinasi toggle switch Tampilan hyperterminal
No
SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW0 Desimal Heksadesimal
1 0 0 0 0 0 0 0 1 0xff 255
2 0 0 0 0 0 0 1 1 0xff 255
3 0 0 0 0 0 1 1 1 0xfe 254
4 0 0 0 0 1 1 1 1 0xfe 254
5 0 0 0 1 1 1 1 1 0xfc 252
6 0 0 1 1 1 1 1 1 0xfc 252
7 0 1 1 1 1 1 1 1 0xf8 248
8 1 1 1 1 1 1 1 1 0xf8 248

3. Program mengirim data dari komputer ke mikrokontroler.

4.
Tabel 5.2 Hasil percobaan B
Karakter yang dikirim dari
No Tampilan LCD
hyperterminal
1 A
2 Satu
3 Dua kata

5. Program mengirim data dari mikrokontroler1.

6. Program menerima data dan menampilkan ke LCD pada mikrokontroler2.

7.
Tabel 5.3 Hasil Percobaan C
Karakter yang dikirim pada Tampilan LCD pada
No
mikrokontroler1 mikrokontroler2
1
2
3
8
ANALISIS DATA

1. Bandingkan antara konfigurasi toggle switch dan tampilan di hyperterminal/Hterm.


Bilangan apa yang muncul sebagai nilai di hyperterminal/Hterm? Apa persamaan antara
konfigurasi toggle switch dengan nilai yang tampil di hyperterminal/Hterm?

2. Parameter apa yang menyebabkan nilai yang tampil di hyperterminal/Hterm menjadi


seperti itu?

3. Instruksi apa yang digunakan untuk mengirim data dari mikrokontroler ke komputer?

4. Bandingkan antara tombol yang dikirimkan dari hyperterminal/Hterm dengan tampilan


di LCD.

5. Instruksi apa yang digunakan untuk menerima data dari komputer ke mikrokontroler?

6. Bandingkan antara karakter yang dikirimkan dari mikrokontroler1 dengan karakter yang
tampil di LCD yang terhubung ke mikrokontroler2?

7. Tuliskan kembali instruksi yang digunakan untuk mengirim data dari mikrokontroler
serta instruksi yang digunakan untuk menerima data di mikrokontroler.

Anda mungkin juga menyukai