- •Принцип проектирования микропроцессорного блока.
- •Программная модель микропроцессора Intel 8085.
- •Система команд микропроцессора
- •Особенности программирования на ассемблере.
- •Шина адреса.
- •Шина управления.
- •Особенности мп к1812вм85(intel 80185).
- •Организация микропроцессорного блока на базе микропроцессора к1810 вм86/88 (Intel 8086/88 ) Основные методы повышения производительности микропроцессоров:
- •Основные характеристики микропроцессоров:
- •Средства реализации пошагового режима.
- •Особенности организации вм88.
- •Процессорный блок на базе 8086 / 8088
- •Особенности проектирования блоков памяти в микропроцессорных устройствах.
- •Статическая память 537 ру n зу
- •Периферийные бис микропроцессорных комплектов. Обобщенная структура программируемой бис.
- •Программируемый параллельный адаптер кр580 вв55
- •Программируемый таймер кр580ви53 / ви54
- •Программируемый адаптер последовательного интерфейса кр580вв51.
- •Структурная организация программируемого адаптера последовательного интерфейса кр580вв51.
- •Программное обеспечение программируемого адаптера последовательного интерфейса кр580вв51.
- •Программируемый контроллер прерываний кр580вн59,вн59а; intel8259, 59а
- •Структура программы инициализации пкп
- •Особенности организации 1810вн59а (i8259а).
- •Микроконтроллер к1816 ве51/31(intel 8051)
- •Структура резидентной памяти данных (рпд).
- •Система команд.
- •Структура команд orl( дизъюнкция), xrl (сумма по модулю 2) аналогична предыдущей.
- •Параллельные порты.
- •Счетчик/Таймер
- •Последовательный порт
- •Подсистема прерываний
- •Особые режимы работы
Структура команд orl( дизъюнкция), xrl (сумма по модулю 2) аналогична предыдущей.
CLR A - очистка аккумулятора;
CPL A - -инвертирование аккумулятора;
В этих логических командах признаки не формируются, за исключением бита паритета P, который получает значение единицы, если результат операции записывается в аккумулятор.
PR(PL) A - правый(левый) циклический сдвиг;
PRC(PLC) A - через бит С;
При сдвигах формируются признаки P и C.
Битовые команды (БК):
При выполнении БК бит С выполняет функции аккумулятора.
Команды пересылки бит:
mov C,bit
mov bit,C
SETB bit(C) - установка бита С (или прямоадресуемого бита)
CLR bit (C) - очистка бита С (или прямоадресуемого бита)
CPL C(bit) - инверсия бита С (или прямоадресуемого бита)
ANL C,bit
ORL C,bit
При работе с битами используется только прямая адресация.
Команды передачи управления:
Длинный безусловный переход и обращение к подпрограмме:
LJMP addr16[ст: мл] - 3 байта
LCALL addr16 - обращение к подпрограмме с 3 байта
Абсолютные переходы:
AJMP addr11 - 2 байта
ACALL addr 11 -переход в пределах 2K
В адресе следующей команды замещаются 11 мл. разрядов, причем разряды А10,А9,А8 содержаться в первом байте команды.
Косвенные переходы:
JMP @A+DPTR (1б.) - суммируется адрес в процессе выполнения программы. Можно выполнять множественное ветвление по адресу неизвестному в момент написания программы, модифицируя А или DPTR.
SJMP rel (2б.) - относительная адресация rel величина смещения в дополнительном коде. Это команда короткого перехода
Условные переходы:
JZ(JNZ) rel - может быть реализована после любой операции, результат которой записывается в аккумулятор.
JC(JNC) rel – переход по значению бита С.
DJNZ Rn(ad), rel - Rn:=Rn-1 ; Если результат операции не равен 0 - выполняется переход, иначе - следующая команда.
CJNE A,(ad, # d),rel
CLNE (Rn,@Ri),#d,rel
Выполняется вычитание из первого операнда второго; если результат операции не равен нулю - выполняется переход, иначе - следующая команда. Содержимое регистров, участвующих в операциях, не изменяется.
При сравнении формируется бит С .
При программировании в объектном коде адрес перехода вычисляется как:
rel:= адрес перехода - адрес команды перехода + длина команды перехода;
RET - возврат из подпрограммы
RETI - возврат из прерывания.
Битовые переходы:
JB(JNB) bit, rel
JBC bit, rel
Переход выполняется при единичном значении бита, адрес которого указан в команде , после чего бит сбрасывается в 0. Эта команда удобна при реализации семафоров.
Семафор представляет собой флаг, расположенный в памяти, информирующий о состоянии связанного с ним ресурса: 1 – свободен, 0 – занято. Захват ресурса допускается только в том случае, если он свободен. Затем семафор должен быть переведен в состояние “ Занято”. Ресурс – всякий объект, распределяемый системой.
Например, данные от различных источников должны быть записаны в разделяемую память.
WAIT: JBC bit,OK Проверка флага
SJMP WAIT Ресурс занят
.
.
.
OK: Ресурс свободен
.
.
В ОМК отсутствуют команды ввода-вывода. Обращение к внешним устройствам осуществляется как к ячейкам внешней памяти данных.
Использование команд проиллюстрируем на следующем примере:
По сигналу готовности, представляющем собой положительный импульс длительностью 20 мкс, ввести данные через параллельный порт. Разрядность данных 8 бит. Данные записываются в контроллер по условию: xi<=Адоп. Число достоверной информации должно быть К. Вычислить среднее арифметическое и вывести сигналы окончания работы, отрицательный импульс >=40 мкс. При суммировании данных предусмотреть получение результата > 8 бит.
Адоп (0:7)- допустимое значение
i(0:7)- номер. Вводимых данных
Xi(0:7)- значение вводимых данных
Y(0:7) - входной регистр данных
К(0:7) - счетчик программируемой задержки
n(0:2) - кол- во достоверной информации
S (0:16) - сумма
Г(0) - входной сигнал
N(0:7) - результат вычислений
В(0) – выходной импульс
Распределение регистров:
R2 - счетчик достоверных данных
R3- счетчик программируемой задержки
R4- младший байт суммы
R5 - старший байт суммы
R6 - счетчик сдвигов
P2 - ввод информации
P1(0) - ввод сигнала готовности
P1(1) - вывод сигнала
n: .EQUL 8
k: .EQAL 20
.ORG 100h
mov R2, #n; Подготовка регистров
mov R3, #k
mov R6, #3
clr A
mov R4, A
mov R5, A
mov P2, #0ffh; Настройка портов
mov P1, #xxxxxx01bh
setb P1.1
wait1: jnb P1.0, wait1; Анализ готовности
wait0: jb P1.0, wait0
mov A, P2; Чтение вводимых данных
cjne A, #Aдоп,M1; Сравнение с Адоп
M2: clr C; Суммирование
add A, R4
jc M3; Проверка переполнения
M4: mov R4, A
djnz R2, wait1
M1: jnc wait1; Проверка Xi < Адоп
sjmp M2
M3: inr R5; Подсчет числа переполнений
sjmp M4
M5: clr C; Вычисление средне-арифметического
mov A, R5
rrc A
mov R5, A
mov R4, A
djnz R6, M5
clr P1.1;Формирование выходного импульса
М6 : djnz R3, М6;Время выполнения DJNZ 2мкс, поэтому (R3)=20
setb P1.1
.end