- EEPROM PIC16F877A:
- Shēmas shēma un skaidrojums:
- PIC EEPROM izmantošanas simulācija:
- PIC programmēšana EEPROM:
- Darbs:
Šajā apmācībā mēs uzzināsim, cik viegli ir saglabāt datus, izmantojot EEPROM, kas atrodas PIC16F877A mikrokontrollerī. Lielākajā daļā reāllaika projektu mums, iespējams, būs jāsaglabā daži dati, kurus nevajadzētu izdzēst pat tad, ja strāva ir izslēgta. Tas varētu izklausīties kā sarežģīts process, taču ar XC8 Compiler palīdzību šo uzdevumu var paveikt, vienkārši izmantojot vienu koda rindiņu. Ja dati ir mega baitu izteiksmē lieli, tad mēs varam saskarni glabāt ar ierīci, piemēram, SD karti, un saglabāt šos datus tajos. Bet mēs varam izvairīties no šī nogurdinošā procesa, ja datu ir maz, mēs varam vienkārši izmantot PIC mikrokontrollerā esošo EEPROM, lai saglabātu savus datus un tos izgūtu jebkurā laikā, kad vien mēs vēlamies.
Šī PIC EEPROM apmācība ir daļa no PIC mikrokontrolleru apmācību secības, kurā mēs sākām no ļoti pamata līmeņa. Ja vēl neesat apguvis iepriekšējās apmācības, labāk būtu tās apskatīt tūlīt, jo šajā apmācībā tiek pieņemts, ka esat iepazinies ar LCD saskarnes savienošanu ar PIC mikrokontrolleru un ADC lietošanu ar PIC mikrokontrolleru.
EEPROM PIC16F877A:
EEPROM nozīmē “Elektroniski izdzēšama un programmējama tikai lasāma atmiņa”. Kā norāda nosaukums, tā ir atmiņa, kas atrodas PIC mikrokontrollera iekšpusē, kurā mēs varam ierakstīt / lasīt datus, to ieprogrammējot. Tajā saglabātie dati tiks izdzēsti tikai tad, ja tas tiek minēts programmā. EEPROM pieejamās atmiņas apjoms katram mikrokontrollerim ir atšķirīgs; informācija tiks sniegta datu lapā kā parasti. Mūsu gadījumā PIC16F877A pieejamā vieta ir 256 baiti, kā minēts tā specifikācijas datu lapā. Tagad ļaujiet mums uzzināt, kā mēs varam izmantot šos 256 baitus datu lasīšanai / rakstīšanai, izmantojot vienkāršu eksperimentālu iestatīšanu.
Shēmas shēma un skaidrojums:
Projekta shēma ir parādīta iepriekš. Mēs esam izveidojuši saskarni LCD, lai vizualizētu datus, kas tiek saglabāti un izgūti. Parastais potenciometrs ir savienots ar AN4 analogo kanālu, lai tas darbotos ar mainīgu spriegumu, šis mainīgais spriegums tiks izmantots kā dati, kas saglabājami EEPROM. Mēs arī izmantojām spiedpogu RB0, kad šī poga tiek nospiesta, dati no analogā kanāla tiks saglabāti EEPROM.
Šo savienojumu var izveidot uz maizes dēļa. Par PIC Microcontroller pinouts ir parādīts tabulā.
S.Nē: |
PIN kods |
Piespraudes nosaukums |
Savienots ar |
1 |
21 |
RD2 |
LCD LCD |
2 |
22 |
RD3 |
LCD ekrāns |
3 |
27 |
RD4 |
LCD D4 |
4 |
28 |
RD5 |
LCD D5 |
5 |
29 |
RD6 |
LCD D6 |
6 |
30 |
RD7 |
LCD D7 |
7 |
33 |
RBO / INT |
Uzspied pogu |
8 |
7 |
AN4 |
Potenciometrs |
PIC EEPROM izmantošanas simulācija:
Šis projekts ietver arī simulāciju, kas izstrādāta, izmantojot Proteus, izmantojot kuru mēs varam simulēt projekta darbu bez aparatūras. Šīs simulācijas programma ir sniegta šīs apmācības beigās. Šeit varat vienkārši izmantot Hex failu un simulēt visu procesu.
Simulācijas laikā LCD ekrānā varat vizualizēt pašreizējo ADC vērtību un EEPROM saglabātos datus. Lai saglabātu pašreizējo ADC vērtību EEPROM, vienkārši nospiediet slēdzi, kas savienots ar RB0, un tas tiks saglabāts. Simulācijas momentuzņēmums ir parādīts zemāk.
PIC programmēšana EEPROM:
Pilns šīs apmācības kods ir norādīts šīs apmācības beigās. Mūsu programmā mums ir jāizlasa vērtības no ADC moduļa un, nospiežot pogu, šī vērtība jāsaglabā mūsu EEPROM. Tā kā mēs jau esam iemācījušies par ADC un LCD saskarni, es sīkāk paskaidrošu kodu, lai saglabātu un izgūtu datus no EEPROM.
Saskaņā ar datu lapu “Šīm ierīcēm ir 4 vai 8K programmas Flash vārdi ar adreses diapazonu no 0000h līdz 1FFFh PIC16F877A”. Tas nozīmē, ka katrai EEPROM atmiņas vietai ir adrese, caur kuru tai var piekļūt, un mūsu MCU adrese sākas no 0000h līdz 1FFFh.
Lai saglabātu datus noteiktā EEPROM adresē, vienkārši izmantojiet zemāk esošo rindiņu.
eeprom_write (0, adc);
Šeit “adc” ir vesela skaitļa mainīgais, kurā atrodas saglabājamie dati. “0” ir EEPROM adrese, kurā tiek saglabāti mūsu dati. Sintaksi “eeprom_write” nodrošina mūsu XC8 atbilstīgais, tāpēc kompilators automātiski parūpēsies par reģistriem.
Lai izgūtu datus, kas jau ir saglabāti EEPROM, un saglabātu tos mainīgajā, var izmantot šādu koda rindu.
Sadc = (int) eeprom_read (0);
Šeit “Sadc” ir mainīgais, kurā tiks saglabāti dati no EEPROM. “0” ir EEPROM adrese, no kuras mēs iegūstam datus. Sintaksi “eeprom_read” nodrošina mūsu XC8 atbilstošais, tāpēc kompilators automātiski parūpēsies par reģistriem. EEPROM saglabātie dati būs heksadecimālā tipa. Tādējādi mēs tos konvertējam vesela skaitļa tipā, pirms sintakses pievienojot prefiksu (int).
Darbs:
Kad būsim sapratuši, kā kods darbojas, un būsim gatavi ar aparatūru, varēsim pārbaudīt kodu. Augšupielādējiet kodu savā PIC mikrokontrollerī un ieslēdziet iestatīšanu. Ja viss darbojas, kā paredzēts, jums vajadzētu redzēt pašreizējās ADC vērtības, kas tiek parādītas LCD. Tagad varat nospiest pogu, lai saglabātu ADC vērtību EEPROM. Tagad jūs pārbaudāt, vai vērtība tiek saglabāta, izslēdzot visu sistēmu un atkal to ieslēdzot. Pēc ieslēgšanas LCD ekrānā vajadzētu redzēt iepriekš saglabāto vērtību.
Šī projekta pilnīga darbība, izmantojot PIC mikrokontrolleru EEPROM, ir parādīta zemāk esošajā video. Ceru, ka sapratāt apmācību un patika to darīt. Ja jums ir kādas šaubas, varat tos ierakstīt komentāru sadaļā zemāk vai ievietot mūsu forumos.