- EEPROM v PIC16F877A:
- Schéma zapojení a vysvětlení:
- Simulace použití PIC EEPROM:
- Programování PIC pro EEPROM:
- Pracovní:
V tomto tutoriálu se naučíme, jak snadné je ukládat data pomocí EEPROM přítomné v mikrokontroléru PIC16F877A. Ve většině projektů v reálném čase možná budeme muset uložit některá data, která by neměla být vymazána, i když je napájení vypnuto. Může to znít jako komplikovaný proces, ale s pomocí XC8 Compiler může být tento úkol proveden pomocí jediného řádku kódu. Pokud jsou data velká, pokud jde o megabajty, můžeme propojit paměťové zařízení, jako je karta SD, a ukládat na ně tato data. Ale můžeme se těmto únavným procesům vyhnout, pokud jsou data malá, můžeme jednoduše použít EEPROM přítomnou v mikrokontroléru PIC k uložení našich dat a jejich získání kdykoli chceme.
Tento výukový program PIC EEPROM je součástí řady výukových programů mikrokontroléru PIC, ve kterých jsme začali od velmi základní úrovně. Pokud jste se nenaučili předchozí výukové programy, pak by bylo lepší se na ně podívat hned, protože tento výukový program předpokládá, že jste obeznámeni s rozhraním LCD pomocí PIC Microcontroller a pomocí ADC s PIC Microcontroller.
EEPROM v PIC16F877A:
Zkratka EEPROM znamená „elektronicky vymazatelnou a programovatelnou paměť pouze pro čtení“. Jak název napovídá, jedná se o paměť přítomnou uvnitř mikrokontroléru PIC, do které můžeme zapisovat / číst data tak, že ji naprogramujeme. Data uložená v tomto budou vymazána, pouze pokud je to uvedeno v programu. Množství úložného prostoru dostupného v EEPROM se u každého mikrokontroléru liší; podrobnosti budou uvedeny v datovém listu jako obvykle. V našem případě pro PIC16F877A je dostupné místo 256 bajtů, jak je uvedeno v jeho specifikačním datovém listu. Nyní se podívejme, jak můžeme pomocí těchto 256 bajtů číst / zapisovat data pomocí jednoduchého experimentálního nastavení.
Schéma zapojení a vysvětlení:
Schéma zapojení projektu je uvedeno výše. Propojili jsme LCD s vizualizací dat, která se ukládají a načítají. K analogovému kanálu AN4 je připojen normální potenciometr, takže napájejte proměnné napětí, toto proměnné napětí se použije jako data, která se mají uložit do EEPROM. Použili jsme také tlačítko na RB0, když je toto tlačítko stisknuto, data z analogového kanálu se uloží do EEPROM.
Toto připojení lze provést na prkénku. Na pinouts PIC mikroprocesoru je uveden v následující tabulce.
S.No: |
Číslo PIN |
Název PIN |
Připojen k |
1 |
21 |
RD2 |
RS LCD |
2 |
22 |
RD3 |
E 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 |
Stiskněte tlačítko |
8 |
7 |
AN4 |
Potenciometr |
Simulace použití PIC EEPROM:
Tento projekt zahrnuje také simulaci navrženou pomocí Proteus, pomocí které můžeme simulovat fungování projektu bez jakéhokoli hardwaru. Program pro tuto simulaci je uveden na konci tohoto tutoriálu. Odtud můžete jednoduše použít Hex soubor a simulovat celý proces.
Během simulace můžete na LCD obrazovce zobrazit aktuální hodnotu ADC a data uložená v EEPROM. Chcete-li uložit aktuální hodnotu ADC do EEPROM, jednoduše stiskněte přepínač připojený k RB0 a uloží se. Níže je uveden snímek simulace.
Programování PIC pro EEPROM:
Celý kód tohoto kurzu je uveden na konci tohoto kurzu. V našem programu musíme načíst hodnoty z modulu ADC a po stisknutí tlačítka musíme tuto hodnotu uložit do naší EEPROM. Protože jsme se již dozvěděli o rozhraní ADC a LCD, vysvětlím dále kód pro ukládání a načítání dat z EEPROM.
Podle datového listu „Tato zařízení mají 4 nebo 8 kB slov programu Flash s rozsahem adres od 0000 h do 1FFFh pro PIC16F877A“. To znamená, že každý úložný prostor EEPROM má adresu, přes kterou je k němu přístup, a v našem MCU začíná adresa od 0000h do 1FFFh.
Chcete-li uložit data uvnitř konkrétní adresy EEPROM, jednoduše použijte níže uvedený řádek.
eeprom_write (0, adc);
Zde je „adc“ proměnná typu celé číslo, ve které jsou data, která mají být uložena. A „0“ je adresa EEPROM, na které jsou uložena naše data. Syntaxi „eeprom_write“ poskytuje náš XC8 complier, proto se o registry automaticky postará kompilátor.
K načtení dat, která jsou již uložena v EEPROM, a jejich uložení do proměnné lze použít následující řádek kódu.
Sadc = (int) eeprom_read (0);
Zde je „Sadc“ proměnná, do které se budou ukládat data z EEPROM. A „0“ je adresa EEPROM, ze které načítáme data. Syntaxi „eeprom_read“ poskytuje náš XC8 complier, proto se o registry automaticky postará překladač. Data uložená v EEPROM budou v hexadecimálním formátu. Proto je převedeme na celočíselný typ předponou (int) před syntaxí.
Pracovní:
Jakmile pochopíme, jak kód funguje, a připravíme se na hardware, můžeme testovat kód. Nahrajte kód do svého mikrokontroléru PIC a napájejte nastavení. Pokud vše funguje podle očekávání, měli byste vidět aktuální hodnoty ADC zobrazené na LCD. Nyní můžete stisknutím tlačítka uložit hodnotu ADC do EEPROM. Nyní zkontrolujete, zda je hodnota uložena vypnutím celého systému a opětovným zapnutím. Po zapnutí by se měla na obrazovce LCD zobrazit dříve uložená hodnota.
Kompletní fungování tohoto projektu pro použití PIC mikrokontroléru EEPROM je ukázáno na videu níže. Doufám, že jste pochopili výukový program a bavilo vás ho dělat. Pokud máte pochybnosti, můžete je napsat do sekce komentářů níže nebo zveřejnit na našem fóru.