BAB04 - Port I/O Mikrokontroler MCS51

February 17, 2019 | Author: cakMAD69 | Category: N/A
Share Embed Donate


Short Description

Port I/O Mikrokontroler MCS51...

Description

4. Port Input/Output Mikrokontroler MCS-51 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 (duaarah), memiliki latch (dengan latch (dengan ini maka data output akan tetap berada pada statusnya hingga ada pengiriman 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 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.

4.1. Port Port I /O Paral Paral lel  lel  4.1.1. 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 : P0 dan P2 : Port 0 memiliki address 80h sedangkan Port 2 addressnya 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  sebagai  bus address yang dimultipleks-waktu dengan data bus. bus. Untuk akses address 16  Mikrokontroler MCS51

29

 bit dibutuhkan dua buah port 8 bit, yaitu Port 0 dan Port 2. Port 0  berfungsi untuk mengeluarkan data byte rendah address eksternal memori, 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  data  dengan address  pada Port ) membutuhkan sebuah chip latch eksternal dan sebuah tri-state bidirectional buffer  yang diakses melalui melalui sinyal kendali ALE ALE dan RD serta -WR.

Pada saat akses address 16 address 16 bit, isi register P0 berubah menjadi 0FFh, sedangkan isi register P2 adalah tetap seperti semula. Contoh akses address  address  memori eksternal 16 bit adalah melalui instruksi M OVX A,@DPTR. 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 address 8 bit misalnya  pada instruksi M OVX A,@R0  . Pada instruksi ini address 8 bit untuk A,@R0  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. register Accumulator.

 Mikrokontroler MCS51

30

P3 : Port ini memiliki address 0B0h address 0B0h dimana tiap pin nya memiliki fungsi khusus sebagai berikut:

Simbol -RD -WR T1 T0 -INT1 -INT0 TXD RXD

Tabel 4.1. Fungsi alternatif pin-pin Port 3 Posisi Nama dan arti P3.7 external data memory read strobe P3.6 external data memory write strobe P3.5 timer/counter 1 external input P3.4 timer/counter 0 external input P3.3 external interrupt 1 P3.2 external interrupt 0 P3.1  serial data output port 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'. '1'.

P1 : Port ini memiliki address 090h, dan biasanya digunakan untuk  penggunaan paralel port secara umum. umum. Khusus pada seri 8052 ada  pin yang memiliki memiliki fungsi fungsi khusus yaitu :

Simbol T2EX T2

Tabel 4.2. Fungsi alternatif pin-pin Port 1 Posisi Nama dan arti P1.1 Timer/counter 2 capture/reload trigger P1.0 Timer/counter 2 eksternal input

 Mikrokontroler MCS51

31

Pin dengan fungsi khusus ini memiliki karakteristik yang sama d engan Port 3. 4.2. Pembacaan dan Penulisan Port Paralel

Dengan melihat konstruksi port paralel yang kesemuanya memiliki latch, latch, maka ada dualisme proses pembacaan port, antara pembacaan latch dengan pembacaan pin. Ada beberapa instruksi yang melakukan  pembacaan   pembacaan  latch, latch, dan sebagian lain melakukan pembacaan pin. Instruksi yang membaca latch adalah 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 : ANL (logical AND), ORL (logical OR), XRL (logical XOR), JBC (jump if bit = 1 and clear bit), CPL (compelement bit), INC (increment), DEC (decrement), DJNZ (decrement and jump if not zero), MOV (move), CLR (clear), SETB (set bit).

 Mikrokontroler MCS51

32

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  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 4.1. Penulisan '1' pada suatu  bit mengaktifkan fungsi fungsi alternatif pada pin pada bit tersebut.

4.3. Port I/O Serial

Port I/O serial yang dimiliki oleh MCS-51 memiliki karakteristik  full duplex (dapat 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). Port serial dapat bekerja dalam 4 mode :

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 (baud rate) rate) adalah tetap sebesar 1/12 frekuensi frekuensi osilator.  Mikrokontroler MCS51

33

Mode 1 :

Pada mode mode ini data 8 bit dikirim/diterima dengan 2 bit tambahan, dengan urutan : start bit (logika 0), 8 bit data (dengan bit terendah di depan), 1 stop bit (logika 1). Pada saat penerimaan, stop bit masuk pada bit RB8 pada register SCON (salah satu special 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 : start bit (logika 0), 8 bit data (dengan bit terendah di depan), 1 bit tambahan yang dapat diprogram, d iprogram, 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 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),

 Mikrokontroler MCS51

34

8 bit data (dengan bit terendah di depan), 1 bit tambahan yang dapat diprogram, d iprogram, 1 stop bit (logika 1). Mode ini persis sama dengan dengan mode mode 2 kecuali kecuali baud rate-nya yang variabel.

4.4. Pembacaan dan Penulisan Port Serial

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

4.5. Pengaturan Baud Rate

 Baud rate  rate  adalah kecepatan transmisi data serial, berupa banyaknya transisi logika pada saluran data serial tiap detik. Semakin besar nilai baud rate, rate, maka semakin cepat proses pengiriman/ penerimaan data serial. Pada mode 0, baud rate  rate  adalah tetap sebesar 1/12 frekuensi osilator. Bit SMOD pada register PCON menentukan baud rate pada Mode Mode 2. Untuk SMOD=1 baud rate  rate  adalah 1/32 frekuensi osilator, dan jika SMOD = 0 maka baud rate  rate  adalah 1/64 frekuensi osilator . Baud rate  rate  untuk mode 1 dan 3 ditentukan oleh kecepatan overflow pada overflow pada Timer  1   1 atau Timer  2   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.  2.  Baud rate untuk rate untuk mode 1 dan 3 ditentukan oleh persamaan :

 Mikrokontroler MCS51

35

2

Baud rate =

SMOD

32

 x (Timer (Timer 1 overflow rate) rate )

Konfigurasi timer   1 yang diperlukan untuk menjalankan fungsi di atas adalah : timer   dijalankan pada operasi "timer" atau "counter", dengan mode 1,2 atau 3 timer 1 interrupt  dibuat  dibuat tidak bekerja (disabled  (disabled )

Kombinasi baud rate yang rate yang mungkin adalah sebagaimana pada tabel berikut :

Baud

Tabel 4.3. Kombinasi Pemilihan Baud Rate f OSC SMOD Timer1

Rate Mode 0 Max : 1 Mhz Mode 2 Max : 375K Mode 1,3 : 62,5K 19,2k 9,6k 4,8k 2,4k 1,2k 137,5k 110k 110k

 Mikrokontroler MCS51

12 MHz 12 MHz 12 MHz 11.059 MHz 11.059 MHz 11.059 MHz 11.059 MHz 11.059 MHz 11.968 MHz 6 MHz 12 MHz

X 1 1 1 0 0 0 0 0 0 0

C/-T X X 0 0 0 0 0 0 0 0 0

Mode X X 2 2 2 2 2 2 2 2 1

Reload X X FFh FDh FDh FAh F4h E8h 1Dh 72h FEEBh

36

Konfigurasi Timer  2  2 yang berfungsi sebagai baud rate generator adalah :  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 menggunakan pulsa Timer 2 overflow untuk baud rate  rate  pengiriman data. Sebaliknya jika TCLK=0 maka serial port menggunakan menggunakan pulsa Timer 1 overflow.

Mode untuk baud rate generator rate generator seperti pada mode auto-reload , yaitu adanya  adanya  overflow  overflow  pada register timer TH2 menyebabkan dimuatnya kembali data 16-bit yang ada register RCAP2H dan RCAP2L ke TH2 dan TL2.  Baud rate yang rate yang dihasilkan mengikuti persamaan 1

 Baud Rate = Rate  =

16

x (Timer (Timer 2 overflow rate) rate)

Timer 2 interrupt  tidak  tidak perlu dinon-aktifkan

4.6. Komunik Ko munikasi asi 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). 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

 Mikrokontroler MCS51

37

SCON. Mikrokontroler MCS-51 dapat dap at 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 : Sebuah mikrokontroler pusat dapat mengirimkan data atau address ke mikrokontroler-mikrok mikrokontroler-mikrokontroler ontroler

lainnya pada

 jalur data serial port. po rt. Untuk membedakan antara data dengan address, address, maka pada bit ke-9 ditentukan '0' untuk untuk data dan '1' untuk address. address. Andaikan ada 5 buah mikrokontroler dengan address masing-masing 1,2,3,4 dan 5. Mikrokontroler pusatnya adalah yang ber-address ber-address   1. Jika mikrokontroler pusat ingin  berkomunikasi dengan mikrokontroler lain, dia cukup mengawalinya

dengan

mengirimkan

8

bit

address

mikrokontroler yang ingin dihubungi dihubungi dan bit ke-9 ke -9 di set di set '1'. Dengan adanya bit ke-9 yang berharga '1' dan karena SM2  pada masing-masing masing-masing register SCON-nya diset '1', maka pada semua mikrokontroler bawahan akan terbangkit sinyal interrupt. 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 menunggu pengiriman data selanjutnya dan menjalankan proses sesuai dengan perintah dari

 Mikrokontroler MCS51

38

mikrokontroler pusat. Jika addressnya addressnya bukan menunjuk mikrokontroler yang bersangkutan, maka pengiriman data selanjutnya diabaikan dan program pelayanan interrupt selesai.

 Mikrokontroler MCS51

39

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF