PERANCANGAN PALANG KERETA API OTOMATIS
BERBASIS MIKROKONTROLER AT89S52
TUGAS AKHIR
ASRIANI UNGENER
072408020
PROGRAM STUDI D3 FISIKA INSTRUMENTASI
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN
ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
PERANCANGAN PALANG KERETA API OTOMATIS
BERBASIS MIKROKONTROLER AT89S52
TUGAS AKHIR
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
PROGRAM STUDI D3 FISIKA INSTRUMENTASI
DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN
ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
PERSETUJUAN
Judul : PERANCANGAN PALANG KERETA API
OTOMATIS BERBASIS MIKROKONTROLER AT89S52
Kategori : TUGAS AKHIR
Nama : ASRIANI UNGERER
Nomor Induk Mahasiswa : 072408020
Program Studi : DIPLOMA 3 (D3) FISIKA INSTRUMENTASI
Departemen : FISIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (MIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan,
Komisi Pembimbing :
Diketahui
Departemen Fisika FMIPA USU
Ketua, Pembimbing,
(Drs.Syarul Humaidi, M.Sc) (
PERNYATAAN
PERANCANGAN PALANG KERETA API OTOMATIS BERBASIS
MIKROKONTROLLER AT89S51 MENGGUNAKAN SENSOR
INFRAMERAH SEBAGAI SENSOR HALANGAN
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa hal kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan,
ASRIANI UNGERER
PENGHARGAAN
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pengasih dan Maha
Penyayang, atas Kasih Karunia-NYA yang melimpah penulis dapat
menyelesaikan Tugas Akhir ini sesuai dengan waktu yang telah ditetapkan.
Ucapan terimakasih penulis sampaikan kepada berbagai pihak yang telah
banyak membantu penulis dalam penyelesaian tugas ini yaitu kepada:
1. Bapak Dr.Eddy Marlianto, M.Sc, selaku Dekan Fakultas Matematika dan
Ilmu Pengetahuan Alam.
2. Bapak Drs.Syarul Humaidi, M.sc, selaku Ketua Jurusan Program Studi
Fisika Instrumentasi Fakultas Matematika dan ILmu Pengetahuan Alam.
3. Ibu Drs.Justinon, MSi, selaku Sekretaris Jurusan Program Studi Fisika
Instrumentasi Fakultas Matematika dan Ilmu Pengetahuan Alam.
4. Bapak Drs.Takdir Tamba, M.Eng.Sc, selaku Dosen pembimbing Tugas
Akhir.
5. Staff dan pegawai di Fakultas Matematika dan Ilmu Pengetahuan Alam.
6. Teristimewa kepada kedua orangtua penulis Ayahanda M.Simanullang
dan Ibunda R.Simanjorang yang telah banyak membantu melalui Doa,
dan moril maupun materil. Tidak ada yang boleh penulis berikan selain
doa. Semoga Tuhan memberikan kesehatan dan rezeki makin
bertambah-tambah. Kepada Kakak saya (K’Irma & K’Rahma) yang tak
henti-hentinya memberi perhatian, motivasi, dan dukungan Doa. Serta kepada
Penulis menyadari dalam pembuatan tugas akhir ini masih jauh dari
kesempurnaan, untuk itu penulis mengharapkan kritik dan saran dari pembaca
yang bersifat membangun dalam penyempurnaan tugas akhir ini.
Akhir kata penulis mengucapkan banyak terimakasih kepada semua pihak
yang telah turut serta membantu dalam menyelesaiakan tugas akhir ini. Tuhan
selalu memberkati.
ABSTRAK
Palang kereta api otomatis merupakan suatu otomatisasi yang diterapkan pada jalur transportasi Kereta Api guna menutup dan membuka jalan yang membatasi atau menghentikan jalur lalu lintas agar kendaraan berhenti sementara untuk mendahulukan kereta api yang akan lewat. Aplikasi ini hanyalah sebuah prototype kecil yang menggambarkan sebuah aplikasi untuk palang kereta api yang dapat bergerak secara otomatis, dibandingkan penerapan sesungguhnya aplikasi ini mungkin masih jauh sekali dari kejadian sebenarnya, akan tetapi aplikasi ini mungkin dapat sebagai dasar dari palang kereta api yang dapat berjalan secara otomatis.
DAFTAR ISI
Daftar Tabel ... viii
Daftar Gambar ... ix
BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah ... 1
1.2 Tujuan Penulisan ... 3
1.3 Batasan Masalah... 3
1.5 Sistematika Penulisan ... 4
BAB 2 LANDASAN TEORI 2.1 Perangkat Keras ... 6
2.1.1 Arsitektur Mikrokontroler AT89S52 ... 6
2.1.2 Konstruksi AT89S52 ... 8
2.1.3 sensor optocoupler ... 14
2.1.5 Motor stepper ... 18
2.1.6 Liquit Crystal Display ... 21
2.1.7 Relay. ... 22
2.2 Perangkat Lunak... 24
2.2.1 Instruksi Tranfer data ... 24
2.2.2 Instruksi aritmatika... 25
2.2.3 Instruksi Logika ... 26
2.2.4 Instruksi Transfer kendali ... 26
2.2.5 software MIDE Studio for MCS-51 ... 28
BAB 3 PERANCANGAN SISTEM
3.1 Perancangan Alat ... 31
3.1.2 Diagram Blok ... 31
3.1.2 Perancangan Sensor optocoupler ... 33
3.1.3 Rangkaian Mikrokontroler AT89S52 ... 34
3.1.4 Rangkaian Catudaya (PSA)... 36
3.1.5 Perancangan Driver Penggerak Motor stepper ... 37
3.1.6 Rangkaian Relay ... 38
3.1.7 Indikator LED ... 40
3.1.8 Display LCD Character 2x16 ... 40
3.2 Perancangan Program ... 43
BAB 4 PENGUJIAN RANGKAIAN DAN ANALISA 4.1 Pengujian Rangkaian ... 58
4.1.1 Pengujian rangkaian Mikrokontroler At89S52 ... 58
4.1.2 Pengujian Rangkaian sensor Optocoupler ... 60
4.1.3 Pengujian Rangkaian Driver Motor Stepper ... 61
4.1.4 Pengujian Pangkaian PSA ... 63
4.1.5 Pengujian Rangkaian Sirine ... 64
4.1.6 Pengujian Rangkaian LED ... 65
4.1.7 Pengujian LCD ... 66
BAB 5 KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 69
5.2 Saran ... 69
DAFTAR TABEL
ABSTRAK
Palang kereta api otomatis merupakan suatu otomatisasi yang diterapkan pada jalur transportasi Kereta Api guna menutup dan membuka jalan yang membatasi atau menghentikan jalur lalu lintas agar kendaraan berhenti sementara untuk mendahulukan kereta api yang akan lewat. Aplikasi ini hanyalah sebuah prototype kecil yang menggambarkan sebuah aplikasi untuk palang kereta api yang dapat bergerak secara otomatis, dibandingkan penerapan sesungguhnya aplikasi ini mungkin masih jauh sekali dari kejadian sebenarnya, akan tetapi aplikasi ini mungkin dapat sebagai dasar dari palang kereta api yang dapat berjalan secara otomatis.
BAB 1
PENDAHULUAN
1.1 Latar Belakang Masalah
Dewasa ini perkembangan teknologi begitu sangat pesat dan bukan
menjadi sesuatu yang asing lagi. Bahkan semua perlengkapan baik untuk
keperluan rumah tangga sampai perlengkapan industri pun tidak ketinggalan
mengunakan teknologi canggih. Terutama teknologi dalam dunia elektronika,
banyak alat-alat/instrumen-instrumen yang bermunculan dengan tampilan
teknologi yang hebat. Kemajuan teknologi tersebut banyak menciptakan alat-alat
dengan sistem otomatis, artinya semua nya dikerjakan oleh alat itu sendiri tanpa
harus mengandalkan kerja manusia dalam melakukan suatu pekerjaan. Manusia
membutuhkan bantuan dari sesuatu yang dapat bekerja cepat, teliti, dan tidak
mengenal lelah. Sistem otomatisasi dapat menggantikan manusia untuk
mengerjakan sesuatu dalam lingkungan berbahaya bagi kesehatan dan
keselamatan atau daerah yang harus diamati dengan pengamatan lebih dari
kemampuan panca indera manusia. Kemajuan teknologi dalam bidang elektronika
akan mampu mengatasi masalah-masalah yang rumit sekalipun, dengan ketelitian
Dalam kehidupan masyarakat tidak pernah lepas dengan alat transportasi
baik laut, air dan udara. Tetapi keberadaan alat transportasi tersebut juga
mengakibatkan banyak resiko terjadinya kecelakaan apabila tidak ditanggulangi
dengan baik. Dalam hal ini kita akan membahas transportasi darat yaitu Kereta
Api sebagai alat transportasi. Tidak jarang kita mendengar terjadi kecelakaan
kereta api yang menyebabkan luka parah dan bahkan korban jiwa karena kelalaian
manusia ditambah lagi fasilitas informasi pada batas jalan dengan rel kereta api
tidak dilenggkapi standar keamanan yang memadai. Berangkat dari masalah ini
penulis membuat tugas akhir yang berjudul “Simulasi Palang Kereta Api
Menggunakan Sensor Optocoupler Berbasis Mikrokontroler AT89S52 ”.
Mikrokontroler AT89S52 adalah chip mikrokontroler produksi Atmel Inc,
merupakan keluarga dari MCS-51 rancangan Intel. AT89S52 mempunyai fitur
dasar yang cukup lengkap untuk suatu pemrosesan input-output. Bahasa
pemrograman yang digunakan AT89S52 hampir tidak jauh berbeda dengan
instruksi set pada mikroprosesor intel yang sudah dipelajari pada perkuliahan.
Mikrokontroler adalah system computer yang ringkas, dapat menggantikan fungsi
computer dalam pengendalian kerja dan desain yang jauh lebih ringkas daripada
computer. Dengan ukurannya yang sangat kecil mikrokontroler dapat digunakan
pada peralatan yang bersifat bergerak (mobile) dalam hal ini adalah pada sebuah
palang kereta api otomatis.
Palang kereta api otomatis ini memanfaatkan sensor optocoupler yang
merupakan perpaduan antara led infra merah dengan fototransistor yang telah
yang hendak melewati batas jalan dan akan diteruskan ke mikrokontroler,
kemudian diproses dan diterjemahkan melalui indikator-indikator..
1.2 Tujuan Penulisan
Tujuan dilakukan tugas akhir ini adalah sebagai berikut:
1. Membuat suatu alat yang dapat mengetahui ada/tidaknya kereta api
yang ingin melewati batas jalan dengan sistem palang kerata api
otomatis berbasis mikrokontroler AT89S52.
2. Untuk mengetahui keefektifan sensor Optocoupler dalam mengetahui
kedatangan kereta api pada saat melewati batas jalan.
3. Untuk memanfaatkan mikrokontroler sebagai pusat pemproses data
yang diberikan oleh sensor.
4. Membuat suatu alat yang mudah digunakan, cepat, teliti dan dilengkapi
dengan sistem otomatis.
5. Sebagai informasi bagaimana dasar membangun sebuah instrument
yang dapat digunakan sebagai pendeteksi kedatangan kereta api untuk
melewati batas jalan dengan sistem palang otomatis.
1.3 Permasalahan Alat
1.Panjang lintasan keretra api = 140 cm. Proses ini dilakukan dalam
waktu 15 detik.
- Antara jarak peringatan hati-hati (kereta api akan mendekati batas jalan )
dengan jarak peringatan untuk berhenti (kereta api melewati batas jalan )
= 23 cm.
dengan jarak peringatan untuk silahkan jalan ( kereta api telah melewati
batas jalan ) = 57 cm. Proses ini dilakukan dalam waktu 5 detik.
- Antara jarak peringatan untuk silahkan jalan ( kereta api telah melewati
jalan ) dengan jarak peringatan hati-hati ( kereta api akan mendekati batas
jalan ) = 60 cm. Prosesnya ini dilakukan dalam waktu 10 detik.
1.4 Batasan Masalah
Penulisan tugas akhir ini dibatasi pada:
1. Alat ini difokuskan terhadap sistem otomatis palang kereta api dalam
mendeteksi kedatangan kereta api untuk melewati batas jalan.
2. Mikrokontroler yang digunakan adalah jenis AT89S52.
3. Sensor suhu yang digunakan sensor optocoupler.
4. Untuk menampilkan display tulisan digunakan LCD 2x16.
5. Sebagai penutup dan pembuka palang kereta api digunakan motor stepper.
1.5 Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman maka penulis
membuat sistematika penulisan bagaimana sebenarnya prinsip kerja alat yang
dibuat oleh penulis tersebut yaitu Palang Kereta Api Otomatis.
BAB 1 PENDAHULUAN
Bagian ini meliputi latar belakang masalah, tujuan penulisan,
batasan masalah, metode pengumpulan data, dan sistematika
BAB 2 LANDASAN TEORI
Pada bagian ini akan dijelaskan landasan teori meliputi arsitektur
dan konstruksi mikrokontroler AT89S52 (hardware dan software),
sensor optcoupler, selain itu juga membahas komponen pendukung
lainnya yang berhubungan dengan Palang Kereta Api Otomatis.
BAB 3 PERANCANGAN SISTEM
Pada bagian ini akan dijelaskan tentang perancangan alat yang
meliputi diagram blok, skematik dari masing-masing rangkaian,
diagram alir, serta program yang diisikan ke mikrokontroler
AT89S52.
BAB 4 PENGUJIAN RANGKAIAN DAN ANALISA
Bagian ini meliputi uraian tentang cara menguji dan pembahasan
cara kerja Palang Kereta Api Otomatis.
BAB 5 KESIMPULAN DAN SARAN
Bagian ini merupakan penutup yang meliputi tentang kesimpulan
dari pembahasan dari laporan proyek ini serta saran yang diberikan
demi kesempurnaan dan pengembangan proyek ini pada masa yang
BAB 2
LANDASAN TEORI
2.1 Perangkat Keras
Pada subbab ini akan dibahas perangkat – perangkat keras yang digunakan pada
palang kereta otomatis ini. Perangkat – perangkat keras tersebut antara lain adalah
sensor optocoupler, motor stepper, Buzzer sirine, indikator led, display LCD 2 x
16 dan rangkaian mikrokontroler AT89S52.
2.1.1 Asitektur Mikrokontroler AT89S52
Perkembangan teknologi telah maju dengan pesat dalam perkembangan
dunia elektronika, khususnya dunia mikroelektronika. Penemuan silikon
menyebabkan bidang ini mampu memberikan sumbangan yang amat berharga
bagi perkembangan teknologi modern. Atmel sebagai salah satu vendor yang
mengembangkan dan memasarkan produk mikroelektronika telah menjadi suatu
teknologi standar bagi para desainer sistem elektronika masa kini.
Tidak seperti sistem komputer, yang mampu menangani berbagai macam
mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan
lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer
perbandingan RAM dan ROM-nya besar, artinya program-program pengguna
disimpan dalam ruang RAM yang relatif besar dan rutin-rutin antarmuka
perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan pada
mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program
kontrol disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang
ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat
penyimpanan sementara, termasuk register-register yang digunakan pada
mikrokontroler yang bersangkutan.
Mikrokontroler adalah single chip computer yang memiliki kemampuan
untuk diprogram dan digunakan untuk tugas-tugas yang berorientasi kontrol.
Mikrokontroler berkembang dengan dua alasan utama, yaitu kebutuhan pasar
(market needed) dan perkembangan teknologi baru. Yang dimaksud dengan
kebutuhan pasar yaitu kebutuhan manusia yang semakin besar terhadap alat-alat
elektronik dengan perangkat pintar sebagai pengontrol dan pemroses data.
Sedangkan yang dimaksud dengan perkembangan teknologi baru adalah
perkembangan teknologi semikonduktor yang memungkinkan pembuatan chip
dengan kemampuan komputasi yang sangat cepat, bentuk yang semakin mungil,
dan harga yang semakin murah.
Penggunaan mikrokontroler sangat luas, tidak hanya untuk akuisisi data
melainkan juga untuk pengendalian di pabrik-pabrik, kebutuhan peralatan kantor;
peralatan rumah tangga, automobil dan sebagainya. Hal ini disebabkan
CPU (Central Prossesing Unit), ROM (Read Only Memory), RAM (Random
Acces Memory), dan I/O) yang telah terpadu dalam satu Integrated Circuit, selain
itu komponennya (AT89S52) murah dan mudah didapatkan di pasaran.
Tidak seperti system computer, yang mampu menangani berbagai macam
program aplikasi (misalnya pengolah data, pengolah angka dan lain sebagainya),
mikrokontroler hanya bisa digunakan untuk suatu aplikasi tertentu saja. Perbedaan
lainnya terletak pada perbandingan RAM-nya dan ROM. Pada system computer
perbandingan RAM dan ROM-nya besar, artinya program-program pengguna di
simpan dalam ruang RAM yang cukup besar sedangkan rutin-rutin antarmuka
perangkat keras di simpan dalam ruang ROM yang kecil. Sedangkan pada
mikrokontroler, perbandingan RAM dan ROM-nya yang besar artinya program
control di simpan dalam ROM (bisa masked ROM atau Flash PEROM) yang
ukurannya relative lebih besar, sedangkan RAM digunakan sebagai tempat
penyimpanan sementara, termasuk register-register yang digunakan pada
mikrokontroler yang bersangkutan.
Gambar 2.1. Blok Diagram Fungsional AT89S52
Mikrokontroler AT89S52 hanya memerlukan tambahan 3 buah kapasitor,
1 resistor dan 1 kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan
resistor 8k2 Ohm dipakai untuk membentuk rangkaian reset. Dengan adanya
rangkaian reset ini AT89S52 otomatis direset begitu rangkaian menerima catu
daya. Kristal dengan frekuensi maksimum 12 MHz dan kapasitor 30 piko-Farad
dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan
kecepatan kerja mikrokontroler.
Memori merupakan bagian yang sangat penting pada mikrokontroler.
Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. ROM (Read
Only Memory) yang isinya tidak berubah meskipun IC kehilangan catu daya.
Sesuai dangan keperluannya, dalam susunan MCS-51 memori penyimpanan
program ini dinamakan sebagai memori program.
RAM (Random Access Memory) isinya akan sirna begitu IC kehilangan
catu daya, dipakai untuk menyimpan data pada saat program bekerja. RAM yang
dipakai untuk menyimpan data ini disebut sebagai memori data.
Ada berbagai jenis ROM, untuk mikrokontroler dengan program yang
sudah baku dan diproduksi secara massal, program diisikan ke dalam ROM pada
mikrokontroler mengunakan ROM yang dapat diisi ulang atau
Programable-Eraseable ROM yang disingkat menjadi PEROM atau PROM. Dulu banyak
dipakai UV-EPROM (Ultra Violet Eraseable Programable ROM) yang kemudian
dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih
murah.
Jenis memori yang dipakai untuk memori program AT89S52 adalah Flash
PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu
lewat bantuan alat yang dinamakan sebagai AT89S52 Flash PEROM
Programmer.
Memori data yang disediakan dalam chip AT89S52 sebesar 256 byte,
meskipun hanya kecil saja tapi untuk banyak keperluan, memori berkapasitas 256
byte sudah cukup. Sarana Input/Output (I/O) yang disediakan cukup banyak dan
bervariasi. AT89S52 mempunyai 32 jalur Input/Output. Jalur Input/Output paralel
dikenal sebagai Port 1 (P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).
AT89S52 dilengkapi UART (Universal Asyncronous Receiver /
Transmitter) yang biasa dipakai untuk komunikasi data secara serial. Jalur untuk
komunikasi data serial (RXD dan TXD) diletakkan berhimpitan dengan P3.0 dan
P3.1 di kaki nomor 10 dan 11, sehingga kalau sarana input/ouput yang bekerja
menurut fungsi waktu, clock penggerak untaian pencacah ini bisa berasal dari
oscillator kristal atau clock yang diumpan dari luar lewat T0 dan T1. T0 dan T1
berhimpitan dengan P3.4 dan P3.5, sehingga P3.4 dan P3.5 tidak bisa dipakai
untuk jalur input/ouput parelel kalau T0 dan T1 terpakai.
AT89S52 mempunyai enam sumber pembangkit interupsi, dua
Kedua kaki ini berhimpitan dengan P3.2 dan P3.3 sehingga tidak bisa dipakai
sebagai jalur input/output paralel kalau INT0 dan INT1 dipakai untuk menerima
sinyal interupsi. Port 1 dan Port 2, UART, Timer 0, Timer 1 dan sarana lainnya
merupakan register yang secara fisik merupakan RAM khusus, yang ditempatkan
di Special Function Register (SFR).
Mikrokontroller keluarga MCS 51 memiliki port-port yang lebih banyak
(40 port I/O) dengan fungsi yang bisa saling menggantikan sehingga
mikrokontroller jenis ini menjadi sangat digemari karena hanya dalam sebuah
chip sudah bisa mengkafer untuk banyak kebutuhan. Konfigurasi dan Deskripsi
kaki-kaki mikrokomputer. AT89S52 adalah sebagai berikut:
Gambar 2.2. Konfigurasi Pin AT89S52
Fungsi dari masing-masing pin AT89S52 adalah :
Deskripsi pin-pin pada mikrokontroler AT89S52 :
Suplai tegangan 5 Volt.
• GND (Pin 20)
Ground.
• Port 0 (Pin 39 – Pin 32)
Port 0 dapat berfungsi sebagai I/O biasa, low order multiplex address/data
ataupun penerima kode byte pada saat flash programming Pada fungsinya sebagai
I/O biasa port ini dapat memberikan output sink ke delapan buah TTL input atau
dapat diubah sebagai input dengan memberikan logika 1 pada port tersebut. Pada
fungsinya sebagai low order multiplex address/data, port ini akan mempunyai
internal pull up. Pada saat flash programming diperlukan eksternal pull up,
terutama pada saat verifikasi program.
• Port 1 (Pin 1 – Pin 8)
Port 1 berfungsi sebagai I/O biasa, pada kaki ke 6, ke 7 dan ke 8 terdapat Mosi,
Miso dan Sck sebagai masukan dari ISP Programmer yang terhubung ke
komputer. Tanpa adanya port ini maka mikrokontroler tidak dapat diprogram oleh
ISP Programmer.
• Port 2 (Pin 21 – pin 28)
Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengakses
memori secara 16 bit. Pada saat mengakses memori 8 bit, port ini akan
mengeluarkan isi dari P2 special function register. Port ini mempunyai internal
pull up dan berfungsi sebagai input dengan memberikan logika 1. Sebagai output,
• Port 3 (Pin 10 – pin 17)
Port 3 merupakan 8 bit port I/O dua arah dengan internal pull up. Port 3 juga
mempunyai fungsi pin masing-masing, yaitu sebagai berikut :
Nama Pin Fungsi
P3.0 (Pin 10) RXD (Port Input Serial)
P3.1 (Pin 11) TXD (Port Output Serial)
P3.2 (Pin 12) INTO (Interrupt 0 Eksternal)
P3.3 (Pin 13) INT1 (Interrupt 1 Eksternal)
P3.4 (Pin 14) T0 (Input Eksternal Timer 0)
P3.5 (Pin 15) T1 (Input Eksternal Timer 1)
P3.6 (Pin 16) WR (untuk menulis eksternal data memori)
P3.7 (Pin 17) RD (untuk membaca eksternal data memori)
Tabel 2.1. Konfigurasi Port 3 Mikrokontroler AT89S52
• RST (pin 9)
Reset akan aktif dengan memberikan input high selama 2 cycle.
• ALE/PROG (pin 30)
Address latch Enable adalah pulsa output untuk me-latch byte bawah dari alamat
selama mengakses memori eksternal. Selain itu, sebagai pulsa input program
(PROG) selama memprogram Flash.
• PSEN (pin 29)
• EA (pin 31)
Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan
menjalankan program yang ada pada memori eksternal setelah sistem di-reset.
Jika kondisi high, pin ini akan berfungsi untuk menjalankan program yang ada
pada memori internal. Pada saat flash programming, pin ini akan mendapat
tegangan 12 Volt.
• XTAL1 (pin 19)
Input untuk clock internal.
• XTAL2 (pin 18)
Output dari osilator.
Spesifikasi penting AT89S52 :
a. Kompatibel dengan keluarga mikrokontroler MCS51
sebelumnya
b. 8 K Bytes In system Programmable (ISP) flash memori dengan
kemampuan 1000 kali baca/tulis
c. tegangan kerja 4-5.0V
d. Bekerja dengan rentang 0 – 33MHz
e. 256x8 bit RAM internal
f. 32 jalur I/0 dapat diprogram
g. 3 buah 16 bit Timer/Counter
h. 8 sumber interrupt
i. saluran full dupleks serial UART
2.1.3 Sensor Optocoupler
Optocoupler diartikan sebagai Opto (Optic) dan Coupler (Penghubung). Jadi
optocoupler adalah suatu komponen penghubung (coupling) yang bekerja
berdasarkan picu dari cahaya optik. Optocoupler menggabungkan LED IR dan
phototransistor dalam satu kemasan. Pada optocoupler terdiri dari dua bagian,
yaitu bagian transmitter dan receiver. Transmitter biasanya dibangun dari sebuah
led infra merah, untuk memperoleh ketahanan yang lebih baik terhadap cahaya
tampak dari pada jika menggunakan LED biasa. Receiver dibangun dengan dasar
komponen phototransisitor, yang akan menghasilkan bias maju/ON bila mendapat
cahaya (infra merah) dari transmitter dan sebaliknya menghasilkan cutoff/OFF
bila tidak mendapat cahaya (infra merah) dari LED transmitter
Gambar 2.3. Bentuk Fisik Optocoupler
Bagian-bagian optocoupler:
1. Led inframerah yang berfungsi sebagai transmitter
Sinar infra merah termasuk dalam gelombang elektromagnetik yang tidak
tampak oleh mata telanjang. Sinar ini tidak tampak oleh mata karena mempunyai
panjang gelombang berkas cahaya yang terlalu panjang bagi tanggapan mata
manusia. Sifat-sifat cahaya infra merah:
2. tidak dapat menembus bahan yang tidak tembus pandang
Led inframerah adalah suatu bahan semikonduktor yang memancarkan
cahaya monokromatik (cahaya yang hanya terdiri atas satu warna dan satu
panjang gelombang) yang tidak koheren ketika diberi tegangan maju.
Pengembangan led inframerah dimulai dengan alat inframerah dibuat dengan
galliumarsenide. Cahaya infra merah pada dasarnya adalah radiasi
elektromagnetik dari panjang gelombang yang lebih panjang dari cahaya tampak,
tetapi lebih pendek dari radiasi gelombang radio, dengan kata lain infra
merupakan warna dari cahaya tampak dengan gelombang terpanjang, yaitu sekitar
700 nm sampai 1 mm.
Gambar 2.4. Led Inframerah
Cahaya led inframerah timbul sebagai akibat penggabungan elektron dan
hole pada persambungan antara dua jenis semikonduktor dimana setiap
penggabungan disertai dengan pelepasan energi. Pada penggunaannya led
inframerah ini merupakan komponen elektronika yang memancarkan cahaya infra
dengan tegangan dc untuk transmisi atau sensor jarak dekat, dan dengan tegangan
ac (30–40 KHz) untuk transmisi atau sensor jarak jauh.
Karakteristik dari LED Infra merah:
1.Dapat dipakai dalam waktu yang sangat lama.
2.Membutuhkan daya yang kecil.
3.Tidak mudah panas.
4.Dapat digunakan dalam jarak yang lebar.
2. Fototransistor yang berfungsi sebagai receiver
Receiver yang digunakan oleh sensor infra merah adalah jenis
fototransistor, yaitu jenis transistor bipolar yang menggunakan kontak (junction)
base-collector untuk menerima atau mendeteksi cahaya dengan gain internal yang
dapat menghasilkan sinyal analog maupun digital. Fototransistor ini akan
mengubah energi cahaya menjadi arus listrik dengan sensitivitas yang lebih tinggi
dibandingkan fotodioda ,tetapi dengan waktu respon yang secara umum akan
lebih lambat daripada fotodioda. Hal ini terjadi karena transistor jenis ini
mempunyai kaki basis terbuka untuk menangkap sinar,dan elektron yang
ditimbulkan oleh foton cahaya pada junction ini di-injeksikan di bagian basis dan
Gambar 2.5. Fototransistor
Pada fototransistor, jika kaki basis mendapat sinar maka akan timbul
tegangan pada basisnya dan akan menyebabkan transistor berada pada daerah
jenuhnya(saturasi), akibatnya tegangan pada kaki kolektor akansama dengan
ground (Vout=0 V). Sebaliknya jika kakibasis tidak mendapat sinar, tidak cukup
tegangan untuk membuat transistor jenuh, akibatnya semua arus akan dilewatkan
ke keluaran (Vout=Vcc).
Foto transistor memiliki karakteristik :
1.Pendeteksi jarak dekat Infra merah.
2.Dapat dikuatkan sampai 100 sampai 1500.
3.Respon waktu cukup cepat.
4.Dapat digunakan dalam jarak lebar.
5.Dapat dipasangkan dengan (hampir) semua penghasil cahaya atau cahaya
yang dekat dengan inframerah, seperti Led inframerah, Neon, Fluorescent,
lampu bohlam, cahaya laser dan api.
6.Mempunyai karakteristik seperti transistor, kecuali bagian basis digantikan
oleh besar cahaya yang diterima.
Ditinjau dari penggunaannya, Optocoupler dapat digunakan untuk
mendeteksi adanya nya penghalang antara transmitter dan receiver dengan cara
bagian tengah (antara Led Inframerah dan phototransistor) diberi suatu
penghalang. Contoh aplikasinya yaitu Optocoupler dengan piringan berlubang
untuk deteksi kecepatan putar motor, sistem deteksi lubang penanda disket pada
2.1.4 Motor Stepper
Motor langkah (stepper) banyak digunakan dalam berbagai aplikasi,
dipergunakan apabila dikehendaki jumlah putaran yang tepat atau di perlukan
sebagian dari putaran motor. Suatu contoh dapat di jumpai pada disk drive, untuk
proses pembacaan dan/atau penulisan data ke/dari cakram(disk), head baca-tulis
ditempatkan pada tempat yang tepat di atas jalur atau track pada cakram, untuk
head tersebut di hubungkan dengan sebuah motor langkah.
Aplikasi penggunaan motor langkah dapat juga di jumpai dalam bidang
industri atau untuk jenis motor langkah kecil dapat di gunakan dalam perancangan
suatu alat mekatronik atau robot. Motor langkah berukuran besar digunakan,
misalnya, dalam proses pengeboran logam yang menghendaki ketepatan posisi
pengeboran, dalam hal ini di lakukan oleh sebuah robot yang memerlukan
ketepatan posisi dalam gerakan lengannya dan lain-lain.
Pada gambar di bawah ditunjukkan dasar susunan sebuah motor langkah
(stepper).
Gambar 2.6. Diagram motor langkah (stepper) U
S A
D B
Magnet permanen N-S berputar kearah medan magnet yang aktif. Apabila
kumparan stator dialiri arus sedemikian rupa, maka akan timbul medan magnet
dan rotor akan berputar mengikuti medan magnet tersebut.setiap pengalihan arus
ke kumparan berikutnya menyebabkan medan magnet berputar berputar menurut
suatu sudut tertentu, biasanya informasi besar sudut putar tertulis pada badan
motor langkah yang bersangkutan. Jumlah keseluruhan pengalihan menentukan
sudut perputaran motor.Jika pengalihan arus di tentukan, maka rotor akan
berhenti pada posisi terakhir. Jika kecepatan pengalihan tidak terlalu tinggi, maka
slip akan dapat dihindari. Sehingga tidak di perlukan umpan balik (feedback) pada
pengendalian motor langkah.
Motor langkah yang akan di gunakan memiliki 4 fase (pole atau kutub),
pengiriman pulsa dari mikrokontroler ke rangkaian motor langkah dilakukan
secara bergantian, masing-masing 4 data (sesuai dengan jumlah phase-nya),
sebagian di tunjukkan pada gambar di bawah ini.
Gambar 2.7. Pemberian data/pulsa pada motor stepper
Pada saat yang sama ,untuk tiap motor langkah, tidak boleh ada 2 (dua)
masukan atau lebih yang mengandung pulsa sama dengan 1 (high), atau dengan
kata lain, pada suatu saat hanya sebuah masukan yang bernilai 1 (satu) sedangkan
lainnya bernilai 0 (nol).
C
D A
2.1.5 Liquid Crystal Display (LCD)
LCD merupakan salah satu komponen yang banyak dipilih untuk
dipergunakan sebagai tampilan karena kemudahannya dalam mengatur tampilan
agar lebih menarik. Salah satu contoh LCD yang banyak digunakan yaitu LCD
M1632 (LCD 2x16).
Gambar 2.8 Diagram Blok Tampilan Kristal Cair (LCD)
LCD display module M1632 terdiri dari dua bagian, yang pertama
merupakan panel LCD sebagai media penampil informasi dalam bentuk huruf/
angka dua baris, masing – masing baris bisa menampung 16 huruf/ angka.
Bagian kedua merupakan sebuah sistem yang dibentuk dengan
mikrokontroler yang ditempel dibalik pada panel LCD, berfungsi mengatur
tampilan LCD. Dengan demikian pemakaian LCD M1632 menjadi sederhana,
sistem lainnya cukup mengirimkan kode – kode ASCII dari informasi yang
ditampilkan .
Spesifikasi LCD M1632, yaitu ;
b. RAM data tampilan dan RAM pembangkit karakter dapat dibaca dari unit
mikroprosesor.
c. Beberapa fungsi perintah antara lain adalah penghapusan tampilan (display
clear), posisi kursor awal (cursor home), tampilan karakter kedip (display
character blink), pengeseran krusor (cursor shift) dan penggeseran
tampilan (display shif).
d. Rangkaian otomatis reset saat daya dinyalakan.
e. Catu daya tunggal +5 volt.
2.1.6 Relay
Relay adalah komponen elektronika berupa saklar elektronik yang
digerakkan oleh arus listrik. Secara prinsip, relai merupakan tuas saklar dengan
lilitan kawat pada batang besi (solenoid) di dekatnya. Ketika solenoid dialiri arus
listrik, tuas akan tertarik karena adanya gaya magnet yang terjadi pada solenoid
sehingga kontak saklar akan menutup. Pada saat arus dihentikan, gaya magnet
akan hilang, tuas akan kembali ke posisi semula dan kontak saklar kembali
terbuka. Relay biasanya digunakan untuk menggerakkan arus/tegangan yang besar
(misalnya peralatan listrik 4 ampere AC 220 V) dengan memakai arus/tegangan
yang kecil (misalnya 0.1 ampere 12 Volt DC). Dalam pemakaiannya biasanya
relay yang digerakkan dengan arus DC dilengkapi dengan sebuah dioda yang
di-paralel dengan lilitannya dan dipasang terbalik yaitu anoda pada tegangan (-) dan
katoda pada tegangan (+). Ini bertujuan untuk mengantisipasi sentakan listrik yang
terjadi pada saat relay berganti posisi dari on ke off agar tidak merusak komponen
Gambar 2.9 Relay
Relay adalah suatu komponen elektronika yang akan bekerja bila ada arus
yang melalui kumparannya. Sebuah relay terdiri dari kumparan yang dililitkan
pada inti besi dan kontak-kontak penghubung. Apabila kumparan yang melilit inti
besi dilalui arus listrik maka akan menimbulkan induksi medan magnet, dan
induksi ini akan menarik kontak-kontak penghubung relay.
Kontak penghubung relay terdiri dari dua bagian, yaitu :
1. Kontak NC (Normally Close),
Kontak penghubung dalam kondisi menutup atau terhubung bila relay
tidak mendapat masukan tegangan pada kumparannya. Tetapi bila diberi
tegangan yang mencukupi pada kumparannya maka kontak penghubung
menjadi terbuka (kondisi awal sebelum diaktifkan close).
2. Kontak NO (Normally Open).
Kontak penghubung dalam kondisi terbuka bila relay tidak mendapat
tegangan pada kumparannya. Tetapi bila diberi tegangan yang mencukupi
pada kumparannya maka kontak penghubung menjadi tertutup atau
2.2 Perangkat Lunak
Perangkat lunak (software) adalah seperangkat intruksi yang disusun
menjadi sebuah program untuk memerintahkan microcomputer melakukan suatu
pekerjaan. Sebuah instruksi selalu berisi kode operasi (op-code), kode
pengoperasian inilah yang disebut dengan bahasa mesin yang dapat dimengerti
oleh mikrokontroller. Instruksi-instruksi yang digunakan dalam memprogram
suatu program yang diisikan pada AT89S51 adalah instruksi bahasa pemograman
assembler atau sama dengan intruksi pemograman pada IC mikrokontrller 8031
dan MCS51.
2.2.1 Instruksi Transfer Data
Instruksi transfer data terbagi menjadi dua kelas operasi sebagai berikut :
• Transfer data umum ( General Purpose Transfer ), yaitu : MOV,
PUSH dan POP.
• Transfer spedifik akumulator ( Accumulator Specific Transfer ), yaitu
: XCH, XCHD, dan MOVC.
Instruksi transfer data adalah intruksi pemindahan /pertukaran data antara
operand sumber dengan operand tujuan. Operand-nya dapat berupa register,
memori atau lokasi suatu memori. Penjelasan instruksi transfer data tersebut dapat
dijelaskan sebagai berikut.
MOV : Transfer data dari Register satu ke Register yang lainnya, antara
Register dengan Memory.
PUSH : Transfer byte atau dari operand sumber ke suatu lokasi dalam stack
POP : Transfer byte atau dari dalam stack ke operand tujuan.
XCH : Pertukaran data antara operand akumulator dengan operand
sumber.
XCHD : Pertukaran nibble orde rendah antara RAM internal ( lokasinya
ditunjukkan oleh R0 dan R1 )
2.2.2 Instruksi Aritmatika
Operasi dasar aritmatik seperti penjumlahan, pengurangan, perkalian dan
pembagian dimiliki oleh AT89S51 dengan mnemonic : INC, ADD, SUBB, DEC,
MUL dan DIV. Penjelasan dari operasi mnemonic tersebut dijelaskan sebagai
berikut :
INC : Menambah satu isi sumber operand dan menyimpan hasilnya ke
operand tersebut
ADD : Penjumlahan antara akumulator dengan sumber operand dan
hasilnya disimpan di akumulator
SUBB : Pengurangan akumulator dengan sumber operand, hasilnya
disimpan dalam operand tersebut.
DEC : Mengurangi sumber operand dengan 1. dan hasilnya disimpan pada
operand tersebut.
MUL : Perkalian antara akumulator dengan Register B.
DIV : Pembagian antara akumulator dengan Register B dan hasilnya
2.2.3 Instruksi Logika
Mikrokontroller AT89S51 dapat melakukan operasi logika bit maupun
operasi logika byte. Operasi logika tersebut dibagi atas dua bagian yaitu :
• Operasi logika operand tunggal, yang terdiri dari CLR, SETB, CPL, RL,
RR, dan SWAP.
• Operasi logika dua operand seperti : ANL, ORL, dan XRL.
Operasi yang dilkukan oleh AT89S51 dengan pembacaan instruksi logika tersebut
dijelaskan dibawah ini :
CLR : Menghapus byte atau bit menjadi nol.
SETB : Menggeser bit atau byte menjadi satu.
CPL : Mengkomplemenkan akumulator.
RL : Rotasi akumulator 1 bit ke kiri.
RR : Rotasi akumulator ke kanan.
SWAP : Pertukaran nibble orde tinggi.
2.2.4 Instruksi Transfer Kendali
Instruksi transfer kendali (control transfer) terdiri dari (3) tiga kelas operasi yaitu
:
• Lompatan tidak bersyarat ( Unconditional Jump ) seperti : ACALL,
AJMP, LJMP,SJMP
• Lompatan bersyarat ( Conditional Jump ) seperti : JZ, JNZ, JB, CJNE,
dan DJNZ.
• Insterupsi seperti : RET dan RET1.
ACALL : Instruksi pemanggilan subroutine bila alamat subroutine
tidak lebih dari 2 Kbyte.
LCALL : Pemanggilan subroutine yang mempunyai alamat antara 2
Kbyte – 64 Kbyte.
AJMP : Lompatan untuk percabangan maksimum 2 Kbyte.
LJMP : Lompatan untuk percabangan maksimum 64 Kbyte.
JNB : Percabangan bila bit tidak diset.
JZ : Percabangan akan dilakukan jika akumulator adalah nol.
JNZ : Percabangan akan dilakukan jika akumulator adalah tidak
nol.
JC : Percabangan terjadi jika CY diset “1”.
CJNE : Operasi perbandingan operand pertama dengan operand
kedua, jika tidak sama akan dilakukan percabangan.
DJNZ : Mengurangi nilai operand sumber dan percabangan akan
dilakukan apabila isi operand tersebut tidak nol.
RET : Kembali ke subroutine.
RET1 : Kembali ke program interupsi utama
Dalam merancang suatu program mikrokontroler dibutuhkan suatu software yang
dapat menulis program dan mengubahnya menjadi bilangan heksadesimal. Untuk
menulis program dapat digunakan Software M-IDE Studio for MCS-51. Untuk
men-download program heksadesimal ke dalam mikrokontroler dapat digunakan
2.2.5 Software M-IDE Studio for MCS-51
Instruksi-instruksi yang merupakan bahasa assembly dituliskan pada
sebuah editor, yaitu M-IDE Studio Editor. Tampilannya seperti gambar 2.13 di
bawah ini.
Gambar 2.10 Tampilan M-IDE Studio MCS 51 sebagai 8051 editor menulis
program
Setelah program selesai ditulis, kemudian save dan setelah itu
di-Assemble (di-compile). Pada saat di-assemble akan tampil pesan peringatan dan
kesalahan. Jika masih ada kesalahan atau peringatan, itu berarti ada kesalahan
dalam penulisan perintah atau ada nama subrutin yang sama, sehingga harus
Software M-IDE Studio for MCS-51 ini berfungsi untuk merubah program
yang kita tuliskan ke dalam bilangan heksadesimal, proses perubahan ini terjadi
pada saat peng-compile-an. Bilangan heksadesimal inilah yang akan dikirimkan
ke mikrokontroler.
2.2.6 Software Downloader (ISP – Flash Programmer 3.0a)
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroler
digunakan software ISP- Flash Programmer 3.0a yang dapat di download dari
internet. Tampilannya seperti gambar 2.14 di bawah ini :
Gambar 2.11 ISP- Flash Programmer 3.a
Cara menggunakannya adalah dengan meng-klik Open File untuk
mengambil file heksadesimal dari hasil kompilasi M-IDE, kemudian klik Write
untuk mengisikan hasil kompilasi tersebut ke mikrokontroler. Untuk mengecek
yaitu dengan cara meng-klik Signature dan Read. Jika dapat ditulis maka program
akan dijalankan, jika tidak dapat ditulis maka akan ada peringatan “ no response”.
Untuk mengamankan agar program pada mikrokontroler tidak dapat dibaca oleh
orang yang tidak diinginkan, dapat digunakan Lock Bit-1, Lock Bit-2 dan Lock
Bit-3 yang masing-masingnya memiliki tingkat keamanan yang berbeda. Makin
tinggi tingkatan Lock Bitnya maka makin sulit membongkar programnya. Tetapi
BAB 3
PERANCANGAN SISTEM
3.1 Perancangan Alat
3.1.1 Diagram Blok
Secara garis besar, diagram blok dari rangkaian palang otomatis ini ditunjukkan
pada gambar 3.1. berikut ini:
µC DRIVER SIRINAI 1 SIRINAI 1
INDIKATOR LED DRIVER LED
Gambar 3.1. Diagram Blok Rangkaian
Keterangan dari diagram blok:
Palang kereta api otomatis ini dirancang hanya sebatas simulasi. Pada
palang ini terdapat 16 blok rangkaian utama yang mempunyai fungsi
1. Sensor optocoupler 1 berfungsi untuk mendeteksi/mengetahui bahwa kereta
api sudah dekat , sehingga pengguna jalan berhati-hati dan mengurangi
kecepatan kendaraannya.
2. Sensor optocoupler 2 berfungsi untuk mendeteksi/mengetahui bahwa kereta
api sudah dekat dan mau melewati lintasan jalan yang dilalui oleh pengguna
jalan, sehingga pengguna jalan harus berhenti.
3. Sensor optocoupler 3 berfungsi untuk mendeteksi/mengetahui bahwa kereta
api telah lewat (telah melewati jalan) sehinnga para pengguna jalan dapat
meneruskan perjalanannya.
4. Pengkondisi sinyal 1, 2 dan 3 digunakan untuk menegaskan data digital high
atau low sehingga kompatibel dengan mikrokontroler.
5. Motor stepper 1 berfungsi untuk membuka palang kereta api secara otomatis
pada saat kereta api belum melewati jalan dan menutup pada saat kereta api
melewati jalan. Motor stepper 1 ini digunakan untuk lajur kiri.
6. Motor stepper 1 berfungsi untuk membuka palang kereta api secara otomatis
pada saat kereta api belum melewati jalan dan menutup pada saat kereta api
melewati jalan. Motor stepper 1 ini digunakan untuk lajur kanan.
7. Driver motor stepper 1 dan 2 berfungsi untuk mengaktifkan/menggerakkan
motor stepper searah maupun berlawanan jarum jam dan untuk mengatur
derajat putaran motor stepper yang diinginkan.
8. Sirinai berfungsi untuk memberikan tanda peringatan bahwa kereta api mau
melewati jalan sehinnga pengguna jalan harus berhenti.
9. Driver sirinai berfungsi untuk mengaktifkan dan menonaktifkan suara sirinai
10. Indikator LED terdiri dari tiga indikator yaitu indikator lampu merah, kuning
dan hijau.
- Indikator led merah pengguna jalan harus berhenti
- Indikator led kuning pengguna jalan diharapkan berhati-hati
- Indikator led hijau pengguna jalan dapat meneruskan
perjalanannya.
11. LCD 2 x 16 berfungsi untuk tampilan yang digunakan untuk menerangkan
keadaan hati-hati, berhenti dan dapat meneruskan perjalanan secara
tertulis.
12. Mikrokontroler AT89S52 berfungsi untuk mengolah data digital yang
dikirimkan oleh sensor optocoupler, selanjutnya mikrokontroller akan
menampilkannya pada LCD 2x16 berupa peringatan,
mengaktifkan/menonaktifkan sirinai, dan indikator led.
3.1.2 Perancangan Sensor Optocoupler
Sensor yang digunakan dalam penelitian ini adalah sensor optocoupler.
Sensor ini merupakan perpaduan led inframerah (transmitter) dan
fototransistor (receiver). Tujuan utama dari digunakan sensor optoupler
4k7 C945
relay NO
Kipas 1 + -NO NC
Gambar 3.2 Rangkaian Penguat Sinyal Optocoupler
Saat lubang terlewati sinar dari led inframerah dan diterima fototransistor,
maka fototransistor akan saturasi dan saat sinar led inframerah tidak diterima
fototransistor, maka fototransistor akan cut-off. Susunan rangakaian yang
terdiri dari transistor C945 dan pemicu Schmitt (74LS14) digunakan sebagai
pengkondisi sinyal agar keluaran menjadi sinyal persegi (high/low) yang
kompatibel dengan mikrokontroler.
3.1.3 Rangkaian Mikrokontroler AT89S52
Rangkaian mikrokontroller AT89S52 ini merupakan pusat
pengolahan data dari sensor. Dalam alat ini, mikrokontroler digunakan
sebagai untuk membaca dan mengolah data dari sensor. Input (masukan)
pada rangkaian mokrokontroler ini dihubungkan dengan 3 buah sensor
optocoupler yang berfungsi untuk mendeteksi ada/tidaknya kereta api .
Sedangkan output (keluaran) dihubungkan dengan piranti tampilan, dalam
hal ini dot matrix LCD, sirinai, dan indikator LED. Rangkaian
Gambar 3.3 rangkaian minimum mikrokontroller AT89S52
Pada rangkaian, Pin 31 External Access Enable (EA) diset high (H). Ini
dilakukan karena mikrokontroller AT89S52 tidak menggunakan memori
eskternal. Pin 18 dan 19 dihubungkan ke XTAL 12 MHz dan capasitor 33 pF.
XTAL ini akan mempengaruhi kecepatan mikrokontroller AT89S52 dalam
mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset
(aktif tinggi). Pulsa transisi dari rendah ke tinggi akan me-reset mikrokontroller
ini. Pin 32 sampai 39 adalah Port 0 yang merupakan saluran/bus I/O 8 bit open
collector dapat juga digunakan sebagai multipleks bus alamat rendah dan bus data
selama adanya akses ke memori program eksternal. Pada Port 0 ini masing masing
pin dihubungkan dengan resistor 4k7 ohm. Resistor 4k7 ohm yan dihubungkan ke
port 0 befungsi sebagai pull up( penaik tegangan ) agar output dari
mikrokontroller dapat mntrigger transistor. Pin 1 sampai 8 adalah Port 1. Pin 21
sampai 28 adalah Port 2. Dan Pin 10 sampai 17 adalah Port 3. Pin 20 merupakan
Vreg ground dihubungkan dengan ground pada power supplay. Pin 40 merupakan
sumber tegangan positif dihubungkan dengan + 5 volt dari power supplay.
3.1.4 Rangkaian Catu Daya (PSA)
Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian
yang ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan
12 volt, keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh
rangkaian.
Rangkaian power supplay ditunjukkan pada gambar 3.2 berikut ini :
Gambar 3.4 Rangkaian Power Supply (PSA)
Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan
tegangan dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan
diratakan oleh kapasitor 2200 μF. Regulator tegangan 5 volt (LM7805CT)
digunakan agar keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan
pada tegangan masukannya. LED hanya sebagai indikator apabila PSA
dinyalakan. Transistor PNP TIP 42C disini berfungsi untuk mensupplay arus
apabila terjadi kekurangan arus pada rangkaian, sehingga regulator tegangan
(LM7805CT) tidak akan panas ketika rangkaian butuh arus yang cukup besar.
Tegangan 12 volt DC langsung diambil dari keluaran 2 buah dioda penyearah.
3.1.5 Perancangan Driver penggerak Motor Stepper
Rangkaian driver penggerak motor ini hanya menggunakan IC buffer ULN 2803,
dimana fungsi IC ini agar data yang yang diterima dari mikrokontroler
benar-benar terdefinisi sebagai data digital (high/low) sehingga dat-data ini dapat
mengatur gerakan motor stepper searah jarum jam, berlawanan jarum jam ataupun
Gambar 3.5 IC ULN 2803 dan Driver Motor Stepper
Dimana IC ULN 2803 ini diaktifkan dengan tegangan supplay 12 VDC,
mempunyai 8 bit data input dan 8 bit data output dimana tegangan supplay
diberikan pada common (kaki 10) dan ground pada kaki 9. Tetapi pada rangkaian
ini hanya digunakan 4 bit data untuk menggerakkan 1 motor stepper, kara motor
stepper hanya memiliki 4 bit data yang dapat digerakkan dan diatur putaran nya
baik searah maupun berlawanan jarum jam. Dimana pada alat ini motor stepper
digerakkan 90 derajat searah jarum jam (palang pintu membuka) dan 90 derajat
berlawanan jarum jam (palang pintu menutup).
3.1.6 Rangkaian Relay
Relay berfungsi sebagai saklar elektronik yang dapat menghidupkan atau
mematikan peralatan elektronik (dalam hal sirinai). Rangkaian relay pengendali
Ke mikrokontroler
4k7C945
relay NO
Sirinai
+
-NO NC
Gambar 3.6 Rangkaian Relay Pengendali sirinai
Relay merupakan salah satu komponen elektronik yang terdiri dari
lempengan logam sebagai saklar dan kumparan yang berfungsi untuk
menghasilkan medan magnet. Pada rangkaian ini digunakan relay 12 volt.
Pada rangkaian ini untuk mengaktipkan atau menon-aktipkan relay
digunakan transistor tipe NPN. Dari gambar dapat dilihat bahwa negatip relay
dihubungkan ke kolektor dari transistor NPN (C945) dan positif relay
dihubungkan pada tegangan 12 volt., ini berarti jika transistor dalam keadaan
aktip maka kolektor akan terhubung ke emitor dimana emitor langsung terhubung
ke ground yang menyebabkan tegangan di kolektor menjadi 0 volt, keadaan ini
akan mengakibatkan relay aktip. Disaat relay aktif maka kaki-kaki relay yang
berfungsi sebagai Normali Close sudah mendapatkan tegangan 12 volt. Sementara
kaki-kaki relay yang berfungsi sebagai Normali open masih belum mendapatkan
tegangan 12 volt sebelum ada inputan (inputan berupa logika high atau 5 volt).
Sebaliknya jika transistor tidak aktip, maka kolektor tidak terhubung ke emitor,
sehingga tegangan pada kolektor menjadi 12 volt, keadaan ini menyebabkan relay
menaikkan tegangan agar inputan mikrokontroler sanggup mengaktifkan relay.
Dioda dihubungkan secara terbalik untuk mengantisipasi sentakan listrik yang
terjadi pada saat relay berganti posisi dari on ke off agar tidak merusak komponen
di sekitarnya, sentakan itu hanya terjadi ketika relay dinonaktipkan, pada saat ini
arus akan terus mengalir melalui kumparan dan arus ini akan dialirkan ke dioda.
Tanpa adanya dioda sentakan listrik itu akan mengalir ke transistor, yang
mengakibatkan kerusakan pada transistor.
3.1.7 Indikator LED
Rangkaian indikator led dibuat denggan menggunakan sistem aktif high,
maksudnya led akan hidup jika inputnya diberi logika high dan led akan mati jika
inputnya diberi logika low.
INPUT
Gambar 3.7 Rangkaian LED dengan sistem Aktif High
Kemudian hidup/matinya LED diatur secara program sehingga nyala LED
dapat dimodifikasi sesuai diinginkan.
3.1.8 Display LCD Character 2x16
Display LCD 2x16 berfungsi sebagai penampil nilai kuat induksi medan
mempunyai lebar display 2 baris 16 kolom atau biasa disebut sebagai LCD
Character 2x16, dengan 16 pin konektor, yang didifinisikan sebagai berikut:
PIN Nama fungsi
0 = Instruction Register
1 = Data Register
5 R/W
Read/ Write, to choose write or read
mode
Gambar 3.8 LCD character 2x16
Modul LCD terdiri dari sejumlah memory yang digunakan untuk display.
Semua teks yang kita tuliskan ke modul LCD akan disimpan didalam memory ini,
dan modul LCD secara berturutan membaca memory ini untuk menampilkan teks
ke modul LCD itu sendiri.
Gambar 3.9 Peta memory LCD character 2x16
Pada peta memori diatas, daerah yang berwarna biru ( 00 s/d 0F dan 40 s/d
4F ) adalah display yang tampak. jumlahnya sebanyak 16 karakter per baris
dengan dua baris. Angka pada setiap kotak adalah alamat memori yang
bersesuaian dengan posisi dari layar. Dengan demikian dapat dilihat karakter
pertama yang berada pada posisi baris pertama menempati alamat 00h. dan
karakter kedua yang berada pada posisi baris kedua menempati alamat 40h
Agar dapat menampilkan karakter pada display maka posisi kursor harus
terlebih dahulu diset. Instruksi Set Posisi Kursor adalah 80h. dengan demikian
untuk menampilkan karakter, nilai yang terdapat pada memory harus ditambahkan
Sebagai contoh, jika kita ingin menampilkan huruf “B” pada baris kedua
pada posisi kolom kesepuluh.maka sesuai dengan peta memory, posisi karakter
pada kolom 10 dari baris kedua mempunyai alamat 4Ah, sehingga sebelum kita
menampilkan huruf “B” pada LCD, kita harus mengirim instruksi set posisi
kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h +
4Ah =0Cah. Sehingga dengan mengirim perintah 0Cah ke LCD, akan
menempatkan kursor pada baris kedua dan kolom ke 11.
3.2 Perancangan Program
Alat ini dirancang untuk membuka dan menutup palang kreta api secara otomatis.
Diagram alir dari program yang akan dibuat adalah sebgai berikut:
Start
Program diawali dengan start, kemudian program akan mengecek apakah
sensor 1 terdeteksi (artinya, kereta api sudah dekat dan hendak melewati batas
jalan diharapkan pengguna jalan berhati-hati) jika ya, maka program akan
menampilkan pesan hati-hati karena keret api hendak lewat pada LCD secara dan
menyalakan indikator led kuning yang bearti hati-hati. Jika tidak maka program
akan mengecek apakah sensor 2 terdeteksi(artinya, kereta api akan melewati batas
jalan pengguna jalan harus berhenti) jika ya, maka program akan menampilkan
pesan berhenti kepada pengguna jalan, menyalakan led indikator merah yang
berarti berhenti dan mengaktifkan sirinai agar pengguna jalan benar-benar
mengetahui kereta api akan segera melewati batas jalan. Jika tidak program akan
kembali mengecek apakah sensor 3 terdeteksi( artinya, kereta api telah melewati
batas jalan pangguna jalan sudah boleh jalan kembali ) jika ya, maka program
akan menampilkan pesan silahkan jalan dan menyalakan lampu hijau yang artinya
silahkan jalan. Jika tidak maka program akan kembali ke rutin pengecekan sensor.
Program akan bekerja secara terus-menerus mengikuti siklus rutin dari
perancangan palang kereta api otomatis menggunakan sensor optocoupler berbasis
mikrokontroler AT89S52.
Program Simulasi Palang Kereta Api Menggunakan Sensor Optocoupler
Berbasis Mikrokontroler:
lampu_k equ p3.6
lampu_m equ p3.5
lampu_i equ p3.7
sensor1 equ p2.3
sensor3 equ p2.4
stepper equ p1
alarm equ p2.1
RS EQU P2.5
RW EQU P2.6
EN EQU P2.7
clr lampu_k
clr lampu_m
clr lampu_i
clr alarm
setb lampu_i
kelap_kelip:
setb p3.0
acall utama
acall delaymax
clr p3.0
setb p3.1
acall utama
acall delaymax
clr p3.1
setb p3.2
acall delaymax
clr p3.2
setb p3.3
acall utama
acall delaymax
clr p3.3
setb p3.4
acall utama
acall delaymax
clr p3.4
sjmp kelap_kelip
utama:
jnb sensor1,lampu_kuning
jnb sensor2,tutup_gerbang
jnb sensor3,lompat
ret
lompat:
ajmp buka_gerbang
lampu_kuning:
jb sensor1,kelap_kelip
setb lampu_k
clr lampu_m
clr lampu_i
hati_hati:
mov 20h,#' '
mov 21h,#' '
mov 22h,#' '
mov 23h,#'H'
mov 24h,#'A'
mov 25h,#'T'
mov 26h,#'I'
mov 27h,#'-'
mov 28h,#'H'
mov 29h,#'A'
mov 2ah,#'T'
mov 2bh,#'I'
mov 2ch,#' '
mov 2dh,#' '
mov 2eh,#' '
mov 2fh,#' '
mov 30h,#'K'
mov 31h,#'E'
mov 32h,#'R'
mov 34h,#'T'
mov 35h,#'A'
mov 36h,#' '
mov 37h,#'A'
mov 38h,#'P'
mov 39h,#'I'
mov 3ah,#' '
mov 3bh,#'L'
mov 3ch,#'E'
mov 3dh,#'W'
mov 3eh,#'A'
mov 3fh,#'T'
acall lcd
sjmp lampu_kuning
LEMOT:
ajmp kelap_kelip
tutup_gerbang:
jb sensor2,LEMOT
setb alarm
clr lampu_k
setb lampu_m
kereta_lewat:
mov 20h,#' '
mov 21h,#' '
mov 22h,#' '
mov 23h,#'D'
mov 24h,#'I'
mov 25h,#'H'
mov 26h,#'A'
mov 27h,#'R'
mov 28h,#'A'
mov 29h,#'P'
mov 2ah,#'K'
mov 2bh,#'A'
mov 2ch,#'N'
mov 2dh,#' '
mov 2eh,#' '
mov 2fh,#' '
mov 30h,#' '
mov 31h,#' '
mov 32h,#'B'
mov 33h,#'E'
mov 34h,#'R'
mov 35h,#'H'
mov 37h,#'N'
mov 38h,#'T'
mov 39h,#'I'
mov 3ah,#'!'
mov 3bh,#'!'
mov 3ch,#'!'
mov 3dh,#' '
mov 3eh,#' '
mov 3fh,#' '
acall lcd
tutup:
mov a,#11h
mov r0,#50
tarik:
mov stepper,a
rr a
acall delay
djnz r0,tarik
sjmp tutup_gerbang
lompat_lagi:
buka_gerbang:
jb sensor3,lompat_lagi
clr lampu_k
clr lampu_m
setb lampu_i
kereta_selesai:
clr alarm
mov 20h,#' '
mov 21h,#' '
mov 22h,#' '
mov 23h,#' '
mov 24h,#'S'
mov 25h,#'I'
mov 26h,#'L'
mov 27h,#'A'
mov 28h,#'H'
mov 29h,#'K'
mov 2ah,#'A'
mov 2bh,#'N'
mov 2ch,#' '
mov 2dh,#' '
mov 2fh,#' '
mov 30h,#' '
mov 31h,#' '
mov 32h,#' '
mov 33h,#' '
mov 34h,#'L'
mov 35h,#'E'
mov 36h,#'W'
mov 37h,#'A'
mov 38h,#'T'
mov 39h,#'!'
mov 3ah,#'!'
mov 3bh,#'!'
mov 3ch,#' '
mov 3dh,#' '
mov 3eh,#' '
mov 3fh,#' '
acall lcd
buka:
mov a,#11h
mov r0,#50
naik:
mov stepper,a
acall delay
djnz r0,naik
ajmp kelap_kelip
lcd: MOV A,#038H
LCALL SCAN
ACALL PENAMPIL
ACALL SCAN
MOV A,20h
ACALL KIRIM
MOV A,21h
ACALL KIRIM
MOV A,22h
ACALL KIRIM
MOV A,23h
ACALL KIRIM
MOV A,24h
ACALL KIRIM
MOV A,25h
ACALL KIRIM
MOV A,26h
MOV A,27h
ACALL KIRIM
MOV A,28h
ACALL KIRIM
MOV A,29h
ACALL KIRIM
MOV A,2ah
ACALL KIRIM
MOV A,2bh
ACALL KIRIM
MOV A,2ch
ACALL KIRIM
MOV A,2dh
ACALL KIRIM
MOV A,2eh
ACALL KIRIM
MOV A,2fh
ACALL KIRIM
MOV A,#0c0H
LCALL SCAN
MOV A,30h
MOV A,31h
ACALL KIRIM
MOV A,32h
ACALL KIRIM
MOV A,33h
ACALL KIRIM
MOV A,34h
ACALL KIRIM
MOV A,35h
ACALL KIRIM
MOV A,36h
ACALL KIRIM
MOV A,37h
ACALL KIRIM
MOV A,38h
ACALL KIRIM
MOV A,39h
ACALL KIRIM
MOV A,3ah
ACALL KIRIM
MOV A,3bh
ACALL KIRIM
MOV A,3ch
MOV A,3dh
ACALL KIRIM
MOV A,3eh
ACALL KIRIM
MOV A,3fh
ACALL KIRIM
ret
PENAMPIL: MOV A,#00CH
LCALL SCAN
MOV A,#006H
LCALL SCAN
MOV A,#080H
LCALL SCAN
RET
SCAN: MOV P0,A
CLR RS
CLR RW
SETB EN
LCALL delay
RET
KIRIM: MOV P0,A
SETB RS
CLR RW
SETB EN
CLR EN
LCALL delay
RET
DELAY: MOV R6,#20
HERE2: MOV R7,#255
HERE: DJNZ R7,$
DJNZ R6,HERE2
RET
DELAYmax: MOV R6,#60
HER: MOV R7,#255
HEE: DJNZ R7,$
DJNZ R6,HEE
RET
BAB 4
PENGUJIAN RANGKAIAN DAN ANALISA
4.1 Pengujian Rangkaian
4.1.1 Pengujian Rangkaian Mikrokontroler AT89S52
Pengujian pada rangkaian mikrokontroler AT89S52 ini dapat dilakukan
dengan menghubungkan rangkaian minimum mikrokontroler AT89S52 dengan
power suplay sebagai sumber tegangan. Kaki 40 dihubungkan dengan sumber
tegangan 5 Volt, sedangkan kaki 20 dihubungkan dengan ground.
Gambar 4.1 pengujian rangkaian mikrokontroller AT89S52
Kemudian tegangan pada kaki 40 diukur dengan menggunakan Voltmeter.
Dari hasil pengujian didapatkan tegangan pada kaki 40 sebesar 4,9 Volt. Langkah
selanjutnya adalah dengan cara menghubungkan pin17 (P3.7) dengan sebuah
transistor C945 yang dihubungkan dengan sebuah LED indikator.
Transistor disini berfungsi sebagai saklar untuk mengendalikan hidup/mati
LED. Dengan demikian LED akan menyala jika transistor aktip dan sebaliknya
LED akan mati jika transistor tidak aktip. Tipe transistor yang digunakan adalah
NPN C945, dimana transistor ini akan aktif (saturasi) jika pada basis diberi
tegangan 5 volt (logika high) dan transistor ini akan tidak aktif jika pada basis
diberi tegangan 0 volt (logika low). Basis transistor ini dihubungkan ke sebuah
resistor 4k7 ohm. , resistor ini berfungsi agar arus yang dikeluarkan oleh pin17
(P3.7) cukup besar untuk men-trigger transistor C945. selanjutnya program
sederhana diisikan pada mikrokontroler AT89S52. Program yang diisikan adalah
sebagai berikut :
Program di atas bertujuan untuk menghidupkan LED yang terhubung ke
P3.7 beberapa saat dan kemudian mematikannya. Perintah Setb P3.7 akan
LED akan menyala. Call delay akan menyebabkan LED ini hidup selama
beberapa saat. Perintah Clr P3.7 akan menjadikan P3.7 berlogika low yang
menyebabkan transistor tidak aktif dan LED akan mati. Perintah call delay akan
menyebabkan LED ini mati selama beberapa saat. Perintah jmp Loop akan
menjadikan program tersebut berulang, sehingga akan tampak LED tersebut
berkedip.
Jika program tersebut diisikan ke mikrokontroller AT89S51, kemudian
mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka
rangkaian minimum mikrokontroller AT89S52 telah bekerja dengan baik.
4.1.2 Pengujian Rangkaian Sensor Optocoupler
Pengujian rangakaian sensor optocoupler dapat dilakukan dengan cara
menghubungkan tegangan kerja Vcc dengan 5 volt dan ground. Sensor
optocoupler dihubungkan transistor C945 yang difungsikan sebagai saklar agar
dapat mendefinisikan data digital high/low. Dan IC 7414 difungsikan sebagai IC
inverter (pembalik) data high dibalik menjadi dat low dan sebaliknya sekaligus IC
ini dapat meratakan pulsa high atau low yang dikeluarkan oleh sensor
optocoupler. kemudian memberikan halangan diantara LED infra merah dan
fototransistor dan keluaran (out) dari rangkaian dihubungkan dengan
Gambar 4.2 Rangkaian Penguat Sinyal Optocoupler dengan indikator
LED
Artinya jika ada terdapat halangan yang mengenai sensor maka led akan mati
sebaliknya jika tidak terdapat halangan mengenai sensor maka led akan high.
4.1.3 Pengujian Rangkaian Driver Motor Stepper
Rangkaian untuk mengendalikan perputaran motor Motor stepper
Untuk menguji rangkaian ini untuk memutar searah jarum jam, yaitu
program diatas akan memutar motor stepper searah jarum jam dimana 4 bit data
dari motor stepper diisi dengan data masing-masing p1.0 -11h, p1.1 – 22h, p1.2 –
44h dan p1.3 – 88 h, setiap data selalu diberi waktu tunda agar data dapat bergeser
bergantian dari 11h – 88h. Dengan ada nya perintah sjmp utama maka siklus terus
berlanjut sehingga motor stepper akan terus berputar searah jarum jam.
Utama:
Mov p1#88h
Mov p1#44h
call delay
Mov p1#22h
call delay
Mov p1#11h
call delay
sjmp utama
Delay:
Mov r7,#255 Dly:
Mov r6,#255 Djnz r6,$ Djnz r7,dly Ret
end
program diatas akan memutar motor stepper berlawanan jarum jam
dimana 4 bit data dari motor stepper diisi dengan data masing-masing p1.0 -88h,
p1.1 – 44h, p1.2 – 22h dan p1.3 – 11h, setiap data selalu diberi waktu tunda agar
data dapat bergeser bergantian dari 88h – 11h. Dengan ada nya perintah sjmp
utama maka siklus terus berlanjut sehingga motor stepper akan terus berputar
searah jarum jam.
4.1.4 Pengujian Rangkaian PSA
Rangkaian PSA ini berfungsi untuk mensuplay tegangan ke seluruh