Основы микропроцессорной техники 


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



ЗНАЕТЕ ЛИ ВЫ?

Основы микропроцессорной техники



ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ

 

 

Конспект лекций

 

 

Москва 2013

 

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

МИКРОПРЦЕССОРНЫЕ СИСТЕМЫ НА ОСНОВЕ МИКРОПРОЦЕССОРНОГО КОМПЛЕКТА СЕРИИ К580

Состав микропроцессорного комплекта

МПК серии К580 содержит набор БИС для построения микропроцессорных систем невысокого быстродействия, работающих с тактовой частотой до 2,5 МГц. С использованием этого МПК строятся микропроцессорные системы (МПС), решающие задачи управления различными технологическими процессами.

Комплект имеет следующие особенности. В нем предусмотрена БИС центрального процессора, содержащая в одной микросхеме операционное и управляющее устройства, что существенно упрощает построение микропроцессорной системы. Кроме того, для облегчения программирования при управлении микросхемами МПК применяется фиксированный набор команд, что приводит к снижению быстродействия микропроцессорной системы. Это связано с тем, что предложенный набор команд может оказаться недостаточным для решения конкретной задачи.

Ряд микросхем, входящих в состав МПК, выполнены по n-МОП технологии, другие - по технологии ТТЛШ. Однако независимо от технологии изготовления все входные и выходные сигналы микросхем серии К580 соответствуют уровням логических схем ТТЛ – технологии, что упрощает согласование с микросхемами ТТЛ – технологии любых серий.

Все микросхемы МПК могут работать в диапазоне температур от -10° С до + 70° С. Микросхема К580ВМ80А требует трех источников напряжения:питания: +5 В, -5 В и +12 В, микросхема К580ГФ24 – двух источников: +5 В и +12 В, остальные микросхемы – одного источника: +5 В.

В таблице 2.1 приведен состав микропроцессорного комплекта серии К580.

Таблица 2.1 Состав микропроцессорного комплекта

Обозначение микросхемы Назначение Выполняемая функция
К580ВМ80А Параллельный центральный процессор Центральный процессор с фиксированной системой команд для обработки параллельной 8-разрядной информации
К580ВВ51А Универсальный синхронно/асинхронный приемопередатчик 8-разрядное универсальное синхронно/асинхронное приемо-передающее устройство последовательной связи
К580ВИ53 8 или 16-разрядный таймер Формирует программно-управляемые временные задержки для синхронизации управляемых объектов в реальном масштабе времени
К580ВВ55А 8-разрядный параллельный порт Программируемый ввод-вывод параллельной информации
К580ВТ57 8 или 16-разрядный контроллер прямого доступа к памяти Высокоскоростной обмен информацией между памятью МПС и периферийными устройствами
К580ВН59 Контроллер прерываний Обслуживает до восьми запросов на прерывания от внешних устройств
К580ВВ79 8-разрядный интерфейс клавиатуры и дисплея Контроллер ввода-вывода для клавиатуры и дисплея
К580ВГ75 8 или 16-разрядный интерфейс электронно-лучевой трубки Контроллер вывода информации из памяти МПС на экран электронно-лучевой трубки
К580ВК91А Интерфейс канала Устройство сопряжения микропроцессора с информационно-измерительной системой
К580ВА93 Приемопередатчик канала Приемопередатчик микропроцессор - канал общего пользования
К580ГФ24 Генератор тактовых импульсов Формирует две последовательности тактовых импульсов, необходимые для работы центрального процессора
К580ВК28 К580ВК38 Системный контроллер и шинный формирователь Формирует сигналы управления различными устройствами, входящими в МПС
К580ИР82 К580ИР83 Буферный регистр 8-разрядный буферный регистр с тремя состояниями
К580ВА86 К580ВА87 Шинный формирователь Двунаправленный 8-разрядный шинный формирователь с высокой нагрузочной способностью и тремя состояниями

Блок регистров

Микропроцессор К580 содержит программно-доступные 8-разрядные регистры общего назначения (РОН) и 16-разрядные специализированные регистры: счетчик команд и регистр-указатель стека. Кроме того, имеются непосредственно недоступные программе регистры: 8-разрядные регистры временного хранения W, Z и 16-разрядный регистр адреса.

Регистры общего назначения B, C, D, E, H, L используются для хранения операндов, промежуточных и конечных результатов, а также адресов и индексов при косвенной и индексной адресации. Для выполнения операций со словами двойной длины и операций формирования и пересылок двухбайтных адресов имеется возможность оперировать с содержимым пар регистров BC, DE, HL.

Особенность блока регистров МП является наличие в его составе схемы инкремента/декремента (INC/DEC), которая производит над содержимым счетчика команд (PC) и регистра-указателя стека (SP) операцию прибавления/вычитания 1 без привлечения АЛУ.

Счетчик команд (16-ти разрядный регистр) предназначен для хранения адреса команды; после выборки из оперативной памяти текущей команды содержимое счетчика увеличивается на единицу и таким образом формируется адрес очередной команды (при отсутствии безусловных и условных переходов).

Указатель стека (16-ти разрядный регистр) служит для адресации стековой памяти. В МП К580 используется «перевернутый» стек, т.е. при передаче в стек слова значение указателя стека (адрес вершины стека) уменьшается, а при извлечении слова из стека увеличивается.

Стековая адресация широко используется при работе с подпрограммами и в процедурах прерывания.

Для кратковременного хранения некоторых операндов и результатов выполнения операций служат регистры временного хранения данных W, Z. Использование регистров временного хранения позволяет МП за один цикл выполнения команды реализовать, например, такую операцию, как обмен содержимым двух регистров.

В состав блока регистров входит регистр адреса памяти (RA), предназначенный для хранения адреса ячейки памяти, в которой записана текущая команда. Регистр адреса недоступен программисту. Однако любая пара регистров (BC, DE, HL) может быть использована для задания адресов команд и данных в программе.

Буферные схемы

Двунаправленный буфер шины данных предназначен для логического и электрического разделения внутрипроцессорной шины данных и внешней, системной шины данных. Буфер состоит из регистра-защелки и выходной схемы с тремя состояниями, т.е. схемы обеспечивающей на выходе состояния 0, 1 и полное отключение от нагрузки (высокоимпедансное состояние).

В режиме ввода информации внутренняя шина данных подключается к регистру-защелке буфера, загрузку которого из внешней шины производит буферная схема под управлением команды.

В режиме вывода информации буферная схема передает в шину данных содержимое буферного регистра-защелки, на вход которого по внутренней шине с одного из регистров загружена информация, подлежащая выдаче.

Во время выполнения операций в МП, не связанных с процедурами обмена с внешними устройствами буферная схема отключается от шины данных.

Во время выполнения операций в МП не связанных с процедурами обмена с внешними по отношению к МП устройствами системы, буферная схема отключается от шины данных, т.е. переходит в высокоимпедансное состояние (не нуль, не один).

Буферная схема шины адреса – однонаправленная и обеспечивает передачу адресов команд и данных, а также номеров периферийных устройств от МП в систему. Выход буфера адреса, точно также как и буфера данных может переходить в отключенное состояние.

Управляющее устройство

Блок управления включает:

- 8-ми разрядный регистр команд (RK), предназначенный для приема и хранения кода операции;

- устройства управления и синхронизации (CU), формирующего управляющие сигналы для всех внутренних регистров и блоков МП, а также его выходные сигналы управления;

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

Команды пересылки данных

Команды пересылки данных обеспечивают выполнение операций размещения, обмена, загрузки и перемещения данных. Среди всех команд микропроцессора эти команды используются наиболее часто. Признаки условия не устанавливаются командами этой группы. В таблице 2.5 приведены команды пересылки данных.

Таблица 2.5 Команды пересылки данных

Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия
MOV R1, R2 01DDDSSS 1 1 (R1) (R2)
MOV R, M 01DDD110 1 2 (R) M(HL)
MOV M, R 01110SSS 1 2 M(HL) (R)
MVI R, data 00DDD110 2 2 (R) (байт2)
MVI M, data 00110110 2 3 M(HL) (байт2)
LXI RP, data 00RP0001 2 3 (RH) (байт3); (RL) (байт2).
LDA addr 00111010 3 4 (A) ((байт3)(байт2))
LHLD addr 00101010 3 5 L ((байт3)(байт2)); H ((байт3)(байт2)+1).
LDAX RP 00RP1010 1 2 (A) (M)
XCHG 11101011 1 1 (H) «(D); (L) «(E)
STA addr 00110010 3 4 ((байт3)(байт2)) (A)
SHLD addr 00110010 3 5 ((байт3)(байт2)) (L); ((байт3)(байт2)+1) (H)
STAX RP 00RP0010 1 2 M(RP) (A)

Команда пересылки с регистровой адресацией MOV A, D) осуществляет передачу содержимого регистра D в аккумулятор. Команда с непосредственной адресацией MVI D, 4Е16 производит пересылку числа, приведенного во втором байте команды (в примере число 4Е16), в регистр D, адрес которого указан в разрядах 5…3 первого байта команды. Команда с прямой адресацией LDA 020016 производит передачу содержимого ячейки памяти, адрес которой указан во втором и третьем байтах команды (020016), в аккумулятор. Команда LDAX BC загружается содержимое ячейки оперативной памяти, адресом которой служит содержимое пары регистров BC в аккумулятор.

Команды логических операций

Задачей этих команд является выполнение логических операций И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, сравнения, сдвига и инвертирования. Эти команды выполняют логические операции над данными в памяти или регистрах и признаках. В таблице 2.7 приведены команды логических операций.

Таблица 2.7 Команды логических операций

Мнемоника команды Код операции Количество байтов в команде Время выполнения команды, циклы Выполняемые действия
ANA R 10100SSS 1 1 (A) (A)Ù(R). Устанавливаются флаги – Z, S, P, AC.
ANA M 10100110 1 2 (A) (A)ÙM(HL). Устанавливаются флаги – Z, S, P, AC.
ANI data 10101SSS 2 2 (A) (A)Ù(байт2). Устанавливаются флаги – Z, S, P, AC.
XRA R 10101SSS 1 1 (A) (A)Å(R). Устанавливаются флаги – Z, S, P.
XRA M 10101110 1 2 (A) (A)ÅM(HL). Устанавливаются флаги – Z, S, P.
XRI data 11101110 2 2 (A) (A)Å(байт2). Устанавливаются флаги – Z, S, P.
ORA R 10110SS 1 1 (A) (A)Ú(R). Устанавливаются флаги – Z, S, P.
ORA M 10110110 1 2 (A) (A)ÚM(HL). Устанавливаются флаги – Z, S, P.
ORI data 11110110 2 2 (A) (A)Ú(байт2). Устанавливаются флаги – Z, S, P.
CMP R 10111SSS 1 1 (A)-(R). Флаги – Z=1, если (A)=(R), C=1, если (A)<(R).
CMP M 10111110 1 2 (A)-M(HL). Флаги – Z=1, если (A)=(M), C=1, если (A)<(M).
CPI data 11111110 2 2 (A)-(байт2). Флаги – Z=1, если (A)=(байт2), C=1, если (A)<(байт2).
RLC 00000111 1 1 Сдвиг влево (A) (2A). Устанавливается флаг C.
RRC 00001111 1 1 Сдвиг вправо. (A) (A/2). Устанавливается флаг C.
RAL 00010111 1 1 Циклический сдвиг влево. Устанавливается флаг C.
RAR 00011111 1 1 Циклический сдвиг вправо. Устанавливается флаг C.
CMA 00101111 1 1
CMC 00111111 1 1
STC 00110111 1 1 (C) 1.

Приемы программирования

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

Этапы составления программы должны выполняться в следующей последовательности:

1. Определение и анализ задачи;

2. Составления блок схемы алгоритма решения в общем виде и машинного алгоритма;

3. Написание программы на языке Ассемблера;

4. Трансляция программы в машинные коды;

5. Отладка программы (поиск и устранение ошибок);

6. Документирование программы.

Сформулируем общие требования, предъявляемые к программам, составленным на языке Ассемблера.

В общем виде любая команда на языке Ассемблера записывается следующим образом:

Метка: Операция Данные; Комментарий

Метка используется для обозначения адреса ячейки памяти, в которой хранится данная команда. Она может состоять из шести символов, не должна включать знаков пунктуации и пробелов, причем первым символом должна быть буква. Метка всегда определяется двоеточием и является необязательным элементом команды. Она применяется только при необходимости.

Операция является обязательным элементом команды. Она представляет собой мнемоническую запись из двух – четырех букв, которые указывают на характер выполняемых действий, например:

HLT – мнемоническое обозначение команды останов МП К580.

Данные – часть команды, в которой может размещаться одно или два восьмиразрядных слова в зависимости от типа команды (адрес ячейки памяти, адрес порта ввода- вывода, непосредственные данные).

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

Следующим шагом в разработке программы является ее трансляция в машинные коды. Обычно эта задача решается с использованием специального ПО – кросс-средств, которые разрабатываются для каждого типа микропроцессора отдельно. Однако эта задача может быть решена и вручную.

При ручном методе трансляции рекомендуется выполнить следующую последовательность действий:

  1. Находим КОп каждой мнемоники в таблице команд;
  2. Определяем операнды (данные и адреса), задавшись начальным адресом ячейки памяти (ЯП), где будет располагаться первая команда программы;
  3. Установим адреса ЯП в последовательности каждой команды и операнда.

Процесс отладки программы предназначен для поиска и устранения ошибок, и проводится либо на реальной МП системе, либо на ее эмуляторе. В систему вводится программа с известными данными, и полученные результаты сравниваются с эталоном. Как правило, выполняется несколько тестов.

Последним этапом программирования является документирование. На этом этапе составляется ее описание, указывающее в какой последовательности должны выполняться операции, приводятся алгоритмы выполнения программы, составляются списки, данные, адреса используемые подпрограммы и комментарии. Сложные программы требуют тщательно разработанной документации.

Примеры программ обработки данных в МП К580

Примеры использования команд передачи данных

Пример 3.1. Записать число 05H в регистр A:

MVI A, #05H; загрузка регистра A 05H

Пример 3.2. Записать число 4856H в пару регистров BC:

LXI B, #4856H; загрузка пары регистров BC 4856H

Пример 3.3. Загрузить в регистр указателя стека операнд 0BA3H:

LXI SP, #0BA3H; загрузка указателя стека SP 0BA3h

Пример 3.4. Записать в память содержимое аккумулятора A по адресу 0910H:

STA 0910H; запись в память содержимого

;аккумулятора по адресу 0910H

Примеры использования арифметических и логических команд

Пример 3.5. Сложить содержимое аккумулятора А с содержимым регистра Н:

MVI A, #3BH;загрузка регистра A 3Bh

MVI H, #25H;загрузка регистра H 25h

ADD H;сложение содержимого регистра

;аккумулятора A и содержимого

;регистра H, A A+H

Пример 3.6. Вычесть из содержимого аккумулятора содержимое ячейки памяти, адрес которой содержится в регистровой паре HL.

LXI H, #0825H; загрузка в регистровую пару HL адреса

; ячейки памяти HL 0825 H

MVI A, #03H;загрузка регистра A 03h

MOV M, A;запись в ячейку памяти, адрес которой

;0825H, содержимого аккумулятора

;M A

MVI A, #60H;загрузка регистра A 60h

SUB M;вычесть из содержимого аккумулятора

;содержимое ячейки памяти, адрес

;которой указан в паре регистров HL

;A A-(M)

Пример 3.7. Сравнить содержимое аккумулятора A=1Bh с содержимым регистра L= 0Bh.

MVI A, #1BH;загрузка регистра A 1Bh

MVI L, #0BH;загрузка регистра L 0Bh

CMP L;сравнение содержимого аккумулятора A

;с содержимым регистра L

Пример 3.8. Выполнить операцию “Исключающее ИЛИ” над содержимым аккумулятора A=33h и содержимым регистра B=52h.

MVI A, #33H;загрузка регистра A 33h

MVI B, #52H;загрузка регистра B 52h

XRA B;“Исключающее ИЛИ” с содержимым

;регистра B A A Å B

Пример 3.9. Сдвинуть содержимое аккумулятора A=31h на 3 разряда влево.

MVI A, #1FH;загрузка регистра A 1Fh

RLC;циклический сдвиг содержимого

;аккумулятора влево

;

RLC;циклический сдвиг

RLC;циклический сдвиг

Примеры использования команд ветвления и переходов

Пример 3.10. Условный переход по адресу 2021H, если содержимое аккумулятора равно 0.

MVI A, #B4Н;загрузка в аккумулятор B4H A B4H

XRA A;очистка аккумулятора

JZ 2021H;Условный переход по адресу 2021Н,

;записанному во втором и третьем байтах

;команды, если содержимое аккумулятора

;равно 0

Пример 3.11. Условный переход к команде, которая расположена в ячейке памяти с адресом 2110Н при условии, что в результате выполнения операции сложения установился бит переноса.

MVI A, #FFH;загрузка в аккумулятор FFН

ADI 80Н;сложение содержимого аккумулятора

;с содержимым второго байта команды

;

JC 2110Н;условный переход по адресу 2110Н,

;записанному во втором и третьем байтах

;команды, если содержимое аккумулятора

;равно 0

Пример 3.12. Программа записи чисел от 0 до 4 в ячейки памяти, расположенные последовательно, с адресами от 1010 до 1014 с использованием циклов.

LXI H, 1010Н;загрузка в пару регистров HL адреса

; первой ячейки памяти

XRA A;сброс аккумулятора в 00Н

LOOP MOV M, A;запись в ячейку памяти, адрес которой

;1010Н, содержимого аккумулятора

INX H;инкремент пары регистров HL

INR A;инкремент аккумулятора

CPI 05H;сравнить A=05h? Если да, то флаг Z

;установлен в 1.

JNZ LOOP;перейти по метке LOOP, если Z=0

HLT;остановить МП

 

ОСНОВЫ МИКРОПРОЦЕССОРНОЙ ТЕХНИКИ

 

 

Конспект лекций

 

 

Москва 2013

 



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 512; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.19.251 (0.072 с.)