• Tidak ada hasil yang ditemukan

BAB II. DASAR TEORI

II.4 Operasi Serial Port

Langkah 17-24 Langkah 25- 32

Gambar 2.12 Metode Langkah Seperdelapan Mikro Berupa Step

II.4 Operasi Serial Port

Pada Mikrokontroler AT89S51 mempunyai On Chip Serial Port yang dapat digunakan untuk komunikasi data secara Full-Duplex sehingga port serial ini masih dapat menerima data pada saat proses pengiriman data terjadi. Untuk menampung data yang diterima atau dat yang akan dikirimkan, 89S51 mempunyai sebuah register, yaitu SBUF yang terletak pada alamat 99h. register ini berfungsi sebagai buffer

L1 U L4 L2 L3 L1 U L4 L2 L3

sehingga pada saat mikrokontroler ini membaca data yang pertama dan data kedua belum diterima secara penuh, data ini tidak akan hilang.

Pada kenyataannya, register SBUF terdiri atas dua buah register yang ternyata menempati alamat yang sama, yaitu 99h. register tersebut adalah Transmit Register yang bersifat write only (hanya dapat dibaca saja). Pada proses penerimaan data dari port serial, data yang masuk ke dalam port serial akan ditampung pada Receive Register terlebih dahulu dan akan diteruskan ke jalur bus internal pada saat pembacaan register SBUF sedangkan pada proses pengiriman data ke serial port, data yang ditulis dari bus internal akan ditampung pada Transmit Register terlebih dahulu sebelum dikirimkan ke port serial.

Pada port serial AT89S51 dapat digunakan untuk komunikasi data secara sinkron maupun asinkron. Komunikasi data serial secara simkron merupakan bentuk komunikasi data serial yang memerlukan sinyal clock untuk sinkronisasi. Sinyal clock tersebut akan tersulut pada setiap bit pengiriman data, sedangkan komunikasi asinkron tidak memerlukan sinyal clock untuk sinkronisasi. Pengiriman data pada komunikasi serial 89S51 dilakukan mulai dari bit yang paling rendah (LSB) hingga bit yang paling tinggi (MSB).

Port serial pada AT89S51 bisa digunakan dalam 4 kode kerja yang berbeda. Dari 4 mode tersebut, 1 mode bekerja secara sinkron dan yang 3 lainnya bekerja secara asinkron. Keempat mode yang digunakan dalam komunikasi serial tersebut adalah:

a. Mode0 : mode ini bekerja secara sinkron, data serial dikirim dan diterima melalui kaki P3.0 (RxD), sedangkan kaki P3.1 (TxD) dipakai untuk menyalurkan detak pendorong data serial yang dibangkitkan AT89S51. data dikirim atau diterima 8 bit sekaligus, dimulai dari bit yang bobotnya paling kecil atau LSB (bit 0) dan diakhiri dengan bit yang bobotnya paling besar atau MSB (bit 7). Kecepatan pengiriman data ( Baud rate ) adalah 1/12 dari frekuensi kristal yang digunakan. b. Mode1 : dimode ini, yang digunakan untuk pengiriman datatetap

digunakan kaki pin P3.1 (TxD) dan diterima melalui kaki pin P3.0 (RxD). Pada mode 1 ini p[engiriman data dilakukan secara asinkron, dimana pada mode ini data dikirim dan diterima 10 bit sekaligus, diawali 1 bit start, disusul dengan 8 bit data yang dimulai dari bit yang bobotnya paling kecil (bit 0), diakhiri dengan 1 bit sto p. Adalah RB8 pada register SCON. Kecepatan pengiriman data ( baud rate ) bisa diatur sesuai keperluan. Pada mode inilah (mode2 dan mode3) dikenal secara umum sebagai UART (universal Asynchronous Receiver or Transmitter).

c. Mode2 : data dikirim atau diterima 11 bit sekaligus, diawali 1 bit start, kemudian disusul 8 bit data yang dimulai dari bit yang berbobot paling kecil (bit 0), lalu bit ke 9 yang dapat diatur

lebih lanjut, diakhiri dengan 1 bit stop. Pada AT89S51 yang berfungsisebagai pengirim, bit 9 tersebut berasal dari bit TB8 pada register SCON, sedangkan pada bit stop tidak ditampung tetapi diabaikan. Kecepatan pengiriman data (baud rate) bisa dipilih antara 1/32 atau 1/64 dari frekuensi kristal yang digunakan.

d. Mode3 : pada mode 3 ini bekerja seperti halnya dengan mode 2, tetapi untuk kecepatan pengiriman data (baud rate) bisa diatur sesuai dengan keperluan seperti mode 1.

Register kontrol dan ststus untuk port serial berada dalam SCON ( Serial Port Control Register ) dapat dilihat pada gambar dibawah.

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0

SM0 SM1 SM2 REN TB8 RB8 T1 R1

Reset 0 0 0 0 0 0 0 0 Gambar 2.13 Susunan Bit dalam SCON

Keterangan :

a. Bit SM0 dan SM1 (bit 7 dan bit 6 pada register SCON) dipakai untuk menentukan mode kerja dari port serial. Setelah reset kedua bit ini bernilai “0” dan penentuan mode kerja port serial mengikuti tabel 2-1

Tabel 2.4 Penentuan mode kerja port serial

SM0 SM1 Mode Keterangan Baud Rate

0 0 0 Register geser Tetap (fosc/12)

0 1 1 UART 8-bit Bisa diubah-ubah

(dengan Timer

1 0 2 UART 9-bit Tetap (fosc/64) atau

fosc/32)

1 1 3 UART 9-bit Bisa diubah-ubah

(dengan Timer)

b. bit REN (Bit 4) dipakai untuk mengaktifkan kemampuan port serial untuk menerima data. Pada mode0 kaki RxD (P3.0) dipakai untuk mengirim data serial dan juga untuk menerima data serial. Sifat ini terbawa pula pada saat port serial bekerja pada mode1, mode2 dan mode3, meskipun pada mode-mode tersebut kaki RxD hanya dipakai untuk mengirim data, agar kaki RxD bisa dipakai untuk menerima data, terlebih dahulu harus dibuat REN = ‘1’. Setelah di-reset bit REN bernilai ‘0’.

c. Pada mode2 dan mode3, port serial bekerja dengan 9 bit data (dari 11 bit, 1 bit untuk start dan bit 1 untuk s top), SBUF yang kapasitasnya 8 bit tidak cukup untuk keperluan ini. Bit ke-9 yang akan dikirim terlebih dahulu diletakan di TB8 (bit3), sedangkan bit RB8 (bit2) merupakan bit yang dipakai untuk menampung bit ke-9 yang diterima port serial.

d. Pada mode1, RB8 digunakan untuk menampung bit stop yang diterima, dengan demikian apabila RB8 bernilai ‘1’ maka data diterima dengan benar, sebaliknya apabila RB8 bernilai ‘0’ berarti terjadi kesalahan frame

(framing error). Kalau bit SM2 (bit 5) berniali ‘1’ pada mode1, jika terjadi kesalahan frame, R1 tidak akan menjadi ‘1’ (aktif) meskipun SBUF sedah berisi data dari port serial (bit stop diterima dengan benar). Bit ke-9 dapat dipakai sebagai bit paritas, hanya saja bit paritas yang dikirim harus ditentukan sendiri dengan program dan diletakan pada TB8 dan bit paritas yang diterima pada RB8 dipakai untuk menentukanintegritas data secara program pula. Tidak seperti pada UART standart, semua dikerjakan pada perangkat keras dalam UART.

e. Bit TI (bit1) merupakan sinyal yang setara dengan sinyal THRE (Transmitter Holding Register Empty) yang umum dijumpai pada UART standart. Setelah port serial selesai mengirim data yang tersimpan pada SBUF, maka pada bit TI akan bernilai ‘1’ secara otomatis, kemudian bit ini harus di-nolkan dengan program agar dapat dipakai untuk memantau keadaan SBUF pada pengiriman data berikutnya.

f. Bit R1 (bit 0) merupakan sinyal yang setara dengan sinyal RDA (Receiver Data Available) yang umum dijumpai pada uART standart. Setelah SBUF menerima data dari port serial, bit pada R1 akan bernilai ‘1’ secara otomatis, kemudian bit ini harus di- nol-kan dengan program agar dapat digunakan untuk memantau keadaan pada SBUF dalam penerimaan data berikutnya.

II.4.1 BAUD RATE

Baud Rate untuk mode0 nilainya tetap dan mengikuti persamaan berikut ini:

Baud Rate Mode0 = Frekuensi Kristal/12 ………. (II.1)

Baud Rate untuk Mode2 bergantung dari nilai bit SMOD pada register PCON. Jika SMOD bernilai ‘0’, baud rate-nya 1/64 dari frekuensi kristal, jika SMOD bernilai ‘1’ maka baud rate-nya 1/32 frekuensi kristal, pada baud rate mode2 mengikuti persamaan:

Baud Rate mode2 = 2SMOD/64 x Frekuensi Kristal ……….(II.2) Untuk menentukan baud rate dari mode1 dan mode3, pada AT89S51 tergantung dari laju (rate) limpahan Timer 1.

Pada timer 1 dapat digunakan untuk generator baud rate, maka baud rate pada mode1 dan mode3 ditentukan berdasarkan laju limpahan timer 1 dan nilai dari SMOD dari gambar dibawah, dengan persamaan:

Tabel 2.5 Baud Rate yang sering dipakai yang dihasilkan timer 1

TIMER1 Baud Rate Fosc SMOD

C/~T Mode Nilai isi ulang Mode0 Max: 1 Mhz 12 MHz X X X X Mode2 Max: 375 KHz 12 MHz 1 X X X Mode1&3: 62,5 KHz 12 MHz 1 0 2 FFH 19,2 KHz 11,059 MHz 1 0 2 FDH 9,6 KHz 11,059 MHz 0 0 2 FDH 4,8 KHz 11,059 MHz 0 0 2 FAH 2,4 KHz 11,059 MHz 0 0 2 F4H 1,2 KHz 11,059 MHz 0 0 2 E8H 137,5 Hz 11,986 MHz 0 0 2 1DH 110 Hz 6 MHz 0 0 2 72H 110 12 MHz 0 0 1

Dokumen terkait