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 oleh

ANDREAS 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

iv

  Pernyataan 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 bit

  Alat 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 in

speed 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 state

  In 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 karena

pimpinan 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 menggunakan

  42 multimeter terhadap data pengukuran dengan alat .................

Tabel 4.2 percobaan dengan memberikan input alat ukur berupa

  48 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 kecepatan

bisa 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 ikut

  berputar,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 pada

  tachometer 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 berputar

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

  Vemf ω 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 tegangan

  9 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 yang

diinginkan. 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 Simbol

  1 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 PIC16F877

  16

Tabel 2.2 Nama setiap pin PIC16F877

  Pin 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 PIC16F877

  Pin 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 ADC

  10 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 tersebut

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