Ерохин И.И. Конспект лекций по дисциплине Микропроцессорная техника - файл n1.doc

Ерохин И.И. Конспект лекций по дисциплине Микропроцессорная техника
скачать (1718 kb.)
Доступные файлы (1):
n1.doc1718kb.11.06.2012 06:20скачать

n1.doc

  1   2   3   4   5   6   7   8   9   ...   16


Министерство образования Украины
Донецкий государственный технический университет

К О Н С П Е К Т Л Е К Ц И Й

по дисциплине "Микропроцессорная техника"


Утверждено:

на заседании кафедры "Горная

электротехника и автоматика"

Протокол № от 2004 г.

Донецк - 2004

УДК 381.325.5
Конспект лекций по дисциплине "Микропроцессорная техника" для студентов специальности 7.09.2501 / Составитель - Ерохин И. И. - Донецк.: ДонГТУ, 2004.- 96 с.


?@ О г л а в л е н и е


ЛЕКЦИЯ 1. Основные понятия и определения в МПТ; типичная струк-

тура микропроцессорной устройства (системы) …………....3

Error: Reference source not foundError: Reference source not found ЛЕКЦИЯ 2. Структура и логическая организация микропроцессора

К580ВМ80А (Intel 8085) ……………………………………….6

Error: Reference source not found Error: Reference source not foundЛЕКЦИЯ 3. Принцип действия 8-разрядного МП К580ВМ80А ..…..…… 10

Error: Reference source not found Error: Reference source not foundЛЕКЦИЯ 4. Язык АССЕМБЛЕРА ……………………………………………………………13

Error: Reference source not found Error: Reference source not foundЛЕКЦИЯ 5. Запоминающие устройства МП-систем...……………………. 18

Error: Reference source not found Error: Reference source not foundЛЕКЦИЯ 6. Программируемый параллельный интерфейс (адаптер)

К580ВВ55 …………………………………………………………... 20

Error: Reference source not foundError: Reference source not found ЛЕКЦИЯ 7. Организация программных временных задержек……………24

Error: Reference source not found Error: Reference source not foundЛЕКЦИЯ 8. Программируемый контроллер клавиатуры и дисплея

К580КД79 (К580ВВ79) ………………………………………... 26

Error: Reference source not found ЛЕКЦИЯ 9. Программируемый таймер К580ВИ53 ………………………. 30

Error: Reference source not found ЛЕКЦИЯ 10. Универсальный синхронно-асинхронный приемник пере-

датчик (УСАПП - USART) К580ВВ51……………………… 34

Error: Reference source not foundError: Reference source not found ЛЕКЦИЯ 11. Организация прерываний – программируемый контроллер

прерываний К580ВН59 (К1810ВН59) ……………………….. 40

Error: Reference source not found ЛЕКЦИЯ 12. Однокристальные микроконтроллеры серии К1816ВЕХХ..

автоматизации …………………………………………………..48

ЛЕКЦИЯ 13. Устройства сопряжения МК с объектом автоматизации… 56

Error: Reference source not found ЛЕКЦИЯ 14. Однокристальные микроконтроллеры серии PICXXXX и

АТХХХХ ……………………………………………………….. .60

Error: Reference source not found ЛЕКЦИЯ 15. Микропроцессоры Intel 8086, Intel 80286…………………… 69

Error: Reference source not found ЛЕКЦИЯ 16. IBM PC совместимые промышленные компъютеры и

микроконтроллеры ……………………………………………...82
Error: Reference source not found ПРИЛОЖЕНИЕ П1. Структурная схема МК «Электроника МС2721»…... 86

ПРИЛОЖЕНИЕ П2. Таблица мнемоккодов и команд МП К580ВВ80А… 87

ПРИЛОЖЕНИЕ П3. Таблица мнемоккодов и команд МК К1816ВЕ51..….88

ПРИЛОЖЕНИЕ П4. Система команд МК АTmega16……………………… 89


Порядок пользования символами вызова необходимой лекции или приложения.

 - Вызов лекции или приложения.

?@ - Возврат к оглавлению.


ЛЕКЦИЯ 1
Основные понятия и определения в МПТ, Типичная структура МП устройства

1.1. Основные понятия и определения в МПТ
Микропроцессорная система (устройство, компьютер) представляют собой сим- биоз аппаратных средств (АС) и программного обеспечения (ПО), которые тесно взаимосвязаны и практически бесполезны друг без друга.

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

Микропроцессорная система (МП система) - информационная или управляю- щая система, построенная с применением микропроцессорных средств.

Архитектура МП системы – объединяет АС и ПО, включает потребительские свойства системы.

Микропроцессор (МП - CPU) – устройство обработки данных (информации) - выполняет арифметические и логические операции и осуществляет программное управление процессом обработки.

МикроЭВМ или микрокомпьютер - устройство обработки данных, содержащее: МП, постоянное и оперативное запоминающее устройства (ПЗУ и ОЗУ), устройства ввода-вывода информации (УВВ), периферийные устройства (ПУ) и некоторые другие схемы.

Микроконтроллер (МК - МС) - микрокомпьютер, в основном, с небольшими вычислительными ресурсами и упрощенной системой команд, ориентированный не на производство вычислений, а на выполнение логического управления оборудова- нием, технологическими процессами.

Контроллер – устройства ввода-вывода информации на периферийное (внешнее) устройство.

Адаптер – устройство для согласования физических параметров (входных вы-ходных сигналов) устройств с целью их сопряжения.

Интерфейс – полная совокупность физических и логических соглашений о вход-ных и выходных сигналах устройств с целью их сопряжения.

Совокупность аппаратных, программных и конструктивных средств обеспечива- ющих взаимодействие функциональных устройств ЭВМ, называется внутренним системным интерфейсом (ШУ, ШД, ША).

Микропроцессорное устройство (МПУ) – совокупность МП средств, элементов и деталей, обладающих конструктивным и функциональным единством – ЭВМ, ПЭВМ, микроЭВМ, МК.
1.2. Типичная структура МП устройства (системы)
На рис. 1 приведена упрощённая типичная структура МПУ (МП системы), предназначенной для обработки данных (информации) или управления некоторым процессом. Примерно такую же структуру имеют – микроконтроллер и микроЭВМ широкого применения.

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

Работа МП происходит под воздействием сигналов (тактовых прямоугольных импульсов – ГТИ) схемы синхронизации и начальной установки.

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

Обмен информацией между модулями системы осуществляется посредством коллективных шин (магистралей – ША, ШД, ШУ) к которым имеют доступ модули системы, то есть обмен информацией производится путём разделения использо- вания во времени, модулями системы коллективных шин. Магистральный принцип сопряжения модулей предполагает наличие унифицированных аппаратурных, про- граммных и конструктивных средств, обеспечивающих установление связей и взаимодействие всех модулей МП системы, и называется внутренним системным интерфейсом.

Для МП (МПУ) характерна трех шинная структура (рис. 1.), содержащая шину адреса (ША), шину данных (ШД) и шину управления (ШУ). Типовая структура МПУ рис. 1, предполагает наличие общего сопряжения (интерфейса) для модулей памяти - постоянных и оперативных запоминающих устройств (ПЗУ и ОЗУ) и периферийных устройств ввода/вывода (УВВ) и внешнего ОЗУ.

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

Периферийные устройства подключаются к шинам интерфейса (шинам МП) через адаптеры, контроллеры (интерфейсные БИС) – параллельный программируемый адап- тер (ППА – PPI), контроллер клавиатуры и дисплея (ККД), программируемый универ-сальный синхронно-асинхронный приёмник-передатчик (УСАПП – USART), см. рис. 1.
Внутренний системный интерфейс




Шина адреса - ША

Шина данных ШД

Шина управления - ШУ

• • •
Интерфейс памяти Устройства ввода-вывода - УВВ

Интерфейс периферийного оборудования

Рис.1. Типичная структурная схема микропроцессорного устройства или системы
В структуре МПУ интерфейс является узким местом из-за ограниченного числа выводов корпуса МП. Узкий интерфейс приводит к необходимости приме- нения двунаправленных линий передачи информации, что усложняет схемы буферов и вызывает необходимость использования временного мультиплексирования шин. Мультиплексирование шин позволяет при ограниченном числе линий интерфейса передавать по ним различную информацию; адреса, данные, команды. Однако это приводит к снижению скорости передачи информации через интерфейс.

МикроЭВМ или микроконтроллер (МК) содержащий помимо МП, дополнитель- ные БИС из МП набора (память, таймер, интерфейсные схемы и др.) может быть размещен на одной плате (одноплатный микроконтроллер или микроЭВМ). Одно-кристальный микроконтроллер (ОМК) или микроЭВМ – элементы и модули этих устройств размещены на одном кристалле (в корпусе одной БИС).

Структурная схема одноплатного серийного микроконтроллера "Электроника МС2721" приведена в приложении П1.
ЛЕКЦИЯ 2. Error: Reference source not found
Структура и логическая организация микропроцессора

К580ВМ80А (I8085), система команд
2.1. Структура микропроцессора К580ВМ80А

На рис. 2.1 приведена структурная схема МП К580. На структурные решения определенное влияние оказало ограниченное число выводов корпуса МП (в данном случае их 40). МП имеет три шины; 8-разрядную двунаправленную внутреннюю шину данных (ШД), 16-разрядную адресную шину (ША) и шину управления (ШУ).

Внутреняя ШД является магистралью, по которой обмениваются данными все подключённые к ней блоки (узлы) МП. Одновременно по ШД осуществляется обмен только между двумя узлами МП. Таким образом, узлы МП подсоединенные к ШД, разделяют эту шину во времени.

Шина управления содержит линии для передачи управляющих сигналов, признаков состояния процессора и периферийных устройств, в том числе линии; синхронизации передачи и идентификации информации передаваемой по ШД; сигналов, информи- рующих МП о готовности периферийных устройств, сигнала запроса прерывания от перифе­рийных устройств и сигнала разрешения прерывания и др.

В структуре МП можно выделить следующие её основные части: блок реги- стров, арифметическо-логическое устройство (АЛУ), буферные схемы, управляющее устройство.
БЛОК РЕГИСТРОВ


Микропроцессор К580 содержит программно-доступные 8-разряд­ные регистры: регистр-аккумулятор А; регистры общего назначения (РОН) В, С, D, E; регистр признаков F и 16-разрядные спе­циализированные регистры: счетчик команд СК; регистр-указатель сте­ка УС; сдвоенный регистр косвенного адреса H L (Н - регистр старше­го полу адреса, L - регистр младшего полу адреса). Кроме того, имеются непос- редственно недоступные программе регистры: регистры временного хранения T, W, Z, и 8-разрядный регистр команд РК; 16 разрядный регистр адреса РА. Имеется возмож- ность использования со­держимого пар регистров В и С, D и Е, Н и L как составных слов двоичной длины (16-разрядные регистры).

Регистры РОН используются для хранения операндов, промежуточных и конеч- ных результатов, а также адресов при кос­венной адресации. Регистр-аккумулятор (А) используется в качестве источника одного из операндов и в нём всегда фикси-руется результат операции. Для того чтобы аккумулятр мог одновременно являться

(8)


(8) (8) (8) (8) (8)







Рис. 2.1. Структурная схема микропроцессора К580ВМ80А
регистром операнда и регистром результата операции, он строится на основе двух- ступенчатых триггеров, (следует отметить, что некоторые МП для повышения производительности имеют несколько аккумуляторов).

Использование аккумулятора и регистров РОН позволяет уменьшить количество обра- щений к памяти и тем самым повысить быстродействие МПУ.

Схема инкрементора/декрементора, производит над содержи­мым регистров (без привлечения АЛУ) операцию прибавления/вычи­тания 1. Схема инкрементора/декре- ментора позволяет реализовать про­цедуры автоматического задания приращений при операциях с адреса­ми не только в регистре-указателе стека, но и в счетчике команд Регистр-защелка адреса памяти РА недоступен программисту. Однако лю­бая пара регистров (ВС, DE, HL) может быть использована для задания адресов команд и данных в программе. Этот адрес под воз­действием соответствующих команд не только может быть загружен в регистр-защелку адреса, но и модифицирован (посредством схемы инкрементора/декрементора) в процессе загрузки. Регистр защелка адре­са передает адрес в буферную схему и далее на шину адреса МПУ.
АРИФМЕТИЧЕСКО-ЛОГИЧЕСКОЕ УСТРОЙСТВО
Восьмиразрядная комбинированная схема АЛУ выполняет, арифметические и логи- ческие операции над 8-разрядными числами. В процессе межрегистровых пересылок к одному из входов схемы АЛУ всегда подключен аккумулятор, а к другому через регистр Т может быть под­ключен любой из общих регистров.

АЛУ непосредственно связано с 8-разрядным регистром признаков F, в соответ-ствующих разрядах которого фиксиру­ются особенности выполнения каждой операции: нулевой результат в аккумуляторе – флаг Z = 1; перенос из старшего разряда – флаг CY=1; знак результа­та "+" – флаг S=0; паритет – флаг Р=1, и вспомогательный перенос

из младшего полубай­та – флаг АС=1. Наличие в МП регистра признаков упрощает осуществление программных переходов в зависимости от состояния одного или более триггеров признаков (флагов). АЛУ позволяет в процессе межрегистровых пересылок выполнять операции сдвига на один разряд вправо или влево. Многократный сдвиг реализу­ется последовательностью одноразрядных сдвигов.

В состав АЛУ входит схема десятичного корректора ДК, назначение которого - под воздействием специальной команды интерпретировать результат выполнения двоичной операции как результат операции десятичной арифметики.

Арифметическо-логическое устройство реализует простейшие ариф­метические и логические операции (сложение, вычитание, сдвиги, срав­нение, логическое умножение и т. п.). Все более сложные операции (умножение, деление, вычисление элементарных функций и др.) выполняются по специальным подпрограммам.
СТЕКОВАЯ ПАМЯТЬ

В МП К580 организуется стековая память, реализующая безадресное задание операндов. В общем случае стек представляет собой груп­пу последовательно пронуме- рованных регистров или ячеек памяти, снабженных указателем стека, в котором авто- матически при записи и считывании устанавливается номер (адрес) последней занятой ячейки стека (вершины стека). При операции занесения в стек, слово помеща­ется в следующую по порядка свободную ячейку стека, а при считыва­нии из стека – извлекается слово поступившее последним. Таким образом, в стеке реализуется дисциплина обслуживания «последний пришёлпервый ушёл» Эта дисциплина при обращении к стеку реали­зуется автоматически. Поэтому при операциях со стеком возможно без­адресное задание операнда – команда не содержит адреса ячейки стека, но содержит адрес (или он подразумевается) ячейки памяти или регистра, откуда слово передается в стек или куда загружается из стека.

В рассматриваемом МП используется «перевернутый» стек, то есть при передаче в стек слова, значение регистра указателя стека (адрес вершины стека) уменьша­ется, а при извлечении слова из стека – увеличивается.

Непосредственно в МП К580 содержатся только регистр-указатель стека (УС) и соответствующие цепи управления. Сам стек реализуется в виде группы после- довательных ячеек оперативной памяти. Стековая адресация широко используется при работе с подпрограммами и в процедурах прерывания.
БУФЕРНЫЕ СХЕМЫ
Двунаправленный буфер ШД предназначен для логичес­кого и электрического разделения внутрипроцессорной ШД и внешней системной шины ШД. Буфер состоит из регистра-защелки и выходной схемы с тремя состояниями, т. е. схемы обеспе- чивающей на выходе состояния «0», «1» или «полное» электрическое отключение от внешней ШД – высокоимпедансное состояние. Наличие в МП буферных схем, отключающихся от общей системной шины, обеспечивает реализацию магистрального принципа межмодульных связей в МП системе.

В режиме ввода информации внутреняя ШД МП подсоеди­няется к регистру-защёлке буфера ШД. Загрузку буфера ШД, из внешней ШД производит буферная схема под управлением команды, определяемой программой.

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

Во время выполнения операций МП, не связанных с процедура­ми обмена инфор-мацией с внешними по отношению к МП устройствами системы, буферная схема отключает МП от внешней шины ШД, то есть переходит в высокоимпедансное состояние «не нуль, не один», которое принято называть «плавающим» состоянием.

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

Прежде чем перейти к рассмотрению способа реализации програм­много управле- ния (принципа работы) МП, целесообразно ознакомиться с его системой ко­манд.
2. 2. Система команд МП К580ВМ80А
Для рассмотрения особенностей системы команд МП воспользуемся его про- граммной моделью (рис. 2. 2), содержащей узлы наиболее важные для понимания программистом процесса работы МП.

Программно-доступные регистры П а м я т ь

0000Н

1FFFH

2000H
FFEFH

FFF0H
FFFFH

Рис. 2.2. Программная модель МП К580ВМ80А
Программно-недоступные узлы МП; АЛУ, первичный управляющий автомат - ПУА, регистры временного хранения – Т, W, Z и регистр адреса памяти – РА являются существенными для процесса выполнения команд.

В системе команд МП К580 имеются однобайтовые, двухбайтовые и трёхбай- товые команды. Форматы команд показаны на рис. 2. 3. Формат команды и тип адресации задаётся в команде неявно кодом операции (КОП). Адрес команды определяется адресом её первого байта.

Подробное описание системы команд МП приведено /2, в табл. 2.1/ Команды раз- биты на группы по функциональному назначению команд: 1) пересылки инфор-мации; 2) арифметических операций; 3) логических операций; 4) передачи управления; 5) специальные. Группа может содержать несколько типов операций. Каждый тип операций характеризуется структурой кодовых комбинаций команд.

В таблице системы команд указаны символические мнемонические обозначения (мнемокоды) команд, используемые при написании программ на языке ассемблера МП К580. В основе символических обозначений, как правило, лежит аббревиатура от полной записи наименования команды на английском языке. Например, команда "загрузить аккумулятор с прямой адресацией" имеет мнемокод LDA (команда трех- байтовая – загрузить в аккумулятор данные из памяти), которая представляет аббре- виатуру от английского load direct accumulator.

В таблице системы команд также указаны: двоичная кодовая комбинация коман - ды; число байтов, содержащихся в команде; число циклов и тактов, в которые выпол- няется команда; формирование признаков S, Z, AC, P , CY в регистре признаков (РП).

Рассмотрим пример формата однобайтовой команды из группы пересылки информации MOV C, D (переслать данные из регистра D в регистр С, обозначение выполняемой операции (C) ? (D), кодовая комбинация команды 01001010В = 4АН), приведенный на рис. 2.3.

7 6 5 3 2 0 Т а б л и ц а 2. 1.

Регистр

Адрес

Регистр

Адрес

А

В

С

D

1 1 1

0 0 0

0 0 1

0 1 0

E

H

L

0 1 1

1 0 0

1 0 1



В кодовой комбинации данной команды в разрядах: 6, 7 размещается вид опе- рации (код операции) 01 - пересылка данных; 3 - 5 адрес регистра С - 001 (приём- ник данных); 0 - 2 адрес регистра D - 010 (источник данных).

Рассмотрим пример формата двухбайтовой команды из группы пересылки информации MVI A, 00101110B (2ЕH) (загрузить в аккумулятор непосредственный операнд 2ЕH, обозначение выполняемой операции (А) ? 2ЕН, кодовая комбинация команды 00111110В = 3ЕН), приведенной на рис. 2.4.

7 6 5 3 2 0 7 0
Байт 1 Байт 2

Формат данных соответствует формату непосредственного операнда.

Рассмотрим пример формата трёхбайтовой команды LDA A, 20 19 (загрузить в аккумулятор данные из ячейки памяти по адресу 1920Н, обозначение выполняемой операции А ? [(А16)], кодовая комбинация команды 00111010В = 3АН), приведен- ной на рис. 2. 5.


Байт 1. Байт 2. Байт 3. Ст. полуадрес
Повышению эффективности системы команд, при коротком слове МП, способ- ствует использование регистра аккумулятора с подразумеваемой адресацией для реализации одноадресных и безадресных команд (в которых адрес операнда неявно задаётся кодом операции).
ЛИТЕРАТУРА
1. Каламбеков Б. А. Микропроцессоры и их применение в системах передачи и обработки сигналов. Учеб. пособие для вузов. – М.: Радио и связь, 1988.

2. Каган Б. М., Сташин В. В. Основы проектирования микропроцессорных уст-ройств автоматики. – М.: Энергоатомиздат, 1987.

ЛЕКЦИЯ 3 Error: Reference source not found
Принцип работы 8-разрядного МП К580ВМ80А
На рис. 3.1 показана структурная схема МПУ на МПК серии К580ВМ80А. Генератор тактовых импульсов (ГТИ) формирует две импульсные последовательности F1 и F2, необходимые для тактирования работы МП. Тактовые последовательности импульсов. F1 и F2 приведены на рис 3.2. ПЗУ, в основном, используется для хра- нения программ, ОЗУ – для хранения данных.

Общий принцип функционирования МПУ заключается в следующем. Из МП на шину адреса (ША) выдается адрес очередной команды. Считанная по этому адресу из памяти (например, из ПЗУ) команда поступает на шину данных (ШД) и принимается в МП, где она исполняется. В счетчике команд МП формируется адрес следующей команды.

F1

Q

F2


+12в

+ 5в

Земля

- 5в

к F2 Синхронизация


Ожидание, разрешения прерывания, подтверждение захвата
Готовность, запрос прерывания, сброс, захват


Рис. 3.1. Структурная схема МП устройства

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

Рассмотрим подробнее процесс выполнения команд МП. Этот процесс разби- вается на машинные циклы, обозначаемые М1, М2, М3, М4, М5. В каждом цикле производится одно обращение МП к памяти или УВВ. В зависимости от типа команды, команда может быть выполнена за один цикл (М1), либо за два цикла (М1, М2), и т. д. Самые длинные команды выполняются за пять циклов (М1 … М5).

Каждый цикл включает в себя несколько тактов, обозначаемых Т1, Т2, Т3, Т4, Т5. Циклы могут содержать три (Т1,…Т3),четыре (Т1,…Т4) либо пять (Т1,…Т5) тактов. Первые три такта во всех циклах используются для организации обмена с памятью или УВВ, такты Т4 и Т5 (если они присутствуют в цикле) – для выполнения внут-ренних операций в МП. На рис. 3.3 показана временная диаграмма машинного цикла из пяти тактов.

0.48 < T < 2. 0 мГц


F1 t

> 60 нс
> 80 нс

F2

> 0 нс > 220нс > 70 нс t
Рис. 3.2 Тактовые импульсы ГТИ
Рассмотрим цикл М1. В такте Т1 содержимое счетчика команд устанав- ливается на ША, соответственно адрес передаётся и в модуль памяти, где происходит чтение байта команды из указанной ячейки (ячейки по адресу установленному на ША). В такте Т2 на входе МП проверяется наличие сигнала (уровня лог. 1) Готовность. Этот сигнал формируется устройством подключён-ным к ШД и подается на вход МП через

интервал времени, достаточный для завершения процесса чтения из памяти. Если на входе Готовность сигнал отсутствует (лог. 0), то МП устанавливается в режим ожидания, в котором каждый следующий такт рассматривается как такт Т2 до тех пор, пока не появится сигнал на входе Готовность. С приходом этого сигнала МП выходит из режима ожидания и переходит на выполнение такта Т3. В такте Т3 выданный из памяти байт команды c ШД принимается в МП, где он помещается в регистр команд (РК). В такте Т4 анализируется принятый байт команды и выясняется, нужны ли дополнительные обращения к памяти. Если такие обращения не требуются (команда однобайтовая и операнды находятся в регистрах МП), то в этом же такте либо с использованием дополнительного такта Т5 выполняется предусматриваемая командой операция.




Т1 Т2 Т3 Т4 Т5

F1

t

F2 t
Синхронизация t


Строб состояния t

Рис. 3.3. Сигналы синхронизации и строба состояния
Если необходимы дополнительные обращения к память, то после такта Т4 цикл М1 завершается и происходит переход к циклу М2. Пусть, например, команда однобайтная, но в операции должен участвовать операнд, хранящийся в оперативной памяти. Тогда в цикле М2 в такте Т1 выдается адрес ячейки памяти, а в такте Т2 проверяется наличие сигнала Готовность (сигнала о том, что прошел интервал вре- мени, достаточный для чтения из памяти). С появлением этого сигнала происходит переход к такту Т3, в котором выданные из памяти данные, с ШД принимается в МП и в этом же такте выполняется операция, предусматриваемая командой.

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

Информация о состоянии микропроцессора. В каждом цикле в интервале вре- мени от момента положительного фронта импульса последовательности F2 в такте

Т1 и до момента положительного фронта импульса F2 в такте Т2 МП выдает на выход Синхронизация уровень лог. 1 и на ШД информацию о состоянии МП. Элемент И-НЕ (см. рис. 3.1) формирует строб, которым осуществляется приём инфор- мации о состоянии МП с ШД в регистр состояния - системный контроллер (времен- ное положение строба состояния показано на рис. 3.3). В табл. 3.1 приведено назна- чение отдельных разрядов кода слова состояния МП, а в табл. 3.2 кодовые комби- нации слова состояния МП (выдаваемые МП, между первым и втором тактом машинного цикла, на ШД).
Таблица 3.1

Разряд

Назначение сигнала


D0

D1
D2
D3
D4
D5
D6
D7

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

Запись-вывод: уровень лог.0 - выдача информации из МП в УВВ; уровень лог.1 прием информации из оперативной памяти или ввод (приём из УВВ).

Установлено содержимое указателя стека в данном цикле на ША.

Подтверждение останова: МП в состоянии останова (ожидания)

Установлен номер внешнего устройства на ША и осуществляется вывод содержимого аккумулятора на устройство вывода.

Принимает первый байт команды в данном цикле МП.

Установлен номер устройства ввода на ША и осуществляется ввод информации из устройства ввода в аккумулятор МП.

Прием информации (чтение) из памяти в МП



Таблица 3.4



Вид цикла
Слово состояние МП

D7

D6

D5

D4

D3

D2

D1

D0

Выборка первого байта команды


Чтение из памяти

Запись в память

Чтение стека

Запись в стек

Ввод из УВВ

Вывод из УВВ

Подтверждение прерывания

Подтверждение останова

Подтверждение прерывания при останове

1

1

0

1

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

1

0

1

0

0

0

0

0

0

1

0

1

1

0

0

0

0

0

0

0

0

1

1

0

0

0

1

1

0

0

0

0

0

1

1

0

1

0

1

0

1

1

1

0

0

0

0

0

0

0

1

0

1


ЛИТЕРАТУРА
1. Калам беков Б. А. Микропроцессоры и их применение в системах передачи и

обработки сигналов. Учеб. пособие для вузов. - М.: Радио и связь, 1988.

2. Каган Б. М., Сташин В. В. Основы проектирования микропроцессорных уст-

ройств автоматики. - М.: Энергоатомиздат, 1987.

3. Самофалов К. Г. и др. Микропроцессоры. - К.: Техника, 1986.

ЛЕКЦИЯ 4
ПРОГРАММИРОВАНИЕ НА ЯЗЫКе АССЕМБЛЕРА
Языки АССЕМБЛЕРА занимают промежуточное положение между машинными языками и языками высокого уровня, будучи при этом гораздо ближе к машин- ным языкам. Они объединяют в себе некоторые достоинства самого нижнего и самого верхнего уровней языков программирования.

Хорошая программа микроконтроллера (МК) – это программа правильно реали- зующая разработанный алгоритм в минимальное время, занимающая небольшой объем памяти в которую легко вносить изменения. Этим условиям отвечает программирование на языке АССЕМБЛЕРА, которое хотя и требуют наличие систе- мы АССЕМБЛЕРА (ЭВМ или ПЭВМ и ассемблирующих программ при системном программировании), но представляют разработчику МК возможность написания про- грамм в мнемонических кодах с использованием символических адресов и ссылок. Кроме того, в процессе трансляции АССЕМБЛЕРЫ выдают листинг программы в котором представлены обе ее версии (исходная и объектная) и указания об ошиб- ках. Транслятор программ АССЕМБЛЕРА, гораздо проще и компактнее транслятора программ языков высокого уровня, а результирующая объектная (машинная про- грамма) на выходе АССЕМБЛЕРА может быть столь эффективной, как и программа написанная на машинном языке. Это особенно необходимо для МК, в которых ограничен основной объем памяти и требуется высокое быстродействие.

Таким образом, язык АССЕМБЛЕРА обычно составляет основу для создания ПО МК работающих в системе реального времени, к которым предъявляются высокие требования, с точки зрения объема памяти и скорости выполнения программ.

К недостаткам АССЕМБЛЕРА следует отнести то, что каждый из существующих МП имеют свой АССЕМБЛЕР, который отражает специфику его внутренней организации, что не позволяет осуществить стандартизацию символики.

Программа написанная на языке АССЕМБЛЕРА, состоит из законченных предло- жений, каждое из которых занимает отдельную строку - оператор. Предложения языка АССЕМБЛЕРА (табл.4.1) содержат четыре фиксированных поля:

Таблица 4.1.

Метка

Мнемонический

код операции

Символический

адрес - операнд

Комментарий

TIME1: MVI A , 07H ; Записать в (А) данные

MOV С, А ; Переслать данные (С)?(А)

JNZ TIME1 ; Если «0», то перейти на …

Поле метки. Предназначено для записи символического имени данной строки (предложения, оператора) и после имени ставится двоеточие. Символическое имя (метка) требуется, когда на данную строку есть ссылка в программе, в какой ни- будь другой строке. Обычно в качестве метки допускается применять, начинаю- щуюся с буквы, алфавитно-цифровую последовательность знаков, максимальная длина которых различна в разных языках АССЕМБЛЕРА и, как правило, не превышает восьми знаков. В поле метки (см. табл. 4.1) приведено имя TIME1.

Поле операции – мнемонический код операции. В этом поле записывается мне-моническое буквенное обозначение кода операции (мнемокод) приводимое в системе команд данного микропроцессора.

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

Поля разделяются ограничителями, по которым АССЕМБЛЕР определяет конец одного и начало следующего поля. Обычно в качестве ограничителей применяются пробел или табуляция. В приведенном примере (см. табл. 4.1) для разделения полей строки использованы знаки табуляции. Применение знаков табуляции облегчает восприятие текста программы при его редактировании и во время отладки. Для отличия метки от шестнадцатеричного числа в случае, когда оно начинается с бук- вы, к нему слева приписывается цифра 0. Например, шестнадцатеричное число FCН в исходном тексте программы на языке АССЕМБЛЕРА должно быть записано 0FCH.
4.1. ПСЕВДОКОМАНДЫ АССЕМБЛЕРА

Команды исходной программы определяют действия над данными в процессе решения задачи. Псевдокоманды или директивы АССЕМБЛЕРА не связаны с дей- ствиями в исходной программе над данными, но они сообщают необходимые АССЕМБЛЕРУ сведения и используются лишь в процессе трансляции исходной про- граммы на язык кодовых комбинаций (объектную программу). С помощью таких псевдокоманд транслятору сообщают сведения о том, что нужно зарезервировать в ОЗУ ячейки (и в каком количестве) для хранения переменных, используемых в программе с определенными именами или массив переменных и т. д. В таблице 4.2 приведены наиболее употребляемые псевдокоманды АССЕМБЛЕРА.

Таблица 4.2.

Имя

П р и м е р з а п и с и

Псевдокоманды

Метка

Код

Операнд

Комментарий

1

2

3

4

5

ORG
EQU
DB

DW

DS
END



DELAY
PRO:

PRD:

ADIM:

ORG
EQU
DB
DW

DS
END

2000H
0FAH
0EH
0A57H

160

; Команда местоположения исходной

; программы, начало с адреса 2000Н.

; Константе с именем DELAY прис-

; ваивается значение 0FAH.

; Однобайтной переменной с именем

; PRO резервируется ячейка, в кото-

; рую записывается значение 0EH.

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

; PRD резервируются две ячейки и

; записывается значение 0A57H.

; Массиву с именем ADIM резерви-

; руется 160 ячеек памяти ОЗУ.

; Конец программы.


Рассмотрим подробнее наиболее часто используемые псевдокоманды.

Псевдокоманда ORG адрес начала. В процессе трансляции исходной про- граммы АССЕМБЛЕР использует некоторый свой внутренний счётчик (подобный счётчику команд МП ), который задает адрес для размещения очередной машин- ной команды, АССЕМБЛЕР после трансляции очередной команды, автоматически увеличивает содержимое своего счётчика на единицу. Если необходимо указать особое место размещения машинной команды в памяти, отличное от текущего значения счетчика, то необходимо воспользоваться псевдокомандой ORG.

Пример, требуется поместить подпрограмму (метка SUB) в памяти, начиная с адреса 2500Н:

ORG 2500H ; Запись в счетчик команд значения (адрес) 2500Н

SUB: LXI B, PRD ; Подпрограмма SUB – первая команда, запись в пару

; регистров двухбайтной переменной с именем PRD

RET ; Возврат к вызывающей программе.
Если в начальном тексте исходной программы отсутствует псевдокоманда ORG, то в большинстве АССЕМБЛЕРОВ начальный адрес автоматически устанавливается 0.

Псевдокоманда EQU (приравнять) используется для присваивания некоторым символам, указанным в поле метки, значений (данных, адресов), задаваемых в поле операндов. Эта команда позволяет программисту писать исходную программу в сим- волической форме без указания фактических числовых значений констант, парамет- ров, адресов и т. п. В некоторых случаях программист, разрабатывая программу, не знает заранее какие адреса или данные потребуется задать в программе, в связи с отсутствием данных о конфигурации аппаратных средств используемого МПУ (МК). Программа при этом может быть написана и отлажена в символической форме, а фактические данные подставляются в нее позже. Эта команда EQU также полезна в ситуациях, когда некоторая величина используется в программе несколько раз. Например, если некоторое значение используется в 10 различных местах программы, то целесообразно использовать символическое обозначение, например COUNT, и определять значение величины COUNT c помощью команды EQU. Это позволит во время отладки программы, при необходимости изменить величину COUNT, изменить лишь строку с псевдокомандой EQU, а не вносить изменения во всех местах программы.

Рассмотрим еще один пример использования псевдокоманды EQU для про- граммы на языке АССЕМБЛЕРА МП К580ВМ80А:
PORTB EQU FX ; Присвоение фиктивного адреса порту А ППА

PORTB EQU FY ; Присвоение фиктивного адреса порту В ППА

MVI A, 02H ; Загрузка в аккумулятор данных для вывода

OUT PORTA ; Вывод данных в порт А ППА

OUT PORTB ; Вывод данных в порт В ППА.
В приведенном примере показана ситуация, когда программист не зная адре- сов портов А и В, написал программу с использованием фиктивных адресов FX, FY. Когда станут известны фактические адреса портов А и В, то их можно будет записать в псевдокомандах EQU вместо фиктивных адресов.

Псевдокоманда DB или DEFB (определение байта) используется для опреде- ления значений элементов данных и для засылки их в соответствующую область памяти. Эта команда предназначена для образования 8 -битных значений и обычно применяется для формирования таблиц данных или для установки начальных зна- чений флагов в программе. Например, таблица, состоящая из четырех чисел; 7АН, 37Н, 98Н, ЕВН, должна быть размещена в памяти, начиная с адреса 1А00Н, то в программе необходимо написать следующие псевдокоманды:

ORG 1А00H ; Задание адреса таблицы

TABLE: DB 7AH, 37H, 98H, 0EBH ; Задание значений таблицы.
В псевдокоманде DB элементы таблицы данных отделяются друг от друга запя- тыми. После ассемблирования этих псевдокоманд, в машинной программе, в задан- ной области памяти, будут записаны следующие значения: 1А00 – 7А; 1А01 – 37; 1А02 – 98; 1А03 – ЕВ.

Псевдокоманда DW или DEFW (определение слова), подобно псевдокоманде DB, используется для определения значений данных и размещения их в соответствую- щую область памяти. Для этой команды, элементу данных выделяется 16-ти раз- рядное слово, то есть два байта - две восьмиразрядные ячейки памяти. В боль- шинстве АССЕМБЛЕРОВ принято хранить младший байт 16-ти разрядного слова в ячейки памяти с меньшим адресом, а старший байт в следующей ячейке (с боль- шим адресом). Например, таблица, содержащая три числа; 35В7Н, С78ЕН, 2790Н, должна быть размещена в памяти, начиная с адреса 19А0Н:
ORG 19A0H

DATA: DW 35B7H, 0C87EH, 2790H

После ассемблирования таблица разместится в памяти следующим образом:
19A0 B7

19A1 35 и т. д.

Псевдокоманда TITLE (заголовок) используется для задания имени объектному модулю, которое будет печататься в листинге программы. Например, в результате действия псевдокоманды: TITLE AUTOMATIC NASOS, АССЕМБЛЕР будет начинать каждую страницу листинга программы с заголовка AUTOMATIC NASOS.

Псевдокоманда PAGE или EJECT (конец страницы) указывает АССЕМБЛЕРУ на необходимость перехода к следующей странице листинга. Эта команда используется для размещения исходного текста подпрограмм или модулей на отдельной странице.

Псевдокоманда SPACE (пустая строка) указывает АССЕМБЛЕРУ на необходи- мость пропуска одной строки в листинге программы.

Псевдокоманда LIS T распечатать полный текст листинга программы.

Псевдокоманда END – конец исходной программы.
4.2. ТИПЫ АССЕМБЛЕРОВ
Среди существующих разновидностей АССЕМБЛЕРОВ наиболее распространены: однопроходные АССЕМБЛЕРЫ, двухпроходные АССЕМБЛЕРЫ, МАКРО-АССЕМБЛЕРЫ, кросс - АССЕМБЛЕРЫ, резидентный АССЕМБЛЕР и МЕТААССЕМБЛЕР.

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

Макроассемблертакже двухпроходной АССЕМБЛЕР, который позволяет исполь- зовать в исходном тексте программы макрокоманды и макроопределения. Макро- определения – последовательность команд, которым программист дает определённое имя. Оно необходимо для того, чтобы многократно в программе не писать одну и ту же последовательность команд, а в тех местах где она используется, програм- мист записывает имя макроопределения.

Например, приводимое ниже макроопределение предназначено для сложения многобайтных чисел (целых без знака);
ADDN: MACRO ; Задание имени макрокоманды

• Команды подпрограммы

• сложения -

• макроопределения ADDN

ENDM ; Конец макроопределения.

Используя макрокоманды программист не должен забывать о том, что макроко- манда может изменить содержимое регистров и состояние флагов МП.

Кросс - ассемблеры. Кросс - АССЕМБЛЕР реализуется как АССЕМБЛЕР любого из рассмотренных выше типов, но он выполняется на одной микроЭВМ (ПЭВМ), а объектные модули формирует в командах другой микроЭВМ (МК).

Кросс–АССЕМБЛЕРЫ чаще всего пишутся на языках высокого уровня, напри- мер на ПАСКАЛЕ; в таком случае кросс-АССЕМБЛЕР становится машинонезави- симым. Широкое распространение кросс–АССЕМБЛЕРОВ вызвано тем, что на одной машине можно выполнять ассемблирование для различных микропроцессоров.

Резидентный ассемблер. Это полная противоположность кросс-АССЕМБЛЕРУ в том смысле, что он работает в МП-системе для которой предназначены ассембли- руемые им исходные программы. Например, микроЭВМ на МП Intel386, написанная на языке АССЕМБЛЕРА для этого МП программа АССЕМБЛЕРА будет резидентной.

Метаассемблер. Это наиболее мощный из АССЕМБЛЕРОВ, он может использо- ваться для различных МП. Чтобы воспользоваться МЕТААССЕМБЛЕРОМ, программист сначала определяет правила ассемблирования для языка АССЕМБЛЕР конкретного МП.
4.3. ХАРАКТЕРИСТИКА АССЕМБЛЕРОВ ДЛЯ ФОРМИРОВАНИЯ ППО
Формирование прикладного программного обеспечения (ППО) МПУ автомати- зации технологических процессов и объектов, работающих в реальном масштабе времени, в основном производится с использованием языка АССЕМБЛЕРА. Вначале, после разработки и анализа алгоритма автоматизации объекта, программист пишет исходную программу с использованием языка АССЕМБЛЕРА конкретного МП (при- нятого стандартного МК). Затем, при ручном ассемблировании, с помощью таблицы системы команд МП (см. приложение П2, П3) формируют рабочую программу.

При использовании микрокомпьютерных систем проектирования МПУ (ПЭВМ, отладочных комплексов, инструментальных систем или САПР МПУ), написанную исходную прикладную программу на языке АССЕМБЛЕРА вводят в ПЭВМ. Затем с использованием специального программного обеспечения ассемблируют, линкируют и отлаживают разработанную прикладную программу

В большинстве случаях основным критерием выбора АССЕМБЛЕРА является скорость трансляции им исходного текста программы. Это вызвано тем, что во время разработки программы повторное ассемблирование приходится выполнять десятки раз, поэтому медленно работающие АССЕМБЛЕРЫ вызывают значительные затраты времени на отладку программ.


4.4. ДЕАССЕМБЛИРОВАНИЕ
Деассемблирование или обратное ассемблирование. Деассемблирование обычно используется при отладке программ для проверки того, что программа на машин- ном языке в шестнадцатеричном представлении соответствует именно той про- грамме, которая написана на языке АССЕМБЛЕРА. Отладочные программы и эму- ляторы, в большинстве случаев, имеют встроенные обратные АССЕМБЛЕРЫ.

Пример деассемблирования фрагмента машинной программы:




1A00 01 07 FE LXI B, 0FE07h

1A03 OB M1: DCX B

1A04 78 MOV A, B

1A05 C2 03 20 JNZ M1
В результате деассемблирования текст на языке АССЕМБЛЕРА (мнемокоды) выводится на экран дисплея, что позволяет найти некоторые ошибки в программе без обращения к листингу исходной программы.

ЛЕКЦИЯ 5 Error: Reference source not found
ЗАПОМИНАЮЩИЕ УСТРОЙСТВА
5.1. ТИПЫ ЗАПОМИНАЮЩИХ УСТРОЙСТВ
Для хранения небольших объемов информации могут использоваться регистры (РОН, регистры данных). Для хранения больших объемов информации используются БИС: ОЗУ (оперативное запоминающее устройство); ПЗУ (постоянное запоминающее

устройство); ППЗУ (программируемое ПЗУ); РППЗУ (репрограммируемое ПЗУ).

ОЗУ предназначено для условий, когда необходимо в высоком темпе выбирать и обновлять информацию. ОЗУ имеет три режима: чтение, запись, хранение. Время считывания, записи информации составляет доли ?кс. Обычно ОЗУ используется для хранения данных (исходных, конечных данных, промежуточного результата).

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

Запоминающие устройства (ЗУ) содержат N ячеек, в которых хранится слово с определенным числом разрядов n. Ячейки последовательно нумеруются двоичными числами, которые называются адресами. Количество информации в ЗУ определяет его емкость M=N n бит. Например, M = 1Кбайт = 1024  8 = 8192 бит, организация 1024 х 8.

5.2. КЛАССИФИКАЦИЯ ЗАПОМИНАЮЩИХ УСТРОЙСТВ
Приведенная выше классификация отражает деление микросхем ЗУ по их функ- циональному назначению.

По способу обращения к памяти все ЗУ делят­ся на адресные и ассоциативные. Большинство видов ЗУ (см. табл. 5.1), кроме вида АЗУ, относятся к адресным ЗУ с произвольной выборкой, архитектура построения которых на протяжении более 10 лет оста­ется практически неизменной. В адресных ЗУ обращение к элементам памяти производится по их физическим координатам, задаваемым внешним двоичным кодом -адресом. Адресные ЗУ бывают с произ­вольным обращением к ячейкам памяти, и с последовательным обращением, где выборка элементов памяти возможна только в порядке возрастания или убывания адре­сов. Номенклатура ассоциативных ЗУ (см табл. 5.1) в подклассе микросхем ограничена в связи с неустановившейся архитектурой.

По способу хранения информации ЗУ бывают статические и динамические

В динамических ЗУ для хранения информации используются инерционные свойства реактивных элементов (в полупроводниковых ЗУ конденсаторов), что требует перио- дического восстановления (регенерации) состояния элементов памяти в процессе хранения информации. В современных конструкциях ЗУ регенерация совмещается с обращением к элементу памяти. Разработаны ЗУ с дина­мическим накопителем и встроенной системой регенерации и синхро­низации – квазистатические ЗУ. Внешние сигналы управления в этом случае такие же, как у полностью статических ЗУ.

Следует отметить, что по уровням входных и выходных сигналов ЗУ любого типа изготовляются совместимыми с логическими элемен­тами одной из трех стандартных систем: ЭСЛ, ТТЛ, КМОП. Как правило, ЗУ на основе ТТЛ и ЭСЛ имеют одинаковую схему. Запоминающие устройства на ос­нове КМОП совместимы с КМОП логическими элементами, а по вы­ходус ТТЛ логическими элементами.

По внешним сигналам все типы РПЗУ совместимы с логическими элементами на основе ТТЛ

Таблица 5.1. Классификация запоминающих устройств

Наименование вида изделия



Краткое описание изделия



Полное


Сокращенное

Отечес- твенное

По ГОСТ


Матрицы оперативных запоминающих устройств.
Матрицы постоянных запоминающих устройств.


ПЗУ с возможностью однократного электри-ческого программиро- вания

ПЗУ с возможностью многократного элек-трического прогшрам- мирования
ПЗУ с ультрафиолето- вым стиранием и электрической запи-сью информации


Ассоциативные ЗУ

Прочие ЗУ



ОЗУ

ПЗУ

ППЗУ

РПЗУ

РПЗУУф

АЗУ



RAM

ROM

PROM

EPROM

EPROM

CAM

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

Матрица пассивных элементов памяти со схе- мами управления, предназначенная для воспро- изведения неизменной информации, заносимой в матрицу при изготовлении

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

ПЗУ, предназначенные для долговременного хранения и воспроизведения записанной в процессе эксплуатации информации. Допус- кает многократную электрическую перезапись информации – до 10000 раз.

От РПЗУ отличаются только способом сти-рания информации – с помощью ультрафиоле- тового освещения, для чего в крышке корпуса имеется окно со специальным стеклом.

Безадресные ЗУ: поиск и выборка информации осуществляется по содержанию произвольного количества разрядов, хранящихся в АЗУ чисел, независимо от физических координат ячеек памяти.
  1   2   3   4   5   6   7   8   9   ...   16


Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации