TUGAS AKHIR PEMPROGRAMAN SISTEM ROTASI GARASI 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 2008
PROGRAM STUDI TEKNIK MESIN FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA 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
i
PROGRAM STUDI TEKNIK MESIN FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA 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
Dosen Pembimbing 1
Dosen Pembimbing 2
(Ir.Rully Nutranta,M.Eng )
( Nanang Ruhyat. ST. MT )
ii
PROGRAM STUDI TEKNIK MESIN FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA 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
(Nanang Ruhyat. ST.MT )
iii
Tugas Akhir
ABSTRAK 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
vi
Bambang Mujiharto
Tugas Akhir
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 sebesarbesarnya 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 pihakpihak 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 laporannya.
Universitas Mercu Buana
iv
Bambang Mujiharto
Tugas Akhir
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
Universitas Mercu Buana
v
Bambang Mujiharto
Tugas Akhir
DAFTAR ISI
LEMBAR PERNYATAAN
………………..……………...
i
LEMBAR PENGESAHAN
………………………..……...
ii
KATA PENGANTAR
………………………………..
iv
ABSTRAK
………………………………..
vi
DAFTAR ISI
………………………………..
vii
1.1 Latar Belakang
……………………………….
1
1.2 Tujuan Penulisan
……………………………….
2
1.3 Pembatasan Masalah ………………………………..
3
1.4 Metode Penelitian dan Pengumpulan Data
3
BAB I
PENDAHULUAN
1.5 Sistem Matika Penulisan
………
………………………..
4
………………………
6
BAB II TEORI DASAR 2.1 Mikrokontroler AT 89S51
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
………………………………………..
36
3.4 Modul LCD
Universitas Mercu Buana
vii
Bambang Mujiharto
Tugas Akhir
BAB IV SISTEM PROGRAM MIKRO KONTROLER PADA 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
Universitas Mercu Buana
viii
Bambang Mujiharto
Tugas Akhir
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
Universitas Mercu Buana
1
Bambang Mujiharto
Tugas Akhir
2
dilakukan sebagai sistem keamanan dan pemberian akses terbatas(hanya 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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
3
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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
4
Diskusi 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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
5
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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
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
Universitas Mercu Buana
6
Bambang Mujiharto
Tugas Akhir
7
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).
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
8
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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
9
B. Diagram Blok Mikrokontroler AT89S51
Berikut ini adalah gambar blok diagram Arsitektur dari mikrokontroler AT89S51
Gambar 2.1 : Diagram Blok Mikrokontroler AT89S51 Penjelasan blok-blok yang digambarkan diatas adalah sebagai berikut.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
10
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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
Simbol
11
Posisi
Nama dan Fungsi
PSW.7
Carry Flag
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
PSW.0
Parity flag (set/reset dengan Perangkat Keras)
CY AC
P
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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
12
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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
13
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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
14
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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
15
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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
16
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
Gambar 2.2 : Pin Description Mikrokontroler AT89S51
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
17
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 C1,C2 = 40 pF ± 10 pF untuk pengunaan Ceramic Resonantor.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
18
Gambar Schematik Penggunaan Internal Clock XTAL2 C2 XTAL1 GND C1 Gambar Schematik penggunaan external Clock NC XTAL2 EXT OSC SIGNAL
XTAL1 GND
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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
19
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.
Gambar timing diagramdari pembacaan op-code S1
S2
S3
S4
S5
S6
S4
S5
S6
S1
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
S1
S2
S3
S4
S5
S6
(A) 1 Byte Instruksi 1 Siklus
S1
S2
S3
Baca Opcode
Baca Opcode berikutnya
(b) 2 Byte Instruksi 1 Siklus
S1
S2
S3
S4
Baca Opcode
S5
S6
Baca Byte kedua
(C) 1 Byte 2 Siklus Instruksi
S1
S2
S3
S4
S5
S6
Baca Opcode Baca Opcode berikutnya Proses pembacaan opcode dari external memory
S1
S2
S3
S4
S5
S6
Alamat Baca Opcode
Baca Opcode berikutnya
DATA Baca Opcode berikutnya
Gambar 2.4 :Timing diagram dari pembacaan op-code
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
2.2.
20
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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
21
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 RESET INT 0 Timer 1 INT 1 Timer 1 Sint
Lokasi Alamat 00H 03H 0BH 13H 1BH 23H
Alat Interupsi Power On Reset INT 0 Timer 0 INT 1 Timer 1 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).
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
22
Tabel.2.5.1 BIT 7 EA
BIT 6 -
BIT 5 -
BIT 4 ES
BIT 3 ET 1
BIT 2 EX 1
BIT 1 ET 0
BIT 0 EX 0
Tabel.2.5.2 Spesial Function Register SIMBOL EA
POSISI IE.7
ES ET1 EX1 ET0 EX0
IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0
Universitas Mercu Buana
FUNGSI Melumpuhkan aktif)
semua
interupsi
(non
Bit pembuat enable port serial bit pembuat enable Timer 1 Bit Pembuat enable INT1 Bit Pembuat enable Timer 0 Bit Pembuat enable INT 0
Bambang Mujiharto
Tugas Akhir
23
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 PS
BIT3 PT1
BIT 2 PX1
BIT 1 PT0
BIT0 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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
24
Tabel.2.7 Alamat Bit Simbol PS PT1 PX1 PT0 PX0
Posisi IP.4 IP.3 IP.2 IP.1 IP.0
Fungsi Prioritas Interupsi Port Serial Prioritas Interupsi Timer 1 Prioritas Interupsi INT1 Prioritas Interupsi Timer 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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
25
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 TF1 TR1
TCON.5 TF0
TCON.4 TR0
TCON.3 IE1
TCON.2 IT1
TCON.1 IE0
TCON.0 IT0
Tabel.2.8.2 Alamat Bit SYMBOL TF1
POSISI TCON. 7
TR1
TCON. 6
TF0
TCON. 5
Universitas Mercu Buana
FUNGSI Timer 1 overflow flag. Diset / clear oleh perangkat keras saat timer / counter menghasilkan overflow. Port untuk menjalankan timer 1. Diset / clear oleh perangkat lunak untuk membuat timer on - off. Timer 0 overflow flag. Diset / clear oleh perangkat keras saat timer / counter menghasilkan overflow.
Bambang Mujiharto
Tugas Akhir
26
TR0
TCON. 4
IE1 IT1
TCON. 3 TCON. 2
IE0 IT0
TCON. 1 TCON. 0
Bit untuk menghasilkan timer 0. Diset / clear oleh perangkat lunak untuk membuat timer on – off. Eksternal interrupt 1 edge flag. Interupt 1 type control byte. Diset / clear oleh perangkat lunak untuk menspesifikasikan sisi turun / level rendahan trigger dari interrupt eksternal. Eksternal interrupt 0 edge flag. 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 GATE
TMOD.6 TMOD.5 TMOD.4 TMOD.3 TMOD.2 TMOD.1 TMOD.0 C/T M1 M0 GATE C/T M1 M0
Tabel.2.9.2 Fungsi Timer Mode Timer 1
Timer 0
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
Universitas Mercu Buana
dengan masukkan dari sistem clock internal. Set (1)
Bambang Mujiharto
Tugas Akhir
27
untuk operasi counter dengan masukkan dari pena T0 atau T1.M1, M0 = Pemilihan mode.
Tabel 2.9.3 Operasi TMOD M1
M0
0 0 1 1
0 1 0 1
MODE
0 1 2 3
OPERASI Timer 13 bit Timer / counter 16 bit Timer auto reload 8 bit ( pengisian otomatis ) 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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
28
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
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
29
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
Kontrol Kontrol Internal External 0 1 2 3
2.3
13 Bit timer 16 Bit timer 8 bit auto reload Dua 8 bit timer
00H 01H 02H
08H 09H 0AH
0 1 2
03H
0BH
3
13 Bit timer 16 Bit timer 8 bit auto reload Dua 8 bit timer
TMOD Kontrol Internal
Kontrol External
04H 05H 06H
0CH 0DH 0EH
07H
0FH
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. 3. Regulasi line dan load biasanya sebesar 2 %.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
30
4. Tenaga ripple rejection lebih besar dari 60 dB
Gambar 2.6. IC regulator LM7805 dan LM7812
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
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.
Universitas Mercu Buana
30
Bambang Mujiharto
Tugas akhir
2.
31
Sensor isi berguna untuk mengecek apakah garasi telah diisi atau belum 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.
Universitas mercu Buana
Bambang Mujiharto
Tugas akhir
16.
32
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
Universitas mercu Buana
Bambang Mujiharto
Tugas akhir
33
pergerakan robot.. Sebagai masukan dari mikrokontroler tersebut adalah sensor 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
Universitas mercu Buana
Bambang Mujiharto
Tugas akhir
34
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 :
Gambar 3.3.1. Rangkaian Mikrokontroler AT89S51
Universitas mercu Buana
Bambang Mujiharto
Tugas akhir
35
3.3 Modul keypad 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
Gambar 3.4.1. Susunan keypad
Universitas mercu Buana
Bambang Mujiharto
Tugas akhir
36
3.4 Modul LCD LCD 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
VO
3
0 – 5 volt
Pengaturan kontras LCD
Universitas mercu Buana
Bambang Mujiharto
Tugas akhir
37
Gambar 3.5.1. Pin Koneksi LCD ke Microcontroller
Gambar 3.5.2 Bentuk Fisik LCD 2x16
Universitas mercu Buana
Bambang Mujiharto
38
Tugas Akhir
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.
Universitas Mercu Buana
38
Bambang Mujiharto
39
Tugas Akhir
Listing program Utama 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
Universitas Mercu Buana
Bambang Mujiharto
40
Tugas Akhir
S tart
Posisi Awal
Baca Keypad
Hubungi operator
Kode M asuk = 0000
tidak
tidak
Tam pilan Peringatan
Jum lah Salah <>0
tidak
tidak
tidak
K ode M asuk = 3333
Kode M asuk = 4444
ya
K ode M asuk = 2222
ya
ya
Jum lah Salah 3
ya
Kode M asuk = 1111
ya
Proses Tujuan 1
ya
Proses Tujuan 2
Proses Tujuan 3
P roses Tujuan 4
tidak
Jum lah S alah = Jum lah Salah – 1 Tam pilan Peringatan Stop
4.1. Flowchart Program Utama
Universitas Mercu Buana
Bambang Mujiharto
41
Tugas Akhir
4.2
Program proses kode 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.
Universitas Mercu Buana
Bambang Mujiharto
42
Tugas Akhir
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
Universitas Mercu Buana
Bambang Mujiharto
43
Tugas Akhir
Start
Posisi Awal
Isi Garasi = 1
Isi Putar =1
Isi Putar =0
Ada Penghalang
Keluarkan Mobil
Tidak Ada Mobil
Masukan Mobil
Jumlah Salah 3
Stop
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.
Universitas Mercu Buana
Bambang Mujiharto
44
Tugas Akhir
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
Universitas Mercu Buana
Bambang Mujiharto
45
Tugas Akhir
start
Call turun mobil
Call dorong masuk
Call tutup pintu
Posisi awal =1
tidak
ya
Ir Garasi 1 = 0
Motor hidup Motor garasi = 0
tidak
ya
Ir garasi 1 = 0
Motor Mati Motor Garasi =1
tidak
ya
Batas mobil Masuk = 1
Motor hidup Motor putar masuk = 0
tidak
Batas mobil masuk = 0
ya
Motor Mati Motor Putar =1
stop
4.3. Flowchart Program Kondisi Awal
Universitas Mercu Buana
Bambang Mujiharto
46
Tugas Akhir
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 #.
Universitas Mercu Buana
Bambang Mujiharto
47
Tugas Akhir
Listing program Baca Keypad 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
Universitas Mercu Buana
Bambang Mujiharto
48
Tugas Akhir
4.4. Flowchart Program Baca Keypad
Universitas Mercu Buana
Bambang Mujiharto
49
Tugas Akhir
4.5
Program Putar Garasi 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
Universitas Buana tidak Mercu Posisi awal <> Tujuan
ya
Bambang Mujiharto
50
Tugas Akhir
4.5. Flowchart Program Putar Garasi
Universitas Mercu Buana
Bambang Mujiharto
51
Tugas Akhir
4.6
Program Buka Pintu 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 Sub Bukapintu If Bataspintubuka = 1 Then Reset Motorpintubuka Set Motorpintututup Bitwait Bataspintubuka , Reset Set Motorpintubuka Set Motorpintututup End If End Sub
start
tidak
ya
Batas buka = 1
Motor hidup Motor pintu buka = 0 tidak
Batas buka = 0 ya
Motor Mati Motor Pintu buka = 1
stop
4.6. Flowchart Program Buka Pintu
Universitas Mercu Buana
Bambang Mujiharto
52
Tugas Akhir
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
Universitas Mercu Buana
Bambang Mujiharto
53
Tugas Akhir
start
tidak
ya
Batas Tutup =1
Motor hidup Motor pintu tutup = 0
tidak
Batas tutup = 0 ya
Motor Mati Motor Pintu Tutup = 1
stop
4.7. Flowchart Program Tutup Pintu
Universitas Mercu Buana
Bambang Mujiharto
54
Tugas Akhir
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
Universitas Mercu Buana
Bambang Mujiharto
55
Tugas Akhir
4.8. Flowchart Program Putar Mobil
Universitas Mercu Buana
Bambang Mujiharto
56
Tugas Akhir
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 Sub Angkatmobil If Batasmobilangkat = 1 Then Reset Motormobilangkat Set Motormobilturun Bitwait Batasmobilangkat , Reset Set Motormobilangkat Set Motormobilturun End If End Sub
s ta rt
tid a k
ya
B a ta s A n g k a t = 1
M o to r h id u p M o to r a n g k a t = 0
tid a k
B a ta s a n g k a t = 0 ya
M o to r M a ti M o to r A n g k a t = 1
s to p
4.9. Flowchart Program Angkat Mobil
Universitas Mercu Buana
Bambang Mujiharto
57
Tugas Akhir
4.10 Program Turun Mobil 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 Sub Turunmobil If Batasmobilturun = 1 Then Set Motormobilangkat Reset Motormobilturun Bitwait Batasmobilturun , Reset Set Motormobilangkat Set Motormobilturun End If End Sub start
tidak
Batas turun = 1
ya
Motor hidup Motor turun =0
tidak
Batas Turun = 0 ya
Motor mati Motor turun =1
stop
4.10. Flowchart Program Turun Mobil
Universitas Mercu Buana
Bambang Mujiharto
58
Tugas Akhir
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 Sub Dorongmasuk If Batasmobilmasuk = 1 Then Reset Motormobilmasuk Set Motormobilkeluar Bitwait Batasmobilmasuk , Reset Set Motormobilmasuk Set Motormobilkeluar End If End Sub start
tidak
Batas Masuk =1
ya
Motor hidup Motor dorong masuk = 0
tidak
Batas masuk = 0 ya
Motor mati Motor dorong Masuk = 1
stop
4.11. Flowchart Program Dorong Masuk
Universitas Mercu Buana
Bambang Mujiharto
59
Tugas Akhir
4.12 Program Dorong keluar 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 Sub Dorongkeluar If Batasmobilkeluar = 1 Then Reset Motormobilkeluar Set Motormobilmasuk Bitwait Batasmobilkeluar , Reset Set Motormobilkeluar Set Motormobilmasuk End If End Sub start
tidak
B atas K eluar
ya
M otor hidup M otor dorong keluar = 0
tidak
B atas keluar = 0 ya
M otor M ati M otor dorong K eluar = 1
stop
4.12. Flowchart Program Dorong Keluar
Universitas Mercu Buana
Bambang Mujiharto
60
Tugas Akhir
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 Sub Inikeypad Cls Lcd "MASUKAN KODE" Kodemasuk = "" A = 0 End Sub
s ta rt
B e r s ih k a n Layar C LS 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 odem asuk = ``A ``=
s to p
4.13. Flowchart Program Inisialisasi
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
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.
Universitas Mercu Buana
61
Bambang Mujiharto
62
Tugas Akhir
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.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
DAFTAR PUSTAKA ¾ 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 Proyek Mikrokontroller untuk Pemula. PT. Elex Media Komputindo Kelompok Gramedia, Jakarta, 2006.
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
Motor
Tahanan motor
GAMBAR MOTOR PENGGERAK ROTASI
Sensor posisi
Saklar on/off
Pemutar posisi kendaraan
LCD
keypad
GAMBAR ALAT TAMPAK DEPAN
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
Parkir rotasi
Rantai Penggerak
GAMBAR KOMPONEN JADI PANDANGAN SAMPING
GAMBAR KEYPAD
Universitas Mercu Buana
Bambang Mujiharto
Tugas Akhir
Mikro
Travo
Relay
GAMBAR KOMPONEN
Universitas Mercu Buana
Bambang Mujiharto