Самоучитель программирование на ассемблере для pic: PIC Урок 1. Знакомство с семейством PIC |

Содержание

Программирование pic контроллеров на ассемблере

Данный цикл статей посвящен знакомству и программированию микроконтроллеров (далее МК) PIC фирмы Microchip. Как бы это страшно не звучало, но программировать мы будем на ассемблере. Но бояться не стоит, я постараюсь как можно проще и доходчивее объяснить работу МК, и для понимания прочитанного совсем не обязательно иметь ученую степень. Было бы желание.

В свое время, я довольно много времени потратил на то, чтобы разобраться, как же все-таки работает эта «страшная» вещь, под грозным названием МИКРОКОНТРОЛЛЕР. Меня удивило то, что литературы, ориентированной на людей без опыта, практически нет:'(Потратив кучу времени и сил мне пришлось перекопать тонну книг, чтобы наконец-то сообразить, что к чему. Благо, назад пути у меня не было, т.к. моя дипломная работа напрямую была связана с программирование МК. Самое интересное, что у меня никак не получалось сложить в одну картинку все прочитанное в своей голове. И вдруг однажды у меня просто что-то перемкнуло в голове, и все стало на свои места.

Так вот, к чему весь этот треп…

Данные статьи написаны в первую очередь для тех, кто представления не имеет о том, как работает МК, но хочет этому научиться, потратив на изучение как можно меньше времени и сил. Мне хочется избавить Вас от пустой траты времени, и как можно быстрее сделать из Вас настоящих гуру. Однако мне пришлось поставить небольшую планку для читателей. Кое-какие основы программирования Вы все же должны знать. Ну, во-первых, я подразумеваю, что Вы знаете разницу между десятичной, двоичной и шестнадцатеричной системами счисления, и спокойно можете перевести число из одной системы в другую. Здесь нет ничего сложного, к тому же виндовый калькулятор позволяет производить такие действия. Во-вторых, Вы должны представлять себе, хотя бы отдаленно, как работает компилятор, и какие этапы преобразования проходит исходный текст вашей программы, прежде чем «превратиться» в исполняемый код. Но даже если Вы не знаете этого, я все равно буду останавливаться на этих вопросах. Так что пристегивайте ремни покрепче, мы взлетаем.

Ух, с введением закончили, перейдем к делу. Но в начале хотелось бы сказать пару слов о том, почему же мы будем программировать именно на ассемблере, а не Си… Во-первых, цикл статей по программированию PIC МК на Си начал Дмитрий, и я не хочу ему в этом мешать. Я полностью согласен с тем, что разрабатывать программы на Си получается гораздо быстрее и проще, чем на ассемблере. Однако именно знание ассемблера, поможет разобраться во внутренней работе МК, а также, я надеюсь, позволит Вам быстрее понять структуру программ, написанных на Си. Еще одним плюсом в пользу ассемблера является компактность получающегося кода. И в этом плане именно ассемблер занимает лидирующее место, по сравнению с языком Си. В вашей программе не будет ничего «лишнего», а это не может не радовать.

(adsbygoogle = window.adsbygoogle || []).push({});

Еще не надоел своей болтовней? Нет? Ну, тогда приступим. На первое время, мною было принято решение дублировать программы, которые предлагал Дмитрий на Си. Только писать их на ассемблере. Во-первых, Вам не придется перепаивать схему, а во-вторых, можно будет провести аналогию, между Си и ассемблер проектами.

Процесс установки среды разработки MPLAB я рассказывать не буду, так как это уже за меня сделал Дмитрий, однако замечу, что у меня стоит версия 7.50, хотя я не думаю, что она сильно отличается от 7.40. Кстати, на сегодняшний день уже вышла версия 7.60, но в любом случае принципиальной разницы между ними нет, так что каждый ставит себе ту, которая ему больше нравится. Еще один момент, моя версия глючит с длинными именами папок, так что желательно размещать свои проекты как можно ближе к корневому каталогу, и использовать англ. названия папок.

Приступаем. Для начала создадим наш первый проект. Открываем MPLAB. Щелкаем Project -> Project Wizard… откроется вот такое окошко:

Не читая, щелкаем по кнопке Далее.

Выбираем из списка МК PIC16F877 и смело жмем Далее

Здесь из списка Active Toolsuite выбираем компилятор MPASM и опять Далее

Указываем имя проекта и директорию. Ну и по традиции, щелкаем

Далее

Это окошко пока пропускаем… Далее

Щелкаем Готово. Теперь, жмем File -> New. Появляется окно с именем Untitled. Это основной файл нашего проекта, нужно его сохранить. Выбираем File -> Save as… Указываем имя файла main.asm, и сохраняем его в папке с проектом. Не забудьте про галочку Add file to project.

Ура. Все готово, проект создан, и главное ничего сложного то не было. Щелкаем Готово. Процесс практически не отличается от создания проекта на Си, который описывал Дмитрий, единственное, что мы сделали – это поменяли компилятор. Слева, в окне программы, должно появиться окошко

First.mcw с кучей папок. Это наш менеджер проекта. Видите, в нем появился наш файл main.asm? Если у вас нет этого окошка, то поставьте галочку в меню View -> Project.

Ну что, пришло время написать свою первую программу. Щелкаем в менеджере проектов по файлу main.asm и в открывшемся окне пишем следующий текст:

Страшно? Ну это дело поправимое! Давайте разбираться, что здесь написано.

Ну во-первых, все что стоит после знака ; является комментарием и помечается зеленым цветом. Очень советую Вам применять комментарии в вашей программе, так как в будущем они сократят Вам кучу времени при отладке программы. К тому же, читать текст с комментариями гораздо удобнее. И даже если Вы не собираетесь выкладывать ваши исходники на всеобщее обозрение, попробуйте открыть и разобраться в какой-нибудь собственноручно написанной старой программе (конечно если она у вас есть:). Ох и намучаетесь, это я по своему горькому опыту говорю, к тому же программы, написанные на ассемблере, читать нетренированным глазом — жуткое дело. Надеюсь, я Вас убедил… И еще один маленький момент. Пишите текст программы самостоятельно, не надо его копировать, это ведь не ускоренный курс обучения секретарей. К тому же так вы гораздо быстрее запомните команды.

С комментариями разобрались, смотрим дальше:

Данная команда указывает компилятору, что мы будем использовать микроконтроллер PIC16F877. Дальше идет команда:

Пока вдаваться в подробности не буду, Дмитрий уже объяснял, зачем она нужна, впоследствии мы превратим ее в более читабельный вид, а пока оставляем как есть. Идем дальше:

В принципе это тоже самое что и #define в Си, если кто знает. Мы просто ставим в соответствие регистру данных с адресом 0x0B слово INTCON. Это придает нашей программе более понятный вид. Согласитесь, фраза «Заносим в регистр INTCON число 20» звучит гораздо приятнее, чем «Заносим в регистр 0x0B число 20». Другой вопрос – что такое регистр. Вот тут уже двумя словами не отделаться. Придется вкратце описать архитектуру микроконтроллера.

Никогда не задумывались, как же работает программа, записанная в микроконтроллер и где она в нем храниться? Каждый микроконтроллер имеет у себя «на борту» какой-то объем памяти. Эту память разделяют на память программ и память данных: в одну память записывается программа, а в другую – данные. Такая архитектура называется гарвардской и позволяет одновременно считывать команду и обращаться к данным.

Тем самым повышается скорость работы МК, а это всегда хорошо:) Еще один нюанс. Ячейка памяти программ и памяти данных различаются по длине. Как это ни странно, но ячейка памяти программ состоит из 14 бит. Давайте дальше будем называть эту ячейку словом. Так вот, каждое слово памяти программ занимает у нас 14 бит. Зачем так много спросите вы? Пока не будем углубляться в подробности, об этом чуть позже. В свою очередь каждая ячейка памяти данных у нас так и осталось 8 битной, а называют ее регистром. Единственное, что память данных поделена на 4 банка, первые адреса которых содержат регистры специального назначения. Вот засада, скажите вы. Что за банки, какие еще регистры. Непонятно.

На самом деле нет ничего страшного, представьте, что Вы взяли и разбили всю память данных на 4 одинаковые части, и каждую из них назвали банком. Объем каждого в нашем случае будет равен 128 байт. Малова-то, скажете Вы! А вот и нет. Программирование микроконтроллеров очень сильно отличается от написания программ для винды. Наши программы будут куда компактнее, так что не смотрите на размер памяти пессимистическим взглядом, нам ее хватит за глаза. К тому же, если вы еще не забыли у нашего микроконтроллера целых 4 банка. Посмотрите на табличку в приложении 1. Четыре столбца это четыре банка, справа написаны адреса регистров в памяти данных. Посмотрите внимательно. В начале каждого банка идут так называемые регистры специального назначения, их довольно много и все они предназначены для управления микроконтроллером. Плюс к этому, часто используемые регистры дублируются в каждом банке. После регистров специального назначения (РСН) идут регистры общего назначения, где можно хранить переменные. Вернемся к исходному коду. Теперь, я думаю, стало понятнее, почему регистру INTCON я присвоил значение 0x0B.

Дальше мы инициализируем константы:

Константе RP0 мы присвоили значение 5. Идем дальше:

Значение этих строк давайте для начала пропустим. Слишком много не хочу на вас сваливать с самого начала, смотрим дальше:

Start – это так называемая метка. С нее (а если быть точнее, то со следующей за меткой команды) и начинается исполнение нашей программы. Метки не занимают памяти программы, они лишь хранят адрес следующей за ней команды. Еще момент, метка должна начинаться с самого начала строчки, а вот все остальные команды лучше писать через табуляцию, если конечно вы не хотите, чтобы компилятор на вас «сругался». Дальше идет непонятная команда clrf INTCON. Что такое INTCON Вам уже должно быть немножко понятно. Это регистр специального назначения, которому мы определили адрес 0x0B. А команда clrf просто очищает этот регистр, устанавливая все его биты в 0. Встает резонный вопрос, зачем это нужно. Мне пока придется ограничится словами ТАК НАДО, потому что на разъяснение этого вопроса уйдет еще по меньшей мере страниц 5 печатного текста, а в вашей голове будет сплошная каша, чего мне ужасно не хочется. Скажу лишь, что таким образом мы запрещаем все прерывания у нашего микроконтроллера. Идем дальше:

Ох не хочется мне этого говорить, но эти строчки для первого раза придется тоже пропустить. Но мы вернемся к ним очень скоро. Дальше:

Первой идет команда movlw .255. Этой командой мы помещаем в аккумулятор число 255. Вы заметили, что у меня на каждую команду уходит по небольшому параграфу объяснений, ничего не поделаешь, вначале придется потерпеть, зато потом будет легче. Так вот, что такое аккумулятор и зачем он нужен? Как бы это странно не звучало, но в МК PIC нет возможности напрямую записать в регистр данных число. Для этого нужно сначала записать это число в аккумулятор, а потом переместить это число из аккумулятора в регистр. Аккумулятор в данном случае получается вроде временного регистра. Кстати именно с аккумулятором в той или иной степени связанно большинство команд МК. Посмотрите внимательно на карту памяти данных выше, что удивительно, Вы там не найдете регистра аккумулятора. Это потому, что он хранится непосредственно «внутри» МК. Но это не должно Вас смущать. Так вот, как я сказал раньше, команда movlw .255 помещает в аккумулятор число 255. Почему именно 255 спросите Вы, а не 256 например? Да просто у нас регистр всего 8ми битный (вы ведь помните) и может хранить число от 0 до 255. А если Вы запишите в него число 256, то он «превратит» его обратно в 0. Кстати, точка перед числом означает, что число у нас представлено в десятичной системе счисления. А если Вы переведете число 255 в двоичную систему счисления, то увидите, что ему соответствует число B’11111111’. В принципе, мы могли написать movlw B’11111111’, от этого работа программы никак не изменилась.

Дальше идет команда movwf PORTB. Она копирует в регистр PORTB содержимое аккумулятора. То есть, по сути, мы за 2 команды записали в регистр PORTB число 255. Зачем это надо? Дело в том, что основной целью регистра PORTB является общение с внешним миром. И это не удивительно, так как по сути, если бы мы не могли ничего записывать в МК и ничего из него считывать, то он бы оказался абсолютно бесполезной железячкой. Посмотрите внимательно, у нашего микроконтроллера целых 5 портов ввода/вывода. И все они предназначены для приема или отправки данных. Порт PORTB это 8-ми битный регистр, об этом мы уже говорили, и каждый бит этого регистра, это отдельная ножка микроконтроллера! Посмотрите на рисунок:

Видите справа напротив 33 ножки написано RB0, напротив 34 написано RB1, и так далее до 40 ножки (RB7). Это как раз и есть наш порт POTRB, а цифра в конце указывает на номер бита в регистре, т.е. нулевому биту регистра PORTB соответствует ножка RB0, первому биту регистра PORTB соответствует RB1 и т.д. вплоть до седьмого. Кстати, двунаправленная стрелочка напротив каждой ножки обозначает, что мы с помощью этой ножки можем как принимать, так и отправлять данные. Следует лишь предварительно их настроить. В нашем случае все 8 линий порта PORTB настроены на выход, то есть мы с помощью них будем отправлять либо 0 либо 1 во внешний мир. А чтобы это сделать, нужно лишь записать в регистр PORTB на нужные линии порта значения либо 0 или 1. В нашем случае мы командой movwf PORTB установили все биты регистра в единицу, то есть, на все ножки, начиная с 33 и кончая 40, подали напряжение. Теперь, если Вы посмотрите на схему, то увидите, что у нас к порту PORTB подключены светодиоды, которые загорятся.

Теперь нам осталась самая малость, зациклить программу. Дело в том, что микроконтроллер у нас всегда должен что-то делает. Вот мы и заставим его работать в холостую, написав:

Этими тремя сточками мы реализовали простейший цикл, который заставит бесконечно крутиться микроконтроллер. Первой строкой идет метка Loop, ее микроконтроллер пропускает, но запоминает куда ему нужно будет вернуться. Затем идет команда nop. Она говорит МК ничего не делать. А потом идет команда goto Loop, эта команда безусловного перехода, если перевести на человеческий язык принцип ее работы, то получится примерно следующее: «А теперь возьми и вернись на метку Loop». То есть мы просто перескочим на метку, которую сами и создали и МК снова приступит к выполнению команды nop.

Зачем же надо создавать этот цикл? В принципе, его можно и убрать, но в таком случае я за действия программы уже не отвечаю. Помните, я рассказывал вам про память программы? Так вот, после того, как мы скомпилируем текст нашей программы, у нас получится .hex файл, который нам нужно будет прошить в микроконтроллер. Во время прошивки наша программа как раз и заносится в память программ. Начиная с адреса 0x0000. Так вот, при запуске МК у нас автоматически начинается исполнение команды с этого адтеса. Если бы мы не зациклили нашу программу, то МК дошел бы до конца нашей программы, а потом просто продолжил бы последовательно «выдергивать» команды из памяти программ и выполнять их. Дойдя до последнего адреса памяти, он бы снова перескочил на адрес 0x0000, и все пошло по кругу. То есть заново бы стал выполнять преобразование регистров. Нам такого «счастья» не надо. Мы просто зациклили МК на выполнение одной команды nop, и сидим любуемся на горящие светодиоды.

Ну все, думаю для первого раза достаточно. Компилируем программу, нажав кнопку Ctrl + F10, затем прошиваем полученный .hex файл в МК, и собираем схему, которую предложил Дмитрий. Включаем и видим, что все светодиоды горят. УРА.

Давайте еще раз повторим основные моменты. Итак, МК в своем составе имеет память программ и память данных. Программа записывается в память программ, а при запуске МК начинается последовательное выполнение команд, начиная с адреса 0x0000. Память данных в свою очередь поделена на 4 банка и состоит из регистров специального назначения, предназначенные для управления работой МК, и регистров общего назначения, предназначенные для хранения данных. Так же мы познакомились с регистром специального назначения PORTB, который может включать и выключать подключенные к его выводам светодиоды, для этого нужно лишь записать 0 или 1 в нужный бит данного регистра. Ну и закончили мы на том, что любую написанную программу нужно «зацикливать» либо полностью, либо вставлять холостой цикл в конце программы, чтобы МК не выходил за пределы программы.

Этот самоучитель был написан в 2007-2008 годах.
Самоучитель прошел через несколько рук и в целом его можно назвать доступным для изучения.
Насколько он сейчас актуален? Я думаю актуален, т.к. язык Ассемблера применительно к PIC не притерпел изменений и довольно много пользователей, которым этого языка достаточно для большинства приложений.
Данный самоучитель имеет изначальное название «PIC микроконтроллеры: быстрый старт с нуля».
Звучит оптимистично. Однако, это не означает, что быстрый старт станет быстрым финишем на пути вашего освоения микроконтроллеров.
Вам потребуется много времени для понимания и постоянного изучения. Если у вас нет настойчивости, терпения и внимательности, то я вам не рекомендую начинать изучать этот самоучитель и в целом микроконтроллеры

Если вам понравилась эта книга поделитесь ею с друзьями, тем самым вы помогаете нам развиваться и добавлять всё больше интересных и нужным вам книг!

Этот самоучитель был написан в 2007-2008 годах. Самоучитель прошел через несколько рук и в целом его можно назвать доступным для изучения. Насколько он сейчас актуален? Я думаю актуален, т.к. язык Ассемблера применительно к PIC не притерпел изменений и довольно много пользователей, которым этого языка достаточно для большинства приложений.

Данный самоучитель имеет изначальное название «PIC микроконтроллеры: быстрый старт с нуля». Звучит оптимистично. Однако, это не означает, что быстрый старт станет быстрым финишем на пути вашего освоения микроконтроллеров. Вам потребуется много времени для понимания и постоянного изучения. Если у вас нет настойчивости, терпения и внимательности, то я вам не рекомендую начинать изучать этот самоучитель и в целом микроконтроллеры.

Сейчас я бы не смог написать этот самоучитель; получилось бы менее понятно. Если вы обнаружите ошибку в изложении или некорректные данные — сообщите мне об этом. Я обязательно исправлю. Также принимается дополнительная информация.

Mplab x ide самоучитель

После краткого изучения архитектуры и возможностей контроллеров PIC пришло время нам попробовать себя в программировании данных контроллеров, так как без программы микроконтроллер — это бесполезная микросхема.

Только чтобы попробовать себя в программировании, обычно требуется какая-то среда программирования (не в блокноте же мы будем писать код), а также компилятор. Для этого у компании Microchip есть бесплатный IDE — это MPLAB X IDE. Давайте её для начала скачаем. Для этого идём на официальный сайт Microchip и идём по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® X IDE

И попадаем на следующую страницу, в которой выбираем закладку Downloads, в которой скачаем последнюю версию среды разработки (нажмите на картинку для увеличения изображения)

Путь оставим предложенный по умолчанию, если у нас нет Proxy, то отключим их

Далее тоже оставим всё по умолчанию

И программа установится на наш компьютер

Отключаем все галки и жмём Finish

Эти галки гласят о том, что у нас не установлен компилятор, также советуют установить фреймворк для удобства разработки. Всё это мы проделаем самостоятельно потом. Компилятор в среде уже есть, правда только для ассемблера. Но, так как мы решили писать на C, то компилятор нам всё-таки скачать и установить придётся, но чуть позже.

Попробуем запустить нашу среду разработки, чтобы хотя бы убедиться, что всё у нас нормально установилось. И, не создавая никаких проектов, закроем её.

Теперь, соответственно, чтобы нам писать код на C, потребуется компилятор. Компиляторы для контроллеров разной битности (8, 16 и 32) отдельные.

На официальном сайт Microchip проследуем по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® XC Compilers

На открывшейся странице перейдём по закладке Downloads и скачаем последнюю версию 8-битного компилятора (XC 8) (нажмите на картинку для увеличения изображения)

Путь оставляем по умолчанию

Включим все галочки

После установки жмём Next, никакой ID не запоминаем, нам профессиональная лицензия не нужна, воспользуемся свободно-распространяемой. На сайте можно почитать об ограничениях свободной лицензии. Они очень незначительны

Ещё раз запустим среду программирования MPLAB X IDE. Закроем там стартовое окно и перейдём на вкладку Projects

Как видим, у нас тут пусто. Исправим эту ситуацию, создав новый проэкт. Для этого выберем пунк меню File -> New Project…

Выбираем Standalone Project и идём далее

Выберем из выпадающего списка наш контроллер, отфильтровав выше для удобства по семейству

Выбираем Sinulator, так как пока мы отлаживать проект будем именно в нём. Да и мой контроллер PICkit 2 неоригинальный не поддерживается данной средой. А загружить созданную нами впоследствии прошивку мы будем спомощью специальной программы

В следующем окне выбираем наш компилятор и идём далее

В следующем окне назовём наш первый проект BLINK01, выберем папку для его хранения и оставим галку напротив того, чтобы наш проект стал главным и заетм жмём Finish

Проект появится в дереве проектов.

Создадим в нём файл main.c, выбрав соответствующий пункт контекстного меню в папке Source Files

В открывшемся окне исправим имя файла, чтобы он был именно main.c ибо нам так как-то привычнее и нажмём Finish

Файл откроется самостоятельно. В нём будет уже некоторый код

#include

void main( void ) <

return ;

То есть у нас уже подключена стандартная библиотека, которой нам на первых порах будет достаточно, так как в ней внутри находится подключение многих необходимых библиотек. И также у нас есть точка входа в программу — главная функция main.

Также мы знаем, что контроллеру неохдодимо постоянно находиться в работе. Для этого мы в каждый проект в главную функцию добавляем бесконечный цикл. Добавим и в этот проект

while (1)

Давайте соберём наш проект, нажав соответствующую кнопку в панели инструментов

Проект наш собран. Давайте посмотрим информацию в окне вывода сообщений

Это информация о затраченных и свободных ресурсах различных типов памяти контроллера.

В самом конце информационного сообщения находится путь к файлу прошивки (нажмите на картинку для увеличения изображения)

Убедимся, что файл прошивки там действительно присутствует

Мы видим, что прошивка на месте, также в данной папке присутствует ряд других файлов с отладочной и другой информацией.

Думаю, что на этом мы наш сегодняшний урок закончим. В дальнейшем мы напишем какой-то полезный код в наш проект, попробуем его прошить сначала в протеусе, а затем в настоящий контроллер, собрав соответствующую схему и подключив программатор.

После краткого изучения архитектуры и возможностей контроллеров PIC пришло время нам попробовать себя в программировании данных контроллеров, так как без программы микроконтроллер — это бесполезная микросхема.

Только чтобы попробовать себя в программировании, обычно требуется какая-то среда программирования (не в блокноте же мы будем писать код), а также компилятор. Для этого у компании Microchip есть бесплатный IDE — это MPLAB X IDE. Давайте её для начала скачаем. Для этого идём на официальный сайт Microchip и идём по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® X IDE

И попадаем на следующую страницу, в которой выбираем закладку Downloads, в которой скачаем последнюю версию среды разработки (нажмите на картинку для увеличения изображения)

Путь оставим предложенный по умолчанию, если у нас нет Proxy, то отключим их

Далее тоже оставим всё по умолчанию

И программа установится на наш компьютер

Отключаем все галки и жмём Finish

Эти галки гласят о том, что у нас не установлен компилятор, также советуют установить фреймворк для удобства разработки. Всё это мы проделаем самостоятельно потом. Компилятор в среде уже есть, правда только для ассемблера. Но, так как мы решили писать на C, то компилятор нам всё-таки скачать и установить придётся, но чуть позже.

Попробуем запустить нашу среду разработки, чтобы хотя бы убедиться, что всё у нас нормально установилось. И, не создавая никаких проектов, закроем её.

Теперь, соответственно, чтобы нам писать код на C, потребуется компилятор. Компиляторы для контроллеров разной битности (8, 16 и 32) отдельные.

На официальном сайт Microchip проследуем по пунктам меню DESIGN SUPPORT -> Development Tools -> Software Tools For PIC® MCUs And DsPIC® DSCs -> MPLAB® XC Compilers

На открывшейся странице перейдём по закладке Downloads и скачаем последнюю версию 8-битного компилятора (XC 8) (нажмите на картинку для увеличения изображения)

Путь оставляем по умолчанию

Включим все галочки

После установки жмём Next, никакой ID не запоминаем, нам профессиональная лицензия не нужна, воспользуемся свободно-распространяемой. На сайте можно почитать об ограничениях свободной лицензии. Они очень незначительны

Ещё раз запустим среду программирования MPLAB X IDE. Закроем там стартовое окно и перейдём на вкладку Projects

Как видим, у нас тут пусто. Исправим эту ситуацию, создав новый проэкт. Для этого выберем пунк меню File -> New Project…

Выбираем Standalone Project и идём далее

Выберем из выпадающего списка наш контроллер, отфильтровав выше для удобства по семейству

Выбираем Sinulator, так как пока мы отлаживать проект будем именно в нём. Да и мой контроллер PICkit 2 неоригинальный не поддерживается данной средой. А загружить созданную нами впоследствии прошивку мы будем спомощью специальной программы

В следующем окне выбираем наш компилятор и идём далее

В следующем окне назовём наш первый проект BLINK01, выберем папку для его хранения и оставим галку напротив того, чтобы наш проект стал главным и заетм жмём Finish

Проект появится в дереве проектов.

Создадим в нём файл main.c, выбрав соответствующий пункт контекстного меню в папке Source Files

В открывшемся окне исправим имя файла, чтобы он был именно main.c ибо нам так как-то привычнее и нажмём Finish

Файл откроется самостоятельно. В нём будет уже некоторый код

#include

void main( void ) <

return ;

То есть у нас уже подключена стандартная библиотека, которой нам на первых порах будет достаточно, так как в ней внутри находится подключение многих необходимых библиотек. И также у нас есть точка входа в программу — главная функция main.

Также мы знаем, что контроллеру неохдодимо постоянно находиться в работе. Для этого мы в каждый проект в главную функцию добавляем бесконечный цикл. Добавим и в этот проект

while (1)

Давайте соберём наш проект, нажав соответствующую кнопку в панели инструментов

Проект наш собран. Давайте посмотрим информацию в окне вывода сообщений

Это информация о затраченных и свободных ресурсах различных типов памяти контроллера.

В самом конце информационного сообщения находится путь к файлу прошивки (нажмите на картинку для увеличения изображения)

Убедимся, что файл прошивки там действительно присутствует

Мы видим, что прошивка на месте, также в данной папке присутствует ряд других файлов с отладочной и другой информацией.

Думаю, что на этом мы наш сегодняшний урок закончим. В дальнейшем мы напишем какой-то полезный код в наш проект, попробуем его прошить сначала в протеусе, а затем в настоящий контроллер, собрав соответствующую схему и подключив программатор.

Важно помнить , что путь к файлам проекта, как и название самих файлов, не должны содержать русских символов. Иначе MPLAB IDE не будет работать, т.к. не увидит файлы с такими названиями. В дальнейшем , что бы у нас не возникало по этому поводу проблем, создадим на диске «С» папку «Project». В этой папке мы и будем хранить наши проекты.

Итак, создаем папку «test_01», так будет называться наш первый проект. Соответственно путь к проекту будет C:Project est_01.

Откроем «блокнот» и сохраним его в созданной папке «test_01» с расширением «asm», назвав то же «test_01»

Далее запускаем программу, должно открыться вот такое окно:

Выбираем вкладку Projekt-> Project Wizard.

Нажимаем кнопку «далее».

Из выпадающего списка выбираем микроконтроллер PIC18F252.

Выбираем язык программирования по умалчиванию (ассемблер) и нажимаем кнопку «далее».

В окне создания проета нажимаем кнопку «Browse», и указываем путь к папке C:Project est_01. Проект назавем то же «test_01» , так же как и папку. Нажимаем кнопку «далее».

Выбираем наш файл (test_01.asm) нажатием кнопки «ADD» или двойным щелчком мышки.

Нажимаем кнопку «Да»

Вот практичеки и все. Осталось выбрать наш файл «test_01. asm » и откроется окно текстового редактора, где мы и будем писать нашу программу.

Краткий Курс — Самоучитель — Программирование микроконтроллеров AVR — быстрый старт с нуля

Добавить страницу в закладки:

— стр. 9 -

МК «PIC» от MicroChip 



от производителя PIC-ов, более 600 примеров применения с теорией схемами и кодом программ: All Application Notes  (апликухи!) 


Начинающему PIC’оману от классика жанра:  David Tait’s PIC Links На самом деле это не линки, а бесценные для старта материалы. Их можно скачать одним архивом 5 Мб — очень удобно.

Peter Anderson’s PIC Page  — супер!   не только о ПИКах но и по связи ПК с внешним миром.

THE PIC COURSE   без комментариев! из названия все понятно… и просто, с картинками

FAQ — два сборника ответов на вопросы по Си для PIC — один лучше другого

ПО для разработки программ для PIC
HT-PICC — Компилятор Си (пожалуй лучший) для PIC и классная инструкция.
SourceBoost IDE - Компилятор Си для PIC — недорогой от Павла Баранова.  позволяют вести хорошую графическую симуляцию работы МК.
PIC Simulator IDE — среда разработки ПО и симуляции работы МК PIC от компании oshonSoft 

Ну и наконец: Программировать PIC (т. е. заливать в МК то, что вы наваяете) можно вот этим (я его использую и для i2c приборов): JDM PIC Programmer — там схема, рисунок платы (не забудьте, на плате есть 2 перемычки! — но они плохо видны). 

Софт для программирования рекомендую Ic-prog.com — я использовал успешно, значит проверено мной.

Симулятор электроники и ПИКов — PROTEUS   

 

<— Назад        . 

 

Попробуйте поискать полезную инормацию в Гугле — ее там море !  Учитесь искать!

Лафа закончилась. дальше не будет.  Моей целью был именно краткий курс — помогающий вам сделать первые шаги. Дальше сами… 

Удачи!  

pic — Как собрать простейший файл сборки в MPLabX IDE 5.

4

Документация Microchip для MPLab X и XC8, вероятно, одна из худших, что я когда-либо читал. Мне пришлось объединить то, что я прочитал из нескольких источников, и с некоторыми догадками, чтобы заставить ассемблер работать в MPLab X IDE 5.4. Итак, вот код сборки, который собирается без сообщений об ошибках или предупреждениях.

  ПРОЦЕССОР 16F84A
#include 
Код PSECT
        org 00
цикл: clrw
        конец цикла
  

Учебники и книги, которые я прочитал, все используют ассемблер MPASM вместо его текущей замены, pic-as в XC8.С MPASM и более ранней версией MPLab чистый ассемблерный код будет просто построен. Но с текущим XC8 и pic-as вам нужно начать с включения /Applications/microchip/xc8/v2.20/pic/include/xc.inc , где есть директива, указывающая на / Applications / microchip / xc8 /v2.20/pic/include/pic.inc , который, в свою очередь, имеет директиву, указывающую на /Applications/microchip/xc8/v2. 20/pic/include/ic_as_chip_select.inc , что в конечном итоге указывает на / Applications / microchip / xc8 / v2.20 / pic / include / proc / pic16f84a.inc , который определяет PSECT :

  psect udata, class = RAM, space = SPACE_DATA, noexec
psect udata_bank0, class = BANK0, space = SPACE_DATA, noexec
код psect, класс = CODE, пробел = SPACE_CODE, delta = 2
данные psect, класс = STRCODE, пробел = SPACE_CODE, delta = 2, noexec
psect edata, класс = EEDATA, пробел = SPACE_EEPROM, delta = 2, noexec
  

По какой-то неясной причине вокруг ассемблерного кода должен быть psect . Объяснение дается следующим образом (я понятия не имею, о чем идет речь или почему мне нужно обернуть код сборки, как будто я заключаю в скобки вызов функции C):

Псекты — сокращение от программных разделов — это контейнеры, которые группируют и удерживают связанных частей программы, даже если исходный код для этих части могут не быть физически смежными в исходном файле или могут даже быть распределенным по нескольким модулям. Они самые маленькие сущности помещается компоновщиком в память.

Что касается файла листинга: инструкция для чтения или вывода файла листинга частично упоминается в Руководстве пользователя MPLAB® X IDE (раздел 5.16 на стр. 127): Window> Debugging> Output> DisassemblyListingFile . В качестве альтернативы, файл листинга можно вывести на /MyProject/disassembly/listing.disasm (не в формате * .lst , как предлагает форум Microchip или их руководство!), Вставив -code = 0h -Wa, -a в ProjectProperties / pic-asLinker / CustomLinkerOptions (ни в одном из их руководств пользователя нет упоминаний или инструкций, и я просто догадываюсь, где что вставить, прочитав Руководство пользователя MPLAB® XC8 PIC Assembler для разработчиков встраиваемых систем), где это предоставляет примеры компиляции из командной строки XC8.Ни один из файлов листинга, сгенерированных в среде IDE, не предоставляет всех подробностей — он даже не показывает векторные адреса инструкций!

  Листинг дизассемблера для FooProject
Создано из:
/Users/*******/Desktop/Foo/dist/default/production/Foo. production.elf


--- /Users/*******/Desktop/Foo/FooFile.asm ----------------------------- -------------------------------
                                                  1: ПРОЦЕССОР 16F84A
                                                  2: #include 
                                                  3: код PSECT
                                                  4:; похвалить
                                                  5: org 00
01FF 0103 CLRW 6: цикл: clrw
                                                  7: конец цикла
 
  

Я не приму свой ответ. Если кто-то может помочь решить мою находку или объяснить, почему существует psect и как получить файл списка для отображения векторных адресов, я приму его / ее ответ.

[EDIT] Для вывода файла листинга в MPLabX 5.4 или с X8 (pis-as) CLI с использованием опции -Wa, -a.

// Исходный файл должен заканчиваться расширением * .S для компилятора для предварительной обработки препроцессора C $ sudo pic-as -mcpu = 16F84A -Wa, -a SourceFileName. S -o OutputFolderName / OutputFileName

pic% 20assembly% 20programming% 20to% 20read% 208% 20bit% 20 таблица данных и примечания к приложению

IC 7505

Аннотация: Текст аннотации недоступен
Текст: Текст файла отсутствует

2014 — матричные светодиодные дисплеи 7×5 точек

Аннотация: arduino uno ASM117 28BYJ-48 ASM117-3 28BYJ48 mg995 Устройства Акселерометр ADXL3xx PIC16f877a пример кода spi 24c16 wp
Текст: текст файла недоступен

pic16f84a

Аннотация: pic16F877 PIC16F628 ADC IN PIC16F877 PIC16F873 pic16f877a ethernet PIC16F727 pic16f722 pic16F723 PIC16F690 lcd
Текст: Текст файла отсутствует

1997 — из фото 18

Аннотация: CDP1877E Программирование c для контроллера pic CDP1877CE CDP1877C CDP1877 CDP1802A CDP1802 CDP1800 Кодировщик с приоритетом от 16 до 4 строк
Текст: Нет текста в файле

1994 — ПИКСТАРТ-16Б

Аннотация: PSIM 6.0 руководство пользователя milford serial lcd 16C64 ZIF socket 18pin CONNECTOR PASM milford lcd ds pic simulator 7 СЕГМЕНТНЫЙ ДИСПЛЕЙ ОБЩИЙ КАТОД 16C84
Текст: Текст файла отсутствует

ld 7523 эквивалент

Аннотация: Текст аннотации недоступен
Текст: Текст файла отсутствует


OCR сканирование
PDF 7501-ПИК 7519-ПИК 7555-ПИК эквивалент ld 7523
2011 — Нет в наличии

Аннотация: Текст аннотации недоступен
Текст: Текст файла отсутствует


Оригинал
PDF
2005 — Комбинированный драйвер

Резюме: 1750a 1F41 P150A P1753 PACE1754 P1750A ANP16-001
Текст: Текст файла недоступен


Оригинал
PDF P1754 PACE1754 P1750A / AE P1753 ANP16-001 ANP16-001 Комбинированный драйвер 1750a 1F41 P150A P1750A

OCR сканирование
PDF 7501-ПИК 7519-ПИК 7555-ПИК IC 7505
ка 7562

Аннотация: рис. 636 PIC626 PIC7501 pic602 7555-PIC PIC635 диаграмма и 7522 PIC7526 PIC660
Текст: Текст файла недоступен


OCR сканирование
PDF 7501-ПИК 7519-ПИК 7555-ПИК ка 7562 рис 636 PIC626 PIC7501 pic602 PIC635 диаграмма 7522 PIC7526 PIC660
1998 — проект рис 16f84.asm

Аннотация: проект pic 16f84 PIC PROJECT C MPASMWIN.EXE 16f84 проект Microchip PIC16F84 PIC 17C756 MPASM 16F84 P17C756 16c77
Текст: Текст файла недоступен


Оригинал
PDF MPLAB-C17 MPLABC17 проект pic 16f84 . asm проект ПИК 16f84 ПОС ПРОЕКТ C MPASMWIN.EXE Проект 16f84 Микрочип PIC16F84 PIC 17C756 MPASM 16F84 P17C756 16c77
2013 — Нет в наличии

Аннотация: Текст аннотации недоступен
Текст: Текст файла отсутствует


Оригинал
PDF
7508 регулятор

Аннотация: Текст аннотации недоступен
Текст: Текст файла отсутствует


OCR сканирование
PDF 7501-ПИК 7519-ПИК 7555-ПИК 7508 регулятор
1996 — идентификатор вызывающего абонента ПК ПК

Аннотация: Схема последовательного программатора pic 16C74 Схема программатора pic EV6020 ZIF 40-контактная схема DIL RS232 RS232 подключение к pic pic start 16C74JW
Текст: Нет текста в файле


Оригинал
PDF EV6000 UM6000 / 3 EV6020 EV6040 FX602, FX604 FX614 RS232) 16-я серия идентификатор вызывающего абонента pic pc Схема последовательного программатора pic 16C74 схема программиста pic ЗИФ 40-контактный дил схема rs232 RS232 подключение к рис. начало картинки 16C74JW
2008 — Модуль WLAN MII

Резюме: NS9215 MIC2412A-5108 MIC2412A-5108W-LF3 DSRC 5.8 ГГц netarm 40 FCI Connector DSRC baseband ARM926EJ-S 5TC-TT-K-36-72
Текст: Текст файла отсутствует


Оригинал
PDF impl24 Модуль WLAN MII NS9215 MIC2412A-5108 MIC2412A-5108W-LF3 DSRC 5,8 ГГц сеть 40 Разъем FCI Основная полоса DSRC ARM926EJ-S 5TC-TT-K-36-72
2004 — I8051

Аннотация: 16f84 * max232 7805C1 2-значный 7-сегментный дисплей pic16f877 m / L.E.D Moving Display Board
Текст: Текст файла недоступен


Оригинал
PDF 40-контактный MC68HC11, i8051, I8051 16f84 * max232 7805C1 2-значный 7-сегментный дисплей pic16f877 м / л.E.D Moving Display Board

Оригинал
PDF WU-003 ILI9325 WU-005 WU-007 28BYJ-48 WU-004 KS0108 128×64 WU-006 MG995 Светодиодные дисплеи с точечной матрицей 7×5 arduino uno ASM117 ASM117-3 28BYJ48 Устройства акселерометра ADXL3xx PIC16f877a пример кода spi 24c16 WP
2004 — PIC16F877A контакт

Аннотация: Микроконтроллер PIC16F877A ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ PIC16F877A Схема контактов PIC16F877A Блок-схема PIC16F877A ШИМ с использованием PIC16F877a c код PWM Инвертор с использованием PIC Микроконтроллер управления скоростью двигателя постоянного тока с использованием Pic16F877A PIC16F877A Принципиальная схема PIC16F877A Текстовый файл PIC16F877


Оригинал
PDF com / файлы / mm51c / загрузчик / WinLoad MCP100 PIC16C58 PIC16F877A RS-232 PIC16F877A контакт Микроконтроллер PIC16F877A ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ PIC16F877A Схема контактов PIC16F877A Блок-схема PIC16F877A ШИМ с использованием кода PIC16F877a c Инвертор PWM с использованием микроконтроллера PIC контролировать скорость двигателя постоянного тока с помощью Pic16F877A Принципиальная схема PIC16F877A PIC16F877A подключается к 16-контактному ЖК-дисплею

Оригинал
PDF PIC18 PIC16F726 PIC16F727 PIC16F76 PIC16F77 pic16f84a pic16F877 PIC16F628 АЦП В PIC16F877 PIC16F873 pic16f877a Ethernet PIC16F727 pic16f722 pic16F723 PIC16F690 жк
2009 — ENC624j600

Аннотация: СХЕМА ПЛАТЫ Psp Схема выключателя питания PSP Примечание по применению PIC18 psp PIC18 uart ИСХОДНЫЙ КОД DS39935 Временная диаграмма порта pic18, принципиальная схема подключения ЖК-дисплея к pic Pic32, примечания по применению ENC424J600
Текст: Текст файла отсутствует


Оригинал
PDF AC164132) ENC424J600 ENC624J600 PIC32 PIC18 ENC624J600 ENC424J600 / 624J600 DS39935) RJ-45 DS51857A СХЕМА МАТЕРИНСКОЙ ПЛАТЫ Psp схема выключателя питания psp Примечание по применению PIC18 psp ИСХОДНЫЙ КОД PIC18 uart DS39935 диаграмма синхронизации порта pic18 Схема подключения ЖК-дисплея к рис. примечания к приложению pic32
Нет в наличии

Аннотация: Текст аннотации недоступен
Текст: Текст файла отсутствует


OCR сканирование
PDF PIC-12043S fcfc1 / 10JiTF)
2001 — 0322BF

Резюме: 0320bf IPC-2001 ASTM B117 СОДЕРЖАНИЕ разъем 30-контактный разъем IDC B117 для анализатора цепей 7 мм разъемы для анализатора цепей hp 30 кГц-30 МГц
Текст: Текст файла отсутствует


Оригинал
PDF
2007 — MIC2412A-5108W-LF3

Аннотация: NS9215 USB_OTG DSRC spi cc9p le48 led драйвер x10 с использованием модуля pic WLAN MII USB_OTGID ARM926EJ-S
Текст: текст файла недоступен


Оригинал
PDF ICES-003 EN60950-1 MIC2412A-5108W-LF3 NS9215 USB_OTG DSRC spi cc9p le48 светодиодный драйвер x10 с использованием картинки Модуль WLAN MII USB_OTGID ARM926EJ-S

Оригинал
PDF CDP1877, CDP1877C CDP1800 CDP1877 CDP1877C CDP1877 фото 18 CDP1877E c программирование для контроллера pic CDP1877CE CDP1802A CDP1802 Кодировщик приоритета от 16 до 4 строк
1999 — CDP1802

Реферат: CDP1877CE 16–4-строчный приоритетный кодировщик pic-приложение CDP1877E CDP1877C CDP1877 CDP1802A CDP1800 E040H
Текст: текст файла недоступен


Оригинал
PDF CDP1877, CDP1877C CDP1800 CDP1877 CDP1877C CDP1802 CDP1877CE Кодировщик приоритета от 16 до 4 строк приложение pic CDP1877E CDP1802A E040H

Оригинал
PDF PIC16Cxx 8051-как PICSTART-16B PSIM 6.0 руководство пользователя милфорд серийный жк-дисплей 16C64 ЗИФ розетка 18pin СОЕДИНИТЕЛЬ ПАСМ Милфорд ЖК ds pic симулятор ОБЩИЙ КАТОД ДИСПЛЕЯ 7 СЕГМЕНТОВ 16C84
Нет в наличии

Аннотация: Текст аннотации недоступен
Текст: Текст файла отсутствует


OCR сканирование
PDF 7513-ПИК 7531-ПИК
PIC-12043SM

Аннотация: PIC-12042S FACO PIC12043S PIC-12041T PIC-12045SM PIC-12045S PIC-12044S PIC-12043S РЧ-передатчик и приемник pic
Текст: Текст файла отсутствует


OCR сканирование
PDF PIC-12043S ПИК-i2043Svu-xfct, C-12041S PIC-12042S PIC-12043S PIC-12044S PIC-12045S ПИК-12043СМ PIC-12042S FACO PIC12043S PIC-12041T ПИК-12045СМ PIC-12045S PIC-12044S РЧ передатчик и приемник рис.
pwm с языком ассемблера для рис

Аннотация: PIC-ИНТЕРФЕЙС С LCD PIC ОСНОВНАЯ ЦЕПЬ PIC-интерфейс с lcd 16f87x PIC PWM основные примеры pic бесплатно скачать pic сведения о микроконтроллере 16C7X 16f8x
Текст: текст в файле отсутствует


Оригинал
PDF 16C5X 16F87X 16C6X 16C6XX, 16C7X, 16F8X 17C4X, 16F87X 12 бит pwm с языком ассемблера для рис. ИНТЕРФЕЙС PIC С ЖК-дисплеем ОСНОВНАЯ ЦЕПЬ PIC Интерфейс PIC с lcd PIC PWM основные примеры pic бесплатно скачать pic сведения о микроконтроллере 16C7X 16f8x
PIC16F877 Прерывание компилятора PICC

Аннотация: pic asm code picc lite PIC16F877 прерывание ccs компилятор PICC pic16f877 код asm ieee с плавающей запятой PIC16F877 PIC16F628 прерывание PICC компилятор 7-сегментный дисплей pic16f877 PIC PROJECT CCS C
Текст: текст в файле отсутствует


Оригинал
PDF PIC16F84 PIC16F877 PIC16F628 ICE2000ICD2 Shift16 PIC16F877 Прерывание компилятора PICC код asm pic Picc Lite Компилятор прерывания PIC16F877 ccs PICC pic16f877 код asm IEEE с плавающей запятой PIC16F877 PIC16F628 Прерывание компилятора PICC 7-сегментный дисплей pic16f877 ПИК ПРОЕКТ CCS C

10.

Компиляция программы с помощью MPLAB X и MPASM

В этом разделе объясняется, как начать программировать P-Star в сборке с использованием MPLAB X и XC8. MPLAB X — бесплатная интегрированная разработка (IDE) от Microchip для программирования своих микроконтроллеров PIC. MPASM — это ассемблер, поставляемый с MPLAB X.

Для большинства людей мы рекомендуем «разрабатывать приложения P-Star с XC8»: раздел 5.3, который допускает сочетание C и ассемблерного кода. Этот раздел предназначен для опытных пользователей, которые хотят использовать только сборку.

MPASM поддерживает два типа кода: абсолютный и перемещаемый. Эти инструкции покажут, как написать абсолютный код , где расположение каждой инструкции и переменной известно заранее. Альтернативой является перемещаемый код , который позволяет объединить несколько файлов сборки в одну программу с помощью компоновщика.

  1. Загрузите и установите последнюю версию MPLAB X.
  2. Найдите «MPLAB X IDE» в меню «Пуск» и запустите его.
  3. В меню «Файл» выберите «Новый проект».
  4. На первом экране мастера New Project выберите категорию «Microchip Embedded», а затем выберите «Standalone Project». Нажмите кнопку «Далее».
  1. В поле «Устройство» введите имя микроконтроллера на P-Star, которое может быть «PIC18F25K50» или «PIC18F45K50». Нажмите кнопку «Далее».
  1. На экране «Select Tool» вы можете выбрать «PICkit 3», но этот выбор не имеет значения, потому что мы не будем использовать MPLAB X для загрузки программы на плату.
  2. Для компилятора выберите MPASM.
  1. В качестве имени проекта выберите что-то вроде «p-star1» и выберите папку, в которой он должен находиться. Нажмите «Готово», чтобы создать проект.
  1. В меню «Файл» выберите «Свойства проекта». В категории «MPASM (глобальные параметры)» установите флажок «Построить в абсолютном режиме», затем нажмите «ОК».
  1. Теперь нам нужно создать исходный файл сборки.Найдите панель «Проекты». Если панель «Проекты» не отображается, вы можете открыть ее, открыв меню «Окно» и выбрав «Проекты». Щелкните левой кнопкой мыши знак «+» рядом с «Исходными файлами», чтобы развернуть его и убедиться, что в вашем проекте еще нет исходных файлов. Затем щелкните правой кнопкой мыши «Исходные файлы», выберите «Создать», а затем выберите «pic_8b_simple.asm…». Если «pic_8b_simple.asm» не отображается в меню, вы можете найти его, выбрав «Другое…», «Встроенный микрочип», а затем «Ассемблер MPASM».
  1. Выберите имя файла, например «main», и нажмите «Готово».Это должно создать новый файл с именем «main.asm» и открыть его для редактирования.
  2. Скопируйте и вставьте следующий код в main. asm, заменив весь код, который был там по умолчанию:
  3.     #include 
    
        org 0x2000
        перейти к началу
    
        org 0x2020
    ledRedOn:
        bcf TRISC, 6
        возвращаться
    
    ledRedOff:
        БСФ ТРИСК, 6
        возвращаться
    
    Начните:
        bcf LATC, 6; Настройте красный светодиод
    
        ; Включите таймер 0 как 16-битный таймер с предварительным делителем 1: 256:
        ; так как скорость инструкции составляет 12 МГц, это выходит за пределы
        ; каждые 1.4 секунды.
        movlw b'10000111 '
        movwf T0CON
    
    mainLoop:
        movf TMR0L, W; Запустить обновление TMR0H
    
        ; Красный светодиод мигает с периодом 1,4 с.
        btfss TMR0H, 7
        rcall ledRedOff
        btfsc TMR0H, 7
        rcall ledRedOn
    
        goto mainLoop
    
        конец 

    Если ваш P-Star имеет PIC18F45K50, приведенный выше код будет работать как есть, но вы должны изменить его, включив p18f45k50.inc вместо p18f25k50.inc .

  4. Чтобы скомпилировать код, откройте меню «Выполнить» и выберите «Создать основной проект».
  5. Панель «Вывод» должна отображать вывод сборки из MPLAB X. В одной из последних строк вывода должно быть указано «Загрузка кода из» и полный путь к файлу HEX, созданному во время компиляции.
Где найти дополнительную информацию

Для получения информации о наборе команд, аппаратных периферийных устройствах и регистрах на PIC см. Техническое описание PIC18F25K50 / PIC18F45K50.

Для получения информации о MPLAB X вы можете найти полезные ресурсы в меню «Help» и в каталоге «docs» внутри вашей установки MPLAB X.

Для получения информации о MPASM см. Его руководство пользователя, которое находится в каталоге «mpasmx / docs» внутри вашей установки MPLAB X.

Если у вас есть вопросы, вы можете разместить их на форуме Microchip MPASM или на форуме Pololu Robotics.

ЯЗЫК СБОРКИ PIC — Микроконтроллеры PIC: Глава 3

Глава # 3

Программисты на языке ассемблера PIC должны знать, где программы размещаются в ПЗУ и сколько памяти доступно. Программа на языке ассемблера состоит из серии операторов, которые являются либо инструкциями, либо псевдо-инструкциями, также называемыми директивами.Команды переводятся ассемблером в машинный код. Программирование PIC в ассемблере 1 используется для управления фактической работой PIC, например, чтобы сообщить PIC, какие биты порта A являются входными, а какие — выходными. Банк 0 используется для манипулирования данными. Пример выглядит следующим образом: Допустим, мы хотим сделать один бит на порту А высоким. Сначала нам нужно перейти в банк 1, чтобы установить конкретный бит или вывод на порту A в качестве выхода. Микроконтроллеры PIC: глава 3 «Язык ассемблера» и «ассемблер» — это два разных понятия.Первый представляет собой набор правил, используемых при написании программы для микроконтроллера, а другой — это программа на персональном компьютере, которая переводит язык ассемблера на язык нулей и единиц. PIC Assembly Language and Instruction set PIC Assembly Language and Instruction набор. CpE 112: Этикетка с кодом сборки PIC Klinkhachorn OpCode f, F (W); комментарии Инструкция от до f = Источник: имя специального регистра или переменная RAM F = Место назначения — f W = Место назначения — Рабочий регистр.. PIC Macro Assembler.

20-02-2021

    Программирование на языке ассемблера PIC18 Программирование на языке ассемблера — это метод написания программ с использованием инструкций, которые являются символическим эквивалентом машинного кода. Синтаксис каждой инструкции структурирован так, чтобы обеспечить прямой перевод в машинный код. В этой главе начинается формальное изучение….
    • Что такое язык ассемблера?
      Каждый персональный компьютер имеет микропроцессор, который управляет арифметической, логической и контрольной деятельностью компьютера.Каждое семейство процессоров имеет свой собственный набор инструкций для обработки различных операций, таких как получение ввода с клавиатуры, отображение информации на экране и выполнение варио…
    • Преимущества языка ассемблера
      Понимание языка ассемблера позволяет понять: 1. Как программный интерфейс с ОС, процессором и BIOS; 2. Как данные представлены в памяти и на других внешних устройствах; 3. Как процессор получает доступ и выполняет инструкцию; 4. Как инструкции получают доступ и обрабатывают данные; 5.Как пр…
    • Основные характеристики аппаратного обеспечения ПК
      Основное внутреннее оборудование ПК состоит из процессора, памяти и регистров. Регистры — это компоненты процессора, которые содержат данные и адреса. Для выполнения программы система копирует ее с внешнего устройства во внутреннюю память. Процессор выполняет инструкции программы. Фундамент…
    Сборка. Учебник по сборке PIC 1 — Введение в сборку. 3 июля 2013 г. · Добро пожаловать в первую часть руководств по сборке PIC.Этот набор руководств основан на популярных микроконтроллерах PIC16F628A и PIC16F648A. Мы будем программировать на ассемблере по ряду причин: ассемблер — это очень весело и. Встроенные вычисления с использованием языка ассемблера PIC 16F877 для микроконтроллера PIC для аналого-цифрового преобразования, последовательной связи, PWM, чтения с клавиатуры, EEPROM и последовательного доступа к памяти. Встроенные вычисления с использованием подхода на языке сборки PIC16F877 (A). Полное руководство по проекту для студентов PIC, 2006 г.п. 475 Чарльз. . Искусство программирования на языке ассемблера с использованием PIC. Искусство программирования на языке ассемблера с использованием технологии PIC®. написан для аудитории с широким спектром навыков, начиная от абсолютного новичка и заканчивая встроенным управлением, и заканчивая встроенным программистом C, который не знаком с языком ассемблера. С помощью этой книги вы пройдете через следующие области:. . Язык ассемблера PIC для начинающего программиста, вы вполне можете обнаружить, что язык ассемблера проще, чем BASIC или C.Во многих отношениях это больше похоже на разработку схемы, чем на написание программного обеспечения. Проблема с языком ассемблера в том, что он отличается для каждого типа процессора. Один ассемблер для Pentiums, другой для PIC mi-. Микроконтроллеры PIC В общем, инструкции PIC делятся на пять классов: Операция с рабочим регистром (WREG) с 8-битным непосредственным («буквальным») операндом. Например. movlw (переместить литерал в WREG) и lw (И литерал с WREG). Одна инструкция, характерная для PIC, — это retlw, немедленная загрузка в WREG и return, которая используется с вычисляемыми ветвями для создания таблиц поиска.. Введение в программирование на языке ассемблера PIC. Наш первый код языка сборки PIC В качестве введения в программирование сборки PIC мы будем использовать микроконтроллер с архитектурой x14 от Microchip PIC16F84A. Это чип, который мы представили в предыдущей статье. PIC1684A, имеющий всего несколько регистров для работы, хорош для новичков в программировании микроконтроллеров. Когда использовать banksel 17 августа 2012 г. · Контекст — [с использованием сборки, компилятора mpasm на средних / продвинутых 8-битных микроконтроллерах pic] Регистры файлов изображения хранятся в банках, некоторые из них используются всеми банками, а некоторые программные данные могут также использоваться всеми банками, но это, очевидно, приводит к расточительству памяти, поэтому выбор регистров и общих данных ограничен. . x86. Если бы вы указали, какой ассемблер для какого машинного языка, мы могли бы быть более полезными. — Дэвид Торнли, 4 августа 2010, 15:23. Добавить комментарий | 5 ответов Активные самые старые голоса. 41. ORG используется для установки счетчика местоположения ассемблера. Это может или не может быть преобразовано в адрес загрузки во время компоновки. Программирование на языке ASM «Язык ассемблера» и «ассемблер» — это два разных понятия. Первый представляет собой набор правил, используемых при написании программы для микроконтроллера, а другой — это программа на персональном компьютере, которая переводит язык ассемблера на язык нулей и единиц.. Сборка для встраиваемых систем PIC среднего уровня — Колледж Хадасса — Весна 2011 Программирование PIC среднего уровня Доктор Мартин Лэнд 5 Элементы ассемблерной программы Инструкции Инструкции языка ассемблера в PIC ISA Инструкция языка ассемблера ↔Инструкция машинного языка Метки Постоянный символьный буквальный указатель переменной регистр удерживающего значения Метка строки. Программирование на языке ассемблера MPASM ™ 29 мая 2020 г. · В темные века, когда Земля еще остывала, до субмикронных процессов, до того, как компиляторы C стали общедоступными в 8-битном мире встроенных систем, язык ассемблера был единственным способом сделать микроконтроллер ничего не делает.Ассемблер MPASM ™ был и остается стандартным ассемблером для семейства 8-битных микроконтроллеров PIC ®. Как отображать текст на ЖК-дисплее с символами 16×2 23 июня 2019 г. · Отображение текста на ЖК-дисплее с символами 16 × 1, 16 × 2 или любого размера это не сложная задача. Как только вы узнаете о внутренней структуре ЖК-дисплея символа, выводе ЖК-дисплея, регистрах, связанных с ЖК-дисплеем, и CG-RAM (ОЗУ, генерируемом символами), все будет в ваших руках. Если вы действительно заинтересованы в программировании ЖК-дисплеев и хотите знать… Программа на языке ассемблера Язык ассемблера — это программный инструмент, символический язык, который может быть напрямую переведен на машинный язык с помощью системной программы, называемой ассемблером. Выходными данными ассемблера является объектный модуль, содержащий битовые строки, составляющие программу на машинном языке, и информацию, которая сообщает программе-загрузчику, где разместить эти битовые строки. . Книга по сборке ПК В это время я читал вводный курс программирования на языке сборки ПК. Я разочаровался в обучении программированию в 16-битном реальном режиме и решил перейти в 32-битный защищенный режим. Однако вскоре я столкнулся с проблемой. Мне не удалось найти учебника, посвященного программированию на ассемблере в 32-битном защищенном режиме! Итак, я решил написать свое.. Язык ассемблера Синтаксис языка ассемблера. В языке ассемблера используется мнемоника для представления каждой низкоуровневой машинной инструкции или кода операции, обычно также каждого архитектурного регистра, флага и т. Д. Для многих операций требуется один или несколько операндов для формирования полной инструкции. Большинство ассемблеров разрешают именованные константы, регистры и метки для программ и ячеек памяти и могут вычислять выражения для операндов. Сборка XC8 24 июня 2015 г. · Сборка XC8 Привет, мне нужно написать несколько файлов на сборке.Как я могу определить функцию, определенную в file1.asm (она определена как GLOBAL) из file2.asm. «extern» на ассемблере больше не используется. Я получаю неопределенный символ «_functionA». Я могу легко вызвать функцию из C — никаких проблем … 48 лучших идей программирования на языке ассемблера в 2021 году. 3 февраля 2021 г. — Дополнительные идеи о языке Ассемблер, микроконтроллере Pic и программировании на языке Ассемблер. См. Другие идеи о языке ассемблера, программировании на ассемблере, рис…. Язык ассемблера Pic для полного новичка Прочтите книгу Язык ассемблера Pic для полного новичка.Руководство пользователя ассемблера PIC MPLAB XC8 Имя драйвера командной строки, используемого ассемблером MPLAB XC8 PIC, — pic-as. Этот драйвер может быть вызван как для выполнения этапов сборки, так и для связывания, и это приложение, вызываемое средами разработки, такими как MPLAB X IDE, для создания проектов сборки. Драйвер pic-as имеет следующий базовый формат команд: pic-as [параметры] файлы [библиотеки]. Программирование на языке ассемблера микроконтроллера 8051 25 ноября 2017 г. · Директивы языка ассемблера на самом деле являются инструкциями для ассемблера и указывают программе ассемблера, что делать в процессе ассемблера.Директивы языка ассемблера не влияют на содержимое памяти микроконтроллера 8051 (кроме директив DB и DW). MPLABX 5.40 MPASM Assembly PIC Если вы хотите работать с Assembly на 8 Bit PIC, у вас есть два варианта: Работа с MPLAX 5.35 (и ниже). MPASM все еще интегрирован здесь. Если вы хотите работать с MPLABX 5.4 (и выше), вам нужно было установить компилятор xc8 вручную и работать с PIC-Assembler, который поставляется с этим компилятором. Руководство пользователя Assembler: Неконфиденциальная версия PDF EQUARM DUI0379H ARM® Compiler v5 .06 для µVision® armasm Руководство пользователя Версия 5Главная> Справочная информация по директивам> EQU 12.27 EQU Директива EQU дает символическое имя числовой константе, значению, относящемуся к регистру, или значению, относящемуся к ПК. Синтаксис name EQU expr {, type} где: name — это символическое имя, которое нужно присвоить значению. expr — это адрес относительно регистра, ПК…. Введение в язык ассемблера Microchip PIC — часть 1 19 июля 2017 г. · Изучение языка ассемблера — один из основных навыков, который все еще требуется во встроенной системе, хотя основным недостатком использования языка ассемблера является; для этого требовалось больше времени на обучение по сравнению с языком более высокого уровня, но как только вы познакомитесь с одним типом семейства микроконтроллеров, таким как 8-битный 8-контактный Microchip PIC 12F683, затем кодирование на языке ассемблера….язык ассемблера pic24 1 мая 2013 г. · язык ассемблера pic24 Ищете ** ХОРОШИЙ ** учебник или справочник по написанию языка ассемблера на pic24. 2 часа в Google, и я могу найти 846592874659826459824 ресурсов языка ассемблера PIC, где NONE даже отдаленно не имеет отношения к pic24 ..

    Серия программирования PIC и языка ассемблера Серия программирования PIC и языка ассемблера — Эпизод 1 Следующий эпизод: http: // goo. gl/hoATC9 Темы: Ознакомление с рабочим процессом требований к программному обеспечению.. Программа First Assembly 23 октября 2019 г. · Более того, язык Assembly поддерживает условные директивы, например #if, #ifdef, #define и другие. Так что, если вы знаете, как они работают, не стесняйтесь их использовать. С этой конкретной директивой мы включаем файл «pic10f200.inc», который находится в папке с Assembler .. IF. Затем (на языке ассемблера PIC) 24 августа 2007 г. • Ассемблер Parallax предлагает те же возможности через свои инструкции сравнения и перехода (cja, cjae, cjb, cjbe.), Но они ограничены 8-битными значениями.. Затем (на языке ассемблера PIC). После того, как вы найдете нужную страницу, вас пригласят на свой сайт массмайнда! (сообщения будут видны только для.. pic примеры программирования на языке ассемблера микроконтроллера. в микроконтроллерах PIC. Его часто называют аккумулятором или рабочим регистром. Его легко инициализировать константой.Например:. Язык ассемблера: пошаговое руководство по языку ассемблера или даже близко к нему. Что я хочу сделать, так это познакомить вас с жаргоном и предположениями языка ассемблера, чтобы вы могли уловить типичное «введение» в язык ассемблера и не заблудиться на странице 6. Я особенно рекомендую отличную книгу Тома Свана «Освоение» Турбо Ассемблер, что возьму. Раздел 29. Набор команд PICmicro СЕМЕЙСТВО MCU СРЕДНЕГО ДИАПАЗОНА DS31029A-стр. 29-2 1997 Microchip Technology Inc. 29.1 Введение Каждая команда среднего уровня представляет собой 14-битное слово, разделенное на OPCODE, который определяет тип команды, и один или несколько операндов, которые дополнительно определяют работу инструкции. Запуск сборки PIC (рис. 11 ноября 2020 г. · В сборке PIC Мы храним наши файлы с расширением «.s». В старых файлах сборки микроконтроллера PIC, написанных для ассемблера MPASM, использовалось расширение файла «.asm», но для ассемблера pic-as мы больше не используем это расширение для наших файлы сборки.Если мы посмотрим на наш файл main.s, то мы увидим несколько вещей … Глава 2: Программирование на языке ассемблера PIC18. Глава 2: Программирование на языке ассемблера Микроконтроллер PIC18 Хан-Вэй Хуанг Государственный университет Миннесоты Манкато Государственный университет Миннесоты, Манкато. — Может быть мнемоникой инструкции по сборке или директивой сборки — Должен начинаться со второго столбца или больше — Должен быть отделен от метки двоеточием, одним или несколькими пробелами или табуляциями. . Как написать язык ассемблера: базовая сборка..

    Введение в язык ассемблера микроконтроллеров PIC. Это видео предназначено для новичков в программировании на языке ассемблера PIC. BTFSC (набор инструкций Microchip PIC18F) BTFSC BSF. . Учебное пособие по программированию на ассемблере. Язык ассемблера — это низкоуровневый язык программирования для компьютера или другого программируемого устройства, специфичный для конкретной компьютерной архитектуры, в отличие от большинства языков программирования высокого уровня, которые обычно переносимы между несколькими системами. Язык ассемблера преобразуется в исполняемый машинный код упомянутой служебной программой.. Примеры кода сборки PIC Вот некоторые коды сборки PIC, которые я скомпилировал за эти годы. Если вам нужно какое-то объяснение того, как работают эти коды, посетите мою страницу с руководствами. 1. Мигает один светодиод 2. Мигают все светодиоды 3. Использование переключателя 4. Нажатие кнопки счета (с семисегментным дисплеем) 5. Прерывание таймера 6. Прерывание RBO 7. RB…. Пошаговая процедура программирования микроконтроллеров Pic Микроконтроллеры PIC программируются с помощью встроенного языка C или ассемблера с использованием соответствующего специального программного обеспечения.Перед тем, как приступить к созданию проекта микроконтроллера PIC, мы должны узнать о разработке проекта на основе базового микроконтроллера (например, 8051). Программное обеспечение языка ассемблера Pic Aino — это компилятор языка ассемблера семейства микроконтроллеров Java для микроконтроллера PIC, написанный на Java. Имя файла: Компилятор байт-кода Aino. Автор: Ханну Йокинен. Лицензия: Freeware (Free) Размер файла: Работает на:…. ПРОГРАММИРОВАНИЕ ВСТРОЕННЫХ СИСТЕМ С ПОМОЩЬЮ PIC16F877 6 Список рисунков 2-1 Блок-схема внутреннего вида uP 2-2 Внутренняя блок-схема PIC16F877 3-1 Простой вид оборудования (только порты) 3-2 Пример базовой аппаратной системы.Техасский университет в Арлингтоне, лекция 3 PIC. • Когда PIC включен (VCC применяется к контакту сброса — глава 8), микроконтроллер начинает выполнение инструкции в ячейке 00000h (вектор сброса). • Используйте оператор ORG для этой инструкции в своем коде (при программировании на ассемблере). Компилятор C позаботится о создании кода сборки, имеющего это. Учебное пособие по программам кода сборки Microchip PIC16F628 Хотя предыдущий раздел о PIC18F2550 был написан на C, здесь я буду использовать только язык ассемблера.Связанное видео на YouTube: Домашняя разработка PIC Dev. Доска. Почему сборка? Он производит быстрое и эффективное кодирование на языке C для основных функций, связанных с управлением электроникой. Это позволяет действительно получить доступ к мощным функциям PIC.
      1. Получите необходимые детали и инструменты. Что вам понадобится 1. PIC, предпочтительно 16F1936 — но пока…

      2. Создайте схему. Несколько кратких заметок о схеме, представленной здесь. — Заголовок предназначен для подключения к…

      3. О PIC.Вы, наверное, уже знаете, что компьютер выполняет код, загружая код из…

      4. Общие сведения о памяти данных и разбиении на страницы. В устройствах PIC 16F193x есть три вида…

      5. Создание переменных и констант. При программировании на языке более высокого уровня, таком как C ++ или…

      6. Инструкции плюс данные равны результатам! С = А + В; Вышеупомянутый оператор является оператором присваивания…

      7. Настройка внутреннего осциллятора.На странице 69 спецификации PIC16F193x вы обнаружите, что это…

      8. Настройка портов. Версия PIC16F193X с 28 выводами имеет четыре порта: A, B, C и E. Только порт D.

      9. Установка таймера 1 и определение задержки. В конкретном устройстве, которое я использую, есть таймер с…

      10. с использованием аппаратных прерываний. Аппаратное прерывание — это способ проверки особых условий, при которых…

    Мигание светодиода с языком ассемблера и PIC: 11 шагов.. Приложение «Язык ассемблера» и «Ассемблер» не имеют одинакового значения. Первый относится к набору правил, используемых для написания программы для микроконтроллера, а второй относится к программе на персональном компьютере, используемой для перевода операторов языка ассемблера на язык нулей и единиц.
    • Программисты на языке ассемблера PIC должны знать, где программы размещены в ПЗУ и сколько памяти доступно. Программа на языке ассемблера состоит из серии операторов, которые являются либо инструкциями, либо псевдо-инструкциями, также называемыми директивами.Инструкции переводятся ассемблером в машинный код.
    • Банк 1 используется для управления фактической работой PIC, например, чтобы сообщить PIC, какие биты порта A являются входными, а какие — выходными. Банк 0 используется для манипулирования данными. Пример выглядит следующим образом: Допустим, мы хотим сделать один бит на порту А высоким. Сначала нам нужно перейти к банку 1, чтобы установить конкретный бит или вывод порта A в качестве выхода.
    • «Ассемблер» и «ассемблер» — это два разных понятия. Первый представляет собой набор правил, используемых при написании программы для микроконтроллера, а другой — это программа на персональном компьютере, которая переводит язык ассемблера на язык нулей и единиц.

    Программисты на языке ассемблера PIC должны знать, где программы размещены в ПЗУ и сколько памяти доступно. Программа на языке ассемблера состоит из серии операторов, которые являются либо инструкциями, либо псевдо-инструкциями, также называемыми директивами. Команды переводятся ассемблером в машинный код. Банк 1 используется для управления фактической работой PIC, например, чтобы сообщить PIC, какие биты порта A являются входными, а какие — выходными. Банк 0 используется для манипулирования данными. Пример выглядит следующим образом: Допустим, мы хотим сделать один бит на порту А высоким. Сначала нам нужно перейти к банку 1, чтобы установить конкретный бит или вывод на порту A в качестве вывода. «Язык ассемблера» и «ассемблер» — это два разных понятия. Первый представляет собой набор правил, используемых при написании программы для микроконтроллера, а другой — это программа на персональном компьютере, которая переводит язык ассемблера на язык нулей и единиц.

    Урок 1 — Введение — Microbyte

    Примечание. Ассемблер — это язык низкого уровня, и если вы новичок в программирования, вы, вероятно, не захотите с него начинать.

    Хорошо, я предполагаю, что вы используете MPLAB и имеете базовые знание того, как работают микроконтроллеры, но для освежения памяти:

    Микроконтроллеры PIC

    состоят из файловых регистров. Некоторые из эти файловые регистры предназначены для настроек микросхемы, таких как синхронизация, управление Ввод / вывод и т. Д., А некоторые из них известны как регистры общего назначения. (Георадар). Здесь вы храните переменные, которые понадобятся вам во время программы. Рабочий регистр в PIC перемещает значения из одного регистра в другой.Например, вы можете получить ввод с пина на микроконтроллер, который будет использоваться позже в программе, тогда вы также хотите сохранить значение другого пина, которое будет использоваться позже в программе. Вы должны получить значение с одного пина, скопируйте его в рабочий регистр, затем скопируйте рабочий зарегистрируйтесь в другом GPR для каждого контакта. У вас может быть только одно значение в рабочем зарегистрируйтесь одновременно. Разные микросхемы PIC имеют разные регистры для разные настройки, а некоторые отличаются количеством рабочих регистров.

    Тем не менее, я буду использовать PIC16F54 в качестве примера того, как реестры установлены.

    Регистрам присваиваются разные номера (кроме рабочий регистр), вот набор для PIC16F54:

    РЕГИСТР (шестнадцатеричное значение)

    Имя

    00

    INDF

    01

    TMR0

    02

    PCL

    03

    СТАТУС

    04

    FSR

    05

    ПОРТ A

    06

    ПОРТ B

    07 по 1 этаж

    GPR

    Примечание. Регистр INDF не является физическим регистр.Обращение

    INDF фактически обращается к регистру, чей адрес

    содержится в регистре FSR (FSR — указатель). Это косвенный адресация.

    ПОРТ A и ПОРТ B каждый содержат биты, содержащие значение, которое исходят от каждого из I / Opin. В PIC165F4 порт A содержит 4 бита, порт B содержит 8 бит. PIC16F54, будучи 8-битным процессором, по-прежнему принимает 8-битные для ПОРТА A, но 4 старших бита (msb) будут проигнорированы.

    На PIC16F54 порт A содержит значения для выводов 17,18,1 и 2. (RA0-3), где бит 0 соответствует RA0, бит 1 — RA1 и т. Д. (Посмотрите на изображение выше, чтобы увидеть, какой вывод соответствует какому биту). Как известно, каждый бит может содержать значение 1 или 0. Таким образом, если контакт 1 (RA2) подключен к светодиоду, тогда, если установлен бит 2 ПОРТА А (установка означает изменение значения на 1), тогда будет течь ток и загорится светодиод. Если вы очистите бит 2 (измените его на 0), тогда светодиод погаснет, так как ток перестанет течь.Оно работает то же самое и для ввода. Например, если у вас есть кнопка на бите 2, тогда если вы читаете PORT A bit 2 и он установлен, ток течет, поэтому кнопка толкнул. Если 0, значит, кнопка не нажата.

    Самая основная инструкция — установка битов и очистка биты:

    BSF регистр файла, бит устанавливает бит в регистр файла (делает его 1)

    BCF регистр файла, бит очищает бит в регистре файла (делает его 0)

    EG:

    BSF 05,0; Это устанавливает бит 0 в регистре 05, который является портом a (если посмотреть на таблицу выше)

    После каждой инструкции там всегда должен быть «;», чтобы показать конец инструкции.Вы можете только добавить комментарии после точки с запятой в той же строке. Чтобы упростить задачу, вы можете также добавьте метку в начале инструкции для первой инструкции подпрограмма. Вот так:

    SetIt BSF 05,0;

    Это означает ввод:

    GOTO SetIt

    Будет перейдите к SetIt BSF 05,0. Подробнее о подпрограммах позже.

    Также может быть проще объявить каждый регистр файла с name, чтобы их было легче запомнить и понять ваш код.Например, вместо того, чтобы вводить 05, вы можете просто ввести portA и сделать свой код более значимый. Для этого используйте equ:

    имя equ файл регистр ;

    EG:

    порт A EQU 05;

    Это означает, что вместо ввода 05, вы можете обратиться к этому регистру, набрав portA. Так например:

    BCF 05,0; станет:

    BSF порт A, 0;

    Везде в программе что вы бы использовали это.Это значительно упрощает понимание.

    Очевидно, вы должны разделить свои объявления, подпрограммы и ваш основной код. Вот шаблон, который вы можете использовать:

    ; ————————

    ; название файла:

    ; автор;

    ; дата:

    ; ПИК:

    ; ————————

    список P = [ВСТАВЬТЕ НОМЕР ФОТО]

    включает «c: \ Program» файлы \ microchip \ MPASM Suite \ p [НОМЕР ФОТО]. inc »

    ; ————————

    portA equ 05;

    portB equ 06;

    статус экв 03;

    org 1FFh;

    goto Start;

    org 0;

    ; ————————-

    ; SUBS

    Init clrf portA; Чисто что раньше было в реестре

    clrf portB;

    movlw b’1111 ’;

    tris portA; набор каждый вывод порта а на вход

    movlw b’11110000 ’;

    tris portB; Набор бит 0-3 как выход, 4-7 как вход.бит 0 всегда является самой правой цифрой.

    retlw 0; возвращаться с саба поставив 0 в рабочий рег

    ; ————————

    Start call Init;

    Main [Напишите остальная часть программы здесь]

    Вверху программы нужно сказать ассемблеру для какой PIC вы пишете программу, используя строку:

    список P = [INSERT PIC НОМЕР]

    EG: список P = 16F54

    Вам также необходимо определить файл поиска для ассемблера, чтобы преобразовать конкретные инструкции в двоичные для разных процессоров. Для этого используйте , включая :

    включает « c: \ Program файлы \ microchip \ MPASM Suite \ p [ВСТАВЬТЕ НОМЕР ФОТО] .inc

    EG: включить «c: \ Program» файлы \ microchip \ MPASM Suite \ p16F54.inc ”

    При ссылке на имена, которые вы указали для регистров, регистр не учитывается. То есть PoRtA — это то же самое, что и porta.

    Каждой выполненной инструкции присвоен номер. В PIC 16F54 начинается с инструкции номер 1FFh (или 0x1FF, чтобы сказать это другое способ), затем переходит к инструкции номер 0, затем 1, затем 2 и т. д. org номер следующей инструкции поэтому это изменит порядок выполнения. В шаблоне выше организация изменила «goto start », чтобы инструкция была выполнена первой (инструкция equ не выполняется микроконтроллером, поскольку компилятор выполняет поиск по программа и измените каждое определенное имя обратно на номер регистра, когда компиляция). « org 0;» впоследствии сделать команду «clrf portA» номер 0.

    org [номер];

    EG: org 12Fh

    Разница между звонком и goto заключается в том, что вызов выполняет sub, который всегда возвращается с retlw [номер] назад к месту, где он был вызван, тогда как goto просто продолжается с места указан, не возвращаясь туда, где он был вызван. retlw [число] возвращает число в рабочий регистр и возвращается к номеру инструкции в на вершине стека (т. е. из того места, откуда он был вызван. На стеках будет больше позже).

    retlw [номер];

    EG: retlw 5;

    Перенести число в рабочий регистр без возврата с сабвуфера используйте:

    movlw [НОМЕР]

    EG: movlw FFh;

    Вы должны указать, является ли число в двоичной или шестнадцатеричной форме.К покажите это в двоичном формате, запишите это так:

    b’11000101 ’

    EG: movlw b’11110010 ’;

    Есть два способа показать, что число является шестнадцатеричным. Вы можете либо поставьте «h» в конце (как я использовал раньше в FFh, номер — FF), либо поставьте 0x спереди. (т.е. 0xFF = FFh).

    EG: movlw 0xFF;

    movlw FFh;

    Чтобы микроконтроллер мог ожидать, какие контакты являются входными и которые выводятся, вам нужно будет определить его с помощью tris. Для этого нужно создать двоичное число (или шестнадцатеричный, если вы знаете, как его преобразовать) для каждой цифры, соответствующей одному pin и tris прочитают это число из рабочего регистра и установят его в указанный порт. Например, если у вас в рабочем регистре 1110, а вы используете tris porta, то соответствующий вывод в бит 0 в порту a (RA0) будет выводиться, в то время как остальные контакты в порту a будет введен. Число на правом конце всегда является первым битом, а номер в левом конце всегда последний.

    tris [РЕЕСТР ПОРТА];

    EG: movlw b’10011110 ’

    tris портб;

    Это означает, что контакты соответствуют биты 0, 5 и 6 порта b выводятся, а остальные вводятся.

    Итак, вступление конец!

    Глава № 3 — ПРОГРАММИРОВАНИЕ И АРХИТЕКТУРА ЯЗЫКА PIC ASSEMBLY

    По завершении этой главы вы сможете:

    • Проверить регистр файла RAM данных микроконтроллера PIC
    • Управляйте данными с помощью инструкций WREG и MOV
    • Выполнять простые операции, такие как DD и MOVE, используя регистр файлов и банк доступа в микроконтроллере PIC
    • Объясните назначение регистра состояния
    • Обсудить распределение памяти RAM данных в микроконтроллере PIC
    • Список регистров специальных функций микроконтроллера PIC
    • Код простые инструкции языка ассемблера PIC
    • Описание типов данных PIC и директив
    • Собрать и запустить программу PIC, используя MPLAB
    • Опишите последовательность событий, которые происходят при включении питания PIC
    • Изучите программы в PIC ROM с кодом
    • Объясните карту памяти PIC ROM
    • Подробное описание выполнения инструкции языка ассемблера PIC
    • Понимание RISC и гарвардской архитектуры микроконтроллера PIC
    • Проверьте регистры PIC и ОЗУ данных с помощью симулятора MPLAB

    РАЗДЕЛ I — WREG, MOVLW, ДОБАВЛЕНИЕ В PIC

    • РАЗДЕЛ I-1 : Регистр WREG в микроконтроллере PIC
    • РАЗДЕЛ I-2 : Инструкция MOVLW в микроконтроллере PIC
    • РАЗДЕЛ I-3 : Инструкция ADDLW в микроконтроллере PIC

    РАЗДЕЛ II — РЕГИСТР ФАЙЛОВ В МИКРОКОНТРОЛЛЕРЕ PIC

    • РАЗДЕЛ II-1 : Файловый регистр (ОЗУ данных) Распределение пространства в микроконтроллере PIC
    • РАЗДЕЛ II-2 : Регистры специальных функций SFR в микроконтроллере PIC
    • РАЗДЕЛ II-3 : Регистры общего назначения или ОЗУ в микроконтроллере PIC
    • РАЗДЕЛ II-4 : Регистры общего назначения RAM против EEPROM в микроконтроллере PIC
    • РАЗДЕЛ II-5 : Регистр файлов и банк доступа в PIC18

    РАЗДЕЛ III : ИНСТРУКЦИЯ С БАНКОМ ДОСТУПА ПО УМОЛЧАНИЮ

    • РАЗДЕЛ III-1 : MOVWF Инструкция в микроконтроллере PIC
    • РАЗДЕЛ III-2 : Инструкции, связанные с WREG и банком доступа
    • РАЗДЕЛ III-3 : Инструкции ALU с использованием как WREG, так и FileReg
    • РАЗДЕЛ III-4 : Инструкции по регистрации файлов с использованием FileReg или WREG и места назначения
    • РАЗДЕЛ III-5 : Инструкция COMF в микроконтроллере PIC
    • РАЗДЕЛ III-6 : Инструкция DECF в микроконтроллере PIC
    • РАЗДЕЛ III-7 : Инструкция MOVF в микроконтроллере PIC
    • РАЗДЕЛ III-8 : Инструкция MOVFF в микроконтроллере PIC r

    РАЗДЕЛ IV : РЕГИСТР СОСТОЯНИЯ В МИКРОКОНТРОЛЛЕРЕ PIC

    • РАЗДЕЛ IV-1 : Биты регистра состояния PIC
    • РАЗДЕЛ IV-2 : Инструкция ADDLW и регистр состояния
    • РАЗДЕЛ IV-3 : Инструкции, влияющие на биты флага
    • РАЗДЕЛ IV-4 : Флаговые биты и принятие решений

    РАЗДЕЛ V : ФОРМАТ И ДИРЕКТИВЫ PIC ДАННЫХ

    • РАЗДЕЛ V-1 : Шестнадцатеричные числа представления формата данных
    • РАЗДЕЛ V-2 : Формат данных Представление двоичных чисел
    • РАЗДЕЛ V-3 : Десятичные числа для представления формата данных
    • РАЗДЕЛ V-4 : Представление формата данных в формате ASCII
    • РАЗДЕЛ V-5 : Директивы ассемблера EQU — Equate, SET
    • РАЗДЕЛ V-6 : Использование EQU для фиксированного назначения данных
    • РАЗДЕЛ V-7 : Использование EQU для присвоения адреса SFR
    • РАЗДЕЛ V-8 : Использование EQU для присвоения адреса RAM
    • РАЗДЕЛ V-9 : ORG — Origin, END, LIST, #include, _config, radix Directives
    • РАЗДЕЛ V-10 : Правила для этикеток на языке ассемблера

    РАЗДЕЛ V I: ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ СБОРКИ PIC

    • РАЗДЕЛ VI-1 : Введение в программирование сборки PIC
    • РАЗДЕЛ VI-2 : Структура языка ассемблера
    • РАЗДЕЛ VI-3 : Сборка и связывание программы PIC
    • РАЗДЕЛ VI-4 : asm, err и объектные файлы в PIC
    • РАЗДЕЛ VI-5 : Файлы «lst» и «map» в PIC
    • РАЗДЕЛ VI-6 : Счетчик программ и пространство ПЗУ программы в PIC
    • РАЗДЕЛ VI-7 : Карта памяти ROM в семействе PIC18
    • РАЗДЕЛ VI-8 : Когда PIC просыпается при включении питания
    • РАЗДЕЛ VI-9 : Размещение кода в ПЗУ программы
    • РАЗДЕЛ VI-10 : Выполнение программы байт за байтом
    • РАЗДЕЛ VI-11 : Ширина ПЗУ в PIC18
    • РАЗДЕЛ VI-12 : Гарвардская архитектура в PIC
    • РАЗДЕЛ VI-13 : Размер инструкции для формирования инструкции PIC18 MOVLW
    • РАЗДЕЛ VI-14 : Размер инструкции для формирования инструкции PIC18 ADDLW
    • РАЗДЕЛ VI-15 : Размер инструкции для формирования инструкции PIC18 MOVWF
    • РАЗДЕЛ VI-16 : Размер инструкции для формирования инструкции PIC18 MOVFF
    • РАЗДЕЛ VI-17 : Размер инструкции для формирования инструкции PIC18 GOTO
    • РАЗДЕЛ VI-18 : Переход от других микропроцессоров к PIC18
    • РАЗДЕЛ VI-19 : Архитектура RISC в PIC
    • РАЗДЕЛ VI-20 : Особенности архитектуры RISC в PIC
    • РАЗДЕЛ VI-21 : Просмотр регистра и памяти с помощью MPLAB Simulator

    Введение в главу № 3

    Эта глава начнется с изучения основных регистров PIC, включая WREG, SFR, ОЗУ данных общего назначения и счетчик программ. Использование этих регистров будет продемонстрировано в контексте примеров программирования. Процесс создания программы на языке ассемблера будет описан от записи исходных файлов до ее сборки, компоновки и выполнения программы. Регистр программного счетчика всегда указывает на следующую команду, которую нужно выполнить. Будет исследовано, как PIC использует пространство ПЗУ программы. Программисты на языке ассемблера PIC должны знать, где программы размещаются в ПЗУ и сколько памяти доступно.

    Программа на ассемблере состоит из серии операторов, которые являются инструкциями или псевдо-инструкциями, также называемыми директивами. Инструкции переводятся ассемблером в машинный код. Псевдоинструкции не переводятся в машинный код. Они указывают ассемблеру, как переводить инструкции в машинный код. Некоторые псевдо-инструкции, называемые директивами данных, используются для определения данных. Данные распределяются с шагом в байтах. Данные могут быть в двоичном, шестнадцатеричном, десятичном или ASCII формате.

    Флаги полезны для программистов, поскольку они указывают на определенные условия, такие как перенос или ноль, которые возникают в результате выполнения инструкций. Также были изучены концепции RISC и гарвардской архитектуры.

    Архитектура RISC позволяет разрабатывать гораздо более мощные микроконтроллеры. Он имеет простой набор инструкций и использует большое количество регистров. Гарвардская архитектура позволяет нам быстрее передавать больше кода и данных в ЦП. Использование более широких данных в PIC18 позволяет нам извлекать инструкцию каждый цикл, потому что инструкции PIC обычно составляют 2 байта.

    Введение в архитектуру PIC и MPLABX

    В 1980 году Intel разработала первый микроконтроллер (8051) с гарвардской архитектурой 8051, и с тех пор микроконтроллеры совершили революцию в индустрии электроники и встраиваемых систем. А с развитием технологий со временем у нас появилось гораздо больше эффективных микроконтроллеров с низким энергопотреблением, таких как AVR, PIC , ARM. Эти микроконтроллеры более функциональны и просты в использовании, они имеют новейшие протоколы связи, такие как USB, I2C, SPI, CAN и т. Д.Даже Arduino и Raspberry Pi полностью изменили взгляд на микроконтроллеры, а Raspberry Pi — это не просто микроконтроллер, а весь компьютер внутри.

    Это будет первая часть серии учебных пособий, которые еще не вышли, которые помогут вам в изучении микроконтроллеров PIC . Если вы из электроники и всегда хотели начать с изучения некоторых микроконтроллеров и окунуться в мир кодирования и создания вещей, то эта серия руководств станет вашим первым шагом.

    Микроконтроллер

    PIC — очень удобный выбор для начала работы с проектами микроконтроллеров, потому что он имеет отличные форумы поддержки и будет служить прочной базой для построения всех ваших продвинутых микроконтроллеров, которые вам еще предстоит изучить.

    Эти учебные пособия предназначены для учащихся с абсолютным или средним уровнем знаний ; мы планировали начать с самых простых проектов до самых продвинутых. Мы ожидаем от учащихся без предварительных требований , так как мы здесь, чтобы помочь вам на любом уровне.В каждом учебнике будет теоретическое объяснение и моделирование, за которым следует практическое руководство. В этих руководствах не будут использоваться какие-либо платы для разработки, мы создадим собственные схемы с использованием перфорированной платы. Так что готовьтесь и каждую неделю уделяйте время совершенствованию себя с помощью микроконтроллеров.

    Теперь давайте начнем с простого введения в микроконтроллеры PIC и некоторых настроек программного обеспечения, которые помогут нам приступить к следующему руководству. Проверьте видео в конце для установки и настройки MPLABX, XC8, Proteus и быстрой распаковки программатора PICkit 3.

    Архитектура микроконтроллера PIC и приложения:

    Микроконтроллер PIC был представлен компанией Microchip Technologies в 1993 году. Первоначально эти PIC были разработаны как часть PDP (Программируемый процессор данных) компьютеров , и все периферийные устройства компьютера были связаны с помощью этого микроконтроллера PIC. Отсюда PIC получил свое название как контроллер периферийного интерфейса . Позднее Microchip разработала множество микросхем серии PIC, которые можно использовать для любого небольшого приложения, например, для освещения, до более продвинутого.

    Каждый микроконтроллер должен быть построен на основе некоторой архитектуры, наиболее известным типом архитектуры является архитектура Гарварда, наша PIC основана на этой архитектуре, поскольку она принадлежит к классическому семейству 8051. Давайте перейдем к небольшому вступлению об архитектуре Harvard PIC .

    Микроконтроллер PIC16F877A состоит из встроенного ЦП, портов ввода-вывода, организации памяти, аналого-цифрового преобразователя, таймеров / счетчиков, прерываний, последовательной связи, генератора и модуля CCP, который в совокупности делает IC мощным микроконтроллером для начинающих. начнем с.Общая блок-схема архитектуры PIC показана ниже

    .

    ЦП (центральный процессор):

    Микроконтроллер имеет центральный процессор для выполнения арифметических операций, логических решений и операций, связанных с памятью. ЦП должен координировать работу ОЗУ и других периферийных устройств микроконтроллера.

    Он состоит из ALU (Арифметический логический блок), с помощью которого он выполняет арифметические операции и логические решения. MU (блок памяти) также присутствует для хранения инструкций после их выполнения. Этот MU определяет размер программы нашего MC. Он также состоит из CU (блок управления), который действует как коммуникационная шина между ЦП и другими периферийными устройствами микроконтроллера. Это помогает получить данные после их обработки в указанных регистрах.

    Оперативная память (RAM):

    Оперативная память — это та память, которая определяет скорость нашего микроконтроллера.ОЗУ состоит из банков регистров, каждый из которых выполняет определенную задачу. В целом их можно разделить на два типа:

    • Регистр общего назначения (GPR)
    • Регистр специальных функций (SFR)

    Как следует из названия, GPR используется для общих функций регистра , таких как сложение, вычитание и т. Д. Эти операции ограничены 8-битными. Все регистры GPR доступны для записи и чтения пользователем. У них нет никаких функций, если это не указано в программном обеспечении.

    В то время как SFR используется для выполнения сложных специальных функций , которые также включают некоторую 16-битную обработку, их регистры могут быть только прочитаны (R), и мы не можем ничего записать (W) в них. Таким образом, у этих регистров есть предопределенные функции для выполнения, которые устанавливаются во время производства, и они просто отображают нам результат, с помощью которого мы можем выполнять некоторые связанные операции.

    Постоянная память (ПЗУ):

    Постоянная память для чтения — это место, где хранится наша программа.Это определяет максимальный размер нашей программы; следовательно, она также называется памятью программ . Когда MCU находится в работе, программа, хранящаяся в ПЗУ, выполняется в соответствии с каждым командным циклом. Этот блок памяти можно использовать только при программировании PIC, во время выполнения он становится постоянным запоминающим устройством.

    электрически стираемая программируемая постоянная память (EEPROM):

    EEPROM — это еще один тип модуля памяти. В этом блоке памяти могут храниться значения во время выполнения программы.Здесь хранятся только значения , электрически стираемые , то есть эти значения будут сохраняться в PIC, даже когда IC выключена. Их можно использовать как небольшой объем памяти для хранения выполненных значений; однако объем памяти будет меньше, чем килобайт.

    Флэш-память :

    Флэш-память

    — это также программируемая постоянная память для чтения (PROM), в которой мы можем читать, писать и стирать программу тысячи раз.Обычно микроконтроллер PIC использует этот тип ПЗУ.

    Порты ввода / вывода

    • Наш PIC16F877A состоит из пяти портов: порта A, порта B, порта C, порта D и порта E.
    • Из всех пяти ПОРТОВ только порт A 16-битный, а ПОРТ E 3-битный. Остальные ПОРТЫ 8-битные.
    • Контакты этих ПОРТОВ могут использоваться как вход или выход, в зависимости от конфигурации регистра TRIS.
    • Помимо выполнения операций ввода-вывода, выводы также могут использоваться для специальных функций, таких как SPI, прерывание, ШИМ и т. Д.

    Автобус:

    Термин «шина» — это просто набор проводов, соединяющих устройство ввода или вывода с ЦП и ОЗУ.

    Шина данных используется для передачи или приема данных.

    Адресная шина используется для передачи адреса памяти от периферийных устройств к ЦП. Контакты ввода / вывода используются для подключения внешних периферийных устройств; UART и USART оба протокола последовательной связи используются для взаимодействия последовательных устройств, таких как GSM, GPS, Bluetooth, IR и т. Д.

    Выбор микроконтроллера PIC для наших руководств:

    Микроконтроллеры

    PIC компании Microchip делятся на 4 больших семейства. В каждом семействе есть множество компонентов, обеспечивающих встроенные специальные функции:

    1. Первое семейство PIC10 (10FXXX) называется Low End.
    2. Второе семейство, PIC12 (PIC12FXXX) — называется Mid-Range.
    3. Третье семейство — PIC16 (16FXXX).
    4. Четвертое семейство — PIC 17/18 (18FXXX)

    Поскольку мы начинаем изучать PIC, давайте выберем IC, которая используется и доступна повсеместно.Эта микросхема принадлежит к семейству 16F, номер детали — PIC16F877A. С первого урока до конца мы будем использовать ту же микросхему, что и , эта микросхема оснащена всеми расширенными функциями, такими как SPI, I2C и UART и т. Д. Но если вы не получите ничего из этого сейчас, все в порядке. , мы будем продвигаться по каждому руководству и, наконец, будем использовать все вышеупомянутые функции.

    После того, как ИС выбрана, очень важно прочитать техническое описание ИС.Это должно быть первым шагом в любой концепции, которую мы собираемся опробовать. Теперь, когда мы выбрали PIC16F877A, давайте прочитаем спецификацию этой IC в таблице данных.

    Peripheral Feature, упоминает, что он имеет 3 таймера , два из которых 8-битные, а один 16-битный предварительный делитель. Эти таймеры используются для создания временных функций в нашей программе. Их также можно использовать как счетчики. Он также показывает, что у него есть опции CCP (сравнение захвата и ШИМ) , которые помогают нам генерировать сигналы ШИМ и считывать входящие частотные сигналы.Для связи с внешним устройством он имеет SPI, I2C, PSP и USART . В целях безопасности он оснащен с функцией сброса напряжения (BOR), , которая помогает в сбросе программы while.

    Аналоговые функции, Указывает, что ИС имеет 10-битный 8-канальный АЦП . Это означает, что наша ИС может преобразовывать аналоговые значения в цифровые с разрешением 10 бит и имеет 8 аналоговых контактов для их чтения. У нас также есть два внутренних компаратора, которые можно использовать для сравнения входящего напряжения напрямую, без фактического считывания их через программное обеспечение.

    Специальные возможности микроконтроллера, означает, что он имеет 100 000 циклов стирания / записи, означает, что вы можете программировать его примерно 100 000 раз. In-Circuit Serial Programming ™ (ICSP ™), помогает нам программировать IC напрямую, используя PICKIT3. Отладка может быть выполнена с помощью внутрисхемной отладки (ICD ). Еще одна функция безопасности — сторожевой таймер (WDT), , который представляет собой самонадежный таймер, который при необходимости сбрасывает всю программу.

    На изображении ниже представлены распиновки нашей микросхемы PIC16F877A . Это изображение представляет каждую булавку на фоне ее имени и других характеристик. Это также можно найти в таблице данных. Держите это изображение под рукой, потому что оно поможет нам при работе с оборудованием.

    Выбор программного обеспечения для наших руководств:

    Микроконтроллер

    PIC может быть запрограммирован с помощью различного программного обеспечения, доступного на рынке. Есть люди, которые до сих пор используют язык ассемблера для программирования микроконтроллеров PIC.Для наших руководств мы выбрали самое современное программное обеспечение и компилятор, которые были разработаны самой Microchip.

    Для программирования микроконтроллера PIC нам понадобится IDE (интегрированная среда разработки) , в которой происходит программирование. Компилятор , , в котором наша программа преобразуется в читаемую MCU форму, называемую HEX-файлами. IPE (интегрированная среда программирования) , которая используется для сброса нашего шестнадцатеричного файла в наши микроконтроллеры PIC.

    IDE: MPLABX v3. 35

    IPE: MPLAB IPE v3.35

    Компилятор: XC8

    Компания

    Microchip предоставила все эти три программы бесплатно. Их можно скачать прямо с их официальной страницы. Я также предоставил ссылку для вашего удобства. После загрузки установите их на свой компьютер. Если у вас есть какие-либо проблемы, вы можете просмотреть видео , приведенное в конце.

    Для моделирования мы использовали программное обеспечение под названием PROTEUS 8 , предоставленное Labcenter.Это программное обеспечение можно использовать для моделирования нашего кода, созданного с помощью MPLABX. Существует бесплатное демонстрационное программное обеспечение, которое можно скачать с их официальной страницы по ссылке.

    Подготовка оборудования:

    Все наши обучающие программы заканчиваются аппаратным обеспечением. Чтобы изучить PIC наилучшим образом, всегда рекомендуется тестировать наши коды и схемы на оборудовании, потому что надежность моделирования очень низкая. Коды, которые работают в программном обеспечении для моделирования, могут работать не так, как вы ожидали, на вашем оборудовании.Следовательно, мы будем строить собственные схемы на платах Perf, чтобы сбрасывать наши коды.

    Для создания дампа или загрузки нашего кода в PIC нам понадобится PICkit 3. Программатор / отладчик PICkit 3 — это простой и недорогой внутрисхемный отладчик, который управляется ПК, на котором запущена MPLAB IDE (v8.20). или выше) на платформе Windows. Программатор / отладчик PICkit 3 является неотъемлемой частью набора инструментов разработчика. В дополнение к этому нам также понадобится другое оборудование, такое как плата Perf, паяльная станция, микросхемы PIC, кварцевые генераторы, конденсаторы и т. Д.Но мы будем добавлять их в наш список по мере прохождения наших руководств.

    Я принес свой PICkit 3 от Amazon, видео распаковки можно найти в видео ниже. Также предоставляется ссылка на PICKIT3; цена может быть немного высока, но поверьте мне, это стоит того.