Anda di halaman 1dari 23

Transfer data komputer dilakukan dengan dua cara: parallel dan serial.

Dalam transfer
data parallel, 8 buah (atau lebih) saluran (kabel) bersama-sama digunakan untuk mentransfer data ke peralatan lain, yang jaraknya hanya beberapa centimeter. Contoh
tranfer data parallel adalah printer jarum (kuno) dan harddisk (IDE/PATA) yang mana
menggunakan kabel yang berisi beberapa kabel di dalamnya. Namun, hubungan parallel
jenis ini walaupun dapat mentransfer data dengan cepat, jarak menjadi masalah karena
tidak mungkin menggunakannya dengan jarak yang panjang atau jauh. Dan untuk
mentransfer data dengan jarak yang sangat jauh, maka metode serial kemudian
digunakan. Dalam komunikasi serial ini, data dikirim bit demi bit. Komunikasi serial pada
8051 adalah topik dari bab ini. 8051 memiliki kemampuan komunikasi serial yang sudah
ada di dalamnnya, sehingga dapat mentranfer data dengan cepat hanya dengan
menggunakan beberapa kabel saja.
Dalam bab ini kita pertama mendiskusikan dasar-dasar komunikasi serial. Pada SubBAB
10.2, menghubungkan 8051 ke konektor RS232 melalui chip driver MAX232 adalah
bahasan kita. Sedang pemrograman komunikasi serial pada 8051 akan kita diskusikan
pada SubBAB berikutnya.

SubBAB 10-1: DASAR-DASAR KOMUNIKASI SERIAL


Saat dimana komputer berkomunikasi dengan dunia luar, semua dilakukan dengan data
berukuran byte. Dan hal sama, seperti printer, informasi data secara langsung dilakukan
melalui BUS data 8-bit ke BUS data 8-bit milik printer. Hal ini dapat bekerja selama jarak
tidak sangat jauh, mengingat jarak kabel yang panjang akan mengurangi (mengganggu)
kualitas sinyal. Kabel yang buruk dan sangat panjang akan membuat logika palsu, dan
data menjadi berubah tidak seperti semestinya. Disamping itu, hubungan data 8-bit
menjadi sangat mahal, karena dibutuhkan kualitas kabel yang sangat baik dan jumlah
lebih banyak. Untuk alasan ini, komunikasi serial digunakan untuk mentransfer data
antara dua system dengan jarak yang sangat jauh mulai dari beberapa puluh meter
sampai ribuan kilometer. Gambar 10-1 menampilkan bagan dari transfer data serial dan
parallel.

Gambar 10-1: Transfer Data Serial dan Parallel


Komunikasi Serial dapat digunakan untuk menggantikan Komunikasi Parallel jalur data 8bit dengan baik. Tidak saja memakan biaya yang lebih murah, namun dapat digunakan
untuk menghubungkan dua peralatan yang sangat jauh. Misalnya menumpang pada
kabel telpon.
Agar komunikasi serial dapat bekerja dengan baik, data byte harus diubah ke dalam bitbit serial menggunakan peralatan yang disebut shift register parallel-in serial-out,
kemudian data dikirimkan hanya dengan satu jalur data saja. Hal yang serupa dikerjakan
pada penerima, dimana penerima harus mengubah bit-bit serial yang diterimanya
menjadi data byte yang persis seperti data semula pada pengirim, dengan
menggunakan shift register serial-in parallel-out. Tentu saja jika data serial tersebut
dikirim menumpang jalur telpon, maka dibutuhkan peralatan pengubah status digital 0s
atau
1s
menjadi
sinyal
suara
audio.
Peralatan
seperti
ini
kemudian
disebut modem(modulator/demudulator). Modulator sebagai pengubah sinyal digital
menjadi sinyal audio, sebaliknya Demodulator adalah sebagai mengubah kembali sinyal
audio menjadi sinyal digital.
Pada jarak yang sangat dekat, kita dapat menggunakan komunikasi serial sederhana dan
tidak perlu modulasi. Seperti yang dapat kita lihat pada hubungan komputer kita dengan
keyboard atau mouse.
Komunikasi data serial mengenal dua buah metode, yaitu synchronous danasynchronous.
Metode sychronous mengirimkan datanya beberapa byte atau karakter (atau disebut
blok data) sebelum meminta konfirmasi apakah data sudah diterima dengan baik atau
tidak. Sementara metode asynchronous data dikirim satu byte setiap pengiriman.
Biasanya tidak dibutuhkan konfirmasi menerimaan data. Dari kedua jenis metode
tersebut dapat dipilih dan dilakukan lewat program. Tentu saja dibutuhkan program yang
baik dan teliti untuk melakukannya. Namun dewasa ini proses pengiriman data serial
tersebut sudah dilakukan oleh sebuah chip tersendiri (Hardware). Salah satu chip disebut
UART (Universal Asynchronous Reciever Transmiter) dan satunya lagi disebut USART
(Universal Synchronous Asynchronous Reciever Transmiter).Dalam protokol berbeda,
sychronous memerlukan sinyal tambahan yang digunakan untuk men-sychron -isasi setiap
denyut dari proses transfer. Pada chip 8051 kita, ternyata sudah dilengkapi dengan UART,
yang mana akan kita diskusikan lebih jauh pada SubBAB 9-3.

Gambar 10-2: Transfer Data Simplex, Half-, dan Full-Duplex.

Komunikasi Half- dan Full-Duplex


Dalam trnasimisi data, jika data dapat dikirim dan diterima, ini dinamakan
transmisi duplex. Sangat berbeda dengan transmisi simplex, misalnya pada printer,
dimana printer hanya bisa menerima data. Tranmisi duplex dapat digolongkan
menjadi half-duplex dan full-duplex, tergantung pada bisa tidaknya transfer data dua
arah sekaligus. Jika data dikirmkan satu arah saja, maka dinamakan half-duplex. Jika data
dapat menuju dua arah dalam waktu yang bersamaan, disebut full-duplex. Tentu saja,
full-duplex membutuhkan penghubung dua kabel yang digunakan sebagai saluran
datanya, satu kabel untuk mengirim data, satu kabel untuk menerima data, dan satu lagi
untuk ground yang digunakan bersama. Lihat gambar 10-2

Komunikasi serial Asynchronous dan Data Framing


Setiap data yang diterima pada komunikasi serial adalah memiliki sinyal 0s dan 1s. Hal
ini akan sangat sulit untuk menentukan sebuah data kecuali antara pengirim dan
penerima sepakat dengan protokol, yaitu bagaimana data dikemas (packet), berapa bit
yang digunakan untuk satu karakter, dan kapan data tersebut mulai dan selesai dikirim.

Bit Start dan Bit Stop


Komunikasi data serial Asynchronous sekarang sudah digunakan demikian luas untuk
transmisi yang berorientasi karakter, sementara metode Synchronous digunakan untuk
transmisi yang berorientasi blok. Pada mode Asynchronous, setiap karakter ditempatkan

berada diantara bit start dan bit stop. Bit start selalu satu bit, tapi stop bit bisa satu bit
atau dua bit. Start bit selalu 0 (low) dan stop bit selalu 1 (high). Contohnya, lihat pada
gambar 10-3 yang dimana karakter A (01000001 biner) dikemudian dibingkai (dikurung)
oleh start bit dan satu stop bit. Harap dicatat, LSB dikirim terlebih dahulu.

gambar 10-3: Pembingkaian ASCII A (41h)


Ingat pada gambar 10-3 saat tidak transfer, sinyal (jalur kabel) selalu dalam keadaaan 1
(high), yang disebut mark (tanda). Sedang 0 (rendah) diartikan space. Bahwa transmisi
pertama dimulai dengan start bit, yang kemudian diikuti oleh D0, LSB, dan diikuti oleh
bit-bit yang lain, sampai MSB(D7), dan akhirnya bit stop yang menanndakan akhir dari
karakter A.
Pada komunikasi serial Asynchronous, peralatan dan modem dapat diprogram untuk
menggunakan lebar data 7 atau 8-bit. Tentu saja ditambah dengan Stop bit. Dahulu,
system karakter ASCII masih terbatas pada data 7-bit, namun sekarang ASCII extended
sudah lazim menggunakan lebar data 8-bit. Pada peralatan kuno, dengan komponenkomponen yang lambat pula, dibutuhkan stop bit yang agak panjang, hal ini
dimaksudkan untuk memeberi kesempatan peralatan untuk menangani data yang telah
diterimanya, dan untuk mempersiapkan diri untuk menerima byte berikutnya. Namun
sekarang modem PC kita dewasa ini biasanya hanya menggunakan satu bit stop. Jika kita
hitung, dengan menggunakan satu bit stop total kita memiliki 10-bit untuk setiap
karakter 8-bit. Dengan kata lain setiap karakter 8-bit dikirim bersama-sama start dan
stop bit sehingga total menjadi 10-bit, yang artinya ada proses transfer lebih panjang
20% setiap karakternya.
Pada system yang sangat mementingkan integritas data yang disimpan, maka
ditambahkanlah bit paritas kepada bingkai data tersebut. Maksudnya untuk setiap
karakter 8-bit kita masih menambahkan bit paritas disamping bit start dan bit stop.
Sehingga total adalah 11-bit. Adapun bit paritas adalah bit yang menunjukkan bahwa
data yang dimaksud adalah memiliki jumlah bit 1s (high) ganjil atau genap. Bit paritas
adalah bit di luar data yang bersangkutan atau merupakan tambahan. Chip UART khusus
biasanya sudah dilengkapi dengan keperluan paritas tersebut secara hardware. Bahkan
ada beberapa pilihan untuk penanganan paritas ini, misalnya odd-, even- dan no-parity.

Data tranfer rate


Kecepatan tranfer data pada komunikasi data serial diukur dalam satuan BPS (bits per
second). Sebutan terkenal lainnya adalah baud rate. Namun Baud dan bps tidak serta
merta adalah sama. Hal ini mengacu kepada fakta bahwa baud rate adalah terminology
modem dan diartikan sebagai perubahan signal dalam satuan bit signal setiap detik.
Sedang data tranfer rate penamaannya mengacu pada jumlah bit dari byte data yang
ditransfer setiap detik.
Sementara itu kecepatan transfer data (data transfer rate) pada komputer tergantung
pada jenis komunikasi yang diberlakukan atasnya. Seperti contoh, komputer PC-IBM
model kuno dapat mentransfer data mulai dari 100 s/d 9600 bps. Namun pada saat
sekarang kecepatan komunikasi serial menjadi sangat pesat. 56.000 bps kemudian
menjadi standar kecepatan pada modem. Namun para perancang komputer sepakat
untuk membatasi kecepatan pada komunikasi serial Asynchronous hanya setinggi
100.000 bps. Untuk kecepatan yang lebih tinggi mode Synchronous kemudian menjadi
pilihan.
Pada 8051 kita hanya membahas tentang masalah komunikasi serial dengan mode
Asynchronous yang sudah ada pada chip tersebut.

Standar RS232
Untuk mendapatkan keserba-cocokan (compatibility) dari beberapa peralatan komunikasi
data dari berbagai pabrik, diciptakanlah standar tatap-muka (interfacing) yang
dinamakan RS232. Standar ini dipublikasikan oleh EIA(Electronics Industries Association)
pada 1960. Dan pada 1963 standar itu dimodifikasi dengan nama RS232A. RS232B dan
RS232C ditetapkan pada tahun masing-masing 1965 dan 1969. Pada buku ini kita akan
mengacu pada standar RS232 paling dasar. Sekarang Standar RS232 masih menjadi
standar dunia mengenai standar tatap-muka I/O komunikasi serial. Bahkan standar ini
masih dipakai dan digunakan pada komputer PC kita.
Karena standar ini sudah dupublikasikan jauh lebih lama dari standar TLL, standar yang
diciptakan saat komputer masih dibuat dari tansistor, relay dan tabung hampa, sehingga
standar ini sama sekali tidak kompatibel dengan standar keluarga logika TTL yang
diciptakan belakangan. Pada RS232, 1s (high) direpresentasikan dengan tegangan -3 s/d
-25V, dan 0s (low) direpresentasikan sebagai +3 s/d +25V. Sedang diantara -3 dan +3V
dianggap sebagai status mengambang dan tidak dianggap. Atas alasan ini, untuk
menghubungkan 8051 yang ber-standar TTL dengan komputer (atau alat lain) yang
menggunakan RS232, kita harus menggunakan peralatan tambahan misalnya dengan
chip MAX232 untuk mengkonversi level TTL ke RS232 dan level RS232 ke level TTL.
Walaupun RS232 sudah mulai ditinggalkan, kita masih bisa berbangga bahwa standar ini
masih dijadikan standar dasar bagi standar-standar yang lebih maju, misalnya USB, SATA,
Packet Data dll. Sehingga sangat bermanfaat mempelajari standar RS232 ini sebelum
mempelajari standar yang lainnya.

Gambar 10-5: konektor RS232 DB-9


Table 10-2 Sinyal DB-9 pada IBM-PC

Pin
1

Penjelasan

DCD = Data Carrier Detect


2
RcD = Received Data
3
TxD = Transmited Data
4
DTR = Data Terminal Ready
5
GND = Ground
6
DSR = Data set Ready
7
RTS = Request To Send
8
CTS = Clear To Send
9
RI = Ring Indicator
Shield = boleh dihubungkan pada Ground atau Chassis.
Di sini adalah bahasan mengenai konektor RS232 DB-25, dimana tidak saya tulis disini
karena sudah tidak relevan lagi
Lebih dalam dengan Sinyal-sinyal Jabat-Tangan RS232
Untuk menjamin terjadinya sebuah transfer data yang cepat dan Realible antara 2 peralatan, lalu
lintas data harus dikoordinasi dengan baik. Tidak seperti printer yang selalu mencetak setiap
karakter yang diterimanya. Namun dalam komunikasi serial, bisa saja peralatan tidak memiliki
lagi tampungan data yang diterimanya. Sehingga dia harus memberitahukan PC untuk tidak lagi
mengirim data. Hingga modem selesai mengerjakan semua tugasnya. Dan kembali
memberitahukan PC untuk kembali mengirim data berikutnya setelah modem siap.
Bahasan di bawah ini adalah sekedar referensi, karena tidak didukung oleh UART pada 8051.
Namun jika hal yang semacam itu menjadi penting, maka kita dapat menggunakan beberapa I/O
port untuk digunakan dalam keperluan HnadShaking tersebut.
DTR (Data Terminal Ready)
Saat Komputer kita pertama dinyalakan dan Operating System-nya telah siap untuk melakukan
tugasnya, dia kemudian mengirimkan sinyal DTR untuk memberitahukan pada peralatan yang
mungkin terhubung dengannya (misalnya modem), bahwa komputer telah siap berkomunikasi.
Jika terjadi masalah dengan port COM, maka sinyal ini tidak diaktifkan. Sinyal ini adalah aktif
rendah.
DSR (Data Set Ready)

Seperti juga Komputer dengan DTR-nya, saat modem pertama dihidupkan, dan siap
berkomunikasi dia akan menyalakan DSR ini menuju ke komputer. Sehingga komputer dapat
segera tahu bahwa saat itu ada modem yang terhubung dan siap untuk digunakan. Ini adalah
sinyal dari modem ke PC, dan berjenis aktif low. Sinyal ini tidak akan dikeluarkan modem, jika
modem dalam masalah atau rusak.
RTS (Request To Send)
Saat Komputer kita hendak mengirimkan data kepada device seperti modem, maka komputer
akan mengirimkan RTS ini menuju modem terlebih dahulu. Hal tersebut agar modem tahu,
bahwa akan ada pengiriman data dari komputer kepadanya, dan modem segera bersiap-siap
untuk menerima data. RTS adalah sinyal aktif low dari komputer ke device seperti modem.
CTS (Clear To Send)
Dalam merespon RTS, ini modem menyalakan sinyal CTS. Ceritanya begini.. Saat komputer
mengirimkan RTS, maka modem bersiap-siap untuk menerima data, dan jika ruang untuk
menerima data tersebut sudah ada dan cukup, baru sinyal tersebut dikirimkan pada Komputer
untuk segera mengirimkan datanya. Ingat untuk flowkontrol Hardware, maka komputer tidak
akan mengirimkan datanya jika belum ada sinyal dari modem ini.
DCD (Data Carrier Detect)
Ini adalah sinyal yang dikeluarkan oleh modem kepada PC, untuk menginformasikan PC bahwa
modem mendeteksi adanya carrier yang valid dan adanya kontak / hubungan dengan modem
lain nun jauh di sana. (Biasanya sinyal ini diberikan setelah komunikasi dengan modem lain
tersambung).
RI (Ring Indikator)
Sinyal ini diberikan oleh modem kepada komputer untuk menginfomasikan bahwa saluran telah
dihubungi dan berbunyi. Sinyal ini muncul bersamaan saat telfon berbunyi. Sinyal ini seperti saat
telfon kita sedang tidak digunakan, dan seseorang dari sana menelfon,lalu pesawat telfon kita
berbunyi, meminta kita untuk segera mengangkatnya, dan berkomunikasi. Dalam modem bunyi
tersebut digantikan dengan sinyal. Saat komputer kita dalam keadaan mati, setting BIOS dalam
komputer memungkinkan Komputer untuk hidup sendiri saat adanya panggilan semacam ini.
Port COM pada PC-IBM dan sejenisnya
Komputer PC-IBM dan sejenisnya yang berbasis mikro prosesor x86 (8086, 186, 286, 386,
486, dan pentium) memiliki dua buah (setidaknya satu) port COM. Kedua port COM
memiliki
konektor standar RS232. Konektor serial DB-25 sudah tidak ada lagi sekarang. Kalaupun
kita menjumpai DB-25 itu adalah port printer, yang juga sudah mulai ditinggalkan karena
printer terbaru lebih suka menggunakan USB. Port-port COM tersebut diberi nama
dengan COM1 dan COM2. Biasanya port COM ini sekarang digunakan untuk modem
(modem sekarang juga sudah banyak menggunakan USB). Kita dapat bereksperimen
dengan menghubungkan 8051 pada COM tersebut.
Setelah sedikit banyak memahami landasan dasar dari komunikasi serial kita sudah siap
untuk mengupas tuntas peralatan serial pada 8051.

SubBAB 10.2: KONEKSI 8051 PADA RS232


Pada sub bab ini kita akan mambahas detil wujud dari koneksi 8051 ke konektor RS232.
Seperti yang kita ketahui bahwa standar RS232 tidak kompatibel dengan standar TTL.
Sehingga membutuhkan peralatan lain semisal MAX232 untuk dapat menghubungkan
kedua jenis standar tersebut. RS232 mengkonversi standar RS232 ke standar TTL dan
begitu pula sebaliknya.
Pin RxD dan TxD pada 8051
8051 memiliki dua pin yang digunakan secara khusus untuk mengirim dan menerima
data secara serial. Kedua pin tersebut dinamakan TxD (Transmit Data) dan RxD (Recieve
Data) yang merupakan bagian dari port 3 (P3.0 dan P3.1). Pin 11 pada 8051 (P3.1)
ditetapkan sebagai TxD, pin 10 (P3.0) digunakan sebagai RxD. Tentu saja pin-pin tersebut
adalah standar TTL. Kita harus menggunakan line driver seperti MAX232 untuk
menghubungkan dua standar tersebut.
MAX232
Karena RS232 sekarang tidak compatible lagi dengan microprosesor modern, kita
membutuhkan line driver agar data yang dikirim MikroKontroller dengan standar TTL
dapat diterima dengan baik oleh alat yang berstandar RS232. Demikian juga sebaliknya.
Dengan menggunakan MAX232 pekerjaan kita akan lebih mudah karena MAX232
menggunakan satu sumber daya 5 volt, yang bisa langsung diambilkan dari sumber data
8051, dan tidak dibutuhkan dua buah sumber daya seperti pada system kuno. MAX232
memiliki dua pasang line driver, 2 untuk pemngiriman, dan 2 untuk penerimaan. MAX232
hanya membutuhkan 4 buah kapasitor dengan nilai antara 1 22 uF. Namun beberapa
aplikasi yang telah ada, menggunakan nilai 22 uF.

gambar : Rangkaian Line Driver RS232 dengan chip MAX232

Line Driver RS232 sederhana


Kita masih dimungkinkan utuk membangun Line Driver sederhana yang dapat
menghubungkan level TTL dan level RS23. Satu-satunya yang menjadi kelebihan dari line
driver ini adalah dapat dibangun dengan harga yang sangat murah.

gambar : Rangkaian Line Driver RS232 sederhana


Dalam beberapa pengujian Line Driver ini memang tidak sebaik MAX232. Namun untuk
operasi-operasi sederhana yang membutuhkkan komunikasi serial sesekali seperti
simulator atau downloader, kita dapat menjatuhkan pilihan pada line driver jenis ini
dengan unjuk kerja yang memuaskan. Namun untuk komunikasi yang terus menerus
dengan kecepatan tinggi, dan dengan sangat mementingkan keakuratan data sebaiknya
gunakan MAX232 karena chip tersebut memiliki ketahanan dan unjuk kerja lebih baik.

SubBAB 10.3: Pemrograman komunikasi serial 8051


Pada sub BAB ini kita akan membahas register-register komunikasi serial pada 8051, dan
memperlihatkan bagaimana memprogramnya untuk dapat mengirimkan dan menerima
data secara serial. Mengingat Komputer PC banyak digunakan untuk berhubungan secara
serial dengan system berbasis 8051, kita sedikit banyak akan mempelajari cara
menghubungkan 8051 pada konektor COM dari Komputer PC. Untuk menghubungkan
keduanya tanpa adanya error, maka 8051 harus dapat menghasilkan baud rate yang
didukung oleh BIOS Komputer PC seperti yang diperlihatkan pada tabel 11-1. Kita dapat
mengatur baud rate yang digunakan komputer PC melalui program Terminal.exe atau
Hiper Terminal atau hypertrm.exe. Beberapa program support dengan baud rate yang
lebih tinggi dari yang ditampilkan pada tabel 10-1 tersebut.
Catatan dari penterjemah: Jika anda hendak membuat program serial dalam semua platform Windows(tm) menggunakan
Delphi(tm), dan kebingungan menemukan modul serial, lihat Membangun komunikasi serial dengan Delphi, untuk membantu
anda membuat program serial canggih dengan Delphi.

Contoh 10-1
Dengan XTAL = 11.0592 MHz, cari nilai TH1 yang dibutuhkan untuk membentuk baud
rate.
(a) 9600 (b) 2400 (c) 1200
Jawaban:
Dengan XTAL = 11.0592 MHz, kita akan mendapatkan :
Frekuensi Siklus Mesin 8051 = 11.0592 MHz / 12 = 921.6 kHz, dan 921.6 kHz / 32 =
28.800 Hz adalah frekuensi yang dihsalikan oleh UART menuju Timer-1 untuk
membentukbaud rate.

(a) 28.800 / 3 = 9600 dimana -3 = FD (hex) adalah isi TH1


(b) 28.800 / 12 = 2400 dimana -12 = F4 (hex) adalah isi TH1
(c) 28.800 / 24 = 1200 dimana -24 = E8 (hex) adalah isi TH1
Harap dicacat pembagi (/32) oleh UART adalah pembagi asli setelah raset. Kita dapat
mengubah nilai ini seperti yang dijelaskan pada akhir bab ini.

Baud Rate pada 8051


8051 mengirim dan menerima data secara serial pada berbagai baud rate yang berbeda.
Baud rate pada 8051 dapat diprogram. Hal ini dapat dikerjakan dengan bantuan Timer-1
(yang sudah kita bahas). Sebelumnya kita harus merujuk hubungan antara kristal osilator
dengan baud rate pada 8051.
Pada bab sebelumnya, 8051 membagi frekuensi osilator dengan 12 untuk mendapat
frekuensi siklus mesin. Jika kita menggunakan XTAL = 11.0592 MHz, kita akan mendapat
siklus mesin 921.6 kHz (11.0592 MHz / 12 = 921.6 KHz). Peralatan komunikasi serial
masih membagi siklus frekuensi siklus mesin tersebut dengan 32 sebelum kemudian
diberikan kepada Timer-1 untuk menghasilkan baud rate. Sehingga 921.6 kHz bagi 32
hasilnya 28.800 Hz. Dengan berdasar pada nilai baud rate dasar 28.800 Hz tersebut, kita
dapat mencari nilai pada Timer-1 untuk mendapatkan baud rate yang kita inginkan. Saat
digunakan sebagai penghasil baud rate, Timer-1 harus diprogram dalam mode-2, 8-bit,
auto reload. Dan untuk mendapatkan baud rate yang cocok dengan baud rate yang ada
pada PC maka kita harus melihat pada tabel 10-3 dan 10-4. Sedang Contoh 10-1
menunjukkan bagaimana menguji data pada tabel 10-3.

Register SBUF
SBUF adalah register 8-bit yang digunakan secara khusus untuk komunikasi serial. Agar
data dapat dikirim memlalui pin TxD, data byte harus diberikan pada register SBUF. Hal
yang serupa, SBUF berisi data byte saat 8051 menerima data dari pin RxD. SBUF dapat
diakses seperti register lainnya pada 8051. Lihat contoh berikut tentang bagaimana
register SBUF ini diakses.
MOV SBUF,#D
MOV SBUF,A
MOV A,SBUF

;isi SBUF=44h, ASCII untuk D


;salin/Letakkan isi Acc pada SBUF
;Salin/ambil isi SBUF ke Acc

Pada saat data byte dituliskan pada SBUF, data itu kemudian langsungdibingkai (framed)
dengan bit start dan bit stop, dan selanjutnya dikirim secara serial melalui pin TxD.
Sebaliknya, saat bit-bit diterima oleh 8051 nelalui pin RxD sampai pada bit stop, 8051
akan membuat bit-bit bingkai, dan kemudian menaruh data yang sebenarnya pada SBUF.

Register SCON (Serial Control)


Register SCON adalah register 8-bit yanng digunakan untuk memprogram bit start dan
bit stop pada pembingkaian data, dan hal lainnya.

SM0 SCON.7 Pemilih mode port serial


SM1 SCON.6 Pemilih mode port serial
SM2 SCON.5 Digunakan untuk komunikasi multi prosesor
REN SCON.4 Untuk dapat melakukan penerimaan.
TB8 SCON.3 Tidak banyak digunakan
RB8 SCON.2 Tidak banyak digunakan
TI
SCON.1 Transmit Interupt Flag. Set oleh hardware dan clear oleh software.
RI
SCON.0 Receive Interupt Flag. Set oleh hardware dan clear oleh software.

gambar 10-9 Register Serial Port Control (SCON, Bit Addresseble)


SM0,SM1
SM0 (Serial Mode 0) dan SM1 (Serial Mode 1) adalah masing-masing D7 dan D6 dari
register SCON. Kedua bit tersebut menentukan pembingkaian data dengan mengatur
jumlah bit per karakter, bit-bit start, dan stop.
SM0 SM1
0
0
Serial
0
1
Serial
1
0
Serial
1
1
Serial

Mode-0
Mode-1, 8-bit data, 1 stop bit, 1 start bit
Mode-2
Mode-3

Dari 4 mode serial, hanya mode-1 yang paling menarik perhatian kita. Penjelasan lebih
lanjut tentang mode lainnya akan anda temui di Lampiran A.3. Mode-mode selain mode-1
tersebut sudah jarang sekali digunakan. Jika register SCON diatur pada mode-2,
pembingkaian datanya adalah 8-bit, 1 stop bit, dan 1 start bit, yang mana hal ini masih
kompatible dengan PC-IBM. Hal penting lainnya adalah, serial mode-1 ini adalah memiliki
baud rate variable yang ditentukan oleh Timer-1. Pada serial Mode-1, total bit adalah 10bit, yang terdiri dari 8-bit data, 1 stop bit, dab 1 start bit.
SM2
SM2 (Serial Mode 2) adalah D5 pada register SCON. Bit ini untuk mendukung
kemampuan komunikasi serial pada system yang menggunakan lebih dari satu prosesor

(multi prosesor), yang akan kita bahas nanti. Untuk sementara kita akan membuat SM2
ini selau 0s. Hal itu karena kita hanya menggunakan satu 8051.
REN
Bit REN (Recieve Enable) adalah D4 pada register SCON. REN juga dapat dinamakan bit
SCON.4 mengingat SCON adalah register yang bisa dialamati secara bit. Ketika bit REN
ini tinggi, akan membuat 8051 dapat menerima data pada pin RxD. Alhasil jika kita
menginginkan 8051 dapat mengirimkan data sekaligus dapat menerima data, maka bit
REN ini harus dibuat tinggi. Hal itu dapat dilakukan misalnya dengan perintah SetB
SCON.4 untuk mengaktifkan penerimaan, dan Clr SCON.4 untuk menonaktifkan. Bit
REN ini sangat penting, dengan kata lain atur REN = 1 agar 8051 dapat menerima data
serial.
TB8
TB8 (Transfer bit 8) adalah D3 dan register SCON. TR8 ini adalah bit ke-9 untuk mode
pengiriman data 9-bit. Sebelum kita menuliskan data 8-bit SBUF, maka kita sebelumnya
harus menulis bit ke-9 tersebut pada TB8. Demikian maksudnya agar bit ke-9 itu benarbenar dikirim pada rangkaian data yang seharusnya.
RB8
RB8 (Recieve bit 8) adalah D1 pada register SCON. Bit ini adalah bit ke-9 untuk mode
penerimaan data 9-bit. Setelah mengambil data pada SBUF, isi RB8 ini dapat kita ambil.
Bit ke-9 ini biasanya adalah informasi paritas, karena banyak melibatkan software,
penanganan paritas di sini adalah juga lewat software. Namun kenyataannya mode 9-bit
sekarang jarang digunakan, hal ini karena penanganan paritas sudah dapat dilakukan
melalui hardware. Namun untuk selanjutnya bahasan kita, kita anggap isi TB8 dan RB8
adalah nol (rendah), dan tidak kita gunakan.
TI
TI(Transmit Interupt) adalah D1 pda register SCON. Ini adalah bit yang sangat penting
pada register SCON. Saat 8051 selesai mengirimkan data karakter 8-bit bendera bit TI ini
akan diset menjadi 1s yang menandakan peralatan serial telah siap utuk mengirimkan
data berikutnya. TI diterbitkan saat 8051 mengirim bit stop pada akhir pengiriman data
byte. Kita akan mendikusikan lebih jauh nanti.
RI
RI (Recieve Interupt) adalah D0 pada register SCON. Ini adalah bit yang juga sangat
penting. Saat 8051 menerima data secara serial memlalui pin RxD, begitu proses
penerimaan selesai data byte yang diterima diletakkan pada SBUF sembari menerbitkan
bendera bit RI ini, yang menandakan adanya byte yang telah diterima. Dan bersiap
untuk menerima data berikutnya. Data yang sudah diterima dan sudah ada pada SBUF

dengan terbitnya bendera bit RI ini harus segara kita salin ketempat yang lain. Kalau
tidak, data tersebut akan hilang karena tertimpa oleh data yang baru. Bit RI ini
diterbitkan, saat 8051 sedang menerima stop bit dari proses menerimaan data. Hal ini
akan kita diskusikan lebih jauh nanti.
Pemrograman 8051 untuk mentransfer Data secara serial
Dalam pemrograman 8051 untuk dapat mengirim data secara serial, lagkah-langkah
berikut harus dilakukan.
1. Register TMOD diisi dengan 20h, yang berarti menggunakan Timer-1 pada mode-2 (8-bit
2.
3.
4.
5.
6.
7.
8.

autoreload) untuk mengatur baud rate.


TH1 diisi dengan nilai yang diberikan pada tabel 10-4 untuk mengatur baud rate. (Anggaplah
kita menggunakan XTAL = 11.0592 MHz.
Register SCON diisi dengan nilai 50h, yang berarti serial mode-1, 8-bit data yang dibingkai
dengan start danstop bit.
Jalankan Timer dengan men-set TR1
Reset TI dengan perintah Clr TI.
Letakkan data atau karakter yang hendak dikirim ke register SBUF.
periksa dan tunggu bendera TI dengan menggunakan JNB TI,xx, sampai TI = 1 , yang
berarti data sudah terkirim seluruhnya.
Lompat ke langkah 5 untuk mengirim data atau karakter selanjutnya.

Contoh 10-2 memperklihatkan program untuk mengirimkan data secara serial pada baud
rate 400 bps. Sedang contoh 10-3 memperlihatkan bagaimana mengirim karakter YES
secara serial terus-menerus.

Contoh 10-2
Tulislah program pada 8051 untuk mengirimkan huruf A secara serial pada baud 4800,
terus menerus.
Jawaban:
MOV TMOD,#20h
;Timer-1, Mode-2 (autireload)
MOV TH1,#-6
;baud rate 4800
MOV SCON,#50h
;8-bit, 1-stop, ren = 1
SetB TR1
;jalankan Timer-1
LAGI: MOV SBUF,#A
;kirim A
ULANG: JNB TI,ULANG
;Tunggu sampai TI = 1
Clr TI
;reset TI
ACALL DELAY1S
;tunggu 1 detik
SJmp LAGI

;Ulangi terus kirim A

Contoh 10-3
Tulislah program pada 8051 untuk mengirimkan pesan YES secara serial pada baud
9600, 8-bit data, 1-stop bit. Terus menerus.
Jawaban:
MOV TMOD,#20h
;Timer-1, Mode-2 (autoreload)
MOV TH1,#-3
;baud rate 9600
MOV SCON,#50h
;8-bit, 1-stop, ren = 1
SetB TR1
;jalankan Timer-1
LAGI: MOV A,#Y
;kirim Y
ACALL TRANS
MOV A,#E
;kirim E
ACALL TRANS
MOV A,#S
;kirim S
ACALL TRANS
ACALL DELAY1S
;tunggu 1 detik
SJmp LAGI

;Ulangi lagi

;subrutin pengiriman data serial


TRANS: MOV SBUF,A
;Isikan dari A
ULANG: JNB TI,ULANG
;Tunggu sampai TI = 1
Clr TI
;reset TI
RET

Hal yang penting pada bendera TI


Untuk mengerti aturan terpenting dari bendera TI lihatlah urutan dibawah ini, yang
memperlihat proses 8051 dalam mengirimkan data serial
1. Data byte yang hendak dikirim, ditulis ke register SBUF.
2. Mengirim bit start.
3. Ke 8 bit data dikirim satu bersatu.
4. Stop bit dikirim. Pada saat mengirim stop bit ini, 8051 menerbitkan bendera TI (TI =1), yang

berarti databyte pada SBUF tadi sudah terkirim keseluruhannya.


5. Dengan memonitor bendera TI, kita dapat terhindar dari menulis kembali SBUF, sebelum
seluruh bit data SBUF sebelumnya terkirim dnegan baik. Jika kita menulis data pada SBUF
saat prosespengiriman data serial belum selesai, maka bagian bit data yang belum sempat
dikirmkan akan diabaikan. Dengan kata lain TI akan terbit (tinggi), yang berarti 8051 siap
mengirimkan data berikutnya.
6. Sebelum SBUF ditulis dengan data baru, bendera TI harus dibuat rendah dengan perintah
Clr TI, dengan demikian proses pengiriman data dapat dilakukan dengan baik.

Dari pembahasan di atas, kita mendapatkan kesimpulan, bahwa dengan melihat bendera
bit TI, kita akan segera tahu kapan proses transmit selesai dilakukan.
Pemrograman 8051 untuk menerima data secara serial
Dalam pemrogram 8051 untuk dapat menerima data secara serial, langkah-langkah
berikut harus diikuti.
1. Register TMOD diisi dengan 20h, yang berarti menggunakan Timer-1 pada mode-2 (8-bit

autoreload) untuk mengatur baud rate.


2. TH1 di isi dengan nilai yang diberikan pada tabel 10-4 untuk mengatur baud rate. (Anggaplah
3.
4.
5.
6.
7.
8.

kita menggunakan XTAL = 11.0592 MHz.


Register SCON diisi dengan nilai 50h, yang berarti serial mode-1, 8-bit data yang dibingkai
dengan start dan stop bit.
Jalankan Timer dengan men-set TR1
Reset RI dengan perintah Clr TI.
Periksa dan tunggu bendera RI dengan menggunakan JNB RI,xx, sampai RI = 1 , yang
berarti data sudah diterima seluruhnya.
Salin isi SBUF ketempat yang lain sebelum SBUF diisi dengan data baru.
Lompat ke langkah 5 untuk menerima data atau karakter selanjutnya.

Contoh 10-4
Programlah 8051 untuk dapat menerima byte secara serial, dan tampilkan pada P1. Atur
baud rate 4800, 8-bit, 1-stop bit.
Jawaban:
MOV TMOD,#20h
;Timer-1, Mode-2 (autireload)
MOV TH1,#-6
;baud rate 4800
MOV SCON,#50h
;8-bit, 1-stop, ren = 1
SetB TR1
;jalankan Timer-1
ULANG: JNB RI,ULANG
;Tunggu sampai RI = 1
MOV A,SBUF
;simpan data yg diterima
MOV P1,A
;tuliskan pada Port 1
Clr RI
;reset RI
SJmp ULANG
;Ulangi terima data

Contoh 10-5
Anggaplah port serial dari 8051 terhubung pada port COM komputer PC kita, dan dari
komputer kita mmengggunakan terminal.exe untuk mengirim dan menerima data
secara serial. P1 dan P2 masing-masing terhubung pada LED dan switch. Tulis program
8051 (a) untuk dapat mengirim pesan We Are Ready, dan (b) menerima semua data

yangdikirm dari PC dan mennampilkannya pada LED yang terhubung pada P1, (c) ambil
data dari switch yang terhubung P2 dan kirim pada PC. Pada bagian (a) dikerjakanhanya
sekali, sedang (b) dan (c) dikerjakan terus menerus. Gunakna baud rate 4800.
Jawaban:
ORG
MOV
MOV
MOV
MOV
SetB

0
P2,#0FFh
;Buat P2 sebagai Port Input
TMOD,#20h
;Timer-1, Mode-2 (autireload)
TH1,#0FAh
;baud rate 4800
SCON,#50h
;8-bit, 1-stop, ren = 1
TR1
;jalankan Timer-1

MOV DPTR,#MYDATA ;Isikan pointer pada text


CLR A
MOVC A,@A+DPTR
;Ambil karakternya
JZ B_1
;Jika karakter terakhir, maka keluar
ACALL SEND
INC DPTR
;Karakter selanjutnya
SJMP H_1
;Ulangi proses
B_1: MOV A,P2
;Baca data pada P2
ACALL SEND
ACALL RECV
MOV P1,A
;tampilkan pada port
SJMP B_1
;Ulangi terus
; Transfer data serial
SEND: MOV SBUF,A
H_2: JNB TI,H_2
CLR TI
RET
; Menerima data serial
RECV: JNB RI,RECV
MOV A,SBUF
CLR RI
RET
; Pesan
MYDATA: DB We Are Ready,0
END
H_1:

Hal yang penting pada bendera bit RI


Saat menerima data lewat pin RxD, 8051 bekerja sebagai berikut.
1. Saat menerima start bit , berarti bit selanjutnya adalah bit pertama dari karakter yang
2.
3.

4.

5.

akan diterimanya.
Karakter 8-bit diterima bit demi bit. Saat menerima bit terakhir, maka byte secara lengkap
sudah bisa diletakkan pada SBUF.
Saat stop bit diterima, 8051 membuat bendera RI = 1s, yang berarti seluruh bit dari
karakter sudah diterima dan harus segera diambil sebelum ditimpa oleh karakter yang
datang belakangan.
Dengan memeriksa bendera RI , kita dapat mengetahui kapan sebuah karakter telah
diterima secara lengkap, dan sudah berada pada register SBUF. Kita harus menyalin isi
SBUF ke tempat yang aman pada memory yang lain, sebelum data tersebut hilang.
Setelah isi SBUF di salin ke tempat yang aman, bendera RI harus di-clear menjadi 0s
dengan perintah Clr RI, untuk selanjutnya dapat menerima karakter baru. Kesalahan
dalam melakukan hal ini dapat berakibat hilangnya data.

Dari diskusi di atas kita dapat menyimpulkan bahwa memeriksa bendera RI harus
terlebih dahulu meng-clear bendera tersebut dengan perintah Clr RI dan selanjutnya
menggunaakan instruksi seperti JNB RI,xx untuk menunggu RI menjadi 1s (high). Atau
yang lebih baik menggunakan interupsi yang akan kita bahas pada bab selanjutnya.

Meng-duakali-kan baud rate pada 8051


Ada dua jalan untuk meningkatkan baud rate dari komunikasi serial pada 8051.
1. Gunakan osilator kristal dengan frekuensi yanglebih tinggi
2. Ubah bit pada register PCON, seperti di bawah ini.

Pilihan pertama tentu membuat tidak nyaman karena osilator kristal sifatnya tetap
(disolder pada PCB), tidak mudah diganti-ganti. Namun yang lebih parah lagi, kristal
yang baru, belum tentu kompatibel dengan baud rate pada konektor COM komputer PC
kita. Oleh karena itu kita akan membahas lebih jauh tentang pilihan ke dua. Karena ada
cara software untuk men-duakali-kan baud rate 8051 tanpa perlu mengganti kristal
osilator. Hal ini bisa dilakukan dengan mengubah salah satu bit pada registe PCON
(Power Control). Register PCON adalah register 8-bit. Dari 8-bit tersebut beberapa
diantaranya tidak digunakan, dan sebagian lain digunakan untuk pengendalian daya
pada 8051. Bit dimana digunakan untuk komunikasi serial hanya D7 dari register PCON
tersebut (yang juga disebut bit SMOD). Saat 8051 baru dihidupkan, isi register ini selalu
00h. Sehingga SMOD pun juga dalam keadaan 0. Kita dapat mengatur SMOD ini untuk
menjadi 1s, akibatnya frekuensi yang diterima Timer menjadi 2 kali lebih cepat. Di
bawah ini adalah prosedure yang baik untuk men-set SMOD atau D7 pada PCON. Hal ini
karena PCON bukanlah register yang bisa dialamati bit.
MOV A,PCON
SetB Acc.7
MOV PCON,A

;Salin isi PCON pada Acc


;buat D7 setara dgn SMOD = 1
;Kembalikan isi Acc ke PCON

Untuk melihat bagaimaa baud rate dikalikan dua dengan metode ini, kita akan
membahas bit SMOD tersebut.

Baud rate saat SMOD = 0


Saat SMOD = 0, Frekunesi yang digunakan oleh peralatan Serial untuk membentuk baud
dasar adalah 1/32 dari siklus mesin. Frekuensi yang sudah dibagi tersebut yang
kemudian diberikan pada Timer-1 untuk dibagi lagi sesuai dengan keinginan kita.
Misalnya kita menggunakan XTAL = 11.0592 MHz, kita akan mendapatkan.
MC (Siklus Mesin) = 11.0592 MHz / 12 = 921.6 kHz
Baud dasar = 921.6 kHz / 32 = 28,800 Hz (SMOD =0)
Frekuensi 28,800 inilah yang digunakan Timer-1 untuk mengatur baud rate yang kita
inginkan. Ini adalah dasar dari serial karena saat reset atau 8051 baru dinyalakan, SMOD
selalu dalam keadaan rendah ( 0s ).

Baud rate saat SMOD = 1


Dengan tidak mengubah frekuensi kristal osilator, kita dapat mendua-kalikan baud rate
dengan membuat SMOD menjadi = 1 . Saat bit SMOD pada register PCON ini = 1,
peralatan serial beralih menggunakan frekuensi yang 1/16 dari siklus mesin
( sebelumnya 1/32 ). Lihat contoh degan XTAL = 11.0592 Mhz
MC (Siklus Mesin) = 11.0592 MHz / 12 = 921.6 kHz
Baud dasar = 921.6 kHz / 16 = 57,600 Hz (SMOD =1)

Frekuensi inilah yang digunakan oleh Timer-1 untuk membentuk baud rate yang kita
inginkan. Tabel 10-5 , menunjukkan nilai yang diisikan pada TH1 adalah sama untuk
kedua kasus dimana SMOD = 0 dan SMOD = 1.
Tabel 10-5 : perbandingan baud rate untuk SMOD = 0 dan SMOD = 1

TH1
Desimal

Hex

SMOD = 0

SMOD = 1

-3

FD

9.600

19.200

-6

FA

4.800

9.600

-12

F4

2.400

4.800

-24

E8

1.200

2.400

Contoh 10-6
Anggaplah kita menggunakan XTAL = 11.0592 MHz pada progrram berikut, (a) program
apa itu sebenarnya (b) hitung frekuensiyng diterima Timer-1 untuk membentuk Baud
rate untuk pengiriman data.
MOV A,PCON
;A = PCON
SETB ACC.7
;Buat D7 = 1 (Double rate)
MOV PCON,A
;Kembalikan PCON
MOV TMOD,#20h
;Timer-1, Mode-2, auto-reload
MOV TH1,#-3
;dengan SMOD=1 === 57600/3 = 19200
MOV SCON,#50h
;8-bit data, 1 stop, RI enable
SETB TR1
;Jalankan Timer-1
MOV A,#B
;Isi dengan karakter B
A_1:
CLR TI
;Mulai pengiriman
MOV SBUF,A
;Makak krimkan
H_1:
JNB TI,H_1
;tunggi sampai TI =1
SJMP A_1
Jawaban:
(a) Program ini adalah mengirimkan karakter B (01000010b) terus menerus.
(b) Dengan XTAK = 11.0592 MHz dan SMOD = 1 , dari program di atas kita akan

memperoleh.
11.0592 / 12 = 921,6 kHz adalah siklus kerja mesin.
921,6 / 16 = 57.600 Hz adalah frekuensi yang diterima Timer-1.
57.600 / 3 = 19.200 Hz adalah frekuensi yang dihasilkan Timer-1 sebagai baud rate.

Contoh 10-7
Cari nilai TH1 dalam desimal dan Hex, untuk mengatur nilai baud rate (a) 9600 (b)
4800 , jika SMOD = 1 dan XTAL 11,0592 MHz.
Jawaban:
Dengan XTAL = 11,0592 MHz dan SMOD = 1, kita mendapatkan frekuensi Timer-1 =
57.600 Hz.
(a) 57.600 Hz / 9600 = 6 , sehingga TH1 diisi -6 = FAh
(b) 57.600 Hz / 4800 = 12, sehingga TH1 diisi -12 = F4h

Contoh 10-8
Cari BAUD rate jika TH1 = -2 , SMOD = 1, dan XTAL = 1105920 MHz. Dan apakah baud
rate ini cocok dengan Komputer PC?
Jawaban:
Dengan XTAL = 11,0592 MHz dan SMOD = 1, kita akan mendapatkan frekuensi Timer1 =
57.600 Hz. Dan baud rate sendiri adalah sebesar 57.600 / 2 = 28.800. Baud rate ini
tidak cocok dengan BIOS pada komputer PC. Namun beberapa modem dan program
seperti HiperTerminal ternyata dapat bekerja pada baud rate ini dan baud rate yang lain.

Contoh 10-9
Cari bagaimana memprogram komunikasi serial menggunakan 8051 untuk
menghubungi membunyikan nada C4 pada MIDI komputer PC kita. Menggunakan XTAL =
12 MHz.
Jawaban:
MIDI adalah standar komunikasi musik digital yang sekarang masih digunakan. Di bawah

ini adalah langkah-langkah untuk melakukan pengauran-pengaturan pada peralatan


serial untuk MIDI.
1. selalu bekerja pada baud rate 31.250 Hz
2. menghubungkan pin 11 (TxD) pada 8051 ke pin 15 (MIDI input) konektor MIDI
3.

4.

5.

pada PC.
frekuensi 12 MHz adalah ideal, karena dari Siklus Mesin = 12 MHz / 12 = 1 uS,
kita akan mendapatkan frekuensi 1 MHz. Anggap kita menggunakan SMOD = 0
maka frekuensi untuk Timer-1 adalah 1 MHz / 32 = 31.250 Hz. Karena 31.250 Hz
adalah tepat baud rate MIDI maka frekuensi ini tidak perlu dibagi lagi, sehingga
nilai untuk TH1 adalah -1.
Setelah setting serial sudah ditetapkan, kirim ke MIDI-message dengan
serangkaian data dengan format 3-byte. Yaitu (Status,Param,Value = NoteOn,
C4, Volume) == 80h, 38h, 7Fh. Buka buku tentang format MIDI-message.
programnya adalah sbb
MOV
MOV
MOV
SETB

TMOD,#20h
;Timer-1, Mode-2, auto-reload
TH1,#-1
;dengan SMOD=1 === 31250/1 = 31250
SCON,#50h
;8-bit data, 1 stop, REN enable
TR1
;Jalankan Timer-1

MOV SBUF,#80h
;kirim Midi Status = Note-On
JNB TI,$
;Tunggu sampai TI = 1
Clr TI
;reset TI
MOV SBUF,#38h
;kirim Midi Param = Note C4 (38h)
JNB TI,$
;Tunggu sampai TI = 1
Clr TI
;reset TI
MOV SBUF,#64h
;kirim Midi Status = Volume 100
JNB TI,$
;Tunggu sampai TI = 1
Clr TI
;reset TI

Transfer data berbasis Interupsi


Boleh jadi sekarang anda bertanya-tanya bukankah sangat membuang-buang waktu
untuk menunggu status TI dan RI sekaligus. Pada BAB 11, kita akan bahas bagaimana
menggunakan interupsi untuk memprogram port komunikasi serial pada 8051.

RINGKASAN

BAB ini dimulai dengan perkenalan mendasar tentang komunikasi serial. Komunikasi
serial, di mana data dikirim bit-demi-bit, digunakan terutama pada jarak yang panjang,
dibandigkan dengan komunikasi parallel. Mengirim data byte secara parallel pada jarak
yang sangat jauh akan menimbulkan distorsi pada kabel serta sinyal, dan dimungkinkan
adanya logika palsu. Komunikasi serial sekarang sudah sangat maju dengan menumpang
pada kabel telpon. Komunikasi serial menggunakan dua metode, yaitu metode
Asynchronos dan Synchronos. Pada komunikasi Synchronos, data dikirm blok-byte per
blok-byte (dan kadang disinkronkan dengan sinyal tambahan), sedang pada
Asynchronos, data dikirim byte demi byte. Komunikasi serial dapat berupa simplex (bisa
mengirim tapi tidak bisa menerima), half duplex (bisa mengirim dan menerima, namun
tidak bisa bersamaan), dan full-duplex ( bisa mengirim dan menerima dalam waktu yang
bersamaan). RS232 adalah standar konektor untuk komunikasi serial.
UART pada 8051 adalah yang telah kita diskusikan. Kita tahu bagaimana
menghubungkan 8051 dengan konektor RS232 dan mengubah baud rate pada 8051.
Ditambah lagi kita dapat menjelaskan fungsi-fungsi lain dari komuniasi serial 8051, dan
memrogramnya sebagai komunikasi data serial.

Anda mungkin juga menyukai