Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой проект / курсовой проектZ80.doc
Скачиваний:
118
Добавлен:
21.02.2014
Размер:
1.09 Mб
Скачать

ВВЕДЕНИЕ

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

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

Целью курсового проекта является разработка управляющей микропроцессорной системы, реализующая заданные взаимодействия с объектом управления (ОУ) и разработка программных средств системы, обеспечивающих выполнение заданного алгоритма управления

1 РАСШИФРОВКА И АНАЛИЗ ЗАДАНИЯ

Содержанием курсового проекта является разработка микропроцессорной управляющей микро ЭВМ, реализующие заданные взаимодействия с объектом управления (ОУ) и разработка программных средств системы, обеспечивающих выполнение заданного алгоритма управления.

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

Тип БИС ОЗУ: К537РУ8, тип БИС ПЗУ: К541РЕ1

Алгоритм управления определяется функцией: , с длительностью импульса, и функцией, с длительностью импульсов.

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

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

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

Далее формируется управляющее воздействие , для чего с АЦП вводится значениеи производиться вычисление по формуле:

Значение в виде 8 - разрядного кода выдается на вход АЦП.

После выдачи всех управляющих воздействий проверяется состояние тумблера «СТОП».

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

- отказ источника питания;

- сигнал аварийного датчика ОУ;

- запрос от пульта управления(прерывание оператора);

- запрос от микро ЭВМ верхнего уровня.

Управляющая микро ЭВМ проектируется на базе однокристального МП и включает в себя следующие основные устройства:

- процессорный модуль;

- генератор тактовых импульсов

- память, состоящую из ОЗУ и ПЗУ;

- программируемы системный таймер;

- блок последовательного ввода/вывода для связи с ОУ;

- контроллер прерываний.

Все модули системы объединяются интерфейсом(магистралью), требования к которому определяются заданным типом микропроцессора (микро-ЭВМ).

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

Устройства ввода для связи с ОУ должны обеспечить ввод в ПМ значений x1, x2, x3, x4 двоичных датчиков, а так же 8-разрядных двоичных кодов NU1, NU2, NU3, принимаемых с выходов АЦП. Сигнал датчика аварийной ситуации xa воспринимается только подсистемой прерываний.

Устройства вывода на ОУ должны обеспечить выдачу двоичных управляющих воздействий y1, y2, y3 определенной длительности и кода управляющего напряжения Y4 - 8-разрядного двоичного вектора на вход ЦАП.

Пульт управления должен обеспечивать ввод в ПМ значения 8-разрядной двоичной константы К, ввод двоичного значения сигнала "СТОП", формирование сигнала начальной установки системы, вывод на светодиодную индикацию значений x1, x2, x3, x4, y1, y2, y3, NU1, Y4.

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

Контроллер прерываний обеспечивает фиксацию запросов на прерывания от различных источников и дисциплину обслуживания запросов.

2 Разработка микропроцессорного модуля, интерфейса и уПРОЩЕННОЙ структурной схемы

2.1 Микропроцессор Z80

Микропроцессор Z80 был разработан фирмой Zilog в 1976 году и стал, вероятно, наиболее мощным из 8-разрядных микропроцессоров. Его популярности способствовало сохранение полной совместимости “снизу вверх” на уровне системы команд с микропроцессором 8080 фирмы Intel (советский аналог – КР580ВМ80А), к тому времени ставшим де-факто мировым стандартом на 8-разрядный микропроцессор.

В нашей стране Z-80 известен прежде всего по игровым компьютером Sinclair Spectrum, чрезвычайно популярным во второй половине 1980-х годов. Однако спектр применения этого микропроцессора был намного шире. В частности, именно он является “мозгом” французских противокорабельных ракет “Exocet” (в 1982 году такой ракетой аргентинский истребитель “Мираж” потопил английский эскадренный миноносец “Шеффилд” – один из наиболее современных на тот момент боевых кораблей). На функциональной схеме микропроцессор изображен в виде микросхемы DD3 (приложение А).

2.1.1 Основные характеристики микропроцессора Z80. Z80 является однокристальным микропроцессором третьего поколения, оперирующим 8-разрядными данными и 16-разрядными адресами. Максимальный объём прямо адресуемой памяти и прямо адресуемого пространства ввода вывода – по 64 Кбайта (пространство ввода-вывода микропроцессора 8080 составляет 256 байт).

Система команд микропроцессора Z80 включает 158 инструкций, из которых 78 полностью аналогичны командам микропроцессора 8080, хотя и имеют другие мнемоники. Помимо традиционных для 8-разрядных микропроцессоров арифметико-логических команд, у Z80 имеются инструкции, работавшие с отдельными битами, а также облегчающие обработку символьной информации.

Выпускались микропроцессоры с различными рабочими тактовыми частотами от 2,5 до 8 МГц (у 8080A – 2,5 МГц), что обеспечивало очень высокое по тем временам быстродействие (команда сложения типа “регистр–регистр” выполнялась за 4 такта, что на частоте 8 МГц составляло 2 млн. операций в секунду). Советский аналог Z80 – микропроцессор КР1858ВМ1 – работает на тактовой частоте 4 МГц.

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

Z80 поддерживает три схемы организации обработки прерываний, в том числе режим совместимости с микропроцессором 8080. Правда, для согласования микропроцессора Z80 с контроллером прерываний 8259 фирмы Intel требуются дополнительные схемы, т.е. режим совместимости оказался не совсем “совместимым”.

Наконец, на самом кристалле микропроцессора реализован счётчик регенерации динамической памяти, что позволяет резко сократить количество деталей в простых микрокомпьютерах по сравнению с 8080.

2.1.2 Структурная схема и ее описание. Микропроцессор Z80 выпускался в 40-выводном DIP-корпусе, наиболее распространённом для восьмиразрядных микропроцессоров. В отличие от микропроцессора 8080 фирмы Intel, Z80 для своей работы не требует специфических дополнительных схем (двухфазного тактового генератора и системного контроллера), что значительно упрощает конструкцию процессорного модуля. Кроме того, для работы Z80 требует единственное напряжение питания +5 В вместо трёх напряжений для 8080 (+5, –5 и +12 В).

Организация МП Z80 отмечена следующими основными особенностями:

  • трехшинной структурой с шинами адреса, данных и управления;

  • наличием регистровой памяти, образованной программно доступными общими и специализированными регистрами, а также регистрами вре­менного хранения;

  • наличием двух (главного и вспомогательного) аккумуляторов, флаговых регистров и наборов РОН;

  • магистральным принципом связей, реализованным в виде связываю­щей основные узлы МП двунаправленной шины данных, имеющей ширину, равную длине слов, обрабатываемых микропроцессором (8 разрядов);

  • наличием 16-разрядной шины адреса обеспечивающей возможность прямой адресации любого байта в памяти емкостью 64 Кбайт; Z80 имеет два набора восьмиразрядных регистров (А - L) и столько же флаговых регистров (F). В каждый момент активен и программно доступен только один набор. Переключаются они программным путем, при этом содержимое регистров сохраняется.

Кроме того, Z80 имеет 16-разрядные регистры: счетчик команд (PC) и указатель стека (SP). Обычно ЭВМ имеет различные адресные пространства памяти и регистров МП, а иногда -отдельные адресные пространства регистров устройств ввода-вывода и внутренней памяти.

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

  1. прямой, когда исполнительный адрес берется непосредственно из команды или вычисляется с использованием значения, указанного в команде, и содержимого какого-либо регистра (прямая адресация, регистровая, базо­вая, индексная и т.д.);

  2. косвенный, который предполагает, что в команде содержится значе­ние косвенного адреса, т.е. адреса ячейки памяти, в которой находится окон­чательный исполнительный адрес (косвенная адресация). Z80 применялся в машинах Sinclair ZX, Sinclair Spectrum, Tandy TRS80.

В состав Z80 входят: устройство управления, регистр команд, про­граммный счетчик, 24 регистра пользователя и арифметико-логическое уст­ройство.

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

- Регистр команд. Термин "регистр" используется для описания простой ячейки памяти внутри Z80. Регистр содержит 8 бит (1 байт). В Z80 имеется большой блок регистров, и пересылка байтов данных к регистрам и от них является простейшей и наиболее важной чертой программирования в машинных кодах.

Вектор прерывания 1

Регенерация памяти R

8 бит

Индексный регистр 1Х

Индексный регистр 1Y

Указатель стека SP

Программный счетчик PC


16 бит Основной набор регистров Дополнительный набор регистров

Аккумулятор А

S

Z

H

N

C

B

C

D

E

H

L

Аккумулятор А

S

Z

H

N

C

B

C

D

E

H

L


8бит 8бит 8 бит 8 бит

Рисунок 1- Микропроцессор Z80 фирмы Zilog.

- Программный счетчик

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

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

Действие программного счетчика очень похоже на переменную РРС интерпретатора Бэйсик, которая содержит номер текущей строки Бэйсик и также наращивается.

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

Каждый банк состоит из следующих регистров:

– аккумулятора A;

– регистра флагов F;

– регистров общего назначения B, C, D, E, H и L.

Регистры второго банка принято обозначать с помощью знака апострофа: A', B' и т.д. Функционально регистры обеих групп совершенно идентичны.

Подавляющее число инструкций микропроцессора оперирует с содержимым регистров первого (основного) банка. Имеются две инструкции (EX AF,AF' и EXX), которые позволяют обменять местами содержимое банков. Суммарное время выполнения этих двух команд составляет 8 тактов; время, необходимое для сохранения тех же самых регистров в стеке с помощью команд PUSH (как это традиционно делается в обработчиках прерывания для процессора 8080), составляет 44 такта; для восстановления содержимого регистров из стека командами POP требуется 40 тактов.

  1. Аккумулятор A

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

  1. Регистры общего назначения

Используются вместе с аккумулятором в байтовых арифметико-логических операциях, храня второй операнд. Кроме того, имеются инструкции инкремента и декремента содержимого этих регистров. Регистр B, помимо всего прочего, используется в качестве счётчика в инструкции организации циклов DJNZ.

Регистры общего назначения могут логически объединяться в три пары BC, DE и HL, применяющиеся для хранения и обработки 16-разрядных адресов и операндов (старший байт находится соответственно в регистре B, D и H, а младший – в C, E и L). Особенно часто это свойство используется для регистровой пары HL, поскольку система команд включает полный набор арифметико-логических операций между содержимым аккумулятора и ячейкой памяти, адрес которой находится в этой регистровой паре (в системе команд микропроцессора 8080 для обозначения такого операнда использовался “псевдорегистр” M). Правда, арифметико-логические операции возможны и над операндами, адреса которых хранятся в индексных регистрах, но коды этих команд занимают 3 байта памяти вместо одного, а для их выполнения требуется 19 тактов вместо семи.

Адрес в регистровой паре BC может применяться в командах пересылки 8-разрядных операндов, а также в операциях ввода-вывода. Кроме того, содержимое регистровой пары BC используется в качестве счётчика в инструкциях обработки блоков данных. Адрес в регистровой паре DE используется в командах пересылки 8-разрядных операндов и обработки блоков данных.

  1. Регистр флагов F

Состоит из нескольких отдельных разрядов, имеющих самостоятельное значение. Он имеет следующий формат:

S

Z

H

P/V

N

C

Рисунок 2 – Регистр флагов МП Z80

Назначение разрядов регистра флагов следующее.

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

Z (разряд 6) – флаг нуля. Устанавливается, когда при выполнении операции был получен нулевой результат.

Разряд 5 не используется.

H (разряд 4) – флаг вспомогательного переноса. Устанавливается, когда операция сложения или вычитания вызывает соответственно перенос из 3-го разряда в 4-й или заём из 4-го разряда в 3-й. Используется при выполнении операций десятичной коррекции инструкцией DAA.

Разряд 3 не используется.

P/V (разряд 2) – этот флаг в зависимости от операции является либо признаком переполнения (V), либо признаком чётного результата (P). В первом случае он устанавливается, если при выполнении операции произошло переполнение, и сбрасывается при отсутствии такового. Во втором случае он устанавливается, если в результате присутствует чётное число единичных разрядов, и сбрасывается, если единиц нечётное число.

N (разряд 1) – флаг операции вычитания. Устанавливается, если предыдущая операция была операцией вычитания, и сбрасывается в противном случае. Используется инструкцией DAA при выполнении десятичной коррекции результата.

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

При выполнении некоторых инструкций те или иные флаги регистра F устанавливаются или сбрасываются по особым правилам. Сведения об имеющихся особенностях приводятся в описании системы команд.

4) Индексные регистры

Два 16-разрядных индексных регистра IX и IY используются в некоторых инструкциях для адресации операндов в памяти. Адрес ячейки памяти вычисляется путём сложения содержимого индексного регистра с 8-разрядной константой d, являющейся частью кода команды. Первоначальное содержимое индексного регистра при этом не изменяется.

5) Регистр R- регенерации памяти. Он является простым счетчиком, который увеличивается каждый раз при выполнении цикла регенерации. Значение в регистре циклически изменяется от 0 до 255.

- Счетчик команд

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

- Указатель стека

16-разрядный регистр указателя стека SP содержит адрес текущей вершины стека. Как и в большинстве современных вычислительных систем, стек микропроцессора Z80 растёт вниз. При записи в стек содержимое SP уменьшается, и по полученному адресу выполняется запись. При выборке из стека после чтения данных содержимое SP увеличивается.

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

- Арифметико-логическое устройство

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

2.1.3 Цоколевка и описание выводов. Условно-графическое обозначение микропроцессора Z80, приведено на рисунке 2.

Микропроцессор Z80 – это микросхема с 40 выводами, пронумерованные от 1 до 40. Рассмотрим функции выводов.

Рисунок 3 – условно-графическое изображение микропроцессора Z80

- Шина адреса

Микропроцессор Z80 имеет 16 адресных выходов A15–A0 (номера выводов 5–1, 40–30 соответственно). Активный уровень – высокий; линии имеют три состояния.

- Шина данных

У микропроцессора имеется 8 двунаправленных выводов с тремя состояниями D7–D0 (номера выводов 13, 10, 9, 7, 8, 12, 15 и 14 соответственно). Активный уровень – высокий.

- Шина синхронизации и управления

Шина синхронизации и управления микропроцессора Z80 включает 14 линий.

Вход C (вывод 6) – сигнал синхронизации. Когда синхроимпульсы вырабатываются ТТЛ-схемами, рекомендуется подключать линию C к напряжению +5 В через резистор сопротивлением 330 Ом.

Вход INT (вывод 16) – сигнал запроса маскируемого прерывания. Активный уровень низкий. Допускается соединение нескольких сигналов запросов прерываний от различных устройств по схеме “монтажное И”.

Вход NMI (вывод 17) – сигнал запроса немаскируемого прерывания. Активный уровень низкий.

Выход HALT (вывод 18) – сигнал перехода процессора в состояние останова в ответ на выполнение инструкции HALT. Активный уровень низкий. Хотя выполнение инструкций прекращается до поступления запроса прерывания, циклы регенерации памяти выполняются по-прежнему.

Выход с тремя состояниями MREQ (вывод 19) – сигнал обращения к памяти. Активный уровень низкий. Выдаётся при любом обращении к памяти для чтения или записи.

Выход с тремя состояниями IORQ (вывод 20) – сигнал обращения к устройству ввода-вывода. Активный уровень низкий. Выдаётся при любом обращении к портам ввода-вывода, а также в цикле подтверждения запроса маскируемого прерывания.

Выход с тремя состояниями RD (вывод 21) – сигнал чтения. Активный уровень низкий. Выдаётся при обращении к памяти или порту ввода-вывода для получения информации.

Выход с тремя состояниями WR (вывод 22) – сигнал записи. Активный уровень низкий. Выдаётся при обращении к памяти или порту ввода-вывода для записи информации.

Выход BUSAK (вывод 23) – сигнал разрешения захвата шины. Активный уровень низкий. Выдаётся микропроцессором, когда он разрешает какому-либо устройству захватить шину микропроцессорной системы, при этом все выходы микропроцессора с тремя состояниями переходят в состояние высокого импеданса.

Вход WAIT (вывод 24) – сигнал запроса ожидания. Активный уровень низкий. Блок памяти или внешнее устройство, к которому микропроцессор производит обращение, выдаёт этот сигнал, если требуется “растянуть” цикл чтения или записи информации на несколько тактов. Этот сигнал удерживается устройством в активном состоянии, пока оно не будет готово выполнить запрошенную операцию обмена данными.

Вход BUSRQ (вывод 25) – сигнал запроса захвата шины. Активный уровень низкий. Устройство выдаёт этот сигнал, когда хочет выполнить цикл обмена данными с памятью или другим устройством без участия микропроцессора. Когда микропроцессор разрешает захват шины, он выдаёт сигнал BUSAK#.

Вход RESET (вывод 26) – сигнал сброса процессора. Активный уровень низкий. Этот сигнал переводит процессор в начальное состояние: в регистр счётчика команд PC заносится нулевое значение; флаги разрешения маскируемых прерываний и режима обработки маскируемых прерываний IFF1, IFF2, IMFa и IMFb сбрасываются; регистры I и R очищаются. Сигнал RESET должен оставаться активным в течение не меньше 3 тактов.

Выход с тремя состояниями M1 (вывод 27) – сигнал машинного цикла 1. Активный уровень низкий. Выдаётся, когда микропроцессор выполняет выборку первого байта кода команды или подтверждает запрос маскируемого прерывания.

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

Соседние файлы в папке курсовой проект