- EEPROM PIC16F877A: ssa:
- Piirikaavio ja selitys:
- Simulaatio PIC EEPROM: n käytöstä:
- PIC: n ohjelmointi EEPROM: lle:
- Työskentely:
Tässä opetusohjelmassa opimme, kuinka helppoa on tallentaa tietoja käyttämällä PIC16F877A-mikrokontrollerissa olevaa EEPROMia. Useimmissa reaaliaikaisissa projekteissa joudumme ehkä säästämään joitain tietoja, joita ei pitäisi poistaa, vaikka virta katkaistaan. Tämä saattaa kuulostaa monimutkaiselta prosessilta, mutta XC8 Compilerin avulla tämä tehtävä voidaan tehdä vain yhdellä koodirivillä. Jos tiedot ovat megatavuina suuria, voimme liittää tallennuslaitteen, kuten SD-kortin, ja tallentaa nämä tiedot niihin. Mutta voimme välttää väsyttävän prosessin, jos tietoja on vähän, voimme yksinkertaisesti käyttää PIC-mikrokontrollerissa olevaa EEPROMia tietojen tallentamiseen ja hakemiseen milloin tahansa.
Tämä PIC EEPROM -opetusohjelma on osa PIC-mikrokontrollerioppaiden sarjaa, jossa aloitimme hyvin perustason. Jos et ole oppinut edellisiä opetusohjelmia, olisi parempi tarkastella niitä nyt, koska tässä opetusohjelmassa oletetaan, että olet perehtynyt LCD-näytön liittämiseen PIC-mikrokontrolleriin ja ADC: n käyttämiseen PIC-mikrokontrolleriin.
EEPROM PIC16F877A: ssa:
EEPROM tarkoittaa elektronisesti pyyhittävää ja ohjelmoitavaa vain luku -muistia. Kuten nimestä voi päätellä, se on PIC-mikrokontrollerin sisällä oleva muisti, johon voimme kirjoittaa / lukea tietoja ohjelmoimalla sen tekemään niin. Tähän tallennetut tiedot poistetaan vain, jos se mainitaan niin tekemällä ohjelmassa. EEPROM-laitteessa käytettävissä olevan tallennustilan määrä vaihtelee jokaisessa mikrokontrollerissa; yksityiskohdat ilmoitetaan lomakkeessa tavalliseen tapaan. Meidän tapauksessamme PIC16F877A: n käytettävissä oleva tila on 256 tavua, kuten sen määrittelytaulukossa mainitaan. Katsotaan nyt, kuinka voimme käyttää näitä 256 tavua tietojen lukemiseen / kirjoittamiseen yksinkertaisen kokeellisen asennuksen avulla.
Piirikaavio ja selitys:
Projektin piirikaavio on esitetty yllä. Olemme liittäneet nestekidenäytön visualisoimaan tallennettavia ja haettavia tietoja. Normaali potentiometri on kytketty analogiseen AN4-kanavaan, joten se syöttää vaihtuvaa jännitettä, tätä muuttuvaa jännitettä käytetään EEPROM-muistiin tallennettavana datana. Olemme käyttäneet myös RB0: n painonappia, kun tätä painiketta painetaan, analogisen kanavan tiedot tallennetaan EEPROM: iin.
Tämä liitäntä voidaan tehdä leipälaudalle. Pinouts PIC mikro on esitetty alla olevassa taulukossa.
S. ei: |
Pin koodi |
PIN-nimi |
Yhdistetty |
1 |
21 |
RD2 |
LCD: n RS |
2 |
22 |
RD3 |
LCD-näytön E-osa |
3 |
27 |
RD4 |
LCD-näytön D4 |
4 |
28 |
RD5 |
LCD-näytön D5 |
5 |
29 |
RD6 |
LCD-näytön D6 |
6 |
30 |
RD7 |
LCD-näytön D7 |
7 |
33 |
RBO / INT |
Paina nappia |
8 |
7 |
AN4 |
Potentiometri |
Simulaatio PIC EEPROM: n käytöstä:
Tämä projekti sisältää myös Proteus-sovelluksella suunnitellun simulaation, jonka avulla voimme simuloida projektin toimintaa ilman laitteistoa. Tämän simulaation ohjelma on tämän opetusohjelman lopussa. Voit yksinkertaisesti käyttää Hex-tiedostoa täältä ja simuloida koko prosessia.
Simulaation aikana voit visualisoida nykyisen ADC-arvon ja EEPROM-muistiin tallennetut tiedot LCD-näytöllä. Tallenna nykyinen ADC-arvo EEPROM-muistiin painamalla RB0: een kytkettyä kytkintä ja se tallennetaan. Alla oleva kuva simulaatiosta.
PIC: n ohjelmointi EEPROM: lle:
Tämän opetusohjelman täydellinen koodi on tämän opetusohjelman lopussa. Ohjelmassa meidän on luettava arvot ADC-moduulista ja kun painiketta painetaan, meidän on tallennettava tämä arvo EEPROM-tiedostoon. Koska olemme jo oppineet ADC: stä ja LCD-liitännöistä, selitän tarkemmin koodia tietojen tallentamiseksi ja noutamiseksi EEPROMista.
Datalehden mukaan "Näissä laitteissa on 4 tai 8K Flash-ohjelman sanaa, osoitealue PIC16F877A: lle välillä 0000h - 1FFFh". Tämä tarkoittaa, että jokaisella EEPROM-tallennustilalla on osoite, jonka kautta siihen pääsee ja MCU: ssa osoite alkaa 0000h - 1FFFh.
Voit tallentaa tiedot tiettyyn EEPROM-osoitteeseen yksinkertaisesti käyttämällä alla olevaa riviä.
eeprom_write (0, adc);
Tässä “adc” on muuttuja, joka on tyypiltään kokonaisluku, johon tallennettavat tiedot ovat läsnä. Ja "0" on EEPROM-osoitteen osoite, johon tietomme tallennetaan. Syntaksi "eeprom_write" tarjoaa XC8-yhteensopiva, joten kääntäjä huolehtii automaattisesti rekistereistä.
Seuraavaa koodiriviä voidaan käyttää EEPROM-muistiin jo tallennettujen tietojen hakemiseen ja tallentamiseen muuttujaan.
Sadc = (int) eeprom_read (0);
Tässä ”Sadc” on muuttuja, johon EEPROM-tiedot tallennetaan. Ja “0” on EEPROM-osoitteen osoite, josta haemme tietoja. Syntaksi "eeprom_read" tarjoaa XC8-yhteensopivuusmme, joten kääntäjä huolehtii automaattisesti rekistereistä. EEPROM-tiedostoon tallennetut tiedot ovat heksadesimaalityyppisiä. Siksi muunnamme ne kokonaislukutyypiksi etuliitteellä (int) ennen syntaksia.
Työskentely:
Kun ymmärrämme koodin toiminnan ja valmistaudumme laitteistoon, voimme testata koodin. Lataa koodi PIC-mikrokontrolleriin ja käynnistä asennus. Jos kaikki toimii odotetusti, sinun pitäisi nähdä nykyiset ADC-arvot LCD-näytöllä. Voit nyt painaa painiketta tallentaa ADC-arvon EEPROM-muistiin. Nyt voit tarkistaa, onko arvo tallennettu sammuttamalla koko järjestelmä ja käynnistämällä se uudelleen. Kun virta on kytketty, sinun pitäisi nähdä aiemmin tallennettu arvo nestekidenäytössä.
Tämän projektin täydellinen työskentely PIC-mikrokontrollerin EEPROM käyttämiseksi on esitetty alla olevassa videossa. Toivottavasti ymmärrät opetusohjelman ja nautit siitä. Jos sinulla on epäilyksiä, voit kirjoittaa ne alla olevaan kommenttiosioon tai lähettää ne foorumeillemme.