- Bahan yang Diperlukan:
- Memori kilat:
- ICSP.
- Litar dan Perkakasan:
- Membakar Kod menggunakan MPLAB IPE:
Dalam dua tutorial sebelumnya, kami membincangkan Cara Memulakan PIC menggunakan kompiler MPLABX dan XC8, kami juga telah membuat Program Berkedip LED Pertama kami dengan PIC dan mengesahkannya melalui simulasi. Kini tiba masanya untuk kita menggunakan perkakasan. Dalam tutorial ini kita akan membina litar kecil di Papan Perf untuk Berkedip LED menggunakan PIC. Kami akan membuang program ke mikrokontroler PIC kami dan mengesahkan LED Berkelip. Untuk Program PIC MCU kami akan menggunakan MPLAB IPE.
Bahan yang Diperlukan:
Seperti yang dibincangkan dalam tutorial sebelumnya, kita memerlukan bahan berikut:
- PicKit 3
- PIC16F877A IC
- 40 - Pemegang IC pin
- Papan Perf
- OSC Crystal 20 MHz
- Pin Bergstick wanita dan lelaki
- Kapasitor 33pf - topi 2Nos, 100uf dan 10uf.
- Perintang 680 ohm, 10K dan 560ohm
- LED warna apa pun
- Kit pematerian 1
- IC 7805
- Penyesuai 12V
Apa yang berlaku apabila kita "Membakar" Pengawal Mikro !!
Ini adalah amalan biasa untuk memuat naik kod ke dalam MCU dan membuatnya berfungsi di dalam MCU.
Untuk memahami ini, mari lihat program kami
Seperti yang kita lihat, kod ini ditulis dalam C-Language dan tidak masuk akal bagi MCU kita. Di sinilah bahagian penyusun kami masuk; yang Compiler adalah salah satu yang menukarkan kod ini ke dalam bentuk yang boleh dibaca mesin. Bentuk mesin yang boleh dibaca ini dipanggil kod HEX, setiap projek yang kami buat akan mempunyai kod HEX yang akan berada di direktori berikut
** Lokasi anda ** \ Blink \ Blink.X \ dist \ default \ production \ Blink.X.production.hex
Sekiranya anda berminat untuk mengetahui bagaimana kod HEX ini, buka saja menggunakan notepad. Untuk program Blink kami, kod HEX akan kelihatan seperti berikut:
: 060000000A128A11FC2F18: 100FAA008316031386018312031386018312031324: 100FBA0086150D30F200AF30F100C130F000F00BB1: 100FCA00E42FF10BE42FF20BE42F0000831203133A: 100FDA0086110D30F200AF30F100C130F000F00B95: 100FEA00F42FF10BF42FF20BF42F0000DB2F830107: 060FFA000A128A11D52F36: 02400E007A3FF7: 00000001FF
Terdapat cara bagaimana membaca ini dan bagaimana memahami dan membalikkannya kembali ke dalam bahasa Perhimpunan, tetapi sepenuhnya di luar ruang lingkup tutorial ini. Oleh itu, secara ringkasnya; HEX adalah hasil akhir perisian pengkodan kami dan inilah yang akan dihantar oleh MPLAB IPE untuk membakar MCU.
Memori kilat:
The kod HEX disimpan ke dalam MCU di tempat yang dipanggil memori Flash. Memori kilat adalah tempat di mana program kami akan disimpan di dalam MCU dan dilaksanakan dari sana. Setelah kami menyusun program di MPLABX kami, kami akan mendapat maklumat berikut mengenai jenis memori pada konsol Output
Oleh kerana kami baru saja menyusun program LED berkedip kecil, ringkasan memori menunjukkan bahawa kami baru saja menggunakan 0.5% ruang program yang tersedia dan 1.4% ruang Data.
Memori mikrokontroler PIC16F877 pada dasarnya dibahagikan kepada 3 jenis:
Memori Program: Memori ini mengandungi program (yang telah kita tulis), setelah kita membakarnya. Sebagai peringatan, Program Counter melaksanakan perintah yang tersimpan dalam memori program, satu demi satu. Oleh kerana kita telah menulis program yang sangat kecil, kita hanya menghabiskan 0,5% dari keseluruhan ruang. Ini adalah memori yang tidak mudah berubah, bermaksud data yang disimpan tidak akan hilang setelah dimatikan.
Memori Data: Ini adalah jenis memori RAM, yang mengandungi daftar khas seperti SFR (Daftar Fungsi Khas) yang merangkumi pemasa Watchdog, Brown out Reset dll dan GPR (General Purpose Register) yang merangkumi TRIS dan PORT dll. Pemboleh ubah yang disimpan dalam Data Memory semasa program dihapus setelah kita mematikan MCU. Segala pemboleh ubah yang dinyatakan dalam program akan berada di dalam memori Data. Ini juga merupakan memori yang tidak menentu.
Data EEPROM (Memori Boleh Baca Hanya Boleh Diprogramkan dengan Pemadanan Elektrik): Memori yang membolehkan menyimpan pemboleh ubah sebagai hasil pembakaran program bertulis. Contohnya jika kita menetapkan pemboleh ubah "a" untuk menyimpan nilai 5 di dalamnya dan menyimpannya di EEPROM data ini tidak akan hilang walaupun Kuasa dimatikan. Ini adalah ingatan yang tidak berubah-ubah.
Memori Program dan EEPROM adalah kenangan yang tidak menentu, dan disebut sebagai Flash Memory atau EEPROM.
ICSP.
Kami akan memprogram PIC16F877A kami menggunakan pilihan ICSP yang terdapat di MCU kami.
Sekarang, apa itu ICSP?
ICSP adalah cara mudah yang membantu kami memprogram MCU walaupun ia diletakkan di dalam papan Projek kami. Tidak perlu mempunyai papan programmer yang berasingan untuk memprogram MCU, yang kami perlukan hanyalah 6 sambungan dari programmer PicKit3 ke papan kami seperti berikut:
1 |
VPP (atau MCLRn) |
Untuk memasuki mod pengaturcaraan. |
2 |
Vcc |
Kuasa Pin 11 atau 32 |
3 |
GND |
PIN Ground 12 atau 31 |
4 |
PGD - Data |
RB7. PIN40 |
5 |
PGC - Jam |
RB6. PIN 39 |
6 |
PGM - LVP aktifkan |
RB3 / RB4. Tidak wajib |
ICSP sesuai untuk semua pakej PIC; yang kita perlukan hanyalah mengeluarkan lima pin ini (PGM pin ke-6 adalah pilihan) dari MCU ke Pickit3 seperti yang ditunjukkan dalam gambar di bawah.
Litar dan Perkakasan:
Sekarang, kami telah menyediakan kod HEX kami dan kami juga tahu bagaimana menghubungkan PicKit 3 kami ke PIC MCU kami menggunakan ICSP. Oleh itu, mari kita teruskan dan menyelesaikan litar dengan bantuan skema di bawah:
Dalam litar di atas saya telah menggunakan 7805 untuk mengatur output 5V ke PIC MCU saya. Pengatur ini akan dikuasakan oleh penyesuai wall mart 12V. Led RED digunakan untuk menunjukkan jika PIC dihidupkan. Penyambung J1 digunakan untuk pengaturcaraan ICSP. Pin disambungkan seperti yang dibincangkan dalam jadual di atas.
MCLR pin pertama mesti dipegang tinggi dengan bantuan 10k secara lalai. Ini akan menghalang MCU daripada menetapkan semula. Untuk menetapkan semula MCU, pin MCLR mesti dipegang ke tanah yang dapat dilakukan dengan bantuan suis SW1.
LED disambungkan ke pin RB3 melalui perintang nilai 560 ohm (Lihat kalkulator perintang LED). Sekiranya semuanya betul setelah program kami dimuat, LED ini akan berkelip berdasarkan program. Litar keseluruhan dibina di Perfboard dengan menyolder semua komponen di atasnya seperti yang anda lihat dalam gambar di bahagian atas.
Membakar Kod menggunakan MPLAB IPE:
Untuk membakar kod, ikuti langkah di bawah:
- Lancarkan MPLAB IPE.
- Sambungkan satu hujung PicKit 3 anda ke PC anda dan hujung yang lain ke pin ICSP anda pada papan perf.
- Sambungkan ke peranti PIC anda dengan mengklik butang sambung.
- Cari fail Blink HEX dan klik Program.
Sekiranya, semuanya berjalan seperti yang dirancangkan, anda akan mendapat mesej kejayaan di skrin. Lihat Kod dan Video di bawah untuk demonstrasi penuh dan gunakan bahagian komen jika anda mempunyai keraguan.
Terima kasih!!!
Mari berjumpa di tutorial Seterusnya di mana kita akan bermain dengan lebih banyak LED dan suis.