BAB 10KOMUNIKASI SERIAL PADA 8051SasaranSetelah anda menamatkan
bab ini , diharapkan anda dapat : Membedakan dan membandingkan
komunikasi serial dan parallel Menyebutkan kelebihan komunikasi
serial dibanding parallel Menjelaskan protocol komunikasi serial
Menbedakan komunikasi Synchronous dan Asynchronous Membedakan
transmisi half- dan full-duplex Menjelaskan proses dari
pembingkaian data (framing) Membedakan data transfer rate dan bps
rate Menjelaskan standar RS232 Menerangkan penggunaan MAX232
Menghubungkan 8051 pada konektor RS232 Membahas Baud Rate pada 8051
Menjelaskan peralatan komunikasi serial pada 8051 Memprogram 8051
untuk komunikasi data serialTransfer data komputer dilakukan dengan
dua cara: parallel dan serial. Dalam transfer data parallel, 8 buah
(atau lebih) saluran (kabel) bersama-sama digunakan untuk
men-transfer 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 SERIALSaat 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 ParallelKomunikasi Serial
dapat digunakan untuk menggantikan Komunikasi Parallel jalur data
8-bit 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 bit-bit 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 dan
asynchronous. 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-DuplexDalam 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-2Komunikasi serial
Asynchronous dan Data FramingSetiap 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
StopKomunikasi 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
komponen-komponen 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 rateKecepatan 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 RS232Untuk 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-9Table 10-2 Sinyal DB-9 pada
IBM-PCPin Penjelasan1 DCD = Data Carrier Detect2 RcD = Received
Data3 TxD = Transmited Data4 DTR = Data Terminal Ready5 GND =
Ground6 DSR = Data set Ready7 RTS = Request To Send8 CTS = Clear To
Send9 RI = Ring IndicatorShield = 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 RS232Untuk
menjamin terjadinya sebuah transfer data yang cepat dan Realibel
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 sejenisnyaKomputer 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 RS232Pada 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 80518051 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.MAX232Karena 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 MAX232Line
Driver RS232 sederhanaKita 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 sederhanaDalam 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 8051Pada sub BAB ini
kita akan membahas register-register komunikasi serial pada 8051,
dan memperlihatkan bagaimana memprogramnya untuk dapat mngirimkan
dan menerima data secara serial. Mengingat Komputer PC banyak
digunakan untuk berhubungan scara 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) 1200Jawaban: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 membentuk
baud 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 TH1Harap
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 80518051 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. Jka kita menggunakan XTAL = 11.0592 MHz, kita akan
mendapat diklus 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 bilai baud rate dasar 28.800 Hz
tersebut kita dapat kita dapat mencari nilaipada Timer-1 untuk
mendapatkan baud rate yang kiota inginkan. Saat digunkan 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. Sedanngn Contoh 10-1 menunjukkan bagaimana menguji data pada
tabel 10-3.Register SBUFSBUF adalah register 8-bit yang digunakan
secara khusus untuk komunikasi serial. Agar data dapat dikirim
memlaui pin TxD, data byte harus di berikan 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 ;isi SBUF=44h, ASCII untuk "D" MOV SBUF,A ;salin/Letakkan
isi Acc pada SBUF MOV A,SBUF ;Salin/ambil isi SBUF ke AccPada saat
data byte dituliskan pada SBUF, data kemudian dibingkai (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 serialSM1 SCON.6 Pemilih mode port
serialSM2 SCON.5 Digunakan untuk komunikasi multi prosesorREN
SCON.4 Untuk dapat melakukan penerimaan.TB8 SCON.3 Tidak banyak
digunakanRB8 SCON.2 Tidak banyak digunakanTI 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,SM1SM0 dan SM1 adalah masing0masing D7 dan D6 dari
register SCON. Kedua bit tersebut menentukan pembingkaian data
dengan mengatur jumlah bit ber karakterm bit-bit start dan stop.
SM0 SM1 0 0 Serial Mode-0 0 1 Serial Mode-1, 8-bit data, 1 stop
bit, 1 start bit 1 0 Serial Mode-2 1 1 Serial Mode-3Dari 4 mode
serial, hanya mode1 yang paling menarik perhatian kita. Penjelasan
lebihlanjut tentang mode lainnya akan anda temui di Lampiran A.3.
Mode-mode tersebut sudah jarang sekali digunakan. Jika register
SCON siatur pada mode-2, pembingkaian datanya adalah 8-bit, 1 stop
bit, dab 1 start bit, yangmana hal inimasih kompatible dengan
PC-IBM. Hal penting lainnya adalah, serial mode-1 ini adalah
memiliki baud rate variable yang ditentukanoleh Timer-1. Pada
serial Mode-1, total adalah 10-bit, yang terdiridari 8-bit data, 1
stop bit, dab 1 start bit.SM2SM2 adalah D5 pada REGISTER scon. Bit
ini untuk mendukutng 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.RENBit REN
adalah D4 pada register SCON. REN juga dapat dinamaka bit SCON.4
mnengingat SCON adalah register yang bisa dialamati secarfa 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" dan "Clr SCON.4". Hal tersebut bisa dilakukan mengingat
SCON adalag register yang bisa dialamati secara bit. Bit REN ini
sangat penting, jika kita tidak memginginkan 80051 meneripa data
secara serial apapun.TB8(TB8 (Transfer bit 8) adalah D3 dan
register TCON. TR8 ini adalah bit ke-9 untuk mode pemngiriman 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 benar-benar dikirim pada rangkaian data
yang seharusnya.RB8RB8 (Recieve bit 8) adalah D1 pada register
SCON. Bit ini adalah bit ke-9 untuk mode menerimaan 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 kenyataan nya mode 9-bit sekarang jarang digunakan,
hal ini karena penanganan paritas sudah dapat dilakuikan memalui
hardware. Namun untuk selanjutnya bahasan kita, kita anggap isi TB8
dan RB8 adalah nol (rendah), dan tidak kita gunakan.TITI(Tranmit
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
mennandakan peralata serial telah siap utuk mengirimkan data
berikutnya. TI diterbitkan saat 8051 mengirim bit stop pada akhir
mengiriman data byte. Kita akan mendikusikan lebih jauh nanti.RIRI
(Recieve Interupt) adalah D0 pada register SCON. Ini adalah bit
yang juga sangat penting. Saat 8051 menerima data secara serial
memlaui pin RxD, begitu proses penerimaan selesai data byte yang
diterima diletakkan pada SBUF semabri 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. Kalu tidak, data tersebut akan hilang
karena tertimpa oleh data baru. Bit RI ini diterbitkan saat 8051
sedang menerima stop bit dari proses menerimaan data. Hal ini akan
kita diskusikanlebihjauh nanti.Pemrograman 8051 untuk mentransfer
Data secara serialDalam 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 autoreload) untuk mengatur baud rate.2. TH1 di isi dengan
nilai yang diberikan pada tabel 10-4 untuk mengatur baud rate.
(Anggaplah kita menggunakan XTAL = 11.0592 MHz.3. register SCON
diisi dengan nilai 50h, yang berarti serial mode-1, 8-bit data yang
dibingkai dengan start danstop bit.4. jalankan Timer dengan men-set
TR15. reset TI dengan perintah "Clr TI".6. Letakkan data atau
karakter yang hendak dikirim ke register SBUF.7. periksa dan tunggu
bendera TI dengan menggunakan "JNB TI,xx", sampai TI = 1 , yang
berarti data sudah terkirim seluruhnya.8. Lomat ke langkah 5 untuk
mengirim data atau karakter selanjutnya.Contoh 10-2 memperklihatkan
programuntuk mengirimkan data secara serial pada baud rate 400
baud. Sedang contoh 10-3 memperlihatkan bagaimana mengirim karakter
"YES" secaraserial teru-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-1LAGI:
MOV SBUF,#A ;kirim "A"ULANG: JNB TI,ULANG ;Tunggu sampai TI = 1 Clr
TI ;reset TI 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 (autireload) MOV
TH1,#-3 ;baud rate 9600 MOV SCON,#50h ;8-bit, 1-stop, ren = 1 SetB
TR1 ;jalankan Timer-1LAGI: MOV A,#Y ;kirim "Y" ACALL TRANS MOV A,#E
;kirim "E" ACALL TRANS MOV A,#S ;kirim "S" ACALL TRANS SJmp LAGI
;Ulangi lagi;subrutin pengiriman data serialTRANS: MOV SBUF,A
;Isikan dari AULANG: JNB TI,ULANG ;Tunggu sampai TI = 1 Clr TI
;reset TI RET
Hal yang penting pada bendera TIUntuk mengerti aturan terpenting
dari bendera TI lihatlah urutan dibawah ini, yang memperlihat
proses 8051 dalam mengirimkan data serial1. 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. Dnegan
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 pengirmnan 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 serialDalam
pemrogram 98051 untu 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
kita menggunakan XTAL = 11.0592 MHz.3. register SCON diisi dengan
nilai 50h, yang berarti serial mode-1, 8-bit data yang dibingkai
dengan start dan stop bit.4. jalankan Timer dengan men-set TR15.
reset RI dengan perintah "Clr TI".6. periksa dan tunggu bendera RI
dengan menggunakan "JNB RI,xx", sampai RI = 1 , yang berarti data
sudah diterima seluruhnya.7. Salin isi SBUF ketempat yang
lainsebelum SBUF diisi dengan data baru.8. Lompat ke langkah 5
untuk memnerima 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-1ULANG: 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 0 MOV
P2,#0FFh ;Buat P2 sebagai Port Input MOV TMOD,#20h ;Timer-1, Mode-2
(autireload) MOV TH1,#0FAh ;baud rate 4800 MOV SCON,#50h ;8-bit,
1-stop, ren = 1 SetB TR1 ;jalankan Timer-1 MOV DPTR,#MYDATA ;Isikan
pointer pada textH_1: 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 prosesB_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,AH_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 Readey,0 END
Hal yang penting pada bendera bit RISaat menerima data lewat pin
RxD, 8051 bekerja sebagai berikut.1. Saat menerima start bit ,
berarti bit selanjutnya adalah bit pertama dari karakter yang akan
diterimanya.2. Karakter 8-bit diterima bit demi bit. Saat menerima
bit terakhir, maka byte secara lengkap sudah bisa diletakkan pada
SBUF.3. 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.4.
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.5. 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 melaukan hal ini dapat
berkaibat hilangnya data.Dari diskusi di atas kita dapat
menyimpulkan bahwa memeriksa bendera RI harus terlebihdahulu
me-clear bendera tersebut dengan perintah Clr RI" dan selanjutnha
menggunaakan instruksi seperti "JNB RI,xx" untuk menunggu RI
menjadi 1s (high). Atau yang lebihbaik menggunakan interupsi yang
akan kita bahas pada bab selanjutnya.Meng-duakali-kan baud rate
pada 8051Ada dua jalan untuk meningkatkan baud rate dari komunikasi
serial pada 8051.1. Gunakan osilator kristal dengan frekuensi
yanglebih tinggi2. Ubah bit pada register PCON, seperti di bawah
ini.
Pilihan pertama tentu membuat tidak nyaman karena osilator
krital sifatnya tetap (disolder), 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. Di bawah ini
adalah prosedure yangbaik untuk men-set SMOD atau D7 pada PCON. Hal
ini karena PCON bukanlah register yang bisa dialamati bit. MOV
A,PCON ;Salin isi PCON pada Acc SetB Acc.7 ;buat D7 setara dgn SMOD
= 1 MOV PCON,A ;Kembalikan isi Acc ke PCONUntuk melihat bagaima a
baud rate dikalikan dua dengan metode ini, kota akan membahasa bit
SMOD tersebut.Baud rate saat SMOD = 0Saat 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 = 1Dengan 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 = 1TH1SMOD = 0SMOD = 1
DesimalHex
-3FD9.60019.200
-6FA4.8009.600
-12F42.4004.800
-24E81.2002.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 BA_1: CLR TI ;Mulai pengiriman MOV SBUF,A ;Makak
krimkanH_1: JNB TI,H_1 ;tunggi sampai TI =1 SJMP A_1Jawaban:(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 Hz2.
menghubungkan pin 11 (TxD) pada 8051 ke pin 15 (MIDI input)
konektor MIDI pada PC.3. 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.4. Setelah seting 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 MIDI-message format.5. programnya
adalah sbb MOV TMOD,#20h ;Timer-1, Mode-2, auto-reload MOV TH1,#-1
;dengan SMOD=1 === 31250/1 = 31250 MOV SCON,#50h ;8-bit data, 1
stop, REN enable SETB 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 InterupsiBolah 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.
RINGKASANBAB 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 paralel. Mengirim data byte secara
parallel pada jarak yang sangat jauh akan menimbulkan distorsi pada
kabel serta sinyal, dan dimungkinkan adalnya logika palsu.
Komunikasi serial sekarang sudah sangat maju dengan menumpang pada
kabel telpon. Komunikasi serial menggunakan dua metode, yaitu
metode Assynchronos dan Synchronos. Pada komunikasi Synchronos ,
data dikirm blok-byte per blok-byte, sedang pada Assynchronos, data
dikirm 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.