Программирование микропроцессоров


Рисунок 3.15 – Схема алгоритма инвертирования содержимого ячейки памяти

Таблица 3.4 – Программа инвертирования содержимого ЯП на языке Ассемблер

При использовании прямой адресации

Адрес Метка Команда Операнд Машинный код Комментарий
  LDA 0B00 h 3A 00 0B ; чтение числа из памяти
  CMA   2F ; инвертирование числа
  STA 0B01 h 32 01 0B ; запись числа в память
  HLT   ; останов

Таблица 3.5 – Программа инвертирования содержимого ЯП на языке Ассемблер

При использовании косвенной адресации

Адрес Метка Команда Операнд Машинный код Комментарий
  LXI H, 0B00 h 21 00 0B ; запись в пару регистров ; H-L адреса числа
  MOV A, M 7E ; чтение числа из памяти
  CMA   2F ; инвертирование числа
  INX H ; увеличение на 1 адреса ; числа
  MOV M, A ; запись числа в память
  HLT   ; останов

Рисунок 3.16 – Схема алгоритма циклической программы суммирования однобайтных чисел

Таблица 3.6 – Циклическая программа суммирования однобайтных чисел

На языке Ассемблер

Адрес Метка Команда Операнд Машинный код Комментарий
  LXI H, 0A00 h 21 00 0A ; адрес первого слагаемого
  MVI B, 05h 06 05 ; количество слагаемых
ADD B: XRA AC AF ; обнуление регистра AC
  MOV C, AC 4F ; обнуление регистра C
M1: ADD M ; суммирование
  JNC M2 D2 0C 08 ; условный переход на ; M2, если (TC) = 0
080B   INR C 0C ; увеличение содержимого ; регистра C на единицу
080C M2: INX H ; увеличение содержимого ; пары регистров H-L ; на единицу
080D   DCR B ; уменьшение на единицу ; содержимого счетчика ; циклов
080E   JNZ M1 C2 07 08 ; условный переход на M1, если (TZ) = 0
  HLT   ; останов

Таблица 3.7 – Программа суммирования массива однобайтных чисел на языке

Ассемблер, содержащая подпрограмму

Адрес Метка Команда Операнд Машинный код Комментарий
  LXI H, 0A00 h 21 00 0A ; адрес первого слагаемого
  MVI B, 05h 06 05 ; количество слагаемых
  CALL ADD B CD 09 08 ; вызов подпрограммы ; сложения
  HLT   ; останов
ADDB: XRA AC AF ; обнуление регистра AC
080A   MOV C, AC 4F ; обнуление регистра C
080B M1: ADD M ; суммирование
080C   JNC M2 D2 10 08 ; условный переход на ; M2, если (TC) = 0
080F   INR C 0C ; увеличение содержимого ; регистра C на единицу
M2: INX H ; увеличение содержимого ; пары регистров H-L на ; единицу
  DCR B ; уменьшение на единицу ; содержимого счетчика ; циклов
  JNZ M1 C2 0B 08 ; условный переход на M1, если (TZ) = 0
  RET   C9 ; возврат в основную ; программу


ПРИНЦИПЫ ОРГАНИЗАЦИИ ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ

программирование микропроцессоров - student2.ru

Рисунок 3.17 – Общая структурная схема ядра и периферийных модулей микроконтроллера семейства dsPIC33F

программирование микропроцессоров - student2.ru

Рисунок 3.18 – Структурная схема DSP-процессора

программирование микропроцессоров - student2.ru

Рисунок 3.19 – Программная модель микроконтроллера семейства dsPIC33F

Рисунок 3.20 – Карта памяти программ МК dsPIC33F

Рисунок 3.21 – Карта памяти данных МК dsPIC33

программирование микропроцессоров - student2.ru

Рисунок 3.22 – Структурная схема системы тактирования МК dsPIC33F

программирование микропроцессоров - student2.ru

Рисунок 3.23 – Структурная схема линии параллельного порта, объединенной с выводами периферийных функций

программирование микропроцессоров - student2.ru

Рисунок 3.24 – Структурная схема модуля Timer1

программирование микропроцессоров - student2.ru

Рисунок 3.25 – Структурная схема модуля захвата МК семейства dsPIC33F

программирование микропроцессоров - student2.ru

Рисунок 3.26 – Структурная схема модуля сравнения выхода

программирование микропроцессоров - student2.ru

Рисунок 3.27 – Структурная схема модуля аналого-цифрового преобразования МК dsPIC33fj32mc204

Таблица 3.8 – Символы используемые в системе команд микроконтроллеров dsPIC33F

Область Описание
#text Означает литерал определённый как «текст»
(text) Означает «содержимое текста»
[text] Означает «позицию адресованную текстом»
{ } Необязательное поле или операция
<n:m> Битовая область регистра
.b Выбор байтного режима
.d Выбор режима двойного слова
.S Выбор теневого регистра
.w Выбор словного режима (по умолчанию)
Acc Один из двух аккумуляторов {A, B}
AWB Аккумулятор обратной записи назначения адреса регистра ∈ {W13, [W13] + = 2}
bit4 4-разрядное поле выбора бита (используется в инструкциях адресации слова) ∈ {0...15}
C, DC, N, OV, Z Биты состояния MCU: (C) перенос, (DC) частичный перенос, (N) отрицательный результат, (OV) переполнение, (Z) нуль
Expr Абсолютный адрес, метка или выражение (решенный компоновщиком)
f Адрес файлового регистра ∈ {0x0000...0x1FFF}
lit1 1-битный беззнаковый литерал ∈ {0,1}
lit4 4- битный беззнаковый литерал ∈ {0...15}
lit5 5- битный беззнаковый литерал ∈ {0...31}
lit8 8- битный беззнаковый литерал ∈ {0...255}
lit10 10- битный беззнаковый литерал ∈ {0...255} для байтного режима, ∈ {0:1023} для словного режима
lit14 14- битный беззнаковый литерал ∈ {0...16384}
lit16 16- битный беззнаковый литерал ∈ {0...65535}
lit23 23- битный беззнаковый литерал ∈ {0...8388608}; LSB must be 0
None Поле не требует ввода, может быть пустым
OA, OB, SA, SB Биты состояния DSP: ACCA переполнение, ACCB переполнение, ACCA насыщение, ACCB насыщение
PC Программный счетчик
Slit10 10-битный знаковый литерал ∈ {-512…511}
Slit16 16-битный знаковый литерал ∈ {-32768…32767}
Slit6 6-битный знаковый литерал ∈ {-16…16}
Wb Основной Wрегистр ∈ {W0..W15}
Wd Регистр W места назначения ∈ {Wd, [Wd], [Wd++], [Wd--], [++Wd], [--Wd]}
  Окончание таблицы 3.8  
Wdo Регистр W места назначения ∈{Wnd, [Wnd], [Wnd++], [Wnd--], [++Wnd], [--Wnd], [Wnd+Wb]}
Wm,Wn Рабочая регистровая пара делимого и делителя (прямая адресация)
Wm*Wm Рабочая регистровая пара множимого и множителя для квадратных инструкций ∈ {W4 * W4,W5 * W5,W6 * W6,W7 * W7}
Wm*Wn Рабочая регистровая пара множимого и множителя для DSP инструкций ∈ {W4 * W5,W4 * W6,W4 * W7,W5 * W6,W5 * W7,W6 * W7}
Wn Один из 16 рабочих регистров ∈ {W0..W15}
Wnd Один из 16 рабочих регистров места назначения ∈ {W0..W15}
Wns Один из 16 рабочих регистров источников ∈ {W0..W15}
WREG W0 (рабочий регистр используемый в инструкциях файловых регистров)
Ws Регистр источник W ∈ {Ws, [Ws], [Ws++], [Ws--], [++Ws], [--Ws]}
Wso Регистр источник W ∈{Wns, [Wns], [Wns++], [Wns--], [++Wns], [--Wns], [Wns+Wb]}
Wx Пространство данных Х инструкций упреждающей выборки адреса регистра для DSP ∈ {[W8] + = 6, [W8] + = 4, [W8] + = 2, [W8], [W8] - = 6, [W8] - = 4, [W8] - = 2, [W9] + = 6, [W9] + = 4, [W9] + = 2, [W9], [W9] - = 6, [W9] - = 4, [W9] - = 2, [W9 + W12], none}
Wxd Пространство данныхХинструкций упреждающей выборки назначения для DSP ∈ {W4..W7}
Wy Пространство данных Y инструкций упреждающей выборки адреса регистра для DSP ∈ {[W10] + = 6, [W10] + = 4, [W10] + = 2, [W10], [W10] - = 6, [W10] - = 4, [W10] - = 2, [W11] + = 6, [W11] + = 4, [W11] + = 2, [W11], [W11] - = 6, [W11] - = 4, [W11] - = 2, [W11 + W12], none}
Wyd Пространство данныхYинструкций упреждающей выборки назначения для DSP ∈ {W4..W7}


программирование микропроцессоров - student2.ru Таблица 3.9 – Система команд микроконтроллеров dsPIC33F программирование микропроцессоров - student2.ru

программирование микропроцессоров - student2.ru программирование микропроцессоров - student2.ru

программирование микропроцессоров - student2.ru программирование микропроцессоров - student2.ru программирование микропроцессоров - student2.ru программирование микропроцессоров - student2.ru

программирование микропроцессоров - student2.ru программирование микропроцессоров - student2.ru

программирование микропроцессоров - student2.ru

Наши рекомендации