TUGAS AKHIR APLIKASI MIKROKONTROLER PIC16F877 SEBAGAI ALAT UKUR KECEPATAN PUTARAN MOTOR
TUGAS AKHIR
APLIKASI MIKROKONTROLER PIC16F877 SEBAGAI ALAT
UKUR KECEPATAN PUTARAN MOTOR
Diajukan untuk memenuhi salah satu syarat memperoleh gelar sarjana Teknik
pada Program Studi Teknik Elektro Fakultas Teknik
Universitas Sanata Dharma
Disusun olehANDREAS OKTAVIANTO
NIM : 005114068
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2007
PIC16F877 MICROCONTROLLER APPLICATION FOR
TACHOMETER
Final Project
Presented as a partial fulfillment of the requirements to obtain the TEKNIK Degree in
Electrical Engineering Study Program
By
ANDREAS OKTAVIANTO
Student Number : 005114068
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
ENGINEERING FACULTY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2007
ii iii
ivPernyataan Keaslian Karya Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini
tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam
kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.Yogyakarta, _______________ Penulis Andreas oktavianto v
Karya ini Kupersembahkan Untuk : ♠ Tuhanku Yesus kristus & Bunda Maria ♠ Kedua Orang tuaku tercinta …
♠ kakak-kakakku dan adikku terima kasih Atas dukungannya ♠ Semua Teman-teman dan sahabatku … ♠ Almamaterku… vi
INTISARI Pengukuran kecepatan putaran motor banyak dijumpai pada sistem otomotif,
misalnya penunjukkan kecepatan putaran mesin. Metode yang banyak digunakan untuk
mengukur kecepatan putaran motor yaitu menggunakan tachometer. Kelemahan
menggunakan metode ini yaitu membutuhan waktu dan tidak segera tampak keadaan
stabil.Pada penelitian ini, dirancang suatu alat ukur kecepatan putaran motor dengan
menggunakan metode dinamometer. Pengukuran dengan dinamometer adalah
pengukuran tegangan balik motor akibat adanya putaran pada motor. Unit pengolah
menggunakan mikrokontroler PIC16F877 yang di dalamnya terdapat ADC 10 bitAlat ukur ini mampu mengukur kecepatan putar motor dengan jangkauan antara 0–10000 RPM, tampilan pengukuran menggunakan LCD. Kata kunci : aplikasi mikokontroler, pengukuran kecepatan putaran vii
ABSTRACT
Speed measurement can be found in many automotive application, for example inspeed rotation of machine display. The methods of motor speed rotation measurement
usually use tachometer. The weaknesses of this methods was need time to complete
and steady stateIn this research, an instrument to measure rotation speed of motor using
dynamometer has also been designed. Measurement using dynamometer method was
measurement of motor back tension as result of existence of rotation at motor. Processor
unit using PIC16F877 microcontroller which consist of 10 bit ADC .This measuring instrument was able to measure the angular speed of the motor with the range between 0 - 10000 rpm, the display measurement used LCD.
Keywords: microcontroller application, angular speed measurement . viii
Kata Pengantar
Puji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa, oleh karenapimpinan dan penyertaan-Nya sehingga penulis dapat meyelesaikan Tugas Akhir yang
berjudul “ APLIKASI MIKROKONTROLER PIC16F877 SEBAGAI ALAT UKUR
KECEPATAN PUTARAN MOTOR ”. Tugas Akhir ini disusun sebagai salah satu syarat
untuk memperoleh gelar Sarjana Teknik. Dalam penyusunannya, banyak pihak yang telah
membantu dan memberikan dukungan pada penulis, oleh karena itu, penulis ingin
mengucapkan terima kasih kepada: 1.B. Djoko Untoro S., SSi, MT selaku Pembimbing I yang bersedia meluangkan waktunya untuk membimbing dalam proses penyusunan tugas akhir ini.
2. Bapak Ir. Iswanjono, M.T selaku penguji.
3. Bapak Ir. Tjendro selaku penguji.
4. Bapak Damar Widjaja, ST , MT selaku penguji.
5. Mas Broto Mardi, mas Suryo, Hardi yang telah membantu dalam penyediaan alat di Lab.
6. Bapak dan ibu dosen pada Jurusan Teknik Elektro yang telah membagi dan
mengajarkan banyak ilmu kepada penulis.
7. Bapak, Ibu, kakak_kakakku mas didik,mas dwi, mas wawan dan adiku ambar
trimakasih atas dukungannya selama ini.8. Tim hibahku Koko dan franki, matur nuwun frend.
9. Tim hibah PHK andry cs, galuh, nandy, indra , hernomo, sulis dan tim phk yang lain.
ix
10. Lamro, terimakasih atas bantuannya.
11. Teman seperjuanganku Boss, Kecap ST, Niko, Yasta ST, Bowok, Joko, marcel, danang, kumis, widi ST, wahyu, Aas, Ignas, Kim ST , Bram ST, Rinto ST, David ST, Irwan ST, Purnomo ST, Aan ST, Agus Florent ST, Robert ST, Wayan ST, Arnold ST, Wisnu ST , serta semua angkatan TE 2000.
12. Anak-anak kost putra “pondok lawu ” wawan, wiwit, panjol, indra, ki topek, tam, nur, dedi, yudi, dilli, venus, nando, dwik, Mas welly mbak nia, ibuk.
13. Anak-anak kost putra Tangkadas, herri, simbah,sinung,pandi charles, terimakasih.
14. Teman-teman operator warnet GARDENet & JUPITERnet, Mas ardi & mbak tanti, bambang, vero, teo, kang ari, bertus, haning dan teman2 OP yang lain thank's.
Penulis menyadari bahwa penulisan skripsi ini masih banyak terdapat kesalahan dan kekurangannya, maka dari itu kritik dan saran sangat diharapkan dari berbagai pihak agar penulis dapat lebih maju dan lebih baik.
Akhirnya penulis juga berharap semoga karya tulis ini bermanfaat bagi pembaca, sekian dan terima kasih.
Yogyakarta………… Penulis Andreas Oktavianto x
DAFTAR ISI
Halaman HALAMAN JUDUL………………………………………………………… i HALAMAN JUDUL BAHASA INGGRIS ………………………………….. ii HALAMAN PERSETUJUAN………………………………………………. .. iii HALAMAN PENGESAHAN ………………………….…………..………… iv PERNYATAAN KEASLIAN KARYA………………………….….………… v HALAMAN PERSEMBAHAN……………………..………………………… vi
INTISARI……………………………………………………………................ vii
ABSTRACT……………………………………………………………............ viii
KATA PENGANTAR…………………………………………………………. ix DAFTAR ISI…………………………………………………………………… xi DAFTAR TABEL……………………………………………………………… xv DAFTAR GAMBAR…………………………………………………............... xvi DAFTAR LAMPIRAN………………………………………………………. .. xxi BAB I. PENDAHULUAN……………………………………….………….1 1.1 judul………………………………………………………………… 1 1.2 Latar Belakang Masalah……………………………………..............
1
xi
1.3 Batasan Masalah………………………..…………………………….
2.5. Rangkaian reset …………………………………………… 12
2.6.6 Instruksi Pengarah aliran program…………………………… 23
2.6.5 Instruksi-instruksi Operasi bit ……………………………….. 22
2.6.4 Instruksi-instruksi aritmatika dan logika ………………. …… 21
2.6.3 Instruksi-instruksi transfer data ……………………………… 20
2.6.2 Instruksi-intruksi untuk seri PIC16……………………........... 20
2.6.1 Arsitektur PIC16F877…………………….…………. ............ 18
2.6. Mikrokontroller PIC16F877 …………………………………… …… 15
2.4. LCD………………………………………………………………… 8
2
1.4 Tujuan Penelitian…………………………………………………..
2.2. Pengukuran kecepatan dengan metode generator ……………. ……. 7 2.3. pengkondis sinyal …………………………………………………. . 8
5 2.1. beberapa macam cara pengukuran putaran motor ………………….. 5
4 BAB II. DASAR TEORI…………………………………………………….
3
1.7 Sistematika Penulisan……………………………………...............
3
1.6 Metodologi penelitian………………………………………...........
1.5 Manfaat Penelitian…………………………………………………
2
2.6.7 Instruksi-intruksi lain ………………………………… …….. 24 xii
2.6.8 Register khusus……………………………………………….. 25
BAB III PERANCANGAN ALAT ……………………………………. …… 28
3.1 Perancangan perangkat keras……………………………………….. 28
3.1.1 Perancangan perangkat keras untuk metode tachogenerator… 29
3.2 Pengamatan sensor tachogenerator………………………………….. 30
3.3 Perancangan pengkondisi sinyal …………………………………… 36
3.4 Perancangan ADC…………………………………………………… 37
3.5 Perancangan antarmuka LCD dengan Mikrokontroler……………… 37
3.6 Rangkaian reset……………………………………………………… 39
3.7
40 Perancangan perangkat lunak ……………………………………….
3.8 Penjelasan diagram alir utama ……………………………………… 41
3.8.1 Diagram alir program utama …………………..…………..
41 BAB IV. DATA DAN PEMBAHASAN………………………………………. 44
4.1 Hasil akhir perancangan ……………………………………………... 44
4.2 Pengukuran kecepatan putaran motor dengan multimeter……………... 45
4.3 Perbandingan data hasil pengukuran menggunakan multimeter terhadap data pengukuran dengan alat ……………………………… 46
4.4 Pembahasan………………………………………………………….
49 BAB V KESIMPULAN DAN SARAN ……………………………………… 51 5.1 Kesimpulan …………………………………………………………...
51
xiii
5.2 Saran…………………………………………………………………...
51 DAFTAR PUSTAKA …………………………………………………………….. 52 LAMPIRAN………………………………………………………………………. L1
xiv
DAFTAR TABEL Hal Tabel 2.1 Display LCD HD44780U.........................................................
11 Tabel 2.2 Nama setiap pin pada PIC16F877 ...........................................
16 Tabel 2.3 Kemampuan yang ada pada PIC16F877.................................
17 Tabel 2.4 Instruksi pada PIC16F877................. ......................................
21 Tabel 3.1 Data hasil pengamatan pada tachogenerator..........................
32 Tabel 3.2 Selisih setiap kenaikan putaran motor dan kenaikan
34 tachogenerator..........................................................................
Tabel 4.1 Perbandingan data hasil pengukuran menggunakan42 multimeter terhadap data pengukuran dengan alat .................
Tabel 4.2 percobaan dengan memberikan input alat ukur berupa48 tegangan……………………………………………………… xv
DAFTAR GAMBAR Hal Gambar 2.1 Pengukuran menggunakan metode generator..........................
32 Gambar 3.6 Grafik perbandingan antara kecepatan puataran motor dengan tegangan yang dihasilkan oleh tachogenerator …....
45 Gambar 4.3 Pengukuran kecepatan putaran motor menggunakan alat ukur dan multimeter………………………………………….
44 Gambar 4.2 Pengukuran kecepatan putaran motor dengan multimeter......
41 Gambar 4.1 Alat ukur kecepatan putaran motor.........................................
40 Gambar 3.12 Diagaram alir proses pengolahan pada mikrokontroler agar data dapat ditampilkan ke LCD ..............................................
38 Gambar 3.11 Diagram alir program utama...................................................
38 Gambar 3.10 Rangkaian reset.......................................................................
38 Gambar 3.9 Tampilan nama dan nama mahasiswa.....................................
36 Gambar 3.8 Antarmuka LCD dengan Mikrokontroler................................
33 Gambar 3.7 Rangkaian pembagi tegangan.................................................
31 Gambar 3.5 Percobaan untuk mengetahui karakteristik tachogenerator….
5 Gambar 2.2 Pengukuran menggunakan photo reflector pada tachometer.. 5 Gambar 2.3 Pengukuran menggunakan photo interuptor...........................
29 Gambar 3.4 Motor tachogenerator............................................................
29 Gambar 3.3 menangkap putaran mesin dengan cara menempelkan bagian motor yang akan diukur……………………………..
28 Gambar 3.2 Menangkap putaran mesin dengan cara mencapit ujung motor yang akan diukur………………………………………
25 Gambar 3.1 Diagram blok alat pengukur kecepatan motor.......................
18 Gambar 2.10 Format register status………………………………………..
15 Gambar 2.9 Arsitektur Mikrokontroler PIC16F877………………………
10 Gambar 2.7 Reset active low...................................................................... 14 Gambar 2.8 Mikrokontroler PIC16F877………………………………….
8 Gambar 2.6 Display LCD 2 × 16 karakter..................................................
7 Gambar 2.5 Rangkaian pembagi tegangan..................................................
6 Gambar 2.4 Bagian-bagian dari tachogenerator DC...................................
46 xvi
1
BAB I PENDAHULUAN
1.1 Judul Aplikasi Mikrokontroler PIC16F877 sebagai alat ukur kecepatan putaran motor.
1.2 Latar Belakang Masalah Pengukuran merupakan suatu kegiatan yang penting untuk mengetahui
ukuran sesuatu. Pengukuran yang dilakukan di laboratorium, terutama
laboratorium otomotif antara lain: pengukuran suhu (meliputi suhu radiator, suhu
oli pelumas dan suhu saluran gas buang), pengukuran kecepatan putaran motor
dan lain-lain.Metode yang banyak digunakan untuk mengukur kecepatan putaran motor
yaitu menggunakan tachometer. Kelemahan menggunakan metode ini yaitu
diperlukan waktu pengukuran minimal 1 detik. Perubahan kecepatan tidak segera
tampak. Untuk putaran motor (mesin) perubahan kecepatan dapat terjadi kurang
dari 1 detik. Pada penelitian ini akan dirancang dan diimplementasikan suatu alat
ukur kecepatan motor menggunakan metode tachogenerator berbasis
mikrokontroler PIC16F877. Dengan metode ini diharapkan pengukuran kecepatanbisa lebih cepat. Hasil yang akan dicapai adalah tersedianya suata alat ukur
kecepatan putaran motor yang dapat mengukur dan menampilkan hasil
pengukuran dengan tampilan berupa LCD.2
1.3 Tujuan Tujuan dari perancangan dan pembuatan alat ini adalah membuat peralatan
yang dapat dipakai untuk mengukur kecepatan putaran motor per menit (rpm),
dengan jangkauan pengukuran hingga 10000 RPM. Hasil pengukuran
ditampilkan menggunakan tampilan berupa LCD 2x16.1.4 Batasan Masalah Alat ukur kecepatan putaran motor yang dirancang mempunyai batasan masalah sebagai berikut : 1. Jangkaun pengukuran kecepatan putaran hingga 10000 RPM.
2. Hasil pengukuran di tampilkan pada LCD.
3. Pengukuran dalam satuan RPM (Rotation per minute)
1.5 Manfaat
Manfaat yang dapat dicapai dari penelitian ini, antara lain : 1. Menambah literatur tentang aplikasi mikrokontroler menggunakan PIC.
2. Dapat dijadikan sebagai acuan dalam pengembangan terhadap aplikasi mikrokontroler PIC16F877.
I.6. Metodologi Penelitian
Pada penelitian ini, penulis menggunakan langkah-langkah sebagai berikut:
3
1. Perumusan masalah, yaitu bagaimana mengimplementasikan suatu alat ukur kecepatan putaran motor.
2. Pengumpulan dokumen pendukung, berupa buku-buku dan data sheet
yang berhubungan dengan elektronika dan mikrokontroler.
3. Perancangan untuk menyelesaikan masalah, berupa perhitungan matematis, penentuan komponen dan nilai-nilai yang digunakan, menggambar rangkaian serta membentuk diagram alir.
4. Implementasi dari perancangan.
5. Pengambilan data dengan melakukan pengukuran di lab.
6. Pengolahan data dengan membandingkan hasil pengukuran dengan hasil perhitungan matematis.
7. Penyajian data dengan grafik dari hasil percobaan dan perhitungan matematis.
8. Penulisan laporan.
I.7 Sistematika Penulisan
Penulis melakukan penelitian dengan merancang alat dan mengambil data
dari alat yang telah dirancang tersebut. Laporan penelitian dibagi menjadi 5 bab
yang secara singkat dapat dijelaskan sebagai berikut:
BAB I Memuat pendahuluan yang berisi latar belakang penelitian, batasan
masalah, tujuan dan manfaat penelitian, metodologi penelitian, serta sistematika penulisan laporan.4
BAB II Berisi dasar teori yang dipakai oleh penulis untuk melakukan penelitian. BAB III Berisi tentang perancangan alat yang terdiri dari diagram blok, perhitungan nilai komponen, gambar tiap rangkaian beserta diagram alir program. BAB
IV Berisi data hasil percobaan alat yang telah dibuat beserta pembahasannya.
BAB V Berisi kesimpulan dari penelitian yang telah dilakukan serta saran yang dianggap perlu.
5
BAB II DASAR TEORI II.1 Beberapa Macam Cara Pengukuran Putaran Motor Untuk pengukuran kecepatan putaran motor terdapat beberapa cara
diantaranya :
1. Pengukuran kecepatan dengan metode generator
Gambar 2.1 Pengukuran menggunakan metode generator Pada gambar 2.1 jika motor berputar maka generator akan ikutberputar,sehingga akan menimbulkan tegangan. Tegangan yang timbul pada generator sebanding dengan kecepatan putar motor.
2. Pengukuran menggunakan photo reflector pada tachometer
Gambar 2.2 Pengukuran menggunakan photo reflector padatachometer Tachometer pada gambar 2.2 menghasilkan sinar dan pada sumbu motor dipasang suatu lapisan yang dapat memantulkan sinar.
6 Banyaknya pulsa yang masuk ke tachometer menunjukkan kecepatan putaran motor.
3. Pengukuran menggunakan photo interuptor
Gambar 2.3 Pengukuran menggunakan photo interuptor Motor pada gambar 2.3 di beri piringan yang bercelah, piringan berputarsesuai dengan kecepatan motor. Piringan ditempatkan pada sensor photo interuptor, dan menghasilkan pulsa yang sebanding dengan kecepatan dan cacah celah piring.
4. Pengukuran menggunakan stroboscope Stroboscope merupakan suatu alat yang berkedip dan dapat diatur kedipannya, bila kedipannya sebanding dengan putaran maka akan membentuk suatu pola tertentu.
Beberapa cara diatas hanya merupakan beberapa contoh pengukuran putaran
motor.7
II.2 Pengukuran Kecepatan Motor Dengan Metode Tachogenerator
Pengukuran menggunakan metode putaran (photo interuptor) memerlukan pengukuran sebesar satu detik. Untuk putaran motor (mesin) perubahan kecepatan
dapat terjadi dalam waktu kurang satu detik. Pada penelitian ini akan dicoba
pengukuran kecepatan motor menggunakan metode generator.Gambar 2.4 Bagian-bagian dari tachogenerator DC Sensor yang sering digunakan untuk sensor kecepatan angular adalah
tachogenerator. Tachogenerator adalah sebuah generator kecil yang
membangkitkan tegangan DC ataupun tegangan AC. Dari segi eksitasi
tachogenerator dapat dibangkitkan dengan eksitasi dari luar atau imbas
elektromagnit dari magnit permanen.Tachogenerator DC dapat membangkitkan tegangan DC yang langsung
dapat menghasilkan informasi kecepatan, sensitivitas tachogenerator DC cukup
baik terutama pada daerah kecepatan tinggi. Tachogenerator DC yang bermutu
tinggi memiliki kutub-kutub magnit yang banyak sehingga dapat menghasilkan
tegangan DC dengan riak gelombang yang berfrekuensi tinggi sehingga mudah
8
diratakan. Tegangan yang timbul pada generator sebanding dengan kecepatan
putar motor. Pada saat terjadi putaran ,maka motor DC akan menghasilkan
tegangan induksi yang besarnya sebanding dengan kecepatan putar.V ≅ emf ω V = K . emf e Ω ………………………………………………………. (2.1)
Dengan K merupakan konstanta
ω merupakan kecepatan sudut motor dan e
motor, semakin cepat motor berputar maka tegangan induksi yang terjadi juga
sangat besar. Dengan melakukan kalibrasi maka tegangan yang timbul dari
tachogenerator dapat di buat menjadi skala kecepatan .II.3 Pengkondisi Sinyal
Output dari tachogenerator sangat besar, biasanya melebihi dari tegangan
input ADC dari mikrokontroler, oleh karena itu diperlukan suatu pengkondisi
sinyal. Rangakaian pembagi tegangan diperlukan agar output tachogenerator
bisa disesuiakan dengan input ADC dari mikrokontroler.Gambar 2.5 Rangkaian pembagi tegangan9 Dari gambar 2.5 Vout dapat dicari dengan :
R
1 Vo = Vin ……………………………………..(2.2)
1 II.4 LCD (Liquid Crystal Display ) LCD (Liquid Crystal Display) adalah suatu tampilan (display) dari bahan
cairan kristal yang dioperasikan dengan menggunakan sistem dot matriks. Pada
perancangan alat ini digunakan Display LCD 2 × 16 karakter, yang artinya LCD
ini memiliki 2 baris dan 16 kolom karakter, sehingga jumlah total karakter yang
dapat ditampilkan sekaligus adalah sebanyak 32 karakter. Masing-masing karakter
tersebut terbentuk dari susunan dot yang berukuran 8 baris dan 5 kolom dot.2 R + R
Jenis LCD yang digunakan dalam perancangan alat ini adalah LCD
HD44780U. Interface LCD HD44780U dengan mikrokontroler dapat dilakukan
dengan sistem 4-bit ataupun 8-bit.LCD yang dipakai pada alat pencacah ini menggunakan sistem pengiriman
data 8-bit dan diperlukan 10 jalur data untuk berhubungan dengan sistem
mikrokontroler PIC16F877. Kesepuluh jalur data tersebut adalah : 1.Delapan jalur data untuk mengirimkan data instruksi dan data karakter yang akan ditampilkan, kedelapan jalur tersebut secara berurutan yaitu kaki 7 (DB0), kaki 8 (DB1), kaki 9 (DB2), kaki 10 (DB3), kaki 11 (DB4), kaki 12 (DB5), kaki 13 (DB6), kaki 14 (DB7).
2. Dua jalur lainnya adalah kaki 4 (RS/Register select), dan kaki 6 (E/Enable).
10
Gambar 2.6. Display LCD 2 × 16 karakter HD44780U memiliki beberapa bagian, yaitu:1. Register HD44780U memiliki dua buah register 8-bit, yaitu IR (Instruction Register ) dan DR (Data Register). IR merupakan register yang hanya dapat ditulis untuk menyimpan kode-kode instruksi seperti clear display, cursor shift, dan juga untuk alamat dari DDRAM (display data RAM) ataupun CGRAM (Character Generator RAM). Sedangkan DR (Data Register ) merupakan register yang dapat ditulis maupun dibaca untuk penyimpanan sementara data yang akan ditulis atau dibaca dari atau kedalam DDRAM ataupun CGRAM.
2. BF (Busy Flag) Jika BF berlogika ‘1’ maka driver HD44780U akan menjalankan operasi internal, sehingga instruksi selanjutnya tidak dapat dijalankan. Maka untuk dapat menjalankan instruksi selanjutnya perlu diperiksa apakah BF
11
tersebut berlogika ‘0’, atau dapat juga dilakukan dimana pengiriman data
selanjutnya dilakukan dalam waktu yang lebih lama dari waktu yang
dibutuhkan untuk melakukan eksekusi instruksi data sebelumnya.3. AC (Address Counter) Fungsi AC adalah untuk mengalamati DDRAM dan juga CGRAM.
4. DDRAM (Display Data RAM) DDRAM digunakan untuk menyimpan tampilan data yang
direpresentasikan dalam bentuk 8-bit kode karakter. DDRAM memiliki
kapasitas 80× 8 bit atau jenis 80 karakter.5. CGROM (Character Generator ROM)
CGROM merupakan RAM (Read Only Memory) berukuran 64× 8 bit yang
memungkinkan pemakai untuk memprogram bentuk karakter yangdiinginkan. LCD yang digunakan adalah LCD buatan Hitachi dengan
driver HD44780U yang memiliki 16 pin seperti yang ditunjukkan pada
tabel berikut:Tabel 2.1 Display LCD HD44780U Nomor Pin Simbol Nomor Simbol1 V EE (0V)
9 DB2
2 V CC (5V)
10 DB3
3 GND (0V)
11 DB4
4 RS 12 DB5
5 R/W 13 DB6
6 E 14 DB7
7 DB0 15 A
8 DB1 16 K
12 Deskripsi pin:
1. DB0 s/d DB7, merupakan jalur data yang dipakai untuk menyalurkan kode ASCII maupun perintah pengatur kerja LCD tersebut.
2. RS (Register Select), merupakan pin yang dipakai untuk membedakan jenis data yang dikirim ke LCD. Jika RS berlogika ‘0’ maka data yang dikirim adalah perintah untuk mengatur kerja LCD tersebut, jika RS berlogika ‘1’ maka data yang dikirim adalah kode ASCII yang ditampilkan.
3. R/W (Read/Write), merupakan pin yang digunakan untuk mengaktifkan pengiriman dan pengambilan data ke dan dari LCD. Jika R/W berlogika ‘0’ maka akan diadakan pengiriman data ke LCD, jika R/W berlogika ‘1’ maka akan diadakan pengambilan data dari LCD.
4. E (Enable), merupakan sinyal sinkronisasi. Saat E berubah dari logika ‘1’ ke ‘0’, maka data di DB0 s/d DB7 akan diterima atau diambil dari port mikrokontroler.
5. A (Anoda) dan K (Katoda), merupakan pin yang digunakan untuk menyalakan backlight dari layer LCD.
II.5 Rangkaian Reset
Reset digunakan untuk mengembalikan mikrokontroler pada kondisi
awal. Pada keadaan tertentu, mikrokontroler dapat memasuki kondisi tak tentu
akibat terjebak dalam suatu loop atau sebab lain. Hal ini semacam “hang up” pada
komputer.13 Pada saat mikroprosesor mendapat reset, alamat dari Program Counter (PC) pada mikroprosesor akan otomatis berisi nilai paling kecil ataupun paling besar (tergantung arsitektur dari prosesor) dimana nilai pada Program Counter tersebut menunjuk ke alamat program yang paling awal yang terdapat di dalam ROM. Rangkaian reset harus bisa menjamin, bahwa ketika sistem mendapat daya, reset harus otomatis terjadi atau yang lebih dikenal dengan Power on Reset, hal ini fungsinya untuk menjamin bahwa mikroprosesor memulai mengambil instruksi dari awal program. Secara umum rangkaian untuk melakukan reset terdiri dari 2 macam, yakni:
1. Reset active high : reset akan terjadi bila pada pin reset mendapat logika 1 selama beberapa saat.
2. Reset active low : reset akan terjadi bila pada pin reset mendapat logika 0 selama beberapa saat..
Pada kebanyakan mikroprosesor dibutuhkan waktu beberapa saat pin reset mendapat logika 1 supaya terjadi reset, tetapi untuk PIC16F77 diberikan logika 0 untuk reset, sehingga yang digunakan dalam perancangan ini adalah rangkaian reset active low. gambarnya dapat dilihat pada gambar 2.7.
14
Gambar 2.7 Reset active low Pada saat pertama rangkaian di atas mendapat power, tegangan pada titik
x (tegangan kapasitor) akan sama dengan 0, sehingga terjadi reset. pada saat
muatan di kapasitor terisi dan mendekati penuh, maka pada titik x akan mulai
muncul tegangan, yang dianggap oleh pin reset sebagai logika 1, sehingga reset
pun tidak terjadi. Pada saat tombol ditekan, seluruh muatan pada kapasitor
maupun tegangan yang mengalir pada R akan dialirkan semua ke ground (titik
yang lebih rendah), sehingga titik x akan berlogika 0 dan terjadilah reset. Waktu
reset tersebut dapat dihitung dengan rumus T = RC. Untuk keamanan dan untuk
mencegah bouncing dari tombol reset yang dapat menyebabkan reset terjadi
beberapa kali meskipun tombol cuma sekali ditekan, maka ada baiknya pin reset
diberi logika 0 selama lebih kurang 20 - 100 ms. Cara menanggulanginya adalah
dengan mengatur nilai pada resistor dan kapasitor yang mempengaruhi lama
15 pengisian dan pembuangan muatan dari kapasitor. Cara untuk menentukan nilai ini ialah dengan mencari konstanta waktu (
τ ), dengan τ = R.C. Nilai τ
menunjukkan waktu yang dibutuhkan kapasitor untuk melakukan
charging / discharging sebesar 63,7 % dari tegangan catu, dan waktu yang dibutuhkan untuk charging / discharging penuh ialah 5 kali konstanta waktu (5.τ). Umumnya nilai R untuk rangkaian reset berkisar antara 1-10 k Ω dan untuk C berkisar antara 0,1 - 10 µF.
II.6 Mikrokontroler PIC16F877
Berikut merupakan mikrokontroler yang akan digunakan pada perancangan, yaitu PIC16F877.
Gambar 2.8 Mikrokontroler PIC16F87716
Tabel 2.2 Nama setiap pin PIC16F877Pin Number Description
1 MCLR/Vpp - Master clear input (active low)
2 RA0/AN0 - Port A
3 RA1/AN1 - Port A
4 RA2/AN2/Vref/CVref - Port A
5 RA3/AN3/Vref - Port A
6 RA4/TOCK1/C1OUT - Port A
7 RA5/AN4/SS/C2OUT - Port A
8 RE0/RD/AN5 - Port E
9 RE1/WR/AN6 - Port E
10 RE2/CS/AN7 - Port E
11 Vdd - Positive Power Supply
12 Vss - Ground
13 OSC1/CLKIN - Oscillator
14 OSC2/CLKOUT - Osciallator
15 RC0/T1OSO/T1CKI - Port C
16 RC1/T1OSI/CCP2 - Port C
17 RC2/CCP1 - Port C
18 RC3/SCK/SCL - Port C
19 RD0/PSP0 - Port D
20 RD1/PSP1 - Port D
21 RD2/PSP2 - Port D
22 RD3/PSP3 - Port D
23 RC4/SDI/SDO - Port C
24 RC5/SDO - Port C
25 RC6/TX/CK - Port C
26 RC7/RX/DT - Port C
27 RD4/PSP4 - Port D
28 RD5/PSP5 - Port D
29 RD6/PSP6 - Port D
30 RD7/PSP7 - Port D
31 Vss - Ground
32 Vdd - Positive Power Supply
33 RB0/INT - Port B
34 RB1 - Port B
17
Tabel 2.2 (Lanjutan) Nama setiap pin PIC16F877Pin Number Description
35 RB2 - Port B
36 RB3/PGM - Port B
37 RB4 - Port B
38 RB5 - Port B
39 RB6/PGC - Port B
40 RB7/PGD - Port Mikrokontroler PIC16F877 merupakan mikrokontroler yang dikembangkan dan diproduksi oleh perusahaan Microchip. Mikrokontroler
PIC16F877 termasuk dalam mikrokontroler 8 bit, yang berarti dapat melakukan pengolahan data sebanyak 8 bit secara langsung.
Tabel 2.3 Kemampuan yang ada pada PIC16F877 yaitu sebagai berikut :FITUR PIC16F877
Max operating freq
20Mhz Flash Program Memory ( 14 bit word )
1K Data Memory (byte) 368 EEPROM (byte) 256 I/O port
Port A,B,C,D,E
Interupsi 14
Timer 3 ADC10 bit, 8 ch
Komunikasi USART
18
II.6.1 Arsitektur PIC16F877
Gambar 2.9 Arsitektur mikrokontroler PIC16F877 Bagian-bagian utama dari mikrokontroler PIC16F877 (gambar 2.2), yaitu:1. ALU Merupakan bagian mikrokontroler yang bertanggungjawab terhadap operasi aritmatika (penjumlahan dan pengurangan) dan logika, termasuk pergeseran dalam register (shifting).
19
2. Memori Program
Memori program direalisasikan dalam teknologi FLASH, memori yang
memungkinkan pemrogram melakukan program hapus-tulis hingga berulang kali.3. Program counter
Merupakan suatu register 13 bit yang berisi alamat instruksi yang sedang
dieksekusi. Program Counter terbagi menjadi byte rendah (PCL) dan byte
tinggi (PCH). PCL bersifat dapat dibaca dan ditulis, sedangkan PCH hanya
dapat ditulis.4. Register status Register status berisi status aritmatika dan ALU (C,DC,Z), status reset (TO,PD) dan bit-bit pemilih memori (IRP, RP1, RP0).
5. Pembangkit clock - osilator Rangkaian osilator yang dibutuhkan oleh mikrokontroler untuk menyediakan clock bagi mikrokontroler.
6. Unit I/O
Agar mikrokontroler dapat berkomunikasi dengan dunia luar, maka harus
ada terminal yang menghubungkan keduanya. Terminal tersebutdinamakan port I/O yang dialamati sebagaimana layaknya lokasi memori.
Ada 33 I/O dalam PIC16F877.
7. Timer
Timer digunakan untuk keperluan menghasilkan tunda, mencacah pulsa,
mengetahui keberadaan proses yang sedang berlangsung, dan sebagainya.
20
8. A/D converter Digunakan untuk mengubah sinyal analog menjadi sinyal digital.
9. USART Digunakan untuk berkomunikasi secara serial dengan PC.
II.6.2 Instruksi-instruksi Untuk Seri PIC16 Mikrokontroler seri PIC16 tergolong mikrokontroler jenis RISC sehingga
instruksi yang digunakan relatif sedikit, hanya 35 instruksi. Instruksi-instruksi
tersebut tersebut terdiri atas 6 instruksi untuk transfer data, 15 instruksi untuk
operasi aritmatika dan logika, 2 instruksi pengarah aliran program dan instruksi
umum.II.6.3 Instruksi-instruksi Transfer Data Transfer data dalam mikrokontroler dilakukan antara register kerja “w”
(working register) dan register file F (baik GPR maupun SFR). Instruksi transfer
data digunakan untuk memindahkan data antar register.1. movlw = digunakan untuk memindahkan nilai literal ke register W.
Dengan instruksi ini kita dapat memuati register W dengan nilai tertentu. 2. movwf = digunakan untuk ,e,indah kan isi register W ke register f. Dengan instruksi ini kita dapat menyalin isi register W ke register f. Dalam hal ini isi register W tidak berubah.
3. movf = digunakan untuk memindahakan isi register f ke register W jika d=0 atau ke register f jika d=1.
4. clrw = digunakan untuk membersihkan isi register W. Dengan instruksi ini register W akan diisi dengan 00h.
21
5. clrf = digunakan untuk membersihkan register f. Register f akan diisi nilai 00h.
6. swapf = digunakan untuk saling menukarkan 4 bit (nibble) atas dengan 4 bit (nibble) bawah pada register f dan hasilnya dletakkan pada tujuan d.
II.6.4 Instruksi-instruksi Aritmatika Dan Logika
Mikrokontroler PIC seri 16 hanya mengenal operasi aritmatika berupa
penjumlahan dan pengurangan. Bendera C, DZ, dan Z akan ditetapkan menurut
hasil dari operasi ini, dengan satu pengecualian, pengurangan dilakukan sebagai
penjumlahan terhadap nilai negatif. Unit logika pada seri PIC16 dapat melakukan
operasi AND, OR (Inclusive OR), XOR, COMF, dan rotasi RLF/RRF.1. addlw = digunakan untuk menjumlakan suatu literal dengan register W, dan hasilnya disimpan di register W.
2. addwf = digunakan untuk menjumlahkan isi register W dengan register f, kemudian hasilnya disimpan di tujuan d.
3. sublw = digunakan untuk mengurangkan isi register W dari suatu nilai literal, hasilnya disimpan di register W.
4. subwf = digunakan untuk mengurangkan isi register W dari register f, hasilnya disimpan di tujuan d.
5. andlw = digunakan untuk melakukan operasi logika AND antara nilai literal dengan register W. Hasil operasi diletakkan kembali di register W.
6. andwf = digunakan untuk operasi logika AND antara register W dengan register f, hasil disimpan di tujuan d.
22
7. iorlw = digunakan untuk melakukan operasi OR antara register W dengan nilai literal k. Hasil operasi ini disimpan di register W.
8. iorwf = digunakan untuk operasi logika OR antara register W dengan register f, hasilnya ditempatkan di tujuan d.