- Bersedia untuk Pengaturcaraan:
- Membuat Projek Baru menggunakan MPLAB-X:
- Mengenal Daftar Konfigurasi:
- Menetapkan Bit Konfigurasi dalam MPLAB-X:
- Memprogram PIC untuk Mengedipkan LED:
- Diagram Litar dan Simulasi Proteus:
Ini adalah tutorial kedua Siri Tutorial PIC kami. Dalam tutorial kami yang lalu Memulakan Mikrokontroler PIC: Pengenalan kepada PIC dan MPLABX, kami mempelajari perkara asas mengenai mikrokontroler PIC kami, kami juga memasang perisian yang diperlukan dan membeli pengaturcara PicKit 3 baru yang akan segera kami gunakan. Sekarang kita sudah bersedia untuk memulakan Program Berkedip LED Pertama kami menggunakan PIC16F877A. Kami juga akan mengetahui mengenai Configuration Register dalam tutorial ini.
Tutorial ini menjangkakan bahawa anda telah memasang perisian yang diperlukan pada Komputer anda dan anda mengetahui beberapa asas yang baik mengenai PIC MCU. Sekiranya tidak, sila kembali ke tutorial sebelumnya dan mulakan dari sana.
Bersedia untuk Pengaturcaraan:
Oleh kerana kami telah memutuskan untuk menggunakan PIC16F877A, dengan penyusun XC8 mari kita mulakan dengan lembar data mereka. Saya mengesyorkan kepada semua orang untuk memuat turun PIC16F877A Datasheet dan XC8 Compiler manual, kerana kita akan sering merujuknya semasa kita menjalani tutorial ini. Menjadi amalan yang baik untuk membaca Lembaran Data lengkap mana-mana MCU sebelum kita benar-benar memulakan program dengannya.
Sekarang, sebelum kita membuka MPLAB-X dan memulakan pengaturcaraan, ada beberapa perkara asas yang harus kita perhatikan. Bagaimanapun, kerana ini adalah program pertama kami, saya tidak mahu menganiaya anda dengan banyak teori tetapi kami akan berhenti di sana sini semasa kami memprogram dan saya akan menerangkan perkara-perkara seperti itu. Sekiranya anda tidak mempunyai cukup masa untuk membaca semua ini, lihat sekilas dan terjun ke video di bahagian bawah halaman.
Membuat Projek Baru menggunakan MPLAB-X:
Langkah 1: Lancarkan IDL MPLAB-X yang kami pasang di kelas sebelumnya, setelah dimuatkan ia akan kelihatan seperti ini.
Langkah 2: Klik pada Fail -> Projek Baru, atau gunakan hotkey Ctrl + Shift + N. Anda akan mendapat POP-UP berikut, dari mana anda harus memilih Projek Berdiri dan klik Seterusnya.
Langkah 3: Sekarang kita harus memilih Peranti kita untuk projek tersebut. Oleh itu, taipkan sebagai PIC16F877A di bahagian dropdown Select Device . Setelah selesai hendaklah seperti ini dan kemudian Klik Next.
Langkah 4: Halaman seterusnya akan membolehkan kita memilih alat untuk projek kita. Ini adalah PicKit 3 untuk projek kami. Pilih PicKit 3 dan klik seterusnya
Langkah 5: Halaman seterusnya akan meminta untuk memilih penyusun, pilih Penyusun XC8 dan klik seterusnya.
Langkah 6: Di halaman ini kita harus menamakan projek kita dan memilih lokasi di mana projek itu harus disimpan. Saya telah menamakan Projek ini sebagai Blink dan menyimpannya di desktop saya. Anda boleh menamakan dan menyimpannya dengan cara yang anda suka. Projek kami akan disimpan sebagai folder dengan Extension .X, yang dapat dilancarkan secara langsung oleh MAPLB-X. Klik Selesai setelah selesai.
Langkah 7: Itu sahaja !!! Projek kami telah dibuat. Tetingkap paling kiri akan menunjukkan nama projek (Here Blink), klik padanya sehingga kita dapat melihat semua direktori di dalamnya.
Untuk memulakan pengaturcaraan, kita perlu menambahkan file C Main, di dalam direktori file Source kami. Untuk melakukan ini, klik kanan pada fail sumber dan pilih Baru -> Fail Utama C, seperti yang ditunjukkan dalam gambar di bawah.
Langkah 8: Kotak dialog berikut akan muncul di mana nama C-file harus disebutkan. Saya telah namakan di Blink lagi, tetapi pilihannya diserahkan kepada anda. Namakannya di ruangan Nama fail dan klik selesai.
Langkah 9: Setelah Fail utama C dibuat, IDE akan membukanya untuk kami dengan beberapa kod lalai di dalamnya, seperti yang ditunjukkan di bawah.
Langkah 10: Itu sahaja sekarang kita boleh mula memprogramkan kod kita dalam Fail utama C Kod lalai tidak akan digunakan dalam tutorial kami. Oleh itu mari kita hapuskannya sepenuhnya.
Mengenal Daftar Konfigurasi:
Sebelum memulakan program mana-mana Mikrokontroler kita harus mengetahui mengenai daftar konfigurasinya.
Oleh itu, apakah daftar konfigurasi ini, bagaimana dan mengapa kita harus menetapkannya?
Peranti PIC mempunyai beberapa lokasi yang mengandungi bit atau sekering Konfigurasi. Bit ini menentukan operasi asas peranti, seperti mod pengayun, pemasa pengawas, mod pengaturcaraan dan perlindungan kod. Bit ini mesti diset dengan betul untuk menjalankan kod jika tidak, kami mempunyai peranti yang tidak berjalan . Oleh itu, adalah sangat penting untuk mengetahui mengenai Daftar konfigurasi ini sebelum kita memulakan Program Blink kita.
Untuk menggunakan register Konfigurasi ini, kita harus membaca Lembar Data dan memahami apa jenis bit Konfigurasi yang tersedia dan fungsinya. Bit ini dapat diset atau diset semula berdasarkan keperluan pengaturcaraan kami menggunakan pragma konfigurasi.
Pragma mempunyai bentuk berikut.
#pragma config setting = state-value #pragma config register = nilai
di mana pengaturan adalah deskriptor pengaturan konfigurasi, misalnya, WDT, dan keadaan adalah keterangan teks dari keadaan yang diinginkan, misalnya, MATI. Pertimbangkan contoh berikut.
#pragma config WDT = ON // hidupkan pemantau pengawas #pragma config WDTPS = 0x1A // tentukan nilai skala timer pemasa
RELAX !!….. RELAX !!…. RELAX !!…...
Saya tahu ia terlalu banyak difikirkan dan menetapkan bit Konfigurasi ini mungkin agak sukar bagi pemula !! Tetapi, itu tidak dengan MPLAB-X kami.
Menetapkan Bit Konfigurasi dalam MPLAB-X:
Microchip telah menjadikan proses melelahkan ini lebih mudah dengan menggunakan gambaran grafik dari pelbagai jenis bit Konfigurasi. Jadi sekarang untuk menetapkannya, kita hanya perlu mengikuti langkah-langkah di bawah.
Langkah 1: Klik pada Window -> PIC Memory View -> Configuration Bits. Seperti yang ditunjukkan di bawah.
Langkah 2: Ini akan membuka tetingkap Configuration Bits di bahagian bawah IDE kami seperti yang ditunjukkan di bawah. Ini adalah tempat di mana kita dapat menetapkan setiap bit konfigurasi mengikut keperluan kita. Saya akan menerangkan setiap bit dan tujuannya semasa kita melalui langkah-langkahnya.
Langkah 3: Bit pertama adalah bit pemilihan pengayun.
PIC16F87XA boleh dikendalikan dalam empat mod pengayun yang berbeza. Keempat mod ini dapat dipilih dengan memprogram dua bit konfigurasi (FOSC1 dan FOSC0):
- Kristal Kuasa Rendah LP
- XT Crystal / Resonator
- Crystal / Resonator Berkelajuan Tinggi HS
- Perintang / Kapasitor RC
Untuk projek kami, kami menggunakan 20Mhz Osc oleh itu kami harus memilih HS dari kotak dropdown.
Langkah 4: Bit seterusnya adalah pemasa pengawas kami Enable Bit.
Watchdog Timer adalah pengayun RC on-chip berjalan bebas yang tidak memerlukan komponen luaran. Pengayun RC ini terpisah dari pengayun RC pin OSC1 / CLKI. Ini bermaksud bahawa WDT akan berjalan walaupun jam pada pin OSC1 / CLKI dan OSC2 / CLKO pada peranti telah dihentikan. Semasa operasi biasa, tamat waktu WDT menghasilkan Reset peranti (Watchdog Timer Reset). Bit TO dalam daftar Status akan dibersihkan setelah tamat masa Pemantau Pengawas. Sekiranya pemasa tidak dihapus dalam pengekodan perisian kami, maka keseluruhan MCU akan diset semula pada setiap limpahan pemasa WDT. WDT boleh dilumpuhkan secara kekal dengan membersihkan bit konfigurasi.
Kami tidak menggunakan WDT dalam program kami, jadi marilah kita menghapuskannya, dengan memilih OFF dari kotak dropdown.
Langkah 5: Bit seterusnya adalah Power-up pemasa Bit.
Power-up Timer memberikan penghentian nominal 72 ms tetap pada power-up hanya dari POR. Powerup Timer beroperasi pada pengayun RC dalaman. Cip disimpan dalam Reset selagi PWRT aktif. Kelewatan masa PWRT membolehkan VDD meningkat ke tahap yang boleh diterima. Bit konfigurasi disediakan untuk mengaktifkan atau mematikan PWRT.
Kami tidak memerlukan kelewatan dalam program kami, jadi marilah kita mematikannya juga.
Langkah 6: Bit seterusnya adalah Pengaturcaraan Voltan Rendah.
Bit LVP kata konfigurasi membolehkan pengaturcaraan ICSP voltan rendah. Mod ini membolehkan mikrokontroler diprogramkan melalui ICSP menggunakan sumber VDD dalam julat voltan operasi. Ini hanya bermaksud bahawa VPP tidak harus dibawa ke VIHH tetapi sebaliknya boleh ditinggalkan pada voltan operasi biasa. Dalam mod ini, pin RB3 / PGM didedikasikan untuk fungsi pengaturcaraan dan tidak lagi menjadi pin I / O tujuan umum. Semasa pengaturcaraan, VDD diterapkan pada pin MCLR. Untuk memasuki mod Pengaturcaraan, VDD mesti digunakan pada RB3 / PGM dengan syarat bit LVP ditetapkan.
Mari kita matikan LVP supaya kita dapat menggunakan RB3 sebagai pin I / O. Untuk melakukan ini, cukup MATI ini menggunakan kotak lungsur.
Langkah 7: Bit seterusnya adalah EEPROM dan bit Perlindungan memori Program. Sekiranya bit ini dihidupkan, setelah MCU diprogramkan, tidak ada yang akan mengambil program kami dari perkakasan. Tetapi buat masa ini mari kita biarkan ketiga-tiganya dimatikan.
Setelah tetapan dilakukan seperti yang diperintahkan, kotak Dialog akan kelihatan seperti ini.
Langkah 8: Sekarang klik pada Hasilkan Kod Sumber ke Keluaran, kod kami akan dihasilkan sekarang hanya salin bersama dengan fail tajuk dan tampal di Blink.c C-File kami, seperti yang ditunjukkan di bawah.
Itu sahaja kerja Konfigurasi kita selesai. Kita boleh mempunyai konfigurasi ini untuk semua projek kita. Tetapi jika anda berminat, anda boleh membacanya kemudian.
Memprogram PIC untuk Mengedipkan LED:
Dalam program ini kita akan menggunakan mikrokontroler PIC kita untuk mengedipkan LED yang disambungkan ke pin I / O. Mari lihat pin I / O berbeza yang terdapat di PIC16F877A kami.
Seperti yang ditunjukkan di atas PIC16F877 mempunyai 5 port input / output asas. Mereka biasanya dilambangkan dengan PORT A (RA), PORT B (RB), PORT C (RC), PORT D (RD), dan PORT E (RE). Port ini digunakan untuk input / output antara muka. Dalam alat kawalan ini, "PORT A" hanya selebar 6 bit (RA-0 hingga RA-5), "PORT B", "PORT C", "PORT D" hanya selebar 8 bit (RB-0 hingga RB-7, RC-0 hingga RC-7, RD-0 hingga RD-7), "PORT E" hanya mempunyai lebar 3 bit (RE-0 hingga RE-2).
Semua port ini adalah dua arah. Arah port dikendalikan dengan menggunakan register TRIS (X) (TRIS A digunakan untuk menetapkan arah PORT-A, TRIS B digunakan untuk menetapkan arah untuk PORT-B, dll.). Menetapkan bit TRIS (X) '1' akan menetapkan bit PORT (X) yang sesuai sebagai input. Menghapus bit TRIS (X) '0' akan menetapkan bit PORT (X) yang sesuai sebagai output.
Untuk projek kami, kami mesti menjadikan pin RB3 PORT B sebagai output supaya LED kami dapat dihubungkan dengannya. Berikut adalah kod untuk LED berkelip dengan mikrokontroler PIC:
#sertakan
Mula-mula kami telah menentukan frekuensi Kristal luaran menggunakan #define _XTAL_FREQ 20000000. Kemudian dalam fungsi utama () kosong , kami mengarahkan MCU kami bahawa kami akan menggunakan RB3 sebagai pin output (TRISB = 0X00;) . Kemudian akhirnya gelung sementara yang tidak terhingga digunakan sehingga LED berkelip berterusan selama-lamanya. Untuk mengedipkan LED kita harus mematikan dan mematikannya dengan kelewatan yang ketara.
Setelah pengekodan selesai, bina Projek menggunakan arahan Run -> Build Main Project. Ini mesti menyusun program anda. Sekiranya semuanya baik-baik saja (Seperti seharusnya) Konsol keluaran di bahagian bawah skrin akan menunjukkan mesej BANGUN BERJAYA, seperti yang ditunjukkan dalam gambar di bawah.
Diagram Litar dan Simulasi Proteus:
Setelah kami membina Projek dan sekiranya Build berjaya, fail HEX akan dihasilkan di latar belakang IDE kami. Fail HEX ini terdapat di dalam direktori di bawah
Mungkin berbeza bagi anda sekiranya anda menyimpan di beberapa lokasi lain.
Sekarang, marilah kita dengan cepat membuka Proteus yang telah kita pasang lebih awal dan membuat skema untuk projek ini. Kami tidak akan menjelaskan bagaimana melakukan ini kerana ia tidak termasuk dalam skop projek ini. Tetapi jangan risau, ini dijelaskan dalam video di bawah. Sebaik sahaja anda mengikuti arahan dan membina skema, ia akan kelihatan seperti ini
Untuk mensimulasikan output, klik pada butang putar di sudut kiri bawah skrin setelah memuatkan fail Hex. Mesti Blink LED yang disambungkan ke RB3 MCU. Sekiranya anda mempunyai masalah di dalamnya, sila tonton videonya, jika masih tidak dapat diselesaikan, gunakan bahagian komen untuk mendapatkan bantuan.
Sekarang kami telah membuat projek pertama kami dengan mikrokontroler PIC dan mengesahkan hasilnya menggunakan perisian simulasi. Pergi ke program ini dan perhatikan hasilnya. Sehingga kita bertemu pada projek seterusnya.
Ohh tunggu !!
Dalam projek seterusnya kami akan belajar bagaimana membuat ini berfungsi pada perkakasan sebenar. Untuk itu, kami memerlukan alat berikut agar sentiasa siap. Sehingga itu SELAMAT MENGAJAR !!
- PicKit 3
- PIC16F877A IC
- Pemegang IC 40 - pin
- Papan Perf
- OSM Crystal 20Mhz
- Pin Bergstick wanita dan lelaki
- Kapasitor 33pf - 2Nos
- Perintang 680 ohm
- LED warna apa pun
- Kit pematerian.