- •И.А. Дубров
- •Содержание
- •Введение
- •Лабораторная работа 1 Изучение интегрированной среды разработки mplab
- •Методика выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 2 Изучение запоминающих устройств микроконтроллеровPic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 3 Изучение работы параллельных портов микроконтроллеровPic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 4 Изучение работы последовательных портов микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 5 Изучение работы таймеров микроконтроллеров pic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 6 Изучение работы аналого-цифрового преобразователя микроконтроллеровPic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа 7 Изучение работы модуля захвата/сравнения/шим микроконтроллеровPic-micro
- •Порядок выполнения работы
- •Содержание отчета
- •Библиографический список
- •Приложение 1. Схема лабораторного макета
- •Bтfss— Условный переход при единичном битеbрегистраf
- •Call— Вызов подпрограммы
- •Goto— Переход по адресу
- •Incf— Декремент регистраf
- •Incfsz— Декремент регистраfи пропуск в случае нулевого результата
- •Iorlw— Побитное «или»Wи константыk
- •Retlw— Выход из подпрограммы с загрузкой в регистрWконстантыk
- •Return— Выход из подпрограммы
- •Rlf— Циклический сдвиг регистраfвлево через флаг переносаС
- •Rrf— Циклический сдвиг регистраfвправо через флаг переносаС
- •Sleep— Перейти в спящий режим
- •Основы микропроцессорной техники
- •620034, Екатеринбург, ул. Колмогорова 66.
Bтfss— Условный переход при единичном битеbрегистраf
Синтаксис |
BTFSS f,b |
Операнды | |
Операция | |
Измен. флаги |
|
Описание |
Если бит b регистра f устанавлен в 1, инкрементируется счетчик команд PC (тем самым, пропускается следующая команда), в противном случае ничего не выпоняется. В случае инкремента счетчика команда выполняется за 2 машинных цикла, иначе — за 1. |
Пример |
; f(7) = 6 = 0b110, w = 1 btfss 7,1 addlw 4 btfss 7,0 addlw 9 ; w = 5 |
Call— Вызов подпрограммы
Синтаксис |
CALL k |
Операнды | |
Операция | |
Измен. флаги |
|
Описание |
Адрес следующей инструкции сохраняется в стеке. В 11 младших бит счетчика программы PC загружается константа k. Два старших бита загружаются в счетчик команд из регистраPCLATH. Выполнение команды занимает 2 машинных цикла. |
Пример |
; w = 0 call subprogram addlw 5 ; w = 15 ... subprogram: addlw 10 return |
CLRF— Обнуление регистраf
Синтаксис |
CLRF f |
Операнды | |
Операция | |
Измен. флаги |
Z |
Описание |
Обнуляются все биты регистра f |
Пример |
; f(6) = 27 clrf 6 ; f(6) = 0 |
CLRW— Обнуление рабочегорегистраW
Синтаксис |
CLRW |
Операнды |
|
Операция | |
Измен. флаги |
Z |
Описание |
Обнуляются все биты регистра W |
Пример |
; w = 27 clrw ; w = 0 |
CLRWDT— Сброс сторожевого таймера
Синтаксис |
CLRWDT |
Операнды |
|
Операция | |
Измен. флаги | |
Описание |
Сбрасывается регистр-счетчик сторожевого таймера WDT, а также его предделитель, если он подключен. При выполнении команды устанавливаются флаги таймаута и режима SLEEP |
Пример |
; w = 27 clrw ; w = 0 |
COMF— Инверсия регистраf
Синтаксис |
COMF f,d |
Операнды | |
Операция | |
Измен. флаги |
Z |
Описание |
Инвертируются все биты регистра f |
Пример |
; f(6) = 7 = 0b00000111 comf 6,1 ; f(6) = 248 = 0b11111000 |
DECF— Декремент регистраf
Синтаксис |
DECF f,d |
Операнды | |
Операция | |
Измен. флаги |
C, DC, Z |
Описание |
Инвертируются все биты регистра f |
Пример |
; f(4) = 7, w = 1 decf 4,0 ; f(4) = 7, w = 6 |
DECFSZ— Декремент регистраfи пропуск в случае нулевого результата
Синтаксис |
DECFSZ f,d |
Операнды | |
Операция | |
Измен. флаги |
|
Описание |
Первым шагом происходит декремент регистра f и запись полученного результата в f или W в зависимости от операнда d. На втором шаге, если результат первого шага оказался нулевым, происходит инкремент регистра-счетчика команд PC, тем самым вызывая пропуск следующей команды. |
Пример |
; f(7) = 6, w = 0 loop: addlw 3 decfsz 7,1 goto exit_loop goto loop exit_loop: ; f(7) = 0, w = 18 |