Остаток Примечание

GHub Platform · Гайд · 0 ответов · 15 просмотров

В семействе микроконтроллеров MCxxxx используется общая система программирования, позволяющая упростить проектирование системы и сократить время разработки новых продуктов. Программа, написанная для одного члена семейства MCxxxx, может быть повторно использована в любом другом микроконтроллере MCxxxx с небольшими изменениями или без них (см. примечание [1]). Программы для MCxxxx собираются из небольшого, но универсального набора операций. Каждая строка программы MCxxxx может содержать инструкцию, состоящую из имени инструкции, за которым следует ноль или более операндов инструкции. Подробные описания доступных инструкций и их использования приведены ниже. Микроконтроллеры MCxxxx предназначены для использования в средах и приложениях с ограниченным энергопотреблением, и система программирования MCxxxx разработана соответствующим образом. Пока микроконтроллер MCxxxx находится в состоянии сна, он не потребляет энергию. В противном случае энергопотребление пропорционально количеству выполненных инструкций. [1] Микроконтроллеры MCxxxx имеют различные функции, распиновку и ограничения по программному пространству, описанные в технических характеристиках конкретной модели. Для учета этих специфичных для модели различий может потребоваться некоторая адаптация. Каждая строка программы MCxxxx должна иметь следующую структуру: ЭТИКЕТКА УСЛОВИЕ ИНСТРУКЦИЯ КОММЕНТАРИЙ Все компоненты не являются обязательными, но при их наличии должны появляться в указанном порядке. Примеры синтаксически допустимых строк: # Эта строка является комментарием. цикл: # до тех пор, пока ACC не станет десятью teq acc 10 + jmp end mov 50 x2 добавить 1 jmp end цикла: mov 0 acc # сбросить счетчик Любой текст после символа «#» игнорируется до конца строки. Комментарии повышают производительность разработчиков, позволяя описывать поведение кода непосредственно в самой программе. Метки должны располагаться первыми в строке, после них должно стоять двоеточие («:»). Метки используются инструкцией jmp в качестве целей перехода. Метки должны начинаться с буквы и могут содержать буквы, цифры и символы подчеркивания. Все инструкции на языке программирования MCxxxx допускают условное выполнение. Добавление к инструкции символа «+» или «-» приведет к включению или отключению этой инструкции с помощью тестовых инструкций. Если инструкция отключена тестовой инструкцией, она будет пропущена и не будет потреблять энергию. Инструкции без префикса никогда не отключаются и всегда выполняются нормально. Все условные инструкции запускаются в отключенном состоянии. Чтобы активировать условные инструкции, должна быть выполнена тестовая инструкция. Регистры используются как источники и назначения для данных, которыми управляют инструкции MCxxxx. Набор регистров варьируется в зависимости от модели MCxxxx. Использование регистра в программе микроконтроллера является ошибкой, если этот регистр отсутствует в этом микроконтроллере. Acc — это основной регистр общего назначения, используемый для внутренних вычислений в микроконтроллерах семейства MCxxxx. Все арифметические операции неявно используют и изменяют значение acc. dat — это второй регистр, доступный некоторым членам семьи MCxxxx. Его можно использовать в большинстве контекстов, где разрешено использование Acc. Внутренние регистры микропроцессоров MCxxxx (acc и dat, если таковые имеются) инициализируются значением 0. Регистры выводов (p0, p1, x0, x1, x2, x3) используются при чтении или записи на выводы микроконтроллеров MCxxxx. Чтение и запись через контакты позволяет одному микроконтроллеру MCxxxx взаимодействовать и координировать свои действия с другими подключенными совместимыми устройствами. Каждый вывод микроконтроллера семейства MCxxxx функционирует как простой интерфейс ввода-вывода или интерфейс XBus. Подробную информацию о функциях контактов см. в соответствующем техническом описании. null — это псевдорегистр. Чтение из нулевого регистра дает значение 0. Запись в нулевой регистр не имеет никакого эффекта. Для каждого типа инструкций требуется фиксированное количество операндов. Если у инструкции есть какие-либо связанные операнды, они должны идти после имени инструкции, разделенные пробелами. В целях повышения производительности разработки система программирования MCxxxx не требует использования избыточных знаков препинания для разделения операндов команд. Операнды инструкций описываются следующими обозначениями: nop Эта инструкция не имеет никакого эффекта. mov R/I R Копирует значение первого операнда во второй операнд. jmp L Переход к инструкции, следующей за указанной меткой. slp R/I Спящий режим на количество единиц времени, указанное операндом. slx P Спящий режим до тех пор, пока данные не станут доступны для чтения на выводе XBus, указанном операндом. Регистры могут хранить целочисленные значения от -999 до 999 включительно. Если арифметическая операция приведет к получению результата за пределами этого диапазона, вместо этого сохраняется ближайшее разрешенное значение. Например, если акк содержит значение 800 и выполняется инструкция add 400, то в акк будет сохранено значение 999. add R/I Добавьте значение первого операнда к значению регистра Acc и сохраните результат в регистре Acc. sub R/I Вычитает значение первого операнда из значения акк-регистра и сохраняет результат в акк-регистре. mul R/I Умножьте значение первого операнда на значение регистра Acc и сохраните результат в регистре Acc. not Если значение в акк равно 0, сохраните в акк значение 100. В противном случае сохраните значение 0 в соотв. dgt R/I Изолировать указанную цифру значения в акк-регистре и сохранить результат в акк-регистре. dst R/I R/I Установить цифру счета, указанную первым операндом, в значение второго операнда. Примеры инструкций dgt и dst: --- Источник: https://steamcommunity.com/sharedfiles/filedetails/?id=2329771373

Источник

GHub Platform · автор12.08.2026, 07:00:37

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

Войдите, чтобы писать в группе