Команды управления и работы с константами



Команды работы с константами используют при выполнении опера­ции явно заданные операнды, которые являются частью команды.

Команда МОVLW k используется для записи константы k в рабочий регистр w. Содержимое регистра SТАTUS при этом не изменяется.

Команда АDDLW k прибавляет непосредственно заданную величину к содержимому регистра w.

  Команда SUBLW k вычитает содержимое регистра w из заданного зна­чения константы к.  С помощью этой команды удобно изменять знак содержимого регис­тра w, используя ее следующим образом: SUBLW 0.

Команды логических операций ANDLW k, IORLW k, XORLW k вы­полняют побитно соответствующие операции над содержимым регистра w и непосредственно заданной константой к. Полученный результат сохраняется в регистре w.

С помощью команды IORLW 0 удобно определять равенство нулю со­держимого регистра w. В зависимости от результата этой операции бит нуля будет установлен в 1 или сброшен в 0.

Команда RETLW k используется для возврата из подпрограммы с уста­новкой начальных условий в регистр w, а также для реализации табличных преобразований. Перед возвращением из под­программы эта команда осуществляет загрузку непосредственно заданной величины в рабочий регистр w.

Команды GОТО к, САLL к, RETURN и RETFIE используются для уп­равления программой.

Команды GОТО k и САLL k могут явно задавать адрес перехода в пре­делах определенной страницы, размер которой зависит от типа МК. Если ад­рес перехода выходит за пределы страницы, то регистр РСLATH должен содержать правильную информацию о новой странице.

Команда САLL k выполняется практически так же, как и GОТО к, за исключением того, что указатель на следующую страницу сохраняется в стеке счетчика команд.

Cуществует три различных способа воз­врата из подпрограммы, определяемые командамиRETLW k, RETURN, RETFIE. При каждом из этих способов значение адреса извлекается из вершины стека и загружается в счетчик команд. Эти адреса используются для возврата из подпрограмм или прерываний.

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

Команда RETFIE используется для возврата из прерывания. Она реа­лизуется аналогично команде RETURN за исключением того, что при ее выполнении устанавливается в 1 бит GIЕ в регистре управления прерыва­ниями INTСОN. Это позволяет после выполнения данной команды немедленно перейти к обработке прерываний, ожидающих своей очереди.

Существует всего две команды, служащие для непосредственного уп­равления функционированием МК. Первая из них - CLRWDT - исполь­зуется для сброса сторожевого таймера. Вторая - SLЕЕР — обеспечивает сохранение текущего состояния МК в режиме ожидания, пока не произой­дет какое-либо внешнее событие, которое позволит РIС МК продолжить выполнение программы.

Команда CLRWDT сбрасывает в 0 содержимое сторожевого таймера WDТ и пределителя , запуская сначала отсчет времени сторожевого таймера. Целью введения команды CLRWDT является предотвращение перезапуска МК при нормальном выполнении программы.

Команда SLЕЕР служит для двух целей. Первой из них является от­ключение МК после того, как он закончит выполнение программы.

Второй целью использования команды SLЕЕР является реализация в МК режима ожидания какого-либо события. Существует три события, спо­собные вывести МК из режима ожидания.

 Первым из них является подача сигнала запуска на вход сброса МК, что приведет к перезапуску процес­сора и началу выполнения программы с нулевого адреса.

Второй способ -поступление сигнала «пробуждения» МК от сторожевого таймера.

Треть­им способом «пробуждения» является прерывание от какого-либо внеш­него источника. При любом способе «пробуждения» использование ко­манды SLЕЕР позволяет избежать необходимости организации циклов ожидания, а также снизить потребляемую системой мощность.


Дата добавления: 2022-01-22; просмотров: 16; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!