Anda di halaman 1dari 5

Komunikasi serial pada MCS-51

1. Tujuan Setelah melakukan percobaan komunikasi serial ini, diharapkan mahasiswa mampu untuk : Memahami penggunaan port serial pada AT89S51 Mampu mengkonfigurasikan port serial pada mikrokontroler dengan PC Mampu memprogram dengan bahasa assembly untuk menjalankan atau mengkonfigurasikan port serial Memahami aplikasi penggunaan komunikasi serial Mengerti perbedaan komunikasi serial sinkron dan asinkron 2. Dasar Teori

Gambar 1. Transfer serial dan paralel Komunikasi serial adalah komunikasi dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi parallel seperti pada port printer yang mampu mengirim 8bit sekaligus dalam sekali detak. Beberapa contoh komunikasi serial adalah mouse, scanner dan system akuisisi data yang terhubung ke port COM1 / COM2. Alasan Penggunaan Port Serial : Dibandingkan dengan menggunakan port parallel penggunaan port serial terkesan lebih rumit. Berikut adalah keuntungan penggunaan port serial dibandingkan penggunaan port parallel. 1. Pada komunikasi dengan kabel yang panjang, masalah cable loss tidak akan menjadi masalah besar daripada menggunakan kabel parallel. Port serial mentransmisikan 1 pada level tegangan -3 Volt sampai -25 Volt dan 0 pada level tegangan +3 Volt sampai +25 Volt, sedangkan port parallel mentransmisikan 0 pada level tegangan 0 Volt dan 1 pada level tegangan 5 Volt. 2. Dubutuhkan jumlah kabel yang sedikit, bisa hanya menggunakan 3 kabel yaitu saluran Transmit Data, saluran Receive Data, dan saluran Ground (Konfigurasi Null Modem) 3. Saat ini penggunaan mikrokontroller semakin populer. Kebanyakan mikrokontroller sudah dilengkapi dengan SCI (Serial Communication Interface) yang dapat digunakan untuk komunikasi dengan port serial komputer.

MCS-51 memiliki kemampuan untuk berkomunikasi secara serial melalui pin RXD dan TXD. Pin Tx ( terletak pada PORT3.1 ) dan Rx (terletak pada PORT3.0). pin Tx atau transmitter berfungsi mengirimkan dara sdangkan Rx atau receiver berfungsi untuk menerima data. Satu hal yang perlu diingat adalah tingkat ketegangan komunikasi kedua pin serial menggunakan tingkat tegangan TTL. Pada prinsipnya, komunikasi serial adalah komunikasi dimana transmisi data dilakukan per bit. Interface serial hanya membutuhkan jalur yang sedikit (umumnya hanya 2 jalur), sehingga lebih menghemat pin jika dibandingkan dengan interface parallel. Komunikasi serial ada 2 macam, asynchronous serial dan synchronous serial : 1. Synchronous serial adalah komunikasi dimana hanya ada satu pihak (pengirim dan penerima) yang menghasilkan clock dan mengirimkan clock tersebut bersama-sama dengan data. Contoh penggunaan synchronous serial terdapat pada transmisi data keyboard. Asynchronous serial adalah komunikasi dimana kedua pihak (pengirim dan penerima) masing-masing menghasilkan clock namun hanya data yang ditransmisikan, tanpa clock. Agar data yang dikirim sama dengan data yang diterima, maka kedua frekuensi clock harus sama dan harus terdapat sinkronisasi. Setelah ada sinkronisasi, pengirim akan mengirimkan datanya sesuai dengan frekuensi clock penerima. Contoh penggunaan asynchronous serial adalah pada Universal Asynchronous Receiver Transmitter (UART) yang digunakan pada serial port (COM) computer. MCS-51 mendukung komunikasi secara asinkron, bahkan 3 dari 4 serial mode yang dimiliki MCS-51 kompatibel dengan UART.

2.

Data pada komunikasi serial dikirimkan tiap bit melewati satu jalur data sehingga untuk mengirimkan satu byte data memerlukan waktu 9 hingga 11 clock. Clock yang dipergunakan dalam komunikasi serial tidak murni dari oscillator x-tal pada mikrokontroler melainkan dari baud rate yang dihasilkan oleh timer 1.

Gambar 2. frame data serial Penggunaan baud rate dapat diatur oleh persamaan berikut ini :

Baud rate yang dihasilkan, merupakan output dari timer 1 yang dijalankan dengan mode 2 (auto reload). Maka pertama tama kita harus melakuakan inisialisasi penggunaan timer 1 mode 2 dengan mengisi register TMOD dengan 60H. dari persamaan diatas dapat kita lihat bahwa nilai baud rate dipengaruhi oleh isi register

TH1 yang berisikan data reload. Sehingga saat terjadi overflow, isi register TH1 kembali pada data awal. Penggunaan baud rate harus sama antara transmitter dengan receiver karena mempengaruhi kebenaran data yang dikirim. Karena jika clock aud rate meleset maka data yang terbaca menjadi salah. Sebagai ilustrasi lihat gambar berikut ini:

Gambar 3. Ilustrasi ketidaksesuaian baud rate MCS-51 memiliki 4 mode komunikasi serial. Mode 0 berupa synchronous serial (shift register), sedangkan tiga mode yang lain berupa asynchoronous serial (UART). Pada semua mode, pengiriman dilakukan jika ada instruksi yang mengisi nilai register SBUF. Sedangkan pada saat pengiriman, data yang diterima akan disimpan pada register SBUF.

MODE 0
Mode 0 adalah 8 bit shift register dimana data dikirimkan dan diterima melalui pin RXD sedangkan clock dikirimkan dan diterima melalui pin TXD. Pengiriman data 8 bit dilakukan dengan mengirimkan Least Significant Bit (LSB) terlebih dahulu. Pada mode 0, baudrate yang digunakan adalah sebesar 1/12 dari frekuensi osilator.

MODE 1
Pada mode 1, jumlah data yang dikirimkan sebanyak 10 bit yang terdiri dari start bit, 8 bit data ( LSB terlebih dahulu ) , dan stop bit. Ada proses penerimaan, nilai stop bit akan dimasukkan ke RB8 secara otomatis. Pada proses pengiriman, stop bit akan diberi nilai 1 secara otomatis. Pada mode 1, baudrate yang digunakan dapat diatur melalui Timer 1.

MODE 2
Pada mode 2, jumlah data yang dikirimkan sebanyak 11 bit yang terdiri dari start bit, (LSB terlebih dahulu), bit ke-9, dan stop bit. Pada proses pengiriman, nilai bit ke-9 dapat diatur dengan mengisi nilai TB8. Pada proses penerimaan, bit ke-9 akan dimasukkan ke RB8 secara otomatis. Pada mode 2, baudrate yang dapat digunakan

adalah sebesar 1/64 frekuensi osilator atau 1/32 frekuensi osiliator jika SMOD bernilai 1.

MODE 3
Mode 3 hampir sama dengan mode 2, perbedaannya terdapat pada baudrate yang digunakan. Jika mode 2 menggunakan baudrate yang pasti, mode 3 menggunakan baudrate yang dihasilkan oleh Timer 1. Baudrate adalah frekuensi clock yang digunakan dalam pengiriman dan penerimaan data. Satuan baudrate pada umumnya adalah bps (bit per second), yaitu jumlah bit yang dapat ditransmisikan per detik. Baudrate untuk mode 0 bernilai tetap dengan rumus yang terdapat pada persamaan 1. Sebelum melangkah lebih lanjut kita harus mengetahui bagaimana arsitektur serial port MCS-51, serial port memiliki beberapa register antara lain SBUF ,SCON, SMOD, untuk kecepatan transfer data di tentukan oleh clock yang di berikan ke serial port yang di generate oleh Timer1 atau oleh Timer2 yang ada pada family dengan akhiran 52 mis: AT89S52, oleh karena itu kecepatan transfer data akan ditentukan oleh nilai yang di programkan ke Timer1/Timer2 ini. Family dengan akhiran 52 dapat memilih clock source untuk serial portnya apakah dari Timer1/Timer2, Timer yang tidak dipakai dapat digunakan untuk aplikasi lainnya. Tapi yang dibahas disini adalah yang menggunakan clock source dari Timer1, berikut penjelasan register serial port : 1. SBUF, berfungsi sebagai register untuk menerima dan mengirim data, jadi data yang diterima akan disimpan di SBUF, dan data yang dikirim ditulis ke SBUF, sebenarnya SBUF merupakan dua register yang terpisah untuk penerimaan dan pengiriman data. 2. SCON, berfungsi untuk mengontrol serial port, isi dari register ini akan menentukan mode dari serial port(SM2,SM1,SM0), pengaktifan penerimaan data (REN), penerimaan dan pengiriman bit ke 9 pada mode 2 dan 3(TB8,RB8), dan bit status dari penerimaan (RI) dan pengiriman data (TI). Bit RI akan bernilai "1" jika suatu data di terima oleh serial port, bit TI akan bernilai "1" jika pengiriman data sudah selesai dilaksanakan. 3. SMOD, SMOD merupakan bit yang ada pada register PCON yang mana bila nilainya di set (1) maka kecepatan data (baud rate) akan dikalikan 2.

SUMBER: http://amatirs.blogspot.com/2010/03/komunikasi-serial.html http://www.musbikhin.com/komunikasi-serial-pada-8051 http://iddhien.com/index.php?option=com_content&task=view&id=67&Itemid= 106 http://www.mytutorialcafe.com/mikrokontroller%20serial1.htm http://www.mytutorialcafe.com/mikrokontroller%20bab10%20serial.htm