Aplikasi Mikrokontroller AT89S51 Untuk Buka/Tutup Pintu Otomatis Menggunakan Password

(1)

APLIKASI MIKROKONTROLLER AT89S51 UNTUK

BUKA/TUTUP PINTU OTOMATIS MENGGUNAKAN

PASSWORD

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar ahli madya

RAMLI BUTAR-BUTAR

052408054

DEPARTEMEN FISIKA INSTRUMENTASI

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2008


(2)

PERSETUJUAN

JuduI : APLIKASI MIKROKONTROLLER AT89S51

UNTUK BUKA/TUTUP PINTU OTOMATIS MENGGUNAKAN PASSWORD

Kategori : TUGAS AKHIR

Nama : RAMLI BUTAR-BUTAR

Nomor Induk Mahasiswa : 052408054

Program Studi : D3 FISIKA INSTRUMENTASI

Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juli 2008

Diketahui/Disetujui oleh

Ketua Jurusan

Fisika Instrumentasi

FMIPA-USU Pembimbing

(Drs, Syahrul Humaidi, MSi) (Drs. Tenang Ginting, MS) NIP : 132 050 870 NIP : 130 535 872


(3)

PERNYATAAN

APLIKASI MIKROKONTROLLER AT89S51 UNTUK BUKA/TUTUP PINTU OTOMATIS MENGGUNAKAN PASSWORD

TUGAS AKHIR

Saya mengakui bahwa laporan tugas akhir ini adalah hasil kerja saya sendiri,kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2008

RAMLI BUTAR-BUTAR 052408054


(4)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas segala anugerah dan karunianya sehingga penulis dapat menyelesaikan laporan tugas akhir ini.

Ucapan terimakasih saya sampaikan kepada Bapak Drs.Tenang Ginting,MS selaku pembimbing pada penyelesaian laporan tugas akhir ini yang telah memberikan panduan dan perhatian kepada penulis untuk menyempurnakan laporan ini. Ucapan terimakasih juga ditujukan kepada ketua jurusan Fisika Instrumentasi Bapak DR.Marhaposan Situmorang serta Dosen-dosen pengajar pada jurusan Fisika Instrumentasi,dan kawan-kawan stambuk “05” atas segala bantuan dan motivasinya sehingga penulis dapat menyelesaikan laporan ini dengan baik. Dan juga saya tidak lupa mengucapkan terimakasih kepada kedua orang tua penulis yang begitu banyak memberikan dukungan berupa materil maupun spirituil pada penulis sehingga penulis dapat menyelesaikan laporan tugas akhir ini hingga selesai. Semoga Tuhan Yang Maha Esa akan memberikan berkat yang limpah kepada kita semua.


(5)

ABSTRAK

Pintu otomatis yang ada saat ini akan terbuka secara otomatis jika ada orang yang akan melewatinya, dan akan menutup sendiri secara otomatis beberapa saat kemudian ketika tidak ada orang yang akan melewatinya. Pintu otomatis ini dapat dikembangkan, sehingga hanya sebagian orang saja yang dapat masuk melalui pintu tersebut. Untuk itu dibutuhkan suatu alat pengenal, yang dengan alat pengenal tersebut seseorang dapat masuk melalui pintu itu. Alat pengenal tersebut berupa sebuah kartu identitas yang didalamnya terdapat kode bar.

Kode bar akan dirancang sendiri dengan ukuran yang cukup besar sekitar 1 cm per kode, sehingga memudahkan sensor untuk membacanya. Kode bar yang digunakan hanya terdiri dari 8 kode, dengan warna hitam sebagai kode 1 dan warna putih sebagai kode 0. Untuk pembacaan kode bar akan digunakan beberapa buah LED infra merah dan potodioda.


(6)

DAFTAR ISI

Halaman

Persetujuan i

Pernyataaan ii

Penghargaan iii

Abstrak iv

Daftar Isi v

Daftar Tabel vii

Daftar Gambar viii

BAB 1 PENDAHULUAN

1.1 Latar Belakang Penulisan 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penulisan 3

1.4 Batasan Masalah 3

1.5 Sistematika Penulisan 3

BAB 2 TINJAUAN TEORITIS

2.1 Mikrokontroller AT89S51 6

2.1.1 Kontruksi AT89S51 8

2.1.2 Pin-Pin pada mikrokontroller AT89S51 10

2.2 Motor Langkah(Stepper) 13

2.3 Komponen Pendukung 15

2.3.1 Resistor 15

2.3.1.1. Fixed Resistor 15

2.3.1.2 Variabel Resistor 17

2.3.2. Kapasitor 19

2.3.2.1 Electrolytic Capacitor (ELCO) 20

2.3.2.2 Ceramic Capacitor 21

2.3.3 Transistor 23

2.3.4 Bahasa Assemby MCS-51 27

2.3.5 Software 8051 Editor, Assembler,Simulator 31

2.3.6 Software Downloader 32

BAB 3 RANCANGAN SISTEM

3.1 Diagram Blok Rangkaian 33

3.2 Perancangan Program 34

3.3 Perancangan Rangkaian Power Supply 35

3.4 Perancangan Rangkaian Mikrokontroller AT89S51 36 3.5 Perancangan Rangkaian Display Seven Segmen 37

3.6 Perancangan Rangkaian Password 38

3.7 Perancangan Rangkaian Driver Motor Stepper 45

3.8 Perancangan saklar batas 46

BAB 4 PENGUJIAN ALAT

4.1 Pengujian Rangkaian Power Supplay (PSA) 48 4.2 Pengujian Rangkaian Mikrokontroller AT89S51 48 4.3 Pengujian Rangkaian Driver Motor Stepper 51


(7)

BAB 5 KESIMPULAN DAN SARAN

5.1 Kesimpulan 54

5.2 Saran 54

DAFTAR PUSTAKA LAMPIRAN


(8)

DAFTAR TABEL

Halaman Tabel 2.1 Fungsi Kaki IC 89S51 Pada Port P3 11

Tabel 2.2 Gelang Resistor 16


(9)

DAFTAR GAMBAR

Halaman

Gambar 2.1 IC mikrokontroller AT 89S51 10

Gambar 2.2 Diagram motor langkah(stepper) 13

Gambar 2.3 Pemberian data /pulsa pada motor stepper 14

Gambar 2.4 Resistor Karbon 16

Gambar 2.5 Potensiometer 18

Gambar 2.6 Grafik Perubahan Pada Nilai Potensiometer 18

Gambar 2.7 Skema Kapasitor 19

Gambar 2.8 Electrolytic Capacitor (ELCO) 20

Gambar 2.9 Ceramic Capasitor 21

Gambar 2.10 Simbol Tipe Transistor 23

Gambar 2.11 Transistor Sebagai Saklar ON 24

Gambar 2.12 Karakteristik Daerah Saturasi Pada Transistor 25

Gambar 2.13 Transistor Sebagai Saklar OFF 26

Gambar 2.14 8051 Editor,Assembler,Simulator 31

Gambar 2.15 ISP-Flash programmer 3a 32

Gambar 3.1 Diagram Blok Rangkaian 33

Gambar 3.2 Rangkaian Power Supply(PSA) 35

Gambar 3.3 Rangkaian Mikrokontroller AT89S51 36

Gambar 3.4 Rangkaian Keypad 39

Gambar 3.5 Rangkaian Password 40

Gambar 3.6 Rangkaian Driver Motor Stepper 45


(10)

ABSTRAK

Pintu otomatis yang ada saat ini akan terbuka secara otomatis jika ada orang yang akan melewatinya, dan akan menutup sendiri secara otomatis beberapa saat kemudian ketika tidak ada orang yang akan melewatinya. Pintu otomatis ini dapat dikembangkan, sehingga hanya sebagian orang saja yang dapat masuk melalui pintu tersebut. Untuk itu dibutuhkan suatu alat pengenal, yang dengan alat pengenal tersebut seseorang dapat masuk melalui pintu itu. Alat pengenal tersebut berupa sebuah kartu identitas yang didalamnya terdapat kode bar.

Kode bar akan dirancang sendiri dengan ukuran yang cukup besar sekitar 1 cm per kode, sehingga memudahkan sensor untuk membacanya. Kode bar yang digunakan hanya terdiri dari 8 kode, dengan warna hitam sebagai kode 1 dan warna putih sebagai kode 0. Untuk pembacaan kode bar akan digunakan beberapa buah LED infra merah dan potodioda.


(11)

BAB 1

PENDAHULUAN

1.1. Latar Belakang Masalah

Kebutuhan manusia terhadap peralatan yang cerdas dan dapat bekerja secara otomatis semakin meningkat, sehingga peralatan-peralatan otomatis ini sedikit demi sedikit mulai mulai menggantikan peralatan manual. Selain sistem kerjanya yang sama, peralatan otomatis dapat melakukan pekerjaannya sendiri tanpa harus dikendalikan oleh pengguna.

Untuk merancang sebuah peralatan yang cerdas dan dapat bekerja secara otomasis tesebut, dibutuhkan sebuah alat/komponen yang dapat menghitung, mengingat, dan mengambil pilihan. Kemampuan ini dimiliki oleh sebuah komputer (PC), namun imporsible jika harus menggunakan komputer hanya untuk keperluan tersebut diatas. Untuk itu komputer dapat digantikan dengan sebuah mikrokontroler. Mikrokontroler merupakan sebuah chip atau IC yang di dalamnya terdapat sebuah prosessor dan flash memori yang dapat dibaca/tulis sampai 1000 kali, sehingga biaya pengembangan menjadi murah karena dapat dihapus kemudian diisi kembali dengan program lain sesuai dengan kebutuhan.


(12)

Salah satu alat otomatis yang sering digunakan adalah pintu otomatis, dimana pintu ini akan terbuka secara otomatis jika ada orang yang akan melewatinya, dan akan menutup sendiri secara otomatis beberapa saat kemudian ketika tidak ada orang yang akan melewatinya. Pintu otomatis ini dapat dikembangkan, sehingga hanya sebagian orang saja yang dapat masuk melalui pintu tersebut. Untuk itu dibutuhkan suatu alat pengenal, yang dengan alat pengenal tersebut seseorang dapat masuk melalui pintu itu. Alat pengenal tersebut berupa sebuah kartu identitas yang didalamnya terdapat kode bar.

Atas dasar pemikiran di atas, akan dirancang sebuah pintu otomatis yang dapat membaca/mengenali kode bar dari kartu identitas tersebut. Sehingga hanya orang-orang yang memiliki kartu identitas dengan kode bar yang sesuai yang dapat memasuki pintu tersebut.

1.2. Rumusan Masalah

Berdasarkan uraian diatas, penulis tertarik untuk mengangkat permasalahan tersebut kedalam bentuk skripsi sebagai Tugas Akhir dengan judul “APLIKASI

MIKROKONTROLLER AT89S51 PADA PINTU OTOMATIS MENGGUNAKAN BARCODE DAN PASSWORD”.

Pada alat ini akan digunakan sebuah mikrokontroler AT89S51, motor stepper dan beberapa buah infra merah dan potodioda sebagai sensor. Mikrokontroler AT89S51 sebagai otak dari system, yang berfungsi mengendalikan seluruh sistem. Motor stepper untuk menggerakkan pintu (buka/tutup). Sensor untuk membaca kode bar pada kartu identitas.


(13)

1.3 Tujuan Penulisan

Tujuan dilakukan Tugas Akhir ini adalah sebagai berikut:

1. Sebagai salah satu syarat untuk menyelesaikan program studi D III Fisika Instrumentasi FMIPA USU.

2. Memahami cara kerja dan pembacaan dari sebuah kode bar.

3. Memanfaatkan mikrokontroler sebagai pusat kendali dari sebuah sistem yang cerdas.

4. Membuat sebuah pintu otomatis yang dapat membaca kode bar yang terdapat pada kartu identitas pengguna.

1.4 Batasan Masalah

1. Kode bar akan dirancang sendiri dengan ukuran yang cukup besar sekitar 1 cm per kode, sehingga memudahkan sensor untuk membacanya.

2. Kode bar yang digunakan hanya terdiri dari 6 kode, dengan warna hitam sebagai kode 1 dan warna putih sebagai kode 0.

3. Untuk pembacaan kode bar akan digunakan beberapa buah LED infra merah dan potodioda.

1.5 Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja pintu otomatis dengan menggunakan kode bar berbasis miktokontroler AT89S51, maka penulis menulis laporan ini sebagai berikut:


(14)

BAB 1 PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB 2 TINJAUAN TEORITIS

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 karekteristik dari komponen-komponen pendukung.

BAB 3 PERANCANGAN ALAT DAN PROGRAM

Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, skematik dari masing-masing rangkaian dan diagram alir dari program yang akan diisikan ke mikrokontroler AT89S51.

BAB 4 ANALISA RANGKAIAN DAN SISTEM KERJA ALAT

Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai program-program yang digunakan untuk mengaktipkan rangkaian, penjelasan mengenai program yang diisikan ke mikrokontroler AT89S51.


(15)

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 sistem kerja yang sama.


(16)

BAB 2

TINJAUAN TEORITIS

2.1. Mikrokontroler AT89S51

Mikrokontroller, sebagai suatu terobosan teknologi mikrokontroler dan microkomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru. Sebagai teknologi baru, yaitu teknologi semi konduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah (dibandingkan microprocessor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat bantu dan mainan yang lebih canggi serta dalam bidang pendidikan.

Tidak seperti sistem komputer, yang mampu menangani berbagai macam program aplikasi (misalnya pengolah kata, pengolah angka, dan lain sebagainya), Microcontroller 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, sedangkan rutin-rutin antar muka perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan Pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program


(17)

control disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sederhana sementara, termasuk register-register yang digunakan pada Microcontroller yang bersangkutan.

Microcontroller AT89S51 merupakan salah satu keluarga dari MCS-51 keluaran Atmel. Jenis Microcontroller ini pada prinsipnya dapat digunakan untuk mengolah data per bit ataupun data 8 bit secara bersamaan.

Pada prinsipnya program pada Microcontroller dijalankan bertahap, jadi pada program itu sendiri terdapat beberapa set instruksi dan tiap instruksi itu dijalankan secara bertahap atau berurutan.

Beberapa fasilitas yang dimiliki oleh microcontroller AT89S51 adalah sebagai berikut :

 Sebuah Central Processing Unit 8 bit

 Osilatc : internal dan rangkaian pewaktu

 RAM internal 128 byte

 Flash memori 4 Kbyte

 Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga buah interupsi internal)

 Empat buah programable port I/0 yang masing-masing terdiri dari delapan buah jalur I/0

 Sebuah port serial dengan kontrol serial full duplex UART

 Kemampuan untuk melaksanakan operasi aritmatika dan operasi logika

 Kecepatan dalam melaksanakan instruksi per siklus 1 mikrodetik pada frekuensi 12 MHz.


(18)

2.1.1 Kontruksi AT89S51

Microcontroller AT89S51 hanya memerlukan tambahan 3 kapasitor, 1 resistor dan 1 kristal serta catu daya 5 volt. Kapasitor 10 micro-fard dan resistor 10 kilo Ohm dipakai untuk membentuk rangkaian riset. Dengan adanya rangkaian riset ini AT89C4051 otomatis diriset begitu rangkaian menerima catu daya. Kristal dengan frekuensi maksimum 24MHz dan kapasitor 30 mikro-farad dipakai untuk melengkapi rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja Microcontroller.

Memori merupakan bagian yang sangat penting pada Microcontroller. Microcontroller memiliki dua macam memori yang sifatnya berbeda :

a. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori program.

b. Random Access Memory (RAM) 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 Microcontroller dengan program yang sudah baku dan diproduksi secara massal, program diisikan kedalam ROM pada saat IC Microcontroller dicetak dipabrik IC. Untuk keperluan tertentu Microcontroller menggunakan ROM yang dapat diisi ulang atau Programble-Eraseable ROM yang disingkat menjadi PROM (PEROM). Dulu banyak UV-EPROM (Ultra Violet Eraseable Programble ROM) yang kemudian dinilai mahal dan ditinggalkan setelah ada flash PEROM yang harganya jauh lebih murah.


(19)

Jenis memori yang dipakai untuk memori program AT89S51 adalah flash PEROM, program untuk mengendalikan Microcontroller diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89S51 flash PEROM Programmer.

Memori data yang disediakan dalam chip AT89S51 sebesar 128 kilo byte meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.

AT89S51 dilengkapi UART (Universal Asyncronous Receiver/Transmiter) yang biasa dipakai untuk komunikasi data secara seri. Jalur untuk komunikasi data seri (RXD dan TXD) diletakkan berhimpitan dengan P1.0 dan P1.1. pada kaki nomor 2 dan 3, sehingga kalau sarana input/output 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/output paralel kalau T0 dan T1 dipakai.

AT89S51 mempunyai enam sumber pembangkit interupsi, dua diantaranya adalah sinyal interupsi yang diumpankan ke kaki INT0 dan INT1. Kedua kaki ini berhimpitan dangan P3.2 dan P3.3 sehingga tidak bisa dipakai sebagai jalur input/output paralel kalau INT0 dan INT1 dipakai untuk menerima sinyal interupsi.

Port1 dan 2, UART, Timer 0, Timer 1 dan sarana lainnya merupakan yang secara fisik merupakan RAM khusus, yang ditempatkan di Special Function Register (SFR).


(20)

2.1.2. Pin-Pin pada Microcontroller AT89S51

Deskripsi pin-pin pada Microcontroller AT89S51 :

Gambar 2.1. IC Mikrokontroler AT89S51

VCC (Pin 40)

VCC berfungsi sebagai suplai tegangan.

GND (Pin 20)

GND berfungsi sebagai 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.


(21)

Pada fungsi sebagai low order multiplex address/data, por ini akan mempunyai internal pull up. Pada saat flash progamming diperlukan eksternal pull up, terutamapada saat verifikasi program.

Port 2 (Pin 21 – pin 28)

Port 2 berfungsi sebagai I/O biasa atau high order address, pada saat mengaksememori 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 memberikan output sink keempat buah input TTL.

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)


(22)

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)

Progam Store Enable (PSE) digunakan untuk mengakses memori progam eksternal.

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)

XTA1 merupakan input untuk clock internal.

XTAL2 (pin 18)

XTAL2 merupkan output dari osilator.


(23)

2.2. Motor Langkah (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.2. Diagram motor langkah (stepper)

U

S

A B

C

D A

A

B

B

C

C

D


(24)

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.3. 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 B


(25)

2.3. Komponen-Komponen Pendukung

2.3.1. Resistor

Resistor komponen pasif elektronika yang berfungsi untuk membatasi arus listrik yang mengalir. Berdasarkan kelasnya resistor dibagi menjadi 2 yaitu : Fixed Resistor dan Variable R esistor Dan umumnya terbuat dari carbon film atau metal film, tetapi tidak menutup kemungkinan untuk dibuat dari material yang lain.

Pada dasarnya semua bahan memiliki sifat resistif namun beberapa bahan tembaga perak emas dan bahan metal umumnya memiliki resistansi yang sangat kecil. Bahan–bahan tersebut menghantar arus listrik dengan baik, sehingga dinamakan konduktor. Kebalikan dari bahan yang konduktif, bahan material seperti karet, gelas, karbon memiliki resistansi yang lebih besar menahan aliran elektron dan disebut sebagai insulator.

2.3.1.1.Fixed Resistor

Resistor adalah komponen dasar elektronika yang digunakan untuk membatasi jumlah arus yang mengalir dalam satu rangkaian. Sesuai dengan namanya resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Tipe resistor yang umum berbentuk tabung porselen kecil dengan dua kaki tembaga dikiri dan kanan. Pada badannya terdapat lingkaran membentuk gelang kode warna untuk memudahkan pemakai mengenali besar resistansi tanpa mengukur besarnya dengan ohm meter.


(26)

Kode warna tersebut adalah standar menufaktur yang dikeluarkan oleh ELA (Electronic Industries Association).

Gambar 2.4. Resistor karbon

Tabel 2.2 Gelang Resistor

WARNA GELANG I GELANG II GELANG III GELANG

IV

Hitam 0 0 1 -

Coklat 1 1 10 -

Merah 2 2 100 -

Jingga 3 3 1000 -

Kuning 4 4 10000 -

Hijau 5 5 100000 -

Biru 6 6 1000000 -

Violet 7 7 10000000 -

Abu-abu 8 8 100000000 -

Putih 9 9 1000000000 -

Emas - - 0,1 5%

Perak - - 0,01 10%


(27)

Resitansi dibaca dari warna gelang yang paling depan ke arah gelang toleransi berwarna coklat, emas, atau perak. Biasanya warna gelang toleransi ini berada pada bahan resistor yang paling pojok atau juga dengan lebar yang lebih menonjol, sedangkan warna gelang yang keempat agak sedikit ke dalam. Dengan demikian pemakai sudah langsung mengetahui berapa toleransi dari resitor tersebut. Kalau anda telah bisa menentukan mana gelang pertama selanjutnya adalah membaca nilai resistansinya.

Biasanya resistor dengan toleransi 5%, 10% atau 20% memiliki gelang (tidak termasuk gelang toleransi). Tetapi resistor dengan toleransi 1% atau 2% (toleransi kecil) memiliki 4 gelang (tidak termasuk gelang toleransi). Gelang pertama dan seterusnya berturut-turut menunjukkan besar nilai satuan, dan gelang terakhir adalah faktor penggalinya.

2.3.1.2.Variable Resistor

Untuk kelas resistor yang kedua ini terdapat 2 tipe. Untuk tipe pertama dinamakan variable resistor dan nilainya dapat diubah sesuai keinginan dengan mudah dan sering digunakan untuk pengaturan volume, bass, balance, dll. Sedangkan yang kedua adalah semi-fixed resistor. Nilai dari resistor ini biasanya hanya diubah pada kondisi tertentu saja. Contoh penggunaan dari semi-fixed resistor adalah tegangan referensi yang digunakan untuk ADC, fine tune circuit, dll. Ada beberapa model pengaturan nilai Variable resistor, yang sering digunakan adalah dengan cara nya terbatas sampai 300 derajat putaran. Ada beberapa model variable resistor yang harus


(28)

diputar berkali – kali untuk mendapatkan semua nilai resistor. Model ini dinamakan “Potentiometers” atau “Trimmer Potentiometers”.

Gambar 2.5 Potensio meter

Pada gambar 2.5 di atas untuk bentuk 3 biasanya digunakan untuk volume kontrol. Bentuk yang ke 2 merupakan semi fixed resistor dan biasanya di pasang pada PCB (Printed Circuit Board). Sedangkan bentuk 1 dpotentiometers. Ada 3 tipe didalam perubahan nilai dari resistor variabel, perubahan tersebut dapat dilihat pada gambar 2.6.

Gambar 2.6 Grafik Perubahan nilai pada potensiometer

Pada saat tipe A diputar searah jarum jam, awalnya perubahan nilai resistansi lambat tetapi ketika putarannya mencapai setengah atau lebih nilai perubahannya menjadi sangat cepat. Tipe ini sangat cocok dengan karakteristik telinga manusia.


(29)

Karena telinga sangat peka ketika membedakan suara dengan volume yang lemah, tetapi tidak terlalu sensitif untuk membedakan perubahan suara yang keras. Biasanya tipe A ini juga disebut sebagai “Audio Taper” potensiometer. Untuk tipe B perubahan resistansinya adalah linier dan cocok digunakan untuk Aplikasi Balance Control,

resistance value adjustment in circuit, dll. Sedangkan untuk tipe C perubahan

resistansinya kebalikan dati tipe A.

2.3.2. Kapasitor

Kapasitor adalah komponen elektronika yang dapat menyimpan muatan listrik. Struktur sebuah kapasitor terbuat dari 2 buah plat metal yang dipisahkan oleh suatu bahan dielektrik. Bahan-bahan dielektrik yang umum dikenal misalnya udara vakum, keramik, gelas dan lain-lain. Jika kedua ujung plat metal diberi tegangan listrik, maka muatan-muatan positif akan mengumpul pada salah satu kaki elektroda metalnya dan pada saat yang sama muatan-muatan negatif terkumpul pada ujung metal yang satu lagi. Muatan positif tidak dapat mengalir menuju ujung kutup negatif dan sebaliknya muatan negatif tidak bisa menuju ke ujung kutup positif karena terpisah oleh bahan elektrik yang non-konduktif. Muatan elektrik ini “tersimpan” selama tidak ada konduktif pada ujung- ujung kakinya. Di alam bebas phenomena kapasitor terjadi pada saat terkumpulnya muatan-muatan positif dan negatif diawan.

dielektrik

Elektroda Elektroda


(30)

Kapasitor merupakan komponen pasif elektronika yang sering dipakai didalam merancang suatu sistem yang berfungsi untuk mengeblok arus DC, Filter, dan penyimpan energi listrik. Didalamnya 2 buah pelat elektroda yang saling berhadapan dan dipisahkan oleh sebuah insulator. Sedangkan bahan yang digunakan sebagai

insulator dinamakan dielektrik. Ketika kapasitor diberikan tegangan DC maka energi

listrik disimpan pada tiap elektrodanya. Selama kapasitor melakukan pengisian, arus mengalir. Aliran arus tersebut akan berhenti bila kapasitor telah penuh. Yang membedakan tiap - tiap kapasitor adalah dielektriknya. Berikut ini adalah jenis– jenis kapasitor yang dipergunakan dalam perancangan ini.

2.3.2.1. Electrolytic Capacitor (ELCO)

Gambar 2.8 Electrolytic Capacitor (ELCO)

Elektroda dari kapasitor ini terbuat dari alumunium yang menggunakan membrane oksidasi yang tipis. Karakteristik utama dari Electrolytic Capacitor adalah perbedaan polaritas pada kedua kakinya. Dari karakteristik tersebut kita harus berhati- hati di dalam pemasangannya pada rangkaian, jangan sampai terbalik. Bila polaritasnya terbalik maka akan menjadi rusak bahkan “meledak”. Biasanya jenis kapasitor ini digunakan pada rangkaian power supply. Kapasitor ini tidak bisa


(31)

digunakan pada rangkaian frekuensi tinggi. Biasanya tegangan kerja dari kapasitor dihitung dengan cara mengalikan tegangan catu daya dengan 2. Misalnya kapasitor akan diberikan catu daya dengan tegangan 5 Volt, berarti kapasitor yang dipilih harus memiliki tegangan kerja minimum 2 x 5 = 10 Volt.

2.3.2.2. Ceramic Capacitor

Kapasitor menggunakan bahan titanium acid barium untuk dielektriknya. Karena tidak dikonstruksi seperti koil maka komponen ini dapat digunakan pada rangkaian frekuensi tinggi. Biasanya digunakan untuk melewatkan sinyal frekuensi tinggi menuju ke ground. Kapasitor ini tidak baik digunakan untuk rangkaian analog, karena dapat mengubah bentuk sinyal. Jenis ini tidak mempunyai polaritas dan hanya tersedia dengan nilai kapasitor yang sangat kecil dibandingkan dengan kedua kapasitor diatas.

Gambar 2.9 Ceramic Capacitor

Untuk mencari nilai dari kapasitor biasanya dilakukan dengan melihat angka/kode yang tertera pada badan kapasitor tersebut. Untuk kapasitor jenis elektrolit memang mudah, karena nilai kapasitansinya telah tertera dengan jelas pada tubuhnya. Sedangkan untuk kapasitor keramik dan beberapa jenis yang lain nilainya dikodekan. Biasanya kode tersebut terdiri dari 4 digit, dimana 3 digit pertama merupakan angka


(32)

dan digit terakhir berupa huruf yang menyatakan toleransinya. Untuk 3 digit pertama angka yang terakhir berfungsi untuk menentukan 10n, nilai n dapat dilihat pada tabel dibawah.

Tabel 2.3 Nilai Kapasitor

3rd Digit Multiplier Letter Tolerance

0 1 D 0.5 pF

1 10 F 1 %

2 100 G 2 %

3 1,000 H 3 %

4 10,000 J 5 %

5 100,000 K 10 %

6,7 Not Used M 20 %

8 .01 P +100, -0 %

9 1 Z +80, -20 %

Misalnya suatu kapasitor pada badannya tertulis kode 474J, berarti nilai kapasitansinya adalah 47 + 104 = 470.000 pF = 0.47µF sedangkan toleransinya 5%. Yang harus diingat didalam mencari nilai kapasitor adalah satuannya dalam pF (Pico


(33)

2.3.3. Transistor

Transistor adalah komponen elektronika yang mempunyai tiga buah terminal. Terminal itu disebut emitor, basis, dan kolektor. Transistor seakan-akan dibentuk dari penggabungan dua buah dioda. Dioda satu dengan yang lain saling digabungkan dengan cara menyambungkan salah satu sisi dioda yang senama. Dengan cara penggabungan seperti dapat diperoleh dua buah dioda sehingga menghasilkan transistor NPN.

Bahan mentah yang digunakan untuk menghasilkan bahan N dan bahan P adalah silikon dan germanium. Oleh karena itu, dikatakan :

1. Transistor germanium PNP. 2. Transistor silikon NPN. 3. Transistor silikon PNP. 4. Transistor germanium NPN.

Semua komponen di dalam rangkaian transistor dengan simbol. Anak panah yang terdapat di dalam simbol menunjukkan arah yang melalui transistor.

Gambar 2.10 simbol tipe transistor C

B

E

C

B

E


(34)

Keterangan : C = kolektor E = emiter B = basis

Didalam pemakaiannya transistor dipakai sebagai komponen saklar (switching) dengan memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (cut off) yang ada pada karakteristik transistor.

Pada daerah penjenuhan nilai resistansi persambungan kolektor emiter secara ideal sama dengan nol atau kolektor dan emiter terhubung langsung (short). Keadaan ini menyebabkan tegangan kolektor emiter (VCE) = 0 Volt pada keadaan ideal, tetapi

pada kenyataannya VCE bernilai 0 sampai 0,3 Volt. Dengan menganalogikan transistor

sebagai saklar, transistor tersebut dalam keadaan on seperti pada gambar 2.11.

Gambar 2.11 Transistor sebagai Saklar ON

Saturasi pada transistor terjadi apabila arus pada kolektor menjadi maksimum dan untuk mencari besar arus basis agar transistor saturi adalah :

Saklar On Vcc

Vcc

IC R

RB

VB

IB VBE


(35)

Rc Vcc

Imax= ………..……….(2.1)

Rc Vcc I

.

hfe B = ……….……….(2.2)

Rc . hfe

Vcc

IB= ……….(2.3)

Hubungan antara tegangan basis (VB) dan arus basis (IB

B BE B B R V V

I = −

) adalah :

……….(2.4)

VB = IB . RB + VBE

BE B B V Rc . hfe R . Vcc

V = +

………..(2.5)

………(2.5)

Jika tegangan VB BE

B B V Rc . hfe R . Vcc

V = +

telah mencapai , maka transistor akan

saturasi, dengan Ic mencapai maksimum.

Gambar 2.12 dibawah ini menunjukkan apa yang dimaksud dengan VCE (sat)

adalah harga VCE pada beberapa titik dibawah knee dengan posisi tepatnya ditentukan

pada lembar data. Biasanya VCE (sat) hanya beberapa perpuluhan volt, walaupun pada

arus kolektor sangat besar bisa melebihi 1 volt. Bagian dibawah knee pada gambar 2.12 dikenal sebagai daerah saturasi.

Gambar 2.12 Karakteristik daerah saturasi pada transistor Titik Sumbat (Cut

off) IB > IB(sat)

IB = IB(sat)

IB Penjenuhan

(saturation) IC

IB = 0 VCE

Q


(36)

Pada daerah penyumbatan,nilai resistansi persambungan kolektor emiter secara ideal sama dengan tak terhitung atau terminal kolektor dan emiter terbuka (open).

Keadaan ini menyebabkan tegangan (VCB) sama dengan tegangan sumber

(Vcc). Tetapi pada kenyataannya Vcc pada saat ini kurang dari Vcc karena terdapat arus bocor dari kolektor ke emiter. Dengan menganalogikan transistor sebagai saklar, transistor tersebut dalam keadaan off seperti gambar dibawah ini.

Gambar 2.13 Transistor Sebagai Saklar OFF

Keadaan penyumbatan terjadi apabila besar tegangan habis (VB) sama dengan

tegangan kerja transistor (VBE) sehingga arus basis (IB

hfe I I C

B =

) = 0 maka :

………(2.6)

IC = IB

I

. hfe ….………(2.7)

C

I

= 0 . hfe ………..………(2.8)

C

Hal ini menyebabkan V

= 0 ………..(2.9)

CE

Vcc = Vc + V

sama dengan Vcc dapat dibuktikan dengan rumus :

CE

V

…………..………(2.10)

CE

V

= Vcc – (Ic . Rc) …..………(2.11)

CE = Vcc …..………(2.12)

Saklar Off Vcc

Vcc

IC R

RB

VB

IB VBE


(37)

2.3.4. Bahasa Assembly MCS-51

Bahasa yang digunakan untuk memprogram IC mikrokontroler AT89C4051 adalah bahasa assembly untuk MCS-51. angka 51 merupakan jumlah instruksi pada bahasa ini hanya ada 51 instruksi, antara lain yaitu :

A. 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.


(38)

B. 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: ...

...

DJNZ R0,Loop ...

R0 -1, jika belum 0 lompat ke loop, jika R0 = 0 maka program akan meneruskan ke perintah pada baris berikutnya.

C. Instruksi ACALL

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :

...

ACALL TUNDA ...

TUNDA:

...

D. Instruksi RET

Instruksi RETURN (RET) ini merupakan perintah untuk kembali ke rutin pemanggil setelah instruksi ACALL dilaksanakan. Contoh :


(39)

ACALL TUNDA ... TUNDA:

... RET

E. Instruksi JMP (Jump)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu. Contoh :

Loop:

... ... JMP Loop

F. 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 ...

G. 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 ...


(40)

H. 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 instruksi selanjutnya..

I. 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 ...

J. 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 ...


(41)

2.3.5 Software 8051 Editor, Assembler, Simulator

Instruksi-instruksi yang merupakan bahasa assembly tersebut dituliskan pada sebuah editor, yaitu 8051 Editor, Assembler, Simulator. Tampilannya seperti di bawah ini.

Gambar 2.14 8051 Editor, Assembler, Simulator

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. Bilangan heksadesimal inilah yang akan dikirimkan ke mikrokontroller.


(42)

2.3.6 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.15 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 mengisikan hasil kompilasi tersebut ke mikrokontroller.


(43)

BAB III

RANCANGAN SISTEM

3.1. Diagram Blok Rangkaian

Diagram blok merupakan gambaran dasar dari rangkaian sistem yang akan dirancanag. Setiap diagram blok mempunyai fungsi masing-masing. Adapun diagram blok dari sistem yang dirancang adalah seperti yang diperlihatkan pada gambar 3.1. berikut ini:

Gambar 3.1. Diagram Blok Rangkaian

Driver Motor Stepper

Motor Stepper

M

ikr

okont

rol

er

A

T

89S

5

1

Rangkaian Pembaca Kode Bar

Saklar batas Buka pintu

Saklar batas tutup Pintu


(44)

1. Rangkaian pembaca kode bar berfungsi untuk membaca kode bar dari kartu. 2. Saklar batas buka pintu berfungsi untuk memberikan sinyal kepada

mikrokontroler jika pintu telah terbuka lebar.

3. Saklar batas tutup pintu berfungsi untuk memberitahukan kepada mikrokontroler ketika pintu sudah tertutup rapat.

4. Mikrokontroler AT89S51 berfungsi untuk mengendalikan semua sistem yang ada.

5. Motor stepper berfungsi untuk menggerakkan pintu (membuka/menutup pintu).

6. Keypad berfungsi untuk input password.

3.2. Perancangan Program


(45)

Vreg

LM7805CT

IN OUT

TIP32C

100ohm

100uF

330ohm 220V 50Hz 0Deg

TS_PQ4_12

2200uF 1uF 1N5392GP

1N5392GP

12 Volt

5 Volt

3.3. Perancangan 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, sedangkan keluaran 12 volt digunakan untuk mensuplay tegangan ke motor stepper. Rangkaian power supplay ditunjukkan pada gambar 3.2 berikut ini :

Gambar 3.2. 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 dioda penyearah.


(46)

3.4. Perancangan Rangkaian Mikrokontroler AT89S51

Rangkaian mikrokontroler ini berfungsi sebagai pusat kendali dari seluruh rangkaian yang ada pada alat ini. Gambar rangkaian mikrokontroler AT89S51 ditunjukkan pada gambar 3.3 berikut ini :

Gambar 3.3. Rangkaian Mikrokontroler AT89S51

Mikrokontroler ini memiliki 32 port I/O, yaitu port 0, port 1, port 2 dan port 3. Pin 40 dihubungkan ke sumber tegangan 5 volt. Dan pin 20 dihubungkan ke ground. Rangkaian mikrokontroler ini menggunakan komponen kristal 12 MHz sebagai sumber clocknya. Nilai kristal ini akan mempengaruhi kecepatan mikrokontroler dalam mengeksekusi suatu perintah tertentu.

Pada pin 9 dihubungkan dengan sebuah kapasitor 10 uF yang dihubungkan ke positip dan sebuah resistor 10 Kohm yang dihubungkan ke ground. Kedua komponen ini berfungsi agar programpada mikrokontroler dijalankan beberapa saat setelah power aktip. Lamanya waktu antara aktipnya power pada IC mikrokontroler dan aktipnya program adalah sebesar perkalian antara kapasitor dan resistor tersebut. Jika dihitung maka lama waktunya adalah :


(47)

10 10 1 det

t= =ΩR x C K =x µF m ik

Jadi 1 mili detik setelah power aktip pada IC kemudian program aktip.

Pin 17 yang merupakan P3.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 terhubug ke Pin 17 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Namun setelah seluruh rangkaian disatukan, LED yang terhubung ke in 17 ini tidak digunakan lagi.

3.5. Perancangan 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.


(48)

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.

3. 6 Perancangan 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 penekanan 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 yang merupakan tanda adanya penekanan pada salah satu tombol.

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.


(49)

Rangkaian keypad ditunjukkan pada gambar berikut ini :

Tbl 1 Tbl 2 Tbl 3 Tbl A P2.0

P2.1 P2.2

P2.3 P2.4 P2.5 P2.6 P2.7

Gambar 3.4 Rangkaian keypad

Rangkaian keypad yang digunakan adalah rangkaian keypad yang telah ada dipasaran. Keypad ini terdiri dari 13 tombol yang hubungan antara tombol-tombolnya seperti tampak pada gambar di atas. Rangkaian ini dihubungkan ke port 2 mikrokontroler AT89S51.

Untuk membuka pintu, maka password yang diberikan harus benar, jika tidak benar, maka pintu tidak akan terbuka. Rangkaian password ini terdiri dari 13 tombol, seperti gambar di bawah ini.


(50)

Gambar 3.5 Rangkaian Password

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 mengganti password, P1.6 merupakan tombol Run. Jika tombol setting ditekan maka 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.

P1.7 (A T89S51)

P2.4 (A T89S51)

P2.3 (A T89S51)

P2.2 (A T89S51)

P2.1 (A T89S51)

P2.0 (A T89S51)

P1.0 (A T89S51)

P1.1 (A T89S51)

Tombol Setting

Tombol 1

Tombol 2

Tombol 3

Tombol 4

Tombol 5

Tombol 6

Tombol 7

P1.2 (A T89S51)

P1.3 (A T89S51)

P1.4 (A T89S51)

P1.5 (A T89S51)

P1.6 (A T89S51)

Tombol 8

Tombol 9

Tombol 0

Tombol Ganti


(51)

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 62h,#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


(52)

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,$ Acall Tunda

Ljmp Cek_Password2

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


(53)

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, 4, 5 dan seterusnya.

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,$


(54)

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 kedua. Kemudian program akan memasukkan nilai bil1 ke alamat 60h agar tampil di 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.


(55)

3.7 Perancangan Rangkaian Driver Motor Stepper

Untuk mengendalikan perputaran motor stepper dibutuhkan sebuah driver. Driver ini berfungsi untuk memutar motor stepper searah/berlawanan arah dengan arah jarum jam. Mikrokontroler tidak dapat langsung mengendalikan putaran dari motor stepper, karena itu dibutuhkan driver sebagai perantara antara mikrokontroler dan motor stepper, sehingga perputaran dari motor stepper dapat dikendalikan oleh mikrokontroler. Rangkaian driver motor stepper ditunjukkan pada gambar 3.8 berikut:

I III

II IV

Gambar 3.6 Rangkaian driver motor stepper

Untuk mempermudah penjelasan, maka rangkaian di atas dikelompokkan menjadi 4 rangkaian. Pada rangkaian di atas, jika salah input rangkaian I yang dihubungkan ke mikrokontroler diberi logika high dan input pada rangkaian lainnya diberi logika low, maka kedua transistor tipe NPN C945 pada rangkaian I akan aktip. Hal ini akan membuat kolektor dari kedua transistor C945 pada rangkaian I akan mendapat tegangan 0 volt dari ground. Kolektor dari transistor C945 yang berada di sebelah kiri atas diumpankan ke basis dari transistor tipe PNP TIP 127 sehingga basis


(56)

dari transistor TIP 127 mendapatkan tegangan 0 volt yang menyebabkan transistor ini aktip (transistor tipe PNP akan aktip jika tegangan pada basis lebih kecil dari 4,34 volt). Aktipnya transistor PNP TIP 127 ini akan mengakibatkan kolektornya terhubung ke emitor sehingga kolektor mendapatkan tegangan 15 volt dari Vcc.

Kolektor dari transistor TIP 127 dihubungkan ke kumparan, sehingga kumparan akan mendapatkan tegangan 6 volt. Hal ini akan mengakibatkan kumparan menimbulkan medan magnet. Medan magnet inilah yang akan menarik motor untuk mengarah ke arah kumparan yang menimbulkan medan magnet tersebut.

Sedangkan rangkaian II, III dan IV karena pada inputnya diberi logika low, maka kumparannya tidak menimbulkan medan magnet, sehingga motor tidak tertarik oleh kumparan-kumparan tersebut.

Demikian seterusnya untuk menggerakkan motor agar berputar maka harus diberikan logika high secara bergantian ke masing-masing input dari masing-masing rangkaian.

3.8Perancangan Rangkaian Saklar Batas

Ketika mikrokontroler memerintahkan motor untuk membuka pintu gerbang, mikrokontroler tidak mengetahui apakah pintu gerbang sudah terbuka lebar atau belum. Hal yang sama juga terjadi ketika mikrokontroler memerintahkan motor untuk menutup pintu gerbang, mikrokontroler tidak mengetahui apakah pintu gerbang sudah tertutup rapat atau belum. Karena itu dibutuhkan sebuah saklar batas yang dapat mengetahui kedua keadaan tersebut.


(57)

Dalam hal ini digunakan sebuah saklar batas untuk buka pintu gerbang, yang berfungsi untuk mengetahui apakah pintu gerbang sudah terbuka lebar atau belum, dan sebuah saklar batas untuk tutup pintu gerbang yang berfungsi untuk mengetahui apakah pintu gerbang sudah tertutup rapat atau belum. Rangkaian ssaklar batas untuk buka pintu gerbang hanya terdiri dari sebuah saklar yang dihubungkan ke ground dan ke mikrokontroler AT89S51 Rangkaiannya seperti gambar dibawah ini,

(AT89S51)

Gambar 3.7 Rangkaian Saklar batas untuk Buka Pintu

Ketika saklar batas dalam keadaan terbuka, kondisi outputnya adalah high. Namun jika pintu gerbang menyentuh saklar, maka outputnya akan terhubung ke ground, yang menyebabkan kondisi outputnya akan berubah dari high (1), menjadi low (0). Perubahan kondisi pada outputnya inilah yang dikenali oleh mikrokontroler sebagai tanda bahwa pintu gerbang telah terbuka lebar, maka mikrokontroler akan memerintahkan motor stepper untuk berhenti berputar, sehingga pintu gerbang tidak terbuka lebih lebar lagi.

Saklar batas untuk tutup pintu gerbang juga mempunyai rangkaian dan cara kerja yang sama dengan rangkaian saklar batas untuk buka pintu, perbedaannya hanya terletak pada hubungannya dengan mikrokontroler AT89S51.


(58)

BAB IV

PENGUJIAN ALAT DAN PROGRAM

4.1 Pengujian Rangkaian Power Supplay (PSA)

Pengujian pada bagian rangkaian power supplay ini dapat dilakukan dengan mengukur tegangan keluaran dari rangkaian ini dengan menggunakan volt meter digital. Dari hasil pengujian diperoleh tegangan keluaran sebesar + 5,1 volt. Tegangan ini dipergunakan untuk mensupplay tegangan ke seluruh rangkaian. Mikrokontroler AT89S51 dapat bekerja pada tegangan 4,0 sampai dengan 5,5 volt, sehingga tegangan 5,1 volt ini cukup untuk mensupplay tegangan ke mikrokontroler AT89S51. Tegangan keluaran kedua sebesar 13,7 volt. Tegangan ini digunakan untuk mensupplay tegangan ke motor stepper.

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:


(59)

Loop:

Setb P3.7 Acall tunda Clr P3.7 Acall tunda Sjmp Loop Tunda:

Mov r7,#255 Tnd: Mov r6,#255

Djnz r6,$ Djnz r7,tnd Ret

Program di atas bertujuan untuk menghidupkan LED yang terhubung ke P3.7 selama ± 0,13 detik kemudian mematikannya selama ± 0,13 detik secara terus menerus. Perintah Setb P3.7 akan menjadikan P3.7 berlogika high yang menyebabkan transistor aktif, sehingga LED menyala. Acall tunda akan menyebabkan LED ini hidup selama beberapa saat. Perintah Clr P3.7 akan menjadikan P3.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, sehingga akan tampak LED tersebut tampak berkedip.


(60)

Lamanya waktu tunda dapat dihitung dengan perhitungan sebagai berikut : Kristal yang digunakan adalah kristal 12 MHz, sehingga 1 siklus mesin

membutuhkan waktu = 12 1

12 MHz = mikrodetik.

Mnemonic Siklus Waktu Eksekusi MOV Rn,#data 2 2 x 1 μd = 2 μd

DJNZ 2 2 x 1 μd = 2 μd

RET 1 1 x 1 μd = 1 μd

Tunda:

mov r7,#255 Tnd: mov r6,#255

djnz r6,$

djnz r7,Tnd

ret

Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah 130.058 μdetik atau 0,130058 detik dan dapat dibulatkan menjadi 0,13 detik.

Jika program tersebut diisikan ke mikrokontroller AT89S51, kemudian mikrokontroller dapat berjalan sesuai dengan program yang diisikan, maka rangkaian minimum mikrokontroller AT89S51 telah bekerja dengan baik.


(61)

4.3. Pengujian Rangkaian Driver motor stepper

Pengujian pada rangkaian driver motor stepper ini dilakukan dengan menghubungkan input rangkaian driver motor stepper ini dengan rangakaian mikrokontroler AT89S51 dan menghubungkan output dari rangkaian driver motor stepper ini dengan motor stepper, kemudian memberikan program sebagai berikut: Loop:

Clr P0.3 Setb P0.0 Acall Tunda Clr P0.0 Setb P0.1 Acall Tunda Clr P0.1 Setb P0.2 Acall Tunda Clr P0.2 Setb P0.3 Acall Tunda Sjmp Loop

Tunda:


(62)

Tnd:

Mov R6,#255 Djnz r6,$ Djnz r7,Tnd Ret

Program di atas akan memberikan logika high secara bergantian pada input dari driver motor stepper, dimana input dari jembatan masing-masing dihubungkan ke P0.0,P0.1, P0.2 dan P0.3. Dengan program di atas maka motor akan bergerak searah dengan arah putaran jarum jam (menutup pintu). Untuk memutar dengan arah sebaliknya, maka diberikan program sebagai berikut :

Loop:

Clr P0.0 Setb P0.3 Acall Tunda Clr P0.0 Setb P0.3 Acall Tunda Clr P0.2 Setb P0.1 Acall Tunda Clr P0.1 Setb P0.0 Acall Tunda Sjmp Loop


(63)

Tunda:

Mov R7,#50

Tnd:

Mov R6,#255 Djnz r6,$ Djnz r7,Tnd Ret

Dengan program di atas, maka motor akan berputar berlawanan arah dengan arah putaran jarum jam (membuka pintu). Tunda digunakan untuk mengatur kecepatan putar dari motor. Semakin besar nilai yang diberikan pada tunda, maka perputaran motor akan semakin lambat, dan sebaliknya.

4.4. Pengujian Rangkaian Saklar batas

Pengujian pada rangkaian ini dilakukan dengan cara menekan saklar batas. Pada saat saklar batas tidak ditekan, maka tegangan output dari rangkaian ini sebesar 5 volt. Namun saat saklar batas ditekan, maka tegangan output dari rangkaian ini sebesar 0 volt. Dengan demikian maka rangkaian ini telah berfungsi dengan baik.


(64)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari hasil pelaksanaan perancangan alat hingga pengujian dan pembahasan sistem maka penulis dapat menarik kesimpulan, antara lain:

a. Memasukkan nilai password yang salah dengan batas penekanan 3 kali maka pintu tidak akan terbuka dan menyebabkan alarm akan berbunyi

b. Bahwa pada dasarnya untuk kerja mikrokontroller sangat bergantung pada urutan instruksi yang dijalankannya yaitu program yang ditulis di ROM

5.2 Saran

Setelah melakukan penelitian ini diperoleh beberapa hal yang dapat dijadikan saran untuk dapat melakukan penelitian lebih lanjut, yaitu:

a. Agar sistem atau rangkaian yang digunakan tidak terganggu, sebaiknya alat ini dikemas dalam bentuk yang lebih aman dan terlindungi, sehingga penggunaannya lebih efektif.

b. Untuk di masa yang akan datang, agar alat ini dapat lebih ditingkatkan dan dikembangkan, seperti dilengkapinya dengan penggunaan Mikrokontroller.

c. Alangkah baiknya jika alat ini dimanfaatkan dan disosialisasikan kegunaannya dikalangan mahasiswa, guna mengembangkan inovasi dan teknologi di kalangan mahasiswa.


(65)

DAFTAR PUSTAKA

Agfianto, Teknik Antarmuka Komputer: Konsep dan Aplikasi, Edisi Pertama, Penerbit: Graha Ilmu, Yogyakarta, 2002.

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

Sudjadi, Teori dan Aplikasi Mikrokontroller.Aplikasi pada Mkrokontroller AT89S51, Edisi Pertama, Cetakan Pertama, Penerbit: Graha Ilmu, Yogyakarta, 2005. Setiawan, Rachmad, Mikrokontroller MCS-51, Jilid 1, Penerbir: Graha Ilmu,


(66)

LAMPIRAN

; = = = = initialisasi port = = = = ;

Batas_Tutup bit P3.2 batas_buka bit p3.3 Alarm bit p3.4

kode1 equ 11101011b

bil0 equ 20h bil1 equ 0ech bil2 equ 18h bil3 equ 88h bil4 equ 0c4h bil5 equ 82h bil6 equ 2h bil7 equ 0e8h bil8 equ 0h bil9 equ 80h Kosong equ 0ffh

Utama:

mov p0,#0 clr alarm mov 70h,#0 mov 71h,#0 mov 72h,#0 mov 73h,#0

mov 64h,#0 ;jumlah kesalahan acall delay

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,$

clr ti


(67)

Bdg_Kode1: clr alarm mov a,p1

cjne a,#kode1,bdg_kode1 mov 60h,#1

mov 61h,#2 mov 62h,#3

mov 63h,#4 ; password 1 mov 7ah,#kode1

sjmp Tbl_Satu

tbl_Satu:

mov P2,#7fh mov a,p2

cjne a,#77h,tbl_Dua mov 74h,#bil1 Mov 70h,#1 acall tampil

Recek_tbl_Satu: mov a,p2

cjne a,#77h,Recek_tbl_Satu ljmp Tbl_Satu1

tbl_Dua:

cjne a,#7bh,tbl_Tiga mov 74h,#bil2 Mov 70h,#2 acall tampil

Recek_tbl_Dua: mov a,p2

cjne a,#7bh,Recek_tbl_Dua ljmp Tbl_Satu1

tbl_Tiga:

cjne a,#7dh,Tbl_Empat mov 74h,#bil3

Mov 70h,#3 acall tampil


(68)

mov a,p2

cjne a,#7dh,Recek_tbl_Tiga ljmp Tbl_Satu1

Tbl_Empat:

mov P2,#0bfh mov a,p2

cjne a,#0b7h,Tbl_Lima mov 74h,#bil4

Mov 70h,#4 acall tampil

Recek_tbl_Empat: mov P2,#0bfh mov a,p2

cjne a,#0b7h,Recek_tbl_Empat Ljmp Tbl_Satu1

Tbl_Lima:

cjne a,#0bbh,Tbl_Enam mov 74h,#bil5

Mov 70h,#5 acall tampil

Recek_tbl_Lima: mov a,p2

cjne a,#0bbh,Recek_tbl_Lima ljmp Tbl_Satu1

Tbl_Enam:

cjne a,#0bdh,Tbl_Tujuh mov 74h,#bil6

Mov 70h,#6 acall tampil

Recek_tbl_Enam: mov a,p2

cjne a,#0bdh,Recek_tbl_Enam ljmp Tbl_Satu1

Tbl_Tujuh:

mov P2,#0dfh mov a,P2


(69)

mov 74h,#bil7 Mov 70h,#7 acall tampil Recek_tbl_Tujuh: mov P2,#0dfh mov a,p2 cjne a,#0d7h,Recek_tbl_Tujuh ljmp Tbl_Satu1 Tbl_Delapan: cjne a,#0dbh,Tbl_Sembilan mov 74h,#bil8 Mov 70h,#8 acall tampil Recek_tbl_Delapan: mov a,p2 cjne a,#0dbh,Recek_tbl_Delapan ljmp Tbl_Satu1 Tbl_Sembilan: cjne a,#0ddh,Tbl_nol mov 74h,#bil9 Mov 70h,#9 acall tampil Recek_tbl_Sembilan: mov a,p2 cjne a,#0ddh,Recek_tbl_Sembilan ljmp Tbl_Satu1 Tbl_Nol: mov P2,#0efh mov a,P2 cjne a,#0ebh,Balik_Tbl_Satu mov 74h,#bil0 Mov 70h,#0 acall tampil Recek_tbl_Nol: mov P2,#0efh mov a,p2 cjne a,#0ebh,Recek_tbl_Nol Ljmp Tbl_Satu1 Balik_Tbl_Satu:


(70)

Ljmp Tbl_Satu tampil: mov sbuf,74h jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti ret tbl_Satu1: acall delay mov P2,#7fh mov a,p2 cjne a,#77h,tbl_Dua1 mov 75h,#bil1 Mov 71h,#1 acall tampil1 Recek_tbl_Satu1: mov a,p2 cjne a,#77h,Recek_tbl_Satu1 ljmp Tbl_Satu2 tbl_Dua1: cjne a,#7bh,tbl_Tiga1 mov 75h,#bil2 Mov 71h,#2 acall tampil1 Recek_tbl_Dua1: mov a,p2 cjne a,#7bh,Recek_tbl_Dua1 ljmp Tbl_Satu2 tbl_Tiga1: cjne a,#7dh,Tbl_Empat1 mov 75h,#bil3 Mov 71h,#3


(71)

acall tampil1 Recek_tbl_Tiga1: mov a,p2 cjne a,#7dh,Recek_tbl_Tiga1 ljmp Tbl_Satu2 Tbl_Empat1: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Tbl_Lima1 mov 75h,#bil4 Mov 71h,#4 acall tampil1 Recek_tbl_Empat1: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Recek_tbl_Empat1 Ljmp Tbl_Satu2 Tbl_Lima1: cjne a,#0bbh,Tbl_Enam1 mov 75h,#bil5 Mov 71h,#5 acall tampil1 Recek_tbl_Lima1: mov a,p2 cjne a,#0bbh,Recek_tbl_Lima1 ljmp Tbl_Satu2 Tbl_Enam1: cjne a,#0bdh,Tbl_Tujuh1 mov 75h,#bil6 Mov 71h,#6 acall tampil1 Recek_tbl_Enam1: mov a,p2 cjne a,#0bdh,Recek_tbl_Enam1 ljmp Tbl_Satu2 Tbl_Tujuh1: mov P2,#0dfh mov a,P2 cjne a,#0d7h,Tbl_Delapan1


(72)

mov 75h,#bil7 Mov 71h,#7 acall tampil1

Recek_tbl_Tujuh1: mov P2,#0dfh mov a,p2

cjne a,#0d7h,Recek_tbl_Tujuh1 ljmp Tbl_Satu2

Tbl_Delapan1:

cjne a,#0dbh,Tbl_Sembilan1 mov 75h,#bil8

Mov 71h,#8 acall tampil1

Recek_tbl_Delapan1: mov a,p2

cjne a,#0dbh,Recek_tbl_Delapan1 ljmp Tbl_Satu2

Tbl_Sembilan1:

cjne a,#0ddh,Tbl_nol1 mov 75h,#bil9

Mov 71h,#9 acall tampil1

Recek_tbl_Sembilan1: mov a,p2

cjne a,#0ddh,Recek_tbl_Sembilan1 ljmp Tbl_Satu2

Tbl_Nol1:

mov P2,#0efh mov a,P2

cjne a,#0ebh,Balik_Tbl_Satu1 mov 75h,#bil0

Mov 71h,#0 acall tampil1

Recek_tbl_Nol1: mov P2,#0efh mov a,p2


(73)

Ljmp Tbl_Satu2 Balik_Tbl_Satu1: Ljmp Tbl_Satu1 tampil1: mov sbuf,75h jnb ti,$ clr ti mov sbuf,74h jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti mov sbuf,#Kosong jnb ti,$ clr ti ret Tbl_Satu2: acall delay mov P2,#7fh mov a,p2 cjne a,#77h,tbl_Dua2 mov 76h,#bil1 Mov 72h,#1 acall tampil2 Recek_tbl_Satu2: mov a,p2 cjne a,#77h,Recek_tbl_Satu2 ljmp Tbl_Satu3 tbl_Dua2: cjne a,#7bh,tbl_Tiga2 mov 76h,#bil2 Mov 72h,#2 acall tampil2 Recek_tbl_Dua2: mov a,p2 cjne a,#7bh,Recek_tbl_Dua2 ljmp Tbl_Satu3


(74)

tbl_Tiga2: cjne a,#7dh,Tbl_Empat2 mov 76h,#bil3 Mov 72h,#3 acall tampil2 Recek_tbl_Tiga2: mov a,p2 cjne a,#7dh,Recek_tbl_Tiga2 ljmp Tbl_Satu3 Tbl_Empat2: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Tbl_Lima2 mov 76h,#bil4 Mov 72h,#4 acall tampil2 Recek_tbl_Empat2: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Recek_tbl_Empat2 Ljmp Tbl_Satu3 Tbl_Lima2: cjne a,#0bbh,Tbl_Enam2 mov 76h,#bil5 Mov 72h,#5 acall tampil2 Recek_tbl_Lima2: mov a,p2 cjne a,#0bbh,Recek_tbl_Lima2 ljmp Tbl_Satu3 Tbl_Enam2: cjne a,#0bdh,Tbl_Tujuh2 mov 76h,#bil6 Mov 72h,#6 acall tampil2 Recek_tbl_Enam2: mov a,p2 cjne a,#0bdh,Recek_tbl_Enam2 ljmp Tbl_Satu3


(75)

Tbl_Tujuh2: mov P2,#0dfh mov a,P2

cjne a,#0d7h,Tbl_Delapan2 mov 76h,#bil7

Mov 72h,#7 acall tampil2

Recek_tbl_Tujuh2: mov P2,#0dfh mov a,p2

cjne a,#0d7h,Recek_tbl_Tujuh2 ljmp Tbl_Satu3

Tbl_Delapan2:

cjne a,#0dbh,Tbl_Sembilan2 mov 76h,#bil8

Mov 72h,#8 acall tampil2

Recek_tbl_Delapan2: mov a,p2

cjne a,#0dbh,Recek_tbl_Delapan2 ljmp Tbl_Satu3

Tbl_Sembilan2:

cjne a,#0ddh,Tbl_nol2 mov 76h,#bil9

Mov 72h,#9 acall tampil2

Recek_tbl_Sembilan2: mov a,p2

cjne a,#0ddh,Recek_tbl_Sembilan2 ljmp Tbl_Satu3

Tbl_Nol2:

mov P2,#0efh mov a,P2

cjne a,#0ebh,Balik_Tbl_Satu2 mov 76h,#bil0

Mov 72h,#0 acall tampil2


(76)

Recek_tbl_Nol2: mov P2,#0efh mov a,p2

cjne a,#0ebh,Recek_tbl_Nol2 Ljmp Tbl_Satu3

Balik_Tbl_Satu2: Ljmp Tbl_Satu2

tampil2:

mov sbuf,76h jnb ti,$ clr ti

mov sbuf,75h jnb ti,$ clr ti

mov sbuf,74h jnb ti,$ clr ti

mov sbuf,#Kosong jnb ti,$

clr ti ret

Tbl_Satu3: acall delay mov P2,#7fh mov a,p2

cjne a,#77h,tbl_Dua3 mov 77h,#bil1 Mov 73h,#1 acall tampil3

Recek_tbl_Satu3: mov a,p2

cjne a,#77h,Recek_tbl_Satu3 ljmp Tbl_Satu4

tbl_Dua3:


(77)

mov 77h,#bil2 Mov 73h,#2 acall tampil3 Recek_tbl_Dua3: mov a,p2 cjne a,#7bh,Recek_tbl_Dua3 ljmp Tbl_Satu4 tbl_Tiga3: cjne a,#7dh,Tbl_Empat3 mov 77h,#bil3 Mov 73h,#3 acall tampil3 Recek_tbl_Tiga3: mov a,p2 cjne a,#7dh,Recek_tbl_Tiga3 ljmp Tbl_Satu4 Tbl_Empat3: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Tbl_Lima3 mov 77h,#bil4 Mov 73h,#4 acall tampil3 Recek_tbl_Empat3: mov P2,#0bfh mov a,p2 cjne a,#0b7h,Recek_tbl_Empat3 Ljmp Tbl_Satu4 Tbl_Lima3: cjne a,#0bbh,Tbl_Enam3 mov 77h,#bil5 Mov 73h,#5 acall tampil3 Recek_tbl_Lima3: mov a,p2 cjne a,#0bbh,Recek_tbl_Lima3 ljmp Tbl_Satu4 Tbl_Enam3: cjne a,#0bdh,Tbl_Tujuh3


(78)

mov 77h,#bil6 Mov 73h,#6 acall tampil3

Recek_tbl_Enam3: mov a,p2

cjne a,#0bdh,Recek_tbl_Enam3 ljmp Tbl_Satu4

Tbl_Tujuh3: mov P2,#0dfh mov a,P2

cjne a,#0d7h,Tbl_Delapan3 mov 77h,#bil7

Mov 73h,#7 acall tampil3

Recek_tbl_Tujuh3: mov P2,#0dfh mov a,p2

cjne a,#0d7h,Recek_tbl_Tujuh3 ljmp Tbl_Satu4

Tbl_Delapan3:

cjne a,#0dbh,Tbl_Sembilan3 mov 77h,#bil8

Mov 73h,#8 acall tampil3

Recek_tbl_Delapan3: mov a,p2

cjne a,#0dbh,Recek_tbl_Delapan3 ljmp Tbl_Satu4

Tbl_Sembilan3:

cjne a,#0ddh,Tbl_nol3 mov 77h,#bil9

Mov 73h,#9 acall tampil3

Recek_tbl_Sembilan3: mov a,p2

cjne a,#0ddh,Recek_tbl_Sembilan3 ljmp Tbl_Satu4


(79)

Tbl_Nol3: mov P2,#0efh mov a,P2 cjne a,#0ebh,Balik_Tbl_Satu3 mov 77h,#bil0 Mov 73h,#0 acall tampil3 Recek_tbl_Nol3: mov P2,#0efh mov a,p2 cjne a,#0ebh,Recek_tbl_Nol3 Ljmp Tbl_Satu4 Balik_Tbl_Satu3: Ljmp Tbl_Satu3 tampil3: mov sbuf,77h jnb ti,$ clr ti mov sbuf,76h jnb ti,$ clr ti mov sbuf,75h jnb ti,$ clr ti mov sbuf,74h jnb ti,$ clr ti ret Tbl_Satu4: mov P2,#7fh mov a,P2

cjne a,#7eh,Tbl_Satu4 ; tombol A Bandingkan: mov a,70h cjne a,60h,Password_Salah mov a,71h cjne a,61h,Password_Salah mov a,72h cjne a,62h,Password_Salah


(80)

mov a,73h

cjne a,63h,Password_Salah mov 64h,#0

buka:

call kussunk mov a,#11h bk_pnt:

mov p0,a

acall tunda_stepper rl a

Jb Batas_tutup,Bk_pnt mov p0,#0h

tunggu:

acall tunda_sejenak tutup:

mov p0,a

acall tunda_stepper rr a

jb batas_buka,tutup mov p0,#0h

ljmp utama

balik_Utama:

ljmp Utama

Password_Salah: setb alarm Acall tunda clr alarm Acall tunda inc 64h mov a,64h

Cjne a,#3,balik_Tbl_Satu4

Alarm_Aktip: setb alarm Acall tunda clr alarm


(1)

mov 77h,#bil6 Mov 73h,#6 acall tampil3

Recek_tbl_Enam3: mov a,p2

cjne a,#0bdh,Recek_tbl_Enam3 ljmp Tbl_Satu4

Tbl_Tujuh3: mov P2,#0dfh mov a,P2

cjne a,#0d7h,Tbl_Delapan3 mov 77h,#bil7

Mov 73h,#7 acall tampil3

Recek_tbl_Tujuh3: mov P2,#0dfh mov a,p2

cjne a,#0d7h,Recek_tbl_Tujuh3 ljmp Tbl_Satu4

Tbl_Delapan3:

cjne a,#0dbh,Tbl_Sembilan3 mov 77h,#bil8

Mov 73h,#8 acall tampil3

Recek_tbl_Delapan3: mov a,p2

cjne a,#0dbh,Recek_tbl_Delapan3 ljmp Tbl_Satu4

Tbl_Sembilan3:

cjne a,#0ddh,Tbl_nol3 mov 77h,#bil9

Mov 73h,#9 acall tampil3

Recek_tbl_Sembilan3: mov a,p2

cjne a,#0ddh,Recek_tbl_Sembilan3 ljmp Tbl_Satu4


(2)

Tbl_Nol3:

mov P2,#0efh mov a,P2

cjne a,#0ebh,Balik_Tbl_Satu3 mov 77h,#bil0

Mov 73h,#0 acall tampil3

Recek_tbl_Nol3: mov P2,#0efh mov a,p2

cjne a,#0ebh,Recek_tbl_Nol3 Ljmp Tbl_Satu4

Balik_Tbl_Satu3: Ljmp Tbl_Satu3

tampil3:

mov sbuf,77h jnb ti,$ clr ti

mov sbuf,76h jnb ti,$ clr ti

mov sbuf,75h jnb ti,$ clr ti

mov sbuf,74h jnb ti,$ clr ti ret

Tbl_Satu4:

mov P2,#7fh mov a,P2

cjne a,#7eh,Tbl_Satu4 ; tombol A Bandingkan:

mov a,70h

cjne a,60h,Password_Salah mov a,71h

cjne a,61h,Password_Salah mov a,72h


(3)

mov a,73h

cjne a,63h,Password_Salah mov 64h,#0

buka:

call kussunk mov a,#11h bk_pnt:

mov p0,a

acall tunda_stepper rl a

Jb Batas_tutup,Bk_pnt mov p0,#0h

tunggu:

acall tunda_sejenak tutup:

mov p0,a

acall tunda_stepper rr a

jb batas_buka,tutup mov p0,#0h

ljmp utama

balik_Utama:

ljmp Utama

Password_Salah: setb alarm Acall tunda clr alarm Acall tunda inc 64h mov a,64h

Cjne a,#3,balik_Tbl_Satu4

Alarm_Aktip: setb alarm Acall tunda clr alarm


(4)

acall tunda mov P2,#0efh mov a,P2

cjne a,#0eeh,Alarm_Aktip ; tombol D mov 64h,#0

call tampilan_awal

Balik_Tbl_Satu4: call kussunk Ljmp Tbl_Satu

tampilan_awal: Ljmp utama ret

tunda_Stepper: mov r7,#100 tnd_Stepper: mov r6,#100 djnz r6,$

djnz r7,tnd_Stepper ret

delay:

mov r7,#5 dly:

mov r6,#255 dl:

mov r5,#255 djnz r5,$ djnz r6,dl djnz r7,dly ret

tunda:

mov r7,#5 tnd:

mov r6,#150 td:

mov r5,#255 djnz r5,$ djnz r6,td djnz r7,tnd ret


(5)

mov r7,#10 tnd_Sejenak: mov r6,#255 td_Sejenak: mov r5,#255 djnz r5,$

djnz r6,td_Sejenak djnz r7,tnd_Sejenak ret

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,$

clr ti ret


(6)

Gambar Rangkaian sistem buka/tutup pintu otomatis 10uF 5V VCC 2 1 30pF 30pF

XTAL 12 MHz

AT89S51

P0. 3 (AD3) P0. 0 (AD0) P0. 1 (AD1) P0. 2 (AD2) Vcc P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

P0. 4 (AD4) P0. 5 (AD5) P0. 6 (AD6) P0. 7 (AD7) RST

EA/ VPP P3. 0 (RXD) P3. 1 (TXD) P3. 2 (INT0) P3. 3 (INT1) P3. 4 (T0)

ALE/ PROG PSEN P2. 7 (A15) P2. 6 (A14) P2. 5 (A13) P2. 4 (A12) P2. 3 (A11) P2. 2 (A10) P2. 1 (A9) P3. 6 (WR) P3. 5 (T1)

P3. 7 (RD) XTAL2 XTAL1 GND P2. 0 (A8)

1 2 3 4 5 6 7 8 40 39 38 37 36 35 34 33 9 10 11 12 13 14 15 32 31 30 29 28 27 26 16 17 18 19 20 25 24 23 22 21 Vreg LM7805CT IN OUT TIP32C 100Ω 1 uF 1000 uF

220 V AC

0 V

5 Volt DC

0 Volt 12 Volt DC

VCC 5V VCC 5V 330kΩ Poto dioda 4.7kΩ C828 10kΩ 1.0kΩ Q31 2SA733 10kΩ 2SC945 4.7kΩ 1.0kΩ 1.0kΩ Q33 2SA733 10kΩ 330Ω LED7 Infra Merah 100

330kΩ Poto dioda 4.7kΩ C828 10kΩ 1.0kΩ Q35 2SA733 10kΩ 2SC945 4.7kΩ 1.0kΩ 1.0kΩ Q37 2SA733 10kΩ 330Ω LED9 Infra Merah 100

VCC 5V VCC 5V 330kΩ Poto dioda 4.7kΩ C828 10kΩ 1.0kΩ Q43 2SA733 10kΩ 2SC945 4.7kΩ 1.0kΩ 1.0kΩ Q45 2SA733 10kΩ 330Ω LED13 Infra Merah 100

330kΩ Poto dioda 4.7kΩ C828 10kΩ 1.0kΩ Q47 2SA733 10kΩ 2SC945 4.7kΩ 1.0kΩ 1.0kΩ Q49 2SA733 10kΩ 330Ω LED15 Infra Merah 100

VCC 5V VCC 5V 330kΩ Poto dioda 4.7kΩ C828 10kΩ 1.0kΩ Q55 2SA733 10kΩ 2SC945 4.7kΩ 1.0kΩ 1.0kΩ Q57 2SA733 10kΩ 330Ω LED19 Infra Merah 100

330kΩ Poto dioda 4.7kΩ C828 10kΩ 1.0kΩ Q59 2SA733 10kΩ 2SC945 4.7kΩ 1.0kΩ 1.0kΩ Q61 2SA733 10kΩ 330Ω LED21 Infra Merah 100

VCC 5V VCC 5V VCC 5V VCC 5V VCC 5V VCC 5V VCC 5V VCC 5V 183303302SC945 2SC945 1.0k1.0k18Tip 127 Tip 122 183303302SC945 2SC945 1.0k1.0k18Tip 127 Tip 122 Kumparan1 Kumparan2 Tip 127 18Tip 122 1.0k2SC945 1.0k182SC945 330330Tip 127 18Tip 122 1.0k2SC945 1.0k182SC945 330330Kumparan4 Kumparan3 Motor AT89S51 AT89S51 AT89S51 AT89S51

Saklar Batas Buka Pintu

5V VCC SEVEN_SEG_ DISPLA Y ABCDEFG 14 13 12 11 7 6 5 4 SEVEN_SEG_ DISPLA Y ABCDEFG 14 13 12 11 7 6 5 4 SEVEN_SEG_ DISPLA Y ABCDEFG 14 13 12 11 7 6 5 4 SEVEN_SEG_ DISPLA Y ABCDEFG 14 13 12 11 7 6 5 4