Top Banner
BAB 10 KOMUNIKASI SERIAL PADA 8051 Sasaran Setelah 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 serial
38

Komunikasi Serial

Nov 11, 2015

Download

Documents

Ayrize Aldy

dengan proteus
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

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.