- EEPROM sa PIC16F877A:
- Circuit Diagram at Paliwanag:
- Simulation ng Paggamit ng PIC EEPROM:
- Programming PIC para sa EEPROM:
- Nagtatrabaho:
Sa tutorial na ito malalaman natin kung gaano kadali makatipid ng data gamit ang EEPROM na naroroon sa PIC16F877A Microcontroller. Sa karamihan ng mga proyekto ng real time maaari nating mai-save ang ilang data na hindi dapat mabura kahit na naka-off ang kuryente. Maaaring ito ay parang isang kumplikadong proseso, ngunit sa tulong ng XC8 Compiler ang gawaing ito ay maaaring magawa sa pamamagitan lamang ng paggamit ng isang linya ng code. Kung ang data ay malaki sa mga tuntunin ng Mega bytes pagkatapos ay maaari naming mai-interface ang isang storage device tulad ng isang SD card at iimbak ang mga data sa kanila. Ngunit maiiwasan natin ang proseso ng nakakapagod na kung ang data ay maliit, maaari lamang naming gamitin ang EEPROM na naroroon sa PIC Microcontroller upang mai-save ang aming data at makuha ito anumang oras na gusto namin.
Ang tutorial na PIC EEPROM na ito ay isang bahagi ng isang pagkakasunud-sunod ng mga PIC Microcontroller Tutorials kung saan nagsimula kami mula sa isang napaka-pangunahing antas. Kung hindi mo natutunan ang mga nakaraang tutorial pagkatapos ay mas mahusay na tumingin sa kanila ngayon, dahil ipinapalagay ng tutorial na ito na pamilyar ka sa Interfacing LCD sa PIC Microcontroller at Paggamit ng ADC sa PIC Microcontroller.
EEPROM sa PIC16F877A:
Ang EEPROM ay paninindigan para sa "Elektronikong Nabubura at Maaaring Programmable Basahin ang Memory lamang". Tulad ng ipinahihiwatig ng pangalan na ito ay isang memorya na nasa loob ng PIC Microcontroller kung saan maaari naming isulat / basahin ang data sa pamamagitan ng pagprograma nito upang magawa ito. Ang data na naka-save sa ito ay mabubura lamang kung nabanggit na gawin ito sa programa. Ang halaga ng espasyo sa pag-iimbak na magagamit sa EEPROM ay nag-iiba sa bawat microcontroller; ang mga detalye ay ibibigay sa Datasheet tulad ng dati. Sa aming kaso para sa PIC16F877A ang magagamit na puwang ay 256 bytes tulad ng nabanggit sa datasheet ng detalye nito. Tingnan natin ngayon kung paano natin magagamit ang 256 bytes na ito upang mabasa / sumulat ng data sa pamamagitan ng paggamit ng isang simpleng pang-eksperimentong pag-setup.
Circuit Diagram at Paliwanag:
Ang circuit diagram para sa proyekto ay ipinakita sa itaas. Nag-interfaced kami ng isang LCD upang mailarawan ang data na nai-save at nakuha. Ang isang normal na potensyomiter ay konektado sa AN4 Analog channel kaya feed sa variable boltahe, ang variable na boltahe na ito ay gagamitin bilang data upang mai-save sa EEPROM. Gumamit din kami ng isang pindutan ng push sa RB0, kapag pinindot ang pindutan na ito ang data mula sa Analog channel ay mai-save sa EEPROM.
Ang koneksyon na ito ay maaaring gawin sa isang breadboard. Ang mga pinout ng PIC Microcontroller ay ipinapakita sa talahanayan sa ibaba.
S. Hindi: |
Numero ng Pin |
Pangalan ng Pin |
Nakakonekta sa |
1 |
21 |
RD2 |
RS ng LCD |
2 |
22 |
RD3 |
E ng LCD |
3 |
27 |
RD4 |
D4 ng LCD |
4 |
28 |
RD5 |
D5 ng LCD |
5 |
29 |
RD6 |
D6 ng LCD |
6 |
30 |
RD7 |
D7 ng LCD |
7 |
33 |
RBO / INT |
Push button |
8 |
7 |
AN4 |
Potensyomiter |
Simulation ng Paggamit ng PIC EEPROM:
Ang proyektong ito ay nagsasangkot din ng isang Simulation na dinisenyo gamit ang Proteus, na ginagamit na maaari naming gayahin ang pagtatrabaho ng proyekto nang walang anumang hardware. Ang programa para sa simulasi na ito ay ibinibigay sa pagtatapos ng tutorial na ito. Maaari mo lamang gamitin ang Hex file mula dito at gayahin ang buong proseso.
Sa panahon ng simulation maaari mong mailarawan ang kasalukuyang halaga ng ADC at data na nai-save sa EEPROM sa LCD screen. Upang mai-save ang kasalukuyang halaga ng ADC sa EEPROM pindutin lamang ang switch na konektado sa RB0 at mase-save ito. Ang isang snapshot ng simulation ay ipinapakita sa ibaba.
Programming PIC para sa EEPROM:
Ang kumpletong code para sa tutorial na ito ay ibinibigay sa pagtatapos ng tutorial na ito. Sa aming programa kailangan naming basahin ang Mga Halaga mula sa module ng ADC at kapag pinindot ang isang pindutan kailangan nating i-save ang halagang iyon sa aming EEPROM. Dahil natutunan na namin ang tungkol sa mga ADC at LCD interfacing, ipapaliwanag ko pa ang code upang mai-save at makuha ang data mula sa EEPROM.
Ayon sa Datasheet "Ang mga aparatong ito ay mayroong 4 o 8K na mga salita ng program Flash, na may saklaw na address mula 0000h hanggang 1FFFh para sa PIC16F877A". Nangangahulugan ito na ang bawat puwang ng imbakan ng EEPROM ay may isang address kung saan maaari itong ma-access at sa aming MCU ang address ay nagsisimula sa 0000h hanggang 1FFFh.
Upang mai-save ang isang data sa loob ng isang partikular na EEPROM address, gamitin lamang ang linya sa ibaba.
eeprom_write (0, adc);
Narito ang "adc" ay isang variable ng uri ng integer kung saan naroroon ang nai-save na data. At ang "0" ay ang address ng EEPROM kung saan nai-save ang aming data. Ang syntax na "eeprom_write" ay ibinibigay ng aming nagsusumite sa XC8 samakatuwid ang mga rehistro ay awtomatikong alagaan ng tagatala.
Upang makuha ang isang data na nakaimbak na sa EEPROM at i-save ito sa isang variable na maaaring magamit ang sumusunod na linya ng code.
Sadc = (int) eeprom_read (0);
Dito, ang "Sadc" ay ang variable kung saan mai-save ang data mula sa EEPROM. At ang "0" ay ang address ng EEPROM na kung saan kinukuha namin ang data. Ang syntax na "eeprom_read" ay ibinibigay ng aming nagsusunod sa XC8 samakatuwid ang mga rehistro ay awtomatikong alagaan ng tagatala. Ang data na nai-save sa EEPROM ay magiging sa hexadecimal type. Samakatuwid ay binago namin ang mga ito sa uri ng integer sa pamamagitan ng pag-unlapi ng isang (int) bago ang syntax.
Nagtatrabaho:
Kapag naiintindihan namin kung paano gumagana ang code at maghanda sa hardware maaari naming subukan ang code. I-upload ang code sa iyong PIC Microcontroller at i-power ang set-up. Kung ang lahat ay gumagana tulad ng inaasahan pagkatapos ay dapat mong makita ang kasalukuyang mga halaga ng ADC na ipinapakita sa LCD. Maaari mo nang pindutin ang pindutan upang mai-save ang halaga ng ADC sa EEPROM. Ngayon suriin mo kung ang halaga ay nai-save sa pamamagitan ng pag-off ng buong system at pag-on muli ito. Kapag pinapagana ay dapat mong makita ang dating nai-save na halaga sa LCD screen.
Ang kumpletong pagtatrabaho ng proyektong ito upang magamit ang PIC Microcontroller EEPROM ay ipinapakita sa video sa ibaba. Inaasahan kong naintindihan mo ang tutorial at nasiyahan sa paggawa nito. Kung mayroon kang anumang pag-aalinlangan maaari mong isulat ang mga ito sa seksyon ng komento sa ibaba o i-post ang mga ito sa aming mga forum.