Anda di halaman 1dari 103

PENGHITUNG JUMLAH PENGUNJUNG RUANG PERTUNJUKAN BERBASIS MIKROKONTROLER AT89C51

TUGAS AKHIR Diajukan Dalam Rangka Penyelesaian Studi Diploma Tiga Untuk Mencapai Gelar Ahli Madya

Disusun Oleh :

Nama NIM Jurusan Program Studi

: Riana Agustina A : 5333000039 : Teknik Elektro : Diploma III Teknik Elektro

FAKULTAS TEKNIK UNIVERSITAS NEGERI SEMARANG 2005

ABSTRAK

Riana Agustina Anggraini. 2005. Penghitung jumlah Pengunjung Ruang Pertunjukan Berbasis Mikrokontroler AT89C51. Tugas Akhir. Fakultas Teknik Universitas Negeri Semarang. Perkembangan mikrokontroler semakin canggih di dunia ilmu pengetahuan dan teknologi semakin pesat. Komponen yang diciptakan semakin kecil dan memungkinkan untuk diaplikasikan ke berbagi bidang,. Dalam Perkembangannya mikrokontroler mempunyai system memori , RAM, ROM, timer, port parallel,port serial, dan 32 bit I/O yang memungkinkan membentuk system terdiri dari keeping tunggal (single chip). Mikrokontroler juga mempunyai memiliki memori eksternal yang dapat diekspan sampai dengan 4K byte disebut FLASH PEROM. Tujuan dari pembuatan proyek akhir ini adalah untuk membuat hardware dan software Penghitung jumlah Pengunjung Ruang Pertunjukan Berbasis Mikrokontroler AT89C51. Prinsip dari alat ini adalah menampilkan jumlah pengunjung yang berada didalam ruangan pertunjukan dengan menggunakan display seven segment sekaligus dapat membunyikan buzzer jika ruangan penuh. Pengaturan nilai pembatas dapat dilakukan dengan menekan tombol setting. Rangkaian sensor menggunakan LDR, yang dirangkai sehingga dapat mendeteksi sumber cahaya yang mengenai penampang LDR ke bentuk energi listrik yang mampu direspon IC mikrokontroler. Sumber cahaya menggunakan laser pointer yang mampu mengeluarkan cahaya lurus satu titik. Rangkaian penampil menggunakan 4 digit sevent segment dan mampu menampilkan jumlah cacahan maksimal 255 dan tulisan FULL. Rangkaian buzzer menggunakan transistor sebagai saklar untuk membunyikan speaker sebagai tanda jika ruangan penuh. Rangkaian push button digunakan untuk memasukan nilai pembatas. Rangkaian ini dihubungkan ke port1 pada IC mikrokontroler AT89C51. Dari hasil pengujian yang telah dilakukan alat ini mampu mendeteksi dan menampilkan jumlah pengunjung yang melewati sensor. Jumlah cacahan maksimal sampai 255. Nilai pembatas dapat dilakukan dengan penekanan tombol switch push button sesuai yang dikehendaki. Dan rangkaian buzzer dapat berbunyi saat nilai pembatas sama dengan jumlah cacahan, sehingga dapat disimpulkan bahwa alat ini telah sesuai dengan yang direncanakan.

ii

HALAMAN PENGESAHAN
Laporan Tugas Akhir ini telah dipertahankan dihadapan sidang penguji Tugas Akhir Fakultas Teknik Universitas Negeri Semarang: Pada Hari : Kamis Tanggal : 25 Agustus 2005

Sekretaris

Drs. Said NIP.

Penguji II

Pembimbing / Penguji I

Drs.NoorHudalah NIP. 131813663 Ketua Jurusan

Drs. Herdi Saputra NIP. 131570074 Ketua Program Studi

Drs. Djoko Adi Widodo, M.T. NIP. 131570064

Drs.Agus Murnomo, M.T. NIP. 131616610

Dekan, Fakultas Teknik

Prof. Dr. Soesanto, M. Pd NIP. 130875753.

iii

MOTTO DAN PERSEMBAHAN

MOTTO Pengalaman adalah guru terbaik, karena dari pengalaman kita dapat menghargai hidup. Menjadi orang baik itu mudah, menjadi orang jujur itu tidak mudah. menjadi orang baik dan jujur itu paling sulit, maka belajarlah untuk selalu baik dan jujur pada diri sendiri. Waktu tidak akan pernah bisa diputar kembali maka gunakan waktu sebaik-baiknya. Jadikanlah sabar dan sholat sebagai penolongmu. Sesungguhnya yang demikian itu berat, kecuali bagi orang-orang yang khusu. ( Yaitu ) orangorang yang menyakini, bahwa mereka akan menemui Tuhannya, dan bahwa mereka akan kembali padaNya. ( Qs. Al-Baqarah: 45-46 )

PERSEMBAHAN Bapak dan Ibu (Alm.) tercinta Kakak adik tersayang Temanku Ucho, Tri dan Fajar Teman-teman TIK 02 Reguler Om Tiex , Bpk/Ibu & Sahabat-sahabat kost 001 Cempaka

iv

KATA PENGANTAR

Puji syukur kehadirat Tuhan Yang Maha Esa yang telah memberikan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan penyusunan Tugas Akhir dengan judul Penghitung Jumlah Pengunjung Ruang Pertunjukan Berbasis Mikrokontroler AT98C51. Tugas Akhir ini disusun guna mencapai gelar Ahli Madya program

Diploma III Teknik Elektro Fakultas Negeri Semarang. Dalam kesempatan ini penulis mengucapkan terima kasih dan

penghargaan kepada : 1. Drs. Djoko Adi Widodo, M.T, selaku Ketua Jurusan Teknik Elektro Universitas Negeri Semarang. 2. Drs. Agus Murnomo, M.T, selaku Ketua Program Studi Diploma III Teknik Elektro Universitas Negeri Semarang. 3. Drs. Herdi Saputra, selaku Dosen Pembimbing Tugas Akhir. 4. Bapak dan Ibu (Alm.) yang selalu memberikan dukungan serta doa restu. 5. Kakak dan adikku atas segala dukungan serta motivasi. 6. Temanku Ucho , Tri dan Fajar yang telah sangat membantu pembuatan Tugas Akhir ini. 7. Teman-temanku TIK 02 Reguler yang selalu memberikan dorongan semangat serta sumber-sumber yang penulis kutip tanpa ijin. 8. Om Tiex, Bpk/Ibu & sahabat-sahabat kost 001 Cempaka.

Penulis sadar bahwa laporan Tugas Akhir ini masih jauh dari kesempurnaan karena keterbatasan kemampuan dan pengetahuan baik secara teoritis maupun praktis. Oleh karena itu kritik dan saran yang membangun sangat penulis harapkan. Akhirnya, besar harapan dari penulis agar laporan ini dapat bermanfaat bagi pembaca yang budiman dan semua pihak yang membutuhkan. Terima Kasih.

Semarang, 15 Agustus 2005

Penulis

vi

DAFTAR ISI Halaman HALAMAN JUDUL ............................................................................................. ABSTRAK .. .................................................................................................. HALAMAN PENGESAHAN ............................................................................... HALAMAN PERSEMBAHAN ............................................................................ KATA PENGANTAR .......................................................................................... DAFTAR ISI ......................................................................................................... DAFTAR GAMBAR ............................................................................................ DAFTAR TABEL ................................................................................................. DAFTAR LAMPIRAN ......................................................................................... i ii iii iv vii vii x xi xii

BAB I

PENDAHULUAN A. Latar Belakang Masalah ................................................................ B. Rumusan Masalah .......................................................................... C. Batasan Masalah............................................................................. D. Tujuan ........................................................................................... E. Manfaat ......................................................................................... 1 2 2 3 4

F. Sistimatika Laporan Tugas Akhir. .............................................

BAB II ISI A. LANDASAN TEORI ................................................................... 1. Perangkat Keras Mikrokontroler AT89C51 ............................ a. Kaki-kaki Mikrokontroler AT89C51 ................................. b. Kelompok Instruksi AT89c51 ............................................ 1) Kelompok Instruksi Transfer Data ............................. 2) Kelompok Instruksi Logika dan Manipulasi Bit ......... 3) Instruksi Aritmatika .................................................... 4) Kelompok Instruksi Percabangan ............................... 5) Kelompok Instruksi Control ........................................ 2. Transistor Sebagai Saklar ........................................................ 3. Tranduser.................................................................................. 4. Dioda Laser .............................................................................. 5. IC 74LS14 Schimit Trigger ..................................................... 6. Sensor Cahaya (LDR) ............................................................. 7. Penampil Sevent Segmen ......................................................... 8. Rangkaian Buzzer .................................................................... 6 6 8 10 10 11 11 12 12 13 14 15 16 16 17 18

9. Perangkat Lunak....................................................................... B. Perancangan .................................................................................. 1. Identifikasi Kebutuhan ............................................................ 2. Analisa Kebutuhan .................................................................. 3. Perancangan Alat .................................................................... a. Perancangan Hardware ...................................................... 1) Sistem Minimum Mikrokontroler AT89C51 ............... 2) Penampil Sevent Segment ........................................... 3) Rangkaian Buzzer ....................................................... 4) Rangkaian Push Button ............................................... 5) Rangkaian Sensor ........................................................ 6) Catu Daya .................................................................... b. Perancangan Software ....................................................... 4. Spesifikasi Alat ....................................................................... 5. Pembuatan ............................................................................... a. Bahan ................................................................................. b. Alat .................................................................................... 6. Pengujian ................................................................................. a. Pengujian per Bagian ........................................................

18 19 20 20 21 21 22 24 25 26 26 28 29 31 32 32 32 34 34

1) Pengujian Rangkaian Sensor ....................................... 2) Pengujian Rangkaian switch push button ................... 3) Pengujian Rangkaian Penampil .................................. 4) Pengujian Sistem Mikrokontroler AT89C51 .............. 5) Pengujian Alat ............................................................. 7. Pembahasan ............................................................................. a. Diskripsi Data Hasil Pengujian Alat ................................. 1) Data Hasil Pengujian Rangkaian Sensor ..................... 2) Data Hasil Pengujian Rangkaian switch push button .. 3) Data Hasil Pengujian Rangkaian Penampil ................. 4) Data Pengujian Secara Keseluruhan ........................... b. Pembahasan Perangkat Keras (hardware) ......................... c. Pembahasan Perangkat Lunak (software) ......................... 1) Origin (org) ................................................................. 2) Program Equ (Equate) ................................................. 3) Subrutin Scan_Tombol ............................................... 4) Subrutin Display ......................................................... 5) Inisialisasi counter ....................................................... 6) Subrutin tampilan counter ...........................................

34 34 36 38 38 39 39 39 40 42 43 44 45 45 45 46 47 48 48

10

7) Subrutin Tampil Full ................................................... 8) Subrutin counter .......................................................... 9) Subrutin Delay ............................................................

49 50 50

BAB V PENUTUP A. Kesimpulan ................................................................................... B. Keterbatasan alat ........................................................................... C. Saran saran ................................................................................. 51 52 52

DAFTAR PUSTAKA ........................................................................................... LAMPIRAN

54

11

DAFTAR GAMBAR

Halaman Gambar 1. Gambar 2. Gambar 3.a. Gambar 3.b. Gambar 4. Gambar 5. Gambar 6. Gambar 7. Gambar 8. Gambar 9. Gambar 10. Gambar 11. Gambar 12. Gambar 13. Gambar 14. Blok diagram mikrokontroler AT89C51 ....................................... Susunan Pin mikrokontroler AT89C51 ......................................... Transistor NPN ............................................................................. Transistor PNP .............................................................................. Simbol dan konfigurasi IC TTL 74LS14 ...................................... Fisik LDR ...................................................................................... Seven segment common anoda ..................................................... Blok diagram rancangan alat ......................................................... Sistem minimum mikrokontroler AT89C51 ................................. Rancangan penampil seven segment ............................................. Rancangan rangkaian buzzer ......................................................... Rancangan rangkaian push button ................................................ Rancangan rangkaian sensor ......................................................... Rancangan rangkaian Power Suplay ............................................. Flowchart penghitung jumlah pengunjung ruang pertunjukan ..... 7 10 13 13 16 17 17 22 23 24 26 26 27 28 31

12

DAFTAR TABEL Halaman Tabel 1. Tabel kebenaran gerbang logika NOT ................................................ 16

13

Tabel 2.

Pengujian rangkaian sensor .................................................................

34 35 35 36 36 37 37 38 39 40 40 41 41 41 42 42 43 43

Tabel 3.a Data scaning tombol satuan ................................................................ Tabel 3.b Data scaning tombol puluhan ............................................................... Tabel 3.c Data scaning tombol ratusan ............................................................... Tabel 3.d Data scaning tombol Enter .................................................................. Tabel 4.a Data pengujian rangkaian penampil .................................................... Tabel 4.b Pemilih penyalaan seven segment ....................................................... Tabel 5.a Pengujian alat dengan nilai pembatas 3 desimal ................................. Tabel 5.b Pengujian alat dengan nilai pembatas maksimal 255 desimal ............ Tabel 6. Hasil pengujian rangkaian sensor .......................................................

Tabel 7.a Data hasil scaning tombol satuan ........................................................ Tabel 7.b Data hasil scaning tombol puluhan ..................................................... Tabel 7.c Data hasil scaning tombol ratusan ....................................................... Tabel 7.d Data hasil scaning tombol Enter ......................................................... Tabel 8.a Data pengujian rangkaian penampil .................................................... Tabel 8.b Data Hasil Pemilih penyalaan seven segment ..................................... Tabel 9.a Hasil Pengujian alat dengan nilai pembatas 3 desimal ....................... Tabel 9.b Hasil Pengujian alat dengan nilai pembatas maksimal 255 desimal ...

14

DAFTAR LAMPIRAN

Halaman Lampiran 1. Lampiran 2. Lampiran 3. Lampiran 4. Lampiran 5. Lampiran 6. Rangkaian Minimum mikrokontroler AT89C51 ......................... Rangkaian Penampil Seven Segmen ............................................. Rangkaian Sensor LDR ................................................................. Daftar Komponen .......................................................................... Rancangan Layout PCB ................................................................ Rancangan Software ..................................................................... 55 56 57 58 59 60

15

Lampiran 7. Lampiran 8. Lampiran 9.

Foto Alat ...................................................................................... Manual Book ................................................................................. Data sheet ATMEL 89C51 ...........................................................

65 67 72 76 80 81 82 83

Lampiran 10. Data sheet SN74LS14 ................................................................... Lampiran 11. Data sheet 2SA733 ........................................................................ Lampiran 12. Data Sheet 2SC 828 ....................................................................... Lampiran 13. Data Sheet Seven Segment ........................................................... Lampiran 14. Data Sheet LM7805 ......................................................................

16

BAB I PENDAHULUAN

A.

Latar Belakang Masalah Di dalam suatu kegiatan khususnya yang berada di dalam suatu ruangan yang melibatkan banyak pengunjung yang harus diperhatikan adalah kapasitas di dalam ruangan tersebut dimana diharapkan banyaknya pengunjung yang masuk dapat terkendali. Seperti kegiatan persidangan, umumnya pengunjung yang berkepentingan langsung masuk ke dalam ruang tersebut tanpa mengetahui ruang tersebut sudah penuh atau belum, jika pada ruang tersebut masih ada sisa kursi maka hal tersebut tidak masalah tapi jika ruangan tersebut sudah penuh maka akan akan membuat kondisi orang didalam ruangan tersebut tidak nyaman.

17

Begitu juga pada pertunjukan hiburan biasanya penjaga kurang memperhatikan kapasitas ruangan dengan jumlah pengunjung yang masuk, sehingga menyebabkan ruang tersebut kelebihan pengunjung. Berdasarkan uraian diatas, penerapan alat penghitung jumlah pengunjung ruang pertunjukan diharapkan bisa membantu mengatasi hal tersebut sehingga dapat memberikan kenyamanan dan keselamatan pengunjung yang berada di dalam ruang pertunjukan. Alat penghitung jumlah pengunjung ini juga dapat di aplikasikan untuk keperluan umum atau industri yang membutuhkan suatu kapasitas/volume tertentu, seperti contohnya untuk mengetahui suatu kapasitas jumlah pengunjung di Gedung olah raga, juga dapat digunakan untuk mengetahui jumlah kapasitas volume dari suatu benda yang berada dalam suatu tempat/ruangan, dan masih banyak lagi.

B.

Rumusan Masalah Dari latar belakang masalah yang telah diuraikan diatas maka, permasalahan pengembangan sistem minimum yang akan dibuat dapat dirumuskan sebagai berikut: 1. Bagaimana merancang dan membuat rangkaian hardware yang meliputi rangkaian minimum mikrokontroler, rangkaian sensor, rangkaian penampil dan buzzer dapat difungsikan sebagai penghitung pengunjung ruang pertunjukan.

18

2. Bagaimana merancang dan membuat software dalam mengendalikan sistem minimum mikrokontroler AT89C51 supaya alat dapat bekerja secara otomatis. 3. Bagaimana mengetahui unjuk kerja alat penghitung yang akan dibuat tersebut, apakah kerjanya sesuai dengan yang direncanakan.

C.

Batasan Masalah Pada pengembangan sistem ini akan dibatasi pada perancangan sistem yang telah dirakit terdiri dari hardware dan software. Hardware meliputi rangkaian minimum mikrokontroler AT89C51, rangkaian sensor menggunakan LDR, rangkaian penampil menggunakan seven segment dan rangkaian buzzer. Software adalah program yang digunakan HB2000 untuk mengendalikan sistem yang telah dibuat. Alat ini hanya digunakan pada ruangan yang mempunyai kapasitas maksimal dua ratus limapuluh lima pengunjung dan satu pintu masuk dan satu pintu keluar yang terpisah dengan menghitung jumlah pengunjung satu persatu.

D.

Tujuan

19

Tujuan pembuatan alat penghitung jumlah pengunjung ruang pertunjukan berbasis mikrokontroler AT89C51 ini adalah: 1. Membuat suatu rangkaian untuk menghitung dan mengendalikan jumlah pengunjung pada suatu ruang pertunjukan dengan mikrokontroler AT89C51 2. Membuat rangkaian software dan hardware yang meliputi rangkaian minimum mikrokontroler, rangkaian sensor, rangkaian penampil dan buzzer, yang digunakan sebagai alat penghitung pengunjung ruang pertunjukan yang dapat diaplikasikan untuk meringankan beban kerja manusia. 3. Memberikan sumbangsih kepada masyarakat berupa alat simulasi dengan menggunakan mikrokontroler AT89C51.

E.

Manfaat Dengan dibuatnya alat penghitung pengunjung ruang pertunjukan ini akan bermanfaat bagi: 1. Pembuat, Sebagai penambah wawasan dan sumber ide serta motivasi untuk melakukan pembuatan alat yang lebih sempurna. 2. Masyarakat,

20

Dengan dibuatnya alat ini dapat menambah kenyamanan dan keamanan pengunjung ruang pertunjukan dan diharapkan tujuan pengunjung dapat tercapai dengan kenyamanan yang didapat. 3. Gedung Pertunjukan, Petugas dapat mengontrol jumlah pengunjung yang masuk ke dalam ruang sehingga pengunjung memperoleh kenyamanan dan keamanan didalam ruangan tersebut. 4. Pendidikan, Memberikan konstribusi penghitung pengunjung ruang pertunjukan sebagai bahan informasi peralatan penghitung pengunjung ruang pertunjukan berbasis mikrokontroler AT89C51.

F.

Sistematika Laporan Tugas Akhir Sistematika tugas akhir ini terdiri dari 3 bagian, yaitu: 1. Bagian Awal Terdiri dari: a. Halaman Judul b. Halaman Abstrak

21

c. Halaman Pengesahan d. Motto dan Persembahan e. Kata Pengantar f. Halaman Daftar Isi g. Halaman Daftar Gambar h. Halaman Daftar Tabel i. Halaman Daftar Lampiran

2. Bagian Isi Terdiri dari: a. BAB I (Pendahuluan) yang terdiri dari: Latar Belakang, Rumusan Sistematika Laporan Tugas Akhir. b. BAB II (Isi) yang terdiri dari: Landasan Teori dan Perancangan (Metodelogi Rancang Bangun secara urut metode tersebut adalah sebagai berikut: identifikasi kebutuhan, analisis kebutuhan, perancangan hardware dan software, spesifikasi alat, pembuatan, pengujian dan pembahasan). Masalah, Batasan Masalah, Tujuan, Manfaat dan

22

c. BAB III. (Penutup) yang terdiri dari : Kesimpulan dan Saran.

23

BAB II ISI

A.

Landasan Teori 1. Perangkat Keras Mikrokontroler AT89C51 Mikrokontroler AT89C51 memiliki PEROM (Programable Erasable Read Only Memory) didalamnya. Mikrokontroler 89C51 memiliki sejumlah perlengkapan antara lain adalah sebagai berikut: a. Kompatible dengan produk MCS-51 b. 4K byte Flash Perom yang dapat diprogram ulang. c. Osilator internal dan rangkaian pewaktu. d. 128 x 8-bit RAM internal. e. Empat buah programmable port I/O. Masing-masing terdiri atas 8 buah jalur I/O ( 32 programable i/O lines).

24

f. Enam buah sumber interupsi (2 buah interupsi eksternal dan 4 buah interupsi internal). g. Sebuah port serial dengan control serial full duplex UART. h. Kemampuan melaksanakan operasi perkalian, pembagian dan operasi Boolean (bit). i. Kecepatan melaksanakan instruksi setiap siklus 1 mikrodetik pada frekuensi clock 12 MHZ. j. Kanal serial terprogram. Dengan adanya sejumlah keistimewaan tersebut, maka perakitan alat dengan menggunakan mikrokontroler 89C51 menjadi lebih sederhana dan tidak memerlukan IC pendukung yang banyak. Boleh dikatakan bahwa mikrokontroler Atmel 89C51 ini mempunyai keistimewaan dari segi perangkat keras. Adapun blok diagram dari mikrokontroler 89C51 ditunjukan pada Gambar 1.
P0.0-P0.7 VCC PORT 0 DRIVERS GND PORT 2 DRIVERS P2.0-P2.7

RAM ADDR REGISTER

RAM

P0 LATCH

P2 LATCH

FLASH

B REGISTER

ACC

STACK POINTER

PROGRAM ADRESS REGISTER

TMP2

TMP1

BUFFER

25
PC INCREMETER

ALU
INT, SERIAL

Gambar 1. Blok Diagram Mikrokontroler 89C51


(Sumber : Data Sheet AT89C51)

26

a. Kaki-kaki Mikrokontroler AT89C51 Susunan kaki-kaki mikrokontroler AT89C51 ditunjukkan pada Gambar 2. Penjelasan dari masing-masing pin adalah sebagai berikut : 1) Kaki 1 sampai 8 ( port 1)merupakan port pararel 8 bit dua arah (bidirectional) yang dapat digunakan untuk berbagai keperluan (general purpose). 2) Kaki 9 (reset) adalah masukan reset (aktif tinggi). Pulsa transisi dari rendah ke tinggi akan me-reset 89C51. Kaki ini dihubungkan dengan rangkaian power reset. 3) Kaki 10 sampai 17 (port3) adalah port pararel 8 bit dua arah yang mempunyai fungsi pengganti. Fungsi pengganti meliputi TxD (Transmisi Data), RD (Receive Data), Int 0 ( Interrupt 0). Int 1 (interrupt 1), T0 (Timer 0), T1 (Timer 1),WR (Write), dan RD (Read). Bila fungsi pengganti tidak dipakai, kaki-kaki ini dapat digunakan sebagai port pararel 8 bit serbaguna. 4) Kaki 18 (Xtal 2) adalah kaki keluaran ke rangkaian osilator internal. Kaki dipakai bila menggunakan osilator kristal. 5) Kaki 19.(Xtal 1) adalah kaki masukan ke rangkaian osilator internal. Sebuah osilator kristal atau sumber osilator luar dapat digunakan.

27

6) Kaki 20 (Ground) dihubungkan ke Vss atau ground. 7) Kaki 21 sampai 28 (port 2) adalah port pararel 2 (P2) selebar 8 bit dua arah (bidirectional). Port 2 ini mengirimlan byte alamat bila dilakukan pengaksesan memori eksternal. 8) Kaki 29 adalah kaki PSEN (program store enable) yang merupakan sinyal pengontrol yang mengijinkan program memori eksternal masuk ke dalam bus selama proses pemberian atau pengambilan instruksi (fetching). 9) Kaki 30 adalah kaki ALE (address latch enable) yang digunakan untuk menahan alamat memori eksternal selama pelaksananaan instruksi. 10) Kaki 31 (EA). Bila kaki ini diberi logika tinggi (H), mikrokontroler akan melaksanakan instruksi dari ROM atau EPROM ketika isi program counter kurang dari 4096. Bila diberi logika rendah (L), mikrokontroler akan melakukan instruksi dari seluruh program luar. 11) Kaki 32 sampai 39 (Port 0), merupakan port pararel 8 bit open drain dua arah. Bila digunakan untuk mengakses memori luar, port ini akan memultipleks alamat memori dengan data. 12) Kaki 40 (Vcc) dihubungkan dengan catu daya (+5 volt).

28

Gambar 2 Susunan Pin Mikrokontroler AT89C51


(Sumber : Data Sheet AT89C51)

b. Kelompok Instruksi AT89C51

29

Tinjauan perangkat lunak dari IC AT89C51 memiliki 256 instruksi, dengan panjang instruksi 1 hingga 4 byte yang dikelompokan dalam 5 bagian yaitu; instruksi transfer data, instruksi logika, dan manipulasi bit, instruksi aritmatika instruksi percabangan dan instruksi control. Berikut ini perangkat-perangkat intruksi yang dimiliki AT89C51 1) Kelompok Instruksi Transfer Data Instruksi untuk memindahkan data antara register-register, memori-memori, antarmuka-register, dan antar muka memori, instruksi-instruksi yang termasuk dalam kelompok ini adalah: Mov Mov Mov Mov Mov Mov Mov @Rr,#data @Rr,A @Rr,alamat data A, #data A, Rr A, alamat data C, alamat bit Mov C A, @A+DPTR Mov C A, @A+PC mov x @ DPTR, A Mov x @ Rr A Mov x A, @ DPTR Mov DPTR, #data Mov alamat1, alamat2

2) Kelompok Instruksi Logika dan Manipulasi Bit Instruksi-instruksi ini melakukan operasi logika AND<OR< XOR< Perbandingan, Pergeseran, dan Komplemen data. Instruksi-instruksi yang termasuk dalam kelompok ini adalah : - ANL alamat data,#data - ANL A, #data

30

ANL alamat data, A CJNE @Rr, # data, alamat kode CJNE A, #data, Alamat kode CPLA CPL C CPL alamat bit

ANL ANL ANL ANL ANL

A,# Rr A,@Rr A, Rr A, alamat data C, alamat bit

3) Instruksi Aritmatika Instruksi ini digunakan untuk melaksanakan program-program yang berkaitan dengan operasi aritmatika. Instruksi aritmatika meliputi operasi penjumlahan, pengurangan, penambahan satu, pengurangan satu, perkalian satu dan pembagian. Instruksi yang termasuk kelompok ini adalah: ADD A, # data ADD A,@ Rr ADD A, Rr ADD A, alamat data ADDC A, @ Rr ADDC A, Rr ADDC A, alamat data DEC A DEC Rr SUBB A, alamat data SUBB A, Rr SUBB, # data MUL AB Inc alamat data Inc Rr INC DPTR INC A DIV AB

4) Kelompok Instruksi Percabangan

31

Dengan instruksi ini program yang sedang dilaksanakan akan melompat ke alamat tertentu. Instruksi percabangan dibedakan atas percabangan bersyarat dan percabangan tanpa syarat. a) Instruksi percabangan bersyarat CJNE @ Rr, data, alamat data CJNE A, #data, alamat kode CJNE A, # alamat data, alamat kode CJNE Rr, # data, alamat kode DJNZ Rr, alamat kode DJNZ alamat data, alamat kode JB alamat bit, alamat kode JC alamat kode JNB alamat bit, alamat kode JNC alamat kode JNZ alamat kode

b) Instruksi Percabangan Tanpa Syarat Call alamat kode ACALL alamat kode LCALL alamat kode JMP alamat kode SJMP alamat kode AJMP alamat kode LJMP alamat kode

32

RET I

5) Kelompok Instruksi Control Instruksi-instruksi ini mengatur penggunaan stack, membaca atau menulis port, serta pengontrolanpengontrolan POP alamat data PUSH alamat data SETBC SETB alamat bit SWAP A XCH A, @Rr XCH A,Rr XCh A,alamat data XCHD A, @Rr Dan untuk lebih jelasnya tentang AT89C51 dapat dilihat pada lampiran. 2. Transistor Sebagai Saklar Transistror merupakan komponen semi konduktor yang dapat digunakan untuk memperkuat sinyal listrik, sebagai saklar elektrik dan fungsi rangkaian lainnya. Pada dasarnya transistor terbuat dari kristal germanium atau silicon yang terdiri dari tiga lapis bahan semi konduktor. Jika transistor mempunyai dua wilayah-n dan satu wilayah-p, dua sambungan akan

33

terbentuk dan dikenal dengan transistor NPN diperlihatkan pada Gambar 3.a Jika transistor mempunyai dua wilayah-p dan satu wilayah-n, dua sambungan akan terbentuk dan dikenal sebagai transistor jenis PNP diperlihatkan pada Gambar 3.b. Transistor bipolar mempunyai tiga buah terminal yang dikenal dengan emitor, basis, dan kolektor.

n p n
Gambar 3.a. Transistor NPN

p n p
Gambar 3.b. Transistor PNP

Dalam penggunaan transistor umumnya terdapat tiga konfigurasi sambungan transistor yaitu common colektor, common base, common emitor. Transistor NPN secara umum digunakan dengan aplikasi sebagai saklar. 3. Tranduser Tranduser merupakan sebuah piranti yang mengubah energi dari bentuk satu ke bentuk lain (Petruzella, 2001). Dalam bidang elektronika, tranduser adalah piranti yang dipakai dalam sebuah sebuah sitem untuk mengubah energi

34

masukan menjadi energi listrik atau sebaliknya untuk memberikan isyarat kecil guna menggerakkan sistem atau memberi umpan balik pengendalian (Loveday,1992). Tranduser sangat penting karena masukan pada sebagian instrumentasi bukan besaran listrik. Transduser merupakan elemen masukan yang fungsi kritisnya adalah mengubah besaran fisis menjadi sinyal listrik yang sebanding. Dengan demikian pemilihan transduser yang sesuai merupakan langkah pertama dan paling penting dalam mendapatkan hasil yang teliti (WD cooper, 1994). Sedangkan pengertian sensor menurut (petruzella 2001), adalah alat yang digunakan untuk mendeteksi. Sensor merupakan jenis transduser yang digunakan untuk mengubah variasi mekanis, magnetis, panas, sinar dan kimia menjadi tegangan dan arus listrik.

4. Dioda Laser Dioda Laser merupakan piranti pengubah energi listrik kebentuk cahaya berupa sinar laser. Dioda laser adalah led yang dibuat khusus untuk dapat beroperasi sebagai sinar laser. Laser singkatan dari Light Amplification by Stimulated

35

Emission of Radiation (penguatan sinar dengan emisi radiasi yang distimulasi). Tidak seperti LED, dioda laser memilki lubang optis yang diperlukan untuk produksi laser. Lubang optis dibentuk dengan pelapisan sisi yang berlawanan dari chip untuk menghasilkan dua permukaan penampilan yang tinggi. Seperti LED, dioda laser adalah sambungan PN yang pada level arus tertentu akan memancarkan cahaya. Cahaya yang teremisi dipantulkan maju dan mundur secara internal antara dua permukaan pemantul. Pemantulan maju dan mundur gelombang cahaya menyebabkan intensitas untuk memperkuat dan membangkitkan. Akibatnya adalah sorotan tunggal yang sangat cemerlang dipancarkan dari sambungan (Petruzella, 2001). Pada laser pointer cahaya ditembakkan pada lensa cembung dan dikeluarkan pada lensa cekung, maka cahaya akan terfokus dan membentuk suatu titik. Laser pointer menghasilkan panjang gelombang sekitar 630-680mm dan maksimal output < 1mW dengan sumber tiga buah batu baterai 1,5V LR44.

5. IC 74LS14 Schimit Triggers

36

IC 74LS14 merupakan IC TTL yang terdiri dari 6 Buah gerbang not schimit triggers. Fungsi dari IC 74LS14 adalah sebagai pembalik dan pemantap untuk mendeteksi taraf dan membentuk kembali pulsa-pulsa yang buruk. + 13 12 11 10 9 8

gnd

Gambar 4. Simbol gerbang logika NOT dan konfigurasi IC TTL 74LS14 Tabel 1. Tabel kebenaran gerbang logika NOT X 0 1 6. Sensor Cahaya (LDR) X 1 0

37

LDR dibuat dari cadmium sulfida yaitu bahan semikonduktor yang resistansinya berubah menurut besarnya cahaya yang jatuh padanya. Resistansi LDR sekitar 10 megaohm ditempat gelap dan ditempat terang resistansinya turun menjadi 150 ohm. Gelap Terang resistansi tinggi. resistansi rendah.

Gambar 5. Fisik LDR

7.

Penampil Sevent Segment

38

Gambar 6. Sevent Segment Common Anoda

Sevent Segment merupakan penampil yang terdiri dari tujuh buah led sebagai pembentuk karakter dan satu led untuk nyala titik (point). Setiap led akan menyala jika diberikan bias maju (forward bias), yaitu tegangan anda lebih positif dari katoda. Pada sevent segment common anoda untuk menyalakan setiap led supaya membentuk suatu karakter pada katoda digroundkan sedangkan pada anoda jadi satu dan diberi tegangan sumber. 8. Rangkaian Buzzer

39

Pada rangkaian ini menggunakan transistor sebagai saklar yang mendapat input dari P0.4 mikrokontroler. Dengan memasang transistor jenis PNP dengan tegangan VCC sebesar 5V, maka saat Basis mendapat logika 0 arus dari colektor menuju emitor yang terhubung dengan buzzer. 9. Perangkat Lunak Suatu mikrokontroler tidak akan dapat bekerja tanpa adanya perangkat lunak (software). Perangkat lunak ini dibuat dalam bentuk program yang didalamnya terdapat instruksi-instruksi yang disusun sesuai dengan urutan kerja yang harus dilaksanakan oleh mikrokontroler. Untuk dapat merancang program mikrokontroler, ada beberapa langkah yang harus diikuti, yaitu: a. Menentukan algoritma program Algoritma program adalah penentuan langkah demi langkah dari suatu urutan operasi yang akan memecahkan masalah. Algoritma program dinyatakan dalam bentuk bahasa sederhana. b. Diagram alir ( Flowchart)

40

Diagram alir adalah suatu simbol dari pengurutan operasi yang terdapat dalam algorima program. Pada diagram alir terdapat gambaran secara menyeluruh tentang pengorganisasian logika-logika dari suatu perangkat lunak, yang menunjukan urutan pelaksanaan program dari awal sampai akhir. c. Penyusunan Program Program disusun menggunakan kode bahasa mesin (assembly). Setelah program selesai kita ketik menggunakan software KEIL U-VISION under windows atau dengan editor lain yang serupa dan sesuai dengan logika-logika dari flowchart yang telah dibuat selanjutnya kita simpan dengan format .A51. Untuk dapat didownload kedalam

mikrokontroler file yang kita simpan dalam format .A51 kita ubah menjadi format .hex. d. Penyimpanan program ke dalam mikrokontroler Penyimpanan program atau proses download program ke dalam mikrokontroler adalah dengan menggunakan software EZ-uploader jika menggunakan saluran serial pada komputer atau Matrik jika menggunakan saluran pararel. Selanjutnya program dengan format .hex dapat ditransfer ke dalam mikrokontroler.

B.

Perancangan

41

Untuk dapat membuat alat Penghitung jumlah Pengunjung Ruang Pertunjukan Berbasis Mikrokontroler AT89C51 digunakan metode rancang bangun. Secara urut metode tersebut adalah sebagai berikut : identifikasi kebutuhan, analisis kebutuhan, perancangan hardware dan software, spesifikasi alat, pembuatan, pengujian dan pembahasan. 1. Identifikasi Kebutuhan Beberapa pertimbangan yang menjadi dasar pembuatan alat Penghitung jumlah Pengunjung Ruang Pertunjukan Berbasis Mikrokontroler AT89C51 adalah sebagai berikut. a. Alat dapat digunakan untuk menghitung jumlah pengunjung ruang pertunjukan secara otomatis dan ditampilkan pada display sevent segment pada ruangan yang mempunyai satu pintu masuk dan satu pintu keluar. b. Nilai pembatas dapat diset dan disesuaikan dengan kapasitas ruangan, jika pengunjung melebihi nilai pembatas maka alat akan memberikan tanda pada display akan tertampil tulisan full dan membunyikan buzzer. c. Alat dapat diterapkan pada ruang seminar, ruang sidang dan gedung bioskop dengan kapasitas maksimal 255 pengunjung. d. Mudah dalam pengoperasian dan perawatan tanpa ketrampilan khusus. 2. Analisa Kebutuhan

42

Berdasarkan penjelasan identifikasi kebutuhan yang telah disebutkan diatas, Penghitung jumlah Pengunjung Ruang Pertunjukan Berbasis Mikrokontroler AT89C51 dibutuhkan: a. Rangkaian sensor yang dapat mendeteksi pengunjung yang masuk dan keluar pada ruang pertunjukan. b. Switch push button yang terdiri atas: 1) Push button 1 untuk memasukan nilai satuan 2) Push button 2 untuk memasukan nilai puluhan 3) Push button 3 untuk memasukan nilai ratusan 4) Push button 4 sebagai tombol ENTER jika jika nilai pembatas yang kita masukan sudah sesuai. 5) Push button 5 sebagai tombol RESET . c. Rangkaian sistem minimum AT89C51 sebagai pengolah data masukan dari Switch push button, dan rangkaian sensor. Selanjutnya data tersebut diolah dan ditampilkan pada display sevent segment, serta dapat membunyikan buzzer. d. Rangkaian penampil sevent segment yang terdiri 4 digit sevent segment, yang dapat menampilkan angka 0-9 pada setiap digit segment dan angka maksimal 255 serta tulisan full sebagai indikator ruangan penuh. e. Rangkaian buzzer sebagai tanda ruangan penuh.

43

3. Perancangan Alat a. Perancangan Hardware Secara garis besar blok rangkaian Penghitung jumlah pengunjung ruang pertunjukan berbasis mikrokontroler AT98C51 ditunjukkan pada gambar berikut ini

LASER

SENSOR MASUK

PENAMPIL

PUSH BUTTON LASER SENSOR KELUAR

SISTEM MINIMUM MIKROKONTROLER

BUZZER

Gambar 7. Blok Diagram Rancangan Alat 1) Sistem Minimum Mikrokontroler AT89C51 Perancangan sitem minimum memiliki spesifikasi sebagai berikut:

44

a) Dapat menerima dan mengolah masukan dari sensor. b) Dapat menampilkan hasil masukan dari sensor pada sevent segment. c) Dapat memberikan sinyal untuk membunyikan suara pada buzzer Alasan menggunakan mikrokontroller AT89C51 karena didalamnya sudah terdapat flash perom yang dapat diprogram sebesar 4 Kbyte, 128 x8 memori internal, mudah didapat dengan harga yang murah dan mudah dalam perakitan dibandingkan mikrokontroler yang lainnya seperti Z-80, atau dengan IC digital. Adapun gambar sistem minimum tersebut adalah sebagai berikut :
AT89C51

1 2 3 4

39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8

P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 XTAL1 XTAL2 RST EA/VPP 5v

P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INTO P3.3/INT1 P3.4/TO P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG

21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30

a b c d e f g p

30pf

12 MHZ

19 18 9 31 SW1

30pf

1 reset

2 +

10u/16V

8k2

45

Gambar 8. Sistem Minimum Mikrokontroler AT89C51

Pada rangkaian menggunakan kristal 12MHz sebagai pembangkit clock dan kapasitor 30pF supaya kristal dapat bekerja. Kristal yang digunakan sangat berpengaruh pada kecepatan eksekusi pada mikrokontroler jika menggunakan kristal 12MHz maka setiap eksekusi memerlukan waktu 1mikrodetik.

2) Penampil Sevent Segment

46

P0.0 P0.1 P0.2 P0.3

Gambar 9. Rancangan Penampil Seven Segment Untuk tampilan digunakan sevent segment common anoda. Digunakan sevent segment karena sevent segment mudah didapat dan dengan harga yang murah di pasaran dibandingkan dengan penampil yang lain ( LCD, LED dot matrik). Selain itu dalam pembuatan alat ini sevent segment hanya digunakan untuk menampilkan angka 0-9 pada setiap digit dan tulisan FULL. Port 2 dihubungkan dengan Resistor 220 ohm sebagai pembatas arus supaya arus setelah melewati led segment tidak langsung terhubung kaki mikrokontroler port 2 yang digunakan sebagai driver sevent segment. Keluaran dari resistor tersebut dihubungkan dengan pin a, b, c, d, e, f, g, p (point) pada sevent segment yang

47

merupakan kaki katoda. Keluaran Port 0 pin 0-3 diberi resistor pull-up 10k pada tegangan 5V. Hal ini dikarenakan hanya pada port0 saja yang tidak terdapat resistor pul-up sedangkan pada port yang lainnya sudah terdapat didalam kemasan (internal) maka jika menggunakan port0 maka harus memasang resistor pull-up. P0 0-3 dihubungkan dengan transistor PNP A733 sebagai saklar. Pin emitor pada transistor dihubungkan pada tegangan sumber 5V, pin kolektor dihubungkan ke anoda sevent segment dan basis dipasang seri dengan resistor 1k ohm sebagai pembatas arus yang dihubungkan pada port0. Supaya transistor on maka tegangan emitor harus lebih positif dari tegangan basis. 3) Rangkaian buzzer Rangkaian penggerak buzzer ini menggunakan transistor A733 sebagai saklar yang mendapat input dari P0.4 Transistor Bekerja jika tegangan emitor lebih positif dari tegangan basis Ve>Vb dengan cara memberi logika 0 pada P0.4 maka transistor akan bekerja atau saklar tertutup dan arus dari emitor akan menuju kolektor yang terhubung dengan buzzer menyebakan buzzer 12 Volt berbunyi. Sedangkan resistor 1k ohm digunakan sebagai pembatas arus bocor dari emitor supaya tidak terhubung langsung dengan mikrokontroler. Adapun gambar rancangan penggerak buzzer adalah sebagai berikut

48

Gambar 10. Rancangan Rangkaian Buzzer 4) Rangkaian Push Button Rangkaian Push button digunakan untuk memasukan angka pembatas satuanset pada P1.0, puluhanset pada P1.1, ratusanset pada P1.2, dan tombol ENTER pada P1.3. Pada rangkaian ini push button berfungsi memberikan logika 0 pada input masukan tombol dengan cara menghubungkan ke ground saat saklar ditekan, dan saat saklar dilepas maka pin masukan tombol tetap berlogika 1.
satuanset puluhanset ratusanset Enter

Gambar 11. Rancangan Rangkaian Push Button

49

5) Rangkaian Sensor Rangkaian sensor menggunakan LDR yang mampu merespon segala macam cahaya. Digunakan LDR karena luas penampang LDR lebih besar dibandingkan dengan menggunakan phototransistor. Rangkaian LDR menggunakan transistor NPN C828 yang disusun menjadi rangkaian bias pembagi tegangan. Adapun gambar rangkaian sebagai berikut :

Gambar 12. Rancangan Rangkaian Sensor

50

Rangkaian ini bekerja dengan perbangdingan RB antara R2 dan R1, jika R2 < R1 maka arus terhubung ground. Dan jika R1< R2 maka arus akan menuju ke basis transistor menyebabkan transistor hidup dan tegangan 5V akan terhubung ground karena transistor melewatkan arus dari colektor ke emitor menuju ground. Jika Transistor mati seolah-olah menjadi hambatan yang besar sehingga tegangan dari sumber akan menuju IC. Tegangan out put tersebut dimantapkan oleh IC 7414 sebagai pembalik logika dan pemantap Jika tegangan keluaran dari transistor sekitar 0,13V -2,4 V maka tegangan tersebut oleh IC 7414 dianggap sebagai logika 0, dan jika tegangan sekitar 2,56V sampai 5V dianggap sebagai logika 1. Output keluaran dari IC 7414 dihubungkan dengan pin INT pada mikrokontroler sebagai masukan sensor. Pada alat ini rangkaian sensor ada dua buah yaitu sensor pintu masuk yang dihubungkan dengan pin INT0 pada mikrokontroler dan sensor pintu keluar yang terhubung dengan pin INT1 pada mikrokontroler. 6) Catu Daya

Gambar 13. Rancangan Rangkaian Power Suplay

51

Supaya alat dapat bekerja harus diberi tegangan sumber sebesar 5Vdc. Rangkaian catudaya menggunakan transfomator 500mA dan pada keluaran 6Vac dipasang empat buah dioda 1ampere yang disusun menjadi jembatan wheatstone sebagai penyearah gelombang dan mengubah tegangan ac menjadi dc. Untuk memperoleh tegangan yang setabil maka dipasang IC LM7805 sebagai penyetabil tegangan 5Vdc, IC ini memiliki ketahanan arus normal maksimal sebesar 1 ampere. Pada keluaran IC dipasang capasitor sebesar 10uF/16V dan 0,1uF sebagai filter tegangan AC dari transformator.

b. Perancangan Software

52

Dalam perancangan mikrokontroler diperlukan software untuk menjalankannya. Software atau sering disebut dengan perangkat lunak digunakan memberikan langkah-langkah yang harus dilakukan CPU. Bahasa yang digunakan adalah untuk memprogram mikrokontroler adalah bahasa assembly. Program yang akan dirancang dalam hal ini adalah membuat sistem penghitung jumlah pengunjung ruang pertunjukan. Hasil cacahan tersebut kemudian ditampilkan dalam display. Perancangan program mengacu kepada diagram alir (flowchart). Perancangan diagram alir (flowchart) program selengkapnya adalah sebagai berikut :

53

Start

Nolkan Satuanset Nolkan Puluhanset Nolkan Ratusanset

Apakah Tombol 1 ditekan ?

Ya
INC Satuanset

Tidak Tombol 1 = Logika 1

Apakah Satuanset = 9 ?

Tidak

Ya
Nolkan Satuanset

Apakah Tombol 2 ditekan ?

Ya
INC Puluhanset

Tidak Tombol 2 = Logika

Apakah Puluhanset = 99 ?

Tidak

Ya
Nolkan Puluhanset

Apakah Tombol 3 ditekan ?

Ya
INC Ratusanset

Tidak Tombol 3 = Logika

Apakah Ratusanset = 255 ?

Tidak

Ya

54

Nolkan Ratusanset

Satuan + Puluhan + Ratusan hasilnya masukan settung Nolkan Counter

INISIALISASI Int 0 Sensor Masuk Int 1 Sensor Keluar

Tampilkan Counter

Counter = 255 atau Max

FULL Bunyikan Buzzer / Alarm

End

Gambar 14. Flow Chart Penghitung jumlah Pengunjung Ruang Pertunjukan

55

Berdasarkan flowchart dan rancangan perangkat keras seperti telah diterangkan di depan, dapat disusun suatu program. Adapun bagian program selengkapnya dapat dilihat pada lampiran. 4. Spesifikasi Alat a. Dapat menampilkan cacahan jumlah pengunjung yang berada didalam ruangan pertunjukan dan ditampilkan menggunakan sevent segment. b. Kemampuan maksimal cacahan mencapai 255 orang. c. Jika kapasitas ruangan sudah maksimal sesuai pembatas maka buzzer akan berbunyi. d. Pengaturan nilai pembatas dapat dilakukan dengan menekan switch push button. 5. Pembuatan Dalam proses pembuatan alat penghitung jumlah pengunjung ruang pertunjukan ini, diperlukan alat dan bahan sebagai berikut : a. Bahan : 1) System minimum AT89C51

56

2) LDR () 3) Catu daya atau power supply 4) Seven segment 5) Kabel seial 10 pin 6) Programable AT89C51 7) PCB dan Larutan Ferry chlorite (FeCl3) 8) Konektor (Header) 9) Laser Pointer b. Alat : Komponen-komponen sesuai dengan kebutuhan perancangan. 1) Multimeter 2) Solder dan timah 3) Atraktor 4) Loflet

57

5) Pinset 6) Obeng + 7) Bor PCB dan gergaji pemotong 8) Alat sablon Adapun proses pembuatan alat mengikuti langkah-langkah sebagai berikut: 1) Membuat gambar PCB rancangan alat dengan software PCB DESIGNER 2) Mencetak gambar tersebut pada PCB dengan sablon. 3) Melarutkan PCB dengan pelarut (ferichlorid) 4) Mengebor PCB 5) Mengecek jalur PCB 6) Melakukan pengujian komponen yang akan digunakan 7) Merakit komponen pada PCB sesuai dengan gambar rancangan alat 8) Memprogram mikrokontroler dengan downloader tipe serial dengan software u-vision sebagai editor dan ezuploader untuk memasukan program ke IC mikrokontroler.

58

9) Menguji rangkaian secara keseluruhan.

6. Pengujian Pengujian alat ini dilakukan guna mendapatkan data hasil pembuatan alat. Adapun Pengujian yang akan dilakukan meliputi : a. Pengujian per Bagian Pengujian ini dilakukan untuk mengetahui apakah bagian-bagian alat yang telah dibuat telah bekerja sesuai dengan yang direncanakan. Adapun bagian yang akan diuji meliputi : 1) Pengujian Rangkaian Sensor Pengujian rangkaian sensor dilakukan dengan memberikan sumber cahaya sinar laser pada LDR jika Rangkaian sensor merespon dengan baik maka rangkaian sudah sesuai yang direncanakan.

59

Tabel 2. Pengujian Rangkaian Sensor Sensor Logika Tehalang Tidak 2) Pengujian Rangkaian switch push button Pengujian rangkaian push button dilakukan dengan memasukkan program scanning tombol ke dalam mikrokontroler. Scaning tombol dilakukan pada port 1.0 sampai p1.3. Pada P1.0 jika ditekan akan menambah nilai 1-9 pada sevent segment satuan, P1.1 akan menambah nilai 1-9 pada sevent segment puluhan, P1.2 akan menambah nilai 1-2 pada sevent segment ratusan dan dibatasi sampai 2 angka karena maksimal nilai hanya sampai 255, dan P1.3 untuk tombol ENTER jika ditekan akan melompat ke program counter dan program scan tombol ditinggalkan.. Adapun data untuk scanning tombol adalah seperti pada tabel 1. berikut : Tabel 3.a. Data Scanning Tombol Satuan Tombol satuan/P1.0 Ditekan display 1x Output Tegangan

60

2x 3x 4x 5x 6x 7x 8x 9x 10x

Tabel 3.b. Data Scanning Tombol Puluhan Tombol puluhan/P1.1 Ditekan display 1x 2x 3x 4x 5x 6x 7x 8x 9x 10x

61

Tabel 3.c. Data Scanning Tombol Ratusan Tombol ratusan/P1.2 Ditekan display 1x 2x 3x 4x 5x 6x Tabel 3.d. Data Scanning Tombol Enter Tombol Enter/P1.2 Ditekan display 1x 2x 3) Pengujian Rangkaian Penampil

62

Pengujian rangkaian penampil ini dilakukan dengan memberikan masukan pada rangkaian penampil, karena sevent segment yang digunakan common anoda untuk menyalakan dengan memberi logika 0 pada masukan segment sedangkan pada common kita aktifkan dengan memberi logika 0 pada port 0 supaya transistor aktif sehingga tegangan vcc terhubung common, untuk diketahui keluarannya. Adapun data hasil pengujian diperlihatkan pada tabel berikut :

Tabel 4.a. Data Pengujian Rangkaian Penampil Tampilan Angka 7/p 1 1 1 1 1 1 1 1 1 1 Masukan segment ( data keluaran P2) dalam biner 6/g 5/f 4/e 3/d 2/c 1/b 0/a 1 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

63

1 1 1

0 1 1

0 0 0

0 0 0

1 0 0

1 0 1

1 0 1

0 1 1

Untuk mengecek bahwa kedelapan seven segment yang akan diaktifkan digunakan port 0 yang terhubung dengan common seven segment. Seven segment ini adalah aktif low. Dalam hal ini input berlogika 0. Tabel data pemilihan seven segment yang aktif adalah sebagai berikut : Tabel 4.b. Pemilihan penyalaan seven segment P0.0 1 1 1 0 P0.1 1 1 0 1 P0.2 1 0 1 1 P0.3 0 1 1 1 Segment yang nyala

4) Pengujian Sistem Mikrokontroler AT89C51 Pengujian rangkaian sistem mikrokontroler AT89C51 dilakukan dengan memberikan tegangan sumber 5Vdc dan program sederhana. Apabila sistem mampu menjalankannya, maka sistem dinyatakan telah sesuai dengan rencana.

64

5) Pengujian Alat Pengujian alat ini dilakukan setelah semua bagian-bagian alat ini dapat bekerja sesuai dengan rencana. Dengan memasukkan program keseluruhan menggunakan Emulator, dan memasang IC kedalam rangkaian maka dapat dilakukan pengujian menggunakan tabel berikut ini: Tabel 5.a. Pengujian alat dengan nilai pembatas 3 desimal Tombol Sensor Display Buzzer Nilai Setting Ratusan Puluhan Satuan enter Masuk Keluar 3x 1x 1 1 1 1 1 1 1 Tombol Ratusan Puluhan Satuan enter Sensor Display Buzzer Nilai Setting Masuk Keluar 003 003set Tabel 5.b. Pengujiana alat dengan nilai pembatas maksimal 225 desimal

65

Tombol Ratusan Puluhan Satuan enter 2x 5x 5x 1x

Sensor Display Buzzer Nilai Setting Masuk Keluar 255 255set 1 1 1 1 1 1 1 1 1 1 1 1 1 : : : : 255

7. Pembahasan

66

Pada pengujian Penghitung jumlah Pengunjung Ruang Pertunjukan Berbasis Mikrokontroler ini telah memperoleh hasil berupa data. Data yang telah diperoleh selanjutnya akan disajikan secara ringkas dalam diskripsi data dan dibahas dalam pembahasan. a. Diskripsi Data Hasil Pengujian Alat 1) Data Hasil Pengujian Rangkaian Sensor Pengujian dilakukan dengan memberikan sumber cahaya sinar laser pada penampang LDR. Saat tidak terhalang output keluaran rangkaian berlogika 1 dan saat terhalang output rangkaian berlogika 0. Hasil pengujian tersebut akan diperlihatkan pada tabel berikut : Tabel 6. Hasil Pengujian Rangkaian Sensor Sensor Terhalang Tidak Logika 0 1 Output Tegangan 0.13VDC 4.85VDC

2) Data Hasil Pengujian Rangkaian switch push button

67

Pengujian rangkaian switch push button dilakukan dengan memberikan program scanning tombol ke dalam mikrokontroler. Sistem scanning ini dilakukan dengan mendeteksi logika pin pada port1 secara bergantian. Hasil pengujian tersebut akan diperlihatkan pada tabel program scaning tombol berikut : Tabel 7.a. Data Hasil Scanning Tombol Satuan Tombol satuan/P1.0 Ditekan display 1x 001 2x 002 3x 003 4x 004 5x 005 6x 006 7x 007 8x 008 9x 009 10x 000

Tombol puluhan/P1.1

68

Ditekan Tabel 7.b. Data Hasil Scanning Tombol Puluhan 1x 2x 3x 4x 5x 6x 7x 8x 9x 10x

display 010 020 030 040 050 060 070 080 090 000

Tabel 7.c. Data Hasil Scanning Tombol Ratusan Tombol ratusan/P1.2 Ditekan display 1x 100 2x 200 3x 000 4x 100 5x 200 6x 000

69

Tabel 7.d. Data Hasil Scanning Tombol Enter Tombol Enter/P1.2 Ditekan display 1x 000 2x Tidak berpengaruh Scaning tombol dapat dilakukan secara acak, dan setelah penekanan pada tombol enter maka semua tombol tidak berfungsi kecuali tombol reset karena tombol ini tidak ada dipengaruhi oleh program melainkan terhubung langsung dengan rangkaian reset. 3) Data Hasil Pengujian Rangkaian Penampil Pengujian dilakukan dengan memberikan sinyal input sehingga data masukan yang berupa data biner tersebut dapat menghasilkan angka maupun penampil. Data biner tersebut dikeluarkan melalui port2 yang terhubung sevensegment. Adapun hasil pengujian tersebut dapat dilihat pada tabel berikut: Tabel 8.a. Hasil pengujian rangkaian penampil Tampilan Angka 7/p 1 0 Masukan segment ( data keluaran P2) dalam biner 6/g 5/f 4/e 3/d 2/c 1/b 0/a 1 0 0 0 0 0 0

70

1 2 3 4 5 6 7 8 9 F U L

1 1 1 1 1 1 1 1 1 1 1 1

1 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 Sedangkan untuk mengecek ke delapan seven segment maka dapat diaktifkan port 0 yang terhubung common

seven segment. Masukan common adalah aktif low atau aktif rendah. Adapun hasil pengujian dapat dilihat pada tabel berikut : Tabel 8.b. Data Hasil Pemilihan penyalaan seven segment P0.3 1 1 1 0 P0.2 P0.1 P0.0 0 1 1 1 Segment yang nyala Segment 1 Segment 2 Segment 3 Segment 4

1 1 1 0 0 1 1 1 4) Data Pengujian Secara Keseluruhan

71

Pengujian rangkaian secara keseluruhan dilakukan dengan merangkai keseluruhan rangkaian yang terdiri atas switch push button, rangkaian mikrokontroler, penampil dan rangkaian buzzer. Setelah IC mikrokontroler diisi program maka dengan demikian, hasil pengujian rangkaian keseluruhan dapat berfungsi seperti pada table berikut : Tabel 9.a. Hasil pengujian rangkaian dengan nilai pembatas 3. Tombol Sensor Ratusan Puluhan Satuan enter Masuk Keluar 3x 1x 1 1 1 1 1 1 1 Tombol Sensor Ratusan Puluhan Satuan enter Masuk Keluar 2x 5x 5x 1x 1 1 1 1 Display Buzzer 003 000 001 000 001 002 Full 002 Full Display 255 000 001 002 003 002 Mati Mati Mati Mati Mati Mati Bunyi Mati Bunyi Buzzer Mati Mati Mati Mati Mati Mati Nilai Setting 003 003set

Tabel 9.b. Hasil nilai pembatas

Pengujian dengan maksimal 255.

Nilai Setting 255 255set

72

Tombol Ratusan Puluhan Satuan enter

Sensor Display Masuk Keluar 1 003 1 004 1 005 1 006 1 007 1 008 1 009 1 010 1 011 : : : : : : 255 Full

Buzzer Mati Mati Mati Mati Mati Mati Mati Mati Mati : : : Bunyi

Nilai Setting

b. Pembahasan Perangkat Keras (hardware) Pada pengujian perangkat keras yang meliputi pengujian rangkaian switch push button, rangkaian penampil dan rangkaian secara keseluruhan diatas akan dibahas untuk menjawab rumusan masalah. Pengujian switch push button dengan memberikan logika 1 pada port 1 dan jika switch push button ditekan maka port 1 tersebut terhubung ground dan berlogika 0.

73

Data pengujian rangkaian penampil seven segment menunjukkan bahwa data telah sesuai rencana. Pengujian rangkaian penampil ini dilakukan dengan cara dengan memberi logika 0 untuk menyalakan dan pemilih segment. Untuk pengujian nyala led segment pada port 0 diberikan logika 0, sedangkan pada port 2 kita beri data sesuai karakter yang kita inginkan, untuk menyalakan seven segment maka pada port 2 diberi logika 0. Pada bagian suara dengan memberikan logika 0 pada port 0.4 maka pada speaker akan mengeluarkan suara sebagai indikator jumlah cacahan penuh. c. Pembahasan Perangkat Lunak (software) Perancangan alat berbasis mikrokontroler tidak dapat bekerja sesuai dengan yang diharapkan tanpa adanya perangkat lunak yang membuat mikrokontroler tersebut bekerja. Oleh karena itu selanjutnya akan dibahas perangkat lunak yang dibuat guna menjawab rumusan masalah di muka. Perangkat lunak yang dibuat mengacu pada diagram alir (flowchart) seperti pada lampiran. Perangkat lunak (program) tersebut terdiri dari beberapa bagian. Program diawali dengan program utama dan beberapa program subrutin. Adapun selanjutnya akan dibahs program-program tersebut menjadi beberapa bagian. 1) Origin (org)

74

Perintah ini dipakai untuk meletakan program pada suatu lokasi memori tertentu.
Org 0h Jmp Main Org 03h Jmp IncCounting Org 13h Jmp DecCounting ; Lokasi memori pada 0h ; Lompat ke label main ; Lokasi memori untuk pelayanan INT0 ; Lompat ke label IncCounting ; Lokasi memori untuk pelayanan INT1 ; Lompat ke label DecCounting

2) Program Equ (Equate) Program Equ digunakan untuk mendefisinisikan suatu nama/label yang menunjuk suatu lokasi memori 1 byte terdiri 8 bit. Program dapat dilihat sebagai berikut:
Kode Counting Setting SatuanSet PuluhanSet RatusanSet Equ Equ Equ Equ Equ Equ 20h 22h 23h 24h 25h 26h ; ; ; ; ; ; Memberi label Kode pada lokasi memori 20h Memberi label Counting pada lokasi memori 22h Memberi label Setting pada lokasi memori 23h Memberi label SatuanSet pada lokasi memori 24h Memberi label PuluhanSet pada lokasi memori 25h Memberi label RatusanSet pada lokasi memori 26h

3) Subrutin Scan_Tombol Subrutin scan tombol digunakan untuk memeriksa apakah tombol dalam keadaan ditekan atau tidak. Tombol_1: JB JnB InC P1.0,Tombol_2 P1.0,$ SatuanSet ; Jika P1.0 berlogika1 lompat tombol_2 ; Jika P1.0 berlogika 0 tunggu ; Isi SatuanSet ditambah 1

75

Mov A,SatuanSet ; Isi data SatuanSet disimpan ke Acc CJNE A,#10,Tombol_4 ; Bandingkan Acc dengan 10 jika tidak sama lompat ke label Tombol_4 Mov SatuanSet,#0 ; Isi data SatuanSet dengan 0 Tombol_2: JB P1.1,Tombol_3 ; Jika P1.1 berlogika 1 lompat tombol_3 JnB P1.1,$ ; Jika P1.1 berlogika 0 tunggu InC PuluhanSet ; Isi PuluhanSet ditambah 1 Mov A,PuluhanSet ; Isi data PuluhanSet disimpan ke Acc CJNE A,#10,Tombol_4 ; Bandingkan Acc dengan 10 jika tidak sama lompat ke label Tombol_4 Mov PuluhanSet,#0 ; Isi data PuluhanSet dengan 0 Tombol_3: JB P1.2,Tombol_4 ; Jika P1.2 berlogika 1 lompat Tombol_4 JnB P1.2,$ ; Jika P1.2 berlogika 0 tunggu InC RatusanSet ; Isi RatusanSet ditambah 1 Mov A,RatusanSet ; Isi data PuluhanSet disimpan ke Acc CJNE A,#3,Tombol_4 ; Bandingkan Acc dengan 3 jika tidak sama lompat ke label Tombol_4 Mov RatusanSet,#0 ; Isi data PuluhanSet dengan 0 Tombol_4: JB P1.3,TampilDulu ; Jika P1.3 berlogika 1 lompat TampilDulu JnB P1.3,$ ; Jika P1.3 berlogika 0 tunggu Call Akan_diRun ; Panggil Subrutin Akan_diRun Jmp TampilKan ; Lompat ke label Tampilkan TampilDulu: Call TampilRatusan ; Panggil Subrutin TampilRatusan Call TampilBlank ; Panggil Subrutin TampilBlank Call TampilPuluhan ; Panggil Subrutin TampilPuluhan Call TampilBlank ; Panggil Subrutin TampilBlank Call TampilSatuan ; Panggil Subrutin TampilSatuan Call TampilBlank ; Panggil Subrutin TampilBlank Jmp Tombol_1 ; Lompat ke Label Tombol_1

76

4) Subrutin Display Subrutin Display bertugas mengolah data nilai satuan, puluhan dan ratusan menjadi data penyalaan seven segment.
TampilRatusan: Mov Mov Mov Call Ret TampilPuluhan: Mov Call Mov Mov Call Ret TampilSatuan: Mov Call Mov Mov Call Ret BitSegment: Mov MovC Ret A,RatusanSet ; Data di RatusanSet disimpan ke Accumulator Call BitSegment ; Panggil

Subrutin demgan label bitsegment


P2,A ; Isi data pada Accumulator dikeluarkan ke P2 P0,#11111011b ; Data 11111011b dikeluarkan ke P0 Delay ; Panggil Subrutin Delay

; Akhir Subrutin
A,PuluhanSet ; Data di PuluhanSet disimpan ke Accumulator BitSegment ; Panggil Subrutin demgan label bitsegment P2,A ; Isi data pada Accumulator dikeluarkan ke P2 P0,#11111101b ; Data 11111101b dikeluarkan ke P0 Delay ; Panggil Subrutin Delay

; Akhir Subrutin
A,SatuanSet ; Data di SatuanSet disimpan ke Accumulator BitSegment ; Panggil Subrutin demgan label bitsegment P2,A ; Isi data pada Accumulator dikeluarkan ke P2 P0,#11111110b ; Data 11111110b dikeluarkan ke P0 Delay ; Panggil Subrutin Delay

; Akhir Subrutin
DPTR,#TabelBitSegment ; DPTR diisi alamat TabelBitSegment A,@A+DPTR ;Data yang ditunjuk A adalah alamat DPTR+dataA

; Akhir Subrutin
;dotgfedcba
DB 11000000b ;0

TabelBitSegment:

77

DB DB DB DB DB DB DB DB DB End

11111001b 10100100b 10110000b 10011001b 10010010b 10000010b 11111000b 10000000b 10010000b

;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8 ;9

5) Inisialisasi counter Subrutin ini berfungsi menyimpan nilai setting, dan sebagai INISIALISASI INT0 dan INT1. Akan_diRun : Mov Mov Mul Mov Mov Mov Mul Add Add Counting,#0 ;Alamat dg label counting diisi data 0 Mov A,RatusanSet ;IsiData di

RatusanSet disimpan ke Acc

B,#100 ; Data 100 desimal disimpan ke B AB ; Data A dikalikan data B RatusanSet,A;Hasil kali AB disimpan diRatusanSet A,PuluhanSet;IsiData di PuluhanSet disimpan ke Acc B,#10 ; Data 10 desimal disimpan ke B AB ; Data A dikalikan data B A,SatuanSet ;Isi data A ditambah data diSatuanSet A,RatusanSet;Isi data A ditambah data diRatusanSet

78

Mov Mov Mov Mov SetB SetB SetB SetB SetB SetB Ret

Setting,A ; Isi data A dissmpan di Setting RatusanSet,#0 ; RatusanSet diisi data 0 PuluhanSet,#0 ; PuluhanSet diisi data 0 SatuanSet,#0 ; SatuanSet diisi data 0 Kode.0 ; Bitkan kode.0 IT0 ; Aktifkan INT0 EX0 ; Aktifkan External INT0 IT1 ; Aktifkan INT1 EX1 ; Aktifkan External INT1 EA ; Aktifkan semua ; Akhir Subrutin

6) Subrutin tampilan counter Subrutin ini bertugas mengolah isi data counter supaya dapat ditampilkan berupa data penyalaan led. TampilKan: Mov Mov Div Mov Mov Mov Div Mov Mov Mov
Call

A,Counting B,#100 AB RatusanSet,A A,B B,#10 AB PuluhanSet,A SatuanSet,B R4,#255


TampilRatusan TampilBlank

; Isi data Counting disimpan ke Acc ; Isi B dengan data 100 desimal ; Isi data A dibagi isi data B ; Hasil di Acc disimpan di RatusanSet ; Isi data B disimpan ke A ; Isi B dengan data 10 desimal ; Isi data A dibagi isi data B ; Hasil di Acc disimpan di PuluhanSet ; Sisanya simpan di SatuanSet ; Isi register 4 dengan data 255 desimal
; panggil Subrutin TampilRatusan ; panggil Subrutin Blank

UlangTampil: Call

79

Call Call Call Call

TampilPuluhan TampilBlank TampilSatuan TampilBlank

; panggil Subrutin TampilPuluhan ; panggil Subrutin Blank ; panggil Subrutin Tampilsatuan ; panggil Subrutin Blank

DJNZ R4,UlangTampil;R4-1 jika belum 0 lompat ke UlangTampil JB Kode.1,Blank_0 ; Kode1=bit lompat ke Blonk_0 Jmp TampilKan ; Lompat ke label Tampilkan 7) Subrutin Tampil Full Subrutin ini bertugas menampilkan tulisan FULL dan isi COUNTER Jika nilai Counter sesuai setting Blank_0: Mov UlangBlank: Call DJNZ TampilFull: Mov UlangFull: Mov Mov Call Call Mov Mov Call Call Mov Mov Call Call Mov R5,#255 ; Isi R5 dengan data 255 desimal Delay ; Panggil subrutin Delay R5,UlangBlank;R5 -1 jika belum 0 lompat label UlangBlank R4,#255 ; Isi R4 dengan data 255 desimal P2,#10001110b ; Keluarkan data huruf F ke P2 P0,#11100111b ; Keluarkan data 11100111b ke P0 Delay ; Panggil subrutin Delay TampilBlank ; Panggil subrutin TampilBlank P2,#11000001b ; Keluarkan data huruf U ke P2 P0,#11101011b ; Keluarkan data 11101011b ke P0 Delay ; Panggil subrutin Delay TampilBlank ; Panggil subrutin TampilBlank P2,#11000111b ; Keluarkan data huruf L ke P2 P0,#11101101b ; Keluarkan data 11101101b ke P0 Delay ; Panggil subrutin Delay TampilBlank ; Panggil subrutin TampilBlank P2,#11000111b ; Keluarkan data huruf L ke P2

80

Mov Call Call DJNZ TampilBlank: Mov Mov Call Ret

P0,#11101110b ; Keluarkan data 11101110b ke P0 Delay ; Panggil subrutin Delay TampilBlank ; Panggil subrutin TampilBlank R4,UlangFull;Kurangi R4 jika belum 0 lompat keUlangFull P2,#11111111b ; Keluarkan data angka 0 ke P2 P0,#11110000b ; Keluarkan data 11101110b ke P0 DelayBlank ; Panggil subrutin DelayBlank ; Akhir Subrutin

8) Subrutin counter Subrutin Counter digunakan untuk pelayanan External Interupsi dari sensor. Subrutin IncCounting melayani interupsi sensor pintu masuk, dan DecCounting melayani interupsi sensor pintu keluar. IncCounting: Inc Push Mov Clr Subb JC SetB Counting Acc A,Counting C A,Setting BelumSet Kode.1 ; Isi Counting ditambah 1 ; Isi Acc disimpan dulu ; Isi data di Counting disimpan ke Acc ; Bersihkan isi C ; Isi Acc dikurangi isi setting ; Jika ada Carry lompat ke label BelumSet ; Bitkan Kode.1

81

Clr BelumSet: Pop RetI DecCounting: Push Mov CJNE Mov Jmp Dec JnB

BukanNol: RetIKan:

Clr SetB BelumFULL: Pop RetI

; Matikan External INT0 ; Isi data Acc dikeluarkan lagi ; akhir subrutin Interupsi Acc ; Isi Acc disimpan dulu A,Counting ; Isi data di Counting disimpan ke Acc A,#0,BukanNol; Bandingkan isi data Acc jika bukan 0 Lompat ke label BukanNol Counting,#0 ; Isi data 0 pada Counting RetIKan ; lumpat ke label RetIKan Counting ; Isi Ounting dikurangi 1 Kode.1,BelumFULL;Jika kode.1 tadak Bit lompat kelabel BelumFULL Kode.1 ; Kosongkan isi kode.1 EX0 ; Aktifkan External INT0 Acc ; Keluarkan isi Acc ; Akhir Subrutin Interupsi

EX0 Acc

9) Subrutin Delay Subrutin Display berfungsi menahan program sampai eksekusi rutin delay selesai. Mov DJNZ Ret DelayBlank: Mov DJNZ Ret Delay: R7,#200 ; Isi register7 dengan 200 desimal R7,$ ; Kurangi 1 Register7 jika belum nol tunggu ; Akhir Subrutin R7,#50 ; Isi register7 dengan 50 desimal R7,$ ; Kurangi 1 Register7 jika belum nol tunggu ; Akhir Subrutin

82

83

BAB III PENUTUP

A.

KESIMPULAN Dari hasil pengamatan dan percobaan yang telah dibuat maka dapat ditarik kesimpulan : 1 Perancangan dan pembuatan hardware penghitung jumlah pengunjung ruang pertunjukan berbasis mikrokontroler AT89C51 telah dilakukan. Bagian-bagian alat yang telah dibuat terdiri dari : (a) rangkaian switch push button, (b) rangkaian sistem minimum mikrokontroler AT89C51, (c) rangkaian penampil 4 buah seven segment dan (d) rangkaian buzzer

84

2 Pembuatan software telah dilakukan dan mampu mengendalikan kerja dari mikrokontroler sebagai penghitung jumlah pengunjung ruang pertunjukan, tetapi untuk pengesetan puluhan masih ada kelemahan karena program masih kurang sempurna. 3 Kemampuan alat secara keseluruhan telah diuji dan menunjukan hasil yang tidak sesuai dengan direncanakan karena terjadi peloncatan angka karena adanya pengaruh induksi kabel rangkian penampil dengan rangkaian sensor karena tidak adanya kabel ground.. Setelah alat dirapikan dan diberi kabel ground alat dapat menghitung dengan baik, tidak ada lagi peloncatan angka. Alat belum mampu menampilkan jumlah cacahan maksimal 255 desimal karena masih program puluhanset tidak dapat disetting karena masih adanya keterbatasan kemampuan pada pembuatan programnya. Dapat mengeluarkan suara lewat buzzer jika cacahan penuh sesuai yang direncanakan. 4 Alasan penggunaan laser pointer pada alat ini karena pada laser pointer menghasilkan panjang gelombang sekitar 630680mm dan maksimal output < 1mW dengan sumber tiga buah batu baterai 1,5V LR44. Karena tiga buah baterai cepat habis energinya maka diganti dengan menggunakan tiga buah batery AA 1,5 V dengan Amper kecil sehingga aman digunakan untuk laser pointer. Kalau diambil dari catu daya yang ada pada Rangkaian catu daya tegangannya terlalu besar bisa merusak laser pointernya.

85

B.

Keterbatasan Alat 1 Kemampuan maksimal alat hanya dapat mencacah 255 pengunjung. 2 Alat hanya mampu bekerja terbatas pada satu pintu masuk dan pintu keluar 3 Pada pengesetan puluhan masih ada masalah karena program belum bisa diperbaiki/ masih kurang sempurna. 4 Bentuk penampil yang kecil sehingga harus dilihat dari jarak dekat. 5 Penampil dalam ukuran kecil sehingga untuk jarak jauh tidak terbaca atau kurang jelas.

C.

Saran-saran 1 Penambahan kapasitas jumlah cacahan dibuat lebih dari 255. 2 Penyempurnaan program pada puluhanset harus dilakukan umtuk penyempurnaan alat supaya alat dapat bekerja dengan baik. 3 Penambahan jumlah sensor untuk digunakan pada ruangan yang mempunyai lebih dari 1 pintu masuk dan 1 pintu keluar dengan memanfaatkan fasilitas timer pada IC mikrokontroler AT89C51.

86

4 Penampil dibuat dalam ukuran besar sehingga pembacaanya lebih mudah dan jelas. 5 Selalu membaca atau memperhatikan data sheet yang ada, karena kesalahan penyambungan antara V+, Out dan GND sangat berpengaruh besar, bahkan jika terjadi kesalahan maka sensor akan mati atau tidak dapat menghitung secara akurat. Hal ini pernah terjadi karena tidak adanya kabel GND pada rangkaian sensor perhitungan jadi kurang akurat, terjadi peloncatan angka hal ini terjadi karena adanya induksi yang mempengaruhi kerja sensor menjadi tidak akurat.

87

DAFTAR PUSTAKA

Atmel 2001, 8-Bit. Mikrokontroler With 4K Bytes Flash. URL. http://atmel/acrobat/doc.0265.pdf Budiarto, Widodo. 2004. Interfacing Komputer dan Mikrokontroler. Jakarta: PT.Elex Media Komputindo Kelompok Gramedia. Frank Petruzella. 2001. Elektronika Industri. Yogyakarta: Andi Offset. Nalwan, Paulus Andi. 2003. Panduan Praktis Teknik Antarmuka dan Pemograman Mikrokontroler AT89C51. Jakarta: PT.Elex Media Komputindo Kelompok Gramedia.

88

Putra, Agfianto Eko. 2002. Belajar Mikrokontroler AT89C51/52/55 Teori dan Aplikasi. Yogyakarta: Gava Media. Susanto. Desember 2004. Transistor jenis PNP. http://philips.com/datasheet/transistor.htm Susanto. Desember 2004. Aplikasi Rangkaian Buzzer . http://semiconductor.com/rangkaian/buzzer.htm

89

90

+5V

phone line J1 18 U3 MT8870 INVREF IN+ 2 4 1 3 8 X2 7 3,579645 MHz D3 DIODE ZENER R8 R7 98,3k 95,1k D2 Phone Line C9 0,1uF 1 2

17

C17

0,1uF +5V R6 390K 16

St/GT

U2 21 SP+ SPJ5 C15 1 2 C16 HEADER 2 R2 C4 + +5V R1 1K 28 16 + C3 22uF C2 0,1uF C1 0,1uF +VCC 470K 19 4,7uF AGC 0,1uF 17 18 MIC MICREF 0,1uF 14 15 ANAOUT SP+ SP-

ISD25120 31 ANAIN A0/M0 A1/M1 A2/M2 A3/M3 A4/M4 A5/M5 A6/M6 A7 A8 A9 AUXIN PD CE P/R OVF EOM XCLK 40 20 1 2 3 4 5 6 7 8 9 10 11 24 23 27 22 25 26 C5 +5V RST 30pF C7 + C6 X1 12MHz 10uF R3 10K 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 19 18 9 U1 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 29 30 P3.0 P3.2 P3.5 15 10 11 12 13 14

EST GS StD TOE Q1 Q2 Q3 Q4 OSC1 VSS D1 LED 9 +5V OSC2

EA/VPP

P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7

VCC

P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15

MOSI MISO SCK 30pF

P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4/SS P1.5/MOSI P1.6/MISO P1.7/SCK XTAL1 XTAL2 RST AT89S53 GND

P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD PSEN ALE/PROG

VCC GND AGND

20

12 13

P3.0

R4

RB

Q1 BC547

phone line R5 RE DIODE BRIDGE +5V D4 + 1 J2 P

D5 12 V 1 R9 2

U4 6 5 4 4N35 R10 R P3.2

Gambar 1. Sistem Minimum Alat Penghitung Jumlah Pengunjung Ruang Pertunjukan Berbasis Mikrokontroler AT89C51

91

VDD

C8 0,1uF

+5V

SP+

6 1 8

C10

0,1uF R11 100K 2 3

LM386 C13 5 + LS1 4 7

SP-

C11

0,1uF

Gambar 2. Rangkaian Buzzer

J6 DIODE BRIDGE IN GND 1 2 D7 + + Trafo C18 1000uF U6 1 LM7805 OUT 3 + C19 2200uF +5V

IN

Gambar 3. Rangkaian Catu Daya

+5V +5V 14 U3A 2

Q2 PHOTO NPN Q4 NPN BCE R2 5K6 R4 100

C20 1000uF

GND

U7 1

Gambar 4. Rangkaian Sensor

+ U5 220uF C14 0,047uF R12 10 SPEAKER C12 0,1uF


LM7812 OUT 3 + C21 2200uF +12V

Masuk masuk Sensor

/ keluar

74LS14

xcii

10 9 8 7 6

10 9 8 7 6

10 9 8 7 6

10 9 8 7 6

HEADER 16

D2 TIL309

D3 TIL309

D4 TIL309

D5 TIL309

RN2 9 10 11 12 13 14 15 16 5 6 7 8 RN3

220 8 7 6 5 4 3 2 1 4 3 2 1 1K

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

J3

A733 Q6

A733 Q7

A733 Q8

A733 Q9

Gambar 5. Rangkaian Penampil Seven Segment

xciii

Kode Counting Setting SatuanSet PuluhanSet RatusanSet Org Jmp Org Jmp Org Jmp

Equ Equ Equ Equ Equ Equ

20h ; Memberi label Kode pada lokasi memori 20h 22h ; Memberi label Counting pada lokasi memori 22h 23h ; Memberi label Setting pada lokasi memori 23h 24h ; Memberi label SatuanSet pada lokasi memori 24h 25h ; Memberi label PuluhanSet pada lokasi memori 25h 26h ; Memberi label RatusanSet pada lokasi memori 26h ; Lokasi memori pada 0h ; lompat ke label main ; Lokasi memori untuk pelayanan INT0 ; Lompat ke label IncCounting ; Lokasi memori untuk pelayanan INT1 ; Lompat ke label DecCounting

0h Main 03h IncCounting 13h DecCounting

Org 50h Main: Mov Kode,#0 Mov RatusanSet,#0 Mov PuluhanSet,#0 Mov SatuanSet,#0 Jmp Tombol_1 ;------------------------- rutin counter -------------------------------------IncCounting: Inc Counting ; Isi Counting ditambah 1 Push Acc ; Isi Acc disimpan dulu Mov A,Counting ; Isi data di Counting disimpan ke Acc Clr C ; Bersihkan isi C Subb A,Setting ; Isi Acc dikurangi isi setting JC BelumSet ; Jika ada Carry lompat ke label BelumSet SetB Kode.1 ; Bitkan Kode.1 Clr EX0 ; Matikan External INT0 BelumSet: Pop Acc ; Isi data Acc dikeluarkan lagi RetI ; akhir subrutin Interupsi DecCounting: Push Acc ; Isi Acc disimpan dulu Mov A,Counting ; Isi data di Counting disimpan ke Acc CJNE A,#0,BukanNol; Bandingkan isi data Acc jika bukan 0 Lompat ke label BukanNol Mov Counting,#0 ; Isi data 0 pada Counting Jmp RetIKan ; lumpat ke label RetIKan BukanNol: Dec Counting ; Isi Ounting dikurangi 1 RetIKan: JnB Kode.1,BelumFULL;Jika kode.1 tadak Bit lompat kelabel BelumFULL Clr Kode.1 ; Kosongkan isi kode.1 SetB EX0 ; Aktifkan External INT0 BelumFULL: Pop Acc ; Keluarkan isi Acc RetI ; Akhi Subrutin Interupsi

;-------------------------- Rutin Scan tombol----------------------------------Tombol_1: JB P1.0,Tombol_2 ; Jika P1.0 berlogika1 lompat tombol_2 JnB P1.0,$ ; Jika P1.0 berlogika 0 tunggu InC SatuanSet ; Isi SatuanSet ditambah 1

xciv

Mov A,SatuanSet ; Isi data SatuanSet disimpan ke Acc CJNE A,#10,Tombol_4 ; Bandingkan Acc dengan 10 jika tidak sama lompat ke label Tombol_4 Mov SatuanSet,#0 ; Isi data SatuanSet dengan 0 Tombol_2: JB P1.1,Tombol_3 ; Jika P1.1 berlogika 1 lompat tombol_3 JnB P1.1,$ ; Jika P1.1 berlogika 0 tunggu InC PuluhanSet ; Isi PuluhanSet ditambah 1 Mov A,PuluhanSet ; Isi data PuluhanSet disimpan ke Acc CJNE A,#10,Tombol_4 ; Bandingkan Acc dengan 10 jika tidak sama lompat ke label Tombol_4 Mov PuluhanSet,#0 ; Isi data PuluhanSet dengan 0 Tombol_3: JB P1.2,Tombol_4 ; Jika P1.2 berlogika 1 lompat Tombol_4 JnB P1.2,$ ; Jika P1.2 berlogika 0 tunggu InC RatusanSet ; Isi RatusanSet ditambah 1 Mov A,RatusanSet ; Isi data PuluhanSet disimpan ke Acc CJNE A,#3,Tombol_4 ; Bandingkan Acc dengan 3 jika tidak sama lompat ke label Tombol_4 Mov RatusanSet,#0 ; Isi data PuluhanSet dengan 0 Tombol_4: JB P1.3,TampilDulu;Jika P1.3 berlogika 1 lompat TampilDulu JnB P1.3,$ ; Jika P1.3 berlogika 0 tunggu Call Akan_diRun ; Panggil Subrutin Akan_diRun Jmp TampilKan ; Lompat ke label Tampilkan TampilDulu: Call TampilRatusan ; Panggil Subrutin TampilRatusan Call TampilBlank ; Panggil Subrutin TampilBlank Call TampilPuluhan ; Panggil Subrutin TampilPuluhan Call TampilBlank ; Panggil Subrutin TampilBlank Call TampilSatuan ; Panggil Subrutin TampilSatuan Call TampilBlank ; Panggil Subrutin TampilBlank Jmp Tombol_1 ; Lompat ke Label Tombol_1 ;------------------------ Rutin Tampilan------------------------------------TampilKan: Mov A,Counting ; Isi data Counting disimpan ke Acc Mov B,#100 ; Isi B dengan data 100 desimal Div AB ; Isi data A dibagi isi data B Mov RatusanSet,A ; Hasil di Acc disimpan di RatusanSet Mov A,B ; Isi data B disimpan ke A Mov B,#10 ; Isi B dengan data 10 desimal Div AB ; Isi data A dibagi isi data B Mov PuluhanSet,A ; Hasil di Acc disimpan di PuluhanSet Mov SatuanSet,B ; Sisanya simpan di SatuanSet Mov R4,#255 ; Isi register 4 dengan data 255 desimal UlangTampil: Call TampilRatusan ; panggil Subrutin TampilRatusan
Call Call Call Call Call TampilBlank ; panggil Subrutin Blank TampilPuluhan ; panggil Subrutin TampilPuluhan TampilBlank ; panggil Subrutin Blank TampilSatuan ; panggil Subrutin Tampilsatuan TampilBlank ; panggil Subrutin Blank

DJNZ R4,UlangTampil;R4-1 jika belum 0 lompat ke UlangTampil JB Kode.1,Blank_0 ; Kode1=bit lompat ke Blonk_0 Jmp TampilKan ; Lompat ke label Tampilkan ;-------------------------------------------------------------

xcv

Blank_0: UlangBlank:

Mov R5,#255 Call Delay Call Delay Call Delay DJNZ R5,UlangBlank ;---------------------------Rutin Tulisan Full---------------------------------Blank_0: Mov R5,#255 ; Isi R5 dengan data 255 desimal UlangBlank: Call Delay ; Panggil subrutin Delay DJNZ R5,UlangBlank;R5 -1 jika belum 0 lompat label UlangBlank TampilFull: Mov R4,#255 ; Isi R4 dengan data 255 desimal UlangFull: Mov P2,#10001110b ; Keluarkan data huruf F ke P2 Mov P0,#11100111b ; Keluarkan data 11100111b ke P0 Call Delay ; Panggil subrutin Delay Call TampilBlank ; Panggil subrutin TampilBlank Mov P2,#11000001b ; Keluarkan data huruf U ke P2 Mov P0,#11101011b ; Keluarkan data 11101011b ke P0 Call Delay ; Panggil subrutin Delay Call TampilBlank ; Panggil subrutin TampilBlank Mov P2,#11000111b ; Keluarkan data huruf L ke P2 Mov P0,#11101101b ; Keluarkan data 11101101b ke P0 Call Delay ; Panggil subrutin Delay Call TampilBlank ; Panggil subrutin TampilBlank Mov P2,#11000111b ; Keluarkan data huruf L ke P2 Mov P0,#11101110b ; Keluarkan data 11101110b ke P0 Call Delay ; Panggil subrutin Delay Call TampilBlank ; Panggil subrutin TampilBlank DJNZ R4,UlangFull;Kurangi R4 jika belum 0 lompat keUlangFull TampilBlank: Mov P2,#11111111b ; Keluarkan data angka 0 ke P2 Mov P0,#11110000b ; Keluarkan data 11101110b ke P0 Call DelayBlank ; Panggil subrutin DelayBlank Ret ; Akhir Subrutin ;------------------------------------------------------------Mov R5,#255 UlangBlank_1: Call Delay Call Delay Call Delay DJNZ R5,UlangBlank_1 Jmp TampilKan ;------------------------------------------------------------TampilRatusan: Mov Call Mov Mov Call Ret TampilPuluhan: Mov Call Mov Mov Call Ret A,RatusanSet ; Data di RatusanSet disimpan ke Accumulator BitSegment ; Panggil Subrutin demgan label bitsegment P2,A ; Isi data pada Accumulator dikeluarkan ke P2 P0,#11111011b ; Data 11111011b dikeluarkan ke P0 Delay ; Panggil Subrutin Delay

; Akhir Subrutin
A,PuluhanSet ; Data di PuluhanSet disimpan ke Accumulator BitSegment ; Panggil Subrutin demgan label bitsegment P2,A ; Isi data pada Accumulator dikeluarkan ke P2 P0,#11111101b ; Data 11111101b dikeluarkan ke P0 Delay ; Panggil Subrutin Delay

; Akhir Subrutin xcvi

TampilSatuan: Mov Call Mov Mov Call Ret

A,SatuanSet ; Data di SatuanSet disimpan ke Accumulator BitSegment ; Panggil Subrutin demgan label bitsegment P2,A ; Isi data pada Accumulator dikeluarkan ke P2 P0,#11111110b ; Data 11111110b dikeluarkan ke P0 Delay ; Panggil Subrutin Delay

; Akhir Subrutin

;--------------------------Rutin Inisialisasi Counter----------Akan_diRun : Mov Counting,#0 ;Alamat dg label counting diisi data 0 Mov A,RatusanSet ;IsiData di RatusanSet disimpan ke Acc Mov B,#100 ; Data 100 desimal disimpan ke B Mul AB ; Data A dikalikan data B Mov RatusanSet,A;Hasil kali AB disimpan diRatusanSet Mov A,PuluhanSet;IsiData di PuluhanSet disimpan ke Acc Mov B,#10 ; Data 10 desimal disimpan ke B Mul AB ; Data A dikalikan data B Add A,SatuanSet ;Isi data A ditambah data diSatuanSet Add A,RatusanSet;Isi data A ditambah data diRatusanSet Mov Setting,A ; Isi data A dissmpan di Setting Mov RatusanSet,#0 ; RatusanSet diisi data 0 Mov PuluhanSet,#0 ; PuluhanSet diisi data 0 Mov SatuanSet,#0 ; SatuanSet diisi data 0 SetB Kode.0 ; Bitkan kode.0 SetB IT0 ; Aktifkan INT0 SetB EX0 ; Aktifkan External INT0 SetB IT1 ; Aktifkan INT1 SetB EX1 ; Aktifkan External INT1 SetB EA ; Aktifkan semua Ret ; Akhir Subrutin ;---------------------------Rutin Delay---------------------------Delay: Mov R7,#200 ; Isi register7 dengan 200 desimal DJNZ R7,$ ; Kurangi 1 Register7 jika belum nol tunggu Ret ; Akhir Subrutin DelayBlank: Mov R7,#50 ; Isi register7 dengan 50 desimal DJNZ R7,$ ; Kurangi 1 Register7 jika belum nol tunggu Ret ; Akhir Subrutin ;--------------------------Rutin data ledegment ----------------Mov DPTR,#TabelBitSegment ; DPTR diisi alamat TabelBitSegment MovC A,@A+DPTR ;Data yang ditunjuk A adalah alamat DPTR+dataA Ret ; Akhir Subrutin ;dotgfedcba TabelBitSegment: DB 11000000b ;0
DB DB DB DB DB DB DB DB 11111001b 10100100b 10110000b 10011001b 10010010b 10000010b 11111000b 10000000b ;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8

BitSegment:

xcvii

DB End

10010000b start

;9

xcviii

MANUAL BOOK
PENGHITUNG JUMLAH PENGUNJUNG RUANG PERTUNJUKAN BERBASIS MIKROKONTROLER AT89C51

1. TAMPILAN ----------------------------------- 2
- DEPAN - BELAKANG - UKURAN

2. INSTAL KABEL ----------------------------- 3


- SENSOR LDR - KABEL AC220V

3. PETUNJUK PEMAKAIAN --------------- 4

TAMPILAN

DEPAN
xcix

Push button Enter untuk menyimpan nilai seting dan mengaktifkan sensor Push button Ratusan untuk memasukan nilai seting ratusan Push button Puluhan untuk memasukan nilai seting puluhan Push button Satuan untuk memasukan nilai seting satuan Push button Reset untuk mengulang program dari awal

Saklar Power

Display 4 x digit seven segment untuk menampilkan nilai seting dan nilai counter

BELAKANG

Konektor kabel AC220volt/50Hz Buzzer 12 volt

Konektor sensor keluar Konektor sensor masuk

UKURAN

8,5 CM

23 CM

25 CM

INSTAL KABEL

PLN AC220V/50H

Rangkaian Sensor

PETUNJUK PEMAKAIAN

ci

1. Pasang

sensor

dan

kabel

AC220v. Pancarkan sinar laser ke sensor dengan menekan saklar tuas pada rangkaian sensor.

2. Hidupkan alat dengan menekan saklar power.

3. Masukan nilai setting dengan menekan push button Satuan, Puluhan, dan Ratusan. Maksimal nilai Setting 255

Ratusan

Puluhan

Satuan

4. Setelah nilai setting ditentukan, untuk menyimpan nilai setting dan mengaktifkan sensor tekan push button Enter. 5. Jumlah melewati pengunjung sensor yang akan

Enter

ditampilkan pada display VISUAL

6. Jika jumlah pengunjung sudah sesuai dengan nilai setting maka alat akan menampilkan tulisan FULL dan membunyikan Buzzer

cii

7. Untuk mengulangi dari awal lagi, tekan reset maka program akan kembali ke awal.

Reset
ciii

Anda mungkin juga menyukai