TUGAS AKHIR
HERDA TANJUNG 052408081
PROGRAM STUDI FISIKA INSTRUMENTASI D3 DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
RANCANG BANGUN PINTU OTOMATIS MENGGUNAKAN PASSWORD
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya
HERDA TANJUNG 052408081
PROGRAM STUDI FISIKA INSTRUMENTASI D3 DEPARTEMEN FISIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : RANCANG BANGUN PINTU OTOMATIS
MENGGUNAKAN PASSWORD
Kategori : TUGAS AKHIR
Nama : HERDA TANJUNG
Nomor Induk Mahasiswa : 052408081
Program Studi : DIPLOMA III FISIKA INSTRUMENTASI
Departemen : MATEMATIKA DAN ILMU
PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATRA UTARA
MEDAN
Diluluskan di
Medan juli 2008
Diketahui Oleh Pembimbing
Departemen Fisika FMIPA USU Ketua Jurusan Fisika Insturumentasi
Drs.syahrul Humaidi, M.Sc
NIP 132 050 870 NIP 131 604 405
PERNYATAAN
RANCANG BANGUN PINTU OTOMATIS MENGGUNAKAN PASSWORD
Saya mengakui bahwa tugas akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, juli 2008
ABSTRAK
Kajian ini bertujuan untuk merancang bangun sebuah pintu otomatis dengan
menggunakan password berbasis mikrokontroller AT89S51. Sistem ini dibangun
dengan menggunakan perangkat lunak mikrokontroller AT89S51. Dimana
mikrokontroller ini merupakan otak dari semua sistem yang ada pada rancang pintu
otomatis ini, dimana didalam mikrokontroller ini terdapat perbedaan dengan sistem
komputer, dimana komputer menangani berbagai macam program aplikasi sementara
mikrokontroller hanya dapat digunakan untuk satu aplikasi tertentu saja. Perbedaan
lainnya terdapat pada RAM dan ROMnya. Pada komputer program-program
pengguna disimpan di RAM yang relatif besar kalau program kecil disimpan di ROM
DAFTAR ISI
2.1.1 Asitektur Mikrokontroler AT89S51 6
2.1.2 Kontruksi AT89S51 8
2.2 Perangkat Lunak 12 2.2.1 Bahasa Assembly MCS-51 12
2.2.2 Software 8051 Editor, Assembler, Simulator (IDE) 17
2.2.3 Software Downloader 18
Bab 3 Perancangan Alat dan Program 19 3.1 Rancang Bangun pintu Otomatis Menggunakan Password 19 3.2 Diagram Blok 19
3.8 Rangkaian Driver Motor Stepper 27 3.9 Rangkaian Power Suplay (PSA) 28 3.10 Perancangan Rangkaian Alaram 29
Bab 4 Pengujian Rangkaian dan Program 31
4.1 Pengujian Rangkaian Power Suplay (PSA) 31 4.2 Pengujian Rangkaian Minimum Mikrokontroller AT89S51 32 4.3 Pengujian Rangkaian Penampil Nilai Password 34
4.4 Pengujian Rangkaian Password. 37 4.5 Pengujian Rangkaian Sensor Buka Pintu dan Tutup Pintu 42 4.6 Pengujian Rangkaian Driver Motor Stepper 44
4.7 Pengujian Alaram 48
Bab 5 Kesimpulan dan Saran 66
5.1 Kesimpulan 66
5.2 Saran 67
Daftar Pustaka 68
DAFTAR PUSTAKA
Agfianto, Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi, Edisi Kedua, Penerbit: Gava Media, Yogyakarta, 2004
Andi, Panduan Praktis Teknik Antarmuka dan Pemrograman Mikrokontroler AT89C51, Penerbit PT Elex Media Komputindo, Jakarta 2003
Brey B Barry, The Intel Microprocessors, Edisi Kelima, Penerbit: Erlangga & Prentice Hall, Inc., Jakarta, 2002
Malvino, Albert paul, Prinsip-prinsip Elektronika, Jilid 1 & 2, Edisi Pertama, Penerbit: Salemba Teknika, Jakarta, 2003.
M. G. Joshi, Transducers For Instrumentation, Penerbit: Laxmi Publications, New Delhi, 2002
Widodo, S.Si, Mkom, Interfacing Komputer dan Mikrokontroler, Penerbit: Elex Media Komputindo, Jakarta, 2004
Lampiran A : Rancang Bangun Pintu Otomatis Menggunakan Password
Lampiran B : Gambar Rangkaian Keseluruhan
DAFTAR TABEL
Halaman
PENGHARGAAN
Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa yang telah
melimpahkan rahmat dan karuniaNya, juga telah memberikan kesehatan, pengetahuan
serta pengalaman pada penulis, sehingga penulis dapat menyelesaikan Tugas Akhir
yang berjudul “ RANCANG BANGUN PINTU OTOMATIS MENGGUNAKAN
PASSWORD “.
pdan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
Dalam kesempatan ini penulis ingin mengucapkan terima kasih yang
sebesarnya kepada :
1. Orang tua penulis yang telah memberikan dukungan baik moril maupun
materil kepada penulis dalam menyelesaikan Tugas Akhir ini.
2. Bapak Dr. Eddy Marlianto, M. Sc, selaku Dekan FMIPA USU.
3. Bapak Drs. Syahrul Humaidi, M.Sc, selaku ketua jurusan Program study Fisika
Instrumentasi.
4. Ibu Dra. Justinon, M.Si, selaku Sekretaris Jurusnan Program Study Fisika
Instrumentasi.
5. Bapak Drs. Anwar sebagai Dosen Pembimbing yang telah banyak memberikan
masukan dalam penyelesaian Tugas Akhir ini.
6. Abang Brian yang sudah banyak membantu penulis dalam mengerjakan Tugas
Akhir yang dibuat oleh penulis.
7. Rekan-rekan Jurusan Fisika Instrumentasi stambuk 2005 yang telah banyak
memberikan masukan dan dukungan kepada penulis dalam menyelesaikan
Tugas Akhir ini.
Penulis menyadari bahwa dalam penyusunan Tugas Akhir ini masih terdapat
mengharapkan masukan berupa saran maupun kritikan yang membangun dari
pembaca. Penulis ucapkan terima kasih.
Medan, Juli 2008
DAFTAR GAMBAR
Halaman
Gambar 2.1.2 IC Mikrokontroller AT89S51 9
Gambar 2.2.2 8051 Editor, Assembler, Simulator(IDE) 17
Gambar 2.2.3 ISP-Flash Programmer 3a 18
Gambar 3.1 Rancang Bangun Pintu Otomatis Menggunakan Password 19
Gambar 3.2 Diagram Blok Rangkaian 19
Gambar 3.3 Rangkaian Minimum mikrokontroller AT89S51 22
Gambar 3.4 Rangkaian Password 24
Gambar 3.5 Rangkaian Display Seven Segmen 25
Gambar 3.6 Rangkaian Sensor Buka Tutup Pintu 26
Gambar 3.7 Rangkaian Driver Motor Stepper 27
Gambar 3.8 Rangkaian Power Supplay (PSA) 28
Gambar 3.9 Rangkaian Alarm 29
EKSPEDISI PERBAIKAN TUGAS AKHIR
NAMA
: HERDA TANJUNG
NIM
: 052408081
FAKULTAS
: MIPA
PROGRAM STUDI
: FISIKA INSTRUMENTASI
JUDUL TUGAS AKHIR
: RANCANG
BANGUN
PINTU
OTOMATIS MENGGUNAKAN
PASSWORD
NO
TANGGAL
NAMA DOSEN
TANDA
TANGAN
1.
Drs. Anwar
1.
EKSPEDISI PENYERAHAN TUGAS AKHIR
NAMA
: HERDA TANJUNG
NIM
: 052408081
FAKULTAS
: MIPA
PROGRAM STUDI
: FISIKA INSTRUMENTASI
JUDUL TUGAS AKHIR
: RANCANG BANGUN PINTU
OTOMATIS MENGGUNAKAN
PASSWORD
NO
TANGGAL
NAMA DOSEN
TANDA
TANGAN
1
Drs. Anwar
2
Drs. Nasir Saleh, M.Eng.Sc
3
Departemen Fisika
ABSTRAK
Kajian ini bertujuan untuk merancang bangun sebuah pintu otomatis dengan
menggunakan password berbasis mikrokontroller AT89S51. Sistem ini dibangun
dengan menggunakan perangkat lunak mikrokontroller AT89S51. Dimana
mikrokontroller ini merupakan otak dari semua sistem yang ada pada rancang pintu
otomatis ini, dimana didalam mikrokontroller ini terdapat perbedaan dengan sistem
komputer, dimana komputer menangani berbagai macam program aplikasi sementara
mikrokontroller hanya dapat digunakan untuk satu aplikasi tertentu saja. Perbedaan
lainnya terdapat pada RAM dan ROMnya. Pada komputer program-program
pengguna disimpan di RAM yang relatif besar kalau program kecil disimpan di ROM
BAB I PENDAHULUAN
1.1. Latar Belakang Masalah
Setiap orang membutuhkan sebuah kamar/ruangan pribadi, dimana dalam
kamar/ruangan tersebut disimpan peralatan-peralatan, benda-benda atau apapun yang
pemilik tidak ingin orang lain melihat atau mengambilnya. Sehingga dengan demikian
pemilik tidak menginginkan satu orangpun selain dia sendiri memasuki
kamar/ruangan tersebut.
Untuk keperluan tersebut, pemilik harus mengunci kamar/ruangannya setiap
kali dia hendak pergi ke tempat lain. Namun masalah terjadi jika pemilik lupa
meletakkan kunci kamar/ruangannya, atau kunci tersebut tertinggal di tempat lain,
yang jaraknya cukup jauh, atau lebih fatal lagi jika kunci tersebut diambil oleh orang
lain kemudian digandakan atau kunci tersebut hilang. Kemungkinan-kemungkinan
tersebut akan menjadi masalah besar.
Untuk mengatasinya dibutuhkan kunci yang tidak dapat tertinggal di tempat
lain, tidak dapat hilang dan tidak dapat digandakan oleh orang lain. Jawaban dari
masalah tersebut adalah menggantikan kunci tersebut dengan password. Jadi dengan
menggunakan pintu yang otomatis terbuka jika password yang dimasukkan benar,
Password dapat dicatat pada kertas kecil dan dimasukkan ke dalam tas atau
dompet, sehingga jika pemilik lupa, ia dapat melihat catatan. Password tidak mungkin
tertinggal di tempat lain, password tidak dapat digandakan oleh orang lain, dan
password juga tidak bisa hilang, kecuali jika pemilik hilang ingatan, password juga
dapat diganti setiap saat jika ada orang lain yang sudah mengetahui password tersebut.
Dengan kelebihan-kelebihan yang dimiliki oleh pintu otomatis yang
menggunakan password, akan sangat efektip jika kamar/ruangan pribadi diamankan
oleh pintu otomatis tersebut.
1.2Rumusan Masalah
Berdasarkan sebuah pintu otomatis yang dapat membuka sendiri secara otomatis jika
password yang dimasukkan benar, dan akan menutup kembali secara otomatis
beberapa menit sesudahnya.
Pada alat ini akan digunakan sebuah mikrokontroler AT89S51, sebuah motor,
13 tombol password. Mikrokontroler AT89S51 sebagai otak dari system yang
berfungsi memeriksa 4 digit angka yang ditekan, jika angka yang ditekan benar,maka
Mikrokontroler AT89S51 akan memerintahkan motor untuk berputar membuka pintu
sehingga pintu akan terbuka secara otomatis, namun jika angka yang ditekan salah,
maka Mikrokontroler AT89S51 tidak akan memerintahkan motor untuk berputar
sehingg pintu akan tetap tertutup. Mikrokontroler AT89S51 juga berfungsi untuk
Pada alat ini akan digunakan 13 tombol, dimana 10 tombol untuk angka yaitu
0 s/d 9, 3 tombol yang lain masing-masing berfungsi untuk setting memasukkan nilai
password, setting memasukkan nilai password baru dan tombol run untuk
memerintahkan Mikrokontroler AT89S51 mengolah password.
1.3Tujuan Penulisan
Adapun tujuan penulisan tugas akhir ini adalah membuat sebuah pintu otomatis
dengan menggunakan password yang dapat membuka sendiri secara otomatis jika
password yang dimasukkan benar, dan passwordnya dapat diubah kapanpun sesuai
dengan kehendak pengguna.
1.4Batasan Masalah
Penulisan tugas akhir ini dibatasi pada:
1. Studi cara kerja rangkaian yang meliputi diagram blok dan menguraikan secara
umum fungsi dari masing-masing komponen utama dalam blok tersebut
2. Password yang digunakan hanya 4-digit.
3. Mikrokontroler yang digunakan yaitu AT89S51, jadi hanya mikrokontroler ini yang
1.5Sistematika Penulisan
Untuk mempermudah pembahasan dan pemahaman maka penulis membuat
sistematika pembahasan bagaimana sebenarnya prinsip kerja dari pintu otomatis
dengan menggunakan password yang dapat membuka sendiri secara otomatis jika
password yang dimasukkan benar, maka penulis menulis laporan ini sebagai berikut:
BAB 1. PENDAHULUAN
Dalam bab ini berisikan mengenai latar belakang, tujuan penulisan, batasan masalah,
serta sistematika penulisan.
BAB 2. LANDASAN TEORI
Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang digunakan
untuk pembahasan dan cara kerja dari rangkaian Teori pendukung itu antara lain
tentang mikrokontroler AT89S51 (hardware dan software), bahasa program yang
digunakan, serta cara kerja dari rangkaian password dan pengendalian motor untuk
membuka pintu
BAB 3. PERANCANGAN ALAT DAN BAHAN
Pada bagian ini akan dibahas perancangan alat, yaitu diagram blok dari rangkaian,
skematik dari masing-masing rangkaian dan diagram alir dari program yang akan
BAB 4. PENGUJIAN RANGKAIAN DAN PROGRAM
Analisa rangkaian dan sistem kerja, dalam bab ini dibahas tentang sistem kerja
per-blok diagram dan sistem kerja keseluruhan.
BAB 5. KESIMPULAN DAN SARAN
Bab ini merupakan penutup yang meliputi tentang kesimpulan dari pembahasan yang
dilakukan dari tugas akhir ini serta saran apakah rangkaian ini dapat dibuat lebih
efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai
BAB 2
LANDASAN TEORI
2.1PERANGKAT KERAS
2.1.1 Arsitektur Mikrokontroler AT89S51
Mikrokontroler, sebagai suatu terobosan teknologi mikrokontoler dan mikrokomputer,
hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi
baru, yaitu teknologi semikonduktor dengan kandungan transistor yang lebih banyak
namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam
jumlah yang banyak) sehingga harga menjadi lebih murah (dibandingkan
mikroprosesor). Sebagai kebetuhan pasar, mikrokontelor hadir untuk memenuhi selera
industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan
yang lebih canggih.
Ilustrasi yang mungkin bisa memberikan gambaran yang jelas dalam
penggunaan mikrokontroler adalah aplikasi mesin tiket dalam arena permainan yang
saat ini terkenal di Indonesia. Jika kita sudah selesai bermain, maka akan diberikan
suatu nilai, nilai inilah yang menentukan berapa jumlah tiket yang bisa diperoleh dan
jika dikumpulkan dapat ditukar dengan berbagai macam hadiah. Sistem tiket ini
ditangani dengan mikrokontroler, karena tidak mungkin menggunakan computer PC
yang harus dipasang disamping (atau di belakang) mesin permainan yang
Selain system tiket, kita juga dapat menjumpai aplikasi mikrokontroler dalam
bidang pengukuran jarak jauh atau yang dikenal dengan system telemetri. Misalnya :
Pengukuran disuatu tempat yang membahayakan manusia, maka akan lebih nyaman
jika dipasang suatu system pengukuran yang bisa mengirimkan data lewat pemancar
dan diterima oleh stasiun pengamatan dari jarak yang cukup aman dari sumbernya.
Sistem pengukuran jarak jauh ini jelas membutuhkan suatu system akuisisi data
sekaligus system pengiriman data secara serial (melalui pemancar), yang semuanya itu
bisa diperoleh dari mikrokontroler yang digunakan.
Tidak seperti system komputer, yang mampu menangani berbagai macam
program aplikasi (misalnya pengolah kata, pengolah angka dan lain sebagainya),
mikrokontroler hanya bisa digunakan untuk satu 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
disimpan dalam ruang RAM yang relative besar, sedangkan perangkat kerasnya
disimpan dalam ruang ROM yang kecil. Sedangkan pada mikrokontroler,
perbandingan ROM dan RAM-nya yang besar artinya program control disimpan
dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif lebih
besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk
2.1.2 Kontruksi AT89S51
Mikrokontrol AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1
kristal serta catu daya 5 Volt. Kapasitor 10 mikro-Farad dan resistor 10 Kilo Ohm
dipakai untuk membentuk rangkaian reset. Dengan adanya rangkaian reset ini
AT89S51 otomatis direset begitu rangkaian menerima catu daya. Kristal dengan
frekuensi maksimum 24 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.
Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan
catu daya. Sesuai dangan keperluannya, dalam susunan MCS-51 memori
penyimpanan progam ini dinamakan sebagai memori progam.
Random Access Memori (RAM) isinya akan sirna begitu IC kehilangan catu
daya, dipakai untuk menyimpan data pada saat progam bekerja. RAM yang dipakai
untuk menyimpan data ini disebut sebagai memori data.
Ada berbagai jenis ROM. Untuk mikrokontroler dengan progam yang sudah
baku dan diproduksi secara masal, progam diisikan ke dalam ROM pada saat IC
mikrokontroler dicetak di pabrik IC. Untuk keperluan tertentu mikrokontroler
mengunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang
Violet Eraseable Progamble ROM) yang kemudian dinilai mahal dan ditinggalkan
setelah ada flash PEROM yang harganya jauh lebih murah.
Jenis memori yang dipakai untuk Memori Program AT89S51 adalah Flash
PEROM, program untuk mengendalikan mikrokontroler diisikan ke memori itu lewat
bantuan alat yang dinamakan sebagai AT89S51 Flash PEROM Programmer.
Memori Data yang disediakan dalam chip AT89S51 sebesar 128 byte,
meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah
cukup.
Sarana Input/Ouput yang disediakan cukup banyak dan berpariasi. AT89S51
mempunyai 32 jalur Input/Ouput. Jalur Input/Ouput paralel dikenal sebagai Port 1
(P1.0..P1.7) dan Port 3 (P3.0..P3.5 dan P3.7).
Deskripsi pin-pin pada mikrokontroler AT89S51 :
VCC (Pin 40)
Supply tegangan
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 progamming Pada fungsi 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 fungsi sebagai low order multiplex address/data, port ini akan mempunyai
internal pull up.
Pada saat flash progamming diperlukan eksternal pull up, terutama pada saat
verifikasi program.
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 ini dapat
Port 3 (Pin 10 – pin 17)
Port 3 merupakan 8 bit port I/O dua arah dengan internal pullup. 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 (menulis untuk eksternal data memori) P3.7 (pin 17) RD (untuk membaca eksternal data memori)
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 progam (PROG)
selama memprogam Flash.
PSEN (pin 29)
EA (pin 31)
Pada kondisi low, pin ini akan berfungsi sebagai EA yaitu mikrokontroler akan
menjalankan progam yang ada pada memori eksternal setelah sistem direset. Jika
kondisi high, pin ini akan berfungsi untuk menjalankan progam yang ada pada
memori internal. Pada saat flash progamming, pin ini akan mendapat tegangan 12
Volt.
XTAL1 (pin 19)
Input untuk clock internal.
XTAL2 (pin 18)
Output dari osilator.
2.2PERANGKAT LUNAK
2.2.1 Bahasa Assembly MCS-51
Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89S51 adalah
bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa
ini hanya ada 51 instruksi. Dari 51 instruksi, yang sering digunakan orang hanya 10
1. Instruksi MOV
Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register
tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.
Contoh pengisian nilai secara langsung
MOV R0,#20h
Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0).
Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai.
Contoh pengisian nilai secara tidak langsung
MOV 20h,#80h ...
... MOV R0,20h
Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20
Heksadesimal ke register 0 (R0).
Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah
alamat.
2. Instruksi DJNZ
Decreament Jump If Not Zero (DJNZ) ini merupakan perintah untuk
mengurangi nilai register tertentu dengan 1 dan lompat jika hasil
pengurangannya belum nol. Contoh ,
MOV R0,#80h Loop: ...
...
R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan
meneruskan ke perintah pada baris berikutnya.
3. Instruksi ACALL
Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :
...
ACALL TUNDA ...
TUNDA:
...
4. Instruksi RET
Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin
pemanggil setelah instruksi ACALL dilaksanakan. Contoh,
ACALL TUNDA ...
TUNDA:
... RET
5. Instruksi JMP (Jump)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh,
Loop:
... ...
6. Instruksi JB (Jump if bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika high (1). Contoh,
Loop:
JB P1.0,Loop ...
7. Instruksi JNB (Jump if Not bit)
Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang
dimaksud berlogika Low (0). Contoh,
Loop:
JNB P1.0,Loop ...
8. Instruksi CJNZ (Compare Jump If Not Equal)
Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register
dengan suatu nilai tertentu. Contoh,
Loop:
...
CJNE R0,#20h,Loop ...
Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin
Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan
9. Instruksi DEC (Decreament)
Instruksi ini merupakan perintah untuk mengurangi nilai register yang
dimaksud dengan 1. Contoh,
MOV R0,#20h R0 = 20h
...
DEC R0 R0 = R0 – 1
...
10.Instruksi INC (Increament)
Instruksi ini merupakan perintah untuk menambahkan nilai register yang
dimaksud dengan 1. Contoh,
MOV R0,#20h R0 = 20h
...
INC R0 R0 = R0 + 1
...
2.2.2 Software 8051 Editor, Assembler, Simulator (IDE)
Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah
editor, yaitu 8051 Editor, Assembler, Simulator (IDE). Tampilannya seperti di bawah
ini.
Gambar 2.2.2 8051 Editor, Assembler, Simulator (IDE)
Setelah program selesai ditulis, kemudian di-save dan kemudian 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 diperbaiki terlebih dahulu
sampai tidak ada pesan kesalahan lagi.
Software 8051IDE ini berfungsi untuk merubah program yang kita tuliskan ke
dalam bilangan heksadesimal, proses perubahan ini terjadi pada saat peng-compile-an.
2.2.3 Software Downloader
Untuk mengirimkan bilangan-bilangan heksadesimal ini ke mikrokontroller digunakan
software ISP- Flash Programmer 3.0a yang dapat didownload dari internet.
Tampilannya seperti gambar di bawah ini
Gambar 2.2.3 ISP- Flash Programmer 3.a
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil
file heksadesimal dari hasil kompilasi 8051IDE, kemudian klik Write untuk
M
3.1 Rancang Bangun Pinti Otomatis Menggunakan Password
3.2 Diagram Blok
Secara garis besar, diagram blok rangkaian dari pintu otomatis dengan menggunakan
password ditunjukkan pada gambar berikut ini :
Pada rangkaian ini digunakan sebuah mikrokontroler AT89S51 sebagai pusat kendali
dari seluruh rangkaian. Rangkaian pendukung lainnya adalah 13 tombol, yaitu 10
tombol untuk password, dan tiga tombol sebagai tombol setting, sensor yang dapat
mendeteksi ketika pintu terbuka/tertutup, empat digit seven segmen untuk
menampilkan angka yang password, dan sebuah rangkaian pengendali motor.
Sensor buka pintu berfungsi untuk mengetahui batas maksimum terbukanya
pintu, sehingga ketika pintu terbuka kemudian pintu menyentuh sensor ini, maka
sensor akan mengirimkan sinyal ke mikrokontroler untuk menghentikan perputaran
motor, sehingga motor berhenti (tidak membuka lebih lebar lagi).
Sensor ini terhubung ke P2.6 mikrokontroler AT89S51. Sensor tutup pintu berfungsi
untuk mengetahui batas maksimum tertutupnya pintu, yang menandakan bahwa pintu
telah tertutup rapat, sehingga ketika pintu tertutup kemudian pintu menyentuh sensor
ini, maka sensor akan mengirimkan sinyal ke mikrokontroler untuk menghentikan
perputaran motor, sehingga motor berhenti. Rangkaian Sensor ini terhubung ke P2.7
mikrokontroler AT89S51
Rangkaian pengendali motor stepper berfungsi untuk mengendalikan
pergerakan motor stepper (menutup/membuka pintu). Rangkaian ini terhubung ke port
0, sehingga dengan memberikan program tertentu, pergerakan menutup/membuka
pintu sudah dapat dikendalikan oleh program yang diberikan ke mikrokontroler
3. 4 Rangkaian minimum mikrokontroller AT89S51
Rangkaian minimum mikrokontroller AT89S51 ditunjukkan pada gambar 3.4 berikut
ini :
Gambar 3.4 Rangkaian minimum mikrokontroller AT89S51
Pin 29 merupakan PSEN (Program Store Enable) dan pin 30 sebagai Address
Latch Enable (ALE)/PROG dihubungkan ke ground (diset low), sedangkan Pin 31
External Access Enable (EA) diset high (H). Ini dilakukan karena mikrokontroller
AT89S51 tidak menggunakan memori eskternal. Pin 18 dan 19 dihubungkan ke
XTAL 12 MHz dan capasitor 30 pF. XTAL ini akan mempengaruhi kecepatan
mikrokontroller AT89S51 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. Karena fungsi
tersebut maka Port 0 dihubungkan dengan resistor array. Jika mikrokontroller tidak
menggunakan memori eksternal, maka penggunaan resistor array tidak begitu penting.
Pin 28 yang merupakan P2.7 dihubungkan dengan transistor dan sebuah LED. Ini
dilakukan hanya untuk menguji apakan rangkaian minimum mikrokontroller
AT89S51 sudah bekerja atau belum. Dengan memberikan program sederhana pada
mikrokontroller tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah
bekerja dengan baik atau tidak. Jika LED yang terhubung ke Pin 28 sudah bekerja
sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap
digunakan. Namun setelah seluruh rangkaian disatukan, LED yang terhubung ke pin
28 ini tidak digunakan lagi. Pin 20 merupakan ground dihubungkan dengan ground
pada power supplay. Pin 40 merupakan sumber tegangan positif dihubungkan dengan
+ 5 volt dari power supplay.
3.5 Rangkaian Password
Rangkaian password terdiri dari 13 tombol, dimana 10 tombol merupakan tombol
angka, yaitu dari angka 0 sampai angka 9. Dan tiga tombol yang lainnya merupakan
tombol setting, tombol run dan tombol untuk mengganti password.
Rangkaian password ini dihubungkan dengan port 1 dan port 2. Pada port 1
terdapat 8 tombol dan pada port 2 terdapat 5 tombol. Dalam kondisi biasa, port 1 dan
port 2 mendapatkan logika high (1), saat terjadi penakanan salah satu tombol, maka
pin yang terhubung ke tombol tersebut akan terhubung ke ground, sehingga
mengirimkan sinyal low (0). Perubahan kondisi dari high (1), menjadi low (0) inilah
Seterusnya mikrokontroler akan menampilkan nilai dari tombol yang ditekan
pada display seven segmen, kemudian membandingkannya dengan nilai password
yang benar, jika benar maka pintu akan terbuka secara otomatis.
3. 6 Rangkaian Display Seven Segmen
Untuk menampilkan angka dari setiap penekanan tombol, maka dibutuhkan sebuah
display untuk menampilkannya. Pada alat ini, display yang digunakan adalah display
seven segmen, yang terdiri dari 4 buah seven segmen, sehingga display ini dapat
menampilkan 4 digit bilangan.
Display seven segmen ini akan diaktipkan oleh IC 4094 yang merupakan IC
serial to paralel (serial in paralel out). Jadi data dimasukkan ke dalam IC ini dengan
mengirimkan data serial. Keluaran dari IC 4094 ini langsung dihubungkan ke seven
segmen, sehingga data serial yang diterima oleh input IC ini akan ditampilkan nilainya
pada seven segmen.
Rangkaian ini terhubung ke P3.0 dan P3.1, yang mempunyai fungsi khusus
sebagai pengiriman data secara serial. Sehingga nilai yang akan tampil pada display
seven segmen akan dapat dikendalikan oleh mikrokontroler AT89S51.
Gambar 3.6 Rangkaian display seven segmen
3.7 Rangkaian Sensor Buka Pintu dan Tutup Pintu
Ketika password yang diisikan benar, maka pintu akan terbuka. Untuk mengetahui
bahwa pintu telah terbuka secara penuh, maka dibutuhkan sebuah sensor untuk
mengetahuinya. Sensor ini berfungsi untuk memastikan bahwa pintu telah terbuka
secara penuh (terbuka lebar), jadi ketika passwordnya benar dan kemudian pengguna
menekan tombol run, maka mikrokontroler akan memerintahkan motor stepper untuk
berputar membuka pintu. Ketika pintu menyentuh sensor buka pintu, yang berarti
pintu sudah terbuka lebar, maka sensor akan mengirimkan sinyal low ke
mikrokontroler, yang merupakan perintah kepada mikrokontroler untuk menghentikan
putaran motor stepper. Mikrokontroler yang menerima sinyal ini akan langsung
memerintahkan motor stepper untuk berhenti berputar, dan pintu telah terbuka lebar.
Setelah beberapa saat ( ± 8 detik), maka mikrokontroler akan memerintahkan
motor stepper untuk berputar menutup pintu Ketika pintu menyentuh sensor tutup
pintu, yang berarti pintu sudah tertutup rapat, maka sensor akan mengirimkan sinyal
low ke mikrokontroler, yang merupakan perintah kepada mikrokontroler untuk
menghentikan putaran motor stepper. Mikrokontroler yang menerima sinyal ini akan
langsung memerintahkan motor stepper untuk berhenti berputar, dan pintu telah
tertutup rapat.
3.8 Rangkaian Driver Motor Stepper
Untuk mengendalikan perputaran motor stepper dibutuhkan sebuah driver. Driver ini
berfungsi untuk memutar motor stepper searah dengan jarum jam atau berlawanan
arah dengan jarum jam. Rangkaian ini dihubungkan ke port 0 dari mikrokontroler
AT89S51. sehingga untuk memutar motor, harus diberikan logika high secara
bergantian ke port 0. Sedangkan untuk memutar motor ke arah sebaliknya, maka
logika high yang diberikan secara bergantian tersebut harus berlawanan arah dengan
sebelumnya. Dengan demikian maka rangkaian ini sudah dapat dikendalikan oleh
mikrokontroler AT89S51.
Gambar 3.8 Rangkaian Driver Motor Stepper
Tip 122 Tip 122
VCC 12V
MOTOR AT89S51 (P0.0)
AT89S51 (P0.2)
Stepper
VCC 12V
Tip 122 Tip 122
1.0k
1.0k AT89S51 (P0.1)
1.0k
1.0k
3.9 Rangkaian power supplay ( 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.8 berikut ini :
Gambar 3.9 Rangkaian Power Supplay (PSA)
Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan dari
220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan dengan
menggunakan dua buah dioda, selanjutnya 12 volt DC 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 32 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
3.10 Perancangan Rangkaian Alarm
Rangkaian alarm ini berfungsi untuk memberikan peringatan berupa nada alarm
apabila password yang tekan salah. Rangkaiannya seperti gambar di bawah ini:
Gambar 3.10. Rangkaian Alarm
Pada alat ini, alarm yang digunakan adalah alarm 5 volt. Alarm ini akan
berbunyi jika positifnya dihubungkan ke sumber tegangan positif dan negatifnya
dihubungkan ke ground.
Pada rangkaian di atas transistor berfungsi sebagai saklar elektronik yang
dapat menghidupkan dan mematikan alarm. Dari gambar dapat dilihat bahwa negatif
buzzer dihubungkan ke kolektor dari transistor NPN (2SC945), 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 alarm berbunyi. Sebaliknya jika
transistor tidak aktif, maka kolektor tidak terhubung ke emitor, sehingga tegangan
Transistor yang digunakan dalam rangkaian di atas adalah transistor jenis
NPN, transistor jenis ini akan aktif apabila tegangan pada basis lebih besar dari 0,7
volt. Resistor 4,7 Kohm pada basis berguna untuk membatasi arus yang masuk pada
BAB 4
PENGUJIAN RANGKAIAN DAN PROGRAM
4.1 Pengujian Rangkaian Power Supplay (PSA)/ Catu Daya
Rangkaian Power Supply diuji dengan menghubungkan rangkaian Power Supply
dengan sebuah multimeter. Adapun tujuannya adalah untuk mengukur tegangan
keluarannya apakah sudah sesuai dengan yang diinginkan atau belum.
Pada rangkaian Power Supply tegangan yang masuk adalah tegangan sebesar
220 volt AC. Untuk menghidupkan rangkaian ini tidak diperlukan tegangan sebesar
itu. Selain itu arus yang digunakan adalah arus searah, hal ini disebabkan karena
apabila arus yang masuk adalah arus bolak-balik maka tegangan yang dihasilkan tidak
stabil. Dan ini dapat menyebabkan kerusakan pada rangkaian.
Karena tegangan yang masuk kedalam rangkaian adalah tegangan sebesar 220
Volt AC, maka tegangan ini perlu dikecilkan dan disearahkan menjadi tegangan DC.
Oleh karena itu pada rangkaian ini digunakan Trafo CT yang berfungsi untuk
menurunkan tegangan dari 220 Volt menjadi 2 tegangan keluaran yaitu 12 Volt dan 5
Volt. Kemudian tegangan ini disearahkan dengan 2 buah dioda dan kemudian
diratakan dengan kapasitor 2200 mikro farad.
Tegangan keluaran yang dihasilkan oleh rangkaian Power Supply ini adalah 12
rangkaian mikrokontroller AT89S51 dan tegangan 12 Volt DC akan digunakan untuk
menghidupkan semua relay yang ada pada rangkaian.
Apabila rangkaian kita hidupkan dan kita hubungkan ke multimeter dan
keluarannya sesuai dengan yang diharapkan, maka rangkaian ini sudah bekerja dengan
baik. Akan tetapi, bila tidak sesuai kemungkinan besar ada kerusakan di dalam
rangkaian ini.
4.2 Pengujian Rangkaian Mikrokontroller AT89S51
Untuk mengetahui apakah rangkaian mikrokontroller AT89S51 telah bekerja dengan
baik, maka dilakukan pengujian. Pengujian bagian ini dilakukan dengan memberikan
program sederhana pada mikrokontroller AT89S51. Programnya adalah sebagai
berikut:
Loop:
Setb P2.7
Acall tunda
Clr P2.7
Acall tunda
Sjmp Loop
Tunda:
Tnd: Mov r6,#0ffh
Djnz r6,$
Djnz r7,tnd
Ret
Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P2.7
selama ± 0,13 detik kemudian mematikannya selama ± 0,13 detik secara terus
menerus. Perintah Setb P2.0 akan menjadikan P2.7 berlogika high yang menyebabkan
transistor aktif, sehingga LED hidup. Acall tunda akan menyebabkan LED ini hidup
Selama beberapa saat. Perintah Clr P2.7 akan menjadikan P2.7 berlogika low yang
menyebabkan transistor tidak aktif sehingga LED akan mati. Perintah Acall tunda
akan menyebabkan LED ini mati selama beberapa saat. Perintah Sjmp Loop akan
menjadikan program tersebut berulang-ulang, sehingga akan tampak LED tersebut
berkedip.
Jika program tersebut diisikan ke mikrokontroller AT89S51, kemudian
mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka rangkaian
4.3 Pengujian Rangkaian Penampil Nilai Password
Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini
dengan rangkaian mikrokontroler, kemudian memberikan data tertentu pada port serial
dari mikrokontroler. Seven segmen yang digunakan adalah common anoda, dimana
segmen akan menyala jika diberi logika 0 dan sebaliknya segmen akan mati jika diberi
logika 1.
Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk
menampilkan angka desimal adalah sebagai berikut:
Tabel 4.3 Data Yang Dikirim ke Port Serial
Angka Data yang dikirim
1 0ECH
2 18H
3 88H
4 0C4H
5 82H
6 02H
7 0E8H
8 0h
9 80H
Setiap penekanan pada tombol password, nilainya akan ditampilkan ke display
dimana display tersebut menggunakan 4 buah seven segmen yang dihubungkan ke IC
4094 yang merupakan IC serial to paralel. IC ini akan merubah 8 bit data serial yang
masuk menjadi keluaran 8 bit data paralel. Rangkaian ini dihubungkan dengan P3.0
dan P3.1 AT89S51. P3.0 merupakan fasilitas khusus pengiriman data serial yang
disediakan oleh mikrokontroler AT89S51. Sedangkan P3.1 merupakan sinyal clock
untuk pengiriman data serial.
Dengan menghubungkan P3.0 dengan IC serial to paralel (IC 4094), maka
data serial yang dikirim akan diubah menjadi data paralel. Kemudian IC 4094 ini
dihubungkan dengan seven segmen agar data tersebut dapat ditampilkan dalam bentuk
angka. Seven segmen yang digunakan adalah aktip low, ini berarti seven segmen akan
hidup jika diberi data low (0) dan seven segmen akan mati jika diberi data high (1).
Untuk menampilkan angka pada seven segmen, maka data yang harus diberikan
adalah sebagai berikut:
1. Untuk menampilkan angka nol, data yang harus dikirim adalah 20h
2.Untuk menampilkan angka satu, data yang harus dikirim adalah 0ech
3.Untuk menampilkan angka dua, data yang harus dikirim adalah 18h
4. Untuk menampilkan angka tiga, data yang harus dikirim adalah 88h
5. Untuk menampilkan angka empat, data yang harus dikirim adalah 0c4h
6. Untuk menampilkan angka lima, data yang harus dikirim adalah 82h
7. Untuk menampilkan angka enam, data yang harus dikirim adalah 02h
8. Untuk tampilan kosong (tidak ada nilai yang tampil), data yang harus
Program untuk menampilkan angka pada display seven segmen adalah sebagai
berikut:
bil0 equ 20h
bil1 equ 0ech
bil2 equ 18h
bil3 equ 88h
bil4 equ 0c4h
bil5 equ 82h
bil6 equ 02h
bilkosong equ 0ffh
mov 60h,#Bil1
mov 61h,#Bil2
mov 62h,#Bil3
mov 63h,#Bil4
Display:
mov sbuf,60h
jnb ti,$
clr ti
mov sbuf,61h
jnb ti,$
clr ti
mov sbuf,62h
jnb ti,$
mov sbuf,63h
jnb ti,$
clr ti
ret
Program di atas akan menampilkan nilai 1234 pada display seven segmen. Dan
nilai berapapun yang diisikan ke alamat 60h, 61h, 62h dan 63h akan
ditampilkan pada display seven segmen.
4.4 Pengujian Rangkaian Password
Untuk membuka pintu, maka password yang diberikan harus benar sesuai dengan
programnya supaya pintu dapat terbuka. Jika tidak benar, maka pintu tidak akan
terbuka. Rangkaian password ini terdiri dari 13 tombol, dimana tombol 1 sampai
dengan 9 untuk penekanan password yang dapat diganti jika pemilik merasa kurang
tepat dengan password sebelumnya dengan mengganti nilai pada program. Angka
yang lain untuk setting dan runnya yang ditekan setelah penekanan kode sehingga
pintu dapat terbuka.
Rangkaian password ini terhubung ke Port 2 dan port 1, dimana P1.7
merupakan tombol setting, P2.4 merupakan tombol 1, P2.3 merupakan tombol 2, P2.2
merupakan tombol 3, P2.1 merupakan tombol 4, P2.0 merupakan tombol 5, P1.0
merupakan tombol 6, P1.1 merupakan tombol 7, P1.2 merupakan tombol 8, P1.3
merupakan tombol 9, P1.4 merupakan tombol 0, P1.5 merupakan tombol untuk
P1.7 akan terhubung ke ground, menyebabkan P1.7 mendapatkan sinyal low. Sinyal
low inilah yang merupakan indikasi bahwa ada penekanan pada tombol setting. Cara
kerja yang sama juga berlaku pada ketiga belas tombol lainnya.
Program untuk mengetahui penekanan pada tombol password adalah sebagai
berikut :
Tbl_Setting Bit P1.7
Tbl_1 Bit P2.4
Tbl_2 Bit P2.3
Tbl_3 Bit P2.2
Tbl_4 Bit P2.1
Tbl_5 Bit P2.0
Tbl_6 Bit P1.0
. . .
Tbl_Ganti Bit P1.5
Tbl_Run Bit P1.6
Di awal program dibuat inisialisasi tombol, dimana inisialisasi ini akan berguna untuk
mempermudah mengingat hubungan tiap-tiap tombol dengan pin pada mikrokontroler.
Jb Tbl_Setting,$
Perintah di atas akan merupakan perintah untuk menunggu penekanan pada tombol
setting dan akan terus menunggu sampai ada penekanan pada tombol setting.
mov 60h,#Bil0
mov 61h,#Bil0
mov 63h,#Bil0
Acall Display
Perintah-perintah di atas akan memasukkan nilai 0 ke alamat 60h yang
merupakan alamat untuk mengisi nilai ribuan, memasukkan nilai 0 ke alamat 61h
yang merupakan alamat untuk mengisi nilai ratusan, memasukkan nilai 0 ke alamat
62h yang merupakan alamat untuk mengisi nilai puluhan dan memasukkan nilai nol ke
alamat 63h yang merupakan alamat untuk mengisi nilai satuan. Sehingga dengan
demikian akan tampil pada display nilai 0000.
Cek_no11:
Jb Tbl_1,Cek_no21
mov 70h,#1
mov 60h,#bil1
Acall Display
Jnb Tbl_1,$
Acall Tunda
Ljmp Cek_Password2
Cek_no21:
Jb Tbl_2,Cek_no31
mov 70h,#2
mov 60h,#bil2
Acall Display
Jnb Tbl_2,$
Ljmp Cek_Password2
. . . .
. . . .
. . . . Dst
Program di atas akan mengecek penekanan pertama dari masing-masing
tombol password, yaitu penekanan pada tombol 1, tombol 2, tombol 3 s/d tombol 0.
Jika tidak ada penekanan pada tombol 1, maka program akan mengecek tombol 2, jika
tombol 2 juga tidak ditekan, maka program akan mengecek tombol 3, dan seterusnya.
Jika terjadi penekanan pada tombol 1, maka program akan memasukkan nilai 1 ke
alamat 70h. Nilai ini yang nantinya akan dibandingkan dengan nilai password yang
benar untuk nilai password pertama. Kemudian program akan memasukkan nilai
bil1 ke alamat 60h agar tampil di display angka 1. Selanjutnya program akan
melanjutkan untuk mengecek penekanan kedua dari tombol password
Namun jika tombol yang ditekan adalah tombol 2, maka program akan
memasukkan nilai 2 ke alamat 70h. Nilai ini yang nantinya akan dibandingkan
dengan nilai password yang benar untuk nilai password pertama. Kemudian program
akan memasukkan nilai bil2 ke alamat 60h agar tampil di display angka 2.
Selanjutnya program akan melanjutkan untuk mengecek penekanan kedua dari tombol
password
Demikian juga halnya yang terjadi jika tombol yang ditekan adalah tombol 3,
Cek_Password2:
Jb Tbl_1,Cek_no22
mov 71h,#1
mov 61h,#bil1
Acall Display1
Jnb Tbl_1,$
Acall Tunda
Ljmp Cek_Password3
Cek_no22:
Jb Tbl_2,Cek_no32
mov 71h,#2
mov 61h,#bil2
Acall Display1
Jnb Tbl_2,$
Acall Tunda
Ljmp Cek_Password3
Program di atas akan mengecek penekanan password kedua dari
masing-masing tombol password. Sama seperti sebelumnya, jika tidak ada penekanan pada
tombol 1, maka program akan mengecek tombol 2, jika tombol 2 juga tidak ditekan,
maka program akan mengecek tombol 3, dan seterusnya. Jika terjadi penekanan pada
tombol 1, maka program akan memasukkan nilai 1 ke alamat 70h. Nilai ini yang
nantinya akan dibandingkan dengan nilai password yang benar untuk nilai password
display angka 1. Selanjutnya program akan melanjutkan untuk mengecek penekanan
ketiga dari tombol password
Namun jika tombol yang ditekan adalah tombol 2, maka program akan
memasukkan nilai 2 ke alamat 70h. Nilai ini yang nantinya akan dibandingkan
dengan nilai password yang benar untuk nilai password kedua. Kemudian program
akan memasukkan nilai bil2 ke alamat 60h agar tampil di display angka 2.
Selanjutnya program akan melanjutkan untuk mengecek penekanan ketiga dari tombol
password
Demikian juga halnya yang terjadi jika tombol yang ditekan adalah tombol 3,
4, 5 dan seterusnya. Dan juga penekanan untuk penekanan ketiga dan keempat dari
tombol password.
4.5 Pengujian Rangkaian Sensor Buka Pintu dan Tutup Pintu
Ketika mikrokontroler memerintahkan motor untuk membuka pintu, mikrokontroler
tidak mengetahui apakah pintu sudah terbuka lebar atau belum. Hal yang sama juga
terjadi ketika mikrokontroler memerintahkan motor untuk menutup pintu,
mikrokontroler tidak mengetahui apakah pintu sudah tertutup rapat atau belum.
Karena itu dibutuhkan sebuah sensor yang dapat mengetahui kedua keadaan tersebut.
Dalam hal ini digunakan sebuah sensor buka pintu (switch control), yang
sensor tutup pintu yang berfungsi untuk mengetahui apakah pintu sudah tertutup rapat
atau belum. Rangkaian sensor buka pintu hanya terdiri dari sebuah saklar yang
dihubungkan ke ground dan ke mikrokontroler AT89S51.
Ketika sensor dalam keadaan terbuka, kondisi P2.6 adalah high. Namun jika
pintu menyentuh saklar, maka P2.6 akan terhubung ke ground, yang menyebabkan
kondisi P2.6 akan berubah dari high (1), menjadi low (0). Perubahan kondisi pada
P2.6 inilah yang dikenali oleh mikrokontroler sebagai tanda bahwa pintu telah terbuka
lebar, maka mikrokontroler akan memerintahkan motor stepper untuk berhenti
berputar, sehingga pintu tidak terbuka lebih lebar lagi.
Program untuk mendeteksi pengiriman sinyal dari sensor buka pintu ini
adalah,
Buka_Pintu:
. . .
Jb P2.6,Buka_Pintu
mov P0,#0h
Program di atas akan melihat kondisi P2.6 yang dihubungkan ke sensor buka
pintu, dengan menggunakan perintah JB (jump if bit), jika kondisi P2.6 bit (high),
yang berarti pintu belum terbuka lebar, maka mikrokontroler akan tetap
memerintahkan motor untuk berputar membuka pintu sampai mendapatkan sinyal low
(0) dari sensor. Jika kondisi P2.6 notbit (low), maka mikrokontroler akan
memerintahkan motor untuk berhenti membuka pintu, dengan menggunakan perintah
Hal yang sama juga terjadi pada sensor tutup pintu, perbedaanya hanya pada
port mikrokontroler yang digunakan. Jika sensor buka pintu dihubungkan ke P2.6,
maka sensor tutup pintu dihubungkan ke P2.7.
4.6Pengujian Rangkaian Driver Motor Stepper
Rangkaian driver motor stepper ini terdiri dari empat masukan dan empat keluaran,
dimana masing-masing masukan dihubungkan dengan mikrokontroler AT89S51 dan
keluarannya dihubungkan ke motor stepper. Rangkaian ini akan bekerja memutar
motor stepper jika diberi sinyal high (1) secara bergantian pada ke-4 masukannya.
Rangkaian ini terdairi dari 4 buah transistor NPN TIP 122. Masing-masing
transistor dihubungkan ke P0.0, P0.1, P0.2 dan P0.3 pada mikrokontroler AT89S51.
Basis dari masing-masing transistor diberi tahanan 10 Kohm untuk membatasi arus
yang masuk ke transistor. Kolektor dihubungkan dengan kumparan yang terdapat pada
motor stepper, kemudian kumparan dihubungkan dengan sumber tegangan 12 volt.dan
emitor dihubungkan ke ground.
Jika P0.0 diberi logika high (1), yang berarti basis pada transistor TIP 122
mendapat tegangan 5 volt, maka transistor akan aktip. Hal ini akan menyebabkan
terhubungnya kolektor dengan emitor, sehingga kolektor mendapatkan tegangan 0 volt
dari ground. Hal ini menyebabkan arus akan mengalir dari sumber tegangan 12 volt ke
yang memiliki medan magnet tesebut. Medan magnet memutar motor sehingga
Jika kemudian P0.0 di beri logika low (0), yang berarti transistor tidak aktip
dan tidak ada arus yang mengalir pada kumparan, sehingga tidak ada medan magnet
pada kumparan. Dan disisi lain P0.1 diberi logika high (1), sehingga kumparan yang
terhubung ke P0.1 akan menghasilkan medan magnet. Maka motor akan beralih
kearah kumparan yang terhubung ke P0.1 tersebut. Seterusnya jika logika high(1)
diberikan secara bergantian pada input dari driver motor stepper, maka motor stepper
akan berputar sesuai dengan arah logika high (1) yang diberikan pada inputnya.
Untuk memutar dengan arah yang berlawanan dengan arah yang sebelumnya,
maka logika high (1) pada input driver motor stepper harus diberikan secara
bergantian dengan arah yang berlawanan dengan sebelumnya.
Program yang diberikan pada driver motor stepper untuk memutar motor
stepper adalah sebagai berikut :
mov a,#11h
Buka_Pintu:
mov P0,a
acall tunda
Rl a
Jb Sensor_Buka,Buka_Pintu
mov P0,#0h
Program diawali dengan memberikan nilai 11h pada pada accumulator (a),
kemudian program akan memasuki rutin buka pintu. Nilai a diisikan ke port 0,
logika high sedangkan yang lainnya mendapatkan logika low, seperti table di bawah
ini,
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
P0 0 0 0 1 0 0 0 1
Program dilanjutkan dengan memanggil rutin tunda. Lamanya tunda akan
mempengaruhi kecepatan perputaran motor. Semakin lama tunda, maka perputaran
motor akan semakin lambat. Perintah berikutnya adalah Rl a,perintah ini akan
memutar nilai yang ada pada accumulator (a), seperti tampak pada table di bawah ini,
a 0 0 0 1 0 0 0 1
Rl
a 0 0 1 0 0 0 1 0
Dst...
Nilai pada accumulator (a) yang awalnya 11h, setelah mendapat perintah Rl a,
maka nilai pada accumulator (a) akan merubah menjadi 22h. Kemudian program akan
melihat apakah kondisi sensor buka pintu dalam keadaan high (1) atau low (0). Jika
high (1),
Jika kondisi sensor buka pintu high (1), yang berarti pintu belum terbuka lebar,
maka program akan kembali ke rutin buka pintu untuk terus membuka pintu. Nilai
yang ada pada accumulator (a), akan kembali diisikan ke port 0, maka nilai di port 0
akan berubah menjadi 22h, ini berarti P0.1 dan P0.5 mendapatkan logika high
sedangkan yang lainnya mendapatkan logika low, seperti table di bawah ini,
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
P0 0 0 1 0 0 0 1 0
Sebelumnya telah dibahas bahwa P0.0, P0.1, P0.2, dan P0.3 dihubungkan ke masukan
mendapatkan nilai high (1) secara bergantian. Hal ini menyebabkan motor stepper
akan berputar membuka pintu. Pintu akan terus dibuka sampai sensor buka pintu
mengirimkan logika low (0). Jika kondisi sensor buka pintu low (0), yang berarti
pintu telah terbuka lebar maka program akan melanjutkan ke baris berikutnya, yaitu
mengisi port 0 dengan nilai 0h, yang merupakan perintah untuk menghentikan
perputaran motor.
Hal yang sama juga berlaku ketika motor berputar untuk menutup pintu,
perbedaannya hanya pada perintah rotate. Jika pada perintah buka pintu digunakan
rotate left ( Rl ), maka pada perintah tutup pintu digunakan perintah rotate right ( Rr).
Perputaran perintah Rr diperlihatkan pada table berikut,
a 1 0 0 0 1 0 0 0
R r
a 0 1 0 0 0 1 0 0
4.7Pengujian Alarm
Pengujian pada rangkaian alarm ini dapat dilakukan dengan memberikan tegangan 5
volt dan 0 volt pada basis transistor C945. Transistor C945 merupakan transistor jenis
NPN, transistor jenis ini akan aktip jika pada basis diberi tegangan > 0,7 volt dan tidak
aktipjika pada basis diberi tegangan < 0,7 volt. Aktifnya transistor akan membunyikan
alarm.
Selanjutnya alarm dihubungkan dengan mikrokontroler dan mikrokontroler
diberi program sederhana untuk megaktifkan alarm. Program yang diisikan ke
mikrokontroler untuk mengaktifkan alarm adalah :
Setb P0.0
. . .
Perintah di atas akan memberikan logika high (1) atau tegangan 5 volt. pada P0.0,
kussunk:
mov sbuf,#Kosong jnb ti,$
clr ti
mov sbuf,#Kosong jnb ti,$
clr ti
mov sbuf,#Kosong jnb ti,$
clr ti
mov sbuf,#Kosong jnb ti,$
BAB 5
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Ketika mikrokontroler memerintahkan motor untuk membuka pintu, mikrokontroler
tidak mengetahui apakah pintu sudah terbuka lebar atau belum. Hal yang sama juga
terjadi ketika mikrokontroler memerintahkan motor untuk menutup pintu,
mikrokontroler tidak mengetahui apakah pintu sudah tertutup rapat atau belum.
Karena itu dibutuhkan sebuah sensor yang dapat mengetahui kedua keadaan tersebut.
Dalam hal ini digunakan sebuah sensor buka pintu atau switch control, yang
berfungsi untuk mengetahui apakah pintu sudah terbuka lebar atau belum, dan sebuah
sensor tutup pintu yang berfungsi untuk mengetahui apakah pintu sudah tertutup rapat
atau belum. Rangkaian sensor buka pintu hanya terdiri dari sebuah saklar yang
dihubungkan ke ground dan ke mikrokontroler AT89S51.
Ketika sensor dalam keadaan terbuka, kondisi P2.6 adalah high. Namun jika
pintu menyentuh saklar, maka P2.6 akan terhubung ke ground, yang menyebabkan
kondisi P2.6 akan berubah dari high (1), menjadi low (0). Perubahan kondisi pada
P2.6 inilah yang dikenali oleh mikrokontroler sebagai tanda bahwa pintu telah terbuka
lebar, maka mikrokontroler akan memerintahkan motor stepper untuk berhenti
5.2. Saran
Pintu otomatis bukan hanya proyek untuk mendapatkan gelar diploma III semata
tetapi sangat tepat untuk menjaga keamanan bagi setiap penggunanya dimana dapat
terhindar dari maling, kebakaran. karena bukan saja berfungsi sebagasi pintu tetapi
lemari dan berangkas dimana dapat digunakan untuk menyimpan barang-barang
berharga seperti surat-surat penting, uang dan yang lain yang sangat pribadi. Pintu
otomatis ini tidak rumit untuk digunakan karena pengguna hanya
menghapal/mengingat kode empat digit yang hanya pengguna yang mengetahuinya
DAFTAR PUSTAKA
Agfianto, Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi, Edisi Kedua,
Penerbit: Gava Media, Yogyakarta, 2004
Andi, Panduan Praktis Teknik Antarmuka dan Pemrograman Mikrokontroler
AT89C51, Penerbit PT Elex Media Komputindo, Jakarta 2003
Brey B Barry, The Intel Microprocessors, Edisi Kelima, Penerbit: Erlangga &
Prentice Hall, Inc., Jakarta, 2002
Malvino, Albert paul, Prinsip-prinsip Elektronika, Jilid 1 & 2, Edisi Pertama,
Penerbit: Salemba Teknika, Jakarta, 2003.
M. G. Joshi, Transducers For Instrumentation, Penerbit: Laxmi Publications, New
Delhi, 2002
Widodo, S.Si, Mkom, Interfacing Komputer dan Mikrokontroler, Penerbit: Elex
Media Komputindo, Jakarta, 2004
Lampiran A : Rancang Bangun Pintu Otomatis Menggunakan Password
Lampiran B : Gambar Rangkaian Keseluruhan