MOBIL BERBASIS MIKRO KONTROLER
Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Teknik Mesin Jenjang Strata Satu (S1)
Disusun oleh
BAMBANG MUJIHARTO 01301 – 017
PROGRAM STUDI TEKNIK MESIN
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS MERCU BUANA
JAKARTA
JAKARTA 2008
LEMBAR PERNYATAAN
Saya yang bertandatangan dibawah ini :
Nama : BAMBANG MUJIHARTO
Nim : 01301 – 017
Falkutas : Teknologi Industri Jurusan : Teknik Mesin
Menyatakan dengan sungguh-sungguh bahwa Tugas Akhir yang saya buat ini merupakan hasil karya saya dan tidak menjiplak dari karya orang lain, kecuali kutipan-kutipan referensi yang telah disebutkan sumbernya.
Jakarta, Agustus 2008
BAMBANG MUJIHARTO Penulis
2008
LEMBAR PENGESAHAN
TUGAS AKHIR
PEMPROGRAMAN SISTEM ROTASI GARASI
MOBIL BERBASIS MIKRO KONTROLER
Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Teknik Mesin Strata Satu (S1) Fakultas Teknologi Industri Program Studi Teknik Mesin
Universitas MercuBuana
Tugas ini telah diperiksa dan disetujui oleh :
Jakarta, Agustus 2008
Dosen Pembimbing 1 Dosen Pembimbing 2
JAKARTA 2008
LEMBAR PENGESAHAN
TUGAS AKHIR
PEMPROGRAMAN SISTEM ROTASI GARASI
MOBIL BERBASIS MIKRO KONTROLER
Diajukan Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Teknik Mesin Strata Satu (S1) Fakultas Teknologi Industri Program Studi Teknik Mesin
Universitas MercuBuana
Tugas ini telah diperiksa dan disetujui oleh :
Jakarta, Agustus 2008
Kordinator Tugas Akhir
Thesis ini diberi judul ``Pemprograman Sistem Rotasi Garasi Mobil Berbasis Mikro Kontroler `` dimana pada analisa ini, penulis melakukan eksperimentasi dengan merancang sekaligus membuat alat rancangan yang akan dijadikan sebagai suatu solusi alternatif dalam pengembangan teknologi modern yang merupakan penjajakan awal dalam pembuatan rancang bangun alat uji garasi mobil sistem rotasi dengan menggunakan mikro kontruksi. Pada umumnya pembuatan Alat Uji garasi mobil dibuat beraneka ragam dari bentuk sederhana sampai bentuk yang modern, ada yang secara manual maupun otomatis.
Perancangan alat Uji garasi mobil ini dilakukan untuk mendapatkan keuntungan serta kekurangan dari alat uji garasi mobil, maka dari itu perlu dilakukan perencanaan dan mengetahui komponen-komponen utama maupun komponen-komponen pendukung yang meliputi; Dinamo (motor), Sensor, mikro, LCD, keypad, dan relly
program utama yang mengatur kerja system secara keseluruhan yang meliputi, program proses kode, program kondisi awal, program baca keypad, program buka dan program tutup pintu, program putar mobil, program angkat turun mobil, program dorong masuk dan kelur mobil, serta program inisialisasi.
Dinamo (motor) yang digunakan mempunyai daya 46Watt, tegangan listrik pada dinamo 12 Volt, ketika mesin dihidupkan akan terjadi putaran yang dihasilkan oleh dinamo, dinamo (motor) mempunyai kebutuhan listrik pada masing-masing motor adalah 0,479 A.
Universitas Mercu Buana iv Bambang Mujiharto
KATA PENGANTAR
Dengan segala kerendahan hati, penulis memanjatkan puji dan syukur kehadirat Allah SWT, karena berkat rahmat dan karunia-Nya penulis dapat menyelesaikan penyusunan Tugas Akhir ini dengan judul `` Pemprograman
Sistem Rotasi Garasi Mobil Berbasis Mikro Kontroler “
Untuk itu perkenalkan penulis mengucapkan terimakasih yang sebesar-besarnya kepada: Allah SWT dan Rosulnya, penulis tidak dapat menyelesaikan Tugas Akhir ini tanpa adanya petunjuk, pengarah, serta pembimbing dari berbagai pihak yang telah ikut membantu dalam menyusun laporan Tugas Akhir ini. Pada kesempatan ini penulis ingin menyampaikan ucapan terima kasih kepada pihak-pihak yang telah membantu dalam menyelesaikan Tugas Akhir ini khususnya kepada :
1. Ibunda tercinta, serta keluarga yang selalu memberikan dukungan moral maupun material.
2. Bapak Ir. Rulli Nutranta M.Eng selaku pembimbing utama yang telah meluangkan waktunya untuk memberikan bimbingan kepada penulis.
3. Bapak Nanang Ruhyat. ST.MT sebagai Pembimbing kedua dan selaku kordinator Tugas Akhir pada Program Studi Teknik Mesin.
4. Para pemimpin, Dosen-dosen, dan karyawan Fakultas Teknologi Industri 5. Syarif Hidayat Ramdhani Selaku tim dalam pembuatan alat beserta
Universitas Mercu Buana v Bambang Mujiharto
6. Jajat Sudrajat. ST, Ucok Galilea Purba,Joko Triwindarto,yang telah mendukung serta memberikan semangat dalam menyelesaikan Tugas Akhir ini.
7. Rekan-rekan mahasiswa Teknik Mesin, Khususnya angkatan 2001
Akhirnya hanya kepada Allah SWT jualah penulis panjatkan do`a semoga bantuan dan jasa yang telah diberikan mendapatkan balasan yang setimpal dari Allah SWT. Penulis menyadari bahwa masih banyak kekurangan yang ada pada laporan penulisan ini, oleh karena itu penulis mengharapkan masukan-masukan yang positif untuk kesempurnaan penulisan ini.
Akhir kata, penulis mengharapkan agar laporan ini dapat berguna dan bermanfaat bagi penulis, dan bagi siapa saja yang memerlukannya.
Jakarta, Agustus 2008
Penulis
DAFTAR ISI
LEMBAR PERNYATAAN ………..………... i
LEMBAR PENGESAHAN ………..……... ii
KATA PENGANTAR ……….. iv
ABSTRAK ……….. vi
DAFTAR ISI ……….. vii
BAB I PENDAHULUAN 1.1 Latar Belakang ………. 1
1.2 Tujuan Penulisan ………. 2
1.3 Pembatasan Masalah ……….. 3
1.4 Metode Penelitian dan Pengumpulan Data ……… 3
1.5 Sistem Matika Penulisan ……….. 4
BAB II TEORI DASAR 2.1 Mikrokontroler AT 89S51 ……… 6
2.2 Fungsi – Fungsi khusus Dalam Mikrokontrole ……. 20
2.3 Regulator Tegangan 7805 ……… 28
BAB III SISTEM SOFTWARE PADA MIKRO KONTROLER 3.1 Blok Diagram Dan Cara Kerja ……… 30
3.2 Rangkaian Mikrokontroler AT 89S51 ………. 32
3.3 Modul Keypad ………..., 35
RANCANGAN GARASI MOBIL DENGAN MENGGUNAKAN PROGRAM SOFTWARE
4.1 Program Utama ………. 38
4.2 Program Proses Kode ………. 41
4.3 Program Kondisi Awal ………. 43
4.4 Program Baca Keypad ………. 46
4.5 Program Putar Garasi ……….... 49
4.6 Program Buka Pintu ……….. 51
4.7 Program Tutup Pintu ……….. 52
4.8 Program Putar Mobil ……….. 54
4.9 Program Angkat Mobil ………. 56
4.10 Program Turun Mobil ………. 57
4.11 Program Dorong Masuk ………... 58
4.12 Program Dorong Keluar ………. 59
4.13 Program Inisialisasi ……….. 60 BAB V PENUTUP 5.1 Kesimpulan ... 61 5.2 Saran ………. 62 DAFTAR PUSTAKA LAMPIRAN
BAB I
PENDAHULUAN
1.1 Latar Belakang
Seiring perkembangan zaman saat ini, kemajuan teknologi berkembang sangat signifikan. Bahkan dalam hal ini dapat memudahkan dan menggantikan peranan manusia.
Perkembangan dan kemajuan teknologi transportasi juga mengalami kemajuan. Sekarang ini sudah banyak yang memiliki kendaraan, dan jumlah kendaraan yang terus ber tambah dapat menimbulkan masalah baru di masa depan yaitu lahan parkir. Dengan ini perlu adanya tempat untuk meminimaliskan lahan parkir kendaraan mobil tersebut.
PEMPROGRAMAN SISTEM ROTASI GARASI MOBIL BERBASIS MIKRO KONTROLER akan memasukkan dan mengeluarkan mobil sebanyak 4 buah. Mobil tersebut akan disimpan pada garasi yang dapat diputar posisinya dan memiliki 3 tingkat sistem garasi. Sistem penomoran yang digunakan adalah tingkat 1 nomor1 sampai 4. Penomoran ini untuk memasukan dan mengelurkan mobilnya dari garasi tersebut. Ini
orang tertentu saja yang dapat parkir).
Sistem garasi ini bekerja diatur oleh sebuah mikrokontroler AT89S51, sistem dilengkapi juga dengan sensor isi (IR) untuk mengecek isi dari garasi, sensor posisi putaran, dan dilengkapi dengan keypad untuk memasukan nomor garasi. nomor yang dimasukan akan ditampilkan pada display.
1.2 Tujuan Penulisan
Adapun tujuan penulisan tugas akhir ini adalah untuk mengaplikasikan ilmu pengetahuan yang didapat selama perkuliahan ke dalam bentuk nyata yaitu perancangan pembuatan suatu alat.
Disamping itu dengan membuat perancangan suatu alat, mahasiswa dituntut untuk dapat menyelesaikan suatu pokok permasalahan secara ilmiah dan dapat mempertanggung jawabkan hasil dari suatu pemikiran. Selain itu penulisan tugas akhir ini bertujuan untuk memenuhi persyaratan kelulusan Jenjang Studi Strata Satu (S-1) Jurusan Teknik Mesin Fakultas Teknologi Industri Universitas Mercu Buana
1.3. Batasan Masalah
Untuk memfokuskan permasalahan dan menghindari salah pengertian tentang perancangan alat, maka dalam hal ini penulisan membatasi perancangan “ Pemprograman sistem rotasi garasi mobil
berbasis mikro kontroler” dengan masukan data pada memori di lihat dari
segi :
Mikrokontroler digunakan sebagai pengendali dan pengontrol utama dari sistem yang dirancang.
Sensor infrared digunakan sebagai pendeteksi posisi garasi mobil. Display digunakan untuk menampilkan kode yang kita masukan, yang sudah ditentukan sebelumnya.
Kecepatan alat ini kurang dikarenakan agar bias presisi. Keseimbangan garasi kurang begitu seimbang.
1.4. Metode Penelitian dan Pengumpulan Data
Metode-metode yang penulis lakukan untuk dapat menunjang dalam penulisan skripsi ini adalah sebagai berikut :
Riset Kepustakaan
Metode menjadikan buku, literatur dan bahan lainya sebagai objek penunjang dalam perancangan alat. Dari buku, literatur dan bahan bacaan didapatkan teori yang berhubungan dengan masalah yang diteliti.
Riset Laboratorium
Metode penelitian ini digunakan untuk membuktikan teori-teori yang telah ditentukan dan melakukan percobaan dalam perancangan sistem.
Eksperiment
Yaitu realisasi dan uji coba yang langsung diterapkan terhadap rancangan sistem alat yang dibuat.
Dengan mengadakan diskusi dengan beberapa pihak baik itu dari dosen pembimbing, dosen lain, serta teman-teman mahasiswa untuk mencari solusi dari sistem alat yang dibuat.
1.5. Sistemmatika Penulisan
Guna memudahkan pemahaman dari penulisan tugas akhir ini, maka penulis membagi pembahasan dalam lima ( 5 ) sub pokok bahasan, sebagai berikut :
BAB I PENDAHULUAN
Bab ini membahas tentang latar belakang permasalahan, tujuan penulisan, pembatasan masalah, metoda penulisan dan sistematika penulisan.
BAB II DASAR-DASAR TEORI
Bab ini membahas teori penunjang hal-hal yang berkaitan dengan sistem rotasi berbasis mikrokontroler pada program software.
BAB III SISTEM SOFTWARE PADA MIKRO KONTROLER
Bab ini membahas mengenai cara kerja sistem software pada mikrokontoreler baik satu persatu maupun cara kerja sistem secara keseluruhan.
BAB IV SISTEM PROGRAM MIKRO KONTROLER PADA RANCANGAN GARASI MOBIL ROTASI DENGAN MENGGUNAKAN PROGRAM SOFTWARE
Bab ini membahas mengenai software ke mikrokontroler dan hasildari pengujian.
BAB V KESIMPULAN
Berisi tentang kesimpulan penulis setelah melihat hasil dan cara kerja alat yang dirancang.
Pada laporan tugas akhir ini juga dilengkapi dengan lampiran, rangkaian lengkap, listing program dan juga data sheet software.
BAB II
TEORI DASAR
2.1. Mikrokontroler AT 89S51
Mikrokontroler ini merupakan bagian sangat penting dalam suatu alat karena fungsi dari Mikrokontroler disini mengatur seluruh proses dan kerja dari suatu alat. Mikrocontroler ini dapat didefinisikan sebagai suatu rangkaian yang didisain untuk melaksanakan fungsi-fungsi suatu unit pemrograman sentral suatu komputer digit dan suatu sistem logika universal yang dapat diprogram dan dimanufaktur pada sebuah chip silikon. Sebenarnya pada dasarnya Microkontroler ini dirancang dikarenakan untuk menyederhanakan fungsi dari komponen komponen elektronika yang cukup banyak seperti pengoperasian Comparator, Shift register, dan beberapa fungsi lain dari beberapa IC logika. Dengan Mikrokontroler ini memudahkan desainer untuk merancang suatu fungsi tertentu, karena kerja dari microkontroler ini dapat diprogram sesuai dengan kemauan. Dan yang lebih mudah lagi
Mikrokontroler ini merupakan suatu device yang merupakan penggabungan beberapa jenis device yaitu Mikroprosesor ( sebagai otak dari chip ini ), Internal Random Access Memory, internal Electrical Erasable Programmable Read Only Memory ( EEPROM ) sebagai program memory dan I/O port parallel dan I/O port serial, sehingga tidak memerlukan I/O untuk pengambilan / pengeluaran data dan tidak memerlukan memory untuk penyimpanan data, karena semua media tersebut telah ada di dalam chip microkontroler tersebut. Hanya bila diperlukan fasilitas tersebut dapat ditambah diluar chip. Mikrokontroler memiliki banyak jenis, jenis yang dipaparkan kali ini adalah salah satu jenis Mikrokontroler keluarga MCS-51 yaitu AT89S51.
A. Pengenalan Mikrokontroler AT89S51
Mikrokontroler AT 89S51 ini merupakan salah satu keluarga Mikrokontroler yang diproduksi oleh Atmel. Dimana mikrokontroler untuk jenis ini sangat compatible dalam hal proses dan penggunaannya dengan keluarga MCS-51 yang dikeluarkan oleh Intel. Mikrokontroler AT89S51 ini memiliki spesifikasi sebagai berikut ini:
1) 8 bit CPU yang dikhususkan untuk aplikasi kontrol.
2) Memiliki kemampuan untuk proses boolean extensive (single bit logic).
3) 64 Kbyte pengalamatan program memory. 4) 64 Kbyte pengalamatan data memory. 5) 4 Kbyte internal program memory. 6) 128 byte internal data RAM.
7) 4 x 8 bit jalur data yang dapat diprogram secara bidirectional. 8) 2 buah 16 bit Timer / counter.
9) Full dupplex 10) 6 sumber interupt
B. Diagram Blok Mikrokontroler AT89S51
Berikut ini adalah gambar blok diagram Arsitektur dari mikrokontroler AT89S51
Gambar 2.1 : Diagram Blok Mikrokontroler AT89S51
C. SFR ( Register Fungsi Khusus ) a. Accumulator ( register A )
Accumulator merupakan salah satu jenis register atau tempat penyimpanan data untuk sementara waktu. Dimana Accumulator ini biasa dipakai untuk menyimpan proses perhitungan atau digunakan untuk tempat sementara proses proses perhitungan aritmatika seperti proses penambahan, pengurangan, pengeseran, perubahan bit dan lain sebagainya. Register ini biasa disebut Register A.
b. Register B
Register ini berfungsi untuk pengoperasian perkalian atau pembagian dimana register ini bekerja berpasangan dengan register A, pada proses perkalian atau pembagian.
c. Program Status Word ( PSW )
Register ini berisi beberapa status yang penting seperti adanya carry pada proses perhitungan, adanya overflow pada proses perhitungan, pemeriksaan bit pada transfer data, adanya polaritas (+ / ) dan status untuk pemilihan bank dari register (R0-R7). Berikut ini beberapa dari fungsi PSW dan keterangannya.
Tabel.2.1.1 fungsi PSW
PSW 7 PSW 6 PSW 5 PSW 4 PSW 3 PSW 2 PSW 1 PSW 0 Position CY AC F0 RS1 RS0 OV - P Status
1) Bit carry flag (CY)
Bit carry (bit ke - 8) mempunyai dua fungsi yaitu: pertama: carry akan menunjukkan apakah operasi penjumlahan mengandung carry (sisa) atau pada operasi pengurangan mengandung borrow (kurang). Apabila operasi ini mengandung carry, maka bit ini akan diset satu. Sedangkan jika mengandung borrow, maka bit ini akan diset nol. Kedua : carry dimanfaatkan sebagai bit ke delapan untuk operasi pergeseran (shift) atau perputaran.
2) Bit Auxiliary Carry (AC)
Bit ini menunjukkan adanya carry (bawaan) dari bit ketiga menuju ke bit keempat pada operasi aritmatika atau dari 4 bit rendah ke 4 bit
Simbol Posisi Nama dan Fungsi CY PSW.7 Carry Flag
AC PSW.6 Auxiliary Carry Flag (for BCD Operation)
F0 PSW.5 Flag 0 (Available to the user for general purpose)
RS1 PSW.4 register bank selector bit 1 (set/reset dengan Perangkat Lunak) RS0 PSW.3 register bank selector bit 0 (set/reset dengan Perangkat Lunak)
OV PSW.2 Overflow flag - PSW.1 User definable flag
tinggi. Bit ini jarang digunakan dalam program, tetapi digunakan oleh mikrokontroler secara implisit pada operasi aritmatika bilangan BCD. 3) Bit Flag 0 (F0)
Bit ini menunjukkan apakah hasil operasinya nol atau tidak. Apabila hasil operasi adalah nol, maka bit ini diset 1, dan apabila hasil operasinya adalah tidak nol maka bit ini akan reset. Bit ini juga digunakan pada perbandingan dua buah data. Bila kedua data sama maka akan diset 1 sedangkan jika kedua data itu berbeda maka akan direset nol.
4) Bit register select (RS)
RS0 dan RS1 digunakan untuk memilih bank register. Delapan buah register ini merupakan register serbaguna. Lokasinya pada awal 32 byte RAM internal yang memiliki alamat dari 00H sampai 1FH. Register ini dapat diakses melalui simbol assembler (R0, R1, R2, R3, R4, R5, R6, dan R7). Pemilihan bank register diperlihatkan pada tabel 2.2 di bawah ini :
Tabel 2.2. Pemilihan Bank Register
RS1 RS2 Bank Lokasi Memori 0 0 0 00H – 07H 0 1 1 08H – 0FH 1 0 2 10H – 17H 1 1 3 18H – 1FH
Register R0 dan R1 dapat digunakan untuk pengalamatan tak langsung pada internal RAM.
5) Bit Overflow (OV)
Bit ini menunjukkan adanya kelebihan atau kekurangan bit pada operasi penjumlahan atau pengurangan.
6) Bit parity (P)
Bit ini menunjukkan paritas dari hasil operasi, jika 1 maka hasil operasinya adalah genap, dan jika 0 maka hasil operasinya adalah ganjil.
7) Power Control Register (PCON)
Register PCON berfungsi sebagai pengontrol mode kerja daripada CPU. Register PCON ini tidak dapat dialamati per bit.
8) Register Timer Mode (TMOD)
Register yang berfungsi sebagai pengontrol pemilihan mode operasi untuk timer / counter. Sedangkan untuk pengontrol kerja timer / counter adalah register timer control (TCON).
9) Serial Control Register (SCON)
Register yang berfungsi untuk mengontrol kerja port serial. Port serial pada mikrokontroler AT89C2051 bersifat full duplex, yang berarti dapat mengirim dan menerima data secara bersamaan. Register
penerima dan pengirim pada port serial diakses pada SBUF(serial buffer).
10) Stack Pointer
Stack pointer ini memiliki lebar data 8 bit. Dimana isinya merupakan alamat pada internal memory yang akan dipakai untuk tempat stack. Dimana fungsi dari stack ini adalah menunjuk alamat untuk menyimpan data yang diperintahkan oleh perintah Push dan Call dalam proses mikroprosesor / mikrokontroler . Pada keadaan awal alamat yang ditunjuk 07h. Khusus untuk Mikrokontroler ini penempatan stack akan maju ke alamat selanjutnya.
11) Data Pointer
Data pointer merupakan register 16 bit yang berfungsi untuk menunjuk Alamat RAM atau ROM yang dituju pada saat ada perintah pembacaan data.
12) Serial Data Buffer
Untuk Serial data buffer ini memiliki 2 register yaitu register kirim dan register terima. Ketika data dimasukkan ke SBUF, maka data akan segera dikirim ke Register kirim untuk proses pengiriman serial data. Ketika data masuk lewat buffer penerima maka data akan berpindah dari buffer penerima ke SBUF.
13) Control Register
Special Function Register IP, IE, TMOD, TCON, T2CON, SCON, and PCON berisi kontrol dan status dari interupt bit, Timer / Counter dan Serial Port.
Yang dimaksud dengan special function register adalah kumpulan register-register yang memiliki fungsi khusus dimana isi dari register tersebut ada yang menunjukan sebuah informasi penting mengenai suatu fungsi tertentu, ada juga yang menyimpan data sebagai buffers dari port tertentu (memory sementara).
Fungsi-fungsi Control register akan dijelaskan pada fungsi-fungsi khusus dari Mikrokontroler
D. PORT DAN CARA KERJA
Pada dasarnya mikrokontroller Atmel keluarga 51 mempunyai dua kelompok instruksi untuk mengeluarkan data ke port parallel ( tanda ‘x’ artinya sama seperti kondisi sebelumnya ).
a. Kelompok instruksi pertama bekerja pada port seutuhnya artinya 8 jalur dari port bersangkutan, misalnya mov P3, #FFh membuat ke delapan jalur port 0 semuanya dalam kondisi logika ‘1’ ( atau isinya 1111 1111 dalam biner ).
b. Kelompok instruksi kedua hanya berpengaruh pada salah satu jalur atau bit dari port, misalnya instruksi SETB P3.4 artinya menset bit -4
dari port 3 ( bit-4 dari port 3 = 1 → xxx1 xxxx ) atau instruksi CLR P3.3 digunakan untuk menolkan bit-3 dari port 3 ( bit-3 dari port 3=0 → xxxx 0xxx ).
E. Pin Description Mikrokontroler AT89S51
a. VCC dan GND Supply tegangan b. Port 1 dan Port 3
Port 1 s/d Port 3 dan funsi-fungsinya telah dijelaskan diatas. c. RST
Reset input. Status High pada input ini untuk 2 cycle mesin ketika oscilator bekerja mereset mikro prosesor.
d. XTAL 1
Input ke Inventing Oscilator amplifier dan input ke internal clock microkontroler.
e. XTAL 2
Output dari inventing oscilator amplifier. Jika menginginkan menggunakan oscilator signal external input Xtal2 tidak dihubungkan. Gambar 2.3 : Skematik Dari Penggunaan Internal Oscilator dan eksternal
oscillator.
Catatan : C1,C2 = 30 pF ± 10 pF untuk penggunaan Crystal
Sehubungan dengan penggunaan sumber oscilator diatas, baik penggunaan oscilator external maupun oscilator internal. Besar frekuensi oscilator sangat berpengaruh terhadap kecepatan proses kerja dari mikrocontroler.
Berikut ini beberapa hal penting mengenai kerja dari siklus mikrokontroler.
Satu siklus mesin berisi 6 urutan keadaan, diberi nomer S1 s/d S6. Setiap keadaan waktu adalah sepanjang dua periode oscilator, sehingga siklus mesin membutuhkan 12 perioda clock. Jika kita mengunakan sumber clock 12 MHz atau kita memilih crystal 12 Mhz, maka waktu 1 siklus sekitar 1 uS.
Eksekusi satu siklus instruksi dimulai selama keadaan 1 ( state1 ) dari siklus mesin, saat kode operasi ( opcode ) ditahan dalam register instruksi.
C2
C1
XTAL2
XTAL1
GND
Gambar Schematik Penggunaan Internal Clock
XTAL2
XTAL1
GND
NC
EXT OSC SIGNAL
Pengambilan kedua terjadi selama S4 pada siklus mesin yang sama. Eksekusi secara lengkap selesai pada akhir keadaan 6 dari siklus mesin.
Urutan eksekusi adalah sama untuk memori program eksternal atau internal. Waktu eksekusi tidak tergantung pada memori program internal atau eksternal. Gambar dibawah ini menjelaskan mengenai siklus mesin dan timing diagram dalam pemakaian internal maupun external program memory.
S 1 S 2 S 3 S 4 S 5 S 6 S 1 S 2 S 3 S 4 S 5 S 6
S 1
Baca Opcode Baca Opcode berikutnya S 2 S 3 S 4 S 5 S 6
S 1
Baca Opcode Baca Byte kedua S 2 S 3 S 4 S 5 S 6
S 1
Baca Opcode Baca Opcode berikutnya S 2 S 3 S 4 S 5 S 6
S 1
Baca Opcode Baca Opcode berikutnya S 2 S 3 S 4 S 5 S 6
S 1 S 2 S 3 S 4 S 5 S 6
S 1
Baca Opcode berikutnya S 2 S 3 S 4 S 5 S 6 (A) 1 Byte Instruksi 1 Siklus
(b) 2 Byte Instruksi 1 Siklus
(C) 1 Byte 2 Siklus Instruksi
Proses pembacaan opcode dari external memory
Alamat DATA
Gambar timing diagram dari pembacaan op-code
2.2. Fungsi - Fungsi Khusus dalam Mikrokontroler
1) Interupsi
Interupsi adalah perintah untuk menjalankan suatu program sub rutin pada saat menjalankan program utama. Apabila AT89C2051 mendapat permintaan interupsi maka program counter (PC) akan diisi alamat dari vector interupsi, kemudian AT89C2051 melaksanakan rutin pelayanan interupsi mulai dari alamat tersebut setelah selesai maka AT89C2051 akan kembali ke pelaksanaan program utama yang ditinggalkan. Mikrokontroller AT89C2051 menyediakan 6 sumber interupsi yaitu 2 buah interupsi eksternal ( INT 0 dan INT 1 ), 3 buah interupsi timer ( Timer 0, Timer 1, dan Timer 2 ), dan sebuah interupsi port serial.
Selain itu ada juga sebuah non maskable interrupt yaitu reset yang tidak dapat dihalangi oleh perangkat lunak. Setiap sumber interupsi dapat diprogram secara individual (sendiri-sendiri) baik pengaktifannya maupun prioritasnya. Untuk mengaktifkan atau menonaktifkan interupsi dikontrol oleh register IE (interrupt enable), sedangkan untuk tingkat prioritasnya diatur oleh register IP (interrupt priority).
Jenis-jenis Interupsi:
1. Interupsi yang tidak dapat dihalangi (non Mascable Interupt), misalnya RESET.
2. Interupsi yang dapat dihalangi ( Mascable Interupt ), Misalnya : INT0, INT1, Timer 1, Timer 0, Serial Port ( internal )
Tabel.2.4. tabel lokasi pengalamatan untuk interupt
Nama Lokasi Alamat Alat Interupsi
RESET 00H Power On Reset INT 0 03H INT 0
Timer 1 0BH Timer 0 INT 1 13H INT 1 Timer 1 1BH Timer 1 Sint 23H Port I/O Serial
Seperti yang telah kita ketahui diatas bahwa Mikrokontroler TYPE 89C2051 memiliki 5 Sumber mascable interupsi yaitu INT0, INT1, Timer0, Timer1, Serial Port. Masing-masing dapat diaktifkan dengan mengubah flag - flagnya pada beberapa SFR (special Function register). Untuk mengaktifkan INT0 dan INT1 dapat diaktifkan dengan merubah bit-bit flag IT0, IT1, IE0, IE1 di dalam 1 blok TCON. Untuk mengaktifkan interupt 0 dan interupt 1 bisa diprogram secara periodik, dapat juga diberi sinyal dari hardware lain ke Pin INT0 / INT1. Interupsi Timer 0 dan Timer 1 dapat dijalankan dengan mengeset bit TF0 dan TF1 pada special function register. Untuk pengaktifan interupsi serial port dapat diset pada SCON ( SFR ).
Berikut ini adalah satu blok dari special function register yang digunakan untuk mengon-offkan perintah interrupt, yaitu IE (Interupt Enable).
Tabel.2.5.1
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 EA - - ES ET 1 EX 1 ET 0 EX 0
Tabel.2.5.2 Spesial Function Register
SIMBOL POSISI FUNGSI
EA IE.7 Melumpuhkan semua interupsi (non aktif)
IE.6
IE.5
ES IE.4 Bit pembuat enable port serial ET1 IE.3 bit pembuat enable Timer 1 EX1 IE.2 Bit Pembuat enable INT1 ET0 IE.1 Bit Pembuat enable Timer 0 EX0 IE.0 Bit Pembuat enable INT 0
Dengan mengeset 1 pada bit tersebut diatas maka proses interupsi akan ON.
a. Prioritas Interupsi
Interupsi yang telah diungkapkan diatas dapat diprioritaskan mana interupsi yang dahulu mana interupsi yang akan dilayani kemudian. Dengan mengeset IP pada Special Function Register maka prioritas tertinggi akan dijalankan. Berikut ini merupakan bit-bit dalam SFR IP (Interupt Priority) yang harus diaktifkan.
Tabel.2.6.Bit-bit SFR IP
BIT 7 BIT6 BIT5 BIT4 BIT3 BIT 2 BIT 1 BIT0 - - - PS PT1 PX1 PT0 PX0
Dimana bila bit ini berisi 1 merupakan prioritas tertinggi dan bila diberi 0 adalah prioritas terendah.
Diperlukan perintah khusus untuk mengeset jalannya proses interupt ini terutama untuk mascable interupt. Perintah yang biasa digunakan adalah : MOV IE,#…h atau untuk mengakses statusnya per bit dengan cara SETB IE.5 maka akan secara otomatis mengaktifkan bit kelima dari SFR IE. Adapun perintah yang harus digunakan untuk kembali ke program utama setelah program interupt telah selesai dijalankan adalah RET1.
Tabel.2.7 Alamat Bit
Simbol Posisi Fungsi PS IP.4 Prioritas Interupsi Port Serial PT1 IP.3 Prioritas Interupsi Timer 1 PX1 IP.2 Prioritas Interupsi INT1 PT0 IP.1 Prioritas Interupsi Timer 0 PX0 IP.0 Prioritas Interupsi INT0
Diperlukan perintah khusus untuk mengeset jalannya proses interupt ini terutama untuk mascable interupt. Perintah yang biasa digunakan adalah : MOV IE,#…h atau untuk mengakses statusnya per bit dengan cara SETB IE.5 maka akan secara otomatis mengaktifkan bit kelima dari SFR IE. Adapun perintah yang harus digunakan untuk kembali ke program utama setelah program interupt telah selesai dijalankan adalah RET1.
2) Timer / Counter
Didalam chip mikrokontroler 89C2051 terdapat dua buah timer / counter 16 bit yang dapat diatur melalui perangkat lunak, yaitu timer / counter 0 dan timer / counter 1. Apabila timer / counter ini diaktifkan pada frekuensi kerja mikrokontroler 12 mHz, Timer / counter akan melakukan perhitungan waktu sekali setiap 1 mikrodetik secara independent, tidak tergantung pada pelaksanaan suatu instruksi. Satu siklus pencacahan waktu berpadanan dengan satu siklus pelaksanaan instruksi, sedangkan satu siklus diselenggarakan dalam waktu 1 mikrodetik. Bila dimisalkan suatu urutan instruksi telah selesai dilaksanakan dalam waktu 5
mikrodetik, pada saat itu pula timer / counter telah menunjukkan perioda waktu 5 mikrodetik. Apabila perioda waktu tertentu telah dilampaui, timer / counter segera menginterupsi mikrokontroler untuk memberitahukan bahwa proses perhitungan telah selesai dilaksanakan. Perioda waktu timer/counter secara umum ditentukan oleh persamaan berikut:
Sebagai Timer / Counter 8 bit.
T = (255-TLx) * 1 Us ; dimana TLx adalah isi register TL0 atau TL1.
Sebagai Timer / Counter 16 bit T = (65535-THx TLx) * 1 uS
THx = isi register TH0 atau TH1 TLx = isi register TL0 atau TL1 Pengontrol kerja dari timer / counter adalah SFR TCON (
RegisterTimer Control ).
Adapun definisi dari bit-bit pada timer control adalah sebagai berikut :
Tabel.2.8.1 Bit-bit Timer Kontrol
TCON.7 TCON.6 TCON.5 TCON.4 TCON.3 TCON.2 TCON.1 TCON.0 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
Tabel.2.8.2 Alamat Bit
SYMBOL POSISI FUNGSI
TF1 TCON. 7 Timer 1 overflow flag. Diset / clear oleh perangkat keras saat timer / counter menghasilkan overflow. TR1 TCON. 6 Port untuk menjalankan timer 1. Diset / clear oleh
perangkat lunak untuk membuat timer on - off. TF0 TCON. 5 Timer 0 overflow flag. Diset / clear oleh perangkat
TR0 TCON. 4 Bit untuk menghasilkan timer 0. Diset / clear oleh perangkat lunak untuk membuat timer on – off. IE1 TCON. 3 Eksternal interrupt 1 edge flag.
IT1 TCON. 2 Interupt 1 type control byte. Diset / clear oleh perangkat lunak untuk menspesifikasikan sisi turun / level rendahan trigger dari interrupt eksternal.
IE0 TCON. 1 Eksternal interrupt 0 edge flag. IT0 TCON. 0 Interrupt 0 type control bit.
Pengontrolan pemilihan mode pada timer dapat dipilih di register timer mode ( TMOD ) yang mana definisi bit - bitnya adalah sebagai berikut :
Tabel.2.9.1 Register TMOD
TMOD.7 TMOD.6 TMOD.5 TMOD.4 TMOD.3 TMOD.2 TMOD.1 TMOD.0 GATE C/T M1 M0 GATE C/T M1 M0
Tabel.2.9.2 Fungsi Timer Mode
Keterangan:
GATE : Saat Trx dalam TCON diset1 dan GATE = 1, timer/counter x akan berjalan ketika TRx = 1 (timer dikontrol Perangkat Lunak).
C/T : Pemilih fungsi timer atau counter. Clear (0) untuk operasi timer dengan masukkan dari sistem clock internal. Set (1)
untuk operasi counter dengan masukkan dari pena T0 atau T1.M1, M0 = Pemilihan mode.
Tabel 2.9.3 Operasi TMOD
M1 M0 MODE OPERASI 0 0 0 Timer 13 bit
0 1 1 Timer / counter 16 bit
1 0 2 Timer auto reload 8 bit ( pengisian otomatis ) 1 1 3 TL 0 adalah timer / counter 8 bit yang
dikontrol oleh control bit standart timer 0. TH 0 adalah timer 8 bit dan dikontrol oleh control bit timer.
3) Mode 0
Dalam mode ini register timer disusun sebagai register 13 bit. Setelah semua perhitungan selesai, mikrokontroler akan menset Timer Interupt Flag ( TF1 ). Dengan membuat GATE = 1, timer dapat dikontrol oleh masukkan luar INT 1, untuk fasilitas pengukuran lebar pulsa.
4) Mode 1
Mode 1 ini memiliki kesamaan dengan mode 0 akan tetapi register timer ini bekerja secara 16 bit.
5) Mode 2
Mode 2 ini menyusun register timer sebagai 8 bit counter. Overflow dari TL1 tidak hanya menset TF1 tetapi juga mengisi TL1 dengan isi TH1 yang diatur secara Perangkat Lunak. Pengisian ini tidak mengubah TH1. 6) Mode 3
Timer 1 dalam mode 3 semata-mata memegang hitungan. Efeknya sama seperti menset TR1 = 0. Timer 0 dalam mode 3 menetapkan TL0 dan TH0 sebagi dua counter terpisah.Tl0 menggunakan kontrol bit timer 0 yaitu C?T, Gate, TR0, INT0 dan TF0.TH0 ditetapkan sebagai fungsi timer. Mode 3 diperlukan untuk aplikasi yang membutuhkan timer / counter ekstra 8 bit. Dengan timer 0 dalam mode 3, mikrokontroler ini seperti memiliki 3 timer / counter. Saat timer 0 dalam mode 3, Timer 1 dapat dihidupkan atau dimatikan atau dapat digunakan oleh serial port sebagai pembangkit baudrate.
7) Menyetel Timer
Tabel - tabel dibawah ini memberikan beberapa nilai yang diisikan kedalam TMOD, yang dapat digunakan untuk menyetel timer 0 dalam mode yang berbeda. Diasumsikan hanya satu timer yang digunakan, jika diinginkan untuk menjalankan timer 0 dan timer 1 secara bersamaan, dalam beberapa mode nilai TMOD harus di OR kan dengan nilai seperti terlihat untuk timer 1(tabel 3 dan 4). Sebagai contoh, jika diinginkan untuk menjalankan timer 0 dalam mode 1 Gate ( kontrol external ) dan timer 1 dalam mode 2 counter, maka nilai yang harus diisikan pada TMOD adalah 69h (nilai 09h dari tabel 1 di OR kan dengan 60h dari tabel 3). Contoh : 0000 1001 (09h) OR 0110 0000 (60h) = 0110 1001 (69h). Dengan kontrol internal time ini dapat dihidupkan atau dimatikan dengan menset / reset TR0 ( kontrol Perangkat Lunak ). Pada kontrol external
timer dapat dihidup matikan dengan memberikan logika 0 pada INT 0 ( kontrol Perangkat Keras ).
Tabel.2.10.1 Kontrol Internal Time
Mode Fungsi
Timer 0 TMOD Mode Fungsi Counter 0 TMOD Kontrol
Internal Kontrol External Kontrol Internal Kontrol External 0 13 Bit timer 00H 08H 0 13 Bit timer 04H 0CH 1 16 Bit timer 01H 09H 1 16 Bit timer 05H 0DH 2 8 bit auto
reload 02H 0AH 2 8 bit auto reload 06H 0EH 3 Dua 8 bit
timer 03H 0BH 3 Dua 8 bit timer 07H 0FH
2.3
Regulator Tegangan 7805
78xx adalah tegangan regulator yang merupakan seri dari tegangan regulator positif, berbeda dengan 79xx yang merupakan tegangan regulator negatif. 2 digit terakhir dari angka-angka tersebut menunjukkan jumlah tegangan output. 7805 mempunyai tegangan output positif dan tegangan regulaor sebesar 5 volt.
Karakteristik 7805 ini adalah :
1. Arus output lebih dari satu ampere tanpa sebuah eksternal trasnsistor. 2. Otomatis akan mati bila panas telah melebihi batas.
4. Tenaga ripple rejection lebih besar dari 60 dB
Gambar 2.6. IC regulator LM7805 dan LM7812
BAB III
SISTEM SOFTWARE PADA MIKRO KONTROLER
3.1 Blok Diagram dan Cara Kerja
Tahap selanjutnya dalam perancangan suatu alat adalah membuat suatu diagram blok, dimana diagram blok ini berfungsi untuk mempermudah didalam memahami rangkaian dan perakitan alat. Dengan demikian dalam tahap perancangan dan perakitan alat akan dibuat berdasarkan per-blok diagram rangkaian, dimana tiap-tiap blok rangkaian memiliki fungsi masing-masing dan saling berkaitan antara satu dengan yang lainnya. Dimana diagram blok rangkaian yang dimaksud ditampilkan pada gambar sebagai berikut :
Prinsip Kerja :
1. AT89S51 berfungsi sebagai pusat kendali yang akan menentukan kerja dari sistem.
oleh mobil.
3. Sensor posisi berguna mengetahui posisi putaran garasi
4. Sensor pintu buka/tutup berguna pengecek batas buka dan tutup pintu 5. Keypad berguna memasukkan kode garasi yang kita miliki
6. Display sebagai penampil kode yang kita masukan.
7. Sebelum mobil masuk ke garasi, pengemudi mematikan mobil dan keluar. 8. kemudian pengemudi memasukan kode garasinya sebanyak 4 digit
melalui keypad. Kode yang dimasukkan akan ditampilkan pada display. 9. sebagai contoh garasi yang kita miliki adalah nomor tiga.
10. Jika kode cocok maka garasi akan berputar ke garasi nomor tiga, kemudian pintu akan terbuka.
11. Setelah pintu terbuka maka mobil akan didorong masuk kedalam garasi. 12. Jika mobil telah masuk maka pintu akan tertutup kembali.
13. Jika mobil ingin keluar, maka pengemudi memasukkan kodenya kembali. Jika cocok maka mobil akan dikeluarkan.
14. sebagai contoh; Posisi mobil ada di bagian atas, maka garasi akan diputar hingga garasi milik kita ada di bawah.
15. Setelah sampai dibawah maka pintu akan terbuka dan mobil ditari keluar oleh pendorong ke bagian pemutar.
16. Setelah sampai dipemutar maka mobil akan diputar 180 derajat, ini dilakukan agar pengemudi tidak perlu memundurkan mobilnya. Pintu akan tertutup kembali
17. Pengemudi dapat membawa pergi mobilnya.
Gambar 3.2.1. Blok Diagram Sistem
3.2 Rangkaian Mikrokontroler AT89S51
Sebagai pusat kendali dari seluruh sistem dari rangkaian Pengaturan Sistem Garasi Mobil Bertingkat 3 Dengan Menggunakan Sistem Rotasi Berbasis Mikrokontroler ini adalah adalah mikrokontroler AT89S51 yang berfungsi mengatur dan mengontrol pergerakkan motor untuk menentukan arah
inframerah dan saklar serta keypad,pad sistem juga dilengkapi dengan LCD sebagai penampil kode dan proses yang dijalankan. Untuk lebih jelasnya mengenai input dan output dari mikrokontroler dapat dilihat pada tabel 3.3.1 dibawah ini :
Tabel 3.3.1. Fungsi Port Mikrokontroler pada robot experimen
Port Input/Output Interface
P0 Output Penggerak motor
P1 Input Keypad
P2 output M odul LCD
P3 input Sensor posisi
Pada rangkaian minimal mikrokontroler AT89S51 ini dilengkapi dengan rangkaian clock yang terdiri dari criytal 12 Mhz dan 2 buah kapasitor keramik sebesar 33 pf. Besarnya nilai kristal yang digunakan menentukan frekuensi pencacahan mikrokontroler yang menetukan kecepatan proses dari mikrokontroler.
Untuk meyakinkan program bekerja dari awal maka dibuat suatu rangkaian power on reset yang akan mereset alat secara otomatis saat pertama kali catu daya dihidupkan. Rangkaian ini dibentuk oleh C3 dan R1 dimana prinsip kerjanya adalah proses pengisian dan pengosongan C3 sehingga menghasilkan suatu keadaan transisi dari logika rendah ke logika tinggi sesuai
yang dibutuhkan oleh pin reset mikrokontroler. Pada rangkaian juga dilengkapi tombol reset sehingga mikrokontroler dapat direeset sewaktu-waktu jika sistem mengalami kerusakan atau error dalam prosesnya.
Pada keluaran Port 0 (P0) ditambahkan resistor eksternal sebagai pullup, hal ini karena pada p0 tidak dilengkapi resistor internal seperti port yang lainnya penambahan resistor pullup ini juga bertujuan menaikan arus keluaran dari mikrokontroler. Untuk tegangan kerja dari mikrokontroler ini menggunakan tegangan sebesar 5 Volt yang sudah teregulasi dengan baik. Rangkaian minimal dari mikrokontroler AT89S51 diperlihatkan pada gambar 3.3.1 berikut ini :
Keypad ini berguna memasukkan kode atau password, keypad terdiri dari susunan tombol yang disususn secara matric. Angka tombol mana yang ditekan akan ditampilkan pada LCD. Fungsi dari tombol – tombol keypad tersebut pada alat adalah sebagai berikut :
Tabel 3.4.1. Angka-angka Keypad 0 sampai 9 Angka kode
* Pengulangan input
# Pengecekan kode
3.4
Modul LCDLCD berguna menampilkan tombol mana yang ditekan. LCD juga akan menampilkan pesan setiap proses yang dijalankan. Apakah proses pemasukan mobil ke garasi, keluar mobil atau kesalahan password. LCD yang digunakan berukuran 2 x 16 karakter dan dihubungkan ke mikrokontroler dengan susunan sebagai berikut :
Tabel 3.5.1. Bentuk Modul LCD yang digunakan :
LCD display PIN LCD Port mikrokontroler Keterangan
DB7 14 P2.5 Jalur data DB6 13 P2.4 Jalur data DB4 12 P2.3 Jalur data DB3 11 P2.2 Jalur data E 6 P2.1 Enable RS 4 P2.0 Reset
RW 5 Ground Read Write
VSS 1 Ground Ground
VDD 2 + 5 volt + 5 volt
Gambar 3.5.1. Pin Koneksi LCD ke Microcontroller
BAB IV
SISTEM PROGRAM MIKRO KONTROLER PADA
RANCANGAN GARASI MOBIL DENGAN
MENGGUNAKAN PROGRAM SOFTWARE
4.1 Program Utama
Program utama ini akan mengatur kerja sistem secara keseluruhan. Program ini merupakan gabungan dari prosedur-prosedur yang dibuat untuk sistem parkir. Prosedur yang dipanggil oleh program ini adalah pengaturan kondisi awal, pembacaan keypad, dan proses jika kode yang dimasukan merupakan salah satu kode dari 4 kode tempat parkir. Pada program juga terdapat pengecekan kode salah, jika kode salah 3 kali dimasukan maka sistem akan berhenti sampai diaktifkan kembali oleh operator. Kode yang dimasukkan sebanyak 4 karakter angka.
Jumlahsalah = 3 Call Kondisiawal Cls Do Call Bacakeypad If Jumlahsalah <> 0 Then Select Case Kodemasuk: Case Passwd1 : Tujuan = 1 Call Proses Case Passwd2 : Tujuan = 2 Call Proses Case Passwd3 : Tujuan = 3 Call Proses Case Passwd4 : Tujuan = 4 Call Proses Case Else : Decr Jumlahsalah Cls Lcd "KODE SALAH" Lowerline Lcd "KESEMPATAN = " Locate 2 , 16 Lcd Jumlahsalah Wait 3 End Select Else Cls Lcd "KODE ANDA SALAH" Lowerline Lcd "HUBUNGI OPERATOR" Wait 3 Do Call Bacakeypad Loop Until Kodemasuk = Passwd0 End If Loop End
4.1. Flowchart Program Utama Start
Kode M asuk = 0000 Jum lah Salah
<>0
Jum lah Salah 3
Kode M asuk = 1111 Proses
Tujuan 1 Kode M asuk = 2222 Kode M asuk = 3333 Kode M asuk = 4444 Proses Tujuan 2 Proses Tujuan 3 Proses Tujuan 4 Stop ya tidak ya tidak ya tidak ya tidak ya tidak ya tidak Hubungi operator Tam pilan Peringatan Posisi Awal Baca Keypad
Jum lah Salah = Jum lah Salah – 1 Tam pilan Peringatan
Setelah kode dimasukkan dan kode tersebut sesuai dengan salah satu kode parkir maka prosedur proses akan dilakukan. Prosedur ini bertujuan untuk mengecek keberadaan mobil pada luar dan dalam garasi sehingga dapat diketahui apakah tindakan selanjutnya memasukkan atau mengeluarkan mobil.
Jika kode merupakan salah satu dari kode garasi (sebagai contoh garasi 1) maka pada Lcd akan ditampilkan pernyataan bahwa kode benar. Selanjutnya garasi akan diputar sesuai dengan garasi tujuan, tetapi jika posisi garasi sekarang sama dengan garasi tujuan maka pemutaran garasi tidak akan dilakukan. Kemudian akan dicek keberadaan mobil pada dalam dan luar garasi. Jika pada garasi dalam terdapat mobil maka akan dicek pula garasi luar, jika pada garasi luar terdapat mobil juga maka proses tidak akan dilakukan karena akan terjadi bentrokan mobil, tetapi jika garasi luar kosong maka proses yang dilakukan adalah pengeluaran mobil. Jika pada garasi dalam tidak terdapat mobil maka akan dicek kondisi garasi luar. Jika terdapat mobil maka pemasukan mobil dilakukan. Tetapi jika garasi luar kosong maka tidak akan dilakukan proses apapun. Setelah prosedur ini dilakukan maka akan kembali ke program utama dan proses pembacaan kode dilakukan kembali.
Listing program Proses Kode Sub Proses Cls Lcd " KODE BENAR " Wait 3 Call Putargarasi(tujuan) Cls If Irmobildalam = 1 Then If Irmobilluar = 0 Then Cls Lcd "PROSES PEMASUKAN" Lowerline Lcd " MOBIL " Call Dorongkeluar Wait 1 Call Bukapintu wait 1 Call Angkatmobil wait 1 Call Dorongmasuk wait 1 Call Turunmobil wait 1 Call Tutuppintu wait 1 Else Cls Lcd "TIDAK ADA MOBIL" Lowerline Lcd " PROSES GAGAL " End If Else If Irmobilluar = 1 Then Cls Lcd "KELUARKAN MOBIL" Lowerline Lcd "TERIMA KASIH" Call Bukapintu wait 1 Call Angkatmobil wait 1 Call Dorongkeluar wait 1 Call Turunmobil wait 1 Call Tutuppintu wait 1 Call Dorongmasuk wait 1 Call Putarmobil wait 1 Else Cls Lcd "ADA PENGHALANG" Lowerline Lcd "PROSES GAGAL" End If End If Jumlahsalah = 3 Wait 1 End Sub
4.2. Flowchart Program Proses Kode
4.3 Program Kondisi awal
Program ini akan mengembalikan sistem ke kondisi awal. Ini dilakukan untuk memastikan agar sistem dapat berjalan dengan baik mulai dari awal proses sampai akhir proses. Kodsia awal sistem adalah posisi garasi adalah garasi ke 1, pintu dalam keadaan tertutup, pendorong berada pada bagian dalam, pengangkat pada posisi bawah dan pemutar berada pada arah dalam.
Isi Garasi = 1 Isi Putar = 0 Masukan Mobil Tidak Ada Mobil Isi Putar = 1 Ada Penghalang Keluarkan Mobil Stop Posisi Awal Jumlah Salah 3
Pada prosedur ini akan dipanggil prosedur penurunan mobil, dorong masuk dan penutupan pintu. Pengecekan posisi garasi dilakukan dengan mengecek sensor garasi1 apakah telah terhalang atau belum, jika telah terhalang berarti garasi pada posisi 1 dan pemutaran garasi dihentikan. Untuk memastikan pemutar ke arah dalam maka akan dicek saklar batas mobil masuk apakah tertekan, jika tidak maka pemutar akan diputar berlawanan arah jarum jam sampai batas mobil masuk tertekan.
Listing program Kondisi Awal
Sub Kondisiawal Call Turunmobil Call Dorongmasuk Call Tutuppintu Posisiawal = 1 If Irgarasi1 = 0 Then Reset Motorgarasi Bitwait Irgarasi1 , Set Set Motorgarasi E d If
4.3. Flowchart Program Kondisi Awal Motor hidup Motor garasi = 0 Call turun mobil Call dorong masuk Call tutup pintu Ir garasi 1 = 0 Motor hidup Motor putar masuk = 0 Batas mobil masuk = 0 stop ya tidak ya tidak ya tidak ya tidak Motor Mati Motor Putar = 1 Motor Mati Motor Garasi = 1 Ir Garasi 1 = 0 Posisi awal = 1 Batas mobil Masuk = 1
4.4 Program Baca Keypad
Prosedur ini untuk memasukan kode yang akan diproses. Kode dimasukkan dengan menekan angka pada keypad. Tiap keypad mewakili angka yang ditekan. Kode yang dimasukan terdiri dari angka 0 sampai 9. Karakter * (bintang) berfungsi untuk memulai kembali penekanan kode dan karakter #(pager) berfungsi untuk enter atau pemasukkan kode telah selesai dan dilanjukkan ke prosedur selanjutnya dalam hal ini prosedur proses.
Pembacaan keypad dilakukan secara baris dan kolom. Keypad terdiri dari 4 x 4 baris dan kolom, tetapi hanya 3 x 4 yang aktif. Kolom diaktifkan secara satu persatu dan secara low. Setelah kolom dibuat low maka akan dibaca baris secara satu persatu, jika pada pembacaan baris terdapat pin yang low maka angka akan ditambahkan dengan kolom yang aktif. Setelah penekanan terbaca maka akan dicek apakah jumlah angka tesebut jika jumlah 1 – 9 berarti angka 1 – 10, jumlah 10 akan dirubah ke angka 0 dan jumlah = 11 berarti karakter * dan jumlah 12 berarti karakter #. Jika angka maka angka tersebut akan dimasukkan ke kode, jika telah 4 angka dimasukkan maka untuk melanjutkan proses harus menekan tanda #.
Sub Bacakeypad Call Inikeypad Do Tombolbuffer = &B11101111 For I = 1 To 3 P1 = Tombolbuffer Angka = 0 If P1.0 = 0 Then Angka = I + 0 Bitwait P1.0 , Set Elseif P1.1 = 0 Then Angka = I + 3 Bitwait P1.1 , Set Elseif P1.2 = 0 Then Angka = I + 6 Bitwait P1.2 , Set Elseif P1.3 = 0 Then Angka = I + 9 Bitwait P1.3 , Set End If Rotate Tombolbuffer , Left , 1 If Angka <> 0 Then If Angka = 10 Then Call Inikeypad Exit For Elseif Angka = 12 Then A = 5 Exit Do Else If Angka = 11 Then Angka = 0 End If Incr A Kar = Str(angka) Kodemasuk = Kodemasuk + Kar Lowerline Lcd Kodemasuk End If End If Next Loop Until A >= 5 End Sub
Pada waktu mobil dimasukan didalam garasi mobil maka mesin atau motor dapat berputar searah jarum jam atau sebaliknya.
Listing program Putar Garasi
Sub Putargarasi(tujuan As Byte) If Posisiawal <> Tujuan Then Do Reset Motorgarasi Bitwait Irgarasi2 , Reset Bitwait Irgarasi2 , Set Set Motorgarasi Incr Posisiawal Loop Until Tujuan = Posisiawal Posisiawal = Tujuan End If End Sub start
Program ini akan membuka pintu garasi, terbuka pintu garasi ditandai dengan tertekannya saklar batas pintu buka. Jika saklar batas tidak tertekan maka motor buka pintu akan aktif sampai saklar batas buka pintu tertekan, jika telah tertekan maka motor akan mati
Listing program Buka Pintu
4.6. Flowchart Program Buka Pintu
Sub Bukapintu If Bataspintubuka = 1 Then Reset Motorpintubuka Set Motorpintututup Bitwait Bataspintubuka , Reset Set Motorpintubuka Set Motorpintututup End If End Sub start Motor hidup Motor pintu buka = 0 stop ya ya tidak tidak Motor Mati Motor Pintu buka = 1 Batas buka = 1 Batas buka = 0
4.7 Program Tutup Pintu
Program ini akan menutup pintu garasi, tertutupnya pintu garasi ditandai dengan tertekannya saklar batas pintu tutup. Jika saklar batas tidak tertekan maka motor tutup pintu akan aktif sampai saklar batas tutup pintu tertekan, jika telah tertekan maka motor akan mati
Listing program Tutup Pintu
Sub Tutuppintu If Bataspintututup = 1 Then Set Motorpintubuka Reset Motorpintututup Bitwait Bataspintututup , Reset Set Motorpintubuka Set Motorpintututup End If End Sub
start Motor hidup Motor pintu tutup = 0 stop ya ya tidak tidak Motor Mati Motor Pintu Tutup = 1 Batas Tutup =1 Batas tutup = 0
4.8 Program Putar Mobil
Program ini akan memutar arah mobil yang dikeluarkan dari garasi, pemutar akan memutar arah mobil ke arah luar dan pemutar tersebut akan kembali ke arah dalam lagi jika mobil telah dibawa pergi. Pemutaran mobil dilakukan agar pemilik mobil tidak perlu susah memutarkan mobilnya.
Motor pemutar akan dihidupkan searah jarum jam dan akan menggerakkan pemutar searah jarum jam pula. Motor akan terus berputar sampai saklar batas mobil keluat tertekan yang menandakan mobil telah berbalik arah dan motor pemutarpun akan diam. Selanjutnya sensor garasi luar akan mengecek keberadaan mobil apakah telah dibawa oleh pemilik atau belum. Sensor akan terus dicek samapai mobil dibawa pergi. Setelah mobil dibawa pergi motor pun akan kembali berputar tetapi berlawanan jarum jam. Motor akan berhenti berputar sampai saklar batas mobil masuk tertekan dan motor pun akan berhenti.
Listing program Putar Mobil
Sub Putarmobil Reset Motormobilkeluar Set Motormobilmasuk Bitwait Batasmobilkeluar , Reset Set Motormobilkeluar Waitms 500 Bitwait Irmobilluar , Reset Wait 1 Reset Motormobilmasuk Bitwait Batasmobilmasuk , Reset Set Motormobilmasuk End Sub
4.9 Program Angkat Mobil
Program ini akan mengangkat mobil sehingga tidak menabrak lantai garasi. Mobil diangkat dengan ketinggian tertentu. Untuk mengangkat mobil maka motor angkat dihidupkan sampai saklar batas atas tertekan, jika saklar batas telah tertekan maka motor angkat akan berhenti berputar
Listing program
4.9. Flowchart Program Angkat Mobil
Sub Angkatmobil If Batasmobilangkat = 1 Then Reset Motormobilangkat Set Motormobilturun Bitwait Batasmobilangkat , Reset Set Motormobilangkat Set Motormobilturun End If End Sub sta rt M o to r h id u p M o to r a n g ka t = 0 sto p y a y a tid a k tid a k M o to r M a ti M o to r A n g ka t = 1 B a ta s A n g k a t = 1 B a ta s a n g ka t = 0
Program ini merupakan kebalikan dari program angkat mobil yaitu menurunkan mobil, setelah diangkat maka posisi mobil telah sampai pada tujuanya maka mobil harus diturunkan untuk menurunkan mobil motor angkat akan diputar berlawanan arah, motor akan terus berputar sampai saklar batas turun tertekan, jika telah tertekan maka motor akan berhenti berputar.
Listing program
4.10. Flowchart Program Turun Mobil
Sub Turunmobil If Batasmobilturun = 1 Then Set Motormobilangkat Reset Motormobilturun Bitwait Batasmobilturun , Reset Set Motormobilangkat Set Motormobilturun End If End Sub start Motor hidup Motor turun = 0 Motor mati Motor turun = 1 stop ya ya tidak tidak Batas turun = 1 Batas Turun = 0
4.11 Program Dorong Masuk
Program ini akan membawa mobil masuk kedalam garasi, setelah mobil diangkat maka mobil akan dibawa masuk ke dalam garasi, motor dorong masuk akan hidup sampai saklar batas masuk tertekan, setelah saklar tertekan maka motor akan berhenti
Listing program
4.11. Flowchart Program Dorong Masuk
Sub Dorongmasuk If Batasmobilmasuk = 1 Then Reset Motormobilmasuk Set Motormobilkeluar Bitwait Batasmobilmasuk , Reset Set Motormobilmasuk Set Motormobilkeluar End If End Sub start Motor hidup Motor dorong masuk = 0 stop ya ya tidak tidak Motor mati Motor dorong Masuk = 1 Batas Masuk = 1 Batas masuk = 0
Program ini akan membawa mobil keluar dari garasi, setelah mobil diangkat maka mobil akan dibawa keluar dari garasi, motor dorong keluar akan hidup sampai saklar batas keluar tertekan, setelah saklar tertekan maka motor akan berhenti
Listing program
4.12. Flowchart Program Dorong Keluar start M otor hidup M otor dorong keluar = 0 B atas keluar = 0 stop ya ya tidak tidak M otor M ati M otor dorong K eluar = 1 B atas K eluar Sub Dorongkeluar If Batasmobilkeluar = 1 Then Reset Motormobilkeluar Set Motormobilmasuk Bitwait Batasmobilkeluar , Reset Set Motormobilkeluar Set Motormobilmasuk End If End Sub
4.13 Program inisialisasi
Program ini akan mengatur kondisi awal dari variabel-variabel yang diperlukan oleh program dan memberikan tampilan awal atau perintah untuk memasukan kode.
Listing program Inisialisasi
4.13. Flowchart Program Inisialisasi
Sub Inikeypad Cls Lcd "MASUKAN KODE" Kodemasuk = "" A = 0 End Sub s ta r t s to p T a m p ilk a n “ M A S U K A N K O D E ” B e r s ih k a n V a r ia b e l K o d e m a s u k = ` ` A ` ` = B e r s ih k a n L a y a r C L S
BAB V
PENUTUP
5.1 KESIMPULAN
Dari hasil rancangan yang diperoleh dan diuji terhadap sistem dari “ Pemprograman Sistem Rotasi Garasi Mobil Berbasis Mikro
Kontroler “ dapat diberikan beberapa kesimpulan yaitu :
1. Sebagai pusat pengendali mikrokonrtroler AT89S51 mampu mengendalikan robot dengan baik, dimana dengan menggunakan bahasa assembler sebagai software robot dapat bekerja secara otomatis dan dapat bekerja seperti yang diinginkan.
2. Dari pengujian sistem secara keseluruhan alat bekerja dengan baik dan dapat berjalan sesuai dengan program yang telah dibuat.
5.2 SARAN
Saran – saran yang harus diperhatikan dari Pemprograman Sistem Rotasi Garasi Mobil Berbasi Mikro Kontroler pada program software adalah :
1. Ketelitian pada saat memprogram software – software harus teratur sesuai dengan kegunaan masing – masing.
2. Komponen – komponen software mudah rusak, bila menggunakanya tidak hati – hati.
3. Perlu mengingat kode – kode pintu parkir , agar mobil – mobil yang masuk dapat dibuka dan ditutup sesuai dengan keperluanya.
¾
Drs. H.C. Yohannes. Dasar-Dasar Elektronika. Yogyakarta: Ghalia Indonesia, 1979.¾
M. Ary Heryanto, ST., & Ir. Wisnu Adi P. Pemrograman Bahasa C untuk Mikrokontroller ATMEGA 8535. Yogyakarta: ANDI Yogyakarta, 2008.¾
Paulus Andi Nalwan. Teknik Antarmuka dan Pemrograman Mikrokontroller AT89C51. Jakarta: PT. Elex Media Komputindo Kelompok Gramedia, 2003.¾
Wasito S. Vademekum Elektronika. Edisi Kedua. Jakarta: PT. Gramedia Pustaka Utama, 2004.¾
Widodo Budiharto. Belajar Sendiri Membuat Robot Cerdas. Jakarta: PT. Elex Media Komputindo Kelompok Gramedia, 2006.¾
Widodo Budiharto, & Gamayel Rizal. Belajar Sendiri 12 ProyekMikrokontroller untuk Pemula. PT. Elex Media Komputindo Kelompok Gramedia, Jakarta, 2006.
GAMBAR MOTOR PENGGERAK ROTASI
GAMBAR ALAT TAMPAK DEPAN
keypad LCD Sensor posisi Pemutar posisi kendaraan Saklar on/off Tahanan motor Motor
GAMBAR KOMPONEN JADI PANDANGAN SAMPING
GAMBAR KEYPAD
Parkir rotasi
Rantai Penggerak
GAMBAR KOMPONEN
Relay
Travo Mikro