• Tidak ada hasil yang ditemukan

Port I/ O serial yang dimiliki oleh MCS – 51 memiliki Karakteristik full duplex(dapat memulai penerimaan data yang kedua sebelum data yang pertama dibaca dari register pembacaan).

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

Mode 0 :

Pada mode ini data serial diterima dan dikirim lewat pin RXD,sedangkan pin TXD berfungsi untuk mengirimkan shift clock.Data yang diterima dan dikirim adalah selebar 8 bit dengan bit terendah dikirimkan/ diterima pertama kali.Kecepatan pengiriman ( baud rate ) adalah tetap sebesar 1/12 frekuensi osilator.

Mode 1 :

Pada mode ini data bit dikirim / diterima dengan 2 bit tambahan,dengan urutan:

a. start bit ( logika 0 ),

b. 8 bit data ( dengan bit terendah di depan ), c. 1 stop bit ( logika 1 ).

Pada saat penerimaan,stop bit masuk pada bit RB8 pada register SCON ( salah satu special function register ).Baud rate pada mode ini adalah variabel.

Mode 2 :

Pada mode ini data 8 bit dikirim/diterima dengan 3 bit tambahan dengan urutan :

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

 8 bit data ( dengan bit terendah di depan )  1 stop bit ( logika 1 ).

Pada saat pengiriman,bit yang dapat deprogram adalah bit yang terdapat pada bit TB8 pada register SCON.Pada saat penerimaan,bit yang dapat deprogram masuk pada bit RB8 pada register SCON ( salah satu special function register ).Baud rate pada mode ini adalah 1/32 atau 1/64 frekuensi osilator.

Mode 3 :

Pada mode ini data 8 bit dikirim/diterima dengan 3 bit tambahan dengan urutan :

 Start bit ( logika 0 ),

 8 bit data ( dengan bit terendah didepan ),  1 bit tambahan yang dapat diprogram,  1 stop bit (logika 1 ).

Mode ini persis sama dengan mode 2 kecuali baud rate-nya yang variabel.

Pembacaan dan Penulisan Port Serial

Pengiriman data pada port serial dapat dilakukan dengan cara menuliskan data tersebut keregister SBUF ( salah satu special function register SFR . Penerimaan data serial adalah melalui pembacaan register SBUF.

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

Pengaturan Baud Rate

Baud rate adalah kecepatan data transmisi serial,berupa banyaknya transisis logika pada saluran data serial tiap detik.Semakin besar nilai baud rate,maka semakin cepat proses pengiriman/penerimaan data serial.

Pada mode 0, baud rate adalah tetap sebesar 1/12 frekuensi osilator.Bit SMOD pada register PCON menentukan baud rate pada Mode 2. Untuk SMOD = 1 baud rate adalah 1/64 frekuensi osilator,dan jika SMOD = 0 maka baud ratenya adalah 1/64 frekuensi osilator.Baud rate untuk mode 1 dan 3 ditentukan oleh kecepatan overflow pada Timer 1 dan Timer 2 ( satu timer untuk pengiriman dan satu lagi untuk peneriman).Dengan demikian dimungkinkan penerimaan dan pengiriman data dengan kecepatan yang berbeda. Namun perlu diingat bahwa fasilitas ini hanya dipunyai oleh type 8052 karena type 8051 tidak memiliki Timer 2.

Baud rate untuk mode 1 dan 3 ditentukan oleh persamaan : Baud rate = 2 SMOD x (Timer 1 overflow rate)

32

Konfigurasi timer 1 yang diperlukan untuk menjalankan fungsi di atas adalah :

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

timer dijalankan pada operasi “ timer “ atau “counter”,dengan mode

1,2 atau 3.

Timer 1 interrupt dinuat tidak bekerja ( disabled ).

Kombinasi baud rate yang mungkin adalah sebagaimana pada tabel berikut :

Tabel 2.1.2 Kombinasi Pemilihan Baud Rate Baud Rate f OSC SMOD Timer1 C/-T Mode Reload Mode 0 Max:1Mhz 12Mhz X X X X Mode 2 Max:375K 12Mhz 1 0 2 X Mode1,3:62,5K 12Mhz 1 0 2 FFh 19,2k 11.059Mhz 1 0 2 FDh 9,6k 11.059Mhz 0 0 2 FDh 4,8k 11.059Mhz 0 0 2 FAh 2,4k 11.059Mhz 0 0 2 F4h 1,2k 11.059Mhz 0 0 2 E8h 137,5k 11.968Mhz 0 0 2 1Dh 110k 6Mhz 0 0 2 72h 110k 12Mhz 0 0 1 FEEBh

Konfigurasi Timer 2 yang berfungsi sebagai baud rate generator adalah : • Bit TCLK dan / atau RCLK pada register T2CON diset.

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

Jika RCLK = 1 maka serial port menggunakan pulsa Timer 2 overflow untuk baud rate penerimaan data.Sebaliknya jika RCLK = 0 maka serial port menggunakan pulsa Timer 1 overflow.

Jika TCLK = 1 maka serial Pot menggunakan pulsa timer 2 overflow untuk baud rate pengiriman data. Sebaliknya jika TC:LK = 0 maka seial pot menggunakan pulsa timer 1 overflow

• Mode untuk baud rate generator seperti pada mode pada auto – reload, yaitu adanya overflow pada register timer TH2 menyebabkan dimuadnya kembali data 16 bit yang ada register RCAP 2 H dan RCAP 2L ke TH2 dan TL2 baud ret yang dihasilkan mengikuti persamaan :

Baud rate = 1 x (Timer 2 overflow rate) 16

• Timer 2 interrupt tidak perlu dinon aktifkan.

Komunikasi dengan banyak prosessor

Serial pot yang dimiliki oleh mikrokontroler MCS-51 memungkinkan dijalankannya komunikasi dengan lebih dari 2 mikrokontroler pada jalur kabel komunikasi yang sama (multiprocessor comunication). Fasilitas yanng unik ini dimungkinkan oleh adanya bit ke – 9 pada komunikasi serial pot dengan mode 2 dan 3 yang dapat diprogram lewat bit TB8 (bit yang terkirim) RB8 (bit yang diterima) pada register SCON. Mikrokontroler MCS51 dapat dikonfigurasikan

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

agar mengaktifkan sinyal interupsi jika bit ke-9 ini (bit RB8) adalah’ 1’. Hal ini diperoleh dengan cara memberikan nilai ‘1’ pada bit SM2 diregister scon. Cara kierja komunikasi dengan banyak prosesor ini adalah sebagai berikut.

• Sebuah mikrokontroler pusat dapat mengirimkan dara atau adress ke mikrokontroler-mikrokontroler lainnya pada jalur data serial pot. Untuk memberdakan anatara data dengan adress, maka pada bit ke -9 ditentukan ‘0’ untuk data dan ‘1; untuk adress.

• Andaikan ada 5 buah mikrokontroler dengan adres masing-masing 1,2,3,4 dan 5. mikrokonreoler pusatnya adalah yang beradress 1. jika mikrokontroler pusat ingin berkomunikasi dengan mikrokontroler laian, dia cukup mengawalinya dengan mengirimkan 8 bit adress mikrokontroler yang dingin dihubungi dan bit ke-9 di set’1’.

• Dengan adanya bit ke-9 yang berharga ‘1’ dan karena SM2 pada masing – masing SCON-nya diset ‘1’, maka pada semua mikrokontroler bawahan akan terbang kesinyal interup.

• Program pelayanan interup dibuat sedemikian rupa untuk mengecek data adress yang masuk apkah menunjuk pada mikrokontroler yang bersangkutan. Jika demikian maka mikrokontroler tersebut akan diaktifkan oleh mikrokontroler pusat, selanjutnya menunggu pengiriman data selanjutnya dan menjalankan proses sesuai dengan perintah dari

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

mikrokontroler pusat jika adressnya bukan menunjukkan mikrokontroler yang bersangkutan, maka pengiriman data selanjutnya diabaikan dan program pelayanan interup selesai.

Instruksi program :

 MOV (Mov Immediate Data to Inderect Adress) Operand : Rr Register 0<= r <=1

: data -256 < = data< = +255 format : MOV @ Rr, # data

operasi : ((Rr)) < - data

keterangan : instruklsi ini akan memindahkan data 8 bit secara langsung kelokasi yang ditunjukkan oleh isi register r. Contoh : MOV @ R 1 , # 01 H.

 JB (jump If Bit Is Set)

Operand : Alamat Bit 0<= alamat bit < = 255

: alamat kode

format : JB alamat bit, alamat kode operasi : (PC) < - (PC) +3

: Jika (alamat bit) = 1, maka (PC) < - (PC ) + Offset

relative.

Keterangan : Intruksi ini akan menguji suatu alamat bit. Jika berisi 1,ekesekusi akan menuju alamat kode, jika

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

tidak, intruksi selanjutnya akan dieksekusi. Pencacah program akan dinaikkan pada intruksi selanjutnya. Jika pengujian berhasil, offset relatif akan ditambahkan kepencacah program yang telah dinaikkan dan intruksi pada alamat ini akan dieksekusi.

 JZ (Jump If Akumulator is Zero) Operand : alamat kode format : JZ alamat kode

operasi : (PC) < - (PC) +2

: Jika (A) = 0, maka (PC) < - (PC ) + Offset relatif Keterangan : intruksi ini akan menguji isi akumulator . jika = 0,

eksekusi akan menuju ke alamat kode. Juka tidak = 0, intruksi selanjutnya yang akan dieksekusi.

 CJNE ( compare indirect adress to inmediate data) Jump if not equal

Operand : Rr Register 0<= r <=1 : data -256 < = data< = +255 : alamat kode

format : CJNE @ Rr, # data, alamat kode operasi : (PC) < - (PC) +3

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

: Jika ((Rr )) < data, maka (C) < - 1, : Lainnya (C) <-0

Keterangan : Instruksi ini akan membandingkan data langsung dengan lokasi memori yang dialamati oleh register r. apabila tidak sama, intruksi selanjutnya yang akan dijalankan. Jika data langsung lebih besar dari isi alamat data tertentu, Carry flag akan di-set menjadi 1

Contoh : CJNE @ R1, # 01 H, 0009 H

 DJNZ ( Decrement Register And Jump If Not Zero ) Operand : Rr Register 0<= r <=7

: alamat kode

format : DJNZ Rr, alamat kode operasi : (PC) < - (PC) +2

: (Rr) <-(Rr)-1

: Jika (Rr ) <> 0, maka (PC) < -(PC)+ offset relatif Keterangan : Instruksi ini mengurangi register r dengan 1 dan

menempatkan hasilnya pada register tertentu. Jika hasilnya sudah 0, instruksi selanjutnya yang akan dieksekusi. Jika belum 0, eksekusi akan menuju ke alamat kode.

 SETB ( set bit )

Aisyah Rangkuti : Rancang Bangun Rangkaian Handset Pengendali Pada Rumah Cerdas, 2007. USU Repository © 2009

format : SETB alamat bit operasi : (alamat bit )<-1

Keterangan: Instruksi ini akan men – set isi suatu alamat bit menjadi 1 Contoh : SETB 41 . 5

 CLR (Clear Bit)

Operand : alamat bit 0<= alamat bit <= 255 format : CLR alamat bit

operasi : (alamat bit )<-0

Keterangan: Instruksi ini akan men – set isi suatu alamat bit menjadi 00H

Contoh : CLR 40.5

Dokumen terkait