- EEPROM di PIC16F877A:
- Diagram Sirkuit dan Penjelasan:
- Simulasi Penggunaan PIC EEPROM:
- PIC Pemrograman untuk EEPROM:
- Kerja:
Dalam tutorial ini kita akan belajar betapa mudahnya menyimpan data menggunakan EEPROM yang ada di Mikrokontroler PIC16F877A. Di sebagian besar proyek waktu nyata, kami mungkin harus menyimpan beberapa data yang tidak boleh dihapus bahkan saat daya dimatikan. Ini mungkin terdengar seperti proses yang rumit, tetapi dengan bantuan XC8 Compiler tugas ini dapat dilakukan hanya dengan menggunakan satu baris kode. Jika datanya besar dalam bentuk Mega byte maka kita dapat menghubungkan perangkat penyimpanan seperti kartu SD dan menyimpan data tersebut di dalamnya. Tetapi kita dapat menghindari proses yang melelahkan itu jika datanya kecil, kita cukup menggunakan EEPROM yang ada di Mikrokontroler PIC untuk menyimpan data kita dan mengambilnya kapan saja kita mau.
Ini tutorial PIC EEPROM adalah bagian dari urutan PIC Microcontroller Tutorial di mana kita mulai dari tingkat yang sangat dasar. Jika Anda belum mempelajari tutorial sebelumnya maka akan lebih baik untuk melihatnya sekarang, karena tutorial ini mengasumsikan bahwa Anda sudah familiar dengan Interfacing LCD dengan Mikrokontroler PIC dan Menggunakan ADC dengan Mikrokontroler PIC.
EEPROM di PIC16F877A:
EEPROM adalah singkatan dari "Electronically Erasable and Programmable Read Only Memory". Seperti namanya, ini adalah memori yang ada di dalam Mikrokontroler PIC di mana kita dapat menulis / membaca data dengan memprogramnya untuk melakukannya. Data yang disimpan di sini akan dihapus hanya jika disebutkan untuk melakukannya dalam program. Jumlah ruang penyimpanan yang tersedia di EEPROM bervariasi pada setiap mikrokontroler; detailnya akan diberikan di Datasheet seperti biasa. Dalam kasus kami untuk PIC16F877A, ruang yang tersedia adalah 256 byte seperti yang disebutkan dalam lembar data spesifikasinya. Sekarang mari kita lihat bagaimana kita dapat menggunakan 256 byte ini untuk membaca / menulis data dengan menggunakan pengaturan eksperimental sederhana.
Diagram Sirkuit dan Penjelasan:
Diagram sirkuit untuk proyek ini ditunjukkan di atas. Kami telah menghubungkan LCD untuk memvisualisasikan data disimpan dan diambil. Potensiometer normal terhubung ke saluran Analog AN4 sehingga diumpankan dalam tegangan variabel, tegangan variabel ini akan digunakan sebagai data untuk disimpan di EEPROM. Kami juga telah menggunakan tombol push pada RB0, ketika tombol ini ditekan, data dari saluran Analog akan disimpan di EEPROM.
Koneksi ini dapat dibuat di papan tempat memotong roti. The pinouts dari PIC Microcontroller ditunjukkan pada tabel di bawah ini.
S.Tidak: |
Nomor PIN |
Nama Pin |
Terhubung dengan |
1 |
21 |
RD2 |
RS LCD |
2 |
22 |
RD3 |
E dari LCD |
3 |
27 |
RD4 |
D4 LCD |
4 |
28 |
RD5 |
D5 LCD |
5 |
29 |
RD6 |
D6 LCD |
6 |
30 |
RD7 |
D7 LCD |
7 |
33 |
RBO / INT |
Tekan tombol |
8 |
7 |
AN4 |
Potensiometer |
Simulasi Penggunaan PIC EEPROM:
Proyek ini juga melibatkan Simulasi yang dirancang menggunakan Proteus, yang dengannya kita dapat mensimulasikan kerja proyek tanpa perangkat keras apa pun. Program untuk simulasi ini diberikan di akhir tutorial ini. Anda cukup menggunakan file Hex dari sini dan mensimulasikan seluruh proses.
Selama simulasi, Anda dapat memvisualisasikan nilai ADC saat ini dan data yang disimpan di EEPROM pada layar LCD. Untuk menyimpan nilai ADC saat ini ke dalam EEPROM cukup tekan sakelar yang terhubung ke RB0 dan itu akan disimpan. Cuplikan simulasi ditampilkan di bawah ini.
PIC Pemrograman untuk EEPROM:
Kode lengkap untuk tutorial ini diberikan di akhir tutorial ini. Dalam program kami, kami harus membaca Nilai dari modul ADC dan ketika tombol ditekan kami harus menyimpan nilai itu di EEPROM kami. Karena kita telah belajar tentang ADC dan antarmuka LCD, saya akan menjelaskan lebih lanjut kode untuk menyimpan dan mengambil data dari EEPROM.
Menurut Lembar Data "Perangkat ini memiliki 4 atau 8K kata program Flash, dengan kisaran alamat dari 0000h hingga 1FFFh untuk PIC16F877A". Ini berarti bahwa setiap ruang penyimpanan EEPROM memiliki alamat yang dapat diaksesnya dan di MCU kami alamatnya dimulai dari 0000h hingga 1FFFh.
Untuk menyimpan data di dalam alamat EEPROM tertentu cukup gunakan baris di bawah ini.
eeprom_write (0, adc);
Di sini "adc" adalah variabel tipe integer di mana data yang akan disimpan ada. Dan "0" adalah alamat EEPROM tempat data kami disimpan. Sintaks "eeprom_write" disediakan oleh compiler XC8 kami sehingga register akan secara otomatis diurus oleh compiler.
Untuk mengambil data yang sudah disimpan di EEPROM dan menyimpannya ke variabel, baris kode berikut dapat digunakan.
Sadc = (int) eeprom_read (0);
Di sini, "Sadc" adalah variabel di mana data dari EEPROM akan disimpan. Dan "0" adalah alamat EEPROM tempat kami mengambil data. Sintaks "eeprom_read" disediakan oleh compiler XC8 kami sehingga register akan secara otomatis diurus oleh compiler. Data yang disimpan di EEPROM akan berbentuk heksadesimal. Oleh karena itu kami mengonversinya menjadi tipe integer dengan mengawali a (int) sebelum sintaks.
Kerja:
Setelah kami memahami cara kerja kode dan bersiap dengan perangkat keras, kami dapat menguji kode. Unggah kode ke Mikrokontroler PIC Anda dan nyalakan penyiapan. Jika semuanya bekerja seperti yang diharapkan maka Anda akan melihat nilai ADC saat ini ditampilkan di LCD. Sekarang Anda dapat menekan tombol untuk menyimpan nilai ADC ke EEPROM. Sekarang Anda memeriksa apakah nilainya disimpan dengan mematikan seluruh sistem dan menyalakannya lagi. Saat dihidupkan, Anda akan melihat nilai yang disimpan sebelumnya pada layar LCD.
Pekerjaan lengkap proyek ini untuk menggunakan Mikrokontroler PIC EEPROM ditunjukkan pada video di bawah ini. Harap Anda memahami tutorial dan menikmati melakukannya. Jika Anda ragu, Anda dapat menuliskannya di bagian komentar di bawah atau mempostingnya di forum kami.