- Припрема за програмирање:
- Креирање новог пројекта помоћу МПЛАБ-Кс:
- Упознавање регистара конфигурације:
- Постављање битова за конфигурацију у МПЛАБ-Кс:
- Програмирање ПИЦ-а да трепће ЛЕД:
- Кружни дијаграм и симулација протеја:
Ово је други водич из наше ПИЦ лекције. У нашем претходном водичу Почетак рада са ПИЦ микроконтролером: Увод у ПИЦ и МПЛАБКС, научили смо основне ствари о нашем ПИЦ микроконтролеру, такође смо инсталирали потребан софтвер и купили нови програмер ПицКит 3 који ћемо ускоро користити. Сада смо спремни да започнемо са нашим првим ЛЕД програмом за трептање помоћу ПИЦ16Ф877А. Такође ћемо сазнати о конфигурационим регистрима у овом упутству.
Овај водич очекује да сте на рачунар инсталирали потребан софтвер и да знате неке пристојне основе о ПИЦ МЦУ. Ако не, вратите се на претходни водич и започните одатле.
Припрема за програмирање:
Пошто смо одлучили да користимо ПИЦ16Ф877А, са компајлером КСЦ8 започнимо са њиховим подацима. Свима препоручујем да преузму таблицу података ПИЦ16Ф877А и приручник за компајлер КСЦ8, јер ћемо се на њих често позивати током напретка кроз наш водич. Увек је добра пракса прочитати комплетну таблицу података било ког МЦУ-а пре него што заправо започнемо програмирање са њим.
Пре него што отворимо МПЛАБ-Кс и започнемо са програмирањем, неколико основних ствари треба бити свестан. У сваком случају, с обзиром да је ово наш први програм, не желим да вас малтретирам, људи са пуно теорије, али зауставићемо се овде и тамо како програмирамо и објаснићу вам ствари као такве. Ако немате довољно времена да прочитате све ово, само погледајте и ускочите у видео запис на дну странице.
Креирање новог пројекта помоћу МПЛАБ-Кс:
Корак 1: Покрените МПЛАБ-Кс ИДЕ који смо инсталирали у претходној класи, након учитавања требало би да изгледа отприлике овако.
Корак 2: Кликните на Датотеке -> Нови пројекат или користите интервентни тастер Цтрл + Схифт + Н. Добићете следећи ПОП-УП, од којег морате да изаберете Стандалоне Пројецт и кликнете Нект.
Корак 3: Сада морамо да изаберемо наш Уређај за пројекат. Укуцајте као ПИЦ16Ф877А преко падајућег одељка Селецт Девице . Једном завршено, требало би да буде овако, а затим кликните на Нект.
Корак 4: Следећа страница ће нам омогућити да одаберемо алат за наш пројекат. Ово би био ПицКит 3 за наш пројекат. Изаберите ПицКит 3 и кликните на даље
Корак 5: Следећа страница ће тражити да одабере компајлер, изабере КСЦ8 Цомпилер и кликне даље.
Корак 6: На овој страници морамо именовати наш пројекат и одабрати локацију на којој пројекат треба бити сачуван. Назвао сам овај пројекат Блинк и сачувао сам га на радној површини. Можете га именовати и сачувати на свој пожељан начин. Наш пројекат ће бити сачуван као фасцикла са екстензијом .Кс, коју МАПЛБ-Кс може директно покренути. Кликните Заврши након завршетка.
Корак 7: То је то !!! Наш пројекат је створен. У левом прозору биће приказано име пројекта (Хере Блинк), кликните на њега како бисмо могли да видимо све директоријуме у њему.
Да бисмо започели програмирање, морамо додати Ц главну датотеку, у наш директоријум изворних датотека. Да бисте то урадили, једноставно кликните десним тастером миша на изворну датотеку и изаберите Ново -> Главна датотека Ц, као што је приказано на доњој слици.
Корак 8: Појавиће се следећи дијалошки оквир у којем треба да се наведе име Ц-датотеке. Поново сам именовао Блинк, али избор је на вама. Дајте му име у колони Име датотеке и кликните на Финисх.
Корак 9: Једном када се креира главна датотека Ц, ИДЕ ће нам је отворити са неким подразумеваним кодовима, као што је приказано доле.
Корак 10: То је то што сада можемо започети са програмирањем нашег кода у Ц-главној датотеци. Задани код се неће користити у нашим водичима. Па хајде да их у потпуности избришемо.
Упознавање регистара конфигурације:
Пре него што почнемо да програмирамо било који микроконтролер, морамо знати о његовим конфигурационим регистрима.
Па који су то конфигурацијски регистри, како и зашто бисмо их поставили?
ПИЦ уређаји имају неколико локација која садрже конфигурационе битове или осигураче. Ови битови специфицирају основни рад уређаја, као што су начин осцилатора, надзорни тајмер, режим програмирања и заштита кода. Ови битови морају бити правилно постављени да би се покренуо код, иначе имамо неактивни уређај . Дакле, веома је важно знати о овим конфигурационим регистрима пре него што започнемо са нашим Блинк програмом.
Да бисмо могли да користимо ове конфигурационе регистре, морамо прочитати табелу података и разумети који су различити типови конфигурационих битова доступни и њихове функције. Ови битови се могу поставити или ресетовати на основу наших програмских захтева помоћу конфигурационе прагме.
Прагма има следеће облике.
#прагма цонфиг поставка = стање-вредност #прагма цонфиг регистер = вредност
где подешавање је конфигурација подешавање дескриптор, нпр ВДТ, а држава је текстуална опис жељеног стања, нпр ОФФ. Размотрите следеће примере.
#прагма цонфиг ВДТ = ОН // укључивање надзорног тајмера #прагма цонфиг ВДТПС = 0к1А // наведите вредност скале тајмера
ОПУСТИ СЕ!!….. ОПУСТИТЕ СЕ !!…. ОПУСТИТЕ СЕ !!…...
Знам да нам је то превише ушло у главу и постављање ових конфигурационих битова може изгледати мало тешко за новајлију !! Али, пркосно није са нашим МПЛАБ-Кс.
Постављање битова за конфигурацију у МПЛАБ-Кс:
Мицроцхип је овај поступак замарања знатно олакшао коришћењем графичких приказа различитих врста конфигурационих битова. Дакле, сада да бисмо их поставили, једноставно морамо следити кораке у наставку.
Корак 1: Кликните на Прозор -> ПИЦ приказ меморије -> Конфигурацијски битови. Како је приказано испод.
Корак 2: Ово би требало да отвори прозор Конфигурациони битови у дну нашег ИДЕ-а, као што је приказано доле. Ово је место где можемо подесити сваки од конфигурационих битова према нашим потребама. Објаснићу сваки бит и његову сврху док напредујемо кроз кораке.
Корак 3: Први бит је бит за одабир осцилатора.
ПИЦ16Ф87КСА може се управљати у четири различита начина осцилатора. Ова четири начина могу се одабрати програмирањем два конфигурациона бита (ФОСЦ1 и ФОСЦ0):
- ЛП кристал мале снаге
- КСТ кристал / резонатор
- ХС кристал / резонатор велике брзине
- РЦ отпорник / кондензатор
За наше пројекте користимо 20 МХз осц, тако да из падајућег оквира морамо одабрати ХС.
Корак 4: Следећи бит ће бити наш тимер за оспособљавање Омогући бит.
Ватцхдог Тимер је РЦ осцилатор који ради на чипу и не захтева никакве спољне компоненте. Овај РЦ осцилатор је одвојен од РЦ осцилатора ОСЦ1 / ЦЛКИ пина. То значи да ће ВДТ радити чак и ако је сат на ОСЦ1 / ЦЛКИ и ОСЦ2 / ЦЛКО пиновима уређаја заустављен. Током нормалног рада, ВДТ временско ограничење генерише ресетовање уређаја (Ресетовање тајмера чувара). Бит ТО у регистру статуса биће обрисан по истеку временског ограничења Ватцхдог Тимер-а. Ако тајмер није обрисан у нашем софтверском кодирању, тада ће се читав МЦУ ресетовати при сваком преливању ВДТ тајмера. ВДТ се може трајно онемогућити брисањем конфигурационог бита.
Не користимо ВДТ у нашем програму, зато га разјаснимо тако што ћемо изабрати ОФФ из падајућег оквира.
Корак 5: Следећи бит ће бити Бит тајмера за укључивање.
Тајмер за укључивање пружа фиксно номинално време од 72 мс при укључивању само из ПОР-а. Тајмер за напајање ради на унутрашњем РЦ осцилатору. Чип се чува у Ресетовању све док је ПВРТ активан. Временско кашњење ПВРТ-а омогућава ВДД-у да се подигне на прихватљив ниво. Конфигурациони бит је обезбеђен да омогући или онемогући ПВРТ.
Неће нам бити потребна таква кашњења у нашем програму, па нека и то ИСКЉУЧИМО.
Корак 6: Следећи бит биће програмирање ниског напона.
ЛВП бит конфигурационе речи омогућава програмирање ИЦСП ниског напона. Овај режим омогућава програмирање микроконтролера путем ИЦСП-а помоћу ВДД извора у опсегу радног напона. То само значи да ВПП не мора бити доведен до ВИХХ, већ се може оставити на нормалном радном напону. У овом режиму, РБ3 / ПГМ пин је посвећен функцији програмирања и престаје да буде И / О пин опште намене. Током програмирања, ВДД се примењује на МЦЛР пин. Да бисте ушли у режим програмирања, ВДД се мора применити на РБ3 / ПГМ под условом да је постављен ЛВП бит.
Искључимо ЛВП да бисмо могли да користимо РБ3 као И / О пин. Да бисте то урадили, једноставно искључите ову ОФФ користећи падајући оквир.
Корак 7: Следећи битови биће ЕЕПРОМ и битови заштите меморије програма. Ако је овај бит укључен, када се МЦУ програмира, нико неће преузети наш програм са хардвера. Али за сада оставимо све три искључене.
Када се подешавања изврше према упутствима, оквир за дијалог би требао изгледати отприлике овако.
Корак 8: Сада кликните на Генерате Соурце Цоде то Оутпут, наш код ће се генерисати, сада га само копирајте заједно са датотеком заглавља и залепите у нашу Блинк.ц Ц-датотеку, као што је приказано доле.
То је то, то је наш рад на конфигурацији. Можемо имати ову конфигурацију за све наше пројекте. Али ако сте заинтересовани, можете се касније зезати са њима.
Програмирање ПИЦ-а да трепће ЛЕД:
У овом програму ћемо користити наш ПИЦ микроконтролер за трептање ЛЕД диоде повезане на И / О пин. Погледајмо различите И / О пинове доступне на нашем ПИЦ16Ф877А.
Као што је приказано горе ПИЦ16Ф877 има 5 основних улазно / излазних портова. Обично се означавају са ЛУКА А (РА), ЛУКА Б (РБ), ЛУКА Ц (РЦ), ЛУКА Д (РД) и ЛУКА Е (РЕ). Ови портови се користе за улазно / излазни интерфејс. У овом контролеру, „ПОРТ А“ је широк само 6 бита (РА-0 до РА-5), „ПОРТ Б“, „ПОРТ Ц“, „ПОРТ Д“ су широки само 8 бита (РБ-0 до РБ-7, РЦ-0 до РЦ-7, РД-0 до РД-7), „ПОРТ Е“ има само 3 бита ширине (РЕ-0 до РЕ-2).
Све ове луке су двосмерне. Смер лука се контролише помоћу ТРИС (Кс) регистара (ТРИС А се користи за подешавање смера ПОРТ-А, ТРИС Б се користи за подешавање смера за ПОРТ-Б, итд.). Постављањем ТРИС (Кс) бита '1' поставиће се одговарајући ПОРТ (Кс) бит као улаз. Брисање ТРИС (Кс) бита '0' поставиће одговарајући ПОРТ (Кс) бит као излаз.
За наш пројекат морамо да направимо пин РБ3 ПОРТА Б као излаз тако да наша ЛЕД диода може бити повезана на њега. Ево шифре за трептање ЛЕД-а са ПИЦ микроконтролером:
#инцлуде
Прво смо одредили спољну кристалну фреквенцију помоћу #дефине _КСТАЛ_ФРЕК 20000000. Затим смо у функцији воид маин () наложили нашем МЦУ-у да ћемо користити РБ3 као излазни (ТРИСБ = 0Кс00;) пин. Затим се коначно користи бесконачна вхиле петља тако да ЛЕД трепће наставља заувек. Да бисмо трепнули ЛЕД, морамо је једноставно УКЉУЧИТИ и ИСКЉУЧИТИ са приметним кашњењем.
Када је кодирање завршено, направите пројекат помоћу наредбе Покрени -> Изгради главни пројекат. Ово би требало да компајлира ваш програм. Ако је све у реду (како би требало да буде), излазна конзола на дну екрана приказаће БУИЛД СУЦЦЕССФУЛ поруку, као што је приказано на доњој слици.
Кружни дијаграм и симулација протеја:
Једном када изградимо пројекат и ако је Буилд успешан, ХЕКС датотека би се генерисала у позадини нашег ИДЕ-а. Ова ХЕКС датотека се може наћи у доњем директоријуму
За вас може варирати ако сте сачували на неком другом месту.
Сада, брзо отворимо Протеус који смо раније инсталирали и креирајмо шеме за овај пројекат. Нећемо објашњавати како се то ради изван оквира овог пројекта. Али да не бринете, објашњено је у видео снимку испод. Једном када следите упутства и направите шеме, требало би да изгледа отприлике овако
Да бисте симулирали излаз, кликните на дугме за репродукцију у доњем левом углу екрана након учитавања Хек датотеке. Требао би трептати ЛЕД повезан на РБ3 МЦУ-а. Ако имате било каквих проблема у њему, погледајте видео, ако и даље није решен, користите одељак за коментаре за помоћ.
Сада смо направили први пројекат са ПИЦ микроконтролером и верификовали излаз помоћу софтвера за симулацију. Идите и подесите програм и посматрајте резултате. Док се не сретнемо на следећем пројекту.
Охх чекај !!
У нашем следећем пројекту научићемо како да ово радимо на стварном хардверу. За то ће нам бити потребни следећи алати како би били спремни. До тада СРЕТНО УЧЕЊЕ !!
- ПицКит 3
- ПИЦ16Ф877А ИЦ
- 40-пински држач ИЦ
- Перф боард
- Кристал ОСЦ од 20 МХз
- Женска и мушка Бергстицк игле
- 33пф кондензатор - 2бр
- 680 охм отпорник
- ЛЕД било које боје
- Комплет за лемљење.