- •Микропроцессорные системы мпс (Полетаев Игорь Алексеевич) 4-й курс Iсеместр 2000/2001 гг.
- •Классификация процессоров
- •Классификация контроллеров. Сферы применения 32-разрядных контроллеров
- •Обзор 8-разрядных контроллеров
- •Общая структура контроллеров семейства mCs-51i8x51
- •Структура контроллеров семейства pic16Схх
- •Структура команд и методы адресации
- •Методы адресации в pic-контроллерах
- •Язык Ассемблер
- •Программирование арифметических операций
- •Табличные вычисления
- •Порты ввода-вывода
- •Таймер-счётчик
- •Последовательный интерфейс mCs51
- •Работа последовательного порта в мультиконтроллерных системах
- •Определение тактовой частоты при работе с последовательным портом
- •Интерфейсы контроллеров pic
- •Последовательный связной интерфейс
- •Структурная схема приёмника
- •Модуль прерываниёMCs51
- •Система прерываний pic16
- •16-Ти разрядные контроллеры на примере mCs96
- •Вопросы
Структура команд и методы адресации
Методы адресации:
регистровая используется при обращении к одному из регистров выбранного банка данных: R0..R7,A,B,AB(сдвоенный регистр),DPTR(указатель данных).Пример: MOV A, R2
INC DPTR
прямая: указывается физический адрес в диапазоне 0 ÷ FFh; одни и те же регистры в разных банках имеют разные адреса.
прямая побитовая используется для обращения к 128 битам ячеек. Пример:
INC 43H
SET B P2.7
косвенно-регистровая используется для обращения к внутренней и внешней памяти данных только через регистры R0 иR1. КомандыPUSHиPOPиспользуют регистр указатель стекаPC. Признак: @.Пример:
MOVA, @R0
MOVX@R1,A/* Х – обращение к внешней памяти;R1 – внешняя память 256 байт */
MOVXA, @R1 /* внешняя память 61kбайт */
POP45H
02.10.2000
непосредственная – используется знак #
косвенная адресация по сумме базового и индексного регистра: в роли индексного регистра выступает аккумулятор, в роли базового регистра выступает программный счётчик или указатель. Этот метод предназначен для доступа к константам, расположенным в памяти программы, например, в виде таблицы:
MOVC A, @ A + DPRT
MOVC A, @ A + PC
JMP@A+DPRT
символическая: при использовании ассемблера допускается применение в программах символьных имён регистров специальных функций и их отдельных бит. Они являются предопределёнными и их использование не требует дополнительных описаний. Для адресации отдельных бит используется следующая структура:
<имя FSR| номер РОН>.<номер бита>
SETB PSW.3 ~ SETB RS0
Методы адресации в pic-контроллерах
непосредственная адресация: в команде указывается 1 байтовый операнд.
MOV LW 33h
SUB LW d ’25’
прямая адресация: в команде указывается 2 операнда – адрес регистра и признак получателя.
d= 0 результат→W
d= 1 результат→указанный адрес
ADDWF22h, 1 – содержимое рабочего регистра складывается с содержимым ячейки 22, и помещается в эту ячейку.
При обращении к любому отдельному биту используется только этот метод адресации. Второй операнд – номер бита. Когда производится прямая адресация, младшие 7 бит берутся как прямой адрес из КОП, а старший бит – из указателя страницы регистра статуса.
BSF06h, 5
При использовании подключённого файла # define2b, 5port1, 5 – строка в файле.
косвенная адресация: любая команда, использующая адрес 0, фактически обращается к указателю, находящемуся в FSR. Т.к. данный регистр восьмиразрядный, то адресация от банка не зависит.
MOV VW 40h
MOV WF 4
ANDWF0(косвенная адресация), 0(результат помещается вW)
Методы адресации относятся к описанию контроллера.
Язык Ассемблер
Формат записи чисел (обычно):
ц ц ц ц б (ц – цифра, б – буква)
б = H – 16 CC PIC: D ‘25’
B – 2 B ‘10011100’
O – 8
D– 10
Выражение: все выражения вычисляются на этапе трансляции, в качестве операндов могут участвовать числа, символы и имена. Символ $ используется для обращения к текущему значению РС.
MOVR5, #12 – задержка на 25 мкс.
DJNZR5, $ – регистрR5 уменьшается на 1, если он = 0, осуществляется переход на метку.
Операции: умножение и деление выполняются целочисленно.
Команды: общая структура:
[<метка>] [инструкция / директива [операнды] ] [; комментарий]
метка – число, являющееся текущим значением РС;
инструкция – мнемоника языка в соответствии с типом процессора.
Для отделения операндов используются запятые.
09.10.2000
директивы, не порождающие машинных команд, используются для управления генерацией кода, компоновкой программы, форматом листинга и т.д. основные директивы:
ORG<выражение> – для явной установки значения счётчика команд;
<имя> EQU<выражение> – присваивание имени значения выражения;
END– указание ассемблеру прекратить трансляцию – не обязательно вMCs51 и обязательно вPIC;
INCLUDE<имя файла> – указание включить в исходный текст все строки, содержащиеся в другом текстовом файле.INCLUDE Reg_sfn.inc .
отладка программы происходит в два этапа:
проверка синтаксических ошибок (выполняется быстро) и проверка логических ошибок (с помощью симуляторов и эмуляторов). Симулятор – программа, моделирующая на логическом уровне работу контроллера. В зависимости от сложности симулятора могут моделироваться не все функции. Внутрисистемные эмуляторы являются аппаратно-программным комплексом и позволяет полностью эмитировать функционирование контроллера в реальном масштабе времени на физическом уровне. Отладка происходит либо по шагам, либо по точкам останова.
определение точности вычислений: при составлении программ используется целочисленная арифметика. При сложении и вычитании проблем не возникает. В целочисленной арифметике математически одинаковая последовательность вычислений приводит к разным результатам из – за ошибок округления.
Если к точности вычислений не предъявляется высоких требований, например при допусковом контроле, и диапазон изменения операндов небольшой, то используют схему вычислений с минимальной разрядностью для обеспечения наибольшей производительности. При обычных вычислениях стремятся сохранить все разряды. При необходимости повысить точность вычислений используют вещественные числа с фиксированной точкой: цццццццц.00000000.