Pemrograman PIC 16F877A Menggunakan MikroC PIC; oleh Wakhyu Dwiono Hak Cipta 2015 pada penulis GRAHA ILMU Ruko Jambusari 7A Yogyakarta 55283 Telp: 0274-882262; 0274-889398; Fax: 0274-889057; E-mail: info@grahailmu.co.id Hak Cipta dilindungi undang-undang. Dilarang memper banyak atau memindahkan sebagian atau seluruh isi buku ini dalam bentuk apa pun, secara elektronis maupun mekanis, termasuk memfotokopi, merekam, atau dengan teknik perekaman lainnya, tanpa izin tertulis dari penerbit. ISBN: 978-602-262-466-0 Cetakan Pertama, tahun 2015 Semua informasi tentang buku ini, silahkan scan QR Code di cover belakang buku ini
BAB... KATA PENGANTAR A lhamdulillah penulis ucapkan ke hadirat Allah SWT, atas selesainya penulisan buku Pemrograman PIC 16F877A menggunakan MikroC PIC. Buku ini ditujukan bagi, mahasiswa/ pelajar atau pehobi elektronika, di dalamnya berisi dasar pemrograman mikrokontroler yang disertai contoh-contoh sederhana, sehingga sangat cocok bagi pemula untuk belajar mikrokontroler. Mikrokontroler adalah merupakan sistem mikroprosesor yang memuat memori data dan program, input/output paralel dan serial, serta interupsi. Dengan kondisi yang seperti itu maka mikrokontroler merupakan mikroprosesor sistem embedded. Salah satu mikrokontroler yang telah banyak dikenal adalah PIC, produk dari Microchip. Mikrokontroler ini telah banyak diaplikasikan dalam otomasi industri. Buku ini terdiri dari 8 bab yaitu: Bab 1 membahas tentang dasar mikrokontroler Bab 2 membahas tentang fitur-fitur PIC 16F877A Bab 3 membahas tentang dasar bahasa pemrograman c Bab 4 membahas tentang alat bantu pemrograman
vi Pemrograman PIC 16F877A Menggunakan MikroC PIC Bab 5 membahas tentang pengaksesan I/O serta interupsi eksternal Bab 6 membahas tentang timer dan interupsinya Bab 7 membahas tentang input/output analog Bab 8 membahas tentang komunikasi serial Dalam kesempatan ini penulis menyampaikan terima kasih kepada Istriku Hana Afifah, serta anak-anakku Chipa dan Hamzah yang memberikan semangat selama ini. Penulis menyadari bahwa buku ini masih jauh dari kesempurnaan, oleh karenanya penulis sangat menghargai saran dan masukan dari semua pembaca. Pekanbaru, Desember 2014 Wakhyu Dwiono
BAB... DAFTAR ISI KATA PENGANTAR DAFTAR ISI DAFTAR GAMBAR DAFTAR TABEL v vii ix xiii BAB I SISTEM MIKROKONTROLER 1 1.1 Pendahuluan 1 1.2 Arsitektur Mikrokontroler 2 1.3 Sistem Bilangan 4 BAB II MIKROKONTROLER PIC 16F877A 7 2.1 Fitur-fitur PIC 16F877A 7 2.2 Port I/O 9 2.3 Rangkaian PIC 16F877A 10 BAB III PEMROGRAMAN C 13 3.1 Tipe Data 14 3.2 Variabel 15 3.3 Pointer 17 3.4 Konstanta 17 3.5 Array 18
viii Pemrograman PIC 16F877A Menggunakan MikroC PIC 3.6 Operator 18 3.7 Pengendalian Aliran Program 21 3.8 Fungsi 25 3.9 Library pada MikroC PIC 26 BAB IV DEVELOPMENT TOOLS 29 4.1 MikroC IDE 29 4.2 PIC ICSP Programmer 36 4.3 Cara Memprogram PIC 16F877A 38 BAB V MENGAKSES I/O 43 5.1 LCD Character 43 5.2 Saklar Tekan dan Keypad 48 5.3 LED 7 Ruas 61 5.4 Interupsi Eksternal 65 BAB VI TIMER DAN INTERUPSI TIMER 69 6.1 Timer 0 70 6.2 Timer 1 77 6.3 Timer 2 80 BAB VII INPUT DAN OUTPUT ANALOG 85 7.1 ADC (Analog to Digital Converter) 85 7.2 Pemrograman ADC 89 7.3 PWM (Pulse Width Modulation) 96 BAB VIII KOMUNIKASI SERIAL 101 8.1 Komunikasi Asinkron 101 8.2 I2C 111 DAFTAR PUSTAKA 121 -oo0oo-
BAB... DAFTAR GAMBAR Gambar 1.1 Arsitektur Von Neumann 3 Gambar 1.2 Arsitektur Harvard 3 Gambar 2.1 Pin Out PIC16F877A 8 Gambar 2.2 Rangkaian Dasar Sistem Mikrokontroler 10 PIC16F877A Gambar 3.1 Gambar Tampilan Program Sederhana 13 Gambar 4.1 Tampilan MikroC IDE 30 Gambar 4.2 Jendela Project Setting dan Code Explorer 30 Gambar 4.3 Jendela Routine List dan Project Manager 31 Gambar 4.4 Jendela Project Explorer dan Library Manager 31 Gambar 4.5 Rangkaian LED Berjalan 32 Gambar 4.6 Icon mikroc IDE 32 Gambar 4.7 Jendela Project Baru 33 Gambar 4.8 Jendela Form Project Setting 34 Gambar 4.9 Jendela Form Penambahan File 34 dalam Project Gambar 4.10 Jendela Pilihan Kondisi Awal Library Manager 35 Gambar 4.11 Jendela Editor Project Baru (Led.c) 35 Gambar 4.12 Tampilan Pesan Proses Build dari Led.c, 36 Ketika Tidak Ada Kesalahan Gambar 4.13 Programmer USB ICSP K150 Buatan Kitsrus 37
x Pemrograman PIC 16F877A Menggunakan MikroC PIC Gambar 4.14 Rangkaian eksperimen PIC 16F877A 38 Gambar 4.15 Tampilan PIC PRO dengan Status Connected 39 Gambar 4.16 Memilih Mode ICSP pada PICPRO 40 Gambar 4.17 Memilih file HEX untuk Diisikan ke PIC16F877A 40 Gambar 4.18 Konfirmasi Pemrograman PIC16F877A 41 Gambar 4.19 Pengisian Program ke dalam ROM PIC16F877A 41 Sedang Berlangsung Gambar 5.1 Model LCD character 2 16 43 Gambar 5.2 Penyambungan LCD Character ke PIC16F877A 45 Gambar 5.3 Perangkat Input Menggunakan Keypad 48 dan Saklar Tekan Gambar 5.4 Rangkaian Input Push Button 54 Gambar 5.5 Rangkaian Saklar Tekan Sebagai Keypad 57 Gambar 5.6 Penyambungan Keypad ke PORT 61 (Misalkan ke PORTC) Gambar 5.7 Display LED 7 Ruas 61 Gambar 5.8 LED 7 Ruas Tiga Digit 63 Gambar 5.9 Diagram Pengaktifan Interupsi 66 Gambar 5.10 Rangkaian Uji Interupsi Eksternal 67 Gambar 6.1 Struktur Timer 0 69 Gambar 6.2 Penghasil Jeda Waktu 1 Detik 73 Gambar 6.3 Tampilan Waktu Menggunakan LCD Display 77 Gambar 6.4 Struktur Timer 1 77 Gambar 6.5 Struktur Timer 2 80 Gambar 6.6 Rangkaian LED yang Dikendalikan Menggunakan 84 Interupsi Timer 1 dan 2 Gambar 7.1 Ilustrasi Konversi Data Analog 3 Bit 86 Gambar 7.2 Flash ADC 3 Bit 86 Gambar 7.3 Successive Approximation ADC 8 Bit 87 Gambar 7.4 Flowchart dari Successive Approximation 89 ADC 8 Bit Gambar 7.5 Pengaturan Rata Kiri dan Kanan Register ADC 91 Gambar 7.6 Rangkaian Uji ADC pada Input AN0 94 Gambar 7.7 Sinyal PWM dan Padanan Nilai DC-ny 97