Плющаев В.И. Микропроцессорные системы управления - файл n1.doc

приобрести
Плющаев В.И. Микропроцессорные системы управления
скачать (90.9 kb.)
Доступные файлы (1):
n1.doc767kb.02.04.2004 17:04скачать

n1.doc

В.И. Плющаев
МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ УПРАВЛЕНИЯ

СП. 180900 и 240600

ВВЕДЕНИЕ

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

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

Микропроцессор (МП) - это универсальное логическое устройство на базе СБИС, работающее под управлением программы, хранящейся в полупроводниковой памяти. Первый МП был официально представлен фирмой INTEL (США) в 1971 году (модель 4004 Intel).

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

МИКРОПРОЦЕССОРЫ
Базовая микропроцессорная система
Под МП будем понимать обрабатывающее и управляющее устройство, выполняющее под программным управлением обработку информации, включая ввод-вывод информации, арифметические и логические операции. В данном пособии в качестве примера рассматривается получивший широкую популярность МП серии К580 (аналог МП 8080 Intel).

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

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

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

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



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

В МП системах для связи всех устройств используется единая шина (группа проводников , см. рис.2).

Порт ввода

МП


Память

Порт вывода


Формирователи

с тремя

состояниями

Формирователи

с тремя

состояниями

Формирователи

с тремя

состояниями

Формирователи

с тремя

состояниями











Шина данных



Рис.2.Организация передачи информации в МП системе.
Такая структура может непрерывно расширяться. Но, поскольку все устройства пользуются единой шиной, в текущий момент времени обмен информацией может производиться лишь между двумя устройствами (источником и приемником). Все другие устройства в этот промежуток времени должны быть «отключены» от шины и не мешать обмену. Такое «отключение» обеспечивает формирователь с тремя состояниями. Пример возможной схемной реализации формирователя с тремя состояниями приведен на рис. 3.

Если транзистор VT1 открыт, а VT2 - закрыт, устройство передает на линию шины логическую «1». Если VT1 закрыт, а VT2 - открыт, то на линию шины передается логический «0». Если оба транзистора закрыты, то устройство «отключено» от линии шины (третье состояние) и не препятствует обмену информацией между другими устройствами. Число таких формирователей равно числу линий в шине. Для МП типа К580 ШД имеет 8 разрядов. Таким образом ШД в МП системе представляет собой двунаправленную шину с тремя состояниями.

Каждое устройство МП системы (в том числе каждая ячейка ЗУ) имеет свой адрес (номер или собственное «имя»). Перед началом любой пересылки информации МП должен указать конкретный адрес пересылки. Этот адрес однозначно определяет ячейку ЗУ или УВВ, к которым МП хочет получить доступ. Этот адрес (комбинация двоичных разрядов) МП выставляет на шину адреса (ША).


Шина адреса однонаправленная (от МП к устройствам системы). У МП серии К580 ША имеет 16 разрядов, т.е. МП может обратиться к 65536 (216 ) различным устройствам. Дешифраторы ЗУ и УВВ в соответствии с полученным по ША адресом выбирают нужную ячейку памяти или порт ввода-вывода, после чего по ШД происходит обмен информацией между МП и выбранным устройством.

Все процессы обмена координируются сигналами передаваемыми по шине управления (ШУ). Количество и вид сигналов управления определяется типом МП и структурой МП системы. Примером могут служить сигналы READ (ЧТЕНИЕ) и WRITE (ЗАПИСЬ). По сигналу READ устройство, адрес которого присутствует на ША, выводит данные на ШД, а МП читает эти данные. По сигналу WRITE данные, которые МП выставит на ШД, будут записаны в устройство выбранное по адресу, присутствующему на ША. Отличие ШУ от ША и ШД заключается в том, что по каждой ее линии передается один тип сигналов (например, линия сигнала WRITE).

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

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

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

На рис.4 схематически показано ОЗУ статического типа емкостью 8 бит (реальные ОЗУ имеют значительно большую емкость, например 64 Кбайта = 65536 ячеек по 8 разрядов и выше).
Число ячеек памяти в ЗУ зависит от числа адресных линий. Например , при двухадресной шине можно выбрать одну из четырех ячеек, имеющую адрес 00, 01, 10 или 11. В общем случае, число адресуемых ячеек равно 2N , где N - количество адресных линий. Число разрядов в каждой ячейке ЗУ зависит от типа микросхемы (может быть 1, 4, 8, 16 бит).

Рис. 4.Структура ОЗУ на 8 бит.
На рис. 5 приведены примеры реально выпускаемых микросхем ПЗУ емкостью 2 Кбайта (2048 ячеек по 8 бит) и ОЗУ емкостью 1 Кбайт (1024 ячейки по 8 бит). При поступлении сигнала на вход ВЫБОР КРИСТАЛЛА ( = 0) открываются выходные формирователи с тремя состояниями и информация из выбранной ячейки поступает на ШД (рис. 5а). Если сигнал CS = 1 , информационные выходы D0 - D7 переходят в третье состояние и микросхема «отключается» от ШД.


а). б).
Рис.5. Микросхемы ПЗУ и ОЗУ.

Поскольку в ОЗУ (рис. 5б) информация может не только считываться, но и записываться, микросхема имеет дополнительную линию управления (). При сигналах = 0 и = 0, информация присутствующая на ШД записывается в выбранную ячейку памяти (выбор происходит адресом на ША). При сигналах = 1 и = 0 открывается выходной формирователь с тремя состояниями и информация из выбранной ячейки (ее адрес на ША) через выходы D0 - D7 передается на ШД.

Порты ввода-вывода
На рис. 6а представлена реализация порта вывода, которому присвоен адрес FFFBН (в двоичном

коде 1111 1111 1111 1011), а на рис. 6б порт

Рис.6. Реализация портов ввода-вывода.

ввода с адресом FFFDН (в двоичном коде 1111 1111 1111 1101).

При появлении на ША адреса FFFBН на выходе дешифратора появляется логическая «1». Одновременно по шине управления приходит сигнал WRITE = 1 (W = 1). На вход фиксатора приходит импульс, по которому в фиксаторе «защелкиваются» данные, находившиеся на ШД. Таким образом данные, которые МП посылает по адресу FFFBН, оказываются на выходе МП системы.

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


Декодирование адресов
При наличии нескольких портов ввода-вывода и микросхем ЗУ требуются более сложные дешифраторы адреса. На рис. 7 представлено устройство дешифрации для 8 портов ввода-вывода (адреса портов 3FF0H, 3FF1H, ... , 3FF7H.

Для выбора 8 адресов в 16-ти разрядном адресе достаточно изменять лишь три младших разряда А0, А1 и А2 (получим комбинации 000, 001, 010, ..., 111). 13 других разрядов не меняются и декодируются общей схемой. Дешифратор 555ИД7 работает лишь в случае, если на входе присутствует логический «0». Этот сигнал формируется при дешифрации старших 13 адресов. В соответствии с кодом, поступающим на входы А, В и С, на соответствующем выходе 0 ... 7 появляется логический «0» (таблица работы микросхемы 555ИД7 приведена на рис. 7).

На рис. 8 приведен пример дешифрации адресов для 4 микросхем ЗУ емкостью по 256 байт. Адрес должен указывать выбираемую микросхему и адресуемое в ней слово. На рис. 8а адреса приведены в двоичной форме. Восемь младших разрядов определяют ячейку внутри микросхемы, разряды А8, А9 определяют микросхему. Остальные разряды адреса А10 - А15 можно использовать для формирования сигнала разрешения работы дешифратора (выбор кристалла ).



Рис.7. Дешифратор адреса для 8 портов.
Схема подключения 4 микросхем ЗУ приведена на рис. 8б. Восемь младших разрядов адреса А0 - А7 поступают непосредственно на адресные входы всех микросхем. Они выбирают ячейку памяти внутри микросхем. Дешифратор 555ИД4 в зависимости от кода на линиях А8, А9 выбирает одну из четырех микросхем. Из остальных разрядов адреса А10 - А15 формируется сигнал разрешения работы дешифратора ().

Таким образом, при поступлении по ША очередного адреса, посредством описанного дешифратора выбирается единственная ячейка памяти и при поступлении сигнала (). Информация из ячейки памяти поступает на ШД и далее в МП.

Несмотря на существование многих вариантов декодирования адресов, всегда соблюдается основной принцип: младшие разряды ША подаются непосредственно на адресные входы микросхем ЗУ для выбора ячейки внутри микросхемы, а старшие разряды используются для выбора самой микросхемы.


Рис.8.Дешифрация адресов для 4 микросхем ОЗУ.



Рис.8.Схема подключения четырех микросхем ЗУ.
Всем устройствам, которые связаны с МП, присваиваются индивидуальные адреса. Схемы декодирования адресов гарантируют, что доступ к ШД получает именно то устройство, которое адресовано микропроцессором.

Структура МП К580.
На рис.10 представлена упрощенная структура МПК580.


Рис.10.Структура МП системы.

МП последовательно, одну за другой считывает команды из памяти, выполняя указанные в них действия. Каждая команда МП содержит код операции (КОП), указывающий на необходимые действия, и информацию, с какими операндами должно происходить это действие. В зависимости от назначения команды ее длина может составлять 1, 2 или 3 байта (соответственно 8, 16 или 24 разряда). КОП всегда присутствует в первом байте, во втором и третьем байтах могут содержаться либо адреса ячеек или портов ввода-вывода, где располагаются данные с которыми будут производиться действия заданные КОП, либо непосредственно данные.

Адрес первого байта с КОП, считываемого МП, находится в счетчике команд (РС). Счетчик команд имеет 16 разрядов, т.е. объем адресуемой памяти составляет 65536 ячеек. Через буфер шины адреса из РС адрес поступает на ША, что обеспечивает выбор нужной ячейки памяти. При поступлении на ЗУ по ШУ сигнала READ (ЧТЕНИЕ) информация из выбранной ячейки по ШД поступает в регистр команд МП. Дешифратор команд “расшифровывает” КОП, после чего МП “знает” какова длина команды (1, 2 или 3 байта), где находятся операнды и что с ними необходимо делать. Если команда двух- или трехбайтная, МП последовательно выставляя адреса на ША (каждый раз адрес в счетчике команд увеличивается на единицу!) считывает из ЗУ второй, а при необходимости и третий байты команды. Они размещаются в регистрах временного хранения данных W и Z. Эти регистры программно недоступны, их содержимое невозможно изменить никакими командами. После считывания всей команды устройство управления МП генерирует микроприказы необходимые для ее выполнения. Следует отметить, что в счетчике команд после полного считывания команды находитcя адрес, по которому располагается первый байт с КОП следующей команды программы. Исключение составляют команды переходов, обращения к подпрограммам, возврата из подпрограмм, запросы на прерывание от внешних устройств. В этом случае МП прерывает последовательную выборку команд и начинает считывание команды с нового адреса.

Этот адрес, появляющийся в счетчике команд, генерируется следующим образом:

-из команды перехода. Например, после “расшифровки” команды JMP 4000Н, устройство управления загрузит в счетчик команд адрес 4000Н и следующая команда будет считана из ячейки памяти с адресом 4000Н;

-из команды вызова подпрограммы. Например, после “расшифровки” команды CALL С96АН устройство управления текущий адрес, который находится в счетчике команд, направит на хранение в специально отведенную область ОЗУ - стек. Адрес начала стека содержится в указателе стека (SP) и задается программистом в начале программы. Указатель стека имеет 16 разрядов. После этого адрес из считанной команды С96АН загружается в счетчик команд. Следующая команда из ЗУ будет считана с адреса С96АН. Таким образом происходит переход к выполнению подпрограммы. После окончания выполнения подпрограммы (она должна заканчиваться командой RET) устройство управления из стека возвращает запомненный адрес в счетчик команд и программа продолжает работать с команды, стоящей после команды CALL С96АН (возврат в основную программу);

-генерируется устройством управления при появлении на ШД кодов прерывания (RST0,...,RST7). При этом в счетчике команд появляются, соответственно, адреса 00Н,08Н,10Н,18Н,20Н,28Н,30Н или 38Н.

Арифметические и логические операции совершаются в АЛУ. При проведении операций одно число (операнд) всегда берется из аккумулятора, второе - из буферного регистра. Результат выполнения операции всегда помещается в аккумулятор (аккумулятор имеет 8 разрядов). Аккумулятор является главным регистром МП при различных манипуляциях с данными. Некоторые действия выполняются непосредственно в аккумуляторе (обнуление, сдвиг содержимого вправо или влево и др.). Через аккумулятор производится обмен данными между МП и портами ввода-вывода с помощью команд IN и OUT. Например, по команде OUT 4EH данные из аккумулятора пересылаются в порт вывода с адресом 4ЕН.

Устройство управления “наблюдает” за процессом выполнения команды и формирует признаки (флаги) отражающие результаты выполнения команды. Значения каждого признака (логические “0” или “1”) фиксируются в специальном регистре признаков. В регистре признаков фиксируются:

С - признак переноса. Устанавливается при наличии переноса из старшего бита результата (в операциях вычитания - при заеме);

S - признак знака результата;

Z - признак нулевого результата;

Р - признак наличия в аккумуляторе четного числа единиц;

АС- признак вспомогательного переноса (возникает при переносе из младшей половины байта в старшую).

В МП предусмотрено много команд условной передачи управления, осуществляющих выбор одного из двух направлений дальнейшей работы в зависимости от признаков (флагов). При “расшифровке” и выполнении таких команд анализируется содержание регистра признаков и в соответствии с флагами осуществляется переход к нужной части программы. Например, команда JNZ 3020Н - если на предыдущем шаге получен ненулевой результат, перейти к программе по адресу 3020Н. При выполнении этой команды анализируется состояние признака нулевого результата Z. Если Z=1 (результат нулевой), то считывается и выполняется команда, следующая за командой JNZ 3020H. Если же Z=0 (результат ненулевой), то в счетчик команд загружается адрес 3020Н и следующей считывается команда, расположенная в ячейке ЗУ с адресом 3020Н.

Для расширения функциональных возможностей МП имеет ряд регистров общего назначения (РОН) - B,C,D,E,H,L. Регистры восьмиразрядные и предназначены для временного хранения данных. Ряд команд может работать с отдельными регистрами. Например, команда MOV A,E осуществляет пересылку данных из регистра Е в аккумулятор (А). Ряд команд работает с парами регистров BC, DE, HL (т.е. с 16-разрядными словами). Например, команда INX D увеличивает содержимое регистровой пары DE на 1. Команда MOV B,M пересылает содержимое ячейки памяти, адрес которой хранится в регистровой паре HL, в регистр В.

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

Интерфейсные устройства ввода-вывода

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

Технология СБИС позволяет создавать многофункциональные интерфейсные устройства ввода-вывода параллельной информации. Такие устройства могут быть программируемыми и применяться для двунаправленной передачи данных и сигналов управления. Примером может служить микросхема КР580ИК55 (рис.11). Она позволяет осуществлять обмен 8-разрядными данными по трем каналам: А, В и С. Направление обмена и режим работы для каждого канала задается программно (путем записи управляющего слова в специальный регистр). Микросхема может работать в трех режимах:

- режим 0 - простой ввод-вывод;

- режим 1 - стробируемый ввод-вывод;

- режим 2 - двунаправленный канал.


а).




Рис.11.Реализация связи МП с внешними устройствами
Сигнал RES используется для начальной установки микросхемы. Выбор канала (А, В или С) или специального регистра (РУС - регистр управляющего слова) определяется кодом на входах А0 и А1. Эти входы подключаются непосредственно к двум линиям ША - младшим разрядам А0 и А1. Остальные разряды ША можно использовать для формирования сигнала ВЫБОР КРИСТАЛЛА (). Микросхема будет работать, если = 0. Сигналы () и () определяют направление передачи информации. При =0 (R=1) информация с шины данных направляется в каналы А, В, С или РУС. При =0 МП читает информацию из каналов А,В,С или РУС. Управляющие сигналы приведены в таблице:



Направле-ние пере-дачи


Входы


Чтение
кА кВ кС

-> -> ->

кД кД кД


Запись
кД кД кД кД

-> -> -> ->

кА кВ кС РУС

Нет пе-

редачи

кД в

третьем

состоя-

нии

Зап-

ре-щен-

ная

ком-бин.



0 0 0

0 0 0 0

1

0

()

0 0 0

1 1 1 1

x

0

()

1 1 1

0 0 0 0

x

1

А1

0 0 1

0 0 1 1

x

1

А0

0 1 0

0 1 0 1

x

1



Канал А может работать на ввод-вывод в режимах 0, 1 и 2. В режимах 0 и 1 информация выдается на выход канала в течение всего режима вывода (до смены информации в выходных регистрах). При вводе в режиме 0 информация постоянно принимается во входной регистр канала А (т.е. регистр меняет свое состояние при смене информации на входе). При вводе в режиме 1 информация принимается во входной регистр в течении действия внешнего сигнала управления приемом. В режиме 2 канал А принимает и выдает информацию в течение действия внешних управляющих сигналов.

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

Канал С состоит из двух 4-разрядных регистров (разряды С0-С3 и С4-С7). Канал С используется для ввода-вывода 4-разрядных или 8-разрядных слов в режиме 0. В режимах 1 и 2 канал С используется для приема и выдачи управляющих сигналов.

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



D0 Канал С (С0-С3) 1-ввод,0-вывод



D1 Канал В 1-ввод,0-вывод



D2 Режим каналов В 1-реж.0,0-реж.1

и С (С0-С3)



D3 Канал С (С4-С7) 1-ввод,0-вывод



D4 Канал А 1-ввод,0-вывод



D5 Режим каналов А 00-реж.0 С4-С7

D6 01-реж.1 кА

1х-реж.2 кА



D7 = 1 (всегда)



Рис.12.Формат управляющего слова.

Рассмотрим наиболее часто используемый режим работы - режим 0. В этом режиме обеспечивается простой ввод-вывод информации через любой из трех каналов. Сигналов управления от внешних устройств не требуется. Данные просто записываются или читаются через определенный канал во внешнее устройство или из него. Интерфейс можно представить как два 8-разрядных и два 4-разрядных канала. Любой из четырех каналов может использоваться для ввода и вывода информации. Информация хранится на выходе канала до записи новых данных в этот канал. Входная информация не запоминается. Число возможных комбинаций в этом режиме равно 16.




Управляющее Канал А Канал С Канал В Канал

слово С4-С7 С0-C3

РУС




80 выв выв выв выв

81 выв выв выв вв

82 выв выв вв выв

83 выв выв вв вв

88 выв вв выв выв

89 выв вв выв вв

8А выв вв вв выв

8В выв вв вв вв

90 вв выв выв выв

91 вв выв выв вв

92 вв выв вв выв

93 вв выв вв вв

98 вв вв выв выв

99 вв вв выв вв

9А вв вв вв выв

9В вв вв вв вв


вв -ввод информации, выв - вывод информации
На рис.11 приведен пример реализации связи МП с внешними устройствами с использованием микросхемы КР580ИК55. Обмен информацией с МП происходит по ШД. Сигнал формируется дешифратором, на входы которого заведены разряды А2-А15 ША. Разряды А0, А1 ША использованы для выбора каналов А,В,С или РУС. В начале работы порт программируется, т.е. в РУС отправляется код, определяющий режим работы (рис.12).

К каналу А подключены переключатели Кл0-Кл7, с помощью которых на вход можно подать любую комбинацию из логических нулей и единиц. К каналу В подключен семисегментный индикатор, на котором можно отразить цифры от 0 до F. Схема подключения и расположения сегментов на индикаторе приведены на этом же рисунке. Для включения сегмента в соответствующий разряд канала В нужно выдать логический “0”. Так для отражения цифры 5 в канал В необходимо выдать код 1001 0010 (92Н). На базе канала С реализована клавиатура на 16 клавиш (рис.11в). Младшие разряды С0-С3 работают на вывод (сканирующий порт), старшие разряды С4-С7 работают на ввод (читающий порт).

Клавиатура работает следующим образом. В сканирующий порт последовательно выдаются коды 0001,0010,0100 и 1000. После выдачи каждого кода читаются старшие разряды С4-С7. Пусть выдан код 0001. Если в этот момент не нажата ни одна кнопка, то при чтении разрядов С4-С7 будет получен код 1111 (свободные входы воспринимаются как логические единицы !). При нажатии кнопки “0” будет получен код 1110, кнопки “1” - код 1101, кнопки “2” - код 1011, кнопки “3” - код 0111, остальных - код 1111. Т.е. при выдаче в сканирующий порт кода 0001 опрашивается 1 ряд клавиатуры (кнопки “0”, “1”, “2” и “3”), кода 0010 - 2 ряд (кнопки “4”, “5”, “6” и “7”), кода 0100 - 3 ряд (кнопки “8”, “9”, “А” и “В”), кода 1000 - 4 ряд (“С”, “D”, “E” и “F”). После чтения программа преобразует полученный код кнопки и помещает в аккумулятор ее истинное значение - 0...F.

Система команд МП К580.
Набор команд МП К580 содержит 246 различных команд. Полный список команд приведен в табл.1.
Таблица 1.


Код

Команда

Код

Команда

00

NOP

80

ADD B

01

LXI B,2байта

81

ADD C

02

STAX B

82

ADD D

03

INX B

83

ADD E

04

INR B

84

ADD H

05

DCR B

85

ADD L

06

MVI B,байт

86

ADD M

07

RLC

87

ADD A

08

-

88

ADC B

09

DAD B

89

ADC C

0A

LDAX B

8A

ADC D

0B

DCX B

8B

ADC E

OC

INC C

8C

ADC H

0D

DCR C

8D

ADC L

0E

MVI C,байт

8E

ADC M

0F

RRC

8F

ADC A

10

-

90

SUB B

11

LXI D,2байта

91

SUB C

12

STAX D

92

SUB D

13

INX D

93

SUB E

14

INR D

94

SUB H

15

DCR D

95

SUB L

16

MVI D,байт

96

SUB M

17

RAL

97

SUB A

18

-

98

SBB B

19

DAD D

99

SBB C

1A

LDAX D

9A

SBB D

1B

DCX D

9B

SBB E

1C

INR E

9C

SBB H

1D

DCR E

9D

SBB L

1E

MVI E,байт

9E

SBB M

1F

RAR

9F

SBB A

20

-

A0

ANA B

21

LXI H,2байта

A1

ANA C

22

SHLD [адр]

A2

ANA D

23

INX H

A3

ANA E

24

INR H

A4

ANA H

25

DCR H

A5

ANA L

26

MVI H,байт

A6

ANA M

27

DAA

A7

ANA A

28

-

A8

XRA B

29

DAD H

A9

XRA C

2A

LHLD [адр]

AA

XRA D

2B

DCX H

AB

XRA E

2C

INR L

AC

XRA H

2D

DCR L

AD

XRA L

2E

MVI L,байт

AE

XRA M

2F

CMA

AF

XRA A

30

-

B0

ORA B

31

LXI SP,2байт

B1

ORAC

32

STA [адр]

B2

ORA D

33

INX SP

B3

ORA E

34

INR M

B4

ORA H

35

DCR M

B5

ORA L

36

MVI M,байт

B6

ORA M

37

STC

B7

ORA A

38

-

B8

CMP B

39

DAD SP

B9

CMP C

3A

LDA [адр]

BA

CMP D

3B

DCX SP

BB

CMP E

3C

INR A

BC

CMP H

3D

DCR A

BD

CMP L

3E

MVI A,байт

BE

CMP M

3F

CMC

BF

CMP A

40

MOV B,B

C0

RNZ

41

MOV B,C

C1

POP B

42

MOV B,D

C2

JNZ [адр]

43

MOV B,E

C3

JMP [адр]

44

MOV B,H

C4

CNZ [адр]

45

MOV B,L

C5

PUSH B

46

MOV B,M

C6

ADI байт

47

MOV B,A

C7

RST 0

48

MOV C,B

C8

RZ

49

MOV C,C

C9

RET

4A

MOV C,D

CA

JZ [адр]

4B

MOV C,E

CB

-

4C

MOV C,H

CC

CZ [адр]

4D

MOV C,L

CD

CALL [адр]

4E

MOV C,M

CE

ACI байт

4F

MOV C,A

CF

RST 1

50

MOV D,B

D0

RNC

51

MOV D,C

D1

POP D

52

MOV D,D

D2

JNC [адр]

53

MOV D,E

D3

OUT байт

54

MOV D,H

D4

CNC [адр]

55

MOV D,L

D5

PUSH D

56

MOV D,M

D6

SUI байт

57

MOV D,A

D7

RST 2

58

MOV E,B

D8

RC

59

MOV E,C

D9

-

5A

MOV E,D

DA

JC [адр]

5B

MOV E,E

DB

IN байт

5C

MOV E,H

DC

CC [адр]

5D

MOV E,L

DD

-

5E

MOV E,M

DE

SBI байт

5F

MOV E,A

DF

RST 3

60

MOV H,B

E0

RPO

61

MOV H,C

E1

POP H

62

MOV H,D

E2

JPO [адр]

63

MOV H,E

E3

XTHL

64

MOV H,H

E4

CPO [адр]

65

MOV H,L

E5

PUSH H

66

MOV H,M

E6

ANI байт

67

MOV H,A

E7

RST 4

68

MOV L,B

E8

RPE

69

MOV L,C

E9

PCHL

6A

MOV L,D

EA

JPE [адр]

6B

MOV L,E

EB

XCHG

6C

MOV L,H

EC

CPE [адр]

6D

MOV L,L

ED

-

6E

MOV L,M

EE

XRI байт

6F

MOV L,F

EF

RST 5

70

MOV M,B

F0

RP

71

MOV M,C

F1

POP PSW

72

MOV M,D

F2

JP [адр]

73

MOV M,E

F3

DI

74

MOV M,H

F4

CP [адр]

75

MOV V,L

F5

PUSH PSW

76

HLT

F6

ORI байт

77

MOV M,A

F7

RST 6

78

MOV A,B

F8

RM

79

MOV A,C

F9

SPHL

7A

MOV A,D

FA

JM [адр]

7B

MOV A,E

FB

EI

7C

MOV A,H

FC

CM [адр]

7D

MOV A,L

FD

-

7E

MOV A,M

FE

CPI байт

7F

MOV A,A

FF

RST 7


Условные обозначения:

[адр] - 16-разрядный адрес;

байт - 8-разрядное число.
Все команды можно разделить на 5 групп:

1.Команды пересылки данных между регистрами или между регистрами и памятью.

2.Арифметические команды (сложение, вычитание, увеличение или уменьшение на 1 данных в регистрах или ячейках памяти).

3.Логические команды (И, ИЛИ, исключающее ИЛИ, сравнение, сдвиг, дополнение числа в регистрах или ячейках памяти).

4.Команды передачи управления (условная и безусловная передача управления, вызов и возврат из подпрограмм).

5.Команды работы со стеком, команды ввода-вывода данных и некоторые другие. Коротко рассмотрим наиболее часто встречающиеся команды.
MOV R1, R2 - команды пересылки данных из регистра в регистр, где R1 и R2 - любые регистры МП.

(R1) <- (R2)

По этой команде содержимое регистра R2 пересылается в регистр R1, причем содержимое регистра R2 сохраняется. При выполнении этих команд флаги не выставляются.
MOV R, M - команды пересылки данных из ячейки памяти, адрес которой хранится в регистровой паре H,L в регистр R , где R - любой регистр МП.

(R) <- [(H)(L)]

Содержимое ячейки памяти не изменяется, флаги не выставляются.

MOV M, R - команды пересылки данных из любого регистра R в ячейку памяти, адрес которой хранится в регистровой паре H,L.

[(H)(L)] <- (R)

Содержимое регистра не изменяется, флаги не выставляются.
MVI R, байт - команды непосредственной загрузки байта (некоторого числа) в любой регистр. Флаги не выставляются.

(R) <- (байт 2).
MVI M, байт - содержимое второго байта команды пересылается в ячейку памяти, адрес которой находится в регистровой паре H,L.

[(H)(L)] <- (байт 2).

LXI rp, 2 байта - прямая загрузка пары регистров (BC,DE,HL или SP).

(rh) <- (байт 3)

(rl) <- (байт 2)

Третий байт команды пересылается в старший регистр (rh), второй - в младший регистр (rl) пары регистров. Флаги не выставляются.
LDA [адр] - прямая загрузка аккумулятора.

(А) <- [(байт 3)(байт 2)]

Содержимое ячейки памяти, адрес которой указан во 2 и 3 байтах команды, загружается в аккумулятор. Во втором байте команды указывается младший байт адреса, в третьем байте команды - старший байт адреса. Флаги не выставляются.
STA [адр] - прямая запись содержимого аккумулятора в память.

[(байт 3)(байт 2)] <- (A)

Содержимое аккумулятора пересылается в ячейку памяти, адрес которой указан во втором и третьем байтах команды. Содержимое аккумулятора не меняется, флаги не выставляются.
ADD R - сложение содержимого аккумулятора и содержимого любого регистра.

(А) <- (A) + (R)

Содержимое регистра R складывается с содержимым аккумулятора. Результат помещаеся в аккумулятор. Устанавливаются все флаги.
ADD M - сложение содержимого аккумулятора и ячейки памяти, адрес которой хранится в регистровой паре H,L.

(A) <- (A) + [(H)(L)]

Результат помещается в аккумулятор. Устанавливаются все флаги.
ADI байт - непосредственное сложение.

(А) <- (А) + байт

Содержимое второго байта команды складывается с содержимым аккумулятора. Результат помещается в аккумулятор. Устанавливаются все флаги.
ANA R - операция “И” над содержимым любого регистра и аккумулятора.

(А) <- (A) ^ (R)

Над содержимым регистра и аккумулятора выполняется операция логическое “И”. Результат помещается в аккумулятор. Устанавливаются все флаги (причем CY сбрасывается, АС - устанавливается).
ANA M - операция “И” над содержимым ячейки памяти и аккумулятора.

(А) <- (A) ^ [(H)(L)]

Над содержимым ячейки памяти, адрес которой хранится в регистровой паре H,L, и аккумулятора выполняется операция логическое “И”. Результат помещается в аккумулятор. Устанавливаются все флаги (причем CY сбрасывается, АС - устанавливается).
ANI байт - непосредственная операция “И”.

(А) <- (А) ^ (байт 2)
Над содержимым второго байта команды и аккумулятора выполняется операция логическое “И”. Результат помещается в аккумулятор. Устанавливаются все флаги (причем CY сбрасывается, АС - устанавливается).

RLC - циклический сдвиг влево.

(An+1) <- (An), (A0) <- (A7), (CY) <- (A7)

Cодержимое аккумулятора сдвигается влево на одну позицию. Содержимое самого старшего бита заносится в младший бит и бит флага переноса. Команда воздействует только на флаг переноса CY.
RRC - циклический сдвиг влево.

(An) <- (An+1), (A7) <- (A0), (CY) <- (A0)

Cодержимое аккумулятора сдвигается вправо на одну позицию. Содержимое самого младшего бита заносится в старший бит и бит флага переноса. Команда воздействует только на флаг переноса CY.
JMP [адр] - переход.

(РС) <- (байт 3)(байт 2)

Управление передается команде, адрес которой указан во 2 и 3 байтах команды перехода. Флаги не устанавливаются.

J (условие) [адр] - условный переход.

(условие):

NZ - не ноль;

Z - ноль;

NC - нет переноса;

C - есть перенос;

РО - нечетный результат;

РЕ - четный результат;

Р - плюс;

М - минус.

Если указанное условие выполняется, то управление передается команде, адрес которой указан во 2 и 3 байтах команды перехода. Если условие не выполняется, то выполняется очередная команда, следующая за командой условного перехода.
HLT - останов. В РС заносится адрес следующей команды. Затем процессор прекращает работу до прихода прерывания. Регистры и флаги не меняются.
NOP - нет операций. В РС заносится адрес следующей команды и МП переходит к ее выполнению. Состояние флагов и регистров не изменяется.
Ниже приведен пример программы для МП системы, изображенной на рис. 11. В начале программируется микросхема КР580ИК55, затем считываются данные из канала А, увеличиваются на 4 и размещаются в 5 ячейках ОЗУ, начиная с номера 8050Н. В данном примере адреса порта ввода-вывода FF00-FF03H.



Адрес размещения в ПЗУ


Код


Команды


Комментарии

0040



MVI A,98H

Загрузка управляющего слова для порта КР580ИК80 в аккумулятор

(канал А - ввод,

канал В - вывод,

канал С0-С3 - вывод,

канал С4-С7 - ввод).


0041

0042

0043

32

03

FF

STA FF03H

Засылка управляющего слова в РУС порта, имеющего адреса FF00-FF03H (адрес РУС - FF03H).

0044

06

MVI B,05H

Засылка числа ячеек (5) в регистр В.

0045

0046

0047



00

FF

LDA FF00H

Ввод информации из канала А порта (имеющего адреса FF00-FF03H) в аккумулятор (адрес канала А - FF00H).

0048

0049

C6

04

ADI 04H

Увеличение содержимого аккумулятора на 1.

004A

004B

004C

21

50

80

LXI H,8050H

Загрузка в регистровую пару HL адреса ячейки ОЗУ 8050Н.

004D

77

MOV M, A

Пересылка содержимого аккумулятора в ячейку ОЗУ, номер которой находится в регистровой паре HL.

004E

23

INX H

Увеличение содержимого регистровой пары HL на 1 (формирование адреса следующей ячейки памяти).

004F

05

DCR B

Проверка, все ли ячейки памяти заполнены (уменьшение содержимого регистра D на 1).


0050

0051

0052

C3

45

00

JNZ 0045H

Переход к команде, находящейся по адресу 0045Н, если не все ячейки заполнены.В противном случае переход к следующей команде.

0053

76

HLT

Остановка работы процессора.

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


Рис.13. Структура МП системы.
В состав системы входят МП, 2 микросхемы ПЗУ, 2 микросхемы ОЗУ, порт ввода-вывода КР580ИК55, к которому подключены ключи, семисегментный индикатор и клавиатура на 16 клавиш, а также дешифраторы ДШ1, ДШ2 и ДШ3 для выбора указанных устройств. В реальных системах для увеличения нагрузочной способности выходы МП работают на ША и ШД через буферные схемы - усилители (буфер ША - БША и буфер ШД - БШД). Единственное их назначение - обеспечить необходимый ток в ША и ШД. В работе узел “процессор” можно не раскрывать до принципиальной схемы.
1.Разработать принципиальную схему МП системы. Тип ПЗУ и ОЗУ для вашего варианта приведен в таблице.


Последняя цифра номера зачетки

Емкость микросхем

ПЗУ,

Кбайт

Емкость микросхем

ОЗУ,

Кбайт

0

0,5

0,5

1

1

0,5

2

2

0,5

3

0,5

1

4

1

1

5

2

1

6

0,5

2

7

1

2

8

2

2

9

4

0,5


Пример микросхем ПЗУ и ОЗУ приведены на рис.5. Микросхемы различной емкости отличаются количеством адресных шин. Например, микросхема емкостью 1 Кбайт имеет 10 адресных входов А0-А9, а 4 Кбайт - 12 адресных входов А0-А11.

Начальные адреса блоков ПЗУ и ОЗУ приведены в таблице.


Предпо-следняя цифра номера зачетки


Начальный

адрес

ПЗУ


Начальный

адрес

ОЗУ


Адрес

порта

ввода-вывода

0




3000H

FF00-FF03H

1




4000H

EF00-EF03H

2




5000H

DF00-DF03H

3

0000Н

6000H

CF00-CF03H

4




7000H

F000-F003H

5




8000H

E000-E003H

6




9000H

D000-D003H

7




A000H

C000-C003H

8




B000H

D800-D803H

9




C000H

F800-F803H


Схема порта ввода-вывода с внешними устройствами приведена на рис.11, возможные варианты дешифраторов - на рис.6,7, подключение микросхем ПЗУ и ОЗУ - на рис.8. Для построения дешифраторов рекомендуется использовать микросхемы серии 555.
2.Написать отдельные программы на языке МП К580, обеспечивающие работу МП системы:

2а).Программу чтения клавиатуры. В результате работы программы в аккумулятор должно заноситься значение нажатой кнопки клавиатуры (“0”.... “F”).

2б).Программу отражения на семисегментном индикаторе номера нажатого ключа Кл0 ... Кл7. Например, при нажатии ключа номер 4 на индикаторе должна появиться цифра 4. При нажатии ключа на соответствующий вход поступает логическая “1”, если ключ не нажат - логический “0”).

2в).Программу размещения числа (две последние цифры номера зачетки) с начального адреса ОЗУ в N ячейках памяти (где N = последним двум числам зачетки). Например, при двух последних числах зачетки 74 необходимо число 74 разместить в 74 ячейках памяти с адреса А000Н.
Содержание отчета:

1.Задание для вашего варианта.

2.Принципиальная схема МП системы.

3.Спецификация (перечень элементов) для принципиальной схемы.

4.Блок-схема программы чтения клавиатуры.

5.Программа чтения клавиатуры на языке МП К580.

6.Блок-схема программы отражения на семисегментном индикаторе номера ключа.

7.Программа отражения на семисегментном индикаторе номера ключа.

8.Блок-схема программы размещения массива данных в ОЗУ.

9.Программа размещения массива данных в ОЗУ.


Литература

1.Микропроцессоры /под ред. Преснухина Л.Н.- Минск:Вышейшая школа, 1987.

2.Гилмор Ч.ВВедение в микропроцессорную технику.-М.:Мир, 1984.

3.Кофрон Дж., Лонг В. Расширение микропроцессорных систем.- М.:Машиностроение, 1987.

4.Микропроцессоры и микропроцессорные комплексы интегральных микросхем.Т.1.-М.:Радио и связь, 1988.

5.Плющаев В.И.Микропроцессорные средства и системы. Методич.пособие.- Горький: Изд.ГИИВТ, 1990.
Оглавление
Введение.............................. 3

Базовая микропроцессорная система..... 4

Шины.................................. 5

Запоминающие устройства............... 8

Порты ввода-вывода....................10

Декодирование адресов.................12

Структура МП К580.....................15

Интерфейсные устройства ввода-вывода

информации............................20

Система команд МП К580................26

Задание для самостоятельной работы....34

Литература............................38






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