- ЕЕПРОМ у ПИЦ16Ф877А:
- Шема и објашњење:
- Симулација употребе ПИЦ ЕЕПРОМ-а:
- Програмирање ПИЦ-а за ЕЕПРОМ:
- Рад:
У овом упутству научићемо како је лако сачувати податке користећи ЕЕПРОМ присутан у микроконтролеру ПИЦ16Ф877А. У већини пројеката у реалном времену можда ћемо морати да сачувамо неке податке који се не би требали брисати чак и када је напајање искључено. Ово може звучати као компликован процес, али уз помоћ КСЦ8 Цомпилера овај задатак се може обавити само помоћу једне линије кода. Ако су подаци велики у смислу мегабајта, тада можемо повезати уређај за складиштење попут СД картице и те податке сачувати на њима. Али можемо да избегнемо тај напоран поступак ако су подаци мали, можемо једноставно да користимо ЕЕПРОМ присутан у ПИЦ микроконтролеру да сачувамо наше податке и преузмемо их у било ком тренутку.
Овај ПИЦ ЕЕПРОМ водич је део низа ПИЦ водича за микроконтролере у којем смо кренули са врло основног нивоа. Ако нисте научили претходне водиче, било би боље да их сада погледате, јер овај водич претпоставља да сте упознати са повезивањем ЛЦД-а са ПИЦ микроконтролером и употребом АДЦ-а са ПИЦ микроконтролером.
ЕЕПРОМ у ПИЦ16Ф877А:
ЕЕПРОМ је скраћеница за „Електронски обрисива и програмабилна меморија само за читање“. Као што и само име говори, то је меморија присутна у ПИЦ микроконтролеру у коју можемо писати / читати податке тако што ћемо је програмирати. Подаци сачувани у овоме биће избрисани само ако је то поменуто у програму. Количина простора за складиштење доступан у ЕЕПРОМ-у разликује се од сваког микроконтролера; детаљи ће бити дати у техничком листу, као и обично. У нашем случају за ПИЦ16Ф877А расположиви простор је 256 бајтова, као што је поменуто у његовом листу са спецификацијама. Сада да видимо како можемо да користимо ових 256 бајтова за читање / писање података помоћу једноставног експерименталног подешавања.
Шема и објашњење:
Шема кола за пројекат је приказана горе. Повезали смо ЛЦД како бисмо визуализовали податке који се чувају и преузимају. Нормални потенциометар је повезан на АН4 аналогни канал, па се напаја променљивим напоном, тај променљиви напон ће се користити као подаци који се чувају у ЕЕПРОМ-у. Такође смо користили тастер на РБ0, када се притисне ово дугме, подаци са аналогног канала биће сачувани у ЕЕПРОМ-у.
Ова веза се може успоставити на табли. У Дисплеј на ПИЦ микроконтролер је приказано у табели испод.
С.Но: |
Пин број |
Пин Наме |
Повезан |
1 |
21 |
РД2 |
РС ЛЦД |
2 |
22 |
РД3 |
Е ЛЦД |
3 |
27 |
РД4 |
Д4 ЛЦД-а |
4 |
28 |
РД5 |
Д5 ЛЦД-а |
5 |
29 |
РД6 |
Д6 ЛЦД-а |
6 |
30 |
РД7 |
Д7 ЛЦД-а |
7 |
33 |
РБО / ИНТ |
Тастер |
8 |
7 |
АН4 |
Потенциометар |
Симулација употребе ПИЦ ЕЕПРОМ-а:
Овај пројекат такође укључује симулацију дизајнирану помоћу Протеуса, помоћу које можемо симулирати рад пројекта без икаквог хардвера. Програм за ову симулацију дат је на крају овог водича. Можете једноставно користити Хек датотеку одавде и симулирати цео процес.
Током симулације можете на ЛЦД екрану да прикажете тренутну вредност АДЦ и податке сачуване у ЕЕПРОМ-у. Да бисте сачували тренутну вредност АДЦ у ЕЕПРОМ, једноставно притисните прекидач повезан са РБ0 и она ће бити сачувана. Снимак симулације приказан је испод.
Програмирање ПИЦ-а за ЕЕПРОМ:
Комплетни код овог водича дат је на крају овог упутства. У нашем програму морамо прочитати вредности из модула АДЦ, а када се притисне дугме морамо да сачувамо ту вредност у нашем ЕЕПРОМ-у. Будући да смо већ научили о АДЦ-овима и ЛЦД повезивању, даље ћу објаснити код за спремање и преузимање података из ЕЕПРОМ-а.
Према техничком листу „Ови уређаји имају 4 или 8К речи програмског Фласх-а, са опсегом адреса од 0000х до 1ФФФх за ПИЦ16Ф877А“. То значи да сваки ЕЕПРОМ простор за складиштење има адресу преко које му се може приступити, а у нашем МЦУ адреса почиње од 0000х до 1ФФФх.
Да бисте сачували податке унутар одређене ЕЕПРОМ адресе, једноставно користите доњи ред.
еепром_врите (0, адц);
Овде је „адц“ променљива целобројног типа у којој су присутни подаци које треба сачувати. А „0“ је адреса ЕЕПРОМ-а на којем се чувају наши подаци. Синтаксу „еепром_врите“ пружа наш КСЦ8 цомплиер, тако да ће преводилац аутоматски водити рачуна о регистрима.
Да бисте преузели податке који су већ ускладиштени у ЕЕПРОМ-у и сачували их у променљивој, може се користити следећи ред кода.
Садц = (инт) еепром_реад (0);
Овде је „Садц“ променљива у којој ће бити сачувани подаци из ЕЕПРОМ-а. А „0“ је адреса ЕЕПРОМ-а са којег преузимамо податке. Синтаксу „еепром_реад“ пружа наш КСЦ8 цомплиер, тако да ће преводилац аутоматски водити рачуна о регистрима. Подаци сачувани у ЕЕПРОМ-у биће хексадецималног типа. Отуда их претварамо у целобројне, додавањем префикса (инт) испред синтаксе.
Рад:
Једном када схватимо како код ради и припремимо се за хардвер, можемо да тестирамо код. Пошаљите код на свој ПИЦ микроконтролер и укључите подешавање. Ако све ради како се очекивало, требало би да видите тренутне вредности АДЦ приказане на ЛЦД-у. Сада можете да притиснете дугме да бисте сачували вредност АДЦ у ЕЕПРОМ. Сада проверите да ли је вредност сачувана искључивањем целог система и поновним укључивањем. Када се укључи, требало би да видите претходно сачувану вредност на ЛЦД екрану.
Комплетан рад овог пројекта за употребу ПИЦ микроконтролера ЕЕПРОМ приказан је на видео снимку испод. Надам се да сте разумели туториал и уживали сте у томе. Ако сумњате, можете их написати у одељку за коментаре испод или објавити на нашим форумима.