- EEPROM dalam PIC16F877A:
- Rajah dan Penjelasan Litar:
- Simulasi Menggunakan PIC EEPROM:
- Pengaturcaraan PIC untuk EEPROM:
- Bekerja:
Dalam tutorial ini kita akan belajar betapa mudahnya menyimpan data menggunakan EEPROM yang terdapat dalam PIC16F877A Microcontroller. Dalam kebanyakan projek masa nyata, kita mungkin perlu menyimpan beberapa data yang seharusnya tidak dapat dipadamkan walaupun padanya dimatikan. Ini mungkin terdengar seperti proses yang rumit, tetapi dengan bantuan XC8 Compiler tugas ini dapat dilakukan dengan hanya menggunakan satu baris kod. Sekiranya datanya besar dari segi Mega byte, maka kita dapat menghubungkan antara peranti penyimpanan seperti kad SD dan menyimpan data tersebut. Tetapi kita dapat mengelakkan proses melelahkan itu jika data kecil, kita hanya dapat menggunakan EEPROM yang ada di PIC Microcontroller untuk menyimpan data kita dan mengambilnya kapan saja kita mahu.
Ini tutorial PIC EEPROM sebahagian daripada urutan PIC Microcontroller Tutorials di mana kita bermula dari peringkat yang paling asas. Sekiranya anda belum mempelajari tutorial sebelumnya, lebih baik melihatnya sekarang, kerana tutorial ini mengandaikan bahawa anda sudah biasa dengan Interfacing LCD dengan PIC Microcontroller dan Menggunakan ADC dengan PIC Microcontroller.
EEPROM dalam PIC16F877A:
EEPROM bermaksud "Memori yang Boleh Dihapus Secara Elektronik dan Boleh Diprogram" Seperti namanya itu adalah memori yang terdapat di dalam PIC Microcontroller di mana kita dapat menulis / membaca data dengan memprogramnya untuk melakukannya. Data yang disimpan di dalamnya akan dihapus hanya jika disebutkan untuk melakukannya dalam program. Jumlah ruang simpanan yang terdapat di EEPROM berbeza-beza setiap mikrokontroler; butirannya akan diberikan dalam Lembar Data seperti biasa. Dalam kasus kami untuk PIC16F877A, ruang yang tersedia adalah 256 byte seperti yang disebutkan dalam lembar data spesifikasi. Sekarang mari kita lihat bagaimana kita dapat menggunakan 256 bait ini untuk membaca / menulis data dengan menggunakan persediaan eksperimen yang mudah.
Rajah dan Penjelasan Litar:
Gambarajah litar untuk projek ditunjukkan di atas. Kami telah menghubungkan LCD untuk memvisualisasikan data yang disimpan dan diambil. Potensiometer biasa disambungkan ke saluran Analog AN4 jadi masukkan voltan berubah, voltan berubah ini akan digunakan sebagai data yang akan disimpan di EEPROM. Kami juga telah menggunakan butang tekan pada RB0, ketika butang ini ditekan data dari saluran Analog akan disimpan di EEPROM.
Sambungan ini boleh dibuat di papan roti. The pinouts daripada PIC Microcontroller ditunjukkan dalam jadual di bawah.
S.No: |
Nombor PIN |
Nama Pin |
Berhubung dengan |
1 |
21 |
RD2 |
RS LCD |
2 |
22 |
RD3 |
E dari LCD |
3 |
27 |
RD4 |
D4 dari LCD |
4 |
28 |
RD5 |
D5 dari LCD |
5 |
29 |
RD6 |
D6 dari LCD |
6 |
30 |
RD7 |
D7 dari LCD |
7 |
33 |
RBO / INT |
Tekan butang |
8 |
7 |
AN4 |
Potensiometer |
Simulasi Menggunakan PIC EEPROM:
Projek ini juga melibatkan Simulasi yang dirancang menggunakan Proteus, dengan mana kita dapat mensimulasikan kerja projek tanpa perkakasan. Program untuk simulasi ini diberikan pada akhir tutorial ini. Anda boleh menggunakan fail Hex dari sini dan mensimulasikan keseluruhan prosesnya.
Semasa simulasi, anda dapat memvisualisasikan nilai dan data ADC Semasa yang disimpan di EEPROM pada skrin LCD. Untuk menyimpan nilai ADC semasa ke EEPROM cukup tekan suis yang disambungkan ke RB0 dan ia akan disimpan. Petikan simulasi ditunjukkan di bawah.
Pengaturcaraan PIC untuk EEPROM:
Kod lengkap untuk tutorial ini diberikan pada akhir tutorial ini. Dalam program kami, kita harus membaca Nilai dari modul ADC dan apabila butang ditekan, kita harus menyimpan nilai tersebut di EEPROM kita. Oleh kerana kami telah mengetahui tentang ADC dan antara muka LCD, saya akan menerangkan lebih lanjut kod untuk menyimpan dan mengambil data dari EEPROM.
Menurut Lembar Data "Peranti ini memiliki 4 atau 8K kata Flash program, dengan alamat berkisar antara 0000 jam hingga 1FFFh untuk PIC16F877A". Ini bermaksud bahawa setiap ruang simpanan EEPROM mempunyai alamat di mana ia dapat diakses dan di MCU kami alamat bermula dari 0000h hingga 1FFFh.
Untuk menyimpan data di dalam alamat EEPROM tertentu, gunakan baris di bawah.
eeprom_write (0, adc);
Di sini "adc" adalah pemboleh ubah jenis integer di mana data yang akan disimpan ada. Dan "0" adalah alamat EEPROM tempat data kami disimpan. Sintaks "eeprom_write" disediakan oleh pemohon XC8 kami oleh itu daftar akan dijaga secara automatik oleh penyusun.
Untuk mengambil data yang sudah disimpan di EEPROM dan menyimpannya ke pemboleh ubah barisan kod berikut dapat digunakan.
Sadc = (int) eeprom_read (0);
Di sini, "Sadc" adalah pemboleh ubah di mana data dari EEPROM akan disimpan. Dan "0" adalah alamat EEPROM dari mana kami mengambil data. Sintaks "eeprom_read" disediakan oleh pemohon XC8 kami oleh itu daftar akan dijaga secara automatik oleh penyusun. Data yang disimpan dalam EEPROM akan dalam bentuk heksadesimal. Oleh itu kita menukarnya menjadi jenis integer dengan awalan (int) sebelum sintaks.
Bekerja:
Setelah kita memahami bagaimana kod tersebut berfungsi dan bersiap sedia dengan perkakasan, kita dapat menguji kodnya. Muat naik kod ke PIC Microcontroller anda dan aktifkan penyediaannya. Sekiranya semuanya berfungsi seperti yang diharapkan maka anda harus melihat nilai ADC semasa yang dipaparkan di LCD. Anda kini boleh menekan butang untuk menyimpan nilai ADC ke EEPROM. Sekarang anda periksa apakah nilainya disimpan dengan mematikan keseluruhan sistem dan menghidupkannya semula. Semasa dihidupkan, anda harus melihat nilai yang disimpan sebelumnya pada skrin LCD.
Selesai kerja projek ini untuk menggunakan PIC Microcontroller EEPROM ditunjukkan dalam video di bawah. Harap anda memahami tutorial dan seronok melakukannya. Sekiranya anda mempunyai keraguan, anda boleh menulisnya di bahagian komen di bawah atau menghantarnya di forum kami.