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
Previous
Next Post »