Rancang Alat Penghitung Orang Keluar/Masuk Pada Suatu Ruangan Menggunakan Fotodioda Berbasis Mikrokontroler AT89S52

(1)

RANCANG ALAT PENGHITUNG ORANG KELUAR/MASUK

PADA SUATU RUANGAN MENGGUNAKAN FOTODIODA

BERBASIS MIKROKONTROLER AT89S52

TUGAS AKHIR

DEBBY Z BEGRIPPEN SILABAN 052408002

PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA


(2)

RANCANG ALAT PENGHITUNG ORANG KELUAR/MASUK

PADA SUATU RUANGAN MENGGUNAKAN FOTODIODA

BERBASIS MIKROKONTROLER AT89S52

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memnuhi syarat mencapai gelar Ahli Madya

DEBBY Z BEGRIPPEN SILABAN 052408002

PROGRAM STUDI DIPLOMA III FISIKA INSTRUMENTASI

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA


(3)

PERSETUJUAN

Judul :RANCANG ALAT PENGHITUNG ORANG

KELUAR/MASUK PADA SUATU RUNGAN MENGGUNAKAN FOTODIODA BERBASIS MIKROKONTROLER AT89S52

Kategori :TUGAS AKHIR

Nama :DEBBY. Z. BEGRIPPEN SILABAN

Nomor Induk Mahasiswa :052408002

Program Studi : AHLI MADYA (D3) FISIKA INSTRUMENTASI

Departemen : FISIKA

Fakultas :MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, Juli 2008

Diketahui/Disetujui oleh

Program studi Fisika Instrumentasi Pembimbing Ketua,

Drs. Syahrul Humaidi Dr. Marhaposan Situmorang NIP : 132 050 870 NIP : 130 810 771


(4)

PERNYATAAN

RANCANG ALAT PENGHITUNG ORANG KELUAR.MASUK PADA SUATU RUANGAN MENGGUNAKAN FOTODIODA BERBASIS MIKROKONTROLER

AT89S52 TUGAS AKHIR

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

Medan, Juli 2008

DEBBY. Z. BEGRIPPEN SILABAN 052408002


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Pemurah dan Maha Penyayang, dengan limpah karunia-Nya kertas kajian ini berhasil diselesaikan dalam waktu yang telah ditetapkan

Ucapan terima kasih saya sampaikan kepada Dr. Marhaposan Situmorang selaku pembimbung pada penyelesaian tugas akhir ini yang telah memberikan panduan dan penuh kepercayaan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas dan padat dan professional telah diberikan kepada saya agar penulis dapat menyelesaikan tugas ini. Ucapan terima kasih juga ditujukan kepada Ketua Departemen Dr. Marhaposan Situmorang, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen pada Departemen Fisika FMIPA USU, pegawai di FMIPA USU, dan rekan-rekan kuliah. Akhirnya, tidak terlupakan kepada bapak, ibu dan semua keluaraga yang selama ini memberikan bantuan dan dorongan yang diperlukan. Semoga Tuhan Yang Maha Esa akan membalasnya.


(6)

DAFTAR ISI

Halaman

Halaman Judul ... i

Halaman Persetujuan ... ii

Pernyataan... iii

Penghargaan ... iv

Daftar Isi ... v

Daftar Gambar... vii

Daftar Tabel ... 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 Mikrokontroler AT89S52 ... 6

2.1.1 Konstruksi AT89S52 ... 8

2.1.2 Pin-Pin pada Mikrokontroler AT89S52... 10

2.2 Bahasa Assembly MCS-51 ... 18

2.3 Software 8051 Editor, Assembler, Simulator ... 22

2.4 Software Downloader ... 23

2.5 Sensor Infra Merah ... 24

2.5.1 Dioda Pemancar Infra Merah... 26

2.6 Pencacah ... 28

BAB 3 Perancangan Alat dan Cara Kerja 3.1 Diagram Blok Rangkaian... 32

3.2 Flowchart Program... 33

3.3 Perancangan Program ... 34

3.4 Perancangan Power Supply (PSA)... 36


(7)

3.7 Rangkaian Sensor... 41

BAB 4 Pengujian Alat dan Program 4.1 Pengujian Rangkaian Power Supply (PSA) ... 45

4.2 Pengujian Rangkaian Mikrokontroler AT89S52 ... 45

4.3 Pengujian Rangkaian Sensor Gerak... 47

4.4 Pengujian Rangkaian Display Seven Segment ... 49

BAB 5 Kesimpulan dan Saran 5.1 Kesimpulan ... 53

5.2 Saran ... 53


(8)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Pinout AT89S52... 10

Gambar 2.2 8051 Editor, Assembler, Simulator... 22

Gambar 2.3 ISP Flash-Programer 3.0a ... 23

Gambar 2.4 Simbol dan rangkaian sebuah LED... 27

Gambar 2.5 Pencacah dengan menggunakan flip-flop JK... 30

Gambar 3.1 Diagram blok rangkaian... 32

Gambar 3.2 Flowchart program ... 33

Gambar 3.3 Rangkaian power supply (PSA) ... 37

Gambar 3.4 Rangkaian mikrokontroler AT889S51/52... 38

Gambar 3.5 Rangkaian Display Seven Segment ... 40

Gambar 3.6 Rangkaian Pemancar Infra Merah... 42


(9)

DAFTAR TABEL

Halaman

Tabel 2.1 Susunan bit dalam register TCON ... 16

Tabel 2.2 Susunan bit dalam register TMOD ... 16

Tabel 2.3 Mode Operasi Timer/Counter ... 17

Tabel 2.4 Konversi Biner Murni dan Biner BCD ... 29

Tabel 4.1 Siklus waktu tunda... 47


(10)

BAB I

PENDAHULUAN

1.1. Latar Belakang Penulisan

Dalam kurun waktu singkat perkembangan teknologi melaju dengan sangat pesat. Perkembangan teknologi ini merupakan hasil kerja keras dari rasa ingin tahu manusia terhadap suatu hal yang pada akhirnya diharapkan akan mempermudah manusia. Dengan pesatnya laju perkembangan teknologi tersebut banyak bermunculan alat-alat yang canggih yang dapat bekerja secara otomatis.

Dalam bidang elektronika, perlahan-lahan peralatan-peralatan manual mulai digantikan dengan peralatan elektronik yang dapat bekerja secara otomatis. Contohnya dibidang penghitung jumlah orang yang masuk dan keluar pada suatu ruangan. Awalnya untuk menghitung jumlah orang yang masuk ke dalam suatu ruangan tertentu yang digunakan adalah dengan menggunakan tulisan tangan dan mengisi daftar tamu, namun kemudian digantikan dengan display papan elektronik yang terdiri


(11)

dari beberapa lampu/LED yang disusun sedemikian rupa sehingga dapat membentuk angka-angka tertentu.

Pada display papan elektronik ini, untuk menambahkan nilainya, maka operator harus menekan tombol-tombol tertentu sehingga dengan demikian angka pada display akan bertambah sesuai dengan jumlah orang yang masuk.

Untuk lebih memudahkan, maka sebaiknya display penghitung jumlah orang yang masuk ini dilengkapi dengan sensor tertentu yang dapat mendeteksi/ mengetahui ketika ada orang yang masuk ke dalam ruangan, dan secara otomatis menambahkan angka pada display. Untuk dapat mengolah sinyal yang dikirimkan oleh sensor dan manambahkan angka pada display, maka dibutuhkan pula rangkaian pengolah sinyal dan rangkaian penghitung, dalam hal ini digunakan sebuah mikrokontroler.

1.2. Rumusan Masalah

Mengacu pada hal diatas, pada tugas akhir ini saya akan merancang penghitung jumlah orang yang masuk dan keluar secara otomatis berbasis mikrokontroler AT89S52.


(12)

Pada alat ini akan digunakan beberapa sensor yang diletakkan pada pintu masuk dan keluar, sehingga ketika ada orang yang masuk, maka sensor tersebut dapat mendeteksinya. Untuk dapat mengolah sinyal yang dikirimkan oleh sensor, maka digunakan sebuah mikrokontroler, dalam hal ini mikrokontroler yang digunakan adalah mikrokontroler AT89S52.

1.3 Tujuan Penulisan

Tujuan dilakukan Laporan Proyek ini adalah sebagai berikut:

1. Memanfaatkan mikrokontroller sebagai alat pengolah sinyal yang dikirimkan oleh sensor dan menampilkannya dalam bentuk bilangan/angka.

2. Memanfaatkan LED infra merah dan potodioda sebagai sensor penghitung (proximity sensor).

3. Merancang display penampil jumlah orang yang berada dala suatu ruangan.


(13)

Mengacu pada hal diatas, saya akan merancang display papan skor bola basket berbasis mikrokontroler AT89S52, dengan batasan-batasan sebagai berikut :

1. Mikrokontroler yang digunakan adalah jenis AT89S52.

2. Sensor yang digunakan adalah LED infra merah dan fotodioda. 3. Untuk menampilkan angka digunakan beberapa seven segmen.

I.5 Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja penghitung jumlah orang yang masuk dan keluar berbasis mikrokontroler AT89S52, maka penulis menulis laporan ini sebagai berikut:

BAB I. PENDAHULUAN

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

BAB II. LANDASAN TEORI

Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian Teori


(14)

pendukung itu antara lain tentang mikrokontroler AT89S52 (hardware dan software), bahasa program yang digunakan. serta karekteristik dari komponen-komponen pendukung.

BAB III. 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 AT89S52.

BAB IV. 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 AT89S52.

BAB V. KESIMPULAN DAN SARAN


(15)

rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(16)

BAB II

TINJAUAN TEORITIS

2.1. Mikrokontroler AT89S52

Mikrokontroler, 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),


(17)

Microkontroler 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 control disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sederhana sementara, termasuk register-register yang digunakan pada microkontroler yang bersangkutan. Mikrokontroler AT89S52 ialah mikrokomputer CMOS 8 bit dengan 8KB Flash Programmable dan

Erasable Read Only Memory (PEROM). Mikrokontroler berteknologi memori non volatile kerapatan tingi dari Atmel ini kompatibel dengan mikrokontroler standar

industri MCS-51 baik pin kaki IC maupun set instruksinya serta harganya yang cukup murah. Oleh karena itu, sangatlah tepat jika kita mempelajari mikrokontroler jenis ini. Anda juga diharapkan mempelajari versi lainnya yang berdasarkan pengalaman penulis lebih cepat di dalam pengisian program yaitu AT89S8252.

Spesifikasi penting AT89S52 :


(18)

b. 8 K Bytes In system Programmable (ISP) flash memori dengan kemampuan 1000 kali baca/tulis

c. tegangan kerja 4-5.0V

d. Bekerja dengan rentang 0 – 33MHz e. 256x8 bit RAM internal

f. 32 jalur I/0 dapat diprogram g. 3 buah 16 bit Timer/Counter h. 8 sumber interrupt

i. saluran full dupleks serial UART j. watchdog timer

k. dual data pointer

l. Mode pemrograman ISP yang fleksibel (Byte dan Page Mode)

2.1.1 Kontruksi AT89S52

Mikrokontroler AT89S52 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


(19)

rangkaian oscilator pembentuk clock yang menentukan kecepatan kerja Mikrokontroler.

Memori merupakan bagian yang sangat penting pada Mikrokontroler. Mikrokontroler memiliki dua macam memori yang sifatnya berbeda. Read Only Memory (ROM) yang isinya tidak berubah meskipun IC kehilangan catu daya. Sesuai dengan keperluannya, dalam susunan MCS-51 memori penyimpanan program ini dinamakan sebagai memori program. 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 Mikrokontroler dengan program yang sudah baku dan diproduksi secara masal, program diisikan kedalam ROM pada saat IC Mikrokontroler dicetak dipabrik IC. Untuk keperluan tertentu Mikrokontroler 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.


(20)

Jenis memori yang dipakai untuk memori program AT89S52 adalah flash PEROM, program untuk mengendalikan Mikrokontroler diisikan ke memori itu lewat bantuan alat yang dinamakan sebagai AT89C4051 flash PEROM Programmer. Memori data yang disediakan dalam chip AT89s52 sebesar 128 kilo byte meskipun hanya kecil saja tapi untuk banyak keperluan memori kapasitas itu sudah cukup.

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

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


(21)

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

2.1.2. Pin-Pin pada Microcontroller AT89S52

Mikrokontroler tersebut mempunyai 40 kaki, 32 kaki di antaranya adalah kaki untuk keperluan port paralel. Tiap port paralel terdiri dari 8 kaki, dengan demikian 32 kaki tersebut membentuk 4 buah port paralel, yang masing–masing dikenal sebagai Port 0, Port 1, Port 2 dan Port 3. Nomor dari masing–masing jalur (kaki) dari port paralel mulai dari dari 0 sampai 7, jalur (kaki) pertama Port 0 disebut sebagai P0.0 dan jalur terakhir untuk Port 3 adalah P3.7.


(22)

Gambar 2.1 Pinout AT89S52

Fungsi-fungsi pin AT89S52 adalah:

a. VCC : Sumber tegangan

b. GND : Ground atau pentanahan

c. RST : Masukan reset. Kondisi '1' selama 2 siklus mesin selama osilator bekerja akan mereset mikrokontroler yang bersangkutan


(23)

d. ALE / PROG : Keluaran ALE atau Adreess Latch Enable menghasilkan pulsa– pulsa untuk mengancing byte rendah (low byte) alamat selama mengakses memori eksternal. Kaki ini juga berfungsi sebagai masukan pulsa program (the program pulse

input) atau PROG selama pemrograman flash . Pada operasi normal, ALE akan

berpulsa dengan laju 1/6 dari frekuensi kristal dan dapat digunakan sebagai pewaktuan (timing) atau pendetakan (clocking) rangkaian eksternal. Catatan, ada satu pulsa yang dilompati selama selama pengaksesan memori data eksternal. Jika dikehendaki, operasi ALE bisa dimatikan dengan cara mengatur bit 0 dari SFR lokasi 8Eh. Jika isinya '1', ALE hanya akan aktif selama dijumpai instruksi MOVX atau MOVC. Selain itu, kaki ini akan secara lemah di-pulled high . Mematikan bit ALE tidak akan ada efeknya jika mikrokontroler mengeksekusi program secara eksternal.

e. PSEN : Program Store Enable merupakan sinyal baca untuk memori program eksternal. Saat mikrokontroler menjalankan program dari memori eksternal, PSEN akan diaktifkan dua kali per siklus mesin, kecuali dua aktivasi PSEN dilompati (diabaikan) saat mengakses memori data eksternal.

f. EA/VPP : External Access Enable . EA harus selalu dihubungkan ke- ground , jika mikrokontroler akan mengeksekusi program dari memori eksternal lokasi 0000h hingga FFFFh. Selain dari itu, EA harus dihubungkan ke VCC agar mikrokontroler mengakses program secara internal, yaitu pada lokasi 0000h sampai 1FFFh sedangkan


(24)

lokasi 2000h sampai FFFFh pada memori eksternal. Kaki ini juga berfungsi menerima tegangan 12 Volt (VPP) selama pemrograman flash, khususnya untuk tipe mikrokontroler 12 Volt VPP.

Spesifikasi Masing-masing Port

Keempat port pada mikrokontroler bersifat dwi-arah dan masing-masing memiliki sebuah pengancing (latch), yang diacu dalam program sebagai Register Fungsi Khusus (RFK atau SFR) sebagai P0, P1, P2 dan P3. Selain itu juga memiliki sebuah penggerak keluaran (output driver) dan sebuah penyangga masukan (input buffer) pada masing-masing kaki port.

Penggerak–penggerak keluaran Port 0 dan 2 serta penyangga masukan dari Port 0 digunakan dalam pengaksesan memori eksternal. Pada aplikasi semacam ini, Port 0 mengeluarkan byte rendah alamat memori eksternal, dimultipleks secara waktu dengan byte yang akan dituliskan atau dibaca (ke/dari memori eksternal). Port 2 mengeluarkan byte tinggi dari alamat memori eksternal jika lebar alamatnya 16-bit, selain itu kaki–kaki Port 2 tetap meneruskan menghasilkan isi SFR dari P2. Berikut ini akan dijelaskan masing–masing port pada mikrokontroler.


(25)

Port 0 merupakan keluaran/masukan (I/O) bertipe open drain bidirectional . Sebagai port keluaran, masing–masing kaki dapat menyerap arus (sink) delapan masukan TTL (sekitar 3,8 mA). Pada saat '1' dituliskan ke kaki– kaki Port 0 ini, maka kaki–kaki Port 0 dapat digunakan sebagai masukan– masukan berimpedansi tinggi.

Jika Port 0 dapat dikonfigurasikan sebagai bus alamat/data bagian rendah (low byte) selama proses pengaksesan memori data dan program eksternal. Jika digunakan dalam mode ini Port 0 memiliki pullup internal.

Port 0 juga menerima kode–kode yang dikirim kepadanya selama proses pemrograman dan mengeluarkan kode–kode selama proses varifikasi program yang telah tersimpan dalam flash. Dalam hal ini dibutuhkan pullup eksternal selama proses verifikasi program.

Port 1

Port 1 merupakan I/O dwi–arah yang dilengkapi dengan pullup internal. Penyangga keluaran Port 1 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA).


(26)

Jika '1'dituliskan ke kaki–kaki Port 1, maka masing–masing kaki akan di-pulled high dengan pullup internal sehingga dapat digunakan sebagai masukan. Sebagai masukan, jika kaki–kaki Port 1 dihubungkan ke ground (di-low pulled), maka masing–masing kaki akan memberikan arus (source) karena di-pulled high secara internal. Port 1 juga menerima alamat bagian rendah (low byte) selama pemrograman dan verifikasi flash.

Port 2

Port 2 merupakan I/O dwi–arah yang dilengkapi dengan pullup internal. Penyangga keluaran port 1 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA).

Jika '1' dituliskan ke kaki–kaki Port 2, maka masing–masing kaki akan di-pulled high dengan pullup internal sehingga dapat digunakan sebagai masukan. Sebagai masukan, jika kaki–kaki Port 2 dihubungkan ke ground (di-pulled low), maka masing–masing kaki akan memberikan arus (source) karena di-pulled high secara internal.

Port 2 akan memberikan byte alamat bagian tinggi (high byte) selama pengambilan instruksi dari memori program eksternal dan selama pengaksesan memori data


(27)

ingin mengirimkan '1', maka digunakan pullup internal yang sudah disediakan. Selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 8-bit, Port 2 akan mengirimkan isi dari SFR P2. Port 2 juga menerima alamat bagian tinggi selama pemrograman dan verifikasi flash.

Port 3

Port 3 merupakan port I/O dwi–arah dengan dilengkapi pullup internal. Penyangga keluaran Port 3 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA).

Jika '1' dituliskan ke kaki–kaki port 3, maka masing–masing kaki akan di-pulled high dengan pullup internal sehingga dapat digunakan sebagai masukan. Sebagai masukan, jika kaki–kaki port 3 dihubungkan ke ground (di-pulled low), maka masing–masing kaki akan memberikan arus (source) karena di-pulled high secara internal.

Port 3, sebagaimana Port 1, memiliki fungsi–fungsi alternatif antara lain menerima sinyal–sinyal kontrol (P3.6 dan P3.7), bersama–sama dengan port 2 (P2.6 dan P2.7) selama pemrograman dan verifikasi flash.


(28)

Keluarga mikrokontroler MCS51 dilengkapi dengan tiga perangkat Timer/Counter, masing-masing dinamakan sebagai Timer/Counter 0, Timer/Counter 1, dan Timer 2.

Untuk mengakses Timer/Counter tersebut digunakan register khusus yang tersimpan dalam Special Function Register (SFR). Pencacah biner Timer 0 diakses melalui register TL0 (Timer 0 Low Byte , memori internal alamat 6Ah) dan register TH0 (Timer 0 High Byte , memori internal alamat 6Ch). Pencacah biner Timer 1 diakses melalui register TL1 (Timer 1 Low Byte , memori internal alamat 6Bh) dan register TH1 (Timer 1 High Byte , memori internal alamat 6Dh).

Pencacah biner Timer/Counter pada MCS51 merupakan pencacah biner 16 bit naik (count up binary counter) yang mencacah 0000h sampai FFFFh, saat kondisi pencacah berubah dari FFFFh kembali ke 0000h akan timbul sinyal berlebihan (overflow ).

Untuk mengatur kerja Timer/Counter tersebut digunakan 2 register tambahan, yaitu register TCON (Timer Control Register), memori data internal alamat 88h, bisa diberi alamat per bit). Dan register TMOD (Timer Mode Register , memori data internal alamat 89h, tidak bisa diberi alamat per bit).


(29)

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 TF1 TR1 TF0 TR0 1E1 1T1 1E0 1T0

Tabel 2.1. Susunan bit dalam register TCON

a. TF1 : overflow flag Timer 1/Counter 1 (1 = overflow) b. TR1 : Enable Timer 1/Counter 1

c. TF0 : overflow flag Timer 0/Counter 0 (1 = overflow) d. TR0 : Enable Timer 0/Counter 0

e. IE1 : External Interrupt 1 edge flag

f. IT1 : Interrupt 1 type control bit . Set/clear oleh program untuk menspesifikasi sisi turun/level rendah trigger dari interupsi eksternal.

g. IE0 : External Interrupt 0 edge flag

h. IT0 : Interrupt 0 type control bit . Set/clear oleh program untuk menspesifikasi sisi turun/level rendah trigger dari interupsi eksternal.

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 GATE CT M1 M0 GATE CT M1 M0


(30)

a. GATE : merupakan bit pengatur sinyal detak. Jika GATE = 0, Timer/Counter akan berjalan saat TR0 atau TR1 pada register TCON (TRx) = 1. Jika GATE = 1, Timer/Counter akan berjalan saat TRx = 1 atau INT1 untuk Timer 1 dan INT0 untuk Timer 0 (INTx) = 1.

b. C/T : dipakai untuk mengatur sumber sinyal detak yang diberikan kepada pencacah biner. Jika C/T = 0, maka Timer akan aktif dengan sinyal detak diperoleh dari osilator kristal yang frekuensinya sudah dibagi 12. Jika C/T = 1, maka Counter akan aktif dengan sinyal detak diperoleh dari kaki T0 (untuk Timer 0) dan kaki T1 (untuk Timer 1).

c. M0 dan M1 : dipakai untuk menentukan Mode Timer/Counter.

MI M0 Mode Operasi

0 0 0 Timer Counter 13 bit

0 1 1 Timer Counter 16 bit

1 0 2 Timer auto reload 8 bit

1 1 3 TL0 adalah timer Counter 8 bit

yang dikontrol oleh control bit Timer 0 (TF0)

TH0 adalah timer counter 8 bit yang dikontrol oleh control bit


(31)

timer 1 (TF1)

Tabel 2.3 Mode Operasi Timer/Counter

Untuk menghitung clock frequency adalah menggunakan perhitungan berikut :

Sehingga, dengan menggunakan Mode 1 dapat dihitung waktu tunda yang diperlukan dengan perhitungan berikut :

Delay = ( 65536 - n ) x T


(32)

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 :

1. Instruksi MOV

Perintah ini merupakan perintah untuk mengisikan nilai ke alamat atau register tertentu. Pengisian nilai dapat secara langsung atau tidak langsung.

Contoh pengisian nilai secara langsung

MOV R0,#20h

Perintah di atas berarti : isikan nilai 20 Heksadesimal ke register 0 (R0). Tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah nilai. Contoh pengisian nilai secara tidak langsung

MOV 20h,#80h ... ... MOV R0,20h

Perintah di atas berarti : isikan nilai yang terdapat pada alamat 20 Heksadesimal ke register 0 (R0).

Tanpa tanda # sebelum bilangan menunjukkan bahwa bilangan tersebut adalah alamat.


(33)

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.

3. Instruksi ACALL

Instruksi ini berfungsi untuk memanggil suatu rutin tertentu. Contoh :

... ACALL TUNDA ... TUNDA:

...

4. Instruksi RET

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


(34)

... TUNDA:

... RET

5. Instruksi JMP (Jump)

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

Loop:

... ...

JMP Loop

6. Instruksi JB (Jump if bit)

Instruksi ini merupakan perintah untuk lompat ke alamat tertentu, jika pin yang dimaksud berlogika high (1). Contoh,

Loop:

JB P1.0,Loop

...

7. Instruksi JNB (Jump if Not bit)


(35)

Loop:

JNB P1.0,Loop

...

8. Instruksi CJNZ (Compare Jump If Not Equal)

Instruksi ini berfungsi untuk membandingkan nilai dalam suatu register dengan suatu nilai tertentu. Contoh,

Loop:

...

CJNE R0,#20h,Loop

...

Jika nilai R0 tidak sama dengan 20h, maka program akan lompat ke rutin Loop. Jika nilai R0 sama dengan 20h,maka program akan melanjutkan instruksi selanjutnya..

9. Instruksi DEC (Decreament)

Instruksi ini merupakan perintah untuk mengurangi nilai register yang dimaksud dengan 1. Contoh,

MOV R0,#20h R0 = 20h ...

DEC R0 R0 = R0 – 1 ...


(36)

10.Instruksi INC (Increament)

Instruksi ini merupakan perintah untuk menambahkan nilai register yang dimaksud dengan 1. Contoh,

MOV R0,#20h R0 = 20h ...

INC R0 R0 = R0 + 1

...

11.Dan lain sebagainya

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


(37)

Gambar 2.2 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.

2.4 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


(38)

Gambar 2.3 ISP- Flash Programmer 3.0a

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

2.5Sensor Infra Red

Sinar infra merah yang dipancarkan oleh pemancar infra merah tentunya mempunyai aturan tertentu agar data yang dipancarkan dapat diterima dengan baik di receiver. Oleh karena itu baik di transmitter infra merah maupun receiver infra merah harus mempunyai aturan yang sama dalam mentransmisikan (bagian transmitter) dan


(39)

menerima sinyal tersebut kemudian mendekodekannya kembali menjadi data biner (bagian receiver).

Komponen yang dapat menerima infra merah ini merupakan komponen yang peka cahaya yang dapat berupa dioda (photodioda) atau transistor (phototransistor). Komponen ini akan merubah energi cahaya, dalam hal ini energi cahaya infra merah, menjadi pulsa-pulsa sinyal listrik. Komponen ini harus mampu mengumpulkan sinyal infra merah sebanyak mungkin sehingga pulsa-pulsa sinyal listrik yang dihasilkan kualitasnya cukup baik. Semakin besar intensitas infra merah yang diterima maka sinyal pulsa listrik yang dihasilkan akan baik jika sinyal infra merah yang diterima intensitasnya lemah maka infra merah tersebut harus mempunyai pengumpul cahaya (light collector) yang cukup baik dan sinyal pulsa yang dihasilkan oleh sensor infra merah ini harus dikuatkan. Pada prakteknya sinyal infra merah yang diterima intensitasnya sangat kecil sehingga perlu dikuatkan.

Selain itu agar tidak terganggu oleh sinyal cahaya lain maka sinyal listrik yang dihasilkan oleh sensor infra merah harus difilter pada frekuensi sinyal carrier yaitu pada 30 KHz sampai 40 KHz. Selanjutnya baik photodioda maupun phototransistor disebut sebagai photodetector. Dalam penerimaan infra merah, sinyal ini merupakan sinyal infra merah yang termodulasi. Pemodulasian sinyal data dengan sinyal carrier dengan frekuensi tertentu akan dapat memperjauh trasnmisi data sinyal infra.


(40)

Sebuah photodioda, biasanya mempunyai karakteristik yang lebih baik daripada phototransistor dalam responnya terhadap cahaya infra merah. Biasanya photo dioda mempunyai respon 100 kali lebih cepat daripada phototransistor. Oleh sebab itulah para designer cenderung menggunakan photodioda daripada menggunakan phototransistor. Tetapi sebuah phototransistor tetap mempunyai keunggulan yaitu mempunyai kemampuan untuk menguatkan arus bocor menjadi ratusan kali jika dibandingkan dengan photodiode. Faktor lain yang juga berpengaruh pada kemampuan penerima infra merah adalah ‘active area’ dan ‘respond time’. Semakin besar area penerimaan suatu dioda infra merah maka semakin besar pula intensitas cahaya yang dikumpulkannya sehingga arus bocor yang diharapkan pada teknik ‘reserved bias’ semakin besar. Selain itu semakin besar area penerimaan maka sudut penerimaannya juga semakin besar. Kelemahan area penerimaan yang semakin besar ini adalah noise yang dihasilkan juga semakin besar pula. Begitu juga dengan respon terhadap frekuensi, semakin besar area penerimaannya maka respon frekuansinya turun dan sebaliknya jika area penerimaannya kecil maka respon terhadap sinyal frekuensi tinggi cukup baik.


(41)

Untuk memperoleh jarak yang cukup jauh, Diode Infrared memerlukan sinyal dengan frekwensi 30 hingga 50 KHz. Berbeda dengan Diode LED yang hanya memerlukan level tegangan DC saja untuk mengaktifkan LED, Diode Infrared memerlukan sinyal AC dengan frekwensi 30 hingga 50 KHz untuk mengaktifkannya. Cahaya infrared tersebut tidak dapat ditangkap oleh mata manusia, sehingga diperlukan phototransistor untuk mendeteksinya

LED adalah dioda yang menghasilkan cahaya saat diberi energi listrik. Dalam bias maju sambungan p-n terdapat rekombinasi antara elektron bebas dan lubang (hole). Energi ini tidak seluruhnya dirubah kedalam bentuk energi cahaya atau photon melainkan dalam bentuk panas sebagian.

Proses pemancaran cahaya akibat adanya energi listrik yang diberikan terhadap sustu bahan disebut dengan sifat elektroluminesensi. Material lain adalah misalnya Galium Arsenida Pospat (GaAsP) atau Galium pospat (GaP) : Photon energi cahaya dipancarkan untuk menghasilkan cahaya tampak. Jenis lain dari LED digunakan untuk menghasilkan energi tidak tampak seperti yang dipancarkan oleh pamancar laser atau infra merah.


(42)

Pemancar infra merah adalah dioda solid state yang terbuat dari bahan Galium Arsenida (GaAs) yang mampu memancarkan fluks cahaya ketika dioda ini dibias maju. Bila diberi bias maju elektron dari daerah-n akan menutup lubang elektron yang ada di daerah-p. Selama proses rekombinasi ini, energi dipancar keluar dari permukaan p dan n dalam bentuk photon. Photon-photon yang dihasilkan ini ada yang diserap lagi dan ada yang meninggalkan permukaan dalam bentuk radiasi energi.

330Ω VCC

5V

Gambar 2.4 Simbol dan rangkaian sebuah LED

Dengan menggunakan unsur-unsur diatas, pabrik dapat membuat LED yang memancarkanwarna merah, kuning dan infra merah. LED yang menghasilkan pancaran yang kelihatan dapat beguna pada display peralatan, mesin hitung, jam


(43)

digital, dan lain-lain. LED infra merah dapat digunakan dalam sistem tanda bahaya pencuri dan ruang ligkup lain yang membutuhkan pancaran yang tak kelihatan. Keuntungan dari LED dibandingkan dengan lampu pijar yaitu umurnya yang lebih panjang, teganganya rendah dan saklar nyala matinya cepat.

Gelombang infra merah yang dihasilkan oleh elektron-elektron dalam molekul yang bergetar karena benda dipanaskan. Selain tidak dapat dilihat secara langsung sinar infra merah juga dapat menembus kabut dan awan tebal. Dengan ciri-ciri yang spesifiktersebut, pesawat udara yang terbang tinggi atau pun satelit-satelit dapat membuat photo permukaan bumi yang tidak diperoleh dengan menggunakan cahaya infra merah.

Radiasi sinar infra merah dapat getaran-getaran atom pada suatu molekul. Getaran atom pada suatu molekul dapat memancarkan gelombang elektromagnetik. Pada frekuensi-frekuensi yang khas dalam infra merah sehingga spektroskopi. Infra merah merupakan salah satu alat penting untuk mempelajari spektrum molekul. Energi yang terkandung dalam radiasi sinar ini tampak seperti energi panas termasuk cahaya yang diterima dari matahari sejumlah besar mengandung radiasi ini.


(44)

Penghitung atau pencacah (counter) adalah rangkaian sirkuit digital atau kadang-kadang berbentuk chip yang bisa dipakai untuk menghitung pulsa atau sinyal digital yang umumnya dihasilkan dari osilator. Penghitung ini bisa menghitung pulsa secara biner murni (binary counter) ataupun secara desimal-terkodekan-secara-biner (decimal counter).

Dalam penghitung biner murni, angka 9 dinyatakan dalam bentuk bilangan biner 1001, dan berikutnya angka 10 dinyatakan dalam bentuk biner 1010. Sedangkan dalam penghitung desimal-terkodekan-secara-biner, angka 9 adalah biner 1001, tetapi angka 10 dinyatakan dalam bentuk: 0001 0000. Angka desimal 100 dalam biner murni adalah 1100100, sedangkan dalam BCD adalah 0001 0000 0000 (3 buah digit desimal masing-masing dari kelompok 4 bit).

Untuk jelasnya, angka desimal 0 sampai 17 (yang kita kenal sehari-hari), jika dinyatakan dalam bilangan biner murni dan biner BCD ( dengan 5 bit), akan nampak seperti di bawah ini. Angka 0 sampai 9 mempunyai bentuk biner murni dan biner

BCD yang sama, tetapi mulai dari angka 10 keduanya belainan.


(45)

0 0000 0 0000 0 0001 0 0001 0 0010 0 0010 0 0011 0 0011 0 0100 0 0100 0 0101 0 0101 0 0110 0 0110 0 0111 0 0111 0 1000 0 1000 0 1001 0 1001

0 1010 1 0000

0 1011 1 0001 0 1100 1 0010 0 1101 1 0011 0 1110 1 0100 0 1111 1 0101 1 0000 1 0110 1 0001 1 0111


(46)

dst...

Tabel 2.4 Konversi Biner Murni dan Biner BCD

Rangkaian penghitung ini kebanyakan dipakai dalam alat penghitung pulsa putaran mesin, atau putaran roda kendaraan. Berdasarkan jumlah pulsa yang terhitung per detik atau per menit, kita dapat menentukan kecepatan putaran mesin, kecepatan jalannya kendaraan, jarak yang ditempuh, dll. Misalnya, kalau jumlah putaran per detik dari roda kendaraan adalah 10, dan panjang busur lingkaran (keliling) roda ban itu = 1 meter, maka kendaraan itu berjalan sepanjang 10 meter per detik. Dengan kata lain jika dinyatakan dalam km/jam, kecepatan kendaraan itu menjadi 10*60*60 = 36.000 meter per jam, atau 36 km/jam.

Alat penghitung ini (baik yang biner maupun desimal BCD) merupakan bagian penting dalam sistem peralatan digital dan penggunaannya dalam bidang industri. Selain untuk menghitung pulsa putaran, penghitung/pencacah juga dipakai untuk menghitung pulsa waktu, alat yang penting dalam bidang telekomunikasi yaitu untuk mencatat lama pembicaraan. Penghitung bisa dipakai juga untuk mengontrol robot kapan harus aktif (pada jam berapa, atau setelah berapa menit lagi). Banyak contoh lain yang bisa disebutkan mengenai penggunaan penghitung ini dalam bidang kontrol dan elektronika digital.


(47)

Gambar 2.5 Pencacah dengan menggunakan flip-flop JK

Bagi masyarakat awam, penghitung bisa diartikan sebagai kalkulator yang dipakai untuk menghitung untuk keperluan sehari-hari. Ada dua macam kalkulator: penghitung sederhana, dan penghitung ilmiah (scientific calculator). Dalam penghitung sederhana, kita hanya bisa menghitung: + - * / % kwadrat, 1/x, dan operasi memori saja (cukup untuk keperluan penghitung rumah tangga sehari-hari). Sedangkan pada scientific calculator, kita bisa menghitung rumus matematika yang lebih rumit, seperti: pangkat, exp, ln, sin, cosin, tg, dll. Kebanyakan dari kita sekarang tidak perlu membeli kalkulator ini, karena dalam komputer PC kita (MS Windows dan MS Office) di dalamnya sudah disediakan kalculator.


(48)

BAB III

PERANCANGAN ALAT DAN CARA KERJA

3.1 Diagram Blok


(49)

Secara garis besar, perancangan alat penghitung jumlah orang yang masuk dan keluar terdiri dari enam blok rangkaian utama. Untuk dapat mengetahui orang yang memasuki dan meninggalkan ruangan digunakan sensor gerak. Sensor ini terdiri dari pemancar infra merah dan fotodioda sebagai penerima. Nilai yang ditampilkan pada display akan terus bertambah setiap ada orang yang memasuki ruangan dan akan mengurangi nilainya apabila ada orang yang meninggalkan ruangan. Mikrokontroler AT89S52 merupakan otak dari seluruh sistem. Di dalam mikrokontroler inilah semua data akan diolah.


(50)

start

Ada orang yang masuk?

Tambah 1 nilai pada display

Ada orang yang keluar?

Kurang 1 nilai pada display ya

tdk

tdk

tdk

Gambar 3.2 Flowchart Program

Program diawali dengan start. Kemudian program akan mengecek apakah sensor mendeteksi ada orang yeng memasuki ruangan atau tidak. Jika ada maka program akan menambahkan 1 ilai pada display. Jika tidak ada orang yang memasuki ruangan maka program akan mengecek apakah ada orang yang keluar dari ruangan jika ada orang yang keluar ruangan maka program akan mengurangi 1 nilai pada display tetapi jika sensor tidak mendapatkan input data berarti tidak ada orang yang memasuki atau keluar dari ruangan. Dan program kembali ke routine awal


(51)

3.3 Program pada Rangkaian

Initialisasi:

Sensor_masuk bit po.6

Sensor_keluar bit po.7

Utama:

mov 70h,#0h ;tampil angka 0 pd satuan mov 71h,#0h ;tampil angka 0 pd puluhan mov 72h,#0h ;tampil angka 0 pd ratusan

call Simpan_Nilai Sensor_masuk: call Simpan_Nilai call Delay1 jb p0.6,Sensor_keluar nop jnb p0.6,$

inc 70h ;tambah 1 nilai pd satuan mov r5,70h

cjne r5,#0ah,Sensor_masuk mov 70h,#0h

inc 71h ;tambah 1 nilai pd puluhan mov r5,71h

cjne r5,#0ah,Sensor_masuk mov 71h,#0h

inc 72h ;tambah 1 nilai pd ratusan mov r5,72h cjne r5,#0ah,Sensor_masuk mov 72h,#0h sjmp Sensor_masuk Sensor_keluar: call Simpan_Nilai call Delay1 jb p0.7,Sensor_masuk


(52)

nop

jnb p0.7,$

dec 70h ;kurangi 1 nilai pd satuan mov r5,70h

cjne r5,#0ffh,Sensor_keluar mov 70h,#9h

dec 71h ;kurangi 1 nilai pd puluhan mov r5,71h

cjne r5,#0ffh,Sensor_keluar mov 71h,#9h

dec 72h ;kurangi 1 nilai pd ratusan mov r5,72h cjne r5,#0ffh,Sensor_keluar mov 72h,#9h sjmp Sensor_keluar Simpan_Nilai: mov r4,70h call Konversi mov 73h,r4 mov r4,71h call Konversi mov 74h,r4 mov r4,72h call Konversi mov 75h,r4 acall kirim_KeSbuf ret konversi: cjne r4,#0h,satu

mov r4,#21h ;0 ret

satu:

cjne r4,#01h,dua

mov r4,#0edh ;1 ret

dua:

cjne r4,#02h,tiga

mov r4,#19h ;2 ret


(53)

cjne r4,#03h,empat

mov r4,#89h ;3 ret

empat:

cjne r4,#04h,lima

mov r4,#0c5h ;4 ret

lima:

cjne r4,#05h,enam

mov r4,#83h ;5 ret

enam:

cjne r4,#06h,tujuh ;6 mov r4,#03h

ret tujuh:

cjne r4,#07h,delapan

mov r4,#0e9h ;7 ret

delapan:

cjne r4,#08h,sembilan mov r4,#01h ;8 ret

sembilan:

cjne r4,#09h,konversi mov r4,#81h ;9 ret kirim_KeSbuf: mov sbuf,73h jnb ti,$ clr ti mov sbuf,74h jnb ti,$ clr ti mov sbuf,75h jnb ti,$ clr ti ret Delay: Mov r7,#4 Dly: Mov r6,#0ffh Dl: Mov r5,#0ffh Djnz r5,$


(54)

Djnz r6,Dl Djnz r7,Dly Ret

Delay1:

Mov r7,#80h Dly1: Mov r6,#80h Djnz r6,$ Djnz r7,Dly1 Ret

End

3.4 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. Rangkaian power supplay ditunjukkan pada gambar 3.1 berikut ini :


(55)

Gambar 3.3 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.

3.5 Rangkaian Mikrokontroler AT89S52

Rangkaian ini berfungsi sebagai pusat kendali dari seluruh system yang ada. Rangkaian mikrokontroler ditunjukkan pada gambar berikut ini:


(56)

Gambar 3.4 Rangkaian Mikrokontroller AT89S51/52

Pin 31 External Access Enable (EA) diset high (H). Ini dilakukan karena mikrokontroler AT89S8253 tidak menggunakan memori eskternal. Pin 18 dan 19 dihubungkan ke XTAL 12 MHz dan capasitor 33 pF. XTAL ini akan mempengaruhi kecepatan mikrokontroler AT89S8253 dalam mengeksekusi setiap perintah dalam program. Pin 9 merupakan masukan reset (aktif tinggi). Pulsa transisi dari rendah ke tinggi akan me-reset mikrokontroler ini. Pin 32 sampai 39 adalah Port 0 yang


(57)

multipleks bus alamat rendah dan bus data selama adanya akses ke memori program eksternal. Pada port 0 ini masing masing pin dihubungkan dengan resistor 4k7 ohm. Resistor 4k7 ohm yan dihubungkan ke port 0 befungsi sebagai pull up( penaik tegangan ) agar output dari mikrokontroler dapat mntrigger transistor. Pin 1 sampai 8 adalah port 1. Pin 21 sampai 28 adalah port 2 dan Pin 10 sampai 17 adalah port 3. Pin 39 yang merupakan P0.0 dihubungkan dengan sebuah resistor 330 ohm dan sebuah LED. Ini dilakukan hanya untuk menguji apakah rangkaian minimum mikrokontroler AT89S8253 sudah bekerja atau belum. Dengan memberikan program sederhana pada mikrokontroler tersebut, dapat diketahui apakah rangkaian minimum tersebut sudah bekerja dengan baik atau tidak. Jika LED yang terhubug ke Pin 39 sudah bekerja sesuai dengan perintah yang diberikan, maka rangkaian minimum tersebut telah siap digunakan. Pin 20 merupakan ground dihubungkan dengan ground pada power supplay. Pin 40 merupakan sumber tegangan positif dihubungkan dengan + 5 volt dari power supplay.

3.6 Display Seven Segment

Untuk menampilkan jumlah orang yang masuk ke dalam ruangan diperlukan suatu rangkaian display yang dapat menampilkan jumlah orang yang masuk ke dalam ruangan tersebut.


(58)

Rangkaian display yang digunakan untuk menampilkan jumlah orang yang masuk ke dalam ruangan terlihat pada ganbar berikut:

Gambar 3.5 Rangkaian Display Seven Segment

Display ini menggunakan 3 buah seven segment yang dihubungkan ke IC HEF 4094BP yang merupakan IC serial to paralel. IC ini akan merubah 8 bit data serial yang masuk menjadi keluaran 8 bit data paralel. Rangkaian ini dihubungkan dengan P3.0 dan P3.1 AT89S52 P3.0 merupakan fasilitas khusus pengiriman data serial yang


(59)

disediakan oleh mikrokontroler AT89S52. Sedangkan P3.1 merupakan sinyal clock untuk pengiriman data serial. Pada rangkaian display ini digunakan dua buah dioda yang berfungsi untuk menurunkan tegangan supply untuk seven segment. Satu buah dioda dapat menurunkan tegangan sekitar 0,6 volt. Jadi, apabila dioda yang digunakan dua buah maka tegangan yang dapat diturunkannya adalah 1,8 volt. Tegangan ini diturunkan agar umur seven segment lebih tahan lama dan karena tegangan maksimum seven segment adalah 3,7 volt

3.7 Rangkaian Sensor

Untuk dapat mendeteksi orang yang lewat, maka alat ini dilengkapi dengan dua buah sensor. Kedua sensor ini mempunyai rangkaian yang sama, hanya penempatannya saja yang berbeda.

Masing-masing sensor dinding menggunakan dua buah pemancar infra merah dan sebuah photodioda. Sensor ini memanfaatkan pantulan dari pemancar infra merah yang diterima oleh photodioda. Digunakannya dua buah pemancar infra merah pada masing-masing sensor bertujuan agar sinyal pantulan semakin kuat, sehingga sensor benar benar dapat mendeteksi orang yang melewatinya.


(60)

Jika tidak ada orang yang melewati sensor, maka pancaran sinar infra merah tidak mengenai photodioda. Perbedaan intensitas pantulan inilah yang digunakan untuk mendeteksi adanya orang yang melewati sensor atau tidak.

Setiap pancaran yang diterima oleh photodioda akan diolah dan dijadikan data digital, sehingga bila photodioda mendapatkan pancaran dari pemancar infra merah, maka akan mengirimkan sinyal low ke mikrokontroler AT89S52. Dengan demikian mikrokontroler dapat mendeteksi sensor yang mengirimkan sinyal low dan mengambil tindakan untuk menampilkan jumlah orang yang masuk ke dalam ruangan.

Pada rangkaian di ini digunakan dua buah LED infra merah yang diparalelkan, dengan demikian maka intensitas yang dipancarkan oleh infra merah semakin kuat, karena merupakan gabungan dari dua buah LED infra merah


(61)

Gambar 3.6 Rangkaian Pemancar Infra Merah

Resistor yang digunakan adalah 100 ohm sehingga arus yang mengalir pada masing-masing LED infra merah adalah sebesar:

5

0,05 50

100

V

i A atau mA

R

= = =

Dengan besarnya arus yang mengalir ke LED infra merah, maka intensitas pancaran infra merah akan semakin kuat, yang menyebabkan jarak pancarannya akan semakin jauh.

Pancaran dari sinar infra merah akan diterima oleh photodioda, kemudian akan diolah oleh rangkaian penerima agar menghasilkan sinyal tertentu, dimana jika photodioda menerima pancaran sinar infra merah maka output dari rangkaian penerima ini akan mengeluarkan logika low (0), namun jika photodioda tidak menerima pancaran sinar infra merah, maka output dari rangkaian penerima akan mengeluarkan logika high (1). Rangkaian penerima infra merah seperti gambar di bawah ini:


(62)

Gambar 3.7 Rangkaian Penerima Sinar Infra Merah

Photodioda dioperasikan pada bias balik, dimana photodioda ini akan memiliki hambatan sekitar 15 sampai dengan 20 Mohm jika tidak terkena sinar infra merah, dan hambatannya akan berubah menjadi sekitar 80 sampai dengan 300 Kohm jika terkena sinar infra merah tergantung dari besarnya intensitas yang mengenainya. Semakin besar intensitasnya, maka hambatannya semakin kecil.

Pada rangkaian di atas, output dari photodioda diumpankan ke basis transistor tipe NPN C945, ini berarti untuk membuat transistor tersebut saturasi maka tegangan yang keluar dari photodioda harus lebih besar dari 0,7 volt. Syarat ini akan terpenuhi jika photodioda mendapatkan sinar infra merah.


(63)

Emiter transistor C945 diinputkan ke Op Amp LM 358 untuk diperkuat. LM358 merupakan IC penguat dengan dua Op Amp. Pada Op Amp pertama tegangan input akan diperkuat sampai maksimal 100 kali penguatan, dimana:

Ω =

K R AV Potensio

1

penguatan ini dapat diatur dengan mengatur hambatan pada potensiometer. Output Op Amp pertama akan diperkuat lagi sampai maksimum 100 kali penguatan. Dengan demikian penguatan dapat diatur sesuai dengan yang dikehendaki. LED ini akan menyala jika sensor menerima sinar infra merah, dan akan mati jika sensor tidak menerima sinar infra merah.


(64)

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 AT89S52 dapat bekerja pada tegangan 4,0 sampai dengan 5,5 volt, sehingga tegangan 5,1 volt ini cukup untuk mensupplay tegangan ke mikrokontroler AT89S52. Dengan demikian rangkaian ini sudah dapat bekerja dengan baik.

4.2 Pengujian Rangkaian Mikrokontroler AT89S52


(65)

Untuk mengetahui apakah rangkaian mikrokontroler AT89S52 telah bekerja dengan baik, maka dilakukan pengujian. Pengujian bagian ini dilakukan dengan memberikan program sederhana pada mikrokontroler AT89S52. Programnya adalah sebagai berikut:

Loop:

Setb P0.0

Acall tunda

Clr P0.0

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 P0.0 selama kurang lebih 0,13 detik kemudian mematikannya selama kurang lebih 0,13 detik secara terus menerus. Perintah Setb P0.0 akan menjadikan P0.0 berlogika high yang menyebabkan LED menyala. Acall tunda akan menyebabkan LED ini


(66)

hidup selama beberapa saat. Perintah Clr P0.0 akan menjadikan P0.0 berlogika low yang menyebabkan 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.

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

Tabel 4.1 Siklus Waktu Tunda

Tunda: 1

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


(67)

djnz r7,loop3 2 djnz r2,loop8 2

ret

Jadi waktu yang dibutuhkan untuk mengerjakan program di atas adalah 130.059 µdetik atau 0,130059 detik dan dapat dibulatkan menjadi 0,13 detik.

Jika program tersebut diisikan ke mikrokontroler AT89S52, kemudian mikrokontroler dapat berjalan sesuai dengan program yang diisikan, maka rangkaian minimum mikrokontroler AT89S52 telah bekerja dengan baik

4.3 Pengujian Rangkaian Sensor Gerak

Pengujian pada rangkaian sensor gerak ini dapat dilakukan dengan cara menghubungkan rangkaian ini dengan sumber tegangan 5 volt, kemudian meletakkan photodioda dan infra merah secara berhadapan. Ketika diletakkan secara berhadapan, maka pancaran sinar infra merah akan mengenai photodioda, sehingga menyebabkan LED indikator pada rangkaian penerima akan menyala, dan tegangan output rangkaian sebesar 0,2 volt. Namun ketika diantara infra merah dan photodioda diberi suatu penghalang yang menyebabkan pancaran infra merah tidak mengenai photodioda, hal


(68)

ini menyebabkan LED indikator pada rangkaian penerima tidak menyala dan tegangan output dari rangkaian ini sebesar 4,8 volt.

Pengujian selanjutnya dilakukan dengan cara menghubungkan rangkaian ini dengan rangkaian mikrokontroler AT89S52, dan memberikan program tertentu pada mikrokontroler AT89S52 .Untuk mendeteksi adanya sinyal yang dikirimkan oleh sensor, maka mikrokontroler harus diprogram untuk dapat mengecek sinyal apa yang dikirimkan oleh sensor. Jika sinyal yang dikirimkan adalah sinyal high (1), berarti tidak ada orang yang masuk ke dalam ruangan, namun jika sinyal yang dikirimkan adalah sinyal low (0), maka ini berarti ada orang yang masuk ke dalam ruangan. Program untuk mendeteksi pengiriman sinyal dari rangkaian sensor ini adalah,

sensor_masuk Bit P1.3

Sensor_keluar Bit P1.2

Cek_sensor_masuk:

Jnb sensor_Ring_kanan,Cek_Ring_Kiri

Clr P3.7


(69)

Cek_sensor_keluar:

Jnb sensor_Ring_kiri,Cek_Tombol_kanan

Setb P3.7

. . .

Di awal program dibuat inisialisasi port, dimana rutin ini menunjukkan bahwa sensor masuk dihubungkan ke P1.3 dan sensor keluar dihubungkan ke P1.2. Kemudian program akan dilanjutkan dengan rutin cek sensor masuk. Pada rutin ini program akan melihat kondisi P1.3 yang dihubungkan ke sensor ring kanan, dengan menggunakan perintah JnB (jump if not bit), jika kondisi P1.3 menunjukkan high atau bit (1) yang berarti tidak ada orang yang masuk ke dalam ruangan, maka program akan lompat ke rutin cek sensor keluar. Namun jika kondisi P1.3 notbit (low), maka program akan melanjutkan ke rutin Clr P3.7. Perintah ini akan menyebabkan LED yang terhubung ke P3.7 mati. Jika rangkaian telah berjalan sesuai dengan program yang diberikan, maka rangkaian telah bekerja dengan baik.

4.4 Pengujian Rangkaian Display Seven Segment

Pengujian pada rangkaian ini dapat dilakukan dengan menghubungkan rangkaian ini dengan rangkaian mikrokontroler AT89S52, kemudian memberikan data tertentu pada port serial dari mikrokontroler. Seven segmen yang digunakan adalah common


(70)

katoda, dimana segmen akan menyala jika diberi logika high (0) dan sebaliknya segment akan mati jika diberi logika low (1).

Dari hasil pengujian diperoleh data yang harus dikirimkan ke port serial untuk menampilkan angka desimal adalah sebagai berikut:

Angka Desimal

Data yang dikirim ( Hexadesimal)

1 16H 2 0BDH 3 3FH 4 76H 5 6BH 6 0FBH 7 1EH 8 0FFh 9 7FH 0 0DFH


(71)

Tabel 4.2 Konversi Angka Desimal

Program yang diisikan pada mikrokontroler untuk menampilkan nilai-nilai tersebut adalah sebagai berikut:

bil0 equ 0dfh

bil1 equ 16h

bil2 equ 0bdh

bil3 equ 3fh

bil4 equ 76h

bil5 equ 6bh

bil6 equ 0fbh

bil7 equ 1eh

bil8 equ 0ffh

bil9 equ 7fh

Loop:

mov sbuf,#bil0

Jnb ti,$

Clr ti

sjmp loop

Program di atas akan menampilkan angka 0 pada semua seven segment. Sedangkan untuk menampilkan 3 digit angka yang berbeda pada seven segment


(72)

adalah dengan mengirimkan ketiga data angka yang akan ditampilkan pada seven segment. Programnya adalah sebagai berikut :

Loop:

mov sbuf,#bil1

Jnb ti,$

Clr ti

mov sbuf,#bil2

Jnb ti,$

Clr ti

mov sbuf,#bil3

Jnb ti,$

Clr ti

sjmp loop

Program di atas akan menampilkan angka 1 pada seven segmen ketiga, angka 2 pada seven segmen kedua dan angka 3 pada seven segmen pertama.


(73)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Sensor yang digunakan dalam proyek ini peka terhadap sinar matahari sehingga tidak dapat terkena sinar matahari secara langsung. Hal ini dikarenakan sifat fotodioda yang sensitive terhadap sinar matahari

2. Pada rangkaian ini digunakan mikrokontroler AT89S52 sebagai mikrokomputer CMOS 8 bit dengan 8 Kb Flash Programmable dan Erasable Read Only Memory (PEROM)

5.2 Saran

1. Agar sistem atau rangkaian yang digunakan tidak mengalami kerusakan, sebaiknya alat ini dikemas dalam bentuk yang lebih aman dan terlindungi sehingga penggunaannya menjadi lebih efektif.


(74)

2. Dilakukan peningkatan kemampuan rangkaian sehingga semakin cerdas dengan mengkombinasikan sensor jenis lain sehinggga hasil yang diperoleh akan lebih teliti.


(75)

DAFTAR PUSTAKA

Atmel, ”Flash Microcontroller: Architectural Overview”, USA: Atmel Inc. (http://www.atmel.com), 1997.

Bawafi, Lukman dan Tim WEIP (Workshop Electronics and Instrumentation of Physic) ITS. 2003. Workshop Mikrokontroler. Surabaya: WEIP ITS.

Putra, Agfianto Purba. 2005. Belajar Mikrokontroler AT89C51/52/55 (Teori dan

Aplikasi). Yogyakarta: Penerbit Gava Media.

Woollard, Barry. 2003. Elektronika Praktis. Jakarta: PT Pradnya Paramita


(76)

(1)

Tabel 4.2 Konversi Angka Desimal

Program yang diisikan pada mikrokontroler untuk menampilkan nilai-nilai tersebut adalah sebagai berikut:

bil0 equ 0dfh bil1 equ 16h bil2 equ 0bdh bil3 equ 3fh bil4 equ 76h bil5 equ 6bh bil6 equ 0fbh bil7 equ 1eh bil8 equ 0ffh bil9 equ 7fh

Loop:

mov sbuf,#bil0 Jnb ti,$

Clr ti sjmp loop


(2)

adalah dengan mengirimkan ketiga data angka yang akan ditampilkan pada seven segment. Programnya adalah sebagai berikut :

Loop:

mov sbuf,#bil1 Jnb ti,$

Clr ti

mov sbuf,#bil2 Jnb ti,$

Clr ti

mov sbuf,#bil3 Jnb ti,$

Clr ti sjmp loop

Program di atas akan menampilkan angka 1 pada seven segmen ketiga, angka 2 pada seven segmen kedua dan angka 3 pada seven segmen pertama.


(3)

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Sensor yang digunakan dalam proyek ini peka terhadap sinar matahari sehingga tidak dapat terkena sinar matahari secara langsung. Hal ini dikarenakan sifat fotodioda yang sensitive terhadap sinar matahari

2. Pada rangkaian ini digunakan mikrokontroler AT89S52 sebagai mikrokomputer CMOS 8 bit dengan 8 Kb Flash Programmable dan Erasable Read Only Memory (PEROM)

5.2 Saran

1. Agar sistem atau rangkaian yang digunakan tidak mengalami kerusakan, sebaiknya alat ini dikemas dalam bentuk yang lebih aman dan terlindungi sehingga penggunaannya menjadi lebih efektif.


(4)

2. Dilakukan peningkatan kemampuan rangkaian sehingga semakin cerdas dengan mengkombinasikan sensor jenis lain sehinggga hasil yang diperoleh akan lebih teliti.


(5)

DAFTAR PUSTAKA

Atmel, ”Flash Microcontroller: Architectural Overview”, USA: Atmel Inc. (http://www.atmel.com), 1997.

Bawafi, Lukman dan Tim WEIP (Workshop Electronics and Instrumentation of Physic) ITS. 2003. Workshop Mikrokontroler. Surabaya: WEIP ITS.

Putra, Agfianto Purba. 2005. Belajar Mikrokontroler AT89C51/52/55 (Teori dan

Aplikasi). Yogyakarta: Penerbit Gava Media.

Woollard, Barry. 2003. Elektronika Praktis. Jakarta: PT Pradnya Paramita


(6)