You are on page 1of 7

I.

Teori Dasar

Sistem komunikasi serial mikrokontroller dengan PC

Rangkaian skematik MAX232


Serial Port lebih sulit diterapkan dibandingkan dengan Paralel Port. Dalam banyak
kasus, device yang dihubungkan dengan saluran serial membutuhkan sarana untuk
mengubah informasi serial kembali menjadi bentuk paralel agar dapat diolah oleh prosesor,
sarana ini antara lain UART (Universal Asynchronous Receive Transmit). Dilihat dari sisi
software, register yang dibutuhkan untuk komunikasi serial lebih banyak dari yang
dibutuhkan untuk komunikasi paralel, yaitu sekedar SPP (Standard Paralel Port).
Penggunaan mikrokontroler atau single chip microprocessor juga sudah populer,
beberapa di antaranya sudah dilengkapi dengan Serial Communication Interface, misalnya
prosesor Intel 8051 yang dilengkapi dengan built in USART. Dengan fasilitas seperti ini
prosesor dapat berkomunikasi dengan prosesor lain melalui 2 kabel saja, yaitu TxD dan
RxD, tidak seperti komunikasi paralel yang paling tidak membutuhkan 8 kabel belum
termasuk kabel strobe dan status.
Satu di antara beberapa standar untuk komunikasi serial adalah RS-232. Komunikasi
RS-232 dilakukan secara asinkron (asynchronous), yaitu komunikasi serial yang tidak

Politeknik Elektronika Negeri Surabaya

memiliki clock bersama antara pengirim dan penerima, masing-masing dari pengirim
maupun penerima memiliki clock sendiri. Yang dikirimkan dari pengirim ke penerima
adalah data dengan baudrate tertentu yang ditetapkan sebelum komunikasi berlangsung.
Setiap word atau byte disinkronkan dengan start bit, stop bit dan clock internal masingmasing pengirim atau penerima.

Gambar Gelombang informasi untuk komunukasi serial.

Gambar diatas memperlihatkan bentuk gelombang komunikasi serial dengan format


8N1, yaitu 8-bit data, tanpa parity, 1 stop bit. Pada keadaan idle atau menganggur, jalur RS232 ditandai dengan mark state atau Logika HIGH. Pengiriman data diawali dengan start bit
yang berlogika 0 atau LOW, berikutnya data dikirimkan bit demi bit mulai dari LSB (Least
Significant Bit) atai bit ke-0. Pengiriman setiap byte diakhiri dengan stop bit yang berlogika
HIGH.
Di antara sarana penting yang ada pada Intel 8051 adalah UART atau dikenal dengan
nama serial Port. Ini berarti kemudahan dalam akses jalur komunikasi serial, programmer
cukup menulis dan membaca data dari register khusus bernama SBUF tanpa harus susah
payah mengatur pengiriman data bit demi bit dengan baudrate tertentu.
Sebelum komunikasi berlangsung, harus dilakukan dulu inisialisasi register-register
tertentu pada SFR yang terkait dengan komunikasi serial termasuk penentuan baudrate. Saat
proses pengiriman maupun penerimaan data sedang berlangsung, kosong dan penuhnya
SBUF akan diberitakan melalui bit indikator TI dan RI. Pemantauan TI dan RI dapat
dilakukan dengan atau tanpa melibatkan sistem interupsi.
Sebelum komunikasi dilakukan, programmer harus melakukan setting komunikasi
serial pada 1 atau 2 register. Jika komunikasi dilakukan dengan cara sinkron (Synchronous
Communication), register yang disetting cukup SCON, tetapi jika komunikasi dilakukan
dengan cara asinkron (Asynchronous Communication), register yang harus disetting bukan
hanya SCON, tetapi juga TMOD, TH1 dan 1-bit pada register PCON.
SCON (serial control) adalah Register Fungsi Khusus (Special Function Register)
yang digunakan untuk menentukan tipe komunikasi yang diinginkan. Tabel 1.1
memperlihatkan bit yang ada dalam register SCON beserta fungsinya masing-masing.
Tabel 1.1 Isi register SCON.

Politeknik Elektronika Negeri Surabaya

Bit

Nama

ke-

bit

SM0

SM1

Address

9F

Explanation of Function

Serial port mode bit 0


Serial port mode bit 1.

9E
5

SM2

9D

Multiprocessor Communications Enable

REN

9C

Receiver Enable.

TB8

9B

Transmit bit 8. The 9th bit to transmit in


mode 2 and 3.

RB8

9A

Receive bit 8. The 9th bit received in mode 2


and 3.

TI

99

Transmit Flag. Set when a byte has been


completely transmitted.

RI

98

Receive Flag. Set when a byte has been


completely received.

Sebagai tambahannya, tabel 1.2 berisi mode komunikasi serial yang sesuai dengan
keadaan bit-bit SM0 dan SM1.
Tabel 1.2 Mode komunikasi serial berdasarkan bit pada SM0 dan SM1
S

M0

M1

Baud Rate
Serial

Explanation

Mode
0

8-bit

Shift

Oscillator / 12

Register
0

8-bit UART

Terkait dengan
Timer 1

9-bit UART

Oscillator / 32
or / 64

9-bit UARt

Terkait dengan
Timer 1

Bit ke-7 sampai bit ke-4 pada SCON merupakan bit konfigurasi. Seperti tampak pada
Tabel 1.2, setting bit SM0 dan bit SM1 memungkinkan kita memilih 1 dari 4 mode
komunikasi. Mode 0 berarti komunikasi asinkron dengan kecepatan transfer 1/12 kali
frekuensi osilator. Jika kita menggunakan osilator 12 MHZ, berarti kecepatan transfernya 1
Mbaud. Mode 1 adalah mode yang palign sering dipilih. Pada mode ini, komunikasi
dilakukan secara asinkron dengan baudrate ditentukan berdasarkan setting pada Timer 1.

Politeknik Elektronika Negeri Surabaya

Jika mode 1 ini dipilih, Timer 1 harus diset pada mode 8-bit autoreload. Pengisian register
TH1 dan bit SMOD pada register PCON menentukan baudrate yang akan berlaku pada
komunikasi serial tipe ini.
Mode 2 dan 3 adalah mode komunikasi serial dengan bingkai atau frame berukuran
9-bit. Karena 1-byte data hanya terdiri dari 8-bit, bit kesembilan diambil dari bit TB8 atau
RB8 pada register SCON. Bit TB8 adalah bit yang ditambahkan ketika dilakukan transmit
atau pengiriman data, sedangkan bit RB8 ditambahkan ketika prosesor sedanga menerima
atau receive data.
Bit SM2 hanya digunakan untuk komunikasi multiprosesor. Biasanya, jika prosesor
sedang berperan sebagai penerima data, saat SBUF penuh, bit RI akan berubah menjadi
HIGH. Tetapi jika SM2 diset HIGH, maka perubahan RI menjadi HIGH ini bergantung pada
bit ke-9 yang diterima, jika bit ke-9 ini HIGH, maka RI juga ikut menjadi HIGH. Meskipun
SBUF telah penuh, jika bit ke-9 LOW, maka bit indikator RI tidak akan berubah menjadi
HIGH. Hal seperti ini berguna pada aplikasi tertentu yang melibatkan beberapa prosesor
untuk berkomunikasi antar mereka. Dengan kata lain setting SM2 bisa membuat prosesor
bersangkutan menjadi tuli, tidak menghiraukan datangnya data pada SBUF karena memang
data tersebut bukan untuknya tetapi untuk prosesor lainnya yang ada pada jalur komunikasi
serial yang sama.
Bir REN atau Receive Enable diset jika kita ingin komunikasi berlangsung 2 arah,
prosesor juga dapat menerima data selain dapat mengirim data melalui saluran serial. Jika bit
ini diset LOW, maka prosesor menjadi tuli, sama sekali tidak dapat menerima data.
Empat bit LSB pada register SCON merupakan bit-bit operasional. Bit TB8 dan bit
RB8 terkait dengan komunikasi serial mode 2 dan 3 seperti telah dijelaskan sebelumnya.
Sedangkan bit RI dan TI merupakan bit indikator yang menyatakan SBUF telah dalam
keadaan penuh atau kosong. Jika prosesor mengirim data, data tsb cukup diletakkan di
register SBUF, pengiriman bit demi bit dilakukan oleh internal USART. Saat SBUF kosong
karena semua bit telah dikirimkan ke saluran serial TxD, maka bit indikator TI (transmit
interrupt) akan berubah menjadi HIGH. Sedangkan bit indikator RI bekerja sebaliknya.
Ketika prosesor sedang menerima data bit demi bit dari saluran serial RxD, bit indikator RI
(receive interrupt) akan berubah menjadi HIGH saat SBUF telah dipenuhi 8-bit data.
Perlu dicatat bahwa sebenarnya bit TI diset HIGH pada pertengahan pengiriman stop
bit, sedangkan bit RI diset pada pertengahan penerimaan stop bit. Untuk komunikasi dengan
standard RS-485 programmer tidak boleh melakukan disable saluran komunikasi terlalu
cepat, ia harus menunggu paling tidak selama setengah periode stop bit setelah RI atau TI
berubah menjadi HIGH, jika tidak, maka akan terjadi transmission error.

Politeknik Elektronika Negeri Surabaya

SETTING BAUDRATE
Seperti tampak pada tabel 1.1, penentuan kondisi bit SM0 dan SM1 berakibat pada
pilihan 1 dari 4 mode komunikasi serial. Mode 0 dan 2 menggunakan baudrate yang hanya
bergantung pada frekuensi osilator. Pada mode 0, hanya satu macam baudrate yang
diizinkan, yaitu 1/12 frekuensi kristal. Jika kita menggunaka kristal 11.0592 Mhz, baudrate
untuk mode 0 adalah 921600 baud. Untuk mode 2, disediakan 2 pilihan baudrate, yaitu 1/32
atau 1/64 kali frekuensi kristal, bergantung pada kondisi bit SMOD pada register PCON.
Jika SMOD diset HIGH, maka baudrate sama dengan 1/32 kali frekuensi kristal. Jika
frekuensi kristal 11.0592 Mhz dan SMOD diset LOW, maka baudrate untuk mode 2 adalah
172800 baud.
Untuk mode 1 dan 3, penentuan baudrate harus melibatkan Timer 1. Timer 1 harus
digunakan dengan mode 8-bit autoreload dan pengisian TH1 harus disesuaikan dengan
baudrate yang diinginkan. Rumus untuk menentukan isi TH1 terkait dengan budrate yang
diinginkan adalah sebagai berikut.

TH 1 256

TH 1 256

f XTAL
384.BAUD
f XTAL
192.BAUD

, jika bit SMOD pada register PCON diset LOW.

, jika bit SMOD = HIGH.

Misalnya, jika kita menggunakan kristal 11.0592 Mhz, untuk memperoleh baudrate 19200
baud, TH1 harus diisi dengan angka berikut ini,
TH1 = 256 - ((f / 384) / Baud)
TH1 = 256 - ((11059200 / 384) / 19200)
TH1 = 256 - ((28,799) / 19200)
TH1 = 256 - 1.5 = 254.5
Tetapi karena TH1 harus diisi dengan bilangan integer, maka kita harus memilih pembulatan
dari 254.5 menjadi 254 atau 255. Jika kita pilih TH1 = 254, maka baudrate yang akan kita
peroleh adalah 14400 baud, sedangkan jika kita pilih TH1 = 255, maka baudratenya menjadi
28800 baud. Tentu saja ini menyulitkan kita. Untuk mengatasinya, kita dapat memanfaatkan
bit SMOD pada register PCON. Jika SMOD diset HIGH, maka perhitungan TH1 menjadi
seperti berikut ini,
TH1 = 256 - ((f / 192) / Baud)
TH1 = 256 - ((11059200 / 192) / 19200)

Politeknik Elektronika Negeri Surabaya

TH1 = 256 - ((57699) / 19200)


TH1 = 256 - 3 = 253
Karena yang diperoleh adalah bilangan integer, yaitu 253, maka baudrate yang kita peroleh
akan sama dengan 19200 baud.
Secara ringkas, untuk memperoleh baudrate 19200 baud, kita harus melakukan langkahlangkah berikut ini,
1. Pilih komunikasi serial mode 1 atau 3.
2. Pilih mode 2 atau 8-bit autoreload untuk Timer 1.
3. Isi register TH1 dengan bilangan 253.
4. Set bit SMOD pada register PCON menjadi HIGH.
PENGIRIMAN DAN PENERIMAAN DATA SERIAL
Secara ringkas, pengiriman data cukup dilakukan dengan mengisi register SBUF
dengan data yang akan dikirimkan, byte selanjutnya dikirim ketika bit TI berubah menjadi
HIGH. Sedangkan penerimaan ada cukup dilakukan dengan mengambil data dari SBUF
setelah bit RI menjadi HIGH.
Berikut ini adalah contoh potongan program tanpa interupsi untuk mengirimkan 8byte data dari RAM mulai alamat 30H melalui saluran serial TxD dengan kecepatan transfer
19200 baud. Frekuensi kristal yang digunakan harus 11.0592 MHz.
Program ini memungkinkan prosesor Intel 8051 menerima data dari PC, kemudian
langsung mengembalikannya ke PC.

$MOD51
ORG

000H

LJMP

START

;alamat awal program

ORG

023H

;alamat awal ISR untuk Komunikasi Serial

LJMP

SERIALKOM

START:
CLR

ET1

MOV

SCON,#50H

MOV

TMOD,#0010000B

MOV

TL1,#0FDH

MOV

TH1,#0FDH

MOV

PCON,#00H

SETB

TR1

SETB

ES

SETB

EA

;baud rate 9600 bps

Politeknik Elektronika Negeri Surabaya

SJMP

SERIALKOM:
CLR

RI

MOV

A,SBUF

CLR

TI

MOV

SBUF,A

JNB

TI,$

CLR

TI

RETI

END

Politeknik Elektronika Negeri Surabaya

You might also like