Monday, January 20, 2014

APLIKASI MIKROKONTROLER AT89C51 UNTUK KEAMANAN RUANGAN PADA RUMAH CERDAS


NAMA : WIRATMOKO
NIM : 12.11.0002
KELAS : TI 11 SORE 

Disusun untuk memenuhi tugas mata kuliah Praktikum Mikroprosessor dengan pengampu Bapak Arif Johar .

Daftar tugas mahasiswa lain : http://kalong11.blogspot.com/



APLIKASI MIKROKONTROLER AT89C51 UNTUK KEAMANAN
RUANGAN PADA RUMAH CERDAS




STMIK AMIKOM PURWOKERTO
2014



 

I. PENDAHULUAN
1.1 Latar Belakang
Rumah merupakan salah satu dari kebutuhan yang harus dipenuhi oleh setiap manusia. Untuk mewujudkan sebuah rumah yang aman maka diperlukan sistem keamanan yang mampu memberikan jaminan keamanan dan kenyamanan bagi pemiliknya baik saat berada di rumah maupun di luar rumah. Sistem keamanan terpadu yang diterapkan pada rumah tersebut diharapkan akan mampu mengantisipasi terjadinya hal-hal yang tidak diinginkan oleh pemilik rumah, seperti pencurian dan sebagainya, secara efektif dan efisien. Dalam Project ini digunakan sistem pengendali berbasis mikrokontroler AT89C51 untuk sistem keamanan ruangan dalam rumah. Mikrokontroler AT89C51 ini telah banyak digunakan dalam dunia pendidikan dan industri. Selain mudah didapat dan harganya yang relative murah, kinerja mikrokontroler AT89C51 juga dapat diandalkan seperti mikrokontroler-mikrokontroler lainnya.

1.2 Tujuan
Tujuan yang hendak dicapai dalam Project ini adalah membuat sebuah plant prototip rumah dengan sistem otomatisasi pada pintu dan detektor gerakan manusia pada ruangan sebagai sistem keamanannya. Dengan demikian diharapkan mampu memberikan kontribusi positif bagi sebuah desain rumah yang lebih modern dan terjamin keamanan dan kenyamanannya.

1.3 Pembatasan Masalah
Batasan masalah dalam Project ini adalah:
- Alat yang dibuat merupakan simulasi sistem
keamanan rumah berupa otomatisasi pintu dengan menggunakan modul sensor kartu, kunci elektronik dan motor penggerak, dan pendeteksi gerakan dalam ruangan.
- Sensor pendeteksi gerakan yang digunakan adalah
sensor inframerah pasif pyroelectric dengan asumsi bahwa temperatur ruangan relatif stabil, gerakan udara relatif tenang dan tidak ada sumber energy atau panas dalam ruangan tersebut.

II. DASAR TEORI
2.1 Detektor Fotodioda
Sambungan pn dari beberapa jenis dioda sensitive terhadap radiasi elektromagnetik yang mengenai sambungan. Kepekaan ini biasanya dalam bentuk karakteristik I-V dari sambungan yang mengubah arus pembawa (current carriers). Dioda khusus yang memungkinkan sambungan pn bereaksi saat dikenai radiasi elektromagnetik digunakan sebagai detektor cahaya. Pada umumnya, sambungan tersebut sangat kecil dan membutuhkan penggunaan lensa untuk memfokuskan radiasi ke sambungan dioda. Keuntungan yang paling penting dari dioda ini adalah pada respon waktu yang cepat. Sebagian besar fotodioda memiliki konstanta waktu mendekati 1 µs, tapi beberapa jenis fotodioda umumnya mempunyai konstanta waktu yang kurang dari 1 ns.


Gambar 2.1 Fotodioda.


2.2 Sensor Inframerah
Radiasi inframerah tidak dapat dilihat tetapi dapat dideteksi. Obyek-obyek yang menghasilkan panas juga menghasilkan radiasi inframerah dan obyek-obyek tersebut meliputi antara lain hewan dan tubuh manusia. Sensor inframerah mendeteksi beda energi yang dipancarkan tubuh dengan lingkungan. Keluaran sensor akan diolah oleh pengkondisi sinyal sehingga dapat diterima oleh pengontrol setelah terlebih dahulu melalui pengubah sinyal analog ke sinyal digital. Hasil olah data oleh pengontrol dipakai untuk mengendalikan alarm.
Pada perancangan Project ini, digunakan detektor untuk mendeteksi gearakan tubuh manusia, yaitu sensor inframerah pasif pyroelectric.
Sensor ini memiliki beberapa kelebihan antara lain adalah tidak mengeluarkan cahaya, sehingga dalam operasinya tidak diketahui oleh orang yang terdeteksi, harga sensor relatif rendah, konsumsi daya rendah sehingga dapat dioperasikan dengan catu baterai.

2.3 Solenoida
Gambar 2.2. memperlihatkan kontruksi solenoida.
 Gambar 2.2 Solenoida.

Pada inti besi dari solenoida tersebut akan timbul induksi magnetik yang menyebabkan adanya gaya yang menggerakkan inti besi tersebut.

2.4 Motor DC
Prinsip dasar dari motor arus searah adalah kalau sebuah kawat berarus diletakkan antara kutub magnet (U-S), maka pada kawat itu akan bekerja suatu gaya yang menggerakkannya.
Gambar 2.3 menunjukkan sketsa sederhana dari motor dc.
Gambar 2.3 (a) Belitan berarus terletak dalam medan magnet, (b) Arah putaran pada kumparan berarus dalam medan magnet.

2.5 Sistem Kontrol ON-OFF
Pada sistem kontrol ON-OFF, elemen pembangkit hanya memiliki dua posisi tertentu yaitu ON dan OFF. Kontrol ON-OFF memiliki karakteristik sinyal keluaran dari kontroler u(t) tetap pada salah satu nilai maksimum atau minimum tergatung apakan sinyal pembangkit kesalahan positif atau negatif. Diagram blok kontroler ON-OFF yang memiliki masukan e(t) dan keluaran u(t), ditunjukkan pada Gambar 2.4.
Gambar 2.4 Diagram blok kontroler ON-OFF.

Aksi kontrol ON-OFF ditunjukkan pada persamaan
Persamaan (2.1) memiliki nilai U1 dan U2 yang konstan. Nilai minimum U2 dapat sebasar nol atau - U1. Pada sistem kontrol ikal tertutup (close loop), sinyal e(t) merupakan sinyal kesalahan aktuasi (error) sebesar selisih antara sinyal input dengan sinyal umpan balik.

2.6 Mikrokontroler AT89C51
Mikrokontroler AT89C51 adalah sebuah sistem mikrokontroler 8 bit dan memiliki 4 Kbyte flash Programmable and Erasable Read Only Memory (PEROM). Instruksi–instruksi maupun pin-nya kompatibel dengan standar MCS51. Dengan jenis memori flash memudahkan memori program untuk diprogram ulang sistem. AT89C51 memiliki beberapa kelebihan antara lain: 4 Kbyte flash memory, RAM 256 byte, 32 jalur inputoutput, dua timer 16 bit, lima vector interupsi 2 level, port serial dua arah, rangkaian detak (clock), dan osilator internal.

2.6.1 Organisasi Memori
Semua mikrokontroler Atmel memiliki ruang alamat (addres space) memori program dan memori data yang terpisah, seperti pada Gambar 2.5.
Gambar 2.5 Struktur memori mikrokontroler AT89C51.
Gambar 2.6 Memori program.

Pada Gambar 2.6 ditunjukkan alokasi bagian paling bawah memori program. Lokasi-lokasi interupsi yang disediakan menepati ruang dengan interval 8 byte, interupsi eksternal 0 adalah 0003H, timer 0 pada 000BH, interupsi internal 1 pada 0013H, timer 1 pada 001BH dan seterusnya. Apabila sebuah interupsi cukup banyak, maka rutin bisa diletakkan dalam interval 8 byte. Untuk rutin yang panjang dapat menggunakan instruksi JUMP untuk melompat ke lokasi-lokasi interupsi.

Gambar 2.7 menunjukan ruang memori data internal. Ruang memori dibagi menjadi tiga bagian, yaitu 128 byte bawah (lower 128 byte), 128 byte atas (upper 128 byte), dan ruang memori SFR (Special Function Register).
Gambar 2.7 Peta memori data internal.


2.6.2 Fungsi Pin Mikrokontroler AT89C51
Port 0, merupakan Port open drain input/output 8 bit 2 arah, bila difungsikan sebagai output, dapat dibebani ke 8 input TLL.
Port 1, merupakan port input/output 8 bit dengan pullup internal. Bufer output Port 1 dapat diberi beban 4 input TLL
Port 2, merupakan port input/output 8 bit dengan pullup internal. Bufer output Port 2 dapat dibebankan 4 input TTL.
Port 3, merupakan port input/output 8 bit dengan pullup internal. Bufer output Port 3 dapat dibebankan 4 input TLL. Port 3 juga menyediakan bermacam fungsi khusus AT89C51 seperti diperlihatkan pada Table 2.1.
Tabel  2.1 Fungsi Alternatif Port 3
ALE/PROG, pulsa output Address Latch Enable (ALE) untuk memberikan jalan byte rendah dari suatu alamat dalam mengakses memori ekternal. Pin ini juga sebagai input pulsa program selama pemrograman flash.
PSEN (Program Store Enable), strobe untuk membaca memori program ekstrnal. Bila AT89C51 mengeksekusi kode dari memori program ekternal, PSEN diaktifkan setiap 2 kali siklus mesin.
EA/VPP (External Access Enable), EA harus dihubungkan ke GND agar piranti bisa mengambil kode dari memori program eksternal dengan lokasi awal 0000H sampai FFFFH. EA harus dihubungkan ke VCC untuk eksekusi program internal. Pin ini juga menerima tegangan 12 volt selama pemrograman flash

2.7 Bahasa Rakitan (Assembly)
Bahasa rakitan (assembly) memiliki hubungan yang dekat dengan bahasa tingkat rendah, yaitu bahasa mesin. Bahasa ini berisi instruksi dengan kode-kode mnemonic seperti MOV, JMP, ADD dan sebagainya, yang dirakit menjadi seperangkat instruksi. Kelebihan dari bahasa ini adalah kemampuan akses ke perangkat keras yang relative cepat daripada bahasa tingkat tinggi. Kelemahannya adalah terlalu rumit untuk menghitung dengan variabel yang sangat kompleks bila dibandingkan dengan bahasa tingkat tinggi.
Bahasa rakitan yang digunakan adalah bahasa assembler ALDS Versi 3.21. Perangkat instruksi ini mengacu pada perangkat instruksi mikrokontroler keluarga MCS-51, yang dibagi dalam 5 kelompok, yaitu: instruksi transfer data, instruksi aritmetika, instruksi logika dan manipulasi bit, instruksi percabangan dan instruksi stack, I/O dan kontrol.

III. PERANCANGAN PERANGKAT KERAS DAN PERANGKAT LUNAK
3.1 Perancangan Perangkat Keras (Hardware)
Blok diagram sistem secara keseluruhan pada perancangan alat ini dapat dilihat pada Gambar 3.1.
Gambar 3.1 Blok diagram sistem secara keseluruhan.

3.1.1 Perancangan Pintu Otomatis
Perancangan pintu otomatis diperlihatkan pada Gambar 3.2.
Gambar 3.2 Perancangan pintu otomatis dilihat dari dalam rumah.

Solenoida seperti terlihat pada gambar digunkan sebagai kunci elektronik. Pintu otomatis ini digerakkan oleh motor dc yang berputar dalam dua arah, yaitu arah putar ke kiri untuk membuka pintu, sedangkan arah putar ke kanan untuk menutupnya. Limit switch digunakan untuk menghentikan gerakan motor sesuai dengan pergeseran pintu.

3.1.2 Modul Sensor Kartu
Desain dan rangkaian modul sensor kartu diperlihatkan pada Gambar 3.3 dan 3.4
Gambar 3.3 Desain modul sensor kartu.

Modul sensor kartu terdiri dari 8 sensor fotodioda yang digabungkan menjadi satu sebagai pembaca kode kartu dan satu sensor fotodioda yang digunakan sebagai saklar otomatis untuk menyalakan LED pada rangkaian pembaca kode kartu saat ada kartu yang masuk. Modul ini memiliki 8 buah keluaran sehingga memiliki 28 – 1 konfigurasi yang dapat digunakan sebagai kode.
Gambar 3.4 Rangkaian modul sensor kartu.

3.1.3 Keypad
Keypad yang digunakan adalah tipe matrik 3x4 yang dihubungkan ke Port 1 (Gambar 3.5). Cara kerja di dalam pemrograman yaitu salah satu jalur dipakai sebagai input dan lainnya sebagai output atau sebaliknya. Di sini penulis memakai kolom sebagai input dan baris sebagai output. Pada keypad jenis ini, metode yang digunakan adalah metode scanning.
Gambar 3.5 Konstruksi keypad 4x3.


3.1.4 Liquid Crystal Display (LCD)
LCD yang digunakan dalam perancangan Project ini adalah LCD matrix 2x20 seperti diperlihatkan pada Gambar 3.6.
Gambar 3.6 Antarmuka LCD matrix 2x20.

Antarmuka ini menggunakan mode antarmuka 4 bit. Mode ini selain lebih menghemat I/O juga mempermudah proses pembuatan PCB yang lebih ringkas.

3.1.5 Solenoida Sebagai Aktuator Kunci Elektronik
Solenoida pada perancangan ini digunakan sebagai aktuator pada kunci elektronik. Konstruksi solenoida yang digunakan sebagai aktuator kunci elektronik ini diperrlihatkan pada Gambar 3.7.
Gambar 3.7 Konstruksi solenoida sebagai aktuator kunci elektronik

3.1.6 Sensor Inframerah Pyroelectric
Pada perancangan Project ini, digunakan sensor untuk mendeteksi gerakan tubuh. Sensor ultrasonic dan inframerah biasa tidak bisa membedakan antara manusia atau makhluk hidup dengan benda mati yang lewat didepannya. Sensor ini akan aktif bila ada sembarang benda yang menghalanginya. Pada sensor inframerah biasa daerah jangkauannya juga tidak luas karena arahnya lurus, dan pemakaiannya tidak fleksibel karena diperlukan pemancar dan penerima. Penggunaan sensor inframerah pyroelectric menghilangkan kelemahan-kelemahan tersebut, tetapi memerlukan ruangan yang relatif stabil temperaturnya, gerakan udara relatif tenang dan tidak ada sumber energy atau panas dalam ruangan tersebut. Hal ini diatasi dengan pengaturan suhu ruangan, mempersedikit jendela, dan tidak ada pemanas dalam ruangan. Apabila suhu ruangan relative stabil, maka tidak diperlukan pengaturan suhu.
Sensor inframerah pyroelectric dibuat dari Kristal yang membangkitkan permukaan muatan listrik saat dihasilkan panas dalam bentuk radiasi inframerah. Saat sejumlah radiasi masuk ke kristal, kristal mengalami perubahan, jumlah muatan juga berubah, dan kemudian akan dapat mengaktifkan FET yang berada dalam sensor.
Gambar 3.8 Sensor inframerah pyroelectric

3.1.7 Sistem Minimum Mikrokontroler AT89C51
Disini mikrokontroler AT89C51 dirancang sebagai single chip (Gambar 3.9), sehingga dalam perancangannya cukup dibutuhkan rangkaian pembangkit clock (crystal dan kapasitor), rangkaian reset, rangkaian power supply, dan juga dilengkapi kapasitor bypass dan resistor pull-up sebagai penaik tegangan dari input maupun ke output. Pada pin EA /Vpp diberikan tegangan Vcc. Hal ini dimaksudkan agar program yang dijalankan berasal dari memori program internal. Sedangkan Port 0, Port 1, Port 2 dan Port 3 cukup dibuat jumper yang akan dihubungkan ke rangkaian lainnya sperti terlihat pada Tabel 3.2.
Gambar 3.9 Sistem minimum mikrokontroler AT89C51.

Fungsi dari masing-masing pin pada AT89C51 dapat dilihat pada Tabel 3.1.
Tabel 3.1 Penggunaan port-port AT89C51
3.1.8 Driver
3.1.8.1 Rangkaian Driver Solenoida
Rangkaian driver untuk solenoida diperlihatkan pada Gambar 3.10.
Gambar 3.10 Rangkaian driver solenoida.

Pengontrolan rangkaian driver solenoida dilakukan oleh Port 3 pin P3.5 µC AT89C51.

3.1.8.2 Rangkaian Driver Motor DC
Rangkaian driver untuk menggerakkan motor diperlihatkan pada Gambar 3.11.
Gambar 3.11 Rangkaian driver motor DC.

Pengontrolan rangkaian driver motor dilakukan oleh Port 3 pin P3.6 dan P3.7 µC AT89C51.

3.1.8.3 Rangkaian Driver Alarm
Rangkaian driver untuk solenoida diperlihatkan pada Gambar 3.12.
Gambar 3.12 Rangkaian driver alarm.
Pengontrolan rangkaian driver solenoida dilakukan oleh Port 3 pin P3.4 µC AT89C51.

3.2 Perancangan Perangkat Lunak (Software)
3.2.1 Program Utama
Dalam Gambar 3.13 diperlihatkan diagram alir program utama dalam perancangan project ini.
Gambar 3.13 Diagram alir program utama.

Kerja dari perangkat lunak ini secara garis besar adalah setelah eksekusi program maka mikrokontroler akan menginisialisasi terlebih dahulu sistem. Inisialisasi digunakan untuk mengaktifkan atau menentukan konfigurasi port, register maupun komponen pendukung yang digunakan dalam perancangan perangkat lunak pada project ini. Setalah selesai melakukan inisialisasi sistem, mikrokontroler akan melaksanakan secara berurutan instruksi-instruksi yang diberikan, seperti menampilkakan tampilan pada LCD, memeriksa sensor pyroelectric, memeriksa push button dan keypad dan memeriksa kartu dan password.

3.2.2 Pemrograman Sensor Gerakan PIR
Diagram alir untuk pemrograman sensor gerakan diperlihatkan pada Gambar 3.14.
Gambar 3.14 Diagram alir pemrograman sensor gerakan dan alarm.

3.2.3 Pemrograman Cek Tombol
Diagram alir untuk pemrograman cek tombol tombol yang digunakan sebagai input diperlihatkan pada Gambar 3.15, 3.16, 3.17 dan 3.18.
Gambar 3.15 Diagram alir pemrograman cek push button.

Gambar 3.16 Diagram alir pemrograman untuk tutup/buka pintu dengan push button dan keypad.
Gambar 3.17 Diagram alir pemrograman cek limit switch.


Gambar 3.18 Diagram alir pemrograman cek keypad setelah pintu terbuka.

3.2.4 Pemrograman Cek Kartu dan Password
Diagram alir pemrograman untuk memeriksa kartu melalui modul sensor kartu yang menjadi masukan Port 2 diperlihatkan pada Gambar 3.19. Sedangkan Gambar 3.20 memperlihatkan diagram alir algoritma untuk pemrograman password melalui keypad pada Port 1.
Gambar 3.19 Diagram alir pemrograman cek kartu.

Gambar 3.20 Diagram alir pemrograman cek password melalui keypad.

3.2.5 Pemrograman Interupsi Komunikasi Serial dengan Komputer
Jika ada interupsi serial dari komputer, program akan terhenti sesaat, melayani interupsi tersebut dengan menjalankan program yang berada pada alamat yang ditunjukkan oleh vektor dari interupsi yang terjadi, yaitu alamat 23H, hingga selesai dan kembali meneruskan program yang terhenti oleh interupsi tadi. Diagram alir pemrograman interupsi komunikasi serial dengan computer diperlihatkan pada Gambar 3.21.
Gambar 3.21 Diagram alir pemrograman interupsi komunikasi serial.

Untuk komunikasi serial dengan komputer ini, mikrokontroler akan mengirimkan data jika diminta oleh komputer. Data yang dikirimkan dan ditampilkan pada layar monitor komputer adalah data status alarm (on/off), data status sensor gerakan PIR (enable/disable) dan kode kartu yang terdeteksi oleh sensor modul kartu.

IV. PENGUJIAN DAN ANALISA
4.1 Pengujian Modul Sensor Kartu
Pengukuran tegangan keluran dari modul sensor kartu dilakukan saat cahaya LED pada transmiter menyala dangan ada dan tidaknya penghalang antara LED pada transmiter dan fotodioda pada receiver. Rangkaian pengujian modul sensor kartu ini diperlihatkan pada Gambar 4.1, sedangkan hasil pengujiannya diperlihatkan pada Tabel 4.1.
Gambar 4.1 Rangkaian uji modul sensor kartu.

Keluaran modul sensor kartu yang merupakan input bagi Port 2 mikrokontroler AT89C51 adalah berlogika low jika antara LED pada transmiter dan fotodioda pada receiver tidak terhalang, dan berlogika high jika terhalang. Dengan demikian, kode pada kartu berupa lubang menghasilkan logika 1, sedangkan kode tidak berlubang menghasilkan logika 0, sehingga variasi konfigurasi lubang 8 dan kode hitam pada kartu akan membentuk suatu deretan kode biner yang akan dibaca mikrokontroler melalui Port 2.
Tabel 4.1 Hasil pengujian modul sensor kartu.

4.2 Pengujian Modul Sensor Inframerah Pyroelectric
Pengujian modul sensor inframerah pyroelectric dilakukan dengan cara mengukur tegangan keluaran modul didalam ruangan. Dalam hal ini, sensor dirangsang dengan gerakan tubuh manusia. Hasil pengujian pada Tabel 4.2.

Tabel 4.2 Hasil pengujian modul sensor inframerah pyroelectric.

Dari hasil pengujian, sensor akan mendeteksi adanya rangsangan berupa gerakan obyek (tubuh). Keluaran modul sensor pyroelectric ini adalah berupa logika high atau low berdasarkan ada atau tidak adanya gerakan obyek dalam ruangan, yang merupakan masukan bagi mikrokontroler AT89C51 Port 0 pin P0.2. Dari Tabel 4.2 diketahui bahwa gerakan tubuh akan terdeteksi apabila terjadi pada arah antara 0o sampai sekitar 60o dari arah muka sensor (0o = arah tegak lurus bidang muka sensor).
Dari hasil pengujian dapat dibuktikan bahwa sensor pyroelectric mendeteksi perubahan energi yang disebabkan oleh obyek (manusia) yang bergerak.

4.3 Pengujian Sistem
Pada pengujian ini sistem secara keseluruhan diterapkan sesuai dengan aplikasi, yaitu sistem keamanan ruangan.
Uji coba 1: Dalam keadaan tanpa ada kartu yang benar (yang dikenali program) yang dimasukkan ke dalam modul sensor kartu, pada ruangan plant dicoba dirangsang dengan gerakan tangan melintas.
Saat ada gerakan obyek terdeteksi oleh sensor inframerah pasif pyroelectric, maka keluaran modul sensor pyroelectric akan high yang merupakan masukan bagi pin P0.2 Mikrokontroler AT89C51. Selanjutnya mikrokontroler akan mengeluarkan logika high pada pin P3.4 yang akan mengaktifkan driver alarm sehingga alarm berbunyi. Mikrokontroler akan melakukan looping (alarm terus berbunyi) selama P3.2 berlogika high. Pin P3.4 akan
kembali low (alarm mati) dan tampilan LCD kembali ke tampilan awal setelah pin P3.2 mendapat masukkan low melalui penekanan push button ALARM RESET.

Uji coba 2: Pada modul sensor kartu dicoba dimasukkan kartu dengan kode-kode yang tidak dikenali oleh program dalam mikrokontroler.
Saat ada kartu berkode dimasukkan kedalam modul sensor kartu, bit bAdaKartu (3H) akan set kemudian mikrokontroler akan membaca kode-kode pada kartu tersebut dan membandingakannya dengan nilai-nilai konstanta: 00010100B (14H), 10101010B (AAH) dan 01101101B (6DH). Jika tidak sesuai, maka mikrokontroler akan menolaknya dengan mengeluarkan tampilan pada LCD yang menunjukkkan bahwa kartu yang dimasukkan tidak dikenali dan meminta untuk dikeluarkan kembali. Mikrokontroler akan tetap menampilkan tampilan tersebut selama bit bAdaKartu (3H) set yang berarti bahwa modul sensor kartu masih mendeteksi ada kartu dengan kode yang tidak dikenali oleh program mikrokontroler.

Uji coba 3: Pada modul sensor kartu dicoba dimasukkan kartu dengan kode-kode yang dikenali oleh program dalam mikrokontroler.
Dalam uji coba 3 ini, karena kode kartu yang terbaca oleh mikrokontroler sesuai dengan nilai-nilai kode yang benar, yaitu: 00010100B (14H), 10101010B (AAH) dan 01101101B (6DH), maka mikrokontroler akan menunggu (looping) dimasukkan password selama bit bAdaKartu (2H) masih set (kartu masih dalam modul sensor kartu). Jika kartu diambil, maka bit bAdaKartu (2H) akan clear dan tampilan LCD akan kembali ke tamplan awal. Jika tidak diambil dan password dimasukkan melalui keypad, maka mikrokontroler akan memeriksa password tersebut.

Setiap kali dilakukan penekanan satu tombol pada keypad, alamat KEYDATA (26H) diisi dengan nilai sesuai dengan angka yang tertera pada tombol yang ditekan. Empat kali penekanan tombol keypad berarti empat kali pengisian KEYDATA secara bergantian. Setiap isi KEYDATA ini merupakan data masukan password yang berturut-turut dikirim ke alamat PASSWORD1 (2CH), PASSWORD2 (2DH), PASSWORD3 (2EH) dan PASSWORD4 (2FH), kemudian masing-masing dibandingkan atau dicocokkan dengan isi alamat D1_PASS (28H), D2_PASS (29H), D3_PASS (2AH) dan D4_PASS (2BH). Alamat-alamat ini sebelumnya diisi dengan konstanta-konstanta yang merupakan nilai-nilai password sesuai dengan kode kartu yang terbaca oleh mikrokontroler. Jika hasil pembandingan ini ternyata tidak  cocok, maka password yang dimasukkan adalah salah sehingga mikrokontroler akan menolak langkah selanjutnya dan menampilkan tampilan pada LCD yang mengisaratkan bahwa password yang dimasukkan adalah salah.

Selanjutnya, mikrokontroler akan menunggu pengulangan masukan password selama bit bAdaKartu (2H) masih set. Setiap kali masukan password diulang maka 9 isi alamat counter (25H), yang telah diisi dengan konstanta 3, berkurang satu, sehingga jika pengulangan masukan password tetap salah sampai tiga kali, maka isi alamat counter (25H) adalah nol. Jika isi alamat counter (25H) adalah nol, maka mikrokontroler akan mengeluarkan logika high pada pin P3.4 yang menyebabkan alarm berbunyi dan menampilkan tampilan pada LCD untuk mengindikasikan bahwa alarm sedang berbunyi. Alarm akan mati (pin P3.4 low) dan LCD akan kembali kepada tampilan awal jika pin P3.2 mendapat masukkan low melalui penekanan tombol push button ALARM RESET.

Uji coba 4: Hampir sama dengan uji coba 3 tetapi password yang dimasukkan melalui keypad adalah password yang benar. Karena password yang dimasukkan adalah cocok, maka mikrokontroler meng-clear-kan pin P3.4 yang
menyebabkan driver alarm tidak aktif dan mengeluarkan tampilan pada LCD yang mengisaratkan bahwa password yang dimasukkan adalah benar dan alarm dalam keadaan mati, kemudian tampilan yang meminta kartu dikeluarkan dari modul sensor kartu. Mikrokontroler melakukan looping sampai kartu dikeluarkan dari modul sensor kartu. Setelah kartu dikeluarkan dari modul, bit bAdaKartu (2H) menjadi clear, kemudian mikrokontroler akan memeriksa bit bPintuTerbuka (4H), jika clear (pintu tertutup), maka mikrokontroler men-set bit bAdaOrang (2H) yang menandai modul sensor PIR tidak aktif (disable), kemudian mengeluarkan tampilan LCD yang mengisaratkan bahwa sensor gerakkan PIR telah dinonaktifkan (disable). Selanjutnya mikrokontroler mengeluarkan logika high pada pin P3.5 yang menyebabkan driver solenida aktif sehingga kunci pintu terbuka, kemudian mikrokontroler mengeluarkan logika low pada pin P3.6 yang mengaktifkan driver motor untuk membuka pintu. Putaran motor berhenti setelah pin P0.3 mendapat masukan low yang disebabkan oleh tertekannya limit switch oleh pergeseran pintu yang meng-ground-kan pin P0.3 tersebut. Pada kondisi ini bit bPintuTerbuka (4H) menjadi set.
Karena modul sensor PIR tidak aktif (disable), rangsangan gerakan tangan melintas pada ruangan tempat sensor PIR dipasang tidak berpengaruh apa-apa terhadap sensor, atau tidak menyebabkan alarm berbunyi.
Saat push button OPEN/CLOSE (INDOOR) ditekan pin P3.3 mendapat masukan low. Hal ini menyebabkan mikrokontroler memeriksa kembali bit bPintuTerbuka (4H). Karena dalam kondisi ini bit bPintuTerbuka (4H) dalam keadaan set, maka mikrokontroler mengeluarkan logika low pada pin P3.7 yang mengakibatkan driver motor kembali aktif sehingga motor berputar tetapi dengan arah putaran yang berlawanan dengan arah putaran sebelumnya. Dengan demikian pintu kembali bergeser untuk menutup. Putaran motor berhenti setelah mengenai limit switch (P0.3 = low), sama halnya seperti saat pintu bergeser untuk membuka, dilanjutkan dengan meng-clear-kan pin P3.5 yang meng-off-kan driver solenoida untuk mengunci kembali pintu. Setelah pintu tertutup dan terkunci bit bPintuTerbuka (4H) clear, bit bAdaOrang (2H) set, sedangkan bit bAktivasiPIR clear.

Uji Coba 5: Dari kondisi akhir uj coba 4 tombol OPEN/CLOSE (INDOOR) ditekan lagi, untuk mensimulasikan orang yang ada di dalam rumah membuka pintu untuk keluar. Selanjutnya, tombol '#' pada keypad ditekan untuk menutup kembali pintu yang terbuka tanpa mengaktifkan (enable) sensor gerakan PIR (dengan asumsi, misalnya, didalam rumah masih ada penghuni atau pemegang kartu yang lainnya).
Saat pin P3.3 low (tombol OPEN/CLOSE (INDOOR) ditekan) mikrokontroler akan memeriksa kembali bit bPintuTerbuka (4H) apakah set atau clear. Karena dalam kondisi saat ini bit bPintuTerbuka (4H) adalah clear (pintu tertutup), maka selanjutnya mikrokontroler akan men-set bit bAdaOrang (2H), kemudian langkah selanjutnya sama seperti saat membuka pintu pada uji coba 4.
Dalam keadaan pintu terbuka (bit bPintuTerbuka (4H) high) mikrokontroler akan melakukan scanning pada tombol-tombol keypad. Setiap penekanan tombol pada keypad mikrokontroler akan membandingkan isi alamat KEYDATA (26H) dengan isi nilai konstanta 23H (kode ASCII untuk karakter '#'). Jika tombol '#' ditekan, maka isi alamat KEYDATA (26H) adalah 23H sehingga hasil perbandingan adalah cocok. Selanjutnya adalah langkah-langkah menutup pintu yang sama dengan langkah-langkah menutup pintu pada uji coba 4. Dengan demikian modul sensor PIR tetap dalam keadaan tidak aktif (disable), sehingga rangsangan gerakan tangan pada ruangan yang dilakukan pada uji coba ini tidak dideteksi oleh sensor PIR.

Uji coba 6: Setelah pintu terbuka pada Uji coba 5, selanjutnya kartu dengan kode yang dikenali oleh program dimasukkan ke dalam modul sensor kartu kemudian dimasukkan password yang benar dimasukkan melalui keypad, untuk mensimulasikan penghuni rumah atau pemegang kartu keluar rumah sambil mengaktifkan (enable) kembali sensor PIR (dengan asumsi didalam rumah tidak ada lagi pemegang kartu lainnya).
Setelah kartu dengan kode dan password yang benar dikeluarkan dari modul sensor kartu, mikrokontroler akan memeriksa bit bPintuTerbuka (4H). Karena dalam uji coba 6 ini pintu dalam keadaan terbuka, maka bit bPintuTerbuka (4H) dalam kondisi set, sehingga mikrokontroler akan men-set bit bAktivasiPIR (5H) dan mengeluarkan logika low pada pin P3.7 yang menyebabkan driver motor aktif untuk menutup pintu. Putaran motor berhenti setelah mengenai limit switch (P0.3 = low), sama halnya seperti saat pintu bergeser untuk membuka, dilanjutkan dengan meng-clear-kan pin P3.5 yang meng-offkan driver solenoida untuk mengunci kembali pintu. Selanjutnya mikrokontroler memeriksa kembali bit bAktivasiPIR (5H). Karena bit bAktivasiPIR (5H) telah di-set sebelumnya, maka mikrokontroler akan mengclear bit bAdaOrang (2H) dan bit bAktivasiPIR (5H). Dengan demikian modul sensor PIR akan aktif kembali (enable), sehingga mikrokontroler akan mendeteksi jika ada gerakan obyek (tubuh) dalam ruangan dengan mengaktifkan alarm dan menampilkan indikasi pada LCD.

Uji coba 7: Merupakan pengujian interupsi serial pada mikrokontroler oleh komputer dan pengiriman data serial dari mikrokontroler ke komputer. Uji coba ini menggunakan program pengujian yang telah dibuat dengan pemrograman delphi, seperti terlihat pada Gambar 4.2.
Mikrokontroler akan mengirimkan data serial melalui pin P3.1/TXD jika terjadi interupsi dengan adanya masukan data serial yang terkirim dari komputer melalui pin P3.0/RXD. Mode operasi port serial yang digunakan adalah Mode UART (Universal Asyncrchronous Receiver/Transmitter) 8 bit dengan baud rate 9600 bps.
Gambar 4.2 Tampilan program pengujian komunikasi serial antara mikrokontroler dengan komputer.

Komputer melakukan interupsi serial pada mikrokontroler dengan mengirimkan data 00H. Penerimaan data ini dilakukan oleh mikrokontroler dengan mendeteksi adanya perubahan kondisi dari logika high ke logika low pada kaki RXD. Perubahan kondisi tersebut merupakan bit start. Selanjutnya, data serial akan digeser masuk ke dalam SBUF dan bit stop ke dalam RB8. Bit RI akan set setelah 1 byte data diterima ke dalam SBUF. Bit RB8 dan RI ini keduanya terletak pada register SCON.
Setelah bit RI set, pengiriman data oleh mikrokontroler mulai dilakukan. Pengiriman data dilakukan dengan menuliskan data yang akan dikirim ke Register SBUF. Data serial akan digeser keluar dawali dengan dengan bit start dan diakhiri dengan bit stop, dimulai dari bit yang berbobot terendah (LSB) hingga bit berbobot tertinggi (MSB). Bit TI (pada Register SCON) akan set setelah bit stop keluar melalui kaki TXD yang menandakan bahwa proses pengiriman data telah selesai. Bit ini harus diclear oleh perangkat lunak setelah pengiriman data selesai. Pengiriman data oleh mikrokontroler dilakukan sebanyak empat kali setiap ada interupsi serial. Data yang dikirim berturut-turut adalah: data status alarm, data ststus sensor PIR, data high nibble kode kartu, kemudian data low nibble kode kartu.

V. KESIMPULAN
Setelah dilakukan perancangan, pembuatan, serta pengujian dan analisa pada Project ini, dapat diambil kesimpulan sebagai berikut :
             1.   Sensor inframerah pyroelectric hanya mendeteksi adanya gerakan obyek yang mengeluarkan panas yang berada pada posisi dengan sudut sekitar kurang dari 60o dari arah tegak lurus muka sensor. Mikrokontroler akan mengaktifkan alarm jika sensor mendeteksi adanya gerakan obyek tersebut.
.          2.   Hanya kartu dengan kode dan password yang dikenali program yang bisa digunakan untuk mengakses sistem keamanan sehingga mikrokontroler dapat menjadikan enable/disable sensor inframerah pyroelectric, menampilkan indikator pada LCD, mengaktifkan/menonaktifkan driver solenoida untuk membuka/menutup kunci, serta mengaktifkan driver motor dc untuk membuka/menutup pintu.
         3.   Mikrokontroler mengirimkan data secara serial ke komputer yang berisi informasi status alarm, status sensor inframerah pyroelectric dan kode kartu yang terbaca pada modul sensor kartu setiap kali menerima interupsi serial dari komputer.
          4.     Secara keseluruhan sistem keamanan yang telah diimplementasikan dapat berjalan dengan cukup baik sesuai dengan yang diharapkan pada Project ini.
 
DAFTAR PUSTAKA
[1] Adi Susanto, Data Akuisisi Untuk Proses Perpindahan Panas, Pusat Antar Universitas – Ilmu Teknik UGM, 1988/1989.
[2] Malvino, Albert Paul, Prinsip-prinsip Elektronika, Edisi Kedua, Erlangga Jakarta,1994.
[3] Moh. Ibnu Malik, Anistardi, Bereksperimen dengan Mikrokontroler 8031, Elek Media Komputindo, Jakarta, 1997.
[4] Ogata, Katsuhiko, Teknik Kontrol Automatik, alih bahasa Edi Laksono, Erlangga, Jakarta, 1997.
[5] Paulus Andi Nalwan, Panduan Praktis Teknik Antarmuka dan Pemrograman Mikrokontroler AT89C51, PT Elex Media Komputindo, Jakarta, 2003.
[6] Putra, Agfianto Eko, Belajar Mikrokontroler AT89C51/52/55 (Teori dan Aplikasi), Penerbit Gava Media, Yogyakarta, 2002.
[7] Rio S.R., Iida M., Fisika dan Teknologi Semikonduktor, P.T. Pradnya Paramita, Jakarta, 1982. Rio S.R., Iida M., Fisika dan Teknologi Semikonduktor, P.T. Pradnya Paramita, Jakarta, 1982.[8] Sumanto, Mesin Arus Searah, Penerbit Andi Offset, Yogyakarta, 1991.
[9] Sutrisno, Elektronika: Teori Dasar dan Penerapannya, Penerbit ITB, Bandung, 1986.
[10] Hayt, William H., Jr., Elektromagnetika Teknologi, Edisi Kelima, Penerbit Erlangga, Jakarta, 1991.
[11] www.atmel.com/8051/at89c51
[12] www.caltron.co.id
[13] _________, Infrared Parts Manual, URL: http://www.glolab.com, Glolab Corporation, 2002.

SUMBER : TUGAS AKHIR - UTIS SUTISNA ( MAHASISWA S-1 ) ANGKATAN 1999 JURUSAN TEKNIK ELEKTRO - FAKULTAS TEKNIK - UNIVERSITAS DIPONEGORO