TUGAS AKHIR (Resume)
Perancangan
MODUL ALTERNATIF SISTEM MANAJEMEN SENSOR BERBASIS MIKROKONTROLER AT89S52 DAN KOMUNIKASI SERIAL RS232
SEBAGAI KANALNYA
Untuk Memenuhi Sebagai Prasyarat Mencapai derajat Sarjana S1 Program Studi
Teknik Elektro
disusun oleh : PANDU JOKO SUSILO
03010004
JURUSAN TEKNIK ELEKTRO
SEKOLAH TINGGI TEKNOLOGI ADISUTJIPTO YOGYAKARTA
INTISARI
PANDU JOKO SUSILO, Jurusan Elektro Fakultas Teknik Sekolah Tinggi
Teknologi Adisutjipto, Januari 2009, Modul Alternatif Sistem Manajemen
Sensor Berbasis Mikrokontroler AT89S52 dan Komunikasi Serial RS232 Sebagai Kanalnya.
Dosen Pembimbing : Freddy Kurniawan, S.T., M.T. dan Drs. Agus Basukesti,
M.T.
Pada tugas akhir ini memanfaatkan mikrokontroler sebagai sarana sistem keamanan terprogram yang multifungsi. Mikrokontroler ini diharapkan dapat menerima data dari berbagai sensor-sensor kemudian dikirimkan ke rangkaian mikrokontroler penerima melalui komunikasi serial RS-232 dengan bantuan IC MAX232 dan ditampilkan ke LCD. Kinerja penerima tidak hanya menerima data kemudian ditampilkan pada LCD, melainkan penerima juga dapat mengolah gerbang logika dan sistem pendeteksian kanal data antara penerima dan pengirim jika terputus.
Karakteristik sensor-sensor dan pemasangannya dalam bentuk nyata sangat bervariasi sehingga dalam tugas akhir ini hanya dilakukan menggunakan suatu program simulasi sensor yang telah diubah formatnya ke bentuk .exe dengan tujuan memperkecil ruang alat dan menjadikan rangkaian sistem keamanan ini tidak terfokus pada satu jenis sensor tetapi jenis sensor lain juga dapat diaplikasikan (universal).
Adapun spesifikasi komputer dalam menjalankan program sense.exe ini adalah: 1. Operasi Sistem 32bit/x86 dari microsoft (windows 98, 98SE, ME,
2000, NT, XP, VISTA, dll). 2. RAM minimal 64MB. 3. VGA minimal 4MB.
4. Port LPT dengan pengaturan standar dari bios (SPP). 5. Kabel perpanjangan LPT (tambahan).
6. Monitor, mouse dan keyboard.
Data dari LPT diterima oleh mikrokontroler diubah mejadi komunikasi serial dan dikirim menggunakan komunikasi serial kemudian diterima oleh rangkaian mikrokontroler penerima. Agar komunikasi serial dapat berlangsung dengan jarak yang jauh maka diperlukan adanya peubah serial menjadi serial RS232 dengan bantuan IC tertentu. Pada rangkaian mirokontroler bagian penerima terdapat program untuk mengolah logika terprogram yang dapat diatur dan disesuaikan dengan rancangan peletakan dan jenis sensor yang dikehendaki. Adapun tujuan lainnya adalah untuk mengatasi banyaknya jenis sensor di kehidupan nyata.
BAB 1
TINJAUAN PUSTAKA 1.1 Mikrokontroler
Pada prinsipnya mikrokontroler hampir sama seperti komputer, hanya saja terjadi perbedaan dalam bentuk dan penggunaan pada memori baik RAM (Random Access Memory) dan ROM (Read Only Memory).
1.2 Komunikasi Serial
Pada prinsipnya, komunikasi serial ialah komunikasi dimana pengiriman data dilakukan per bit, sehingga lebih lambat dibandingkan komunikasi paralel seperti pada port printer yang mampu mengirim 8 bit sekaligus dalam sekali detak.
Dalam perancangan ini membutuhkan IC konverter level tegangan karena sistem penghubung sensor dan inti alat harus jauh. IC MAX232 dipilih dalam perancangan ini karena IC MAX232 umum dipakai dalam komunikasi serial.
Untuk menanggulangi gagalnya logika dalam tegangan karena transmisi yang jauh, rangkaian perlu ditambahakan IC MAX232 maka dua buah komputer/ mikrokontroler ini sudah bisa berkomunikasi secara serial dengan sebuah kabel pairs isi 2. IC ini akan mengkonversi tegangan 0 s/d (+)5 VDC menjadi (-)7 VDC s/d (+)6 VDC (tergantung supply yang digunakan oleh IC MAX232, jika supply 5V maka akan dikonversi menjadi (+)6 VDC max).
Baud rate adalah kecepatan transmisi data serial, berupa banyaknya
transisi logika pada saluran data serial setiap detik. Semakin besar nilai baud rate, maka semakin cepat proses pengiriman/ penerimaan data serial.
(
256 TH1)
32 12 fosc baudrate × − × = dengan :fosc : frekuensi x-tal yang digunakan.
baud rate : kecepatan transfer data yang akan dikehendaki
TH1 : pewaktu sebagai pengatur baudrate mikrokontroler
BAB II
PERANCANGAN DAN PRINSIP KERJA ALAT
2.1 Alat dan bahan
Adapun perangkat hardware yang digunakan adalah:
a. Papan rancang/ project board.
b. Rangkaian catudaya
c. Rangkaian sensor.
d. Rangkaian mikrokontroler.
e. Rangkaian Keypad/ sistem saklar
f. Rangkaian penampil/ display (LCD)
g. Downloader
h. Lain-lain
Alat dan bahan lainya adalah kabel data 8 jalur, kabel tunggal (kawat), tang kupas kabel + tang potong, jepit buaya, black hosting, hosting line (1 baris) , pinset dan komponen pendukung lainnya seperti kapasitor, resistor, LED, dll.
2.2 Rangkaian Pengirim
Rangkaian pengirim merupakan rangkaian untuk mengirim data/status dari sensor-sensor ke perangkat penerima dengan menggunakan antarmuka RS-232 sebagai kanalnya. Mikrokontroler MAX232 Ke penerima Simulasi sensor menggunakan komputer Rangkaian pengirim Port LPT/ DB 25
M u l a i I n i s i a l i s a s i E S , T I , T R N y a l a k a n L E D s t a t u s k a n a l A m b i l d a t a s e n s o r , j u m l a h k a n d e n g a n d a t a 1 0 0 0 0 0 0 0 M a t i k a n s e m u a i n i s i a l i s a s i T u n g g u s e l a m a 1 5 0 m S P i n d a h d a t a k e S B U F l a l u k i r i m I n i s i a l i s a s i E S , T I , T R M a t i k a n L E D s t a t u s k a n a l A m b i l d a t a s e n s o r M a t i k a n s e m u a i n i s i a l i s a s i T u n g g u s e l a m a 1 5 0 m S P i n d a h d a t a k e S B U F l a l u k i r i m
Gambar 2.2 Diagram alir program pada mikrokontroler pengirim.
2.3 Rangkaian Penerima
Rangkaian penerima bekerja menerima data dari serial untuk diolah dan diubah menjadi data pararel yang kemudian ditampilkan ke LCD jika data paralel tidak sama dengan 1000 0000 dan 0000 0000 atau memenuhi input logika and yang diberikan maka buzzer akan berbunyi. Data dari rangkaian pengirim (dalam bentuk serial RS232) diterima oleh IC MAX232 untuk dirubah menjadi serial mikrokontroler dan setelah itu data dilanjutkan ke mikrokontroler untuk dirubah menjadi data pararel. Jika kanal data antara pengirim dan penerima terputus/ gagal maka rangkaian penerima akan memberitahukan adanya ganguan atau status koneksi gagal dalam bentuk text (pada LCD) dan isyarat LED. Proses ini terjadi dikarenakan rangkaian penerima tidak menerima data 1 dan 0 (pada bit ke-7) selama ±37,5 mS. Tingkat kesulitan dalam membuat rangkaian penerima ini adalah masalah waktu. Jika waktu yang diterima terlalu cepat, tingkat keakuratan data berkurang, dan jika terlalu lambat rangkaian penerima akan memberikan isyarat kanal terputus. Mengingat penulisan karakter ke LCD juga memerlukan waktu yang cukup lama dengan acuan data penerimaan serial.
Mulai
Inisialisasi serial dan LCD
Status kanal terhubung
Tampilkan di LCD “Kanal tidak terhubung” Tampilkan di LCD “Kanal terhubung baik” Tampilkan ke LCD Menu YA TIDAK Menerima data serial Subrutin Menu Subrutin logika Subrutin standby Saklar logika ditekan Hal 36 Hal 35 Saklar standby ditekan Ya Tidak Ya Tidak
Gambar 2.3Diagram alir program penerima sampai menu.
BAB III
HASIL DAN PEMBAHASAN 3.1 Rangkaian Pengirim
Proses pengiriman data sensor terjadi setiap 150 mS, jadi dalam 1 detik terjadi proses pengiriman data sebanyak 6 kali kirim (data bit 0 – 7 nya). Maksud dari proses pengiriman terjadi setiap 150 mS adalah waktu tundaannya.
Sistem ini dapat juga dikatakan plug and play (langsung dapat digunakan) karena rangkaian penerima hanya membaca adanya detak serial yang sudah pasti disetiap detak berisi bit-bit data terutama untuk bit 0 – 6 yang merupakan data sensor dan bit 7 merupakan isyarat kanal pengiriman tanpa harus menambah program tambahan serial untuk inisialnya pada bagian penerima dan juga pada saat penyalaan alat tidak diharuskan menyala bersama. Semakin sedikit program khususnya pada inisial serial, semakin mengurangi tingkat kesalahan pembacaan (error) pada bagian penerimanya.
Program dimulai pada alamat 00H, 23H sebagai alamat intrupsi serial, dan 30H sebagai alamat program utama dan beberapa konstanta. Adapun contoh potongan penulisan program awal dan konstanta adalah sebagai berikut:
delay equ r4 var1 equ r2 led_indic bit p3.7
; Interrupt penerimaan alamat dimulai pada 00H
ORG 00H
SJMP PISO ; Loncat ke program utama ( piso )
ORG 23H ; Alamat serial interrupt
ORG 30H
Untuk program utama terdiri dari Inisialisasi serial, interupsi pengiriman, dan proses pengiriman. Program lainnya adalah sebagai penunda waktu/ tundaan.
3.2 Rangkaian Penerima
Rangkaian penerima bekerja menerima data serial dari rangkaian pengirim yang telah diubah menjadi pararel dan ditampilkan ke led pada port 1 mikrokontroler. Led status sensor pada rangkaian penerima akan menyala jika sensor aktif (sensor berlogika 1), hal ini dikarenakan adanya pembalik/
complement pada program bagian pengirim dan yang dikirim ke serial adalah aktif
rendah/ logika 0. Sedangkan untuk proses logika pada program penerima harus di
complement lagi sehingga sama dengan setatus sensor seperti pada no 5.
Mengingat komputer aktif tinggi (logika 1) sedangkan mikrokontroler aktif rendah (logika 0). Pengirim Penerima Serial (RS232) Sensor simulasi 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 2 3 4 5
Gambar 3.1 Proses jalannya data dari pengirim ke penerima.
Penerimaan data akan berjalan dengan baik jika kanal antara rangkaian pengirim dan rangkaian penerima tidak ada gangguan. Adapun potongan program penerimaan dari serial menjadi pararel adalah sebagai berikut:
CLR A ; reset a ( a = 00000000b )
MOV A, SBUF ; pindah data dari serial buffer ( sbuf ) ke akumulator
MOV p1, A ; isi data dari akumulator ke P1
CPL A ; complement ( not kan) isi akumulator
MOV0f0h, A ; isi data dari akumulator ke alamat 0f0h ( register b)
Data dari serial dipindah ke A menggunakan register SBUF. Kemudian ditampilkan pada port 1 yang telah terpasang rangkaian LED, setelah itu isi data A ke register B (sebelumnya A di comlement kan terlebih dahulu karena untuk menyamakan logika sensor). Adapun fungsi lain dari register B itu sendiri digunakan untuk menyimpan data sensor yang bersifat sementara ketika A sedang digunakan untuk menyimpan data-data subrutin program lainnya. Jika terjadi gangguan/ kanal tidak terhubung maka LED akan menyala diikuti tampilan animasi “status koneksi gagal” dan LED status kanal tidak berkedip.
Adapun potongan program untuk mendeteksi kanal adalah sebagai berikut:
mkondisi: mov delay,#250
mdelayms: mov var1,#245
md : jb RI,m_oke ; Jika R1 = set maka lanjutkan subrutin m_oke djnz var1, md ; kurangi dan tempatkan data di var1dengan 1, belum 0 ulangi.
djnz delay, mdelayms ; bila sudah 0 kurangi dn tempatkan data di delay, belum 0 lompat ke delayms
mov dptr,# confail1 ; tampilkan pada baris 1 status koneksi : acall baris1
mtxtnoti: mov dptr,# confail2 ; tampilkan pada baris 2 xxx gagal xxx acall baris2
mov delay,#250
md_ems: mov var1,#245
mmd: jb RI,kemenu ; Jika R1 = set maka lanjutkan subrutin m_oke djnz var1, mmd ; kurangi dan tempatkan data di var1 dengan 1, belum 0 ulangi
djnz delay, md_ems
mov dptr,# confail21 ; tampilkan ke lcd pada baris 2 "xxx gagal xxx" acall baris2
mov dptr,# confail22 ; tampilkan ke lcd pada baris 2 "xxx gagal xxx" acall baris2
mov dptr,# confail23 ; tampilkan ke lcd pada baris 2 "xxx gagal xxx" acall baris2
mov dptr,# confail24 ; tampilkan ke lcd pada baris 2 "xxx gagal xxx" acall baris2
sjmp mtxtnoti ; ulangi ke subrutis mtxtnoti
Adapun contoh proses scan logika jika logika yang diinginkan sudah di masukkan adalah sebagai berikut:
logika yang dimasukkan Æ logika 1: 0 and 1; logika 5: 1 and 3;
logika 2: 3 and 5; logika 6: 2 and 6;
logika 3: 0 and 6; logika 7: 3 and 4;
logika 4: 5 and 6; logika 8: 4 and 6;
Dari data diatas didapat sistem akan mendeteksi adanya sensor set logika pada bit 0 dan 1 logika ke-1, yang kemudian ditampilkan pada LCD. Setelah ditampilkan pada LCD dilanjutkan scan ke alamat 21H (logika ke1) sampai logika terakhir, setelah itu mengulang dari awal lagi (20H).
L o g i k a 1 L o g i k a 2 L o g i k a 3 L o g i k a 4 L o g i k a 5 L o g i k a 7 L o g i k a 8 L o g i k a 6 0 0 1 0 0 0 1 1 R e g i s t e r B 0 0 1 0 0 0 1 1 R e g i s t e r A S B U F * M e m o r i p a d a a l a m a t 2 0 H – 2 7 H s e b a g a i m e d i a s i m p a n l o g i k a 2 1 H 2 0 H 2 6 H 2 2 H 2 3 H 2 4 H 2 5 H 2 7 H P e m b a n d i n g r e g i s t e r b d a n m e m o r i l o g i k a R S 2 3 2 M E N U ( i n p u t l o g i k a ) 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0
Pembanding register B dan memori logika dapat dikatakan sebagai subrutin program scan logika, karena dalam sistem kerjanya sendiri subrutin ini berfungsi untuk pembanding antara memori simpanan logika dan register B.
BAB IV PENUTUP 4.1. Kesimpulan
Berdasarkan dari analisa yang dilakukan maka ditemukannya suatu kesimpulan. Adapun kesimpulannya adalah sebagai berikut:
1. Agar kanal pengiriman antara penerima dan pengirim dapat berlangsung jauh, maka diperlukan rangkaian untuk mengubah serial mikrokontroler menjadi serial RS232.
2. Modul ini berisi suatu program operasi logika AND, yang berfungsi untuk memadukan fungsi dari sensor yang akan dikehendaki.
3. Sistem ini menggunakan simulasi sensor dari komputer, yang bertujuan untuk memperkecil ruang rangkaian pengirim dan bersifat multifungsi.
4.2. Saran
Berdasarkan dari percobaan-percobaan yang dilakukan, untuk lebih amannya dapat menggunakan soket ZIF pada IC Mikrokontroler sebab jika tidak akan memakan waktu lama untuk memindah IC dari rangkaian ke downloader, dan dapat juga menyebabkan pin IC sendiri rusak/patah hanya untuk diprogram ulang.
Untuk IC Mikrokontroler disarankan menggunakan ic berjenis industri dan berlabel putih, sebab dari berbagai percobaan yang telah dilakukan ic jenis ini mempunyai tingkat keakuratan dan respon yang baik.
Tidak ada buatan manusia yang sempurna, sama halnya dengan perancangan disini, penulis juga mengharapkan beberapa masukan dan saran
sehingga kelak tidak akan ada kekurangan yang sama. Silakan kunjungi di http://udnap.tripod.com untuk saran dan opininya.
DAFTAR PUSTAKA
Anonim, RS 232 Interface with MAX 232, online:www.qsl.net/sv1bsx/max232
diakses pada 2 Januari 2009.
AriSty (Politeknik UI Community), Interfacing/Membuat Antar Muka AT89C51
dengan Max232 dan ADC0809, online: http://PoliteknikUi.Co.Cc. diakses
pada: 2 Januari 2009.
Budiharto Widodo, Interfacing Komputer dan Mikrokontroler, PT. Elex Media Komputindo, Jakarta, 2005.
Budiharto Widodo & Rizal Gamayel, 12 Proyek Mikrokontroler untuk Pemula, PT. Elex Media Komputindo, Jakarta, 2007.
Ibrahim Kamal, FORUM, online: http://www.ikalogic.com, diakses pada: 4juni 2008.
Nino Guevara Ruwano, Berkarya dengan Mikrokontroler AT89C2051, PT. Elex media Komputindo, Jakarta, 2006.
Paulus Andi Malwan, Panduan Praktis Teknik Antarmuka dan Pemrograman
Mikrokontroler AT89C51, PT. Elex Media Komputindo, Jakarta, 2003.
Prasetya Retna & Widodo Catur Edi, Teori dan Praktek Interfacing Port Pararel
dan Port Serial Komputer dengan Visual Basic 6.0, penerbit Andi,
Yogyakarta, 2004.
Setiawan Rachmad, Mikrokontroler MCS-51, Graha Ilmu, Yogyakarta, 2006. Wahyudin Didin, Belajar Mudah Mikrokontroler AT89S52 dengan Bahasa BASIC