- Bersiap untuk Pemrograman:
- Membuat Proyek Baru menggunakan MPLAB-X:
- Mengenal Register Konfigurasi:
- Mengatur Konfigurasi Bits di MPLAB-X:
- Memprogram PIC untuk Mengedipkan LED:
- Diagram Sirkuit dan Simulasi Proteus:
Ini adalah tutorial kedua dari Seri Tutorial PIC kami. Dalam tutorial kami sebelumnya Memulai dengan Mikrokontroler PIC: Pengenalan PIC dan MPLABX, kami mempelajari hal-hal dasar tentang mikrokontroler PIC kami, kami juga menginstal perangkat lunak yang diperlukan dan membeli programmer PicKit 3 baru yang akan segera kami gunakan. Sekarang kita siap untuk memulai Program kedipan LED pertama menggunakan PIC16F877A. Kita juga akan belajar tentang Register Konfigurasi dalam tutorial ini.
Tutorial ini mengharapkan bahwa Anda telah menginstal perangkat lunak yang diperlukan di Komputer Anda dan Anda mengetahui beberapa dasar yang layak tentang PIC MCU. Jika tidak, silakan kembali ke tutorial sebelumnya dan mulai dari sana.
Bersiap untuk Pemrograman:
Karena kita telah memutuskan untuk menggunakan PIC16F877A, dengan kompilator XC8 mari kita mulai dengan lembar datanya. Saya menyarankan semua orang untuk mengunduh Lembar Data PIC16F877A dan manual Kompilator XC8, karena kami akan sering merujuk ke ini saat kami melanjutkan tutorial kami. Itu selalu merupakan praktik yang baik untuk membaca Lembar Data lengkap dari setiap MCU sebelum kita benar-benar memulai pemrograman dengannya.
Sekarang, sebelum kita membuka MPLAB-X dan memulai pemrograman, ada beberapa hal dasar yang harus diperhatikan. Ngomong-ngomong, karena ini adalah program pertama kami, saya tidak ingin memarahi Anda orang-orang dengan banyak teori tetapi kami akan berhenti di sana-sini saat kami memprogram dan saya akan menjelaskan hal-hal seperti itu kepada Anda. Jika Anda tidak memiliki cukup waktu untuk membaca semua ini, lihat sekilas dan lompat ke video di bagian bawah halaman.
Membuat Proyek Baru menggunakan MPLAB-X:
Langkah 1: Luncurkan MPLAB-X IDE yang kami instal di kelas sebelumnya, setelah dimuat akan terlihat seperti ini.
Langkah 2: Klik Files -> New Project, atau gunakan hotkey Ctrl + Shift + N. Anda akan mendapatkan POP-UP berikut, dari mana Anda harus memilih Proyek Mandiri dan klik Berikutnya.
Langkah 3: Sekarang kita harus memilih Perangkat kita untuk proyek tersebut. Jadi ketik PIC16F877A di atas bagian dropdown Select Device . Setelah selesai seharusnya seperti ini dan kemudian Klik Berikutnya.
Langkah 4: Halaman berikutnya akan memungkinkan kita memilih alat untuk proyek kita. Ini akan menjadi PicKit 3 untuk proyek kami. Pilih PicKit 3 dan klik berikutnya
Langkah 5: Halaman selanjutnya akan meminta untuk memilih compiler, pilih Compiler XC8 dan klik next.
Langkah 6: Di halaman ini kita harus memberi nama proyek kita dan memilih lokasi di mana proyek harus disimpan. Saya telah menamai Proyek ini sebagai Blink dan menyimpannya di desktop saya. Anda dapat memberi nama dan menyimpannya dengan cara yang Anda sukai. Proyek kami akan disimpan sebagai folder dengan Ekstensi .X, yang dapat langsung diluncurkan oleh MAPLB-X. Klik Selesai setelah selesai.
Langkah 7: Itu saja !!! Proyek kami telah dibuat. Jendela paling kiri akan menampilkan nama proyek (Disini Blink), klik di atasnya sehingga kita dapat melihat semua direktori di dalamnya.
Untuk memulai pemrograman kita perlu menambahkan file C Main, di dalam direktori file Source kita. Untuk melakukan ini cukup klik kanan pada file sumber dan pilih New -> C File Utama, seperti yang ditunjukkan pada gambar di bawah ini.
Langkah 8: Kotak dialog berikut akan muncul di mana nama file-C harus disebutkan. Saya telah menyebutkan di Blink lagi, tetapi pilihan ada di tangan Anda. Beri nama di kolom Nama file dan klik selesai.
Langkah 9: Setelah File utama C dibuat, IDE akan membukanya untuk kita dengan beberapa kode default di dalamnya, seperti yang ditunjukkan di bawah ini.
Langkah 10: Sekarang kita bisa mulai memprogram kode kita di File C-main. Kode default tidak akan digunakan dalam tutorial kami. Jadi mari kita hapus semuanya.
Mengenal Register Konfigurasi:
Sebelum mulai memprogram Mikrokontroler, kita harus mengetahui tentang register konfigurasinya.
Jadi apa register Konfigurasi ini, bagaimana dan mengapa kita harus mengaturnya?
Perangkat PIC memiliki beberapa lokasi yang berisi bit Konfigurasi atau sekering. Bit ini menentukan operasi perangkat dasar, seperti mode osilator, pengatur waktu pengawas, mode pemrograman dan perlindungan kode. Bit-bit ini harus diatur dengan benar untuk menjalankan kode, jika tidak, kami memiliki perangkat yang tidak berjalan . Jadi, sangat penting untuk mengetahui tentang Register konfigurasi ini bahkan sebelum kita memulai Program Blink kita.
Untuk menggunakan register Konfigurasi ini, kita harus membaca Lembar Data dan memahami apa saja jenis bit Konfigurasi yang tersedia dan fungsinya. Bit ini dapat disetel atau disetel ulang berdasarkan persyaratan pemrograman kami menggunakan pragma konfigurasi.
Pragma memiliki bentuk-bentuk berikut.
#pragma config setting = state-value #pragma config register = value
di mana pengaturan adalah deskriptor pengaturan konfigurasi, misalnya, WDT, dan status adalah deskripsi tekstual dari status yang diinginkan, misalnya, OFF. Perhatikan contoh berikut.
#pragma config WDT = ON // nyalakan timer pengawas #pragma config WDTPS = 0x1A // tentukan nilai timer postscale
BERSANTAI!!….. SANTAI !!…. SANTAI !!…...
Saya tahu itu telah terlalu banyak di kepala kita dan pengaturan bit Konfigurasi ini mungkin tampak agak sulit bagi seorang pemula !! Tapi, ini tidak dengan MPLAB-X kami.
Mengatur Konfigurasi Bits di MPLAB-X:
Microchip telah membuat proses yang melelahkan ini jauh lebih mudah dengan menggunakan representasi grafis dari berbagai jenis bit Konfigurasi. Jadi sekarang untuk mengaturnya, kita hanya perlu mengikuti langkah-langkah di bawah ini.
Langkah 1: Klik pada Window -> PIC Memory View -> Configuration Bits. Seperti gambar dibawah ini.
Langkah 2: Ini akan membuka jendela Configuration Bits di bagian bawah IDE kami seperti yang ditunjukkan di bawah ini. Ini adalah tempat di mana kita dapat mengatur setiap bit konfigurasi sesuai dengan kebutuhan kita. Saya akan menjelaskan setiap bit dan tujuannya saat kita melanjutkan langkah-langkahnya.
Langkah 3: Bit pertama adalah bit pilihan osilator.
PIC16F87XA dapat dioperasikan dalam empat mode osilator yang berbeda. Keempat mode ini dapat dipilih dengan memprogram dua bit konfigurasi (FOSC1 dan FOSC0):
- LP Low-Power Crystal
- XT Crystal / Resonator
- Kristal / Resonator Berkecepatan Tinggi HS
- Resistor / Kapasitor RC
Untuk proyek kami, kami menggunakan Osc 20Mhz sehingga kami harus memilih HS dari kotak dropdown.
Langkah 4: Bit berikutnya adalah pengatur waktu pengawas kami, Aktifkan Bit.
Watchdog Timer adalah osilator RC on-chip yang berjalan bebas dan tidak memerlukan komponen eksternal apa pun. Osilator RC ini terpisah dari osilator RC pin OSC1 / CLKI. Itu berarti bahwa WDT akan berjalan meskipun jam pada pin OSC1 / CLKI dan OSC2 / CLKO perangkat telah dihentikan. Selama operasi normal, waktu habis WDT menghasilkan Reset perangkat (Watchdog Timer Reset). Bit TO dalam register Status akan dihapus setelah Watchdog Timer habis. Jika pengatur waktu tidak dihapus dalam pengkodean perangkat lunak kami maka seluruh MCU akan diatur ulang setiap kali WDT pengatur waktu overflow. WDT dapat dinonaktifkan secara permanen dengan membersihkan bit konfigurasi.
Kami tidak menggunakan WDT dalam program kami jadi mari kita bersihkan, dengan memilih MATI dari kotak dropdown.
Langkah 5: Bit selanjutnya adalah Power-up timer Bit.
Timer Penyalaan memberikan batas waktu nominal 72 ms tetap pada penyalaan hanya dari POR. Powerup Timer beroperasi pada osilator RC internal. Chip disimpan dalam Reset selama PWRT aktif. Penundaan waktu PWRT memungkinkan VDD naik ke tingkat yang dapat diterima. Bit konfigurasi disediakan untuk mengaktifkan atau menonaktifkan PWRT.
Kami tidak akan membutuhkan penundaan seperti itu dalam program kami, jadi mari kita matikan juga.
Langkah 6: Bit berikutnya adalah Pemrograman Tegangan Rendah.
Bit LVP dari kata konfigurasi memungkinkan pemrograman ICSP tegangan rendah. Mode ini memungkinkan mikrokontroler diprogram melalui ICSP menggunakan sumber VDD dalam rentang tegangan operasi. Ini hanya berarti bahwa VPP tidak harus dibawa ke VIHH tetapi dapat dibiarkan pada tegangan operasi normal. Dalam mode ini, pin RB3 / PGM didedikasikan untuk fungsi pemrograman dan tidak lagi menjadi pin I / O tujuan umum. Selama pemrograman, VDD diterapkan ke pin MCLR. Untuk masuk ke mode Programming, VDD harus diterapkan ke RB3 / PGM asalkan bit LVP diatur.
Mari kita matikan LVP agar kita dapat menggunakan RB3 sebagai pin I / O. Untuk melakukan ini, cukup MATIKAN ini menggunakan kotak dropdown.
Langkah 7: Bit berikutnya adalah EEPROM dan bit Perlindungan memori Program. Jika bit ini diaktifkan, setelah MCU diprogram, tidak ada yang akan mengambil program kami dari perangkat keras. Tapi untuk saat ini mari kita biarkan ketiganya dalam keadaan MATI.
Setelah pengaturan dilakukan seperti yang diinstruksikan, kotak Dialog akan terlihat seperti ini.
Langkah 8: Sekarang klik Generate Source Code to Output, kode kami akan dibuat sekarang cukup salin bersama dengan file header dan tempelkan pada File C Blink.c kami, seperti yang ditunjukkan di bawah ini.
Itu saja pekerjaan Konfigurasi kami selesai. Kami dapat memiliki konfigurasi ini untuk semua proyek kami. Tetapi jika Anda tertarik, Anda bisa main-main dengan mereka nanti.
Memprogram PIC untuk Mengedipkan LED:
Dalam program ini kita akan menggunakan mikrokontroler PIC untuk mengedipkan LED yang terhubung ke pin I / O. Mari kita lihat pin I / O berbeda yang tersedia di PIC16F877A kami.
Seperti yang ditunjukkan di atas PIC16F877 memiliki 5 port input / output dasar. Mereka biasanya dilambangkan dengan PORT A (RA), PORT B (RB), PORT C (RC), PORT D (RD), dan PORT E (RE). Porta ini digunakan untuk antarmuka input / output. Dalam pengontrol ini, "PORT A" hanya memiliki lebar 6 bit (RA-0 hingga RA-5), "PORT B", "PORT C", "PORT D" hanya memiliki lebar 8 bit (RB-0 hingga RB-7, RC-0 hingga RC-7, RD-0 hingga RD-7), ”PORT E” hanya memiliki lebar 3 bit (RE-0 hingga RE-2).
Semua port ini dua arah. Arah port diatur dengan register TRIS (X) (TRIS A digunakan untuk mengatur arah PORT-A, TRIS B digunakan untuk mengatur arah PORT-B, dll.). Pengaturan bit TRIS (X) '1' akan mengatur bit PORT (X) yang sesuai sebagai input. Menghapus bit TRIS (X) '0' akan menetapkan bit PORT (X) yang sesuai sebagai output.
Untuk proyek kami, kami harus membuat pin RB3 dari PORT B sebagai output sehingga LED kami dapat terhubung dengannya. Berikut kode LED berkedip dengan mikrokontroler PIC:
#include
Pertama kita telah menentukan frekuensi Crystal eksternal menggunakan #define _XTAL_FREQ 20000000. Kemudian dalam fungsi void main () , kita menginstruksikan MCU kita bahwa kita akan menggunakan RB3 sebagai pin keluaran (TRISB = 0X00;) . Kemudian akhirnya loop sementara tak terbatas digunakan sehingga LED berkedip terus selamanya. Untuk mengedipkan LED, kita harus menyalakan dan mematikannya dengan penundaan yang nyata.
Setelah pengkodean selesai, buat Proyek menggunakan perintah Run -> Build Main Project. Ini harus mengkompilasi program Anda. Jika semuanya baik-baik saja (sebagaimana mestinya) Konsol output di bagian bawah layar akan menampilkan pesan BUILD SUCCESSFUL, seperti yang ditunjukkan pada gambar di bawah.
Diagram Sirkuit dan Simulasi Proteus:
Setelah kami membangun Proyek dan jika Build berhasil, file HEX akan dibuat di latar belakang IDE kami. File HEX ini dapat ditemukan di dalam direktori di bawah ini
Ini mungkin berbeda untuk Anda jika Anda telah menyimpannya di beberapa lokasi lain.
Sekarang, mari kita dengan cepat membuka Proteus yang telah kita instal sebelumnya dan membuat skema untuk proyek ini. Kami tidak akan menjelaskan bagaimana melakukan ini karena itu di luar ruang lingkup proyek ini. Namun tidak perlu khawatir, hal tersebut dijelaskan dalam video di bawah ini. Setelah Anda mengikuti instruksi dan membangun skema itu akan terlihat seperti ini
Untuk mensimulasikan output, klik tombol putar di sudut kiri bawah layar setelah memuat file Hex. Ini harus Blink LED yang terhubung ke RB3 dari MCU. Jika Anda memiliki masalah di dalamnya, silakan tonton videonya, jika masih belum teratasi gunakan bagian komentar untuk bantuan.
Sekarang kami telah membuat proyek pertama kami dengan mikrokontroler PIC dan memverifikasi keluarannya menggunakan perangkat lunak simulasi. Pergi dan sesuaikan dengan program dan amati hasilnya. Sampai kita bertemu di proyek kita selanjutnya.
Ohh tunggu !!
Dalam proyek kami berikutnya, kami akan belajar bagaimana membuatnya bekerja pada perangkat keras yang sebenarnya. Untuk itu kita membutuhkan alat-alat berikut agar mereka tetap siap. Sampai saat itu SELAMAT BELAJAR !!
- PicKit 3
- IC PIC16F877A
- 40 - pin penahan IC
- Papan kinerja
- 20Mhz Crystal OSC
- Pin Bergstick Wanita dan Pria
- 33pf Kapasitor - 2Nos
- Resistor 680 ohm
- LED warna apa saja
- Kit solder.