MODUL V
KOMUNIKASI SERIAL USART (SIMULASI)
TUJUAN
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
1 set PC/Laptop yang sudah berisi program Code Vision AVR, Proteus, VSPE (Vitual
Serial Port Emulator) dan HTerm.
PROSEDUR
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
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.
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
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
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
4.
Tabel 5.2 Hasil percobaan B
Karakter yang dikirim dari
No Tampilan LCD
hyperterminal
1 A
2 Satu
3 Dua kata
7.
Tabel 5.3 Hasil Percobaan C
Karakter yang dikirim pada Tampilan LCD pada
No
mikrokontroler1 mikrokontroler2
1
2
3
8
ANALISIS DATA
3. Instruksi apa yang digunakan untuk mengirim data dari mikrokontroler ke komputer?
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.