Professional Documents
Culture Documents
Teori Dasar
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.
Bit
Nama
ke-
bit
SM0
SM1
Address
9F
Explanation of Function
9E
5
SM2
9D
REN
9C
Receiver Enable.
TB8
9B
RB8
9A
TI
99
RI
98
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.
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.
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
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)
$MOD51
ORG
000H
LJMP
START
ORG
023H
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
SJMP
SERIALKOM:
CLR
RI
MOV
A,SBUF
CLR
TI
MOV
SBUF,A
JNB
TI,$
CLR
TI
RETI
END