• Tidak ada hasil yang ditemukan

Percobaan 8 INTERFACE MIKROKONTROLER DAN KOMPUTER SECARA SERIAL

N/A
N/A
Protected

Academic year: 2021

Membagikan "Percobaan 8 INTERFACE MIKROKONTROLER DAN KOMPUTER SECARA SERIAL"

Copied!
10
0
0

Teks penuh

(1)

Percobaan 8

INTERFACE MIKROKONTROLER DAN

KOMPUTER SECARA SERIAL

I. Tujuan

1.

Memahami komunikasi serial.

2.

Memahami cara mengggunakan interrupt serial pada mikrokontroller 8051.

3.

Memahami cara kerja transfer data lewat komunikasi serial RS-232 .

4.

Mampu membuat serta mengembangkan program bagi transfer data antar mikrokontroller 8051 dengan Personal Computer.

II . Ruang Lingkup A . Teori Singkat

Komunikasi serial merupakan komunikasi data dengan pengiriman data secara satu per satu dengan menggunakan satu jalur kabel data. Sehingga komunikasi serial hanya menggunakan 2 kabel data yaitu kabel data untuk pengiriman yang disebut transmit (Tx) dan kabel data untuk penerimaan yang disebut receive (Rx). Kelebihan dari komunikasi serial adalah jarak pengiriman dan penerimaan dapat dilakukan dalam jarak yang cukup jauh dibandingan dengan komunikasi parallel tetapi kekurangannya adalah kecepatan lebih lambat daripada komunikasi parallel, untuk saat ini sedang dikembangkan teknologi serial baru yang dinamakan USB (Universal Serial Bus) yang memiliki kecepatan pengiriman dan penerimaan data lebih cepat disbanding serial biasa.

Beberapa contoh : komunikasi Serial RS-232 dan RS-485.

Berikut ini merupakan gambar rangkaian dari RS-232 dan RS-485 yang digunakan untuk melakukan komunikasi serial:

C1+ C 1-V+ 16 1 3 5 V To 10 V C2+ C 2-4 5 V -0,1µF 6,3 V 0,1µF 0,1µF -10 V 5 V 0,1µF 0,1µF 2 T1 T1IN T1OUT T2 T2IN T2OUT 14 7 11 10 TTL CMOS INPUT RS 232 OUTPUT R1OUT R1IN 13 R2OUT R 2IN 8 RS 232 INPUT 5 K 5 K TTL CMOS OUTPUT RS 232 RS 485 RO RE/DE DI A B Receive NC '0' RO RE/DE DI A B DATA '1' NC 5V 0V DATA RO RE/DE DI A B DATA Transmit NC '1' RO RE/DE DI A B DATA '0' NC 5V 0V

(2)

AT89C51 mempunyai On Chip Serial Port yang dapat digunakan untuk komunikasi data serial secara Full Duplex sehingga Port Serial ini masih dapat menerima data pada saat proses pengiriman data terjadi. Untuk menampung data yang diterima atau data yang akan dikirimkan, AT89C51 mempunyai sebuah register yaitu SBUF yang terletak pada alamat 99H di mana register ini berfungsi sebagai buffer sehingga pada saat mikrokontroler ini membaca data yang pertama dan data kedua belum diterima secara penuh, maka data ini tidak akan hilang.

Gambar 8.2 Blok Diagram Port Serial

Pada serial terdapat 4 mode, yaitu mode 0,1,2, dan 3. Kita akan membahas satu persatu dari mode mode tersebut.

Mode serial port :

1. Pada mode 0, Pin TX mengeluarkan shift clock, dan pin RX dapat menerima maupun mengirim data, dengan format 8 bit data dimulai dengan LSB dulu yang dikirim. Jadi pada saat dikirim data melalui RX maka sekalian pin TX mengirimkan signal clock secara berbarengan. Baud ratenya fix yaitu 1/12 frekuensi osilatornya.

2. Pada mode 1, Pin TX berfungsi untuk mengirim data dan RX berfungsi untuk menerima data, data yang dikirim formatnya 8 bit data dengan LSB dikirim dahulu, serta 1 start bit( berlogika 0 ) dan 1 stop bit( berlogika 1 ). Baud ratenya variabel tergantung dari nilai yang ada pada register timer 1 maupun timer 2. 3. Pada mode 2, Pin TX berfungsi untuk mengirim data dan RX untuk menerima

data, format datanya sama dengan mode 1 hanya saja terdapat parity bitnya sehingga total bit yang terkirim sebanyak 11 bit. Bit paritynya dapat diset melalui TB8( lihat pada SCON ). Baud ratenya hanya ada 2 pilihan yaitu 1/32 atau 1/64 dari frekuensi osilatornya.

4. Pada mode 3 identik dengan mode 2, hanya saja Baud ratenya variabel tergantung nilai yang terdapat pada register dari timer 1 dan timer 2.

(3)

Cara Menset Mode serial ialah melalui Register SCON :

Dalam coding serial dalam MCS, terdapat 2 konsep yaitu secara polling maupun secara interrupt. Seperti yang sudah dijelaskan diatas mengenai TI dan RI, maka dalam menerima data RI akan terset secara hardware sedangkan TI diset pada saat data hampir selesai dikirim, dan dalam hal transmisi data sangat perlu untuk “CEK” kondisi TI. Bila TI sudah berlogika 1 berarti data yang ditaruh dalam SBUF sudah selesai dikirim dan harus diclear secara software( secara program ), sebab bila tidak dicek apakah TI sudah ‘1’ atau belum maka mungkin saja terjadi SBUF sudah direload dengan data baru sedangkan data yang lama belum selesai dikirim sehingga terjadi apa yang disebut dengan data corruption. Maka sebelum mengirim byte data yang selanjutnya sangatlah perlu untuk mengecek TI dulu.

Bila coding serial dengan konsep polling maka codenya harus terus menerus mengecek flag TI dan RI, apakah berlogika ‘1’, bila berlogika ‘1’ maka langsung lompat ke procedure yang bersangkutan, dengan jangan lupa secepatnya mengclear flag TI atau RI, agar tidak lompat ke int. veltor dari serial. Keuntungan konsep polling adalah codenya yang simple, tetapi menghabiskan cpu time sebab selalu mengecek flag TI dan RI terus menerus tanpa dapat melakukan tugas yang lain, sebab bila melakukan yang lain maka pada saat salah satu flag tersebut menjadi satu maka akan langsung lompat ke int. vektor serial sehingga program akan menjadi kacau.

Bila coding serial dengan konsep interrupt, maka program serialnya hanya ada pada subroutine dari int. serial saja, dimana hanya mengecek oleh flag mana interrupt serial terpanggil? Oleh TI atau RI? Bila oleh TI maka taruh datanya ke SBUF TI utk dikirim, dan bila karena RI maka selamatkan datanya ke suatu variabel dari SBUF RI. Keuntungannya code kita dapat melakukan tugas yang lainnya, kerugiannya adalah code yang cukup kompleks ( walaupun sebetulnya masalah kompleks relatif bagi setiap orang ).

Data transfer rate dinyatakan dalam baud rate, yaitu kecepatan perubahan data per waktu. Cara menset serial serta BAUD yang dibutuhkan hanya cukup menset register IE, SCON (mengatur mode Serial), TCON, TMOD.

(4)

SCON

SM0: Serial Port Mode bit 0, bit Pengatur Mode Serial SM1: Serial Port Mode bit 1, bit Pengatur Mode Serial

SM2: Serial Port Mode bit 2, bit untuk mengaktifkan komunikasi multiprosesor pada kondisi set.

REN: Receive Enable, bit untuk mengaktifkan penerimaan data dari Port Serial pada kondisi set. Bit ini di set dan clear oleh perangkat lunak.

TB8: Transmit bit 8, bit ke 9 yang akan dikirimkan pada mode 2 atau 3. Bit ini diset dan clear oleh perangkat lunak

RB8: Receive bit 8, bit ke 9 yang diterima pada mode 2 atau 3. Pada Mode 1 bit ini berfungsi sebagai stop bit.

TI: Transmit Interrupt Flag, bit yang akan set pada akhir pengiriman karakter. Bit ini diset oleh perangkat keras dan di clear oleh perangkat lunak

RI: Receive Interrupt Flag, bit yang akan set pada akhir penerimaan karakter. Bit ini diset oleh perangkat keras dan di clear oleh perangkat lunak

Selain variabel-variabel di atas, masih terdapat sebuah variabel lagi yang menjadi pengatur baud rate serial yaitu Bit SMOD pada Register PCON. Apabila bit ini set maka faktor pengali 32 pada formula 3.1 akan berubah menjadi 16. Oleh karena itu dapat disimpulkan formula untuk baud rate serial untuk Mode 1 dan Mode 3 adalah:

Mode Baud Rate

0 osc f 12 1 SMOD = 0 SMOD = 1 1 32 ) 1 256 ( 12x TH x f rate Baud osc − = 16 ) 1 256 ( 12x TH x f rate Baud osc − = 2 osc f 32 1 osc f 64 1 3 32 ) 1 256 ( 12x TH x f rate Baud osc − = 16 ) 1 256 ( 12x TH x f rate Baud osc − =

Pada serial sebelum menerima maupuin mengirim data, data tersebut ditampung pada buffer serial atau yang disebut SBUF(serial buffer). Sebetulnya pada serial MCS terdapat 2 serial buffer dengan nama SBUF. Jika demikian maka bagaimana caranya MCS dapat membedakan SBUF mana untuk kirim dan untuk terima? Jawabannya MCS dapat mengetahui SBUF mana yang mau diakses melalui instruksi dari programnya.

(5)

Contoh : MOV SBUF,A à berarti SBUF transmit MOV A,SBUF à berarti SBUF receive

Dalam coding serial dalam MCS, terdapat 2 konsep yaitu secara polling maupun secara interrupt. Seperti yang sudah dijelaskan diatas mengenai TI dan RI, maka dalam menerima data RI akan terset secara hardware sedangkan TI diset pada saat data hampir selesai dikirim, dan dalam hal transmisi data sangat perlu untuk “CEK” kondisi TI. Bila TI sudah berlogika 1 berarti data yang ditaruh dalam SBUF sudah selesai dikirim dan harus diclear secara software( secara program ), sebab bila tidak dicek apakah TI sudah ‘1’ atau belum maka mungkin saja terjadi SBUF sudah direload dengan data baru sedangkan data yang lama belum selesai dikirim sehingga terjadi apa yang disebut dengan data corruption. Maka sebelum mengirim byte data yang selanjutnya sangatlah perlu untuk mengecek TI dulu.

Bila coding serial dengan konsep polling maka codenya harus terus menerus mengecek flag TI dan RI, apakah berlogika ‘1’, bila berlogika ‘1’ maka langsung lompat ke procedure yang bersangkutan, dengan jangan lupa secepatnya mengclear flag TI atau RI, agar tidak lompat ke int. veltor dari serial. Keuntungan konsep polling adalah codenya yang simple, tetapi menghabiskan cpu time sebab selalu mengecek flag TI dan RI terus menerus tanpa dapat melakukan tugas yang lain, sebab bila melakukan yang lain maka pada saat salah satu flag tersebut menjadi satu maka akan langsung lompat ke int. vektor serial sehingga program akan menjadi kacau.

Bila coding serial dengan konsep interrupt, maka program serialnya hanya ada pada subroutine dari int. serial saja, dimana hanya mengecek oleh flag mana interrupt serial terpanggil? Oleh TI atau RI? Bila oleh TI maka taruh datanya ke SBUF TI utk dikirim, dan bila karena RI maka selamatkan datanya ke suatu variabel dari SBUF RI. Keuntungannya code kita dapat melakukan tugas yang lainnya, kerugiannya adalah code yang cukup kompleks ( walaupun sebetulnya masalah kompleks relatif bagi setiap orang ).

Gambar berikut ini menggambarkan pin-pin konektor serial yang diperlukan untuk melakukan komunikasi sederhana ke computer :

1 2 3 4 5 6 7 8 9 Rx Tx Ground Connector FEMALE

(6)

B . Daftar Alat

1. Modul Aplikasi & Interfacing kode : III . Referensi

• Manual Book Serial Interfacing INex CITS NX-2000

• Anonim, Architectural Overview of The MCS-51 Family of Microcontrollers, Intel Inc.

• Hall, Douglas V. (1991), Microprocessors And Interfacing : Programming and Hardware. McGraw-Hill Inc.

• http://lab.binus.ac.id/pk/databook/atmel/89c51.pdf • http://lab.binus.ac.id/pk/download/aplikasi/Timer.pdf • http://lab.binus.ac.id/pk/download/aplikasi/serial.pdf • http://www.lammertbies.nl/comm/info/RS-232_uart.html • http://www.maxim-ic.com/MAX232.pdf • http://www.maxim-ic.com/appnotes.cfm/appnote_number/2020 IV . Urutan Instruksi Kerja

A . Prosedur

Port MCS Sebagai Output

• Hubungkan Modul 8051 dengan Modul Led Display Board dengan menggunakan data bus seperti gambar 8.1 di bawah ini

(7)

Gambar 8.3 Koneksi antara modul 8051 dengan Led Display Board • Ketiklah program (Assembly) dibawah ini pada Notepad :

Program mengirim sebuah karakter dengan Bahasa Assembler 51

DATA_TX EQU 30H DATA_RX EQU 31H BR EQU 0FDH FLAG_RX EQU 20H.0 TXREADY EQU 20H.1 ORG 00H AJMP START ORG 23H AJMP SERIAL ORG 40H START: MOV SP,#60H MOV TMOD,#20H MOV SCON,#50H MOV TL1,#BR MOV TH1,#BR SETB TR1 SETB ES SETB EA CLR FLAG_RX SETB TXREADY LOOPING: JNB FLAG_RX,TIDAK_ADA ADA: CLR FLAG_RX MOV A,DATA_RX MOV DATA_TX,A ACALL SEND_BYTE TIDAK_ADA: AJMP LOOPING SEND_BYTE: JNB TXREADY,$ MOV A,DATA_TX MOV SBUF,A CLR TXREADY RET SERIAL: PUSH ACC

(8)

JB TI,KIRIM JB RI,TERIMA KIRIM: CLR TI SETB TXREADY AJMP DONE TERIMA: CLR RI MOV A,SBUF MOV DATA_RX,A SETB FLAG_RX

DONE: POP ACC

RETI END

Program mengirim sebuah karakter dengan Bahasa C 51

#include <at89x52.h>

#define BR 0xFD //setting baudrate char Data_Rx; char Data_Tx; bit flag_Rx; bit TxReady; void initSerial() { SCON = 0x50; TMOD = 0x20; TH1 = BR; TL1 = BR; TR1 = 1; ES = 1; EA = 1; TxReady = 1; flag_Rx = 0; }

void int_Serial() interrupt 4 { if(RI) { RI = 0; Data_Rx = SBUF; flag_Rx = 1; } if(TI) { TI = 0; TxReady = 1; } } void sendByte() {

(9)

while(!TxReady); SBUF = Data_Tx; TxReady = 0; } void main() { initSerial(); while(1) { if(flag_Rx) { flag_Rx = 0; Data_Tx = Data_Rx; sendByte(); } } }

• Compile-lah dan write dengan WINISP.EXE ke dalam IC

• Perhatikanlah apa yang terjadi.

Tugas :

Buatlah program komunikasi serial antara PC dan MCS-52 agar PC dapat menyalakan 8 buah led. Status dari nyala Led ditampilkan pada program Microsoft Visual Basic 6.0

(10)

B. Tugas Laporan

1. Komunikasi Serial MCS dan PC

2. Keuntungan/kerugian menggunakan komunikasi serial 3. Perhitungan Baud Rate

4. Flowchart semua program 5. Kesimpulan

C. Tugas Pendahuluan

1. Menurut anda apa manfaat komunikasi serial pada MCS-52? 2. Apa yang dimaksud dengan baud rate pada komunikasi serial? 3. Mengapa IC MAX232 diperlukan pada modul praktikum?

Gambar

Gambar 8.1  Gambar rangkaian RS-232 dan RS-485
Gambar 8.2 Blok Diagram Port Serial
Gambar  berikut  ini  menggambarkan  pin-pin  konektor  serial  yang  diperlukan untuk melakukan komunikasi sederhana ke computer :
Gambar 8.3 Koneksi antara modul 8051 dengan Led Display Board

Referensi

Dokumen terkait

Fotografi potret di sini berfungsi sebagai metode bagaimana gestur atau pose ketika seseorang pada masa kini bertemu masa kecilnya dalam ruang yang sama, sumber arsip foto masa

Kalimat [14] diisi oleh nomina Dia yang berfungsi sebagai subjek, diisi oleh verbal tidak bertahan yang berfungsi sebagai predikat, dan diisi frasa Nominal dalam kepakatan

Seperti yang terjadi pada periode tahun 1990-2000, untuk Kota Surabaya, Bandung dan Medan rata-rata laju pertumbuhan penduduk wilayah (kabupaten/kota) sekitarnya

Dalam hal ini hereditas diartikan sebagai totalitas karakteristik individu yang diwariskan orang tua kepada anak, atau segala potensi, baik fisik yang dimiliki individu

Berdasarkan penelitian yang telah dilakukan, upah yang akan diusulkan untuk PT Dewata Sari Prima sebesar Rp 21.000,00 untuk satu kelompok yang berhasil memproduksi

Analisis regresi merupakan studi yang menjelaskan dan mengevaluasi hubungan antara suatu variabel bebas dengan satu variabel terikat untuk tujuan mengestimasi atau

• Dalam sistem komputer yang menggunakan layar 2 dimensi, mata kita dipaksa untuk dapat mengerti bahwa obyek pada layar tampilan, yang sesungguhnya berupa obyek 2

Faktor – faktor yang mempengaruhi terhadap pemilihan karir menjadi Akuntan Publik diukur dengan variabel penghargaan finansial/gaji, pelatihan profesional, nilai-nilai