MIKROKONTROLER 5


 BAB INSTRUKSI-INSTRUKSI MIKROKONTROLER MCS-51
Ilustrasi


17.       Umum.     Sebuah mikrokontroler tidak akan bekerja bila tidak diberikan program kepadanya. Program tersebut memberitahu mikrokontroler tentang apa yang harus dia lakukan.  Mikrokontroler MCS-51 memiliki 256 perangkat instruksi. Seluruh instruksi dapat dikelompokkan dalam 4 bagian yang meliputi instruksi 1 byte sampai 4 byte. Apabila frekuensi clock mikrokontroler yang digunakan adalah 12 MHz, kecepatan pelaksanaan instruksi akan bervariasi dari 1 sampai 4 mikrodetik.
Instruksi yang dimiliki oleh mikrokontroler MCS-51 pada dasarnya digolongkan menjadi :
            a.         Instruksi  operasi aritmatika.
            b.         Operasi logika.
            c.         Transfer data.
            d.         Operasi manipulasi Boolean.
            e.         Perintah  percabangan. 
Aturan penulisan bahasa assembly-nya tidak jauh berbeda dengan bahasa assembly untuk IBM PC.  Masing-masing instruksi dapat dijelaskan dalam tabel-tabel di bawah ini.
18.       Instruksi MCS-51.
   a.         ADD (Add Immediate Data)
   Operand        : A       Akumulator
                           : data  - 256 <= data <= + 255
   Format            : ADD A, #data
   Operasi          : (A) <- (A) + data
   Keterangan   : instruksi ini menambah 8 bit data langsung ke dalam isi      akumulator dan menyimpan hasilnya pada akumulator.
   b.         ADD (Add Indirect Address)
   Operand        : A       Akumulator
                           : Rr      Register   0 <= r <= 1
   Format            : ADD A, @Rr
   Operasi          : (A) <- (A) + ((Rr))
Keterangan   : instruksi ini menambah isi data memori yang lokasinya ditunjukkan oleh nilai register r ke isi akumulator dan menyimpan hasilnya dalam akumulator.
   Contoh           : ADD A, @R1
   c.         ADD (Add Register)
   Operand        : A       Akumulator
                           : Rr      Register   0 - 7  
   Format            : ADD A, Rr
   Operasi          : (A) <- (A) + (Rr)
Keterangan   :  instruksi ini menambah isi register r dengan isi akumulator            dan     menyimpan hasilnya dalam akumulator.
   Contoh           : ADD A, R6
d.         ADD (Add Memori)
Operand        : A       Akumulator
                        : Alamat data 0 <= Alamat data <= 256
Format            : ADD A, Alamat data
Keterangan   : instruksi ini menambah isi alamat data ke isi kumulator dan menyimpan hasilnya dalam akumulator.
Contoh           : ADD A, 30H
e.         ADDC (Add Carry Plus Immediate Data To Accumulator)
Operand        : A       Akumulator
                        : data  -256 <=  data <= +255
Format            : ADDC A, # data
Operasi          : (A) <- (A) + (C) + data
Keterangan   : instruksi ini menambah isi carry flag (0 atau 1)  ke dalam isi akumulator.Data langsung 8 bit ditambahkan ke akumulator.
Contoh           : ADDC A,#0AFH
f.          ADDC (Add Carry Plus Indirect Address To Accumulator)
Operand        : A       Akumulator
                        : data  Register 0 <= r <= 1
Format            : ADDC A, @Rr
Operasi          : (A) <- (A) + (C) + ((Rr))
Keterangan   : instruksi ini menambah isi carry flag (0 atau 1)  dengan isi akumulator. Isi data memori pada lokasi yang ditunjukkan oleh register Rr ditambahkan dan hasilnya disimpan dalam akumulator.
Contoh           : ADDC A,@R1
g.         ADDC (Add Carry Plus Register To Accumulator)
Operand        : A       Akumulator
                        : data  Register 0 <= r <= 7
Format            : ADDC A, Rr
Operasi          : (A) <- (A) + (C) + (Rr)
Keterangan   : instruksi ini menambah isi carry flag dengan isi akumulator. Isi register r ditambahkan dan hasilnya disimpan dalam akumulator.
Contoh           : ADDC A,R7
h.         ADDC (Add Carry Plus Memory To Accumulator)
Operand        : A       Akumulator
                        : Alamat data 0 <= Alamat data <= 255
Format            : ADDC A, Alamat data
Operasi          : (A) <- (A) + (C) + (Alamat data)
Keterangan   : instruksi ini menambah isi carry flag dengan isi akumulator. Isi dari alamat data tertentu  ditambahkan pula dan hasilnya disimpan dalam akumulator.
Contoh           : ADDC A,30H
i.          AJMP (Absolute Jump Within 2K byte Page)
Operand        : Alamat kode
Format            : AJMP alamat kode
Operasi          : (PC) <- (PC) + 2
                       : (PC) 0-10 <- page address
Keterangan   : instruksi ini meletakkan bagian bawah 11 bit dari pencacah program dengan 11 bit alamat yang dikodekan.
j.          ANL (Logical AND Immediate Data to Accumulator)
Operand        : A       Akumulator
                        : data  -256 <=  data <= +255
Format            : ANL A, #data
Operasi          : (A) <- (A) AND data
Keterangan   : instruksi ini meng-AND kan data 8 bit secara langsung dengan isi akumulator.
Contoh           : ANL A,#00001000B
k.         ANL (Logical AND Indirect Address to Accumulator)
Operand        : A       Akumulator
                        : data  Register 0 <=  r <= 1
Format            : ANL A, @Rr
Operasi          : (A) <- (A) AND ((Rr))
Keterangan   : instruksi ini meng-AND kan isi memori yang lokasinya ditunjukkan oleh isi register r dengan isi akumulator.
Contoh           : ANL A,@R0
l.          ANL (Logical AND Register to Accumulator)
Operand        : A       Akumulator
                        : data  0 <=  Rr <= 7
Format            : ANL A, Rr
Operasi          : (A) <- (A) AND (Rr)
Keterangan   : instruksi ini meng-AND kan isi register r dengan isi akumulator.
m.        ANL (Logical AND Memory to Accumulator)
Operand        : A       Akumulator
                        : Alamat data 0 <=  Alamat data <= 255
Format            : ANL A, Alamat data
Operasi          : (A) <- (A) AND (Alamat data)
Keterangan   : instruksi ini meng-AND kan isi alamat data dengan isi akumulator.
Contoh           : ANL A,35H
n.         ANL (Logical AND Bit to Carry Flag)
Operand        : C       Carry flag
                        : Alamat bit    0 <=  alamat bit <= 255
Format            : ANL C, Alamat bit
Operasi          : (C) <- (C) AND (Alamat bit)
Keterangan   : instruksi ini meng-AND kan isi alamat bit tertentu dengan isi carry flag. Jika keduanya 1 maka hasilnya 1, selainitu hasilnya 0. Hasilnya ditempatkan pada carry flag.
Contoh           : ANL C, 37.3

sumber:http://www.mjalaluddinjabbar.blogspot.com/2012/05/belajar-sendiri-mikrokontroler-lengkap_13.htmlhttp://www.mjalaluddinjabbar.blogspot.com/2012/05/belajar-sendiri-mikrokontroler-lengkap_13.html

klik ini AMIKOM

MIKROKONTROLER 4



BAB TIMER/COUNTER
Ilustrasi
14. Umum. Mikrokontroler MCS-51 memiliki 2 buah timer/counter pada jenis 8051, sedangkan pada jenis 8052 terdapat 3 buah timer/counter. Timer/counter tersebut memiliki lebar data 16 bit. Perbedaan fungsi timer/counter terletak pada pulsa yang dicacah. Jika yang dicacah adalah pulsa clock internal, maka fungsi yang dijalankan adalah sebagai timer, sedangkan jika yang dicacah adalah pulsa eksternal, maka fungsinya adalah counter.
           Timer/counter digunakan misalnya untuk menghitung rentetan pulsa, atau pembangkitan delay (jeda) waktu yang presisi, pengukuran lebar pulsa, maupun penentuan frekuensi pulsa. Semua fungsi-fungsi tersebut sebenarnya bisa dikerjakan melalui manipulasi software. Akan tetapi pekerjaan prosesor pusat akan menjadi terkungkung pada rutin-rutin tersebut sehingga aplikasi-aplikasi lain menjadi sulit untuk dilaksanakan. Karenanya akan lebih meringankan jika beban pekerjaan  digantikan oleh hardware timer/counter sebagaimana yang tersedia secara internal.
      Pemakaian timer/counter diatur melalui register TMOD dan TCON. Register data counter terdiri dari masing-masing dua byte, yaitu :
            a.         TH0 dan TL0 untuk Timer 0,
            b.         TH1 dan TL1 untuk Timer 1,
            c.         TH2 dan TL2 untuk Timer 2. 
15.  Mode Operasi. Timer/counter dapat dioperasikan dalam 4 mode. Pengaturan mode ini melalui bit-bit M1 dan M0 pada register TMOD (lihat pada bab mengenai register). Fungsi timer mencacah pulsa clock internal dengan frekuensi 1/12 frekuensi osilator, sedangkan fungsi counter mencacah pulsa clock eksternal melalui pin   T0, T1 atau T2. Untuk lebih mudahnya pada pembahasan selanjutnya istilah timer/counter cukup disingkat sebagai timer saja
a.  Mode 0.   Pada mode ini timer 1 bekerja dengan lebar data 13 bit,    terdiri dari 8 bit tinggi pada register TH1   dan 5 bit rendah pada register TL1. Bit tertinggi sejumlah 3 pada register TL1 tidak dipergunakan dan isinya acak. Pada saat pencacahan mencapai data 07FFh (semua bit pada register timer 13 bit adalah 1) maka pada pencacahan berikutnya data pencacahan menjadi 0000h (terjadi overflow). Di saat kondisi ini terjadi timer 1 men-set flag interrupt TF1 pada register TCON. Untuk mengaktifkan pencacahan pada timer 1, ada dua      metode yang bisa dilakukan yaitu :
1)   Sinyal  trigger  start timer oleh hardware. Bit GATE pada  register TMOD    diset '1' dan bit TR1  pada  register  TCON  diaktifkan. Timer/counter 1 aktif jika pin INT   1 dalam kondisi high.
2)  Sinyal  trigger start timer oleh software. bit GATE pada register TMOD  diclear.  Timer/counter  1 aktif jika  TR1 pada register TCON diaktifkan.
            Pengaturan yang dilakukan pada timer 0   adalah identik dengan timer 1 seperti di atas.
      b. Mode 1. Pada mode ini timer  bekerja dengan lebar data 16 bit. Pengaturan dan metode kerjanya sama dengan mode 0.
      c.  Mode 2. Pada mode ini timer 1  bekerja dengan lebar data 8 bit pada register TL1. Register TH1 diisi dengan data yang akan otomatis dimuat ke  TL1 sebagai harga awal setelah terjadi overflow. Overflow sebagaimana pada mode 0 dan 1 akan men-set bit TF1 pada register TCON. Pengaturan yang dilakukan pada timer 0 adalah identik dengan timer 1 seperti di atas.
      d.  Mode 3.Timer 1 pada mode 3 berada pada posisi hold (menggenggam) register pencacahannya dan berhenti bekerja. Sedangkan      timer 0 bekerja sebagai dua buah timer 8 bit, masing-masing adalah TH0 dan TL0. Pengaturan timer TL0 adalah melalui bit TR0, dan bit TF0 akan di -set   jika terjadi overflow.  Pada timer TH0 pengaturannya adalah melalui bit TR1, dengan bit TF1 akan di-set jika overflow. Jika timer 0 bekerja dengan mode 3, maka timer 1 dapat bekerja dengan mode     0,1, atau 2 kecuali dengan kondisi TF1 tidak dapat di-set oleh timer 1 jika terjadi overflow, karena TF1 diset oleh timer TH0.
16.Tentang Timer 2.  Timer/counter 2 hanya terdapat pada jenis 8052.  Pemilihan mode timer/counter dapat dilakukan dengan mengatur bit C/-T2 pada register T2CON. Timer ini memiliki 3 mode operasi:  capture, auto-load, dan baud-rate generator. Pemilihan mode operasi melalui register T2CON sebagaimana tabel berikut :
Tabel 6.1 Pengaturan Mode Operasi Timer 2
RCLK / TCLK
CP / RL2
TR2
MODE
0
0
1
16-bit auto-reload
0
1
1
16-bit capture
1
X
1
baud rate generator
X
X
0
(off)
a.16-bit auto-reload.   Mode ini memiliki dua pilihan bergantung pada           isi bit EXEN2. Pilihan pertama adalah untuk EXEN2=0. Pada saat transisi data 16 bit yang kesemuanya '1' (data 0FFFFh) menjadi data yang            kesemuanya '0' (0000h) pada Timer 2 yaitu terjadi overflow, maka TF2 pada   register T2CON akan diset. Pada saat yang sama isi register RCAP2H akan   dimuat sebagai harga awal TH2 dan isi register RCAP2L akan dimuat sebagai    harga awal TL2.
                  Pada kondisi EXEN2=1  timer 2 bekerja seperti di atas dengan tambahan             bahwa transisi 1 ke 0 pada pin T2EX juga akan menyebabkan pemuatan kembali data             16 bit dari register RCAP2H ke TH2 dan RCAP2L ke TL2, sekaligus men-set  bit EXF2 pada register T2CON.
b.16-bit capture. Mode ini memiliki dua pilihan bergantung pada isi bit EXEN2. Pilihan pertama adalah untuk EXEN2=0. Pada saat transisi data 16 bit yang kesemuanya '1' (data 0FFFFh) menjadi data yang kesemuanya '0' (0000h) pada Timer 2 yaitu terjadi overflow, maka TF2  pada register  T2CON akan diset. Pada kondisi EXEN2=1  timer 2 bekerja seperti di atas dengan tambahan   bahwa transisi 1 ke 0 pada pin               T2EX  juga   akan   menyebabkan   pemuatan data 16 bit dari register TH2 ke RCAP2H dan TL2 ke RCAP2L, sekaligus   men-set  bit    EXF2   pada register T2CON.
c. Baud-rate generator. pembahasan mengenai ini telah ada pada pembahasan mengenai serial port pada bab sebelumnya.
d.Off. Mode ini menghentikan operasi timer 2.

sumber:http://www.mjalaluddinjabbar.blogspot.com/2012/05/belajar-sendiri-mikrokontroler-lengkap.html

klik ini AMIKOM
MIKROKONTROLER 3

MIKROKONTROLER 3

BAB PORT INPUT/OUTPUT MIKROKONTROLER MCS-51
9.         Umum.           Mikrokontroler MCS-51 memiliki 2 jenis port input/output, yaitu port I/O parallel dan port I/O serial. Port I/O parallel sebanyak 4 buah dengan nama P0,P1,P2 dan P3. Masing-masing port ini bersifat bidirectional (dua-arah), memiliki latch (dengan ini maka data output akan tetap berada pada statusnya hingga ada pengiriman data baru),  memiliki buffer output sehingga setiap pin-nya dapat dibebani dengan 4 buah gerbang IC TTL standar (kecuali Port 0 sebanyak 8) dan memiliki buffer input.
            Port serialnya bersifat full-duplex (dalam satu saat bisa menerima sekaligus mengirim data), bisa digunakan untuk shift register, atau Universal Aynchronous Receiver and Transmitter (UART) dengan data terkirim sepanjang 8 atau 9 bit.
10.       Port I/O Parallel.
a.         Fungsi Port.   Port I/O parallel P0,P1,P2 dan P3 memiliki fungsi khusus terutama jika digunakan untuk mengakses peralatan di luar chip     mikrokontroler.
            Fungsi khusus tersebut adalah :
1)         P0 dan P2. Port 0 memiliki address 80h sedangkan Port 2 addressnya 0A0h. Port-port ini digunakan untuk mengakses eksternal memori. Address eksternal memori yang digunakan bisa selebar 8 bit atau 16 bit. Pada akses address 8 bit, maka dipergunakan Port 0 sebagai bus address yang dimultipleks-waktu dengan data bus. Untuk akses address 16 bit dibutuhkan dua buah port 8 bit, yaitu Port 0 dan Port 2. Port 0 berfungsi untuk mengeluarkan data byte rendah address            eksternal emori, yang dimultipleks-waktu dengan byte data yang sedang dibaca atau ditulis. Port 2 digunakan untuk mengeluarkan data byte tinggi address eksternal memori.  Untuk eksekusi instruksi yang memerlukan address eksternal memori selebar 8 bit, maka yang berfungsi hanyalah Port 0, sedangkan Port 2 mengerluarkan data   sebagaimana terletak pada register P2 pada special function register      (SFR). Proses multiplexing data dengan address pada Port )             membutuhkan sebuah chip latch eksternal dan sebuah tri-state       bidirectional buffer  yang diakses melalui sinyal kendali ALE dan -RD       serta -WR.
Pada saat akses address 16 bit, isi register P0 berubah menjadi 0FFh,       sedangkan isi register P2 adalah tetap seperti semula.
Contoh akses address memori eksternal 16 bit adalah melalui instruksi     MOVX A,@DPTR. Pada instruksi ini address 16 bit untuk eksternal             memori dipegang oleh register DPTR. Pada instuksi tersebut data yang          ada pada memori eksternal dengan address sebagaimana nilai DPTR dipindahkan/disalin ke register Accumulator. Akses eksternal memori     melalui address 8 bit misalnya pada instruksi MOVX A,@R0. Pada instruksi ini address 8 bit untuk eksternal memori dipegang oleh register R0.. Pada instuksi tersebut data yang ada pada memori eksternal dengan address sebagaimana nilai R0 dipindahkan/disalin ke       register Accumulator.
2)         P3.      Port ini memiliki address 0B0h dimana tiap pin nya memiliki fungsi khusus sebagai berikut:


Tabel 5.1 Fungsi alternatif pin-pin Port 3
Simbol
Posisi
Nama dan Arti
-RD
P3.7
external data memory read strobe
-WR
P3.6
external data memory write strobe
T1
P3.5
timer/counter 1 external input
T0
P3.4
timer/counter 0 external input
-INT1
P3.3
external interrupt 1   
-INT0
P3.2
external interrupt 0
TXD
P3.1
serial data output port
RXD
P3.0
serial data input port
     
      Fungsi-fungsi alternatif di atas hanya bisa berfungsi jika bit-bit        yang  bersangkutan pada register P3 diberi status '1'.
3)         P1.      Port ini memiliki address 090h, dan biasanya digunakan untuk penggunaan paralel port secara umum. Khusus pada seri 8052 ada   pin yang memiliki fungsi khusus  yaitu :
Tabel 5.2 Fungsi alternatif pin-pin Port 1
Simbol
Posisi
Nama dan Arti
T2EX
P1.1
Timer/counter 2 capture/reload trigger
T2
P1.0
Timer/counter 2 eksternal input
Pin dengan fungsi khusus ini memiliki karakteristik yang sama dengan Port 3.
b.         Pembacaan dan Penulisan Port Paralel.    Dengan melihat konstruksi port paralel yang kesemuanya memiliki latch, maka ada dualisme proses pembacaan port, antara pembacaan latch dengan pembacaan            pin. Ada beberapa instruksi yang melakukan pembacaan latch, dan             sebagian lain melakukan pembacaan pin. Instruksi yang membaca latch adalah instruksi yang fungsinya membaca suatu nilai, mungkin mengubahnya    dan     kemudian     menuliskannya  kembali. Sedangkan     instruksi   yang   hanya   melakukan   pembacaan   suatu     nilai    saja,  maka    pembacaanya adalah pembacaan pin.
Contoh instruksi yang membaca latch adalah :
                        1)         ANL (logical AND),
                        2)         ORL (logical OR),
                        3)         XRL (logical XOR),
                        4)         JBC (jump if bit = 1 and clear bit),
                        5)         CPL (compelement bit),
                        6)         INC (increment),
                        7)         DEC (decrement),
                        8)         DJNZ (decrement and jump if not zero),
                        9)         MOV (move),
                        10)      CLR (clear),
                        11)      SETB (set bit).
            Penulisan ke port paralel dapat dilakukan dengan cara menuliskan ke      register port yang bersangkutan, baik secara bit maupun byte. Yang perlu         diperhatikan ialah fungsi Port 0 dan Port 2 yang digunakan untuk akses        memori eksternal. Data yang ditulis pada Port 0 akan berubah menjadi      0FFh jika terjadi akses ke memori eksternal. Data pada Port 2 akan berubah             menjadi data address byte tertinggi pada saat akses ke memori eksternal, dan kembali pada isinya yang semula setelah proses akses tersebut selesai. Penulisan ke Port 3 menentukan aktif tidaknya pin-pin dengan fungsi       khusus sebagaimana pada tabel 5.1. Penulisan '1' pada suatu bit mengaktifkan fungsi alternatif pada pin pada bit tersebut.
11.       Port I/O SerialPort I/O serial yang dimiliki oleh MCS-51 memiliki karakteristik full duplex (dapat menerima sekaligus mengirimkan data secara simultan), dan  receive-buffered (dapat memulai penerimaan data yang kedua sebelum data yang pertama dibaca dari register pembacaan).
            a.         Fungsi Port.   
                         Port serial dapat bekerja dalam 4 mode :
1)         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.
2)         Mode 1.Pada    mode    ini data 8 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.
3)         Mode 2.  Pada    mode    ini    data   8  bit dikirim/diterima dengan 3 bit tambahan dengan urutan :
            a)         start bit (logika 0),
            b)         8 bit data (dengan bit terendah di depan),
            c)         1 bit tambahan yang dapat diprogram,
            d)         1 stop bit (logika 1).
             Pada  saat   pengiriman, bit yang    dapat diprogram adalah bit yang terdapat pada bit TB8 pada register SCON. Pada saat penerimaan,   bit yang dapat           diprogram 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.
4)         Mode 3.          Pada   mode  ini data 8 bit dikirim/diterima    dengan 3 bit tambahan dengan urutan :
            a)         start bit (logika 0),
            b)         8 bit data (dengan bit terendah di depan),
            c)         1 bit tambahan yang dapat diprogram,
            d)         1 stop bit (logika 1).
     Mode   ini   persis   sama   dengan mode 2 kecuali  baud rate-nya yang variabel.
b.         Pembacaan dan Penulisan Port Serial.    Pengiriman data pada port        serial dapat dilakukan dengan cara menuliskan data tersebut ke register SBUF             (salah satu special function register - SFR). Penerimaan data serial adalah          melalui pembacaan register SBUF.
12.       Pengaturan Baud Rate.    Baud rate adalah kecepatan transmisi data serial, berupa banyaknya transisi 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/32 frekuensi osilator, dan jika SMOD = 0 maka baud rate adalah 1/64 frekuensi osilator. Baud rate untuk mode 1 dan 3 ditentukan oleh kecepatan overflow pada Timer 1 atau Timer 2 (satu timer untuk pengiriman dan satu lagi untuk penerimaan). Dengan demikian dimungkinkan penerimaan dan pengiriman data dengan kecepatan yang berbeda. Namun perlu diingat bahwa fasilitas ini hanya dipunyai oleh type 8052 karena tipe 8051 tidak memiliki Timer 2.
Baud rate untuk mode 1 dan 3 ditentukan oleh persamaan :
            Baud rate = 22^SMOD / 32 x (Timer 1 overflow rate)
Konfigurasi timer 1 yang diperlukan untuk menjalankan fungsi di atas adalah :
a.         timer dijalankan pada operasi "timer" atau "counter", dengan mode 1,  2 atau 3.
            b.         timer 1 interrupt dibuat tidak bekerja (disabled)
Kombinasi baud rate yang mungkin adalah sebagaimana pada tabel berikut :
Tabel 5.3 Kombinasi Pemilihan Baud Rate
Baud
Rate
 fOSC
SMOD
Timer 1
C/-T
Mode
Reload
Mode 0 Max : 1 Mhz
12 MHz
X
X
X
X
Mode 2 Max : 375K
12 MHz
1
X
X
X
Mode 1,3  : 62,5K
12 MHz
1
0
2
FFh
19,2k
11.059 MHz
1
0
2
FDh
9,6k
11.059 MHz
0
0
2
FDh
4,8k
11.059 MHz
0
0
2
FAh
2,4k
11.059 MHz
0
0
2
F4h
1,2k
11.059 MHz
0
0
2
E8h
137,5k
11.968 MHz
0
0
2
1Dh
110k
6 MHz
0
0
2
72h
110k
12 MHz
0
0
1
FEEBh
Konfigurasi Timer 2 yang berfungsi sebagai baud rate generator adalah :
a.         bit TCLK  dan/atau RCLK pada register T2CON diset. 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 port menggunakan pulsa Timer 2 overflow  untuk          baud rate pengiriman data. Sebaliknya jika TCLK=0 maka serial port     menggunakan pulsa Timer 1 overflow.
b.         Mode untuk baud rate generator seperti pada mode auto-reload, yaitu         adanya overflow pada register timer TH2 menyebabkan dimuatnya kembali     data 16-bit yang ada register RCAP2H dan RCAP2L ke TH2 dan TL2.  Baud rate yang dihasilkan mengikuti persamaan
                              Baud Rate = x (Timer 2 overflow rate)
c.         Timer 2 interrupt tidak perlu dinon-aktifkan
13.       Komunikasi dengan Banyak Prosessor.   Serial Port yang dimiliki oleh mikrokontroler MCS-51 memungkinkan dijalankannya komunikasi dengan dengan lebih dari dua mikrokontroler pada jalur kabel komunikasi yang sama (multiprocessor communication). Fasilitas yang unik ini dimungkinkan oleh adanya bit ke-9 pada komunikasi serial port dengan mode 2 dan 3 yang dapat diprogram lewat bit TB8 (bit yang terkirim) atau RB8(bit yang diterima) pada register SCON. Mikrokontroler MCS-51 dapat dikonfigurasikan agar mengaktifkan sinyal interupsi jika bit ke-9 ini (bit RB8) adalah '1'. Hal ini diperoleh dengan cara memberikan nilai '1' pada bit SM2 di register SCON. Cara kerja komunikasi dengan banyak prosesor ini adalah sebagai berikut :
a.         Sebuah mikrokontroler pusat dapat mengirimkan data atau address ke      mikrokontroler-mikrokontroler  lainnya pada jalur data serial port. Untuk        membedakan antara data dengan address, maka pada bit ke-9 ditentukan '0' untuk  data dan '1' untuk address.
b.         Andaikan ada 5 buah mikrokontroler dengan address masing-masing        1,2,3,4 dan 5. Mikrokontroler pusatnya adalah yang ber-address 1. Jika mikrokontroler pusat ingin berkomunikasi dengan mikrokontroler lain, dia cukup mengawalinya dengan mengirimkan 8 bit address mikrokontroler yang ingin dihubungi dan bit ke-9 di set '1'.
c.         Dengan adanya bit ke-9 yang berharga '1' dan karena SM2 pada    masing-masing register SCON-nya diset '1', maka pada semua mikrokontroler             bawahan akan terbangkit sinyal interrupt.
d.         Program pelayanan interrupt dibuat sedemikian rupa untuk mengecek      data address yang masuk apakah menunjuk pada mikrokontroler yang      bersangkutan. Jika demikian maka mikrokontroler tersebut diaktifkan oleh    mikrokontroler pusat, selanjutnya  menunggu pengiriman data selanjutnya dan menjalankan proses sesuai dengan perintah dari mikrokontroler pusat. Jika addressnya bukan menunjuk mikrokontroler yang bersangkutan, maka pengiriman data selanjutnya diabaikan dan program pelayanan interrupt selesai.

sumber:http://mjalaluddinjabbar.blogspot.com/2012/04/belajar-sendiri-mikrokontroler-lengkap_10.html?showComment=1394036043104#c8426219603465148047