TUGAS AKHIR PENGHITUNG KOMPONEN CHIP BERBASIS MIKROKONTROLLER AT89C51 Diajukan Guna Melengkapi Sebagian Syarat Dalam mencapai gelar Sarjana Strata Satu (S1)
Disusun Oleh : Nama NIM Jurusan Peminatan Pembimbing
: Bowo Winarso : 0140311-115 : Teknik Elektro : Elektronika : Ir. Eko Ihsanto, M.Eng
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2007
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini,
Nama N.I.M Fakultas Jurusan Peminatan Judul Skripsi
: Bowo Winarso : 0140311-115 : Teknologi Industri : Teknik Elektro : Elektronika : PENGHITUNG KOMPONEN CHIP BERBASIS MIKROKONTROLLER AT89C51
Dengan ini menyatakan bahwa hasil penulisan Skripsi yang telah saya buat ini merupakan hasil karya sendiri dan benar keasliannya. Apabila ternyata di kemudian hari penulisan Skripsi ini merupakan hasil plagiat atau penjiplakan
terhadap
karya
mempertanggungjawabkan
orang
sekaligus
lain,
maka
bersedia
saya
menerima
bersedia sanksi
berdasarkan aturan tata tertib di Universitas Mercu Buana.
Demikian, pernyataan ini saya buat dalam keadaan sadar dan tidak dipaksakan.
Jakarta, Agustus 2007 Penulis
( Bowo Winarso )
LEMBAR PENGESAHAN
PENGHITUNG KOMPONEN CHIP BERBASIS MIKROKONTROLLER AT89C51 Diajukan Guna Melengkapi Sebagian Syarat Dalam mencapai gelar Sarjana Strata Satu (S1) Disusun Oleh : Nama NIM Program Studi Peminatan
: Bowo Winarso : 0140311-115 : Teknik Elektro : Elektronika
Disetujui oleh : Pembimbing
Koordinator TA
( Ir. Eko Ihsanto, M.Eng )
( Ir. Yudhi Gunardi, MT )
Mengetahui, Ketua Jurusan Teknik Elektro Universitas Mercu Buana
( Ir. Budi Yanto Husodo, M.Sc )
ABSTRAK
Penggunaan teknologi pada masa sekarang ini sangat di butuhkan pada setiap aspek kehidupan. Untuk mempermudah kegiatan yang dilakukan manusia dibutuhkan alat bantu yang dapat bekerja secara cepat dan juga efisien. Dalam dunia industri elektronika sangat membutuhkan kecepatan dan efisien yang tinggi, termasuk dalam penanganan material produksi. Penanganan material ini berupa pendataan jumlah komponen yang akan dan sudah di pakai dalam produksi. Dalam penanganan material di perlukan alat penghitung yang bisa bekerja secara cepat dan memudahkan dalam proses penghitungan. Oleh karena itu dirancanglah sebuah alat penghitung otomatis agar dapat mempermudah dan melancarkan suatu proses produksi. Komponen yang dihitung disini adalah komponen dari sisa hasil produksi. Sebelum digunakan kembali untuk proses maka terlebih dahulu dihitung agar dapat diprediksi jumlah produksi berikutnya. Model awal sistem yang digunakan adalah Mikrokontroller berjenis AT89C51yang merupakan salah satu jenis mikrokontroller CMOS 8 bit yang memiliki performa yang tinggi dengan pemakaian daya yang rendah. Dan juga memiliki sistem pemrograman kembali flash memori 4 Kbyte dengan daya tahan 1000 kali write/erase.
DAFTAR ISI LEMBAR JUDUL LEMBAR PERNYATAAN KEASLIAN LEMBAR PENGESAHAN ABSTRAK KATA PENGANTAR………………………………………………………….. i DAFTAR ISI……………………………………………………………………. iii DAFTAR TABEL………………………………………………………………. v DAFTAR GAMBAR............................................................................................ vi BAB I
PENDAHULUAN…………………………………………………... 1 1.1 Latar Belakang…………………………………………………… 1 1.2 Tujuan Penulisan…………………………………………………. 3 1.3 Batasan Masalah…………………………………………………. 3 1.4 Metode Penulisan………………………………………………… 3 1.5 Sistematika Penulisan…………………………………………….. 4
BAB II
LANDASAN TERORI……………………………………………… 5 2.1 Mikrokontroller AT89C51……………………………………….. 5 2.1.1 Karakteristik Mikrokontroller AT89C51…………………. 6 2.1.2 Port-Port IC AT89C51……………………………………. 7 2.1.3 RAM,ROM dan Register Dalam AT89C51………………. 11 2.1.4 Timer Pada AT89C51…………………………………….. 16 2.1.5 Mode Pengalamatan………………………………………. 16 2.1.6 Dasar Kerja Program……………………………………… 18 2.2 Tampilan Tujuh Segmen………………………………………….. 20 2.3 Transistor Sebagai Saklar…………………………………………. 22
2.4 Pengantarmukaan Tampilan Tujuh Segmen…………………… 23 2.5 Photomicrosensor……………………………………………… 25 2.6 Inverter Schmitt Trigger 74LS14……………………………… 27 2.7 Single Phase Reversible Motor………………………………... 28 BAB III
PERANCANGAN SISTEM……………………………………... 29 3.1 Blok Diagram Sistem………………………………………….. 29 3.2 Perancangan Perangkat Keras…………………………………. 33 3.2.1 Mikrokontroller AT89C51…………………………….. 34 3.2.1.1 Port Masukan Mikrokontroller AT89C51……... 34 3.2.1.2 Port Keluaran Mikrokontroller AT89C51……... 36 3.2.1.3 Isyarat Pulsa Detak…………………………….. 36 3.2.1.4 Power-On Reset………………………………… 37 3.2.2 Antarmuka Empat Digit Tampilan Tujuh Segmen…….. 37 3.2.3 Motor Pemutar…………………………………………. 38 3.3 Perancangan Perangkat Lunak…………………………………. 39
BAB IV
UJICOBA ALAT………………………………………………….. 40 4.1 Pengujian Pengukuran Sinyal dari Sensor……………………… 40 4.2 Pengujian Hitung Maju dan Hitung Mundur…………………… 41 4.3 Pengujian Penghitungan Komponen……………………………. 43
BAB V
PENUTUP………………………………………………………….. 45 5.1 Kesimpulan……………………………………………………… 45
DAFTAR PUSTAKA........................................................................................... 46 LAMPIRAN LIST PROGRAM LAMPIRAN DATA SHEET LEMBAR ASISTENSI
DAFTAR TABEL
Tabel 2.1 Fungsi port 3 pada AT89C51…………………………………………. 10 Tabel 2.2 Special Function Register (SFR)……………………………………… 16 Tabel 2.3 Tampilan seven segmen………………………………………………. 22 Tabel 3.1 Tabel kebenaran sitem penghitungan…………………………………. 32 Tabel 4.1 hasil pengukuran keluaran sensor……………………………………... 40 Tabel 4.2 pengujian hitung maju dan mundur…………………………………… 42 Tabel 4.3 hasil penghitungan…………………………………………………….. 43
DAFTAR GAMBAR
Gambar 1.1 Bagian umum rancangan system…………………………………. 2 Gambar 2.1 Diagram blok AT89C51………………………………………….. 7 Gambar 2.2 Konfigurasi pin AT89C51………………………………………... 8 Gambar 2.3 Tampilan tujuh segmen Common Anoda………………………… 20 Gambar 2.4 Tampilan tujuh segmen Common Catoda……………………….. 21 Gambar 2.5 Tampilan seven segmen………………………………………….. 21 Gambar 2.6 Karakteristik Transistor sebagai saklar…………………………... 22 Gambar 2.7 Penggerak LED dengan Transistor jenis PNP…………………… 24 Gambar 2.8 Pengantarmukaan empat buah tujuh segmen…………………….. 25 Gambar 2.9 Rangkaian photomicrosensor EE-SX671………………………... 26 Gambar 2.10 konfigurasi kaki-kaki sensor……………………………………. 26 Gambar 2.11 perbandingan bentuk sinyal…………………………………….. 27 Gambar 2.12 Schmitt trigger………………………………………………….. 28 Gambar 2.13 wiring diagram motor untuk putar kiri dan kanan……………… 28 Gambar 3.1 Blok diagram kontrol dan tampilan……………………………… 30 Gambar 3.2 Skema rangkaian lengkap kontrol utama………………………… 33 Gambar 3.3 Skema rangkaian motor pemutar………………………………… 34 Gambar 3.4 Plat pencacah 32 gigi…………………………………………….. 35 Gambar 3.5 masukan sensor ke AT89C51……………………………………. 35 Gambar 3.6 Rangkaian Osilator AT89C51…………………………………… 36 Gambar 3.7 Rangkaian Reset…………………………………………………. 37 Gambar 3.8 diagram alir program…………………………………………….. 39
BAB I PENDAHULUAN
1.1
LATAR BELAKANG Dalam dunia industri khususnya pada bidang perakitan pesawat elektronik
kita pasti mengenal komponen elektronik sebagai bahan bakunya. Komponen tersebut disusun sedemikian rupa pada sebuah papan yang di sebut PCB (Printed Circuit Board). Banyaknya komponen yang terpasang bervariasi tergantung dari jenis rangkaian apa yang sedang dibuat. Semakin kompleks jenis rangkaian yang dibuat maka semakin banyak komponen yang terpasang di PCB. Dahulu pemasangan komponen di lakukan aoleh tenaga manusia. Namun seiring perkembangan teknologi maka sekarang semua pekerjaan tersebut dilakukan oleh tenaga robot. Dahulu semua pesawat elektronika banyak didominasi oleh komponen diskrit (berkaki kawat) sebagai komponen utamanya. Namun sekarang seiring dengan berkembangnya teknologi yang ada maka semua komponen itu bisa tergantikan oleh jenis chip yang mempunyai ukuran lebih kecil namun dengan fungsi yang sama dengan komponen diskrit. Dilihat dari ukuran komponen chip lebih efisien daripada komponen diskrit. Begitu pula bila dilihat dari sisi harga, komponen chip juga lebih murah daripada komponen diskrit. Karena ukurannya yang sangat kecil maka penanganannya juga lebih susah daripada komponen diskrit. Penanganan disini adalah dalam hal penghitungan sisa hasil produksi. Karena bentuknya yang sangat kecil maka perlu prhatian ekstra bila kita menghitung jumlahnya dalam suatu gulungan komponen. Dengan kendalakendala tersebut maka kita memerlukan suatu alat penghitung yang bisa bekerja 1
2
secara cepat dan akurat. Bila kita melakukan penghitungan secara manual biasanya akan terjadi kekurangan atau kelebihan dalam penghitungannya. Karena alasan itulah maka penulis mencoba membuat suatu alat penghitung otomatis sebagai alat bantu yang diharapkan bisa berguna untuk membantu kelancaran suatu proses produksi. Alat tersebut sebenarnya sudah ada di pasaran. Tetapi kita perlu membelinya keluar negeri untuk memperolehnya, dan juga dengan harga yang sangat mahal. Alat penghitung yang dibuat ini adalah sebuah counter yang berbasis mikrokontroller AT89C51 sebagai pengendali utama. Adapun bagian umum dari alat ini adalah seperti yang terdapat pada gambar dibawah ini :
Unit masukan yang berupa dua buah sensor yang mampu menghitung maju dan mundur.
Kontrol utama berupa IC Mikrokontroller AT89C51
Unit keluaran yang berupa tampilan 7 segmen sebagai penunjuk jumlang angka yang telah terhitung.
Gambar 1.1 Bagian umum rancangan system System ini terdiri dari tiga bagian yaitu unit masukan, kontrol utama dan unit keluaran. Unit masukan terdiri dari dua buah sensor yang digunakan sebagai pencacah. Dua sensor tersebut bisa mendeteksi kondisi hitung maju ataupun hitung mundur. Di dalam unit masukan juga terdapat sebuah IC Schmitt trigger yang berfungsi sebagai perata sinyal dari sensor. Selanjutnya dari proses masukan akan masuk kedalam kontrol utama. Di dalam kontrol utama terdapat sebuah IC Mikrokontroller AT89C51 yang berfungsi sebagai pengolah data. Didalam IC dimasukkan sebuah program sebagai kontrolnya. Dari kontrol utama selanjutnya menuju unit keluaran yang berupa penampil 7 segmen sebanyak empet digit angka
3
yang mampu menghitung dari 0 sampai 9999. Tampilan tersebut berupa angka yang telah terhitung di dalam mikrokontroller.
1.2
TUJUAN PENULISAN Tujuan penulisan dari tugas akhir ini adalah untuk membuat suatu alat
penghitung otomatis yang diharapkan bisa membantu suatu proses produksi. Alat penghitung ini sangat di perlukan karena untuk menghindari kesalahan-kesalahan penghitungan yang biasanya dilakukan secara manual. Diharapkan alat ini mampu bekerja secara efisien dan lebih akurat dari penghitungan manual.
1.3
BATASAN MASALAH Banyaknya jenis komponen chip yang ada membuat semakin banyaknya
bentuk dari komponen. Maka alat ini hanya di buat untuk komponen chip yang berukuran sangat kecil seperti resistor, kapasitor, transistor, coil, LED dan juga dioda. Untuk komponen besar seperti IC masih mampu dihitung secara manual karena jumlahnya masih relative sedikit dalam satu kemasan.
1.4
METODE PENULISAN Metode penulisan tugas akhir ini dilakukan dengan beberapa cara yaitu: 1. Studi kepustakaan Yaitu dengan cara mencari referensi-referensi penunjang dari buku milik pribadi, perpustakaan dan juga internet yang digunakan sebagai acuan perancangan alat.
4
2. Metode Eksperimen Yaitu dengan cara melakukan pengujian secara langsung terhadap alat yang telah dibuat. Selain itu juga menggunakan program simulasi sebagai bahan perbandingan.
1.5
SISTEMATIKA PENULISAN Sistematika penulisan laporan tugas akhir ini dibagi dalam lima bab, dengan
masing-masing bab diuraikan sebagai berikut : BAB I
PENDAHULUAN Berisikan hal-hal yang mendasari pengerjaan tugas akhir ini. Terdiri dari latar belakang, batasan masalah, tujuan penulisan , metode penulisan dan sistematika penulisan.
BAB II
LANDASAN TEORI
Berisikan tentang teori-teori yang menunjang dalam pengerjaan tugas akhir ini. Yang mencakup tentang rangkaian penunjang dan komponen yang digunakan dalam pembuatan alat. BAB III
PERANCANGAN SISTEM
Berisikan tentang blok diagram dan analisa dari rangkaian. BAB IV
UJI COBA ALAT
Melakukan pengujian terhadap system dan menjelaskan hasil pengujian. Pengujian ini juga dengan perbandingan hasil penghitungan dengan alat yang asli. BAB V
PENUTUP
Bab ini berisikan kesimpulan dari pembahasan hasil pengujian yang telah dilakukan pada alat yang dibuat.
BAB II LANDASAN TEORI
2.1
MIKROKONTROLLER AT89C51 Meskipun sudah termasuk tua, keluarga mikrokontroller MCS51 adalah
jenis mikrokontroller yang masih banyak digunakan sampai saat ini. Jenis ini diawali oleh intel yang menggunakan IC mikrokontroller tipe 8051 pada awal tahun 1980-an. Sampai saat ini sudah banyak IC seperti ini yang dibuat berdasarkan turunan 8051, sehingga terbentuklah sebuah varian yang disebut MCS51. saat ini perusahaan pembuat IC Atmel telah menambah jenis IC MCS51. Produksi mikrokontroller MCS51 atmel dibagi dalam dua macam, yaitu yang berkaki 40 dan berkaki 20. untuk yang berkaki 40 adalah setara dengan 8051 asli buatan intel. Bedanya adalah mikrokontroller Atmel berisi flash PEROM dengan kapasitas yang berlainan. AT89C51 mempunyai flash PEROM dengan kapasitas 4 kilobyte, AT89C52 dengan kapasitas 4 kilobyte, AT89C53 dengan kapasitas 12 kilobyte, AT89C55 dengan kapasitas 20 kilobyte dan AT89C8252 berisikan 8 kilobyte falsh PEROM dan 2 kilobyte EEPEROM. Untuk jenis AT89x51 terdapat dua jenis. Yaitu AT89C51 dan AT89S51. Untuk AT89C51 dah di bahas di atas, sedangkan untuk AT89S51 hampir mirip dengan yang AT89C51. bedanya ada pada cara pemrogramannya. Untuk AT89C51 harus di program menggunakan suatu alat khusus yang bisanya di sebut downloader. Sedangkan untuk AT89S51 mampu di program secara langsung pada alat yang dibuat dengan bantuan port RS232C yang menghubungkan IC dengan computer. Untuk yang berkaki 20 adalah MCS51 yang telah mengalami penyederhanaan. Penyederhanaan dilakukan dengan cara mengurangi jalur untuk input / output parallel dan juga kapasitas dari IC tersebut.. 5
6
Untuk kemampuan yang lain sama sekali tidak mengalami pengurangan. Penyederhanaan ini dimaksudkan utnuk membentuk mikrokontroller yang bentuk fisiknya kecil tapi mempunyai fungsi yang sama. Untuk yang berkaki 20 ada dua jenis yaitu AT89C2051 yang mempunyai 2 kilobyte flash dan AT89C4051 yang mempunyai 4 kilobyte flash. 2.1.1
Karakteristik Mikrokontroller AT89C51 Mikrokontroler AT89C51 merupakan salah satu turunan keluarga MCS51
dan karakteristiknya sama dengan IC keluaran intel 8051. meskipun banyak sekali versi dari keluarga MCS51 namun cara kerja dan teknik pemrogramannya masih sama dengan IC aslinya yaitu intel 8051. IC Mikrokontroller AT89C51 merupakan komponen IC produksi Atmel yang berorientasi pada kontrol. Mikrokontroller yang merupakan salah satu keluarga dari keluarga AT89 ini oleh Atmel dimasukkan kedalam kelompok programmer controller. Sebagai IC mikrokontroller yang compatible dengan keluarga MCS51 ini, AT89C51 mempunyai karakteristik sebagai berikut : ¾ Memiliki 8 bit CPU sebagai pusat pengendali aplikasi. ¾ Memiliki 32 jalur sebagai input ataupun output. ¾ Memiliki 2 buah timer dan counter dengan kapasitas 16 bit. ¾ Memiliki 4 Kbyte flash PEROM untuk menampung program dan mampu diisi ulang sampai 1000 kali. ¾ Memiliki RAM internal 128 x 8 bit. ¾ Memiliki 6 sumber interupsi dengan prioritas dan osilator berada dalam chip. ¾ Memiliki 3 tingkat penguncian memori program. ¾ Clock dengan frekwensi maksimum 24 MHz.
7
Dibawah ini adalah gambar blok diagram dari Mikrokontroller AT89C51 :
Gambar 2.1 Diagram blok AT89C51
2.1.2
Port – port IC AT89C51 Mikrokontroller AT89C51 mempunyai 40 kaki, 32 kaki di antaranya adalah
untuk keperluan port parallel. Satu port parallel terdiri dari 8 kaki. Dengan demikian
8
32 kaki tersebut membentuk 4 buah port parallel yang masing – masing dikenal dengan sebutan port 0, port 1, port 2, port 3. Nomor dari masing – masing jalur (kaki) dari port parallel mulai dari angka 0 sampai 7. Misalkan pada port 0, jalur pertama di sebut juga P0.0 dan jalur terakhirnya di sebut P0.7. Dibawah ini adalah gambar dari port IC AT89C51 :
Gambar 2.2 Konfigurasi pin AT89C51 Perhatikan gambar ke-4 buah port yang digunakan untuk hubungan keluar dan kedalam chip AT89C51. ke-4 port tersebut terdiri dari : 1. Port 0 Bersifat multiplex yaitu satu jalur terdiri atas : address bus low byte dan data bus (bila mengakses memory program eksternal. Port 0 juga
9
digunakan sebagai penerima kode byte selama pemrograman dan juga sebagai keluaran kode byte ketika proses verifikasi program. 2. Port 1 Port ini untuk jalur masukan atau keluaran, tergantung fungsi program yang dimasukkan ke dalam mikrokontroller. 3. Port 2 Fungsi port ini sama dengan port 1. selain itu juga berfungsi sebagai address bus high byte (bila mengakses memory program eksternal). 4. Port 3 Untuk port ini bisa juga berfungsi seperti port yang lainnya sebagai masukan ataupun keluaran. Tetapi selain itu port 3 juga memiliki fungsi khusus seperti timer, interrupt dan yang lainnya. Keempat port diatas bersifat dua arah dan masing-masing memiliki sebuah pengancing (latch). Selain itu juga memiliki sebuah penggerak (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 mengakses memory eksternal. Pada aplikasi semacam ini port 0 mengeluarkan byte rendat aamat memory eksternal, port 2 mengeluarkan byte tinggi dari alamat memory eksternal jika lebar alamatnya 16-bit. Sedangkan untuk port 3 ada beberapa fungsi khususnya yaitu seperti pada tabel 2.1 dibawah ini :
10
Tabel 2.1 Fungsi port 3 pada AT89C51
Selain itu fungsi dari pin yang lainnya pada AT89C51 adalah sebagai berikut : 1. Vcc Berfungsi sebagai masukan sumber tegangan 5V. 2. GND Berfungsi sebagai ground atau pentanahan. 3. RST Berfungsi sebagai masukan reset. Kondisi ‘1’1selama 2 siklus mesin selama
osilator
bekerja
akan
mereset
mikrokontroller
yang
bersangkutan. 4. ALE/ PROG Keluaran ALE atau address latch enable menghasilkan pulsa-pulsa untuk mengancing byte rendah (low byte) alamat selama mengakses memori eksternal. Kaki ini juga berfungsi sebagai masukan pulsa program. Pada operasi normal, ALE akan berpulsa dengan laju 1/6 dari frekwensi Kristal dan dapat digunakan sebagai pewaktu (timing) atau pendetakan (clocking) rangkaian eksternal.
11
5. PSEN Program Storage Enable, merupakan sinyal baca untuk memori program eksternal. 6. EA /Vpp Eksternal Access Enable, EA harus selalu dihubungkan ke ground jika controller akan digunakan untuk mengeksekusi program dari memori eksternal lokasi 0000h hingga FFFFh. Selain itu juga harus dihubungkan ke Vcc bila controller akan mengakses program internal. 2.1.3
RAM, ROM dan register dalam AT89C51 Dalam pengertian MCS51 flash PEROM merupakan memori penampung
program pengendali AT89C51, dikenal sebagai memori program. Sedanglan Random Access Memory dalam chip AT89C51 adalah memori data yang berlamatkan 00 sampai FF yang dipakai untuk menyimpan data. Memori pada mikrokontroller AT89C51 dibagi manjadi 2 bagian. Yaitu yang berlamatkan 00 sampai 7F dan yang berlamatkan 80 sampi FF. berikut dibawah ini penjelasannya : ¾ Memori nomor 00 sampai 7F merupakan memori seperti layaknya RAM yang dipaki sebagai memori penyimpan data biasa, terdiri dari : •
Register serba guna yang berlamatkan 00 sampai 18. memori sebanyak 32 byte ini dikelompokkan menjadi 4 kelompok register (Register Bank). 8 byte memori dari masingmasingkelompok itu dikenali sebagai Register 0, Register1 ….Register 7 (R0, R1, R2, R3, R4, R5, R6, R7).
•
Memori level bit (memori nomor 20 sampai 2F) setiap byte memori didaerah ini bisa dipakai menampung 8 bit informasi
12
yang masing-masing dinomori tersendiri. Dengan demikian dari 16 byte memori yang ada bisa dipakai untuk menyimpan 128 bit (16 x 8) yang dinomori dengan bit nomor 00 sampai 7F. •
Memori nomor 30 sampai 7F (sebanyak 80 byte) merupakan memori data biasa, bisa dipakai untuk menyimpan data maupun dipakai sebagai stack.
¾ Sedangkan memori yang beralamatkan 80 sampai FF dipaki sangat khusus yang dinamakan sebagai Special Function Register (SFR) Pada AT89C51 terdapat register-register baku seperti yang dapat kita jumpai pada semua jenis mikrokontroller seprti program counter, accumulator, stack pointer register, program status register dan lain-lain. Juga terdapat register kahs yang hanya terdapat pada keluarga MCS51. adapun beberapa register dan fungsi dari register dalam AT89C51 antara lain : ¾ Program Counter (PC) Register yang ditempatkan ditempat tersendiri didalam inti processor. PC mempunyai kapasitas 16-bit. Didalam PC dicatat nomor memori program yang menyimpan instruksi berikutnya yang akan diambil (fetch) sebagai instruksi untuk dikerjakan (execute). ¾ Accumulator Sesuai dengan namanya, akumulator adalah sebuah register yang berfungsi untuk menampung (accumulate) hasil-hasil pengolahan data dari banyak data instruksi MCS51. Akumulator bisa menampung data 8bit (1 byte) dan merupakan register yang paling banyak kegunaannya. Lebih dari setengah instruksi di AT89C51 melibatkan akumulator.
13
¾ Stack Pointer Register Salah satu bagian dari memori data dipaki sebagai stack, yaitu tempat yang dipakai untuk menyimpan sementara nilai PC sebelum processor menjalankan sub-rutin. Nilai tersebut akan diambil kembali dari stack dan dikembalikan ke PC saat processor selesai menjalankan sub-rutin.
Stack Pointer Register adalah register yang berfungsi untuk mengatur kerja stack, dalam Stack Pointer Register disimpan nomor memori-data yang dipakai untuk operasi stack berikutnya. ¾ Program Status Word Program Status Word (PSW) berfungsi mencatat kondisi processor setelah melakanakan instruksi. ¾ Register B Merupakan register dengan kapasitas 8-bit. Merupakan register pembantu akumulator saat menjalankan instruksi perkalian dan pembagian. ¾ SBUF (Serial Buffer) Register Serial Buffer (SBUF) dipakai untuk mengirim data dan menerima data dengan UART yang terdapat dalam IC AT89C51. Angka yang disimpan ke SBUF akan dikirim keluar secara seri. Sebaliknya data seri yang diterima dikaki RXD bisa diambil deregister SBUF. Jadi SBUF akan berfungsi sebagai port output pada saat register ini diisi data, dan SBUF akan menjadi port input kalau isinya diambil.
14
¾ SCON (Serial Control) Register SCON dipakai untuk mengatur perilaku UART didalam IC AT89C51. hal-hal yang diatur meliputi penentuan kecepatan pengiriman data seri (baud rate), mengaktifkan fasilitas penerimaan data seri. Disamping itu register ini dipakai pula untuk memantau proses pengiriman data seri dan proses penerimaan data seri. Register ini dapat dinomori dengan nomor bit. ¾ TLO / THO (Timer 0 Low/high) Kedua register ini bersama membentuk timer 0 yang merupakan pencacah naik (count up counter). Perilaku kedua register ini diatur oleh register TMOD dan register TCON. Hal-hal yang bisa diatur antar lain adalah sumber clockuntuk pencacah, nilai awal pencacah, bilamana proses pencacahan mulai atau berhenti dan lain sebagainya. ¾ TL1 / TH1 (Timer 1 Low/high) Kedua register ini bersama membentuk timer 1, yang merupakan pencacah naik (count up timer). Perilaku kedua register ini diatur oleh register TMOD dan register TCON. Hal-hal yang bisa diatur antar lain adalah sumber clockuntuk pencacah, nilai awal pencacah, bilamana proses pencacahan mulai atau berhenti dan lain sebagainya. ¾ TMOD Register TMOD dipakai untuk mengatur mode kerja timer 0 dan timer 1. lewat register ini masing-masing timer bisa diaturmenjadi timer 16-bit dan timer 8-bit yang bisa diisi ulang secara otomatis, atau 2 buah timer 8-bit yang terpisah. Disamping itu bisa diatur agar proses pencacahan
15
timer bisa dikendalikan lewat sinyal dari luar IC AT89C51. atau timer bisa dipakai untuk mencacah sinyal-sinyal dari luar IC. ¾ TCON (timer counter) Register TCON dipakai untuk memulai atau menghentikan proses pencacahan timer. Dan juga dipakai untuk memantau apakah terjadi limpahan dalam proses pencacahan. Disamping itu masih tersisa 4-bit dalam register TCON yang tidak dipakai untuk mengatur timer, melainkan dipakai untuk mengatur sinyal interupsi yang diterima di INT0 atai INT1 dan dipakai untuk memantau apakah ada permintaan interupsi pada kedua kaki tersebut. Register ini bisa dinomori dengan nomor bit. ¾ IP (interrupt priority) Register ini dipakai untuk mengatur prioritas dari masing-masing sumber interupsi. Masing-masing sumber interupsi bisa diberi prioritas tinggi dengan memberi nilai ‘1’ pada bit bersangkutan dalam register ini. Sumber interups yang prioritasnya tinggi bisa menginterupsi proses interupsi yang prioritasnya lebih rendah. Register ini bisa dinomori dengan nomor bit. ¾ PCON (power control) Register PCON dipakai untuk mengatur pemakaian daya IC AT89C51. dengan cara “menidurkan” IC tersebut sehingga memerlukan arus kerja yang sangat kecil. Satu satu bit dalam register ini dipakai untuk mengandalkan kecepatan pengiriman data seri (baud rate) dan UART AT89C51.
16
Dibawah ini adalah table special function register dari mikrokontroller AT89C51 : Tabel 2.2 Special Function Register (SFR) Nama A B PSW SP DPL DPH P0 P1 P2 P3 IP
2.1.4
Fungsi Accumulator Aritmetic Program status word Stack pointer Low bytes High bytes Port 0 Port 1 Port 2 Port 3 Interrupt Priority
Alamat Nama 0E0H 0F0H 0D0H 81H 82H 83H 80H 90H A0H 0B0H 0B8H
IE TMOD TCON TH0 TL0 TH1 TL1 SCON SBUF PCON
Fungsi Interrupt enable control Timer/counter mode control Timer/counter control Timer 0 hingh bytes Timer 0 low bytes Timer 1 high bytes Timer 1 low bytes Serial port control Serial port data buffer Power control
Alamat 0A8H 89H 88H 8CH AH 8AH 88H 98H 99H 87H
Timer pada AT89C51 Mikrokontroller AT89C51 hadir dengan dua timer. Keduanya bisa dikontrol,
diset, dibaca dan dikonfigurasi sendiri-sendiri. Timer AT89C51 memiliki tiga fungsi umun yaitu : 1. Menghitung waktu antar dua kejadian. 2. Menghitung jumlah kejadian itu sendiri. 3. Membangkitkan baud rate untuk port serial. Sebuah timer bekerja dengan menccah. Tidak tergantung pada fungsi sebagai timer, counter atau generator baud rate. Sebuah timer akan selalu ditambah satu mikrokontroller. 2.1.5
Mode pengalamatan Mode pengalamatan merujuk pada bagaimana pemrograman mengalamati suatu lokasi memori. Setiap mode pengalamatan memberikan fleksibilitas khusus yang sangat penting. Mode pengalamatan ini meliputi immediate
addressing, direct addressing dan indirect addressing.
17
¾ Immediate addressing dandirect addressing Mode pengalamatan immediate addressing sangat umum dipakai karena harga yang akan disimpan dalam memori langsung mengikuti kode operasi dalam memori. Dengan kata lain, tidak diperlukan pengambilan harga dari alamat lain untuk disimpan. Contohnya : {MOV A,#20H} dalam instruksi tersebut akumulator akan diisi dengan harga yang langsung mengikutinya, dalam hal ini 20H. Mode ini sangatlah cepat karena harga yang dipakai langsung tersedia. Dalam mode pengalamatan
direct addressing, harga yang akan dipakai diambil langsung dari memori lain. Contohnya : {MOV A,30H}dalam instruksi ini akan dibaca data dari RAM internal dengan alamat 30H dan kemudian akan disimpan dalam akumulator. Mode pengalamatan ini cukup cepat, meskipun harga yang didapat tidak langsung seperti immediate. Namun cukup cepat karena disimpan dalam RAM internal. Demikian pula akan lebih mudah menggunakan mode ini daripada mode immediate karena harga yang didapat bisa dari lokasi memori yang mungkin variabel. ¾ Indirect addressing Mode pengalamatn indirect addressing sangat berguna karena memberikan fleksibilitas tinggi dalam mengalamati suatu harga. Contoh: {MOV A,@R0} dalam instruksi tersebut 89C51 akan mengambil harga yang berada pada alamat memori yang di tunjukkan oleh isi dari R0 dan kemudian mengisikannya ke akumulator. Mode pengalamatan indirect
addressing selalu merujuk pada RAM internal dan tidak pernah merujuk pada SFR. Mode pengalamatan memory eksternal menggunakan mode ini dan terdiri atas dua bagian. Bagian yang pertama digunakan untuk
18
mengakses memori eksternal, dimana alamatnya terdapat didalam DPTR 16-bit. Contohnya : {MOV A,@DPTR} atau {MOVX @DPTR,A}. Bagian kedua mengakses alamat memori eksternal secara 8-bit (1 byte), dimana alamat dari harga yang akan diambil terdapat didalam register R. Contohnya : {MOVX @R0,A} dalam instruksi tersebut alamat yang terdapat didalam register R0 dibaca dahulu dan kemudian harga akumulator ditulis dengan harga yang terdapat pada alamat memori eksternal yang didapat. Karena register R0 hanya dapat menampung alamat dari 00h hingga FFh, maka penggunaan mode pengalamatan eksternal 8-bit ini hanya terbatas pada 256 dari memori eksternal. 2.1.6
Dasar kerja program Program untuk mengendalikan kerja dari mikrokontroller disimpan didalam
memori program. Program pengandali tersebut merupakan kumpulan dari instruksi kerja mikrokontroller. Satu instruksi MCS51 merupakan kode yang panjangnya isa satu sampai empat byte. Sepanjang mikrokontroller bekerja, instruksi tersebut byte demi byte diambil ke CPU dan selanjutnya dipakai untuk mengatur kerja mikrokontroller. Proses pengambilan instruksi dari memori program dikatakan sebagai ‘fetch cycle’ dan saat-saat CPU melaksanakan instruksi disebut sebagai ‘execute cycle’. Semua mikrokontroller maupun microprocessor dilengkapi sebuah register yang berfungsi khusus untuk mengatur ‘fetch cycle’. Register tersebut dinamakan sebagai program counter. Nilai program counter otomatis bertambah satu setiap kali selesai mengambil satu byte isi memory program. Dengan demikian isi memori program bisa berurutan diumpankan ke CPU.
19
Saat MCS51 direset, isi program direset menjadi 0000. artinya sesaat setelah reset isi dari memori program nomor 0 dan seterusnya akan diambil ke CPU dan diperlakukan sebagai instruksi yang akan mengatur kerja mikrokontroller. Dengan demikian awal dari program pengandali MCS51 harus ditempatkan di memori nomor 0. setelah reset MCS51 menjalankan program mulai dari memori program nomor 0000 dengan melakukan proses ‘fetch cycles’ dan ‘execute cycles’ terus menerus tanpa henti. Jika sarana interupsi diaktifkan dan tegangan di kaki INT0 (kaki nomor 12) berubah dari ‘1’ menjadi ‘0’, maka proses menjalankan program diatas akan diberhentikan sebentar. Mikrokontroller melayani dulu permintaan interupsi. Selesai melayani permintaan interupsi CPU akan melanjutkan mengerjakan program utama lagi. Untuk melaksanakan hal tersebut pertama-tama CPU menyimpan nilai program counter ke stack (stack merupakan satu bagian kecil dari data memori RAM) kemudian mengganti isi program counter dengan 0003. Artinya MCS51 akan menjalankan program yang ditempatkan di memori program mulai byte ke-3 untuk melayani interupsi yang diterima dari kaki INT0. adalah tugas programmer untuk mengatur agar program yang dipakai untuk melayani interrupt lewat INT0 diletakkan disitu. Selesai melayani interupsi nilai program counter yang tadi disimpan di stack akan dikembalikan ke program counter. Dengan demikian CPU bisa melanjutkan pekerjaan di program utama.
20
2.2
TAMPILAN TUJUH SEGMEN Piranti ini adalah piranti umum yang digunakan untuk menampilkan
bilangna decimal. Jenis tampilan ini terdiri dari tujuh segmen terpisah yang diberi label a sampai g. Tujuh segmen merupakan cacah segmen minimum yang diperlukan untuk menampilkan angka 0 sampai dengan 9. Segmen yang dimaksud pada piranti ini adalah LED yang akan mengubah arus listrik menjadi cahaya. Untuk mengaktifkan LED-LED tersebut harus ada prategangan maju antara anoda dan katodanya. Menurut jenisnya konfigurasi LEDLED didalam tujuh segmen tersebut dibagi menjadi dua jenis, yaitu ko0nfigurasi
common anoda (anoda-anoda dari LED digabung manjadi satu) dan konfigurasi common catoda (katoda-katoda dari LED di gabung menjadi satu).
a b f
g
Common
c e
d
Gambar 2.3 Tampilan tujuh segmen Common Anoda Pada konfigurasi common anoda untuk mengaktifkan segmen-segmennya, common harus mendapatkan tegangan positif ‘1’.dan masukan pada tiap segmennya (a, b, c, d, e, f, g) mendapat ‘0’.
21
a b f
Common
g c e
d
Gambar 2.4 Tampilan tujuh segmen Common Catoda Pada konfigurasi common catoda, untuk mengaktifkan segmen-segmennya, common harus mendapatkan terminal negatif ‘0’. Dan masukan pada tiap segmennya (a, b, c, d, e, f, g) mendapat tegangan positif ‘1’. Berikut dibawah ini adalah gambar dari seven segmen beserta tabel tampilan seven segmen :
Gambar 2.5 Tampilan seven segmen Bila salah satu segmen mendapat teganag positif ataupun negatif (tergantung dari common) maka segment tersebut akan menyala seperti pada tabel dibawah ini :
22
Tabel 2.3 Tampilan seven segmen Segmen yang aktif
Angka desimal a
2.3
b
0 1 2 3 4 5 6 7 8 9
√
√ √ √ √ √
√ √ √
A b C d E F
√
√
√ √
√ √ √ √ √
c √ √ √ √ √ √ √ √ √ √ √
√ √ √ √
√
d
e
√
√
√ √
√
√ √ √ √
√ √ √ √
f
g
√
√ √ √
√ √ √ √ √
√
√ √
√ √
√ √ √ √ √ √
√ √ √
√ √
√
√ √
√ √ √
TRANSISTOR SEBAGI SAKLAR Salah satu penggunaan umum dari transistor dalam suatu rangkaian digital
adalah sebagai saklar. Syarat untuk mengerjakan transisitor sebagai sakalar adalah daerah kerja transistor harus pada daerah jenuh (saturasi) dan daerah sumbat (cut off). Transistor sebagai saklar mempunya dua kondisi bergantian. Yaitu kondisi tertutup pada saat saturasi dan kondisi terbuka pada saat cut off. Dibawah ini adalah gambar karakteristik transistor sebagai saklar: Vcc Rc
Vbb Rb
Gnd
(a)
Gambar 2.6 Karakteristik Transistor sebagai saklar
23
Sesuai dengan gambar 2.6 (a) diperoleh :
Ib =
Vbb − Vbe Vcc dan juga Ic = Rb Rc
Untuk saklar pada keadaan terbuka atau tertutup dapat dilihat pada gambar 2.6 (b) : 1. saklar akan tertutup saat transistor memiliki Vce = 0. pada kedaan ini arus basis sama dengan Ib (sat) dan arus kolektor adalah maksimum pada titik ini. Syarat agar transistor menjadi saklar tertutup ‘on’ adalah : Ic >
Ic( sat ) βdc
2. Keadaan lainnya adalah saklar terbuka, yaitu pada kedaan cut off. Pada titik ini arus basis Ib = 0 dan arus kolektornya Ic sangat kecil sehingga dapat diabaikan. Pada kedaan ini di peroleh : Vce(cutoff ) = Vcc
2.4
PENGANTARMUKAAN TAMPILAN TUJUH SEGMEN
Seperti yang telah dijelaskan sebelumnya bahwa tujuh segmen adalah piranti yang terdiri dari sekumpulan LED. Jadi untuk pengantarmukaan tujuh segmen sama prinsipnya
dengan
pengantarmukaan
LED.
Pada
piranti
digital
untuk
mengendalikan satu atau lebih LED digunakan penggerak (driver) berupa transistor bipolar baik itu yang berjenis NPN ataupun PNP. Untuk transistor berjenis NPN maka pada kaki kolektor mendapat tegangan positif dan pada emitor mendapat tegangan negatif. Sedangkan untuk transistor berjenis PNP maka pada kaki emitor mendapat tegangan positif dan kaki kolektor mendapat tegangan negatif. Dibawah ini gambar penggerak LED menggunakan transistor PNP :
24
Vcc
Vbb Rb
Gambar 2.7 Penggerak LED dengan Transistor jenis PNP Transistor dirangkai pada kaki anoda LED yang berfungsi sebagai saklar yang menghubungsingakatkan emitor dengan kolektor yang berarti anoda akan terhubung ke Vcc sehingga nyala padamnya LED dapat diatur dengan melalui basis transistor dengan memberi masukan bertaraf logika tinggi untuk menyalakan LED dan memberi taraf logika rendah untuk memadamkan LED. Selain menggunakan transistor untuk pengantarmukaan LED, dapat juga menggunakan IC TTL atau IC CMOS. Untuk pengantarmukaan tampilan dengan banyak digit (lebih dari satu tampilan tujuh segmen) biasanya digunakan teknik multiplexing. Dimana tiap digit akan digerakkan satu persatu secara bergiliran dengan mengontrol kaki common pada tujuh segmen. Keuntungan menggunakan teknik multiplexing selain mempermudah kerumitan jalur/untai adalah konsumsi dayanya lebih kecil karena digunakan pulsa waktu yang sangat pendek untuk menggerakkan segmen-segmen pada tampilan tujuh segmen. Pengaturan waktu multiplexing harus sangat cepat sehingga ketajaman nyala segmen dapat diterima mata seolah-olah segmen tersebut tidak berkedip. Multiplexing dilakukan dengan menghubungkan secara parallel segmen-segmen yang identik dari beberapa tampilan tujuh segmen. Dan untuk menentukan digit yang aktif digunakan penggerak berupa transistor pada tiap digitnya yang menghubungkan kaki common pada tujuh segmen dengan pengendali
25
pada mikrokontroller. Pada gambar dibawah ini diperlihatkan penggunaan transistor PNP pada pengantarmukaan empat buah tujuh segmen common anoda. Vcc 1 2 3 4 Digit 1
Digit 2
Digit 3
Digit 4
a b c d e f g
Gambar 2.8 Pengantarmukaan empat buah tujuh segmen Digit 1 akan aktif bila masukan 1 diberi taraf logika tinggi dan di terminalterminal segmen mendapat aktif rendah (0). Masukan 1 sampai 4 akan mendapat logika tinggi secara bergantian dengan jeda waktu sangat cepat sehingga pergantian angka tidak sampai tertangkap oleh mata. 2.5
PHOTOMICROSENSOR
Photomicrosensor merupakan perangkat yang digunakan untuk mengasilkan sinyal masukan untuk microcontroller. Didalam photomicrosensor terdapat dua buah LED yang berfungsi sebagai pemancar dan penerima. Bila cahaya antar kedua LED tersebut terhalang maka sensor tersebut akan bekerja. Dalam hal ini akan digunakan microsensor EE-SX671 yang mempunyai rangkaian NPN open kolektor pada keluarannya. Sensor ini bisa dikondisikan sebagai aktif rendah maupun aktif tinggi. Aktif rendah adalah sinyal keluaran berupa pulsa ‘0’. Dan aktif tinggi sinyal keluarannya berupa pulsa ‘1’. Sehingga kita bisa mengatur sesuai keinginan kita
26
berdasarkan alat yang dirancang. Dibawah ini adalah gambar rangakaian dari sensor tersebut :
Gambar 2.9 Rangkaian photomicrosensor EE-SX671 Sensor tersebut bekerja dengan tegangan input sebesar 5V sampai 24V. bila kita ingin mendapat keluaran siyal rendah ‘0’ maka kaki no2 (L) dibiarkan saja terbuka. Sehingga bila cahaya antara dua LED terhalang maka kaki no4 (out) akan mengeluarkan sinyal rendah ‘0’. Tetapi bila kita ingin mendapatkan keluaran sinyal tinggi ‘1’ maka kaki no2 kita hubungkan ke kaki no1 (+).hal tersebut akan menghasilkan keluaran tinggi ‘1’ bila cahaya antara kedua LED terhalang. Dibawah ini adalah konfigurasi kaki yang ada pada sensor EE-SX671.
Gambar 2.10 konfigurasi kaki-kaki sensor Kaki no1 merupakan kaki Vcc yang berfungsi sebagai masukan tegangan. Tegangan masukan tersebut antara 5V sampai 24V. Kaki no2 berfungsi sebagai pemilih sinyal keluaran. Bila kondisi open maka sinyal yang dihasilkan rendah ‘0’.
27
Bila kondisi terhubung dengan Vcc maka sinyal keluaran yang dihasilkan adalah tinggi ‘1’. Kaki no3 berfungsi sebagai keluaran sinyal. Kaki no4 sebagai masukan tegangan rendah ‘0’.
2.6
INVERTER SCHMITT TRIGGER 74LS14
Gerbang logika ini digunakan untuk menstabilkan keluaran sinyal yang dihasilkan oleh photomicrosensor. Sinyal keluaran yang dihasilkan oleh sensor bila diamati secara detail tidaklah berbentuk sempurna. Ketika ada kondisi dari 0 menuju 1 atau sebaliknya, bentuk sinyal yang dihasilkan tidaklah benar-benar rata. Kondisi yang tidak rata ini bisa membuat sinyal pada kondisi ambang. Kondisi ambang sangat berpengaruh terhadap kinerja dari mikrokontroller karena akan membingungkan bagi mikrokontroller tersebut. Dibawah ini adalah perbandingan bentuk sinyal yang dihasilkan oleh photomikrosensor dan setelah melewati Schmitt trigger.
Gambar 2.11 perbandingan bentuk sinyal
28
Dari gambar diatas terlihat jauh sekali perbedaan bentuk sinyal gelombang yang di hasilkan oleh sensor dengan yang di hasilkan oleh Schmitt trigger. Tegangan kerja untuk Schmitt trigger ini adalah 5V. sedangkan tegangan input minimal adalah 3.4V. bila mendapat input sebesar 3,4V maka oleh Schmitt trigger akan di ubah menjadi sinyal 5V. Dan apabila tegangan input kurang dari 5V maka akan dianggap 0 oleh Schmitt trigger. Dibawah ini adalah gambar gerbang logika Schmitt trigger :
Gambar 2.12 Schmitt trigger 2.7
SINGLE PHASE REVERSIBLE MOTOR
Motor jenis ini adalah motor yang mampu berputar ke kanan ataupun kekiri tergantung tegangan yang kita masukkan ke motor. Tegangan kerja motor ini adalah 100V dan terdiri dari 3 terminal. Untuk pengaturan arah putaran kita tinggal merubah inputan 100V di antara 3 terminal tersebut. Dibawah ini adalah gambar wiring diagram dari motor tersebut :
Gambar 2.13 wiring diagram motor untuk putar kiri dan kanan
29
Untuk merubah arah putaran motor kita hanya merubah masukan salah satu phase 100V ke kaki hitam atau abu-abu. Bila tegangan 100V kita masukkan ke terminal putih dan abu-abu maka motor berputar searah jarum jam. Tapi bila tegangan 100V masuk ke terminal putih dan hitam maka motor berputar melawan arah jarum jam. Pada motor AC 1-fasa tidak ada medan putar seperti pada motor 3-fasa. Untuk menimbulkan slip (menggerakkan rotor) pada keadaa t+=0 perlu torsi awal, fungsi kapasitor adalah untuk menimbulkan perbadaan fluks sebagai torsi awal memutar motor. Jadi, kapasitor itu perlunya hanya untuk meng-inisiasi putaran saja, selanjutnya kapasitor tidak berfungsi.
BAB III PERANCANGAN SISTEM
Pada bab sebelumnya telah disajikan rancangan umum system dan teori dasar sistem. Sedangkan pada bab ini pembahasan ditekankan pada perancangan perangkat keras dan perancangan pemrograman perangkat lunak.
3.1
BLOK DIAGRAM SISTEM Untuk pembuatan alat ini hanya menggunakan satu buah IC AT89C51 yang
berfungsi sebagai kontrol utama. Untuk masukan pada mikrokontroller tersebuat menggunakan dua buah sensor yang mampu menghasilkan sinyal masukan ‘0’ dan ‘1’. Sinyal masukan tersebut diolah oleh mikrokontroller sehingga mampu mengahsilakn kondisi penghitungan maju dan juga penghitungan mundur. Sebagai tampilannya digunakan penampil tujuh segmen empat digit yang mampu menampilkan angka 0 sampai 9999. tampilan tersebut nantinya yang menjadi acuan jumlah obyek yang telah terhitung oleh alat. Dibawah ini adalah diagram blok dari rancangan alat :
Gambar 3.1 Blok diagram kontrol dan tampilan 30
31
Cara kerja rangkaian : ¾ Port masukan pada AT89C51 dihubungkan dengan dua buah sensor (photomicrosensor) penghasil pulsa. Kedua sensor tersebut mempunyai fungsi yang berlainan. Sensor 1 berfungsi sebagai pencacah dan masuk ke kaki 12 pada mikrokontroller (INT0). Mikrokontroller akan menghitung bila ada perubahan pulsa dari ‘1’ ke ‘0’ yang masuk ke kaki INT0. penghitungan itu akan terus berulang-ulang tergantung banyaknya obyek (komponen) yang dihitung. Seandainya penghitungan mencapai angka 9999 maka pulsa berikutnya akan mengakibatkan perubahan pada display menjadi 0000. ¾ Sensor 2 berfungsi sebagai pengkondisi hitungan maju atau hitungan mundur. Sensor 2 ini terhubung ke kaki mikrokontroller pin no 21 (P2.0). Bila P2.0 mendapat pulsa tinggi ‘1’ maka mikrokontroller bekerja pada penghitungan maju. Sedangkan bila P2.0 mendapat pulsa rendah ‘0’ maka mikrokontroller bekerja pada penghitungan mundur. Untuk semua penghitungan selalu sama yaitu bila ada perubahan sinyal dari tinggi ke rendah di kaki INT0. Untuk lebih jelasnya kombinasi pulsa dapat dilihat pada Tabel 3.1. ¾ Pada saat pulsa clock aktif (yang dibangkitkan oleh osilator dan diatur oleh setting register kontrol pada program), maka AT89C51 kontrol utama akan menscan semua port masukan berdasarkan program yang dibuat. Port-port masukan pada AT89C51 bertaraf logika tinggi akan diberi logika ‘1’ (karena AT 89C51 aktif tinggi). ¾ Data masukan yang dihasilkan olenh sensor akan di proses oleh program, yang hasilnya berupa bit-bit yang akan dikirimkan ke port-port keluaran (untuk port keluaran di gunakan P1.0 – P1.6).
32
¾ Semua kaki pada tujuh segmen dihubungkan secara parallel dari kaki (a) sampai kaki (g). Kaki (a) pada tujuhsegmen terhubung ke mikrokontroller P1.0, kaki (b) terhubung ke mikrokontroller P1.1 dan seterusnya sampai kaki (g) terhubung pada mikrokontroller P1.6 (dalam alat ini menggunakan tampilan tujuh segmen common anoda) ¾ Untuk mengontrol tampilan tujuh segmen menggunakan penggerak (driver) yang terbuat dari transistor PNP yang berfungsi sebagai saklar. Sedangkan transistor tersebut digerakkan oleh sinyal logika yang dihasilkan oleh controller melalui port P3.0, P3.1, P3.3, P3.4. Ketika salah satu port tersebut aktif ‘1’ maka penggerak tersebut bekerja dan tampilan tujuh segmen akan bekerja. ¾ Digit tampilan tujuh segmen akan aktif bila pada kaki anodanya mendapat logika tinggi ‘1’ dan kaki segmennya mendapat logika rendah ‘0’. Keempat tujuh segmen tersebut bekerja secara bergantian dengan sistem multiplexing yang di kontrol oleh penggerak (driver) yang masuk ke kaki common anoda pada tujuh segmen. Waktu penggiliran tujuh segmen tersebut sangat cepat sehingga mata kita tidak mampu melihat waktu jeda dari kondisi hidup ke mati. Tabel 3.1 Tabel kebenaran sitem penghitungan HITUNG MAJU Sensor Sensor 1 2 0 1 1 0 0 1 1 0 0
0 0 1 1 0 0 1 1 0
KONDISI
hitung
hitung
HITUNG MUNDUR Sensor Sensor 1 2 0 0 1 1 0 0 1 1 0
0 1 1 0 0 1 1 0 0
KONDISI
hitung
hitung
33
3.2
PERANCANGAN PERANGKAT KERAS Dibawah ini adalah gambar skema lengkap berdasarkan dari diagram blok
yang ada :
Gambar 3.2 Skema rangkaian lengkap kontrol utama
34
Saklar pemilih
AC 100V
Gambar 3.3 Skema rangkaian motor pemutar Fungsi dan cara kerja dari masing-masing piranti yang digunakan berdasarkan rancangan blok diagram dan skema rangkaian adalah sebagai berikut : 3.2.1
Mikrokontroller AT89C51
3.2.1.1 Port masukan Mikrokontroller AT89C51 Untuk mengendalikan keseluruhan sistem digunakan masukan berupa sinyal digital ‘0’ dan ‘1’ yang dihasilkan oleh dua buah sensor. Sensor 1 sebagai pencacah dan sensor 2 sebagai pengkondisi hitung maju atau hitung mundur. Kedua sensor diletakkan berseberangan dengan plat pencacah yang terdiri dari 30 gigi. Peletakan sensor 1 dan sensor 2 tidak dibuat seimbang terhadap gigi plat pencacah. Tetapi bergeser 1/3 dari posisi sejajar. Ini untuk mengkondisikan antara dua sensor bisa hidup bersama, mati bersama, dan saling berlawanan.
35
Gambar 3.4 Plat pencacah 32 gigi Output dari kedua sensor tidak langsung masuk ke dalam mikrokontroller. Kedua output tersebut melalui IC Schmitt trigger 74LS14 untuk meratakan sinyal.
Gambar 3.5 masukan sensor ke AT89C51 Sebuah sensor menggunakan satu buah gerbang Schmitt trigger inverters. Jadi untuk alat ini hanya membutuhkan dua buha gerbang. Schmitt trigger inverters selain untuk meratakan sinyal juga berfungsi sebagai pembalik fasa. Ini semua karena port INT0 memerlukan perubahan dari ‘1’ ke ‘0’ agar instruksi yang melalui port INT0 bekerja. Untuk tabel kebenaran sinyal masukan dapat dilihat pada tabel 3.1 (halaman 32).
36
3.2.1.2 Port keluaran Mikrokontroller AT89C51 Pada mikrokontroller AT89C51 kontrol utama port keluaran yang digunakan adalah port P1.0 sampai P1.6 yang terhubung langsung ke tampilan tujuh segmen kaki a sampai g melalui sebuah resistor 390Ω. Resistor tersebut berfungsi sebagai pembatas arus pada rangkaian tujuh segmen. Ini dikarenakan tampilan tujuh segmen terdiri dari beberapa LED yang disusun sedemikian rupa. Selain itu juga menggunakan port P3.0, P3.1, P3.3, dan P3.4 sebagai pengontrol tujuh segmen. Port tersebut sebagai masukan tegangan untuk menjalankan transistor yang berfungsi sebagai saklar. Output port tersebut masuk melalui Rb 2.2 KΩ lalu masuk ke basis transistor B1322AR. 3.2.1.3 Isyarat Pulsa Detak Isyarat pulsa detak digunakan untuk menentukan kecepatan pada mikrokontroller. Isyarat puls detak dibentuk oleh rangkaian pembangkit pulsa dengan menggunakan osilator Kristal sebagai pembangkit osilasi. Pin yang digunakan adalah pin 18 (X-TAL 2) dan pin 19 (X-TAL 1) pada mikrokontroller AT89C51.
Gambar 3.6 Rangkaian Osilator AT89C51 Osilator yang digunakan adalah Kristal dengan frekwensi 12 MHz, dengan nilai kapasitor C1 dan C2 sebesar 24 μF. Periode persiklusnya dapat dihitung dengan rumus :
37
T per silus =
12 FrekwensiX − TAL
Kecepatan eksekusi suatu instruksi bergantung nilai periode per siklus pada mikrokontroller. Pada frekwensi X-TAL = 12 MHz, periode per siklusnya = 1 μS. 3.2.1.4 Power-On Reset
Penggunaan Power-on reset berfungsi untuk mereset program sesaat setelah mendapat tegangan masuk awal dari catudaya. Rangkaian power-on reset dibentuk oleh satu buah kapasitor dan satu buah resistor.
Gambar 3.7 Rangkaian Reset. Setiap kali power ON, rangkaian akan menahan pin RST pada kedaaan dengan taraf logika Tinggi dalam beberapa saat tergantung lamanya pengosongan kapasitor. Untuk mereset dengan sempurna, tegangan pada kaki RST harus ditahan pada taraf logika Tinggi sampai osilator berdetak selama dua siklus mesin. Agar program dapat direset sewaktu-waktu tanpa harus mematikan lalu menyalakaan kembali catu daya, ditambahkan tombol tekan yang langsung dihubungkan ke sumber tegangan. 3.2.2
Antarmuka Empat Digit Tampilan Tujuh Segmen
Untuk mengendalikan langsung 4 digit tujuh segmen diperlukan 7 masukan dari mikrokontroller (P1.0 – P1.6) ke kaki katoda tujuh segmen (a – g). Semua kaki keempat digit pada tujuh segmen yang identik dihubungkan jadi satu. selain itu juga diperlukan 4 masukan lagi dari mikrokontroller (P3.0, P3.1, P3.3, P3.4) ke kaki
38
anoda sebagai pengatur kerja dari tujuh segmen karena kita menggunakan teknik multiplexing untuk menyiasati keterbatasan port dari mikrokontroller AT89C51. Dengan teknik multiplexing ini tampilan tujuh segmen akan aktif bergantian dengan waktu yang sangat cepat. Pada rancangan ini waktu hidup dari tiap-tiap tujuh segmen adalah 1,5 μS dan waktu mati tiap-tiap tujuh segmen adalah 1 μS. Dengan kecepatan seperti itu maka mata kita tidak akan mampu menangkap perubahan kondisi tersebut. Yang tampak adalah tujuh segmen itu selalu menyala setiap saat. Selain itu juga menggunakan tambahan satu buah LED yang berfungsi sebagai penanda minus apabila pengitungan mundur sampai melewati batas 0. sinyal penanda minus ini melewati port P2.1. port ini akan mengeluarkan sinyal rendah ‘0’ yang masuk ke kaki katoda LED. Sedangkan kaki anoda LED seri dengan sebuah resistor 390Ω menuju ke Vcc. Resistor ini berfungsi sebagai pembatas arus untuk LED. 3.2.3
Motor pemutar
Motor pemutar adalah motor yang digunakan untuk memutar gulungan komponen ketika proses penghitungan. Ketika proses penghitungan maka motor kanan bergerak searah jarum jam dan motor kiri bergerak mengikuti motor kanan. Sedangkan bila proses penggulungan balik maka motor kiri yang bergerak melawan jarum jam dan motor kanan mengikuti pergerakan motor kiri. Untuk pemilih kerja motor digunakan saklar pemilih tegangan. Saklar ini akan memberikan tegangan ke motor yang akan bekerja.
39
3.3
PERANCANGAN PERANGKAT LUNAK
Bahasa pemrograman perangkat lunak yang digunakan adalah bahasa assembly. Program terdiri dari source code yang berisi sekumpulan instruksi yang berfungsi untuk mengendalikan mikrokontroller, yang diterjemahkan ke bahasa mesin dalam bentuk kode biner. Untuk menentukan alur kerja program terlebih dahulu harus dirancang diagram alir program (flowchart). Dengan rancangan tersebut akan lebih mudah untuk menentukan instruksi apa yang harus digunakan pada tiap-tiap langkahnya. (untuk list program selengkapnya lihat lampiran)
Gambar 3.8 diagram alir program
BAB IV UJI COBA ALAT
Pengujian dilakukan dengan pengukuran sinyal masukan dari sensor1 dan sensor2 yang menuju ke mikrokontroller port P3.2 dan P2.0. Pengujian juga dilakukan pada saat kondisi hitung maju dan hitung mundur. Selain itu juga dilakukan pengujian penghitungan komponen secara langsung dengan jumlah yang berbeda-beda.
4.1
PENGUJIAN PENGUKURAN SINYAL DARI SENSOR Tabel 4.1 merupakan hasil pengukuran keluaran sensor menggunakan
multimeter. Pengkuran dilakukan pada saat sensor bekerja dan sensor tidak bekerja. Dan juga pengukuran dilakukan pada keluaran sensor sebelum dan sesudah masuk ke Schmitt trigger inverters. Adapun hasil pengujiannya adalah :
Tabel 4.1 hasil pengukuran keluaran sensor TEGANGAN KELUARAN (V) KELUARAN KELUARAN SENSOR SCHMITT
SENSOR
KONDISI
1
Terbuka
1,2 V
0,1 V
1
Tertutup
0V
5,1 V
2
Terbuka
1,2 V
0,1 V
2
Tertutup
0V
5,1 V
¾
Pada saat sensor tidak bekerja adalah pada saat LED pemancar dan LED penerima pada sensor tidak terhalang. Pengukuran dilakukan pada titik sebelum masuk ke Schmitt trigger dan sesudah. 40
41
¾
Pada saat sensor bekerja adalah pada saat LED pemancar dan LED penerima pada sensor terhalang oleh obyek. Pengukuran dilakukan pada titik sebelum masuk ke Schmitt trigger dan sesudah.
¾
tegangan keluaran pada sensor sebesar 1,2 V dapat diubah menjadi 0.1 V oleh Schmitt trigger inverter.
¾
Tegangan keluaran sensor sebesar 0 V dapat di ubah menjadi 5,1 V oleh Schmitt trigger inverter.
¾
Schmitt trigger inverter dapat bekerja sesuai yang di harapkan, karena selisih tegangan antara sensor terbuka dengan sensor tertutup sebesar 1,2 V dapat diubah menjadi selisih 5 V oleh Schmitt trigger inverter.
¾
Tegangan pada keluaran Schmitt trigger hanya 0 V atau 5 V saja, sehingga bisa dikenali oleh mikrokontroller sebagai masukan sinyal.
4.2
PENGUJIAN HITUNG MAJU DAN HITUNG MUNDUR Pengujian ini dengan melihat pergerakan plat pencacah dan kondisi sensor
ketika plat pencacah bergerak. Dari kondisi pergerakan tersebut terlihat urutan kerja sensor yang yang akhirnya terjadi penghitungan maju atau mundur. Dibawah ini adalah tabel hasil pengukurannnya :
42
Tabel 4.2 pengujian hitung maju dan mundur PROSES
Sensor 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
HITUNG MAJU Sensor ANGKA AWAL 2 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
0 0 0 1 1 1 1 2 2 2 2 3 3 3 3 4 4
Sensor 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
HITUNG MUNDUR Sensor ANGKA AWAL 2 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0
4 4 4 4 3 3 3 3 2 2 2 2 1 1 1 1 0 0 0 0 -1
¾ Kondisi ‘0’ dan ‘1’ pada sensor di ukur setelah sinyal melewati Schmitt trigger. ¾ Kondisi ‘0’ berarti tegangan yang terukur 0V dan kondisi ‘1’ berarti tagangan yang terukur 5V. ¾ Kondisi ‘0’ berarti kedua LED pada sensor terbuka dan kondisi ‘1’ berarti kedua LED pada sensor terhalang. ¾ Pada sensor1 ketika ada perubahan dari ‘1’ ke ‘0’ maka terjadi perubahan angka pada display tujuh segmen. Perubahan tersebut juga di pengaruhi oleh kondisi sensor2 untuk menentukan maju atau mundur. ¾ Pada proses 3 ke 4 kolom “Hitung Maju” dapat dilihat bahwa, ketika terjadi perubahan sinyal ‘1’ ke ‘0’ pada sensor1 dan sensor2 pada
43
kondisi ‘1’ maka angka pada tampilan tujuh segmen berubah dari 0 menjadi 1. ¾ Pada proses 8 ke 9 kolom “Hitung Mundur” dapat dilihat bahwa, ketika terjadi perubahan sinyal ‘1’ ke ‘0’ pada sensor1 dan sensor2 pada kondisi ‘0’ maka angka pada tampilan tujuh segmen berubah dari 3 menjadi 2.
4.3
PENGUJIAN PENGHITUNGAN KOMPONEN Pada pengujian ini dilakukan dengan cara menghitung jumlah komponen
yang ada pada masing-masing rol komponen dan dengan jumlah yang berbeda. Komponen yang akan dihitung sebelumnya sudah di verifikasi pada alat yang standart (asli). Dari hasil penghitungan didapatkan hasil hampir mendekati akurat dari alat yang asli. Hanya ada beberapa kali kelebihan penghitungan dari 25 kali percobaan penghitungan. Kelebihan penghitungan hanya selisih satu komponen. Dibawah ini adalah hasil penghitungan komponen : Tabel 4.3 hasil penghitungan JUMLAH KOMPONEN
1000 2000 3000 4000 5000 ¾
PENGHITUNGAN 1
2
3
4
5
1000
1001
1000
1001
1000
2000
2000
2001
2000
2000
3001
3000
3000
3000
3001
4000
4000
4001
4000
4000
5000
5000
5000
5001
5000
Pada penghitungan jumlah komponen 1000 terjadi dua kesalahan dari total 5000 komponen yang terhitung. Sehingga total error adalah
2 × 100 % = 0.04% 5000
44
¾
Pada penghitungan jumlah komponen 2000 terjadi satu kesalahan dari total 10000 komponen yang terhitung. Sehingga total error adalah
¾
1 × 100 % = 0.01% 10000
Pada penghitungan jumlah komponen 3000 terjadi dua kali kesalahan dari total 15000 komponen yang terhitung. Sehingga total error adalah
¾
2 × 100 % = 0.013% 15000
Pada penghitungan jumlah komponen 4000 terjadi satu kali kesalahan dari total 20000 komponen yang terhitung. Sehingga total error adalah
¾
1 × 100 % = 0.005% 20000
Pada penghitungan jumlah komponen 5000 terjadi satu kali kesalahan dari total 25000 komponen yang terhitung. Sehingga total error adalah
¾
1 × 100 % = 0.004% 25000
Dari total penghitungan tersebut dapat di ambil error rata-rata sebesar
0.04 + 0.01 + 0.013 + 0.005 + 0.004 = 0.014% 5
Dari hasil tersebut terlihat error yang sangat kecil yaitu sebesar 0.014%. Sedangkan target error yang diijinkan oleh produksi maksimum sebesar 0.3%, sehingga alat penghitung tersebut layak untuk di gunakan.
BAB V PENUTUP
5.1
KESIMPULAN 1. Sensitifitas sensor cukup memadai, selisih tegangan antara sensor terbuka dengan sensor tertutup dari 1,2 V dapat diubah menjadi selisih 5 V menggunakan schmit trigger. 2. Arah putar roda cacah dapat dideteksi dengan baik oleh pasangan sensor yang diletakkan dengan beda fasa 1/3 putaran atau 120 derajat. 3. Penggunaan teknik interupsi pada sensor 1 memudahkan proses deteksi arah putar. 4. Alat ini memiliki kesalahan hitung (error) maksimum sebesar 0.014%. Angka ini masih di bawah angka toleransi yang diberikan pabrik, yaitu sebesar 0,3%.
45
DAFTAR PUSTAKA
Andi Nalwan, Paulus. 2003. Panduan praktis Teknik Antarmuka dan Pemrograman Mikrokontroller AT89C51. Jakarta: Elex Media Komputindo Paulus Wijayacitra. 1996. CMOS Databook. Jakarta: Elex Media Komputindo Data sheet and Hardware Description AT89C5. 2000. ATMEL Corporation Data sheet 74LS14. 1986. Fairchild Semiconductor Data sheet EE-SX47/67. Omron Data sheet Single Phase Reversible Motor M4RA1G4L. Panasonic http://www.datasheets.org.uk/
46