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:
[email protected] Hak Cipta dilindungi undang-undang. Dilarang memperbanyak 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 Pendahuluan 1.2 Arsitektur Mikrokontroler 1.3 Sistem Bilangan
1 1 2 4
BAB II
MIKROKONTROLER PIC 16F877A 2.1 Fitur-fitur PIC 16F877A 2.2 Port I/O 2.3 Rangkaian PIC 16F877A
7 7 9 10
BAB III
PEMROGRAMAN C 3.1 Tipe Data 3.2 Variabel 3.3 Pointer 3.4 Konstanta 3.5 Array
13 14 15 17 17 18
viii
Pemrograman PIC 16F877A Menggunakan MikroC PIC
3.6 3.7 3.8 3.9
Operator Pengendalian Aliran Program Fungsi Library pada MikroC PIC
18 21 25 26
BAB IV
DEVELOPMENT TOOLS 4.1 MikroC IDE 4.2 PIC ICSP Programmer 4.3 Cara Memprogram PIC 16F877A
29 29 36 38
BAB V
MENGAKSES I/O 5.1 LCD Character 5.2 Saklar Tekan dan Keypad 5.3 LED 7 Ruas 5.4 Interupsi Eksternal
43 43 48 61 65
BAB VI
TIMER DAN INTERUPSI TIMER 6.1 Timer 0 6.2 Timer 1 6.3 Timer 2
69 70 77 80
BAB VII
INPUT DAN OUTPUT ANALOG 7.1 ADC (Analog to Digital Converter) 7.2 Pemrograman ADC 7.3 PWM (Pulse Width Modulation)
85 85 89 96
BAB VIII
KOMUNIKASI SERIAL 8.1 Komunikasi Asinkron 8.2 I2C
DAFTAR PUSTAKA
101 101 111 121
-oo0oo-
BAB ..... DAFTAR GAMBAR
Gambar 1.1 Gambar 1.2 Gambar 2.1 Gambar 2.2 Gambar 3.1 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12 Gambar 4.13
Arsitektur Von Neumann Arsitektur Harvard Pin Out PIC16F877A Rangkaian Dasar Sistem Mikrokontroler PIC16F877A Gambar Tampilan Program Sederhana Tampilan MikroC IDE Jendela Project Setting dan Code Explorer Jendela Routine List dan Project Manager Jendela Project Explorer dan Library Manager Rangkaian LED Berjalan Icon mikroC IDE Jendela Project Baru Jendela Form Project Setting Jendela Form Penambahan File dalam Project Jendela Pilihan Kondisi Awal Library Manager Jendela Editor Project Baru (Led.c) Tampilan Pesan Proses Build dari Led.c, Ketika Tidak Ada Kesalahan Programmer USB ICSP K150 Buatan Kitsrus
3 3 8 10 13 30 30 31 31 32 32 33 34 34 35 35 36 37
x
Gambar 4.14 Gambar 4.15 Gambar 4.16 Gambar 4.17 Gambar 4.18 Gambar 4.19
Pemrograman PIC 16F877A Menggunakan MikroC PIC
Rangkaian eksperimen PIC 16F877A Tampilan PIC PRO dengan Status Connected Memilih Mode ICSP pada PICPRO Memilih file HEX untuk Diisikan ke PIC16F877A Konfirmasi Pemrograman PIC16F877A Pengisian Program ke dalam ROM PIC16F877A Sedang Berlangsung Gambar 5.1 Model LCD character 2×16 Gambar 5.2 Penyambungan LCD Character ke PIC16F877A Gambar 5.3 Perangkat Input Menggunakan Keypad dan Saklar Tekan Gambar 5.4 Rangkaian Input Push Button Gambar 5.5 Rangkaian Saklar Tekan Sebagai Keypad Gambar 5.6 Penyambungan Keypad ke PORT (Misalkan ke PORTC) Gambar 5.7 Display LED 7 Ruas Gambar 5.8 LED 7 Ruas Tiga Digit Gambar 5.9 Diagram Pengaktifan Interupsi Gambar 5.10 Rangkaian Uji Interupsi Eksternal Gambar 6.1 Struktur Timer 0 Gambar 6.2 Penghasil Jeda Waktu 1 Detik Gambar 6.3 Tampilan Waktu Menggunakan LCD Display Gambar 6.4 Struktur Timer 1 Gambar 6.5 Struktur Timer 2 Gambar 6.6 Rangkaian LED yang Dikendalikan Menggunakan Interupsi Timer 1 dan 2 Gambar 7.1 Ilustrasi Konversi Data Analog 3 Bit Gambar 7.2 Flash ADC 3 Bit Gambar 7.3 Successive Approximation ADC 8 Bit Gambar 7.4 Flowchart dari Successive Approximation ADC 8 Bit Gambar 7.5 Pengaturan Rata Kiri dan Kanan Register ADC Gambar 7.6 Rangkaian Uji ADC pada Input AN0 Gambar 7.7 Sinyal PWM dan Padanan Nilai DC-ny
38 39 40 40 41 41 43 45 48 54 57 61 61 63 66 67 69 73 77 77 80 84 86 86 87 89 91 94 97