diktat mikrokontroler siskom mcs-51(1).doc

32
11

Upload: jiezoe

Post on 22-Dec-2015

269 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

11

Page 2: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

BAB IVAntar Muka

Antar muka (Interfacing) adalah menghubungkan antara satu piranti dengan piranti yang lain. Yang paling penting dari sebuah antar muka adalah komunikasi, yaitu membuat dua atau lebih piranti untuk dapat saling berhubungan dan saling transfer data. Komunikasi yang terjadi dapat searah atau dua arah. Piranti-piranti yang berhubungan minimal mempunyai satu piranti cerdas (kontroller, PC dll) agar dapat mengatur jalannya komunikasi.

Dilihat dari segi perkabelan, sistem antar muka dapat dibagi menjadi dua, yaitu komunikasi secara paralalel dan seri. Masing-masing digunakan sesuai dengan kebutuhan dan kondisi yang memungkinkan, dan berikut beberapa hal yang dapat dibandingkan dari keduanya:

Kriteria Paralel Serial

Jumlah kabel yang digunakan Sesuai jumlah bit

Hanya 2 bit (Transmit dan Receive atau Data dan Clock)

Kecepatan Sangat Cepat (Flash) Lebih lambat dari Paralel

Jarak yang dapat ditempuh

Terbatas untuk jarak dekat (1- 2 m)

Bisa sampai 10 m atau lebih (bergantung kapasitansi kabel atau bahkan > 1Km untuk RS485).

Software Sangat mudah Relatif lebih susah dari komunikasi paralel

Beberapa contoh antar muka seri yang ada dan dapat digunakan di papan tunggal MCS-51 buatan Elkahfi adalah antar muka dengan ADS7822 (ADC 12 bit), EEPROM serial (24Cxx), Real Time Clock (RTC PCF8583) dan dengan menggunakan standar RS232 dan RS485.

12

Page 3: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

BAB V

13

CONTROLLER CONTROLLER atau

PERANTI I/O

Control

Status

Serial

Paralel

Page 4: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Komunikasi Data Paralel

Dalam komunikasi antar prosesor, data yang dikirimkan berupa bit dan bergantung pada jenis prosesornya (8 bit, 16 bit atau 32 bit). Komunikasi parallel mengirimkan seluruh bit dalam satu data secara bersamaan. Kecepatan transfer dari komunikasi ini sangat tergantung dari kemampuan dua buah prosessor tersebut. Kelemahan dari komunikasi parallel adalah tidak dapat dipakai untuk transfer data jarak jauh. Hal ini dikarenakan sarana pendukung untuk komunikasi ini sangat banyak sehingga menjadi tidak efisien.

Pada penggunaan komunikasi paralel semua bit dikirim secara bersamaan pada waktu yang sama. Oleh karena itu pada komunikasi ini kita membutuhkan banyak kabel. Hal ini memang sering menjadi kelemahan komunikasi paralel akibat banyaknya kabel yang dibutuhkan, dan panjang kabel ini tidak boleh lebih dari 2 m untuk menjaga keaslian data. Namun kelebihan komunikasi paralel adalah lebih cepat dan kapasitas yang dibawa juga banyak serta pemrograman yang lebih mudah.

Keypad Heksadesimal

Keypad dengan 12 tombol dari angka 0 – 9 ditambah tombol # dan *. Sistem antarmuka ini akan dihubungkan pula dengan penampil 7 segmen yang akan menampilkan angka yang sesuai dengan tombol yang ditekan. Antarmuka menjadi lebih mudah karena karena kita sudah menggunakan IC 7447 / 74247 sehingga tidak diperlukan lagi konversi ke tampilan display 7 segmen. Cara kerja dari antarmuka ini adalah mikrokontroller mengecek tombol apa yang ditekan dan menerjemahkannya ke dalam angka. Keypada yang dipakai mempunyai 3 pin untuk mengecek kolom dan 4 pin untuk menecek baris.

Gambar 9.1 Keypad 4X3

Apabila tombol 1 ditekan, maka pin 0 akan terhubung dengan pin 7 dan pin 3 juga terhubung dengan pin 7 (Pin 7 keypad terhubung ke ground). Jika tombol 4 ditekan, maka pin 0 dan 4 masing-masing akan terhubung singkat dengan pin 7. Oleh karena cara kerja dari keypad seperti di atas maka antarmukanya disesuaikan dengannya.

14

Page 5: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Gambar 9.2 Antarmuka keypad dengan mikrokontroller

Gambar diatas menunjukan antarmuka keypad dengan mikrokontroller. Pin 0-6 keypad masing-masing dipullup dengan resitor ke VCC, sedangkan Pin 7 dihubungkan ke ground. Gerbang AND dengan 4 masukan digunakan apabila program keypad menggunakan sistem interupsi. Dengan cara ini pada saat salah satu tombol keypad ditekan, maka keluaran AND menjadi low dan memberikan sinyal interupsi pada mikrokontroller untuk segera membaca tombol apa yang ditekan.

Program membaca keypad dengan sistem pollingUntuk mengisi equ tombol tekan dibawah ini, dapat dilakukan dengan mudah dengan dengan memanggil program tampilan 7 segmen yang telah anda buat. Caranya harga tampilan 7segmen diambil dari P0, dan 7segmen ditampilkan melalui P2. Pada hardware, hubungkan keypad ke port0 dan 7segmen ke Port2, lalu jalankan program. Tekan tombol 1 maka pada 7segmen muncul angka yang menunjukan harga equates untuk tersebut. Untuk tombol yang lain dapat dilakukan dengan cara yang sama.

;equate untuk tombol yang ditekan

satu EQU 246dua EQU 245tiga EQU 243empat EQU 238lima EQU 237enam EQU 235tujuh EQU 222delapan EQU 221sembilan EQU 219bint EQU 62nol EQU 61kres EQU 59d1 equ 0hd2 equ 1hd3 equ 3hd4 equ 4h…..

15

Page 6: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Program membaca keypad dengan sistem Interupsi

Membaca keypad dengan cara polling dilakukan dengan cara mengecek terus menerus P0 sehingga apabila ada tombol yang ditekan, display akan menampilkan tombol yang ditekan. Cara tersebut kurang baik, karena mikrokontroller akan disibukan dengan terus menerus mengecek keypad sehingga tidak bisa mengerjakan pekerjaan yang lain, padahal keypad hanya ditekan sesekali saja tidak terus-menerus. Cara lain untuk membaca keypad yang lebih efektif yaitu dengan cara interupsi. Dengan cara ini mikrokontroller hanya sesekali saja membaca keypad, sehingga mikrokontroller dapat melakukan program-program yang lain. Pada saat salah satu tombol keypad ditekan, keypad akan mengirimkan sinyal interupsi ke mikrokontroller, sehingga mikrokontroller menghentikan untuk sementara program yang lain dan membaca keypad tombol mana yang ditekan. Contoh programnya ditampilkan dibawah ini. Pada hardware MCS-51 Simulator V9.0 dilakukan konfigurasi sebagai berikut: keypad dihubungkan ke Port 0 dan kaki INT0 (P3.2), display 7 segmen dihubungkan ke Port 2.

org 0ljmp main org 03hljmp interap

main: mov ie,#81h ; mengangktifkan interrupsi,

setb it0 ; untuk transisi low utama: mov a,r6

acall 7segmensjmp utama

;interap

INTERAP: ACALL KEYPAD RETI

keypad: MOV r7,P0 CJNE r7,#satu,nsatu MOV r6,#d1nsatu: CJNE r7,#dua,ndua MOV r6,#d2ndua: CJNE r7,#tiga,ntiga MOV r6,#d3 CJNE r7,#nol,nnol MOV r6,#d0 nnol: CJNE r7,#kres,beak MOV r6,#d12 beak: nop ret

Antar Muka dengan peraga 7 Segmen

Pada bagian kali ini, akan dibahas antarmuka dengan piranti display 7 segment. Piranti display ini akan menunjukkan angka-angka sesuai dengan input yang diberikan kepadanya. Pada sistem antar muka ini digunakan IC multiplexer 7447/74247 untuk memudahkan pengiriman data. Hal ini disebabkan karena bagian 7 segmen harus dikonversi terlebih untuk mendapatkan angka yang

16

Page 7: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

diinginkan sebagai contoh apabila diinginkan 7 segmen menampilkan angka 1, maka port harus menghidupkan bagian b dan c. untuk lebih jelas lihat gambar

Misalkan bagian (a) terhubung dengan port 1.0 (P1.0) bagian (b) dengan P1.1, bagian (c) dengan P1.2 dan seterusnya sampai dengan bagian g terhuibung dengan P1.6. Apabila data yang ingin ditampilkan adalah angka 7 maka data yang dikirimkan pada port 1 bukan 3 akan tetapi 4F heksadesimal atau 79 desimal.

P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0P g f e d c b a0 1 0 0 1 1 1 1

Akan tetapi dengan menggunakan IC 7447 hal tersebut menjadi bukan lagi masalah sebab IC 7447 sudah mengkonversi angka 3 dengan 4F H secara otomatis, jadi dengan menggunakan 7447 jika ingin ditampilkan angka 3 pada 7 segmen cukup mengirimkan data 3 pula pada port antarmuka. Tabel kebenaran untuk 7447 sebagai berikut:

17

Page 8: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Perbedaan antara common anoda dan common katoda adalah cara untuk mengaktifkannya. Common katoda harus diberikan ground ( 0 Volt) pada kaki pengaktifan sedangkan common anoda harus diberikan Vcc atau 5 Volt. Rangkaian antarmukanya diberikan seperti gambar

18

Page 9: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Gambar Antarmuka Tampilan 7 Segmen

Cara kerja dari perangkat antarmuka 7 segmen diatas adalah sebagai berikut 4 buah 7 segmen dirangkaikan paralel. Kaki a,b,c,d,e,f,g 7segmen masing-masing dihubungkan secara paralel dengan kaki pada IC 7447. Kaki Lsb port yang digunakan dihubungkan ke 7447 untuk menampilkan angka yang ingin ditampilkan. Sedangkan kaki Msb port dihubungkan ke anoda masing-masing 7 segmen untuk mengontrol 7segmen mana yang hidup. Misalkan angka 1 diberikan oleh IC 7447 dan ingin ditampilkan pada display ke 4 maka port 3 sebagai hidup matinya display, selain pin P3.0 harus bernilai 5 Volt. Dengan bernilai 0 Volt hanya pada P3.0, maka kaki pengontrol 7 segmen display ke 4 justru akan bernilai 5 Volt dengan konfigurasi diatas.

Jika ingin ditampilkan secara bersamaan angka 2 pada display 3 dan angka 1 pada display 4, maka harus diatur hidup matinya display secara bergantian. Walaupun sebenarnya display tersebut mati secara bergantian namun mata manusia akan melihat kedua display tersebut hidup secar bersamaan karena delay ( selang waktu ) antara hidup dan matinya kedua display tersebut sangat singkat misalkan 20 milidetik. Contoh program dibawah ini untuk menghidupkan dua buah display 7 segmen dengan angka yang berurutan secar terus menerus.

; Program tampilan 7segmen

digit0 equ 30Hdigit1 equ 31Hdigit2 equ 32Hdigit3 equ 33H

org 00HLJMP main

Main:MOV R1, #0

MAIN1:MOV A , R1ACALL DISPLAY7INC R1

19

Page 10: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

CJNE R1, #FFH, MAIN1SJMP MAIN

ANTAR MUKA DENGAN PPI 8255

Antarmuka dengan PPI 8255 sangat penting untuk dilakukan karena dengan PPI (Programmable Peripheral Interface) Mikrokontroller dapat melakukan pengontrolan ke piranti lain dengan jumlah yang lebih banyak. Misalnya untuk antarmuka dengan keyapad 3 baris 3 kolom diperlukan 8 buah pin pengontrol dari mikrokontroller dan pada waktu yang bersamaan ada pula natarmuka dengan 7 segmen sebagai piranti display yang memerlukan 4 buah pin dari 2 port yang berbeda, jadi dalam sisitem ini port 0 1 pin 0 – 3 dan port 2 pin 0 – 3 dipakai mengaktifkan 7 segmen. Namun apabila dalam sistem tersebut memakai PPI 8255 yang mempunyai 3 port tambahan untuk port 0 untuk antar muka dengan keypad dan 7 segmen.

PPI 8255 secara fisik mempunyai 3 port dengan 8 buah pin dalam satu portnya, yang ketiganya dapat diprogram oleh mekrokontroller apakah sebagai I/O atau fungsi handshaking (jabat tangan). Fungsi – fungsi tersebut sesuai dengan mode yang diberlakukan pada masing – masing port. Mode operasi yang terdapat pada PPI 8255 adlah MODE 0, MODE 1 DAN MODE 2. apabila port A diberlakukan mode 0 maka port A dapat berfungsi sebagai input atau output, begitu pula dengan port B.

Mode 1 digunakan untuk operasi Handshake antara mikrokontroller dengan piranti yang mempunyai fungsi handshake pula misalnya printer. Handshake dengan piranti printer ini mutlak diperlukan karena printer yang sedang bekerja (mencetak) memerlukan waktu sela dalam menerima data berikutnya. Mikrokontroller mempunyai kecepatan transfer data paralel yang sangat cepat sedangkan printer menerima sebuah karakter ASCII dan mencetaknya memerlukan waktu yang relatif lebih lama dari kecepatan mikrokontroller. Dengan adanya operasi handshake printer tidak akan menerima karakter selanjutnya sebelum printer tersebut telah siap. Mode 1 ini dapat diberlakukan pada port A dan port B saja sedangkan port C terbagi menjadi 2 bagian pin 4 – 7 sebagai handshakenya. Pada grup B port B sebagai jalur data dan port C pin 4 – 7 sebagai handshakenya. Pada latihan kali ini, kita akan mencoba memprogram port A, port B dan port C 8255 sebagai output yang dihubungkan dengan lampu led. Lampu – lampu tersebut akan menyala secara bergantian.

20

Page 11: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Gambar Antar muka dengan PPI 8255

Karena pin A dihubungkan dengan jalur alamt (address) mikrokontroller A13, pin B dengan A14, dan pin C dengan A15 maka untuk mengaktifkan 8255, mikrokontroller harus mengakses suatu alamat yang A15 – 0, A14 = 0 dan A13 = 1. sedangkan pin A0 dan A1 digunakan untuk memilih port yang aktif. Karena A0 dan A1 bernilai dari 0 – 2000H adalah alamat untuk port A 8255, 20001 H untuk alamat Port B, 2002 H untuk Port C dan 2003 H untuk memasukkan kontrol word.Operasi dasar untuk mengaktifkan 8255 terdapat pada tabel di bawah :

A1 A0 RD WR CS Operasi0 0 0 1 0 Port A sebagai jalur input0 1 0 1 0 Port B sebagai jalur input1 0 0 1 0 Port C sebagai jalur input0 0 1 0 0 Port A sebagai jalur output0 1 1 0 0 Port B sebagai jalur output1 0 1 0 0 Port C sebagai jalur output1 1 1 0 0 Kontrol wordx x x x 1 Keadaan 3 state1 1 0 1 0 Kondisi terlarangx x 1 1 0 Kedaan 3 state

Kontrol word adalah suatu register dalam 8255 yang harus diisikan untuk menentukan mode operasi bagi tiap port. Cara Pengisisiannya adalah dengan memberikan A1, A0 = 1 yang disertai dengan pemberian kontrol.Kontrol word :

Bit 7 : harus diisikan 1 untuk kontrol word Bit 6 : Bersama-sama dengan bit 5 menentukan mode bagi port ABit 5 : lihat bit 6

Bit 6 bit 5 mode port A

21

Page 12: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

0 0 mode 00 1 mode 11 x mode 2

Bit 4 : memilih port A sebagai input atau output jika 1 port A sbg input hanya berpengaruh bagi mode 0 dan 1 ( mode 1 disertai handshake)

Bit 3 : menentukan Port C atas (PC4 – PC7)sbg input jika 1 dan output jika 0 Bit 2 : sebagai pemilih mode bagi port B

Bit 2 mode port B0 mode 01 mode 1 port B tidak dapat berlaku sebagai mode 2

Bit 1 : memilih Port B sebagai input atau outputBit 0 : menentukan Port C bawah ( PC0 – PC3) sebagai input atau output

Jika mode 0 berlaku pada port A atau prt B maka port C berdiri sendiri juga sebagai mode 0, akan tetapi jika mode 1 berlaku pada port A atau port B maka port c sebagai handshake strobe input atau strobe output.Misalkan ingin diaktifkan port A sebagai output mode 0 dan port B input mode 0 dan port C sebagai input maka kontrol word nya bernilai 10001011 biner atau 8B heksadesimal. Untuk mengirimkan kontrol word ini ke 8255 dari mikrokontroler yaitu dengan menberikan A0 dan A1 = 1 dan CS = 0 ( misalkan dengan alamat 2003 ) maka perintahnya adalah

MOV A, #8BH ; masukkan data kontrol ke akumulatorMOV DPTR,#2003H ; definisikan alamat 2003H sebagai DPTRMOVX@DPTR, A ; masukkan data kontrol ke alamat yang ditunjuk DPTR

MENYALAKAN DAN MENGONTROL DISPLAY MELALUI PPI

Jika menggunakan PPI 8255 untuk mengontrol display memang lebih sulit akan tetapi sangat menghemat port dari mikrokontroler. Oleh karena itu hal ini perlu dicoba untuk dilakukan dengan merangkaikan perangkat tambahan. Programnya seperti dibawah ini.

Program

PORT_A Equ 2000HPORT_B Equ 2001HPORT_C Equ 2002HR_CONT Equ 2003H

22

Page 13: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

BAB VIKomunikasi Data Serial

Serial RS232

Salah satu hal yang terpenting dalam pengembangan kemampuan kita menggunakan mikrokontroller adalah komunikasi serial. Komunikasi serial antara mikrokontroller dan PC (Personal Computer) sangat sering dilakukan untuk akuisisi data. Misalkan untuk mengambil data untuk pengukuran sensor yang diatur mikrokontroller, maka untuk mengolah data tersebut biasanya akan lebih baik jika data tersebut dimasukan ke dalam komputer untuk diolah lebih lanjut seperti mendapatkan karakteristik sensor, dibentuk suatu grafik dan sebagainya. Untuk itu transfer data dari mikrokontroller menuju komputer perlu dilakukan.

Ada dua jenis komunikasi antar prosessor yaitu komunikasi parallel dan komunikasi serial. Dalam komunikasi antar prosessor, data yang dikirimkan berupa bit. Komunikasi parallel mengirimkan seluruh bit dalam satu data secara bersamaan. Kecepatan transfer dari komunikasi ini sangat tergantung dari kemampuan dua buah prosessor tersebut. Kelemahan dari komunikasi parallel adalah tidak dapat dipakai untuk transfer data jarak jauh. Hal ini dikarenakan sarana pendukung untuk komunikasi ini sangat banyak sehingga menjadi tidak efisien. Lain halnya dengan komunikasi serial untuk satu buah data berlebar 8 bit, pengiriman dilakukan secara satu bit satu bit. Komunikasi ini sangat baik untuk transfer data jarak jauh karena sedikit membutuhkan sarana pendukung. Akan tetapi, jenis komunikasi ini lebih rumit karena cukup banyak setting yang harus dilakukan pada kedua prosessor. Hal ini dapat dimengerti sebab komunikasi serial sangat sedikit membutuhkan perangkat keras tambahan sebagai pendukung sehingga perangkat lunak diperkuat peranannnya dalam mendukung komunikasi ini.

Beberapa hal yang harus dilakukan untuk mengeset dua prosessor yang akan berkomunikasi serial adalah :

1. JenisAda beberapa tipe komunikasi serial. Biasanya untuk prosessor digunakan register geser 8 bit dan UART (Universal Asyncronous Receiver Transmitter). Register geser 8 bit berasal dari prosessor yang selalu mengeluarkan data parallel pada port-portnya dan pada register-registernya. Dengan register geser ini, data parallel tersebut dikirimkan satu-persatu dari sebuah pin. Bedanya dengan UART, register geser tidak memakai aturan tambahan seperti adanya bit mulai, bit berhenti, dan paritas.

Untuk pembahasan berikutnya, komunikasi serial yang dipakai adalah UART. Tipe UART secara lengkap mempunyai satu buah bit mulai, 8 bit data, satu bit paritas dan dua bit berhenti. Akan tetapi hal tersebut dapat tidak dipakai semua seperti :a. Bit paritas

Bit ini dipakai untuk mengecek kevalid-an data. Terdapat dua jenis paritas yaitu paritas genap dan paritas ganjil. Dengan demikian apabila data yang dikirimkan tidak sesuai dengan paritas yang menyertainya maka data tersebut tidak valid. Bit paritas dapat digunakan dapat pula tidak.

b. Bit berhenti dapat sebuah sajac. Sebuah data dapat berlebar 7 bit

Data dengan lebar 8 bit dapat dikurangi menjadi 7 buah bit dengan bit 7 menjadi bit paritas.

2. Baud rate

23

Page 14: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Nama lain dari Baud Rate adalah kecepatan transfer data. Komunikasi dua prosessor harus saling bersesuaian satu sama lain dalam hal kecepatan mengirim dan menerima data, jika tidak sama maka gagal komunikasi tersebut.

Setting dalam mikrokontroller:

Mikrokontroller AT89S51/52/53/AT89S8252 mempunyai 4 macam mode operasi (mode 0 – mode 3) untuk serial komunikasi. Untuk memilih mode disediakan register bit SM0 dan SM1. Mode 0 adalah tipe register geser. Mode 1 merupakan 8 bit data UART dengan baudrate yang dapat diatur dengan register timer. Mode 2 yaitu 9 bit data UART dengan baudrate yang sudah pasti besarnya. Mode 3 adalah 9 bit data UART yang baudratenya dapat diatur dengan timer.Untuk pengaturannya melalui register SCON (Serial Control Register) yang tiap bitnya : Bit 7 : SM0 : pilih mode Bit 6 : SM1 : pilih mode Bit 5 : SM2 : untuk komunikasi multiprosessor dalam mode 2 dan 3. Bit 4 : REN : mengaktifkan mikrokontroller untuk menerima data. Bit 3 : TB8 : jika 1 maka bit ke 9 dari mode 2 dan 3 telah dikirim. Bit 2 : RB8 : jika 1 maka bit ke 9 dari mode 2 dan 3 telah diterima. Bit 1 : T1 : jika 1 berarti mikrokontroller sedang mengirim data. Bit 0 : R1 : jika 1 berarti ada kiriman data

Untuk latihan kali ini digunakan mode 1 yang relatif lebih mudah karena tanpa pengaturan paritas. Selain itu mode ini akan memberikan banyak pelajaran mengenai pengaturan baudrate yang diambil 1200 bit/detik oleh timer 1. Pengaturan baudrate menggunakan register timer berarti bergantung dari frekuensi kristal yang dipakai. Frekuensi kristal 12 MHz dalam hal ini lebih buruk dari kristal 11,059 M. Mode operasi timer untuk baudrate digunakan mode 2 karena secara otomatis mengulang terus pencacahan waktu. Register bendera timer, TF (Timer Flag), adalah penentu sebenarnya dari baudrate tersebut.

Baudrate = waktu register bendera Timer 1 berubah : 32 ( atau 16 bergantung SMOD) Baudrate frek.XTAL TH1 Mode2 Error 2400 12 M F3H 0,16% 1200 12 M E6H 0,16% 2400 11,059 M F4H 0 1200 11,059 M E8H 0

Setting pada komputer (PC) Banyak sekali register yang disediakan oleh PC untuk komunikasi serial akan tetapi yang kita perlukan hanya 3 buah register yaitu :1. Modem Control Register diisikan nol karena tidak memakai modem.2. Interupt Enable Register juga diisikan nol karena tidak menunggu interupsi modem.3. Serial Port Register berbeda dari dua register di atas yang berada pada RS-232, register ini

berada pada bios untuk pengaturan tipe serial, baudrate serta pengaktifan PORT COM yang ada di komputer. Pengaksesan register ini menggunakan interupsi ke bios dengan terlebih dahulu mengisikan register ah, al, dan dx.Register ah diiisi 0H untuk menandakan sedang menginisialisasiRegister dx diisi 00H bila memakai COM1, 01H untuk COM2Sedangkan al tiap bitnya :Bit 7 Bit 6 Bit 5 Baudrate1 0 0 12001 0 1 2400dst

Bit 4 Bit 3 Paritas0 0 tidak pakai paritas

24

Page 15: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

1 0 tidak pakai paritas0 1 paritas genap1 1 paritas ganjil

Bit 2 : jika 1 berarti menggunakan sebuah bit berhenti bila 0 memakai dua buah.

Bit 1 Bit 0 Sebuah data terdiri1 0 7 bit1 1 8 bit

Program untuk setting mikrokontroller :

;Subrutin inisialisasi untuk timer dan serial komunikasi

INIT:MOV SCON,#50;SERIAL PORT MODE 1MOV TMOD,#20 ;TIMER1, MODE2MOV TH1,#0FDH ;BAUDRATE 9600 BPS

;UNTUK XTAL 11.0592 MHzSETB TR1 ;START TIMER 1RET

;Subrutin untuk mengirim data serial

KIRIM:MOV SBUF,A ; data yang akan dikirm disimpan di AJNB TI,$CLR TIRET

;Subrutin untuk menerima data serial

TERIMA: JNB RI,$

CLR RI MOV A,SBUF RET

Hyper Terminal

Salah satu cara untuk melakukan komunikasi antara Perangkat keras diluar komputer secara serial yaitu dengan menggunakan perangkat lunak / software hyperterminal. Program ini biasa sudah terinstall secara automatis ketika kita melakukan instalasi window. Namun jika tidak terinstall di windows, dapat langsung menginstallnya dengan cara membuka control panel dan add remove programs kemudian pilih add remove windows component dan tambahkan di bagian communication detailnya dan pilih hyperterminal.

Komunikasi Serial Sinkron dengan ADS7822

Sebagai contoh periferal yang menggunakan komunikasi serial asinkron untuk transfer datanya adalah ADS 7822. ADS 7822 adalah ADC yang mempunyai ketelitian konversi 12 bit dan mempunyai frekuensi sampling 75 kHz. ADS7822 dapat bekerja dengan tegangan catu daya 2V-5 V, namun akan lebih baik digunakan dengan tegangan 2,7V-3,6V.

Metode konversi yang digunakan adalah metode SAR, dan berikut adalah gambar rangkaian dalam dari ADS7822.

25

Page 16: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

terdiri dari sebuah penguat differensial, DAC dan rangkaian SAR dan perangkat komunikasi serial.

Konfigurasi PIN

Fungsi PIN pada ADS7822VREF : Tegangan Referensi / tegangan maksimum pengukuran+In : Masukan tegangan positif-In : Masukan tegangan negatif (biasanya dihubungkan GND)DCLOCK : Masukan ClockDout : Masukan Data KeluaranCS/SHDN : Chip select atau Shutdown ADS7822

Untuk komunikasi serial asinkron selalu diperlukan tiga kondisi, yaitu START, Clock dan STOP. Untuk mengawali pembacaan data dari ADC ADS7822 dilakukan dengan membuat CS low, kemudian memberikan clock awal pada DCLOCK sebanyak 3 kali sampai muncul Null bit yaitu kondisi Low pertama kali pada Dout. Clock berikutnya pada DCLOCK akan memberikan nilai data hasil konversi oleh ADC sebanyak 12 bit pada Dout dimulai dengan bit terbesar (MSB). Pemberian clock setelah bit ke-12 akan memberikan nilai nol pada Dout.

Standar Komunikasi I2C (Inter IC)

Bus I2C dikembangkan pada awal 1980an oleh Phillips Semiconductors. Dengan tujuan utamanya adalah untuk mendapatkan hubungan yang mudah antara CPU dengan perangkat peripheral lain dalam rangkaian Televisi

26

Page 17: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Keping-keping IC dalam sebuah sistem embeded (mikrokontroller) biasanya diperlakukan sebagai alamat peta memory yang dihubungkan dengan banyak kabel paralel ditambah dengan dekoder alamat sehingga membutuhkan wiring PCB yang rumit dan memakan space PCB. Namun dengan berhasil dikembangkannya bus I2C ini permasalahan di atas dapat diatasi, yaitu menjadikan hubungan antar keping IC (pheriperal) menjadi lebih sederhana dan hanya memakan space PCB yang kecil, oleh karena itulah diberi nama Inter IC (disingkat I2C).Sekarang bus I2C telah menjadi standar industri dan banyak digunakan pada berbagai aplikasi yang membutuhkan space kecil dan menggunakan port yang sedikit, diantaranya seperti RTC PCF 8583 dari Intel, EEPROM AT24cxx dari Atmel dan banyak lagi yang lainnya.

Protokol I2C

Bus I2C terdiri dari dua kabel dan Ground, yaitu SDA (Serial data) dan SCL (Serial Clock) dan kedua-duanya bidirectional..

Setiap IC yang terhubung ke bus mempunyai alamat yang unik. Dan masing-masing dapat berfungsi sebagai pengirim dan penerima. Bus I2C adalah bus yang memungkinkan adanya multi master, artinya masing-masing IC dapat menjadi master yang mengendalikan clock dan menginisiasi komunikasi. Sehingga pada keadaan normal setiap IC berfungsi (standby) sebagai slave.

Protokol komunikasinya terdiri dari empat bagian penting, yaitu kondisi START, pengiriman alamat, proses jawaban (sinyal acknowledge) dan kondisi STOP.

Pertama-tama Master (biasanya sebuah mikrokontroller) memulai dengan memberikan sinyal START sebagai tanda kepada IC lainnya untuk bersiap-siap menerima data. Master kemudian akan mengirim data alamat yang menunjukkan slave mana yang akan dihubungi dan sekaligus dengan tanda operasi yaitu penulisan (Write) atau pembacaan (Read). Ketika slave-slave menerima data alamat ini, masing-masing akan membandingkan dengan alamatnya sendiri, dan jika alamatnya cocok IC slave akan memberikan jawaban (Acknowledge) . Setelah proses ini maka berikutnya data yang mengalir di bus adalah data yang berasal dari master ke slave tersebut (operasi Write) atau data yang berasal dari slave ke master (operasi read). Setelah data selesai dikirim Master akan mengirimkan sinyal STOP untuk mengakhiri komunikasi.

Kondisi StartUntuk setiap paket komunikasi di bus I2C selalu diawali dengan kondisi Start. Kondisi start berlaku sebagai tanda bagi semua piranti yang terhubung ke bus bahwa akan segera dikirim sesuatu ke bus, sehingga semua piranti akan bersiap-siap untuk menerima data.

Kondisi Stop

27

Slave-slave

Page 18: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Setelah paket data lengkap dikirim kondisi STOP. Sinyal ini memberi tanda bagi semua peralatan yang terhubung ke bus bahwa bus telah selesai digunakan, sehingga bus kembali dalam keadaan idle. Kondisi sinyal START dan STOP dapat dilihat pada gambar di bawah.

Waktu perubahan data:

EEPROM (AT24C512)

Salah satu contoh IC yang menggunakan standar komunikasi I2C adalah EEPROM AT24Cxx dimana xx menunjukkan jumlah memori dalam Kbit. EEPROM AT24C512 adalah EEPROM yang mempunyai kapasitas memori sebanyak 512 Kbit atau 64 Kbyte.

Definisi PIN

Serial Clock ( SCL )

Input SCL biasa nya untuk positive edge clock data ke masing masing EEPROM device dan negatif edge clock data keluar dari masing masing device

Serial Data (SDA)Merupakan pin bidirectional untuk serial data transfer. Pin merupakan open –drain driven dan dapat di wire - Ored dengan open drain device yang laen atau open colector device

Device Adresses ( A1, A0 )

Merupakan input alamat devices yang dapat dihubungkan atau tidak dihubungkan dengan other AT24Cxxx device. Jika dihubungkan maka 4 512K device dapat dialamati dalam 1 single bus. Jika pin dibiarkan floating, A1 dan A0 akan secara

28

START STOP

Data boleh berubah

Jalur data stabilData valid

Page 19: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

internal dipulled down ke ground, Bila kapasitif coupling pada circuit board Vcc < 3 pf. Jika coupling lebih > 3pf sebaiknya langsung dihubungkan ke ground.

Write Protect ( WP )Write Protect input, ketika dihubungkan dengan ground mengijinkan operasi normal. Ketika WP dihubungkan High pada Vcc, semua operasi penulisan ke memory dicegah.

Device Operation

Clock dan data transitions

SDA pin pada saat normallnya di pull high dengan device external. Data pada SDA pin hanya berubah ketika selama SCL low periode. Data yang berubah selama SCL High periods akan mengindikasikan kondisi start atau stop.

Kondisi START

Transisi dari high ke low dari SDA dengan SCL mengindikasikan kondisi start yang harus mendahului perintah lainnya ( berdasarkan pada start dan stop yang didefinisikan dalam timing diagram).

Kondisi STOP

Transisi dari Low ke high pada SDA dengan SCL high pada kondisi STOP. Setelah untaian baca, perintah stop akan menempatkan EEPROM pada keadaan stanby power ( berdasarkan pada start dan stop yang didefinisikan dalam timing diagram )

Acknowledge Semua alamat dan data words secera serial ditransmisikan ke dan dari EEPROM dalam 8 bit words. EEPROM mengerimkan null selama clock cyclle ke sembilan untuk memberitahu bahwa data telah meneriama masing – masing word.

Mode StandbyDapat diaktifkan dengan a. diatas power upb. setelah menerima stop bit dan menyelesaikan dari operasi internal

Memory ResetMemory dapat direset dengan

a. clock up to 9 cyclesb. SDA High pada setiap cycle selama SCL high dan kemudian buat kondisi START ketika SDA high.

Pengalamatan Device

EEPROM 512 memerlukan 8 bit address word yand mengikuti kondisi START untuk mengaktifkan chip untuk dapat membaca atau menulis ( liat ajah gambar 1 ). Device address word terdiri dari sebuah mandatory one, zero sequence untuk lima pertama MSB . hal ini sudah wajar untuk semua 2 Wire EEPROM device.

512K menggunakan 2 alamat bit A1,A0 untuk mengizinkan 4 device pada bus yang sama. Bit ini haru membandingkan ke hubungan kabel input pins. A1 dan A0 pins menggunakan internal proprietary circuit yang membiaskan mereka pada logic low ketika pins di izinkan untuk float.

Bit kedelapan dari device address merupakan bit yang melakukan pemilihan untuk melakukan read / write. Operasi membaca di inisiasi ketika bit ini high. Sedangkan untuk proses menulis inisialisasi low.

Upon a compare of the device address, the EEPROM will output a zero. If a compare is not made, the device will return to a standby state.

DATA SECURITY: The AT24C512 has a hardware data protection scheme that allows the user to write protect the whole memory when the WP pin is at VCC.

PAGE WRITE

512K EEPROM dapat menulis 128 page

29

Page 20: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

page write diinisialisasi dengan cara yang sama seperti menulis byte. Tetapi mikrokontroller tidak mengirimkan kondisi STOP setelah data word diclocked in. Sebagai gantinya, setelah EEPROM ack diterima dari data word yang pertama, mikrokontroller dapat mentransmisikan sampai 127 data words. EEPROM akan merespon dengan nol setelah semua data word diterima. Mikrokontroller harus menghentikan untaian write sequence dengan kondisi STOP ( Liat gambar 3)

data word address lower 7 bits secara internal bertambah setelah menerima setiap data word. Higger data word address tidak ditambahkan secara otomatis, ditahan memory pada row location. Ketika word addesse, secara internal, mencapai batasan pages, byte berikutnya akan ditempatkan pada awal page yang sama.

Acknowledge Polling

Ketika pertama internally time write cycle telah dimulai dan EEPROM input disable, ack polling dapat diinisialisasi. Hal ini mempengaruhi pengiriman kondisi start yang diikuti oleh device address word. Bit read/write merupakan representasi dari operasi yang diinginkan. Hanya jika secara internal write cycle telah diselesaikan EEPROM akan merespon null. Mengijinkan read atau write dilanjutkan.

30

Page 21: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

Operasi Membaca

Operasi membaca diinisialisai dengan cara yang sama dengan operasi write dengan pengecualian bahwa read / write select bit pada device address word di set ke satu. Ada tiga cara membaca : Membaca alamat sekarang, random address read and sequential read.

CURRENT ADDRESS READ: The internal data word address counter maintains the last address accessed during the last read or write operation, incremented by one. This address stays valid between operations as long as the chip power is maintained. The address “roll over” during read is from the last byte of the last memory page, to the first byte of the first page. Once the device address with the read/write select bit set to one is clocked in andacknowledged by the EEPROM, the current address data word is serially clocked out. The microcontroller does not respond with an input zero but does generate a following kondisi STOP (refer to Figure 4).

RANDOM READ: A random read requires a “dummy” byte write sequence to load in the data word address. Once the device address word and data word address are clocked in and acknowledged by the EEPROM, the microcontroller must generate another kondisi START. The microcontroller now initiates a current address read by sending a device address with the read/write select bit high. The EEPROM acknowledges the device address and serially clocks out the data word. The microcontroller does not respond with a zero but does generate a following kondisi STOP (refer to Figure 5).

SEQUENTIAL READ: Sequential reads are initiated by either a current address read or a random address read. After the microcontroller receives a data word, it responds with an acknowledge. As long as the EEPROM receives an acknowledge, it will continue to increment the data word address and serially clock out sequential data words. When the memory address limit is reached, the data word address will “roll over” and the sequential read will continue. The sequential read operation is terminated when the microcontroller does not respond with a zero but does generate a following kondisi STOP (refer to Figure 6).

Berikut adalah timing diagram untuk masing-masing operasi pembacaan dan penulisan.

Menulis 1 byte

Menulis 1 page

Standar RS485

Standar RS232 banyak digunakan salah satunya karena digunakan pada port komputer dan jarak kabel yang bisa digunakan cukup jauh > 10 m. Namun untuk jarak yang lebih jauh (di atas 50 m) RS232 tidak bisa digunakan lagi, sehingga diperlukan standar yang lain lagi dan salah satunya adalah standar RS485.

RS485 merupakan standar komunikasi serial yang banyak digunakan untuk penggunaan komunikasi serial dengan kabel yang memerlukan jarak jauh dan tahan terhadap noise. Jarak yang ditempuhnya dapat mencapai 1 Km asal digunakan kabel twist (kabel pilin) karena dapat menghilangkan noise dan medan magnet yang mungkin ditimbulkan oleh arus yang mengalir pada kabel. Salah satu

31

Page 22: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

keunggulan RS485 lainnya adalah jumlah IC RS485 yang terhubung ke jaringan bisa banyak dan masing-masing dapat saling mengirim dan menerima data.

Konfigurasi PIN IC MAX485

Keterangan PIN

RO (Receiver Output) : Jika A>B sekitar 200mV, RO akan high, dan akan low jika A<B sekitar 200mV.RE (Receiver Output Enable) : RO akan berfungsi jika RE low, dan berada pada impedansi tinggi jika RE high.DE (Driver Output Enable) : DI akan berfungsi jika DE high dan impedansi tinggi jika DE lowDI (Driver Input) : Jika DI low maka Output A akan low dan B high sebaliknya jika DI high maka Output A akan high dan B low.A : Input Noninverting dan Driver Output Non InvertingB : Input Inverting dan Driver Output Inverting

Perkabelan RS485 dapat langsung menggantikan RS232 sehingga software yang digunakan adalah sama. Untuk mencoba menggunakan RS485, gunakan program komunikasi serial antar mikrokontroller yang sebelumnya menggunakan RS232.

Jaringan Komunikasi (Network Communication)

Salah satu keunggulan lain dari standar Komunikasi RS485 adalah Network Communication. Kita dapat menghubungkan sejumlah Port RS485 secara langsung dan masing-masing port dapat berlaku sebagai input atau output. Setiap data yang dikirim oleh salah satu port akan diterima oleh setiap port yang terhubung ke jaringan. Ini sangat bermanfaat ketika kita menggunakan jaringaan yang terdiri dari beberapa alat yang harus dikontrol di tempat yang berjauhan.

32

Page 23: DIKTAT MIKROKONTROLER SISKOM MCS-51(1).doc

DAFTAR PUSTAKA

1. MacKenzie, I.Scott. The 8051 Microcontroller 2nd . Prentice Hall, Inc. Englewood Cliffs, New Jerseyc : 1992

2. Douglas, V.H. Micoprocessor and Interfacing. 2nd . McGraw-Hill, Singapore : 1992

3. Khairurrijal, Departemen Fisika ITB. Diktat Teori dan Praktek Mikrokontroller MCS-51. Bandung 2004.

4. Putra, A. Eko. Belajar Mikrokontroller AT89C51/52/53 . Penerbit Gava Media. Yogyakarta : 2002

5. Pancayogo, Nugroho. Pelatihan Mikrokontroller 8031 untuk Pemula. Laboratorium Elektronika dan Instrumentasi Fisika ITB . Bandung : 2000

6. Munir, M. Miftahul. Perancangan dan Implementasi Telemetri Multi Stasiun Multi Sensor Menggunakan Dua Frekuensi Pembawa. Laporan Tugas Akhir. Fisika ITB. 2003

7. h ttp://www.esacademy.com

33