Министерство образования и науки Российской Федерации ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательн...
313 downloads
311 Views
1MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования и науки Российской Федерации ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
Государственное образовательное учреждение высшего профессионального образования СЕВЕРО-ЗАПАДНЫЙ ГОСУДАРСТВЕННЫЙ ЗАОЧНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра радиотехники
ЦИФРОВЫЕ УСТРОЙСТВА И МИКРОПРОЦЕССОРЫ Рабочая программа Задания на контрольную работу Методические указания к выполнению контрольной работы Задания на курсовой проект Методические указания к выполнению курсового проекта Ф а к у л ь т е т радиоэлектроники Направление и специальность подготовки дипломированных специалистов: направление – 654200 – радиотехника специальность – 200700 – радиотехника Направление подготовки бакалавров – 552500 – радиотехника
САНКТ- ПЕТЕРБУРГ 2005
Утверждено редакционно-издательским советом университета УДК 621.374(07): 681.39 Цифровые устройства и микропроцессоры. Рабочая программа, задания на контрольную работу, методические указания к выполнению контрольной работы, задания на курсовой проект, методические указания к выполнению курсового проекта. – СПб: СЗТУ, 2005, – 52 с. В методическом сборнике приведены: рабочая программа дисциплины «Цифровые устройства и микропроцессоры», перечень практических и лабораторных работ, тематический план лекций для студентов очно-заочной формы обучения. Представлены варианты заданий на контрольную работу и методические указания к ее выполнению, а также даны варианты заданий на курсовой проект и методические указания к его выполнению с достаточно обширными приложениями. Рекомендуемая литература охватывает все темы рабочей программы. Настоящая рабочая программа разработана на основании Государственного образовательного стандарта к минимуму содержания и уровню подготовки выпускника по специальности 200700 – «Радиотехника», ОПД.Ф.03.10 «Цифровые устройства и микропроцессоры». Рассмотрено и утверждено кафедрой радиотехники 15 ноября 2004 года, одобре6но методической комиссией факультета радиоэлектроники 22 ноября 2004 года. Р е ц е н з е н т ы: кафедра радиотехники СЗТУ (зав. кафедрой Г. И. Худяков, д-р техн. наук, проф.); Л. А. Решетов, канд. техн. наук, доц. СПб Госуниверситета аэрокосмического приборостроения.
С о с т а в и т е л и: О. Г. Антонов, канд. техн. наук, доц. Е. Ю. Мигунова, ст. препод.
© Антонов О. Г., Мигунова Е. Ю., 2005 © Северо-Западный государственный заочный технический университет, 2005
ПРЕДИСЛОВИЕ Цель преподавания дисциплины. Дисциплина «Цифровые устройства и микропроцессоры» охватывает широкий круг схемотехнических вопросов проектирования функциональных элементов и узлов современных радиотехнических систем. Большое внимание при этом уделяется вопросам разработки устройств на современной элементной базе. Активное владение методами проектирования современных цифровых устройств необходимо в первую очередь инженеру, специализирующемуся в области схемотехники. Вместе с тем, знакомство с различными типами цифровых и микропроцессорных устройств, их назначением и характеристиками является необходимым условием успешной деятельности специалиста в любой, даже не связанной с вопросами схемотехники, области радиотехники. Задача изучения дисциплины. В результате изучения дисциплины «Цифровые устройства и микропроцессоры» студенты должны получить знания в области современной элементной базы цифровых и микропроцессорных устройств, активно овладеть методикой проектирования аппаратных и программных средств микропроцессорных устройств. Изучение этой дисциплины позволит студенту по техническому заданию проектировать микроконтроллеры на современных микропроцессорных больших интегральных схемах и составлять программы на языке АССЕМБЛЕР, а также иметь представление о путях развития современной микроэлектроники. Рекомендации по изучению дисциплины. Дисциплина «Цифровые устройства и микропроцессоры» изучается в двух семестрах. Первая часть под условным названием «Цифровые устройства» изучается в 5-м семестре, а вторая часть «Микропроцессоры» – в 6-м. Изложение учебного материала базируется на знаниях, полученных студентами при изучении математики, физики, основ теории цепей, радиотехнических цепей и сигналов и электроники.
I. РАБОЧАЯ ПРОГРАММА ( 170 часов ) 1. ЦИФРОВЫЕ УСТРОЙСТВА ( 85 часов ) Введение (1 час) [1], с. 3 … 5 Предмет и задачи дисциплины «Цифровые устройства и микропроцессоры». Значение раздела «Цифровые устройства» для изучения всей дисциплины. Общее состояние отечественной и зарубежной цифровой микросхемотехники. 3
Характеристики и параметры цифровых сигналов. Методы синтеза импульсных сигналов произвольной формы. 1.1. Основы алгебры логики и переключательных функций (17 часов) [1], с. 15 … 40 или [3], с. 10 … 70 Операции алгебры логики (булевой алгебры). Понятие переключательной функции, сингулярные и бинарные функции. Основные теоремы, аксиомы и тождества, используемые для упрощения логических выражений. Принцип двойственности. Теорема де Моргана. Способы представления функций: словесное описание, таблица истинности, алгебраическое выражение (структурная формула). Переход от структурной формулы к логической схеме и обратно. Логические базисы, реализующие функционально полную систему. Логические функции: отрицание дизъюнкции и отрицание конъюнкции. Понятие об универсальных логических элементах. Минимизация логических функций. Понятие о минтермах и макстермах. Совершенная дизъюнктивная нормальная форма (СДНФ). Совершенная конъюнктивная нормальная форма (СКНФ). Основные методы минимизации (получение тупиковой формы). Алгебраический метод. Метод карт Карно-Вейча. Недоопределенные функции. Табличный метод Квайна-МакКласки. 1.2.
Основы цифровой техники (10 часов) [1], с. 5 … 14 или [3], с. 72 … 96
Представление целых и дробных чисел в разных системах счисления. Двоичная, восьмеричная, десятичная и 16-ричная системы счисления. Перевод чисел из одной системы счисления в другую. Двоично-десятичная система кодирования чисел. Наиболее распространенные виды двоично-десятичного кодирования: двоично-десятичный код 8-4-2-1, код Айкена (2-4-2-1), код «с избытком 3», код «два из пяти», код Джонсона и код Грея. Формы представления чисел. Числа с фиксированной точкой. Представление знака числа. Числа с плавающей точкой. Понятие об обратном и дополнительном кодах. 1.3. Комбинационные устройства (10 часов) [1], с. 40 … 55; [3], с. 110 … 128; 143 … 145 Задачи синтеза комбинационного устройства. Устройство неравнозначности (сумма по модулю два) и его свойства. Устройство равнозначности. Устройство «Запрет». Схемы сравнения двоичных чисел. Драйверы и шинные формирователи.
4
Дешифраторы, демультиплексоры, мультиплексоры и шифраторы. Полные и неполные дешифраторы (декодеры). Демультиплексоры, их назначение, вопросы синтеза и каскадирования. Шифраторы и кодопреобразователи. Арифметико-логические устройства. Полусумматоры и полные сумматоры. Умножители двоичных чисел на двоичных сумматорах. 1.4. Цифровые автоматы (15 часов) [1], с. 55 … 74 или [3], с. 98 … 142 Потенциальные и импульсные сигналы. Операторы перехода. Основные тождества, связывающие потенциальные и импульсные сигналы. Модели асинхронных и синхронных потенциальных автоматов. Синтез схем. Триггеры. Асинхронные потенциальные триггеры RS-типа с инверсными и прямыми входами. Триггеры типа E и JK. Синтез асинхронных потенциальных триггеров. Функции возбуждения. Счетный режим. Т-триггер. Синхронные триггеры. Синхронные триггеры типа RSC, типа JK и типа D. MSтриггер. Функция возбуждения синхронных триггеров и общая методика их синтеза. Счетный режим в триггерах типа JK и D. Сдвигающие регистры. Классификация сдвигающих регистров. Простые сдвигающие регистры. Реверсивные сдвигающие регистры. Универсальные сдвигающие регистры. Счетчики. Двоичные и двоично-десятичные счетчики. Каскадирование счетчиков. Реверсивные счетчики, особенности их каскадирования. Программируемые счетчики. Счетчики на сдвигающих регистрах. Счетчики с произвольным модулем счета. Счетчики Джонсона. 1.5. Аналого-цифровые и цифроаналоговые преобразователи (10 часов) [1], с. 74 … 77 или [3], с. 156 … 172 Аналого-цифровые преобразователи (АЦП). Классификация АЦП по времени преобразования. АЦП параллельного типа. АЦП с промежуточным преобразованием напряжения во временной интервал. Принципы конвейерной обработки в АЦП. Точность работы АЦП и факторы, влияющие на точность преобразования. Цифроаналоговые преобразователи (ЦАП). Принципы работы ЦАП. Использование матрицы R-2R. Методы умножения аналоговых сигналов. Получение среднеквадратичного значения сигнала. 1.6.
Полупроводниковые запоминающие устройства (10 часов) [2], с. 57 … 83 или [3], с. 173 … 181
Основные параметры запоминающих устройств (ЗУ). Адресация, информационная емкость, разрядность. Единицы для выражения значений 5
емкости ЗУ. Быстродействие ЗУ. Понятие о времени выборки и цикле записи. Характеристика ЗУ по потребляемой мощности, набору питающих напряжений и времени хранения информации. Оперативные запоминающие устройства (ОЗУ). Типовая структура ОЗУ матричного вида. Управляющие цепи для обеспечения режима хранения, чтения и записи информации. Определение числа строк и столбцов матрицы элементов памяти. Условное обозначение микросхемы ОЗУ. Временные диаграммы сигналов. Схема наращивания разрядности. Динамические ОЗУ. Постоянные запоминающие устройства (ПЗУ). Классификация ПЗУ по способу занесения информации. ПЗУ, программируемые маской на предприятии-изготовителе. ПЗУ, программируемые пользователем. Перепрограммируемые ПЗУ (ППЗУ). Способы стирания информации. Перечень лабораторных работ по разделу «Цифровые устройства» (12 часов) 1. Исследование триггеров типа RS с инверсными и прямыми входами. 2. Исследование триггеров типа JK и D. 3. Исследование пересчетного устройства с последовательным переносом. 4. Исследование пересчетного устройства с параллельным переносом. 5. Исследование счетчика импульсов с модулем счета, не равным целой степени числа 2. ТЕМАТИЧЕСКИЙ ПЛАН ЛЕКЦИЙ ПО РАЗДЕЛУ «ЦИФРОВЫЕ УСТРОЙСТВА» для студентов очно-заочной формы обучения (12 часов) 1. Введение. Предмет курса. Характеристики и параметры импульсных и цифровых сигналов. Понятие о положительной и отрицательной логике при кодировании цифровых сигналов. Основы алгебры логики. Понятие переключательной функции. Основные операции, теоремы и тождества (без доказательства) ………………………………………………………………...4 часа 2. Основные методы минимизации логических функций (получение тупиковой формы): алгебраический метод; графический метод Карно-Вейча; табличный метод Квайна-МакКласки……………………………………………………..4 часа 3. Комбинационные устройства и цифровые автоматы (регистры, триггеры, двоичные счетчики с последовательным и параллельным переносом и с произвольным модулем счета) ………………………………………………..4 часа
6
ТЕСТОВЫЕ ВОПРОСЫ к разделу «Цифровые устройства» 1. В чем заключается смысл правила де Моргана? 2. Что такое мажоритарный элемент «2 из 3-х»? 3. Приведите пример задания логической функции в первой стандартной форме (СДНФ). 4. Чем отличается запись логической функции в форме СКНФ? 5. Какая система логических элементов называется функционально полной? 6. Как прейти от логической функции к логической схеме? 7. Какой логический элемент называется «универсальным»? 8. Какие типовые приемы можно использовать при алгебраической минимизации логических функций? 9. В чем заключается графический метод минимизации Карно – Вейча? В чем особенность минимизации по Квайну – Мак Класки? 10. В чем смысл позитивной и негативной логики? 11. Что такое позиционная система счисления? 12. Напишите общий алгоритм представления числа в какой-либо системе счисления. 13. В чем особенность двоичной системы счисления? 14. Какие существуют способы двоичного кодирования десятичных цифр? 15. В чем особенность 16-ричной системы счисления? 16. В чем особенность применения BCD-кода при кодировании десятичных чисел? 17. Как производится перевод из 16-ричной системы счисления в двоичную с помощью BCD-кода? 18. Как осуществить быстрый перевод десятичного числа в двоичное или 16ричное методом деления (схема Горнера)? 19. Дайте понятие о формах представления числа с фиксированной и плавающей точкой. 20. Что такое дополнительный код. Как он используется в арифметических операциях? 21. Что такое комбинационные устройства? 22. Приведите примеры комбинационных устройств. 23. Дайте определение и начертите схему устройства неравнозначности. 24. Начертите таблицу истинности устройства равнозначности. 25. Дайте словесное описание, начертите таблицу истинности и функциональную схему полусумматора. 26. Начертите схему полного сумматора. 27. Что такое дешифратор? Как работает схема простейшего дешифратора? 28. Каково назначение мультиплексора? Опишите его работу. 29. Как работает демультиплексор? 30. Начертите схему цифрового компаратора и опишите его работу. 7
31. Что такое цифровой автомат? 32. Приведите аналитическое выражение, описывающее работу цифрового автомата. 33. Чем определяется быстродействие конечного автомата? 34. Опишите работу триггера как конечного автомата (последовательностного устройства). 35. Приведите таблицу переключений простейшего асинхронного триггера. 36. Начертите карту Карно для RS-триггера с инверсными входами. 37. Покажите, как получить уравнение возбуждения для этого триггера. 38. В чем особенность Е-триггера? 39. Как построить обобщенную карту Карно для этого типа триггера? 40. Покажите, как построить таблицу переключений для JK- триггера? 41. Что такое синхронный триггер? 42. Приведите схему и временные диаграммы для синхронного RSтриггера? 43. Приведите логическое уравнение для D-триггера. 44. В чем особенность MS-триггера? 45. Дайте определение параллельного и последовательного регистров. 46. Для чего в регистрах применяется синхронный принцип работы? 47. В чем особенность построения регистров сдвига влево и вправо, а также реверсивного регистра? 48. Как классифицируются счетчики импульсов? 49. Приведите схему двоичного счетчика с последовательным переносом. 50. Для чего применяются счетчики с параллельным переносом? Приведите схему на логических элементах. 51. Как строятся счетчики с произвольным модулем счета? Приведите пример. 52. Приведите пример построения декадного счетчика на микросхеме средней степени интеграции (например, К155ИЕ5). 53. Приведите классификацию аналого-цифровых преобразователей (АЦП) по времени преобразования. 54. Как работает АЦП с промежуточным преобразованием напряжения во временной интервал? 55. Что влияет на точность преобразования в АЦП ? 56. Каковы основные принципы работы цифроаналоговых преобразователей (ЦАП)? 57. Для чего применяются матрицы R-2R в ЦАП? 58. Каковы основные параметры запоминающих устройств (ЗУ)? 59. Какова типовая структура оперативного запоминающего устройства (ОЗУ)? 60. Приведите классификацию постоянных запоминающих устройств (ПЗУ)?
8
2. МИКРОПРОЦЕССОРЫ (85 часов) Введение (1 час) [2], с. 2 … 4 или [3], с. 229 … 233 Общие вопросы построения микропроцессоров (МП) при использовании различных микропроцессорных комплектов. Микропроцессорные комплекты, выпускаемые промышленностью, их назначение и оценка, стандартизованная система обозначений. МП, выпускаемые зарубежными фирмами INTEL, ZILOG, MOTOROLA. 2.1. Особенности архитектуры микропроцессоров (12 часов) [2], с. 4 … 15; 16 … 38; [5], с. 55 … 60; или [3], с. 233 … 256 Трехшинная архитектура микропроцессорной системы. Структурная схема микропроцессорной системы с трехшинной архитектурой, ее основные узлы: центральный процессор, память и внешние устройства. Назначение шин адреса, данных и управления. Основные сигналы управления операциями ввода/вывода. Однокристальные МП. Структурная схема однокристальных МП на примере МП КР580ВМ80. Основные узлы МП, буферы шин адреса и данных, регистры общего назначения (РОН), регистр команд, программный счетчик, схема синхронизации и управления, арифметико-логическое устройство (АЛУ), указатель стека. Однокристальные микроЭВМ. Структурная схема однокристальных микроЭВМ и ее основные узлы: регистры общего назначения (РОН), внутреннее оперативное запоминающее устройство и стек, внутреннее постоянное запоминающее устройство, программный счетчик, схема синхронизации и управления, АЛУ, внутренний таймер, интерфейс ввода/вывода. Программируемый ввод/вывод (ВВ). Программируемый ВВ с квитированием. ВВ по прерыванию. ВВ с прямым доступом к памяти. 2.2.
Аппаратные средства микропроцессорных систем (10 часов) [2], с. 4 … 15; 16 … 38; [5], с. 55 … 60 или [3], с. 233 … 256
Генераторы, системные контроллеры и шинные формирователи. Генератор тактовых импульсов КР580ГФ24. Структурная схема генератора. Схема подключения генератора к центральному процессорному элементу. Формирование сигнала СТРОБ СОСТОЯНИЯ. Использование сигналов СБРОС и ГОТОВНОСТЬ. Установка МП в режим ожидания на заданное время. Обеспечение шагового режима. Системный контроллер КР580ВК28/38. Структурная схема системного контроллера, его назначение и принцип действия. 9
Шинные формирователи КР580ВА86/87. Назначение, структурная схема и принцип действия. Интерфейс ввода/вывода. Интерфейс параллельного КР580ВВ55 и последовательного КР580ВВ51 ввода/вывода. Структурная схема программируемого интерфейса. 2.3. Общие вопросы программного обеспечения микропроцессорных систем на примере МП типа КР580ВМ80А (12 часов) [2], с. 57 … 80 или [8], с. 5 … 37 Программное обеспечение МП с фиксированным набором команд. Программная модель МП типа КР580ВМ80А. Внутренние регистры: регистры данных, регистры управления. Внешние регистры: память, средства ввода/вывода. Принцип программного объединения 8-ми битных РОН в 16-ти битные регистровые пары. H-пара как основной указатель памяти. Режимы адресации и система команд МПК КР580. Прямая адресация. Непосредственная адресация. Регистровая адресация. Косвенная адресация. Возможность программного осуществления индексной адресации. Системы команд. Разделение системы команд МП на группы в соответствии с их функциональным назначением. Группы команд пересылки, арифметических и логических операций, передачи управления и группа специальных команд. Программирование на машинном языке. Формат бланка при программировании на машинном языке. 2.4. Особенности программирования на языке АССЕМБЛЕРА МПК КР580 (10 часов) [2], с. 62 … 78 или [8], с. 63 … 85 Поля ассемблерной строки. Стандартный формат бланка для ассемблерных программ. Поле метки. Примеры допустимых и недопустимых меток. Поле мнемоники. Длина поля мнемоники. Однозначное соответствие мнемоники и машинного кода операции. Понятие о мнемонике как о ключевом слове АССЕМБЛЕРА. Поле операнда. Адреса памяти как операнды. Команды, имеющие пустое поле операнда. Поле комментария. Обязательность разделителя. Директивы АССЕМБЛЕРА. Назначение директив и псевдокоманд. Особенности содержимого полей АССЕМБЛЕРА при наличии директив. Формат директив ORG, END, EQU, SET, IF, ENDIF, DB, DW, DS. Макрокоманды. Применение макрокоманд в прикладных программах. Макрокоманды с формальными параметрами. Определение макрокоманды. Формат макрокоманды. Формат обращения к макрокоманде. Понятие о расширении макрокоманды.
10
2.5. Структуры данных и организация подпрограмм в МПК КР580 (12 часов) [2], с. 80 … 83; или [8], с. 93 … 110; с. 135 … 154 Организация массивов, очередей, стеков. Понятие одномерного массива. Определение адреса элемента массива. Двумерный массив, способ размещения в памяти. Многомерные массивы, способ обработки. Структура данных в виде очереди. Понятие длины очереди. Использование очереди при вводе и выводе символьных данных. Принцип организации очереди. Кольцевая организация очереди. Стек как специальная разновидность одномерного массива. Принцип загрузки элементов данных в стек и извлечения их из стека. Организация стека с двумя концами (полки) по принципу LIFO. Подпрограммы как средство модульного программирования. Общая организация подпрограмм. Подпрограмма как законченный сегмент (модуль) программы. Порядок вызова подпрограммы и возврата в основную программу. Вложенные подпрограммы. Иерархическая организация подпрограмм. Особенности программирования на языках высокого уровня. Положительные и отрицательные качества языков высокого уровня при программировании МП систем. Понятие о компромиссах между аппаратными и программными средствами. 2.6. Особенности архитектуры и программирования однокристального микроконтроллера КМ1816ВЕ48 (12 часов) [2], с. 107 … 115 или [3], с. 275 … 285; с. 296 … 301 Особенности архитектуры микроконтроллера КМ1816ВЕ48. Структурная схема, функциональное назначение выводов. Внутренняя двунаправленная разделяемая 8-битная шина, связывающая все устройства БИС: Арифметико-логическое устройство (АЛУ). Устройство управления. Память и порты ввода/вывода информации. Назначение в составе аппаратных средств микроконтроллера стираемого перепрограммируемого ПЗУ (СППЗУ) программ емкостью 1 Кбайт, возможность пределов его расширения. Назначение регистрового ОЗУ данных. Обеспечение прямой адресации внешнего ОЗУ. Реализация в МК 1816 системы векторного прерывания от двух источников: внутреннего таймера-счетчика событий и внешнего источника. Особенности программирования КМ1816ВЕ48. Формат команд. Способы адресации в командах микроконтроллера КМ1816. Особенности языка АССЕМБЛЕРА для КМ1816. Команды, выполняемые за один машинный цикл и за два машинных цикла. Классификация групп команд по функциональному признаку. Применение специальных символов #, @ при написании программ. Особенности команд операций с таймером.
11
Перечень практических работ по разделу «Микропроцессоры» (4 часа) 1. Поля ассемблерной строки. Директивы языка АССЕМБЛЕРА. Макрокоманды: определение, обращение и расширение. ……… 2 часа 2. Организация массивов, очередей, стеков, таблиц и подпрограмм …………………………………………….2 часа Перечень лабораторных работ по разделу « Микропроцессоры» (12 часов) 1. Исследование работы контроллера К1-20 в режиме монитора. 2. Исследование работы контроллера К1-20 при выполнении простых программ. 3. Исследование микропроцессорной системы на базе учебной микроЭВМ УМПК 80. 4. Исследование микроконтроллера КМ1816ВЕ48 при выполнении простых программ. 5. Исследование микроконтроллера КМ1816ВЕ48 при выполнении арифметических операций с двухбайтными числами. ТЕМАТИЧЕСКИЙ ПЛАН ЛЕКЦИЙ ПО РАЗДЕЛУ «МИКРОПРОЦЕССОРЫ» для студентов очно - заочной формы обучения (12 часов) 1. Особенности архитектуры МП. Трехшинная архитектура МП системы на примере МП КР580ВМ80 (аналог i8080 фирмы INTEL) …… 4 часа 2. Общие вопросы программного обеспечения МП систем. Особенности применения языка АССЕМБЛЕРА для МП КР580ВМ80А …… 4 часа 3.Особенности архитектуры и программирования микроконтроллера КМ1816ВЕ48 (аналог i8748 фирмы INTEL) …………………… 4 часа
ТЕСТОВЫЕ ВОПРОСЫ к разделу «Микропроцессоры» 1. 2. 3.
Что подразумевается под термином «микропроцессор»? Где применяются микропроцессоры? Что называется микро-ЭВМ, или микрокомпьютером? 12
4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Что называется микропроцессорной системой? Какое устройство относится к классу микроконтроллеров (МК)? Что понимается под термином «архитектура микропроцессора»? Что нужно понимать под универсальностью МП? Чем обеспечивается высокая производительность МП? Какие показатели можно отнести к основным характеристикам МП? Что входит в понятие быстродействие МП? Изобразите структурную схему МП системы на базе МПК КР580. Каково назначение центрального процессорного элемента (ЦПЭ) КР580ВМ80А? Что такое системная шина как элемент МПК КР580? Какова направленность шины адреса в МПК КР580? Какова направленность шины данных в МПК КР580? Какова направленность шины управления в МПК КР580? Что понимается под адресным пространством МП КР580ВМ80А? Что такое средства ввода/вывода ПМС на базе комплекта КР580? Изобразите структурную схему ЦПЭ комплекта КР580. Перечислите сигналы управления ЦПЭ КР580ВМ80А. Перечислите регистры общего назначения ЦПЭ К580ВМ80А, доступные программисту. Как они адресуются? Что такое управление захватом шин и какие имеются виды обмена МП с внешними устройствами? Что такое слово состояния МП? Какое применяется условное обозначение слова состояния? Какие существуют типы машинных циклов? Как выглядит программная модель МП системы с точки зрения программиста? Перечислите основные режимы адресации в МП К580ВМ80. Что такое прямая адресация? Что такое непосредственная адресация? Что такое регистровая адресация? Что такое косвенная адресация? Перечислите основные типы команд в МПК КР580. Каково назначение и как работает стек в МПК КР580? Какие регистры относятся к регистрам общего назначения (РОН)? На какие группы можно разделить систему команд МПК КР580? Как производятся операции умножения и деления в МПК КР580? Как выглядит формат бланка при программировании на машинном языке МПК КР580? Каковы требования к формату бланка при программировании на языке АССЕМБЛЕРА? Приведите примеры допустимых и недопустимых меток. Каковы требования к полю мнемоники? Каковы требования к содержимому поля операнда в МПК КР580? 13
42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
Какие команды имеют пустое поле операнда? Приведите пример использования адреса памяти как операнда. Какие требования к полю комментария в языке АССЕМБЛЕРА? Что такое директивы АССЕМБЛЕРА? Что значит термин «аппаратные средства» МПК КР580? Начертите структурную схему генератора тактовых импульсов КР580ГФ24. Каково назначение системного контроллера КР580ВК28/38? Что такое интерфейс ввода/вывода? Объясните работу логической схемы параллельного интерфейса КР580ВВ55. В чем заключается особенность архитектуры микроконтроллера КМ1816ВЕ48? Начертите основные элементы структурной схемы ОЭВМ КМ1816. Каково назначение входного сигнала ПРОГ/СТБВВ? Каков объем СППЗУ программ в микроконтроллере КМ1816? Каков объем ОЗУ данных для этого микроконтроллера? Назовите элементы слова состояния КМ1816. Какие признаки фиксируются в регистре флагов КМ1816? Какой формат команд используется в КМ1816? Как группируются команды КМ1816 по функциональному признаку? Как производится операция вычитания в микроконтроллере КМ1816?
14
ЛИТЕРАТУРА ОСНОВНАЯ: 1. Антонов О. Г. , Бабкин А. Ф., Голод О. С. Цифровые устройства и микропроцессоры. Цифровые устройства: Конспект лекций. – СПб.: СЗПИ, 1995. – 82 с. 2. Антонов О. Г. , Бабкин А. Ф. Цифровые устройства и микропроцессоры. Микропроцессоры: Конспект лекций. СПб.: СЗПИ, 1997. – 85 с. 3. Калабеков Б. А. Цифровые устройства и микропроцессорные системы: Учебник для техникумов связи. – М.: Горячая линия – Телеком, 2002. – 336 с. 4. Проектирование импульсных и цифровых устройств радиотехнических систем: Учеб. пособие для радиотехнич. спец. вузов / Под ред. Ю. М. Казаринова. – М.: Высш. шк., 1985, – 319 с. 5. Калабеков Б. А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учеб. пособие для вузов. – М.: Радио и связь, 1988. – 368 с. ДОПОЛНИТЕЛЬНАЯ: 6. Гольденберг Л. М. и др. Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учеб. пособие для вузов. – М.: Радио и связь, 1992. – 256 с. 7. Каган Б. М., Сташин В. В. Основы проектирования микропроцессорных устройств автоматики. – М.: Энергоатомиздат, 1987. – 304 с. 8. Григорьев В. Л. Программное обеспечение микропроцессорных систем. – М.: Энергоатомиздат, 1983. – 208 с. СПРАВОЧНОГО ХАРАКТЕРА: 9. Интегральные микросхемы: Справочник / Под ред. Б. В. Тарабрина. – М.: Энергоатомиздат, 1985. – 528 с. 10. Хвощ С. Т., Варлинский Н. Н., Попов Е. А. Микропроцессоры и микроЭВМ. Справочник. – М.: Машиностроение, 1987. – 640 с.
15
II. ЗАДАНИЯ НА КОНТРОЛЬНУЮ РАБОТУ По изучаемому материалу дисциплины «Цифровые устройства и микропроцессоры» учебным графиком предусмотрено выполнение одной контрольной работы (в 5-ом семестре), которая состоит из двух заданий. Номер варианта каждого задания выбирается из таблиц по двум последним цифрам шифра студента, чем обеспечивается многовариантность заданий. З а д а н и е 1. Логическая функция 4-х булевых переменных x1, x2, x3, x4 имеет истинное значение на тех наборах входных переменных, которые эквивалентны десятичным числам, указанным в табл. 1, т. е. заданы в числовом виде. Требуется: 1.1. Построить таблицу истинности для полного набора функций 4-х указанных переменных и определить из нее СДНФ, удовлетворяющую условиям задачи. 1.2. Минимизировать полученную функцию графическим методом Карно-Вейча или табличным – Квайна-МакКласки. 1.3. На основании полученной тупиковой формы переключательной функции построить логическую схему на микросхемах средней степени интеграции. Таблица 1 Последняя цифра шифра Пред.пос л.цифра 0 1 2 3 4 шифра 0 0, 3, 7, 10, 2, 5, 8, 12, 0, 2, 3, 6, 1, 4, 8, 10, 0, 1, 2, 4, 11, 13, 15 13, 14, 15 7, 12, 13 11, 12, 14, 15 5, 6, 11, 14 1 0, 1, 5, 7, 1, 2, 6, 8, 2, 3, 4, 6, 0, 7, 9, 10, 2, 3, 6, 7, 9, 10, 13, 10, 14, 15 10, 11, 13 13, 14, 15 9, 10, 11, 12 2 2, 4, 5, 6, 3, 4, 6, 8, 4, 7, 8, 10, 1, 4, 5, 6, 0, 2, 3, 5, 7, 8, 15 11, 12, 14 12, 14, 15 11, 12, 14, 8, 10, 13 3 2,3, 6, 7 10, 1, 3, 6, 9, 0, 1, 7, 8, 2, 3, 5, 10, 0, 1, 3, 6, 8, 11, 12, 13 11, 12, 13, 10, 12, 14 11, 12, 13 9, 12, 13 4 0, 1, 10, 11, 0, 1, 2, 4, 1,4,8,10,11, 0, 3, 6, 7, 1, 3, 6, 8, 12, 14, 15 5, 6, 11, 14 12, 14, 15 8, 14, 15 9, 12, 13 5 3, 4, 5, 6, 1, 2, 5, 7, 0, 3, 7, 8, 1, 3, 5, 6, 0, 3, 4, 10, 7, 8, 9, 11 10, 13, 15 11,12,14,15 8, 9, 10, 13 12,13,14,15 6 2, 3, 5, 7, 3, 4, 5, 6, 0, 1, 4, 5, 1, 4, 6, 11, 0, 2, 4, 6, 9, 10, 11 7, 8, 9, 11 6, 11, 14 12, 14, 15 11, 13, 15 7 0, 2, 4, 6, 0, 1, 2, 5, 2, 3, 6, 7, 0, 4, 5, 6, 2, 3, 4, 5, 7, 9, 13 7, 9, 13, 14 8, 11, 12 7, 9, 14 12, 13, 14 8 3, 6, 10, 11, 1, 3, 4, 6, 0, 2, 7, 8, 2, 5, 6, 8, 9, 4, 6, 8, 9, 12,13,14,15 7, 8, 11, 15 9, 10, 15 10, 11, 12 11, 13, 15 9 1,5,8,10,11, 0, 2, 3, 7, 2, 3, 4, 5, 0, 2, 4, 8, 1, 2, 3, 4, 12, 14, 15 9,11,12,15 8, 10, 11 10, 13, 15 5, 9, 10, 13
16
Предпосл цифра ш. 5 0 0, 1, 5, 6, 8, 9, 14 1 3, 4, 6, 9, 11, 12, 13 2 4, 5, 8, 10, 11, 12, 13 3 1, 3, 6, 7, 8, 10, 15 4 0, 1, 3, 6, 8, 9, 12, 13 5 0, 1, 6, 7, 8, 9, 15 6 2, 3, 4, 10, 11, 13, 15 7 0, 4, 5, 6, 7, 8, 11, 14 8 1, 2, 3, 4, 6, 7, 11, 15 9 0, 2, 4, 6, 7, 9, 15
Продолжение таблицы 1 Последняя цифра шифра 6 7 8 9 1, 3, 6, 7, 0, 1, 4, 5, 0, 1, 3, 5, 0, 1, 3, 8, 9, 11, 12 11, 14, 15, 7, 8, 12, 14 9, 13, 15 0, 2, 4, 5, 3, 4, 5, 7, 1, 2, 4, 10, 1, 2, 4, 5, 6, 13, 14 10, 12, 13 12,13,14,15 6,9,10,13 0, 2, 4, 6, 2, 6, 9, 10, 0, 1, 4, 5, 0, 6, 9, 11, 9, 11, 12 11, 13, 15 6, 7, 9, 12 13, 14, 15 0, 1, 2, 6, 0,2, 5, 7, 3, 4, 5, 10, 1, 2, 4, 5, 7, 9, 14, 15 8, 10, 14 12, 13, 14 6,9,10, 13 1, 5, 7, 8, 0, 1, 6, 7, 1, 6, 7, 9, 0,1,2,9,12, 10, 12, 14 8, 9, 12, 13 10, 14, 15 13, 14, 15 0, 1, 2, 9, 2, 3, 6, 7, 5, 7, 8, 9, 0, 1, 2, 4, 12,13,14, 15 9, 11, 12 10, 13, 15 6, 11, 15 1, 3, 5, 7, 0, 3, 7, 8, 0, 2, 4, 6, 2, 3, 6, 7, 9, 12, 14 11,12,14, 15 10, 13, 15 9,10,11,12 0, 1, 2, 4, 4, 5, 9, 10, 1, 2, 6, 8, 0, 3, 4, 5, 5, 6, 11, 14 11, 14, 15 9, 12, 13 11, 12, 13 1, 4, 10, 11, 0, 1, 4, 5, 2, 3, 6, 7, 1,5,8,9,10, 12, 14, 15 6, 10, 11 8, 9, 13 11,12,13 1, 2, 4, 6, 4, 6, 9, 10, 1, 3, 5, 7, 0, 2, 5, 7, 7, 9, 13 11, 12, 14 8, 9, 14 10, 13, 15
З а д а н и е 2. Выполнить следующие операции по преобразованию систем счисления: 2.1. Число, содержащее целую и дробную части, заданное в форме с фиксированной запятой (точкой) в десятичной системе счисления (табл. 2), перевести в числа, представленные в двоичной системе счисления, в двоичнодесятичной системе (код 8421) и в 16-ричной системе счисления. 2.2. Число в 16-ричной системе счисления (табл. 3) представить в двоично-десятичной системе счисления (код 8421) и в десятичной системе счисления. 2.3. Числа, представленные в табл. 4 в десятичной системе счисления, перевести в двоично-десятичную систему (код 8421), сложить алгебраически, предварительно представив отрицательные числа в дополнительном коде, а результат – в десятичной системе счисления. 2.4. Число из табл. 2 представить в форме с плавающей запятой (точкой) с точностью до четвертого десятичного знака после запятой.
17
Таблица 2 Предпоследняя цифра шифра
0 1 2 3 4 5 6 7 8 9 Предпоследняя цифра шифра
0 1 2 3 4 5 6 7 8 9
0 371.135 157.913 245.678 236.711 214.145 345.810 235.912 346.721 361.123 158.214
Последняя цифра шифра 1 2 3 258.341 236.712 148.124 126.145 234.611 791.314 346.112 478.245 145.124 139.123 178.124 235.132 124.561 148.245 367.415 125.131 378.121 135.810 345.801 145.614 461.245 125.314 236.811 456.714 134.115 279.103 568.297 237.125 345.281 248.135
5 156.814 346.213 458.112 136.101 368.219 167.891 234.135 456.811 236.711 467.159
Продолжение таблицы 2 Последняя цифра шифра 6 7 8 9 136.112 145.114 135.121 138.315 245.314 345.213 241.413 124.101 247.211 269.131 679.451 691.314 126.141 257.101 345.131 245.913 678.121 157.123 679.141 129.141 129.213 367.112 789.131 246.211 135.121 378.121 246.135 236.712 124.411 459.145 126.812 451.121 141.415 145.610 367.913 589.123 246.191 691.214 357.149 571.532
4 124.261 236.910 235.113 136.891 368.123 341.213 246.131 234.232 689.435 123.101
Таблица 3 Предпоследняя цифра шифра
0 1 2 3 4 5 6 7 8 9
0
1
2
2FH 2EH 2DH 9CH 9DH 9EH A6H A7H A8H B0H B1H B2H BAH BBH BCH 4AH 5BH 6CH E1H E0H DFH EBH EAH E9H F5H FF4H F3H FFH FEH FDH
Последняя цифра шифра 3 4 5 6 3CH 9FH A9H B3H BDH 7DH DEH E8H F2H FCH
18
3AH A0H AAH B4H BEH 8EH DDH E7H F1H FBH
3BH A1H ABH B5H BFH 9FH DCH E6H F0H FAH
41H A2H ACH B6H 96H 77H DBH E5H EFH F9H
7
8
9
57H A3H ADH B7H 97H 78H DAH E4H EEH F8H
A8H A4H AEH B8H 98H 79H D9H E3H EDH F7H
B7H A5H AFH B9H 99H 85H D8H E2H ECH F6H
Таблица 4 Предпоследняя цифра шифра
0 1 2 3 4 5 6 7 8 9
0
1
2
-26 54 -28 56 24 -14 56 -91 -36 89 49 -75 45 -23 -33 48 63 -23 -27 55
-54 26 -56 28 91 -74 49 36 34 -65 48 -28 47 -25 -35 49 65 -25 -28 56
56 -28 57 -79 81 45 58 -28 24 -46 47 -23 49 -99 -37 51 67 -24 -29 57
Последняя цифра шифра 3 4 5 6 -60 89 -61 88 92 -44 64 -32 84 -28 45 -22 51 -73 -39 53 68 -23 -30 58
6328 64 -27 -56 48 91 -34 71 -28 43 -21 53 -48 63 -39 73 -28 -31 59
59 48 51 49 -36 37 45 -26 91 -27 41 20 43 -29 39 -53 -73 28 33 -60
-67 28 -68 27 39 -49 23 -28 98 -25 39 -18 -43 29 37 -51 -68 23 34 -61
7
8
9
69 -24 69 -25 56 -37 25 75 97 -23 37 -25 -53 48 37 -50 -67 24 35 -60
-73 89 -75 85 81 -41 71 -24 95 -24 38 -85 -51 73 35 -47 -65 25 37 -62
-33 85 85 34 34 -72 99 -26 92 -25 43 -84 -49 99 39 -23 -69 23 39 -64
III. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ При выполнении Задания 1 рекомендуется пользоваться конспектом лекций [1], с. 30 … 36, где рассматриваются вопросы минимизации логической функции 4-х переменных, заданной числовым способом. Следует также обратить внимание на то, что в табл. 1 логическая функция, подлежащая минимизации, задана в дизъюнктивной форме. Студенту предоставляется возможность самому решить, какой метод минимизации выбрать при решении этой задачи. Следует только помнить, что табличный метод Квайна-МакКласки обычно используется при минимизации логических функций, содержащих больше пяти переменных. При построении логической схемы на основании полученной тупиковой формы следует использовать однотипные логические элементы средней степени интеграции, которые можно выбрать из справочника [9]. 19
При выполнении Задания 2 следует учитывать, что вопросы, относящиеся к преобразованию чисел из одной системы счисления в другую достаточно подробно освещены в [1]. Эти же вопросы несколько полнее изложены в [5]. При выполнении арифметических операций следует обратить внимание на суммирование чисел, представленных в двоично-десятичном коде 8421. В этом коде суммирование выполняется в два этапа [6]. На первом этапе вычисляется предварительная сумма Sп. Здесь суммирование производится по обычным правилам двоичной арифметики, но при этом следует сделать несколько уточнений и дополнений: если в i-ой тетраде предварительной суммы Sпi образуется естественный перенос, то он учитывается в следующей (i + 1) – ой тетраде; если в i-ой тетраде естественного переноса нет, но Sпi≥ 10, то считается, что есть искусственный перенос и его следует учитывать в (i + 1) – ой тетраде; при Sпi< 10 переноса нет. На втором этапе каждая тетрада Sпi корректируется по следующему правилу: если Sпi ≥ 10, т. е. в данной тетраде образовался естественный или искусственный перенос, то к ней прибавляется число 6, а получающийся при этом перенос не учитывается. Сказанное поясним на примере. Естественный е и перенос обозначим 1 , искусственный – 1 . Предположим, что требуется сложить два десятичных числа: 0.597 и 0.346. Слева показано сложение обычным способом – в столбик, а справа все цифры представлены в коде 8421: и и 1 1 0.597 0.0101 1001 0111 + 0.346 + 0.0011 0100 0110 0.943 0.1001 1110 1101 Предварительная сумма + 0000 0110 0110 Коррекция 0.1001 0100 0011 Сумма Второй пример показывает, как образуется естественный перенос. Сложим еще два числа 0.098 и 0.729: и е 1 1 0.098 0.0000 1001 1000 + 0.729 + 0.0111 0010 1001 0.827 0.1000 1100 0001 Предварительная сумма + 0.0000 0110 0110 Коррекция 0.1000 0010 0111 Сумма Представление чисел в форме с плавающей запятой (точкой) достаточно подробно поясняется в [1] с. 12 … 13. Эти же вопросы изложены в [5] с. 13…16. Отвечая на этот пункт З а д а н и я 2, следует обратить внимание на точность представления чисел с плавающей точкой, что поясняется в [6]. 20
IV. ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ 1. Тематика курсового проекта Объектом курсового проекта является микропроцессорное устройство обработки информации (МПУОИ) на базе однокристального МП комплекта серии КР580 (аналог фирмы INTEL i8080), реализующее заданную функцию обработки радиотехнических сигналов. 2. Задание и общие требования к выполнению В процессе выполнения курсового проекта студент должен: 1) составить схему электрическую структурную; 2) составить схему электрическую функциональную; 3) составить алгоритм решения поставленной задачи; 4) составить программу на языке ассемблера и в машинных кодах. Исходные данные для проектирования МПУОИ приведены в табл. 5 и в табл. 6. Варианты задания выбираются по двум последним цифрам шифра студента. Выходной сигнал V(t) W(t) P(t) Q(t) M(t) Выходной сигнал V(t) W(t) P(t) Q(t) M(t)
Последняя цифра шифра 0, 1 2, 3 4, 5 6, 7 8, 9 Последняя цифра шифра 0, 1 2, 3 4, 5 6, 7 8, 9
Таблица 5 Входные сигналы (предпоследняя цифра шифра) 0, 1 2, 3 4, 5 x2(t)+ky2(t)+y(t-N) x2(t)+ky(t)+z(t-N) kx(t)y(t)+z(t-N) y2(t)-ky(t-N) ky2(t)-x(t-N)
kx2(t)+Ny(t) kx2(t)+Ny(t) kz(t)y(t-N) x(t)+kz2(t-N) Nx(t)y(t)+kz(t-N)
kx(t)z(t)+y(t+N) Nx2(t)+ky(t) 2,5x2(t)+ky(t-N) Nx(t)+ky2(t) kx(t)z(t)+y(t-N)
Продолжение таблицы 5 Входные сигналы (предпоследняя цифра шифра) 6, 7 8, 9 kx(t)y(t)+Nz(t) 2,5x2(t)-ky(t)+z(t-N) (x(t)-y(t))2-kz(t-N) Nx(t)y(t)+0,5kz(t-N) 0,5ky(t-N)-x2(t)
21
x2(t)+ky(t)+z(t-N) 3,5kx(t)-8Ny(t-N)z(t) z2(t)-2,5ky(t-N) kx(t)y(t-N)+0,5z2(t) x2(t)- ky(t-N)+3,5z(t)
Таблица 6 Предпоследняя цифра шифра Параметры 0 1 2 3 4 5 6 7 8 9 Константа k 0,5 9,5 6,5 4,0 5,5 2,5 8,5 3,5 7,0 4,5 Константа N 4 6 8 10 7 9 5 6 8 3 Длина входных сигналов (x, y, 1 1 1 1 1 1 1 1 1 1 z), байт Длина выходных сигналов (V, 2 2 2 2 2 2 2 2 2 2 W, P, Q, M), байт Пояснительная записка к курсовому проекту должна содержать: а) титульный лист, на котором указывается название темы курсового проекта, фамилия, имя и отчество студента, его шифр и т. д. (см. Приложение 1); б) задание на курсовой проект (см. Приложение 2); в) графический материал: схемы (структурная и функциональная) и алгоритм решения задачи; г) программа на языке ассемблера и в машинных кодах.
V. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОГО ПРОЕКТА 1. Требования к блок-схеме алгоритма При вычерчивании блок-схемы алгоритма следует использовать графические символы согласно ГОСТ 19.003-80, представленные в табл.7. Структура блок-схем, а также содержание записей, помещаемых внутри блоков или рядом с ними, не регламентируется. Но при этом необходимо придерживаться следующих правил и рекомендаций (ГОСТ 19.002-80): 1. Записи в блок-схемах должны быть ясными и однозначно определять, какой этап решения задачи данный блок отражает. 2. Номер блока ставится слева вверху в разрыве контура символа. 3. Нормативным направлением линий считается направление сверху вниз и слева направо. 4. Линии потока проводятся только по вертикали и горизонтали и подводятся к осевым линиям символов. Для линий, связывающих два элемента блок-схемы, допускается не более трех операторов. 5. Линии потока можно прерывать. Для указания связи между прерываниями используется символ «соединитель».
22
2. Составление блок-схемы алгоритма и программы
При составлении блок-схемы алгоритма заданный алгоритм решения задачи представляется графически в виде отдельных геометрических фигур (табл. 3), взаимное расположение которых отображает последовательность решения задач на проектируемом МПУОИ. Составленная блок-схема алгоритма должна сопровождаться подробным описанием действий, выполняемых в каждом блоке. Для составления блок-схемы алгоритма необходимо изучить особенности системы команд того микропроцессорного комплекта (МПК), на базе которого строится МПУОИ. В частности, для курсового проекта на базе МПК КР580, необходимо изучить структуру микропроцессора КР580ВМ80 и его систему команд, а также директивы ассемблера. Система команд на ассемблере приведена в Приложении 3, а директивы — в Приложении 4. Система команд в машинных кодах (16-ричные коды) — в Приложении 5 (перевод команд ассемблера в команды в машинных кодах). Из существующих способов написания программы решения задачи — на машинном языке, на языке ассемблера и на языках высокого уровня — в курсовом проекте необходимо представить программу на языке ассемблера и на машинном языке (в машинных кодах). Процедура перевода программы с языка ассемблера в машинные коды изложена в Приложении 7. Рекомендуется использовать стандартные приемы программирования: организация счета, временной задержки, сложения и вычитания, умножения и деления и др., описания которых даны в Приложении 6. Стандартные участки необходимо оформить в виде подпрограмм. Разработка рабочей программы должна сопровождаться пояснениями (комментариями), которые пишутся в поле комментария ассемблерной строки, но игнорируются ассемблирующей программой при трансляции в машинные коды. Пример оформления представлен ниже, в главе 3, где рассматривается пример выполнения курсового проекта с написанием программы на языке ассемблера и в машинных кодах. 3. Пример выполнения курсового проекта 3.1. Общая постановка задачи Пусть алгоритм работы устройства задан уравнением: V(t)=kx2(t)+y(t-N), где k — заданная константа, например, k=2,5; x(t) — сигнал на одном входе (порт X — 1 байт); y(t-N) — сигнал, поступающий по второму входу и отстающий от x(t) на N=10 тактов (порт Y — 1 байт); V(t) — выходной сигнал, выводится через порт V (2 байта). Для хранения коэффициента k можно отвести ячейку ОЗУ или формировать этот коэффициент в самой программе, что обычно предпочтительней.
23
Таблица 7 Наименование 1. Процесс
2. Ввод-вывод
3. Решение
4. Пуск-останов
5. Соединитель
Обозначения и размеры Функция (a/b=1/1,5, где a — ширина, b — длина) Выполнение операции b (группы операций), в результате которой изменяется значение, a форма представления или расположение данных. b Преобразование данных в форму, пригодную для a обработки (ввод), или отображение результатов обработки (вывод). b Выбор направлений выполнения алгоритма или a программы в зависимости от некоторых переменных условий. b Начало, конец, прерывание процесса обработки а данных или выполнения программы. 0,5а Указание связи между прерванными линиями потока, связывающими символы.
Для хранения N слов, считанных в моменты времени, следующие за ti после поступления y(ti -N), целесообразно организовать очередь. Внутри ОЗУ выделяется некоторая область, выполняющая функции стека. Как обычно, регистровая пара HL будет адресным индексным регистром при косвенной адресации ПЗУ и ОЗУ. Различие в ПЗУ и ОЗУ при обращении к памяти будет заключаться в установке адресной линии A15 в 1 или 0. Например, при A15=0 производится выборка из ПЗУ, а при A15=1 — обращение к ОЗУ. Если в проектируемом устройстве содержится не более восьми портов для подключения внешних устройств ввода/вывода, то каждому порту выделяется индивидуальная адресная линия, что соответствует использованию кода «1 из 8-ми» для кодирования портов ввода/вывода: PORT 1 — 00000001 (01H) PORT 5 — 00010000 (10H=16) PORT 2 — 00000010 (02H) PORT 6 — 00100000 (20H=32) PORT 3 — 00000100 (04H) PORT 7 — 01000000 (40H=64) PORT 4 — 00001000 (08H) PORT 8 — 10000000 (80H=128) 24
3.2. Распределение памяти Весь объем адресуемой памяти (64К) с адресами 0000H…FFFFH, можно распределить следующим образом. Для основной программы будем использовать адреса, начиная с 0000H до FFFFH. Для инициализации портов ввода-вывода зададим их адреса: порт ввода переменной x(t) — 01H; порт ввода y(t-N) — 02H; порт вывода V(t) — 04H (применяется код «1 из 8-ми»). 3.3. Составление структурной схемы алгоритма решения задачи и программ В соответствии со словесным описанием составляем структурную схему алгоритма, на основании которой будет разрабатываться программа. Следует придерживаться естественного хода решения, т. е. линейной структуры с необходимыми метками и циклами (рис. 1). Программы на ассемблере и в машинных кодах, соответствующие этому алгоритму, приведены в табл. 4. В приведенном алгоритме решения задачи константа k формируется программным путем, с помощью сдвигов влево, вправо и суммирования результатов. Константа N, а также остальные константы записываются в 16ричном коде. Следует обратить внимание, что приступать к выполнению курсового проекта имеет смысл только после изучения теоретических вопросов, посвященных программному обеспечению (программированию на языке ассемблера и в машинных кодах). При этом нужно ориентироваться на рекомендуемую учебную литературу.
25
7
Начало 1 Инициализа ция портов ввода2 Организация стека
3 Организация и обнуление очереди 4 Ввод y(t-N) 5 Ввод x(t)
7 Вычисление kx2(t)
8 y(t-N)≥0
ДА
10 Вычисление V(t)
11 Вывод V(t)
6 Вычисление kx(t)
Конец
7
Рис.1. Блок-схема алгоритма
26
НЕТ 9 y(t-N) в дополнитель ном коде
Программа вычислений на языке ассемблера и в машинных кодах Таблица 8 Адрес
Машинный код
0000 0003
31 00 84 21 0A 80
0006 0007
AF 77
0008
3E 01
000A 000B 000C
2D BD C2 06 00
000F
21 0A 80
0012
AF
0013
DB 02
0015 0016
77 F5
0017 0018 0019 001A
00 00 00 00
Метка
МнемониОперанд Комментарий ка Блок начальных директив ORG 0000H ;Директива начального адре;са ;Инициализация портов ввоPORTX EQU 01H ;да переменных x(t), y(t), PORTY EQU 02H ;y(t-N) и вывода V(t) PORTV EQU 04H Организация стека и очереди M0: LXI SP,8400H ;Организация стека в ОЗУ LXI H,800AH ;Загрузка адреса указателя ;начала очереди в ОЗУ ;(N=0АН) M1: XRA A ;Обнуление аккумулятора MOV M,A ;Обнуление ячейки очереди ;(адр. HL) MVI A,01H ;Номер ячейки конца оче;реди: 8001Н; счет ячеек в ;регистре L DCR L ;Адрес следующей ячейки CMP L ;(A)-(L)=0? JNZ M1 ;Переход на метку М1, если ;это не последняя ячейка ;очереди LXI H,800AH ;Повторная загрузка указа;теля начала очереди Ввод переменной y(t-N) LINE: XRA A ;Подготовка к вводу пере;менной IN PORTY ;Ввод y(t-N); параметр в ак;кумуляторе MOV M,A ;Данные — в начале очереди PUSH PSW ;y(t-N) — в стеке для хра;нения NOP ;Пустые операции для уве;личения длительности такта NOP ;ввода NOP NOP
27
Продолжение таблицы 8 Адрес
Машинный код
001B
AF
001C
3E 01
001E
2D
001F
BD
0020
C2 12 00
0023
AF
0024 0026 0027 0028 0029 002A
DB 01 00 00 00 00 21 00 00
002D 002F 0030 0031 0032
16 00 5A 5F 07 A7
0033
57
0034
AF
0035 0036
7B 0F
0037
A7
0038
82
Метка
Мнемоника XRA
Операнд Комментарий A
;Подготовка к вводу в акку;мулятор содержимого по;следней ячейки очереди MVI A,01H ;Указатель последней ячей;ки очереди — в рег. А DCR L ;Переход на следующую ;ячейку CMP L ;Последняя ли ячейка: ;(A)-(L)=0? JNZ LINE ;Если результат не нулевой, ;то переход на LINE XRA A ;Подготовка к вводу пере;менной x(t) Ввод и обработка x(t) IN PORTX ;x(t) — в аккумуляторе NOP ;Пустые операции для уве;личения длительности такта NOP ;ввода NOP NOP LXI H,0000H ;Обнуление регистровой па;ры H, L MVI D,00H ;Обнуление регистров обще;го назначения D и E MOV E,D MOV E,A ;Копирование x(t) в рег. Е RLC ;2x(t) — в аккумуляторе ANA A ;Сброс флага переноса: ;CY=0 MOV D,A ;Временное запоминание ;2x(t) в регистре D XRA A ;Подготовка к записи в акку;мулятор x(t) MOV A,E ;x(t) — в аккумуляторе RRC ;Получение 0,5x(t) в аккуму;ляторе ANA A ;Сброс флага переноса: ;CY=0 ADD D ;(A)+(D)=2,5x(t) в аккумуля;торе
28
Продолжение таблицы 8 Адрес
Машинный код
Метка
0039
CD 6C 00
Мнемоника CALL
003C
AF
XRA
003D 003E 003F 0040 0041 0042
57 5A 42 48 54 5D
0043 0044
F1 BF
0045
FA 4B 00
0048
F2 57 00
004B 004C
2F 3C
004D
47
004E
09
004F 0050 0051 0053 0054 0055 0057
AF 7D D3 04 AF 7C D3 04 AF
Операнд MULT
A
Комментарий ;Вызов подпрограммы умно;жения однобайтных слов; ;множимое: 2,5x(t) — в рег. ;А; множитель: x(t) — в рег. ;Е; произведение: 2,5x2(t) — ;в H, L ;Подготовка к обнулению ;РОНов ;Обнуление регистра D ;Обнуление регистра E ;Обнуление регистров B, C
MOV D,A MOV E,D MOV B,D MOV C,B MOV D,H ;Запоминание 2,5x2(t) в ре;гистровой паре D, E MOV E,L Обработка логического блока POP PSW ;y(t-N) — в аккумуляторе CMP A ;Знак результата — в ре;гистре F JM M2 ;При S=1 переход на метку ;М2 JP M3 ;При S=0 переход на метку ;М3 M2: CMA ;INV(y(t-N)) INR A ;INV(y(t-N))+1 — дополни;тельный код MOV B,A ;Дополнительный код в ре;гистровой паре B, C DAD B ;Сложение двухбайтовых ;слов. Результат — в H, L Вывод результата XRA A ;Подготовка к выводу млад;шего байта MOV A,L OUT PORTV ;Вывод младшего байта XRA A ;Подготовка к выводу стар;шего байта MOV A,H OUT PORTV ;Вывод старшего байта M3: XRA A ;Процедура вывода млад;шего байта при S=0
29
Продолжение таблицы 8 Адрес
Машинный код
Метка
0058 0059 005A
67 6F EB
Мнемоника MOV MOV XCHG
005B 005E
3A 0A 80 57
LDA MOV
800AH D,A
005F
19
DAD
D
0060 0061 0062 0064 0065 0066 0068
AF 7D D3 04 AF 7C D3 04 C3 00 00
XRA MOV OUT XRA MOV OUT JMP
A A,L PORTV A A,H PORTV M0
006B 006C
76 21 00 00
006F
06 08
0071
29
0072
07
RLC
0073
D2 77 00
JNC
M5
0076
19
DAD
D
0077 0078
05 C2 71 00
DCR JNZ
B M4
HLT MULT: LXI
M4:
M5:
Операнд H,A L,A
H,0000H
MVI
B,08H
DAD
H
30
Комментарий ;Обнуление регистровой па;ры H, L ;2,5x2(t) из регистровой па;ры (D, E) поменять местами ;с содержимым (H, L). Об;нуление регистровой пары ;D, E ;y(t-N) — в аккумуляторе ;y(t-N) — в регистровой ;паре D, E для суммирова;ния ;Сложение двухбайтовых ;слов. Результат — в H, L ;Подготовка к выводу млад;шего байта ;Вывод младшего байта ;Подготовка к выводу стар;шего байта ;Вывод старшего байта ;Безусловный переход к но;вому циклу вычислений ;Останов ;Начало подпрограммы ум;ножения. Сброс регистра ;суммы частичных произве;дений ;Начальная установка счет;чика циклов ;Логический сдвиг H, L на ;разряд влево ;Очередной разряд множи;теля с переносом ;Переход на метку М5, если ;след. разряд нуль ;Добавление множимого к ;частичной сумме ;Счет циклов ;Переход, если вычисления ;не закончены
Продолжение таблицы 8 Адрес
Машинный код
007B
C9
Метка
Мнемоника RET
Операнд
Комментарий ;Возврат в основную про;грамму ;Директива достижения кон;ца программы
END
Пояснения к примеру выполнения курсового проекта Блок начальных директив не обязателен. Он обычно вводится для удобства программирования. Адреса портов — 01H, 02H, 04H, 08H и т. д. Таким образом, для каждого порта выделяется отдельная линия. Стек и очередь требуются в том случае, когда одна из переменных зависит от t-N. Если все переменные зависят от t, стек и очередь не нужны. При наличии переменной, зависящей от t-N, сначала вводятся все значения этой переменной при t…t-N в виде очереди. Затем данные из очереди пересылаются в стек. При этом последним элементом оказывается значение переменной при t-N, которое извлекается первым и используется в вычислениях. Организация стека и очереди является подготовкой для ввода соответствующей переменной, зависящей от t-N (в примере — y(t-N)). В команде LXI H, 800AH младший байт операнда равен значению N (10=0AH). Значение константы N, как и других констант, должно быть представлено в 16ричной системе. Команды NOP используются для согласования быстродействующего микропроцессора с медленным устройством ввода. Так как микросхемы интерфейса ввода-вывода и периферийные устройства не заданы, количество этих команд не принципиально. Умножение переменной на константу выполняется с помощью операций циклического сдвига RLC (умножение на 2) и RRC (умножение на 0,5). После каждой операции требуется команда ANA — сброс флага переноса, т. к. команды циклического сдвига влияют на этот флаг. Затем полученные результаты суммируются соответствующим образом. Для перемножения переменных и возведения в квадрат используется специальная подпрограмма умножения, которая приведена в конце программы. Эта подпрограмма умножения более подробно объясняется в Приложении 6. Если заданы 3 переменных, требуется добавить соответствующие блоки и операции. Сложение числа в дополнительном коде эквивалентно вычитанию этого числа в прямом коде. Это позволяет заменить вычитание двухбайтных чисел их сложением. 31
ПРИЛОЖЕНИЕ 1 Министерство образования и науки Российской Федерации Федеральное агенство по образованию Государственное образовательное учреждение высшего профессионального образования Северо-Западный государственный заочный технический университет Кафедра радиотехники ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОМУ ПРОЕКТУ По дисциплине «Цифровые устройства и микропроцессоры» ТЕМА: «МИКРОПРОЦЕССОРНОЕ УСТРОЙСТВО ОБРАБОТКИ ИНФОРМАЦИИ» Преподаватель Студент Шифр Факультет Курс Дата сдачи работы
<Ф. И. О.> <Ф. И. О.> <Номер студенческого билета> радиоэлектроники 3 <Дата> <Санкт-Петербург, филиал, УКП>, <Год>
ПРИЛОЖЕНИЕ 2 ЗАДАНИЕ НА КУРСОВОЙ ПРОЕКТ Тема проекта: «Микропроцессорное устройство обработки информации Исходные данные: 1. Тип микропроцессорного комплекта — КР580. 2. Входные сигналы — x(t), y(t), z(t) (из табл. 1). 3. Длина входных сигналов — 1 байт (из табл. 2). 4. Константы k и N (из табл. 2). 5. Выходной сигнал (по цифрам шифра из табл. 2). 6. Длина выходного сигнала 2 байта (из табл. 2). 7. Требуемая емкость ПЗУ М1≤630 байт. 8. Требуемая емкость ОЗУ М2≤4096 байт. 32
ПРИЛОЖЕНИЕ 3 СИСТЕМА КОМАНД НА ЯЗЫКЕ АССЕМБЛЕРА Мнемоника
MOV R1, R2 MOV M, R MOV R, M MVI R, data MVI M, data LXI RP, data 16 LDAX B LDAX D STAX B
STAX D LDA Addr STA Addr LHLD Addr SHLD Addr
Описание команды
Условное обозначение
Команды пересылки данных Передача из регистра R2 (R1) ←(R2) в регистр R1 Передача из регистра в ((H)(L)) ← (R) память Передача из памяти в (R)←((H) (L)) регистр Передача байта в регистр (R) ←(byte2) Передача байта в память ((H) (L)) ←(byte2) Загрузка парных (RL) ←(byte2) регистров B—C, D—E, (RH) ←(byte3) H—L, SP Загрузка аккумулятора (A) ←((B)(C)) по адресу, указанному парой регистров B—C То же, парой регистров (A) ←((D)(E)) D—E Занесение содержимого ((B)(C)) ←(A) аккумулятора по адресу, указанному парой регистров B—C То же, парой регистров ((D)(E)) ←(A) D—E Загрузка аккумулятора (A) ←((byte3)(byte2)) по адресу, указанному в команде Занесение содержимого ((byte3)(byte2)) ←(A) аккумулятора по адресу, указанному в команде Загрузка регистров L, H (L) ←((byte3)(byte2)) из двух соседних ячеек (H) ←((byte3)(byte2)+1) Занесение содержимого ((byte3)(byte2)) ←(L) регистров L, H в две ((byte3)(byte2)+1) ←(H) соседние ячейки, начиная с адреса, указанного в команде
33
Число байт 1 1 1 2 2 3 1 1 1
1 3 3 3 3
Мнемоника XCHG XTHL SPHL PUSH RP
PUSH PSW
POP RP
POP PSW
ADD R ADC R
Продолжение П. 3 ЧисОписание команды Условное обозначение ло байт Обмен данными между (H) ↔(D) 1 парами регистров H—L (L) ↔(E) и D—E Обмен данными между (L) ↔((SP)) 1 стеком и H—L (H) ↔(SP)+1) Занесение содержимого (SP) ↔(H)(L) 1 регистра H—L в стек Ввод содержимого ((SP)-1) ←(RH) 1 регистров B—C, D—E ((SP)-2) ←(RL) или H—L в стек (SP) ←(SP)-2 Ввод PSW (слово ((SP)-1) ←(A) 1 состояния процессора — ((SP)-2)0←(CY) содержимое ((SP)-2)1←1 аккумулятора и регистра ((SP)-2)2←(P) признаков) в стек ((SP)-2)3←0 ((SP)-2)4←(AC) ((SP)-2)5←0 ((SP)-2)6←(Z) ((SP)-2)7←(S) (SP) ←(SP)-2 Выдача данных из стека (RL) ←((SP)) 1 в регистры B—C, D—E, (RH) ←((SP)+1) H—L (SP) ←(SP)+2 1 Выдача данных из стека (CY) ←((SP))0 в аккумулятор и регистр (P) ←((SP))2 признаков (слово (AC) ←((SP))4 состояния процессора) (Z) ←((SP))6 (S) ←((SP))7 (A) ←((SP)+1) (SP) ←(SP)+2 Арифметико-логические команды 1 Сложение содержимого (A) ←(A)+(R) регистра и аккумулятора 1 То же, но с учетом (A) ←(A)+(R)+(CY) переноса
34
Мнемоника ADD M ADC M ADI data ACI data DAD RP
SUB R SBB R SUB M SBB M SUI data SBI INR R INR M
Продолжение П. 3 ЧисОписание команды Условное обозначение ло байт 1 Сложение содержимого (A) ←(A)+((H)(L)) ячейки памяти и аккумулятора То же, но с учетом (A) ←(A)+((H)(L))+(CY) 1 переноса 2 Сложение байта с (A) ←(A)+(byte2) содержимым аккумулятора 2 Сложение байта с (A) ←(A)+(byte2)+(CY) содержимым аккумулятора с учетом переноса Сложение содержимого (H)(L) ←(H)(L)+(RH)(RL 1 пар регистров B—C, D—E, ) H—L, SP с содержимым пары H—L 1 Вычитание содержимого (A) ←(A)-(R) регистра из содержимого аккумулятора То же, но с заемом 1 (A) ←(A)-(R)-(CY) 1 Вычитание содержимого (A) ←(A)-((H)(L)) ячейки памяти из содержимого аккумулятора То же, но с заемом 1 (A) ←(A)-((H)(L))-(CY) 2 Вычитание байта из (A) ←(A)-(byte2) содержимого аккумулятора То же, но с учетом заема 2 (A) ←(A)-(byte2)-(CY) Увеличение содержимого (R) ←(R)+1 1 регистра на единицу Увеличение содержимого ((H)(L)) ←((H)(L))+1 1 ячейки памяти на единицу
35
Мнемоника DCR R DCR M INX RP
DCX RP
ANA R ANA M
ANI data XRA R
XRA M
XRI data
ORA R
Описание команды Уменьшение содержимого регистра на единицу Уменьшение содержимого ячейки памяти на единицу Увеличение содержимого парных регистров B—C, D—E, H—L, SP на единицу Уменьшение содержимого парных регистров B—C, D—E, H—L, SP на единицу Поразрядное логическое умножение содержимого регистра и аккумулятора Поразрядное логическое умножение содержимого ячейки памяти и аккумулятора Поразрядное логическое умножение содержимого аккумулятора и байта Поразрядное исключающее ИЛИ над содержимым регистра и аккумулятора Поразрядное исключающее ИЛИ над содержимым ячейки памяти и аккумулятора Поразрядное исключающее ИЛИ над содержимым аккумулятора и байтом Поразрядное логическое сложение содержимого регистра и аккумулятора
36
Продолжение П. 3 Чис Условное обозначение -ло байт 1 (R) ←(R)-1 ((H)(L)) ←((H)(L))-1
1
(RH)(RL) ←(RH)(RL)+1
1
(RL)(RH) ←(RL)(RH)-1
1
(A) ←(A) ∧(R)
1
(A) ←(A) ∧((H)(L))
1
(A) ←(A) ∧(byte2)
2
(A) ←(A) ⊕(R)
1
(A) ←(A) ⊕((H)(L))
1
(A) ←(A) ⊕(byte2)
2
(A) ←(A) ∨ (R)
1
Мнемоника ORA M
RI data CMP R CMP M CPI data RLC
RRC
RAL
RAR
JMP Addr JC Addr
JNC Addr
Продолжение П. 3 Описание команды Условное обозначение Число байт 1 Поразрядное логическое (A) ←(A) ∨ ((H)(L)) сложение содержимого ячейки памяти и аккумулятора 2 Поразрядное логическое (A) ←(A) ∨ (byte2) сложение содержимого аккумулятора и байта Сравнение содержимого (A)-(R) 1 регистра и аккумулятора Сравнение содержимого (A)-((H)(L)) 1 ячейки памяти и аккумулятора Сравнение байта с (A)-(byte2) 2 содержимым аккумулятора Циклический сдвиг (An+1) ←(An) 1 содержимого (A0) ←(A7) аккумулятора влево (CY) ←(A7) То же, но вправо 1 (An) ← (An+1) (A7) ←(A0) (CY) ←(A0) 1 Циклический сдвиг (An+1) ←(An) содержимого (CY) ←(A7) аккумулятора влево (A0) ←(CY) через перенос 1 То же, но вправо (An) ← (An+1) (CY) ←(A0) (A7) ←(CY) Команды передачи управления 3 Безусловный переход (PC) ←(byte3)(byte2) Переход при наличии Если CY=1, то 3 переноса (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Переход при отсутствии Если CY=0, то 3 переноса (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3
37
Мнемоника JZ Addr
JNZ Addr
JP Addr
JM Addr
JPE Addr
JPO Addr
PCHL CALL Addr
CC Addr
CNC Addr
Продолжение П. 3 ЧисОписание команды Условное обозначение ло байт Переход при нуле Если Z=1, то 3 (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Переход при отсутствии Если Z=0, то 3 нуля (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Переход при плюсе Если S=0, то 3 (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Переход при минусе Если S=1, то 3 (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Переход при четности Если P=1, то 3 (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Переход при нечетности Если P=0, то 3 (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 1 Занесение в счетчик (PC) ←(HL) команд содержимого регистра H—L Вызов подпрограммы 3 (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2; (PC) ←(byte3)(byte2) То же, но при переносе Если CY=1, то 3 (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2; (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 То же, но при отсутствии Если CY=0, то 3 переноса (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2; (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3
38
Мнемоника
Описание команды
CNZ Addr
То же, но при отсутствии нуля
CP Addr
Вызов подпрограммы при плюсе
CM Addr
То же, но при минусе
CPE Addr
Вызов подпрограммы при четности
CPO Addr
То же, но при нечетности
RET
Возврат
RC
Возврат при переносе
RNC
Возврат при отсутствии переноса
39
Продолжение П. 3 ЧисУсловное обозначение ло байт Если Z=0, то 3 (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2; (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Если S=0, то 3 (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2; (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Если S=1, то 3 (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2; (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Если P=1, то 3 (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2; (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 Если P=0, то 3 (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2; (PC) ←(byte3)(byte2), иначе (PC) ←(PC)+3 1 (PC) ←(SP)(SP+1); (SP) ←(SP)+2 Если CY=1, то 1 (PC) ←(SP)(SP+1); (SP) ←(SP)+2, иначе (PC) ←(PC)+1 Если CY=0, то 1 (PC) ←(SP)(SP+1); (SP) ←(SP)+2, иначе (PC) ←(PC)+1
Продолжение П. 3 ЧисМнемоника Описание команды Условное обозначение ло байт RZ Возврат при нуле Если Z=1, то 1 (PC) ←(SP)(SP+1); (SP) ←(SP)+2, иначе (PC) ←(PC)+1 RNZ Возврат при отсутствии Если Z=0, то 1 нуля (PC) ←(SP)(SP+1); (SP) ←(SP)+2, иначе (PC) ←(PC)+1 RP Возврат при плюсе Если S=0, то 1 (PC) ←(SP)(SP+1); (SP) ←(SP)+2, иначе (PC) ←(PC)+1 RM Возврат при минусе Если S=1, то 1 (PC) ←(SP)(SP+1); (SP) ←(SP)+2, иначе (PC) ←(PC)+1 RPE Возврат при четности Если P=1, то 1 (PC) ←(SP)(SP+1); (SP) ←(SP)+2, иначе (PC) ←(PC)+1 RPO Возврат при нечетности Если P=0, то 1 (PC) ←(SP)(SP+1); (SP) ←(SP)+2, иначе (PC) ←(PC)+1 RST Повторный запуск 1 (SP-1)(SP-2) ←(PC); (SP) ←(SP)-2 Команды ввода-вывода и прочие команды 2 IN PORT Ввод (A) ←(N) 2 OUT PORT Вывод (N) ←(A) 1 CMA Инвертирование A←⎯A аккумулятора 1 STC Установка флага CY←1 переноса в единицу 1 CMC Инвертирование флага CY←⎯CY переноса EI Разрешить прерывание 1 DI Запретить прерывание 1
40
Мнемоника DAA
NOP HLT
Продолжение П. 3 ЧисОписание команды Условное обозначение ло байт 1 Двоично-десятичная Если (A) ≤ 9, то коррекция содержимого (A) ←(A)+00000000 аккумулятора Если (A) > 9, то (A) ←(A)+00000110 Отсутствие операции 1 Останов 1
Примечания: 1. PSW — слово состояния программы, первый байт которого равен содержимому аккумулятора, второй — содержимому регистра признаков; 2. А — регистр-аккумулятор (аккумулятор); 3. Addr — 16-разрядный адрес внешней памяти; 4. data — 8-разрядный символ данных; 5. data 16 — 16-разрядный символ данных; 6. byte 2 — содержимое второго байта в многобайтных командах; 7. byte 3 — содержимое третьего байта в многобайтных командах; 8. PORT — 8-разрядный адрес интерфейса ввода-вывода; 9. R, R1, R2 — один из регистров с именами A, B, C, D, E, H, L, принадлежащих блоку РОН; 10. RP — пара 8-разрядных регистров B—C, D—E, H—L, SP, которые адресуются как один регистр при операциях с 16-разрядными словами; 11. RH — старший регистр в паре; 12. RL — младший регистр в паре; 13. PC — 8-разрядный счетчик команд; 14. SP — 16-разрядный регистр-указатель стека; 15. N — номер порта; 16. Rn —номер разряда в регистре; 17. ← — оператор пересылки; 18. ↔ — оператор обмена; 19. ∧ — оператор И; 20. ∨ — оператор ИЛИ; 21. ⊕ — оператор исключающее ИЛИ; 22. ⎯ — оператор инверсии; 23. + — оператор арифметического сложения; 24. - — оператор арифметического вычитания; 25. ( ) — содержимое регистра или ячейки памяти; 26. ( ) ( ) — оператор объединения двух 8-разрядных регистров, при этом их содержимое рассматривается как одно 16-разрядное слово 27. Z — признак нуля; если результат выполнения команды равен 0, то Z=1; 41
28. S — признак знака; если результат выполнения команды отрицателен, то S=1; 29. P — признак четности; если сумма по модулю 2 значений всех разрядов результата выполнения операции равна 0, то P=1; 30. CY — признак переноса; если на выходе старшего разряда сумматора в результате выполнения команды сложения возникает сигнал переноса или в результате выполнения команды вычитания возникает заем, то CY+1. ПРИЛОЖЕНИЕ 4
ОСНОВНЫЕ ДИРЕКТИВЫ АССЕМБЛЕРА Директивы ассемблера — это указания ассемблирующей программе о выполнении определенных действий в процессе ассемблирования. Они не являются командами и не переводятся в машинный код. Операторы директив необязательны. 1. Директива ORG (организовать). Эта директива определяет ячейку памяти, куда будет загружаться первый байт следующей команды или байт данных. Этот адрес указывается в поле операнда. Если в начале программы директива ORG отсутствует, то по умолчанию подразумевается директива ORG с нулевым адресом (таким образом, в примере курсового проекта директива ORG необязательна). При необходимости в программе может быть несколько директив ORG. До новой директивы ORG команды и данные размещаются в смежных ячейках памяти. 2. Директива END (конец). Эта директива информирует ассемблирующую программу о достижении конца программы. В каждой программе может быть только одна директива END, находящаяся в последней строке. 3. Директива EQU (приравнять, присвоить). При выполнении директивы EQU ассемблирующая программа присваивает значение выражения, находящегося в поле операнда символическому наименованию, находящемуся в поле метки. Когда наименование встречается в поле операнда, ассемблирующая программа подставляет вместо него присвоенное значение. Символическое наименование может появиться в поле метки только одной директивы EQU. При программировании следует сгруппировать все директивы EQU в начале или конце программы.
42
ПРИЛОЖЕНИЕ 5
Список команд в машинных кодах Команда на ассемблере ACI data ADC A ADC B ADC C ADC D ADC E ADC H ADC L ADC M ADD A ADD B ADD C ADD D ADD E ADD H ADD L ADD M ADI DATA ANA A ANA B ANA C ANA D ANA E ANA H ANA L ANA M ANI DATA CALL ADDR CC ADDR CM ADDR CMA CMC
Код операции CE 8F 88 89 8A 8B 8C 8D 8E 87 80 81 82 83 84 85 86 C6 A7 A0 A1 A2 A3 A4 A5 A6 E6 CD DC FC 2F 3F
Команда на Код ассемблере опера ции CMP D BA CMP E BB CMP H BC CMP L BD CMP M BE CNC Addr D4 CNZ Addr C4 CP Addr F4 CPE Addr EC CPI Addr FE CPO Addr E4 CZ Addr CC DAA 27 DAD B 09 DAD D 19 DAD H 29 DAD SP 39 DCR A 3D DCR B 05 DCR C 0D DCR D 15 DCR E 1D DCR H 25 DCR L 2D DCR M 35 DCX B 0B DCX D 1B DCX H 2B DCX SP 3B DI F3 EI FB HLT 76
43
Команда ассемблере
на
INR C INR D INR E INR H INR L INR M INX B INX D INX H INX SP JC ADDR JM ADDR JMP ADDR JNC ADDR JNZ ADDR JP ADDR JPE ADDR JPO ADDR JZ ADDR LDA ADDR LDAX B LDAX D LHLD ADDR LXI B, DATA 16 LXI D, DATA 16 LXI H, DATA 16 LXI SP, DATA 16 MOV A, A MOV A, B MOV A, C MOV A, D MOV A, E
Код операции 0C 14 1C 24 2C 34 03 13 23 33 DA FA C3 D2 C2 F2 EA E2 CA 3A 0A 1A 2A 01 11 21 31 7F 78 79 7A 7B
CMP A CMP B CMP C MOV B, A MOV B, B MOV B, C MOV B, D MOV B, E MOV B, H MOV B, L MOV B, M MOV C, A MOV C, B MOV C, C MOV C, D MOV C, E MOV C, H MOV C, L MOV C, M MOV D, A MOV D, B
BF B8 B9 47 40 41 42 43 44 45 46 4F 48 49 4A 4B 4C 4D 4E 57 50
MOV D, C
51
MOV D, D
52
MOV D, E
53
MOV D, H MOV D, L
54 55
MOV D, M MOV E, A
56 5F
MOV E, B MOV E, C MOV E, D MOV E, E MOV E, H MOV E, L MOV E, M MOV H, A
58 59 5A 5B 5C 5D 5E 67
IN PORT INR A INR B MOV H, L MOV H, M MOV L, A MOV L, B MOV L, C MOV L, D MOV L, E MOV L, H MOV L, L MOV L, M MOV M, A MOV M, B MOV M, C MOV M, D MOV M, E MOV M, H MOV M, L MVI A, DATA MVI B, DATA MVI C, DATA MVI D, DATA MVI E, DATA MVI H, DATA MVI L, DATA MVI M, DATA NOP ORA A ORA B ORA C ORA D ORA E ORA H ORA L 44
DB 3C 04 65 66 6F 68 69 6A 6B 6C 6D 6E 77 70 71 72 73 74 75 3E
Продолжение П. 5 MOV A, H 7C MOV A, L 7D MOV A, M 7E POP D D1 POP H E1 POP PSW F1 PUSH B C5 PUSH D D5 PUSH H E5 PUSH PSW F5 RAL 17 RAR 1F RC D8 RET C9 RLC 07 RM F8 RNC D0 RNZ C0 RP F0 RPE E8 RPO E0
06
RRC
0F
0E
RST 0
C7
16
RST 1
CF
1E 26
RST 2 RST 3
D7 DF
2E 36
RST 4 RST 5
E7 EF
00 B7 B0 B1 B2 B3 B4 B5
RST 6 RST 7 RZ SBB A SBB B SBB C SBB D SBB E
F7 FF C8 9F 98 99 9A 9B
Команда на Код ассемблере операци и MOV H, B 60 MOV H, C 61 MOV H, D 62 MOV H, E 63 MOV H, H 64 SPHL F9 STA Addr 32 STAX B 02 STAX D 12 STC 37 SUB A 97 SUB B 90 SUB C 91 SUB D 92
Команда на Код ассемблере операци и ORA M B6 ORI DATA F6 OUT PORT D3 PCHL E9 POP B C1 SUB E 93 SUB H 94 SUB L 95 SUB M 96 SUI data D6 XCHG EB XRA A AF XRA B A8 XRA C A9
Продолжение П. 5 Команда на Код ассемблере операции SBB H SBB L SBB M SBI DATA SHLD ADDR XRA D XRA E XRA H XRA L XRA M XRI data XTHL
9C 9D 9E DE 22 AA AB AC AD AE EE E3
ПРИЛОЖЕНИЕ 6
Особые приемы программирования 1. Организация счета Операция счета выполняется с помощью некоторого регистра общего назначения, в который загружается константа, равная заданному коэффициенту пересчета N. Затем из содержимого этого регистра вычитаются единицы до получения нулевого результата, после чего следует условный переход по нулю. При отсутствии свободного регистра в качестве счетчика можно использовать ячейку ОЗУ. Обычно операция счета связана с созданием временной задержки, с какими-либо внешними событиями или с циклическим участком программы, когда некоторая основная функция повторяется несколько раз. Здесь возможны два способа организации счета: в первом случае сначала выполняется основная функция, а затем — счет и проверка состояния счетчика; во втором — наоборот. Соответственно, обеспечиваются следующие пределы изменения коэффициента пересчета: 1 ≤ N ≤ 2n и 0 ≤ N ≤ 2n -1. Так как разрядность n регистра равна 8, то максимальная емкость счетчика, выполненного на одном регистре — 256. Если требуется обеспечить N > 256, то следует организовать совместную работу двух или нескольких регистров.
45
2. Организация временной задержки Функция временной задержки или генерации временных интервалов заданной длительности часто необходима для организации взаимодействия микропроцессора (МП) с внешними устройствами. Так как тактовая частота МП обычно стабилизирована, то задержка может осуществляться с большой точностью. Длительность такта — 0,5 мкс при работе МП на частоте 2 МГц. Для реализации малых задержек можно использовать приведенные в табл. 5 команды, выполнение которых не изменяет содержимого регистров и элементов памяти МПК (за исключением содержимого счетчика команд). С помощью команд из табл. 5 можно обеспечить задержку на любое число тактов (кроме шести), начиная с четырех. Однако задержки большой длительности целесообразно получать путем организации счета, т. е. циклических участков в программе. В этом случае задача сводится к выбору числа каскадов счетчика, определению требуемых коэффициентов пересчета и к введению дополнительных малых задержек для обеспечения точного значения заданного времени задержки. На базе однокаскадного счетчика целесообразно получать задержки длительностью до десятка миллисекунд. Для получения более длительных задержек число каскадов счетчика увеличивается программным путем (П. 7). Команда
Число тактов
NOP 4 MOV A, A 5 ADI 00H 7 XTHL XTHL PUSH B POP B
18 18 11 10
ПРИЛОЖЕНИЕ 7 Число байтов в Название команды и примечание формате команды 1 Пустая операция 1 Пересылка (А) ← (А) 2 Сложение A с нулем (может повлиять на флаги!) 1 Двукратный обмен вершины стека с H 1 — L — задержка на 36 тактов 1 Запись в стек с последующим 1 считыванием — задержка на 21 такт 3. Сложение и вычитание чисел
Сначала рассмотрим выполнение этих операций над числами без знаков, что соответствует, например, операциям над кодами и положительными числами. Если операнды являются однобайтовыми числами, то их сложение и вычитание осуществляется командами ADD R и SUB R. При выполнении команды сложения возможно переполнение разрядной сетки, о чем свидетельствует значение флага переноса С. Особенностью выполнения команды вычитания является то, что ее результат представлен в 46
дополнительном коде. Напомним, что при положительном числе дополнительный код совпадает с прямым, а при отрицательном он равен дополнению данного числа до 2n. Для двоичных отрицательных чисел дополнительный код вычисляют путем инверсии всех разрядов прямого кода с последующим добавлением единицы. Если прямой код числа содержится в аккумуляторе, то переход к дополнительному коду осуществляется с помощью команд инверсии CMA и инкремента (сложения с единицей) INR A. Обратный переход от дополнительного кода числа к прямому осуществляют аналогичным образом — с помощью команд декремента (вычитания единицы) DCR A и инверсии CMA. Если хотя бы один из операндов занимает более n разрядов (где n — разрядность МП), то говорят, что вычисления производятся с повышенной точностью. В МП серии КР580 для сложения двухбайтовых слов предусмотрена команда DAD RP. В общем же случае сложение и вычитание многобайтовых слов осуществляется путем многократного использования команд ADC R и SBB R. О наличии переполнения разрядной сетки, которое может произойти при сложении как двух положительных, так и двух отрицательных чисел, свидетельствует факт неравнозначности Значений флагов переноса и знака. Если же складываются числа разных знаков, то переполнение не может произойти, а значение флага переноса игнорируется. 4. Умножение и деление Умножение чисел αβ=γ в МП реализуется с помощью команд суммирования и сдвига. Для получения γ к сумме частичных произведений Σ добавляется α, если очередной разряд β=1, после чего осуществляется сдвиг Σ; указанная процедура повторяется для каждого разряда β. При этом анализ β можно начинать со старших разрядов и соответственно сдвигать влево, либо наоборот. Знак γ обычно формируют независимо от описанной процедуры умножения на основе анализа знаков сомножителей, а при осуществлении умножения используют прямые коды сомножителей без знака. В этом случае необходимо учитывать, что освобождающиеся разряды при сдвигах Σ должны заполняться нулями. Деление двоичных чисел основывается на последовательном вычитании делителя из разрядов делимого и остатка от деления. Таким образом, деление реализуется с помощью операций сдвига, вычитания и анализа результата вычитания. По аналогии с умножением здесь целесообразно осуществлять деление чисел без знаков, а знак частного определять отдельно на основе анализа знаков операндов. Перед выполнением деления необходимо убедиться, что делитель не равен нулю.
47
Рассмотренные варианты выполнения арифметических действий с помощью МП подразумевают представление чисел в форме с фиксированной запятой (точкой). 5. Организация очередей, стеков и подпрограмм 5.1. Очередь Очередь представляет собой структуру данных, в которой элементы можно исключать только с одного конца (начало очереди), а включать только с другого (конец очереди). Главная особенность очереди заключается в том, что она содержит порядок элементов неизменным — принцип FIFO (First In, First Out — первый приходит, первый уходит). Число элементов в очереди называется его длиной. При реализации очереди ее элементы остаются неподвижными, а вводятся два указателя для начала и конца очереди. Указатель начала адресует элемент, подлежащий исключению, а указатель конца очереди адресует ячейку сразу за последним элементом. Очередь обычно используется при вводе и выводе символьных данных, а для их организации — область смежных ячеек памяти, число которых определяется максимально возможной длиной очереди. Чтобы исключить элемент очереди, необходимо произвести считывание элемента, адресуемого указателем начала очереди, и увеличить этот указатель на 1 (очередь растет в область больших адресов). Включаемый элемент записывается в первую свободную ячейку и указатель очереди увеличивается на 1. Возможны два особых случая: переполнение — включение в очередь элемента, когда все ячейки заняты, и антипереполнение — исключение элемента из пустой очереди. 5.2. Стек Стек, как и очередь, представляет собой специальную разновидность одномерного массива. Он является специальной областью ОЗУ, организованную таким образом, что загрузку элементов в стек и извлечение их из стека можно осуществлять только с одного конца, называемого вершиной стека. Таким образом, в любой момент времени из стека можно произвести считывание только элемента, находящегося в его вершине и представляющего собой последние загруженные данные. Ячейку, выполняющую роль вершины стека, адресует указатель стека SP. Таким образом, стек работает по принципу LIFO (Last In, First Out — последний приходит, первый уходит). 5.3. Подпрограммы Часто в программах некоторые последовательности команд, выполняющие определенную функцию, встречаются несколько раз, но 48
оперируют различными данными. Такие последовательности можно оформить в подпрограмму и включить в программу 1 раз, а в нужных точках вызывать ее для выполнения с текущими данными. Вызов подпрограммы нарушает естественный порядок следования команд. Из точки вызова управление следует передать первой команде подпрограммы, затем обычным образом выполнить команды подпрограммы, а по ее завершении управление необходимо передать (возвратить) в точку вызова. Инициирование выполнения подпрограммы осуществляется путем указания ее имени в одной из команд вызова подпрограммы. Имя подпрограммы должно находиться в поле метки первой ее команды. При выполнении команды вызова подпрограммы текущее содержание счетчика команд (адрес возврата) загружается в стек, а в счетчик команд загружается адрес перехода — второй и третий байт команды вызова подпрограммы. После этого начинает выполняться первая команда подпрограммы, затем вторая и т. д. Заключительной командой каждой подпрограммы должна быть команда возврата из подпрограммы, которая извлекает адрес возврата из стека и передает его в счетчик команд. Следовательно, теперь будет выполняться команда, находящаяся в вызывающей программе сразу после команды вызова подпрограммы. Правильно составленная подпрограмма не должна изменять содержимого ни одного регистра, которое после выполнения подпрограммы потребуется вызывающей программе. Таким образом, содержимое регистров, используемых подпрограммой, необходимо временно запоминать, для того, чтобы по завершении подпрограммы его можно было восстановить без изменений. Наиболее удобной памятью для временного запоминания содержимого регистров является стек. Запомнить содержимое регистров можно в вызывающей программе перед вызовом подпрограммы либо в самой подпрограмме. Практика программирования показывает, что целесообразно всегда запоминать содержимое регистров в начале и восстанавливать его в конце подпрограмм. При организации подпрограмм важно выбрать правильный способ передачи параметров подпрограмме. В подпрограмме умножения в курсовом проекте использована передача параметров во внутренних регистрах микропроцессора. При этом способе перед вызовом подпрограммы параметры, используемые в подпрограмме, загружаются во внутренние регистры. После вызова подпрограмма выполняет необходимые действия и загружает результат в определенный регистр (регистры) микропроцессора. Основной недостаток данного способа заключается в жестких ограничениях на число передаваемых параметров. Подпрограммы могут, например, использоваться для выполнения определенных арифметических действий: сложения и вычитания, умножения и деления и т. д. Подпрограмма умножения, используемая в курсовом проекте, имеет вид:
49
ПРИЛОЖЕНИЕ 8 Фрагмент примера программы курсового проекта (подпрограмма MULT ) Метка Код MULT: LXI MVI M4: DAD RLC JNC DAD M5: DCR JNZ RET
Операнд H, 0000H B, 08H H M5 D B M4
Комментарий ;Сброс регистра произведения ;Инициализация счетчика бит ;Сдвиг частичной суммы влево ;Сдвиг множителя с переносом ;Анализ бита множителя ;Суммирование множимого ;Декремент счетчика бит ;Умножение на следующий бит ;Умножение закончено, возврат
Эта подпрограмма предназначена для умножения 8-битных целых чисел без знака. Она реализует анализ отдельных цифр множителя с последующим накапливающим суммированием множимого и сдвигом частичной суммы или множимого. Умножение выполняется старшими разрядами вперед. Сдвиг частичной суммы в регистрах H, L осуществляется командой удвоения DAD H. Перед выполнением подпрограммы один множитель помещается в аккумулятор, второй — в регистр Е. Результат будет получен в регистровой паре H, L. Команда LXI H, 0000H обнуляет содержимое регистровой пары H, L, чтобы предварительно записанные в этих регистрах данные не влияли на результат вычисления подпрограммы. Команда MVI B, 08H служит для начальной установки счетчика циклов (или счетчика бит). В ходе подпрограммы осуществляется умножение одного множимого целиком на каждый бит другого множителя. Как уже было указано, оба числа — 8-битные, поэтому требуется 8 циклов. Команда DAD H осуществляет удвоение частичной суммы, а команда RLC — удвоение содержимого аккумулятора (множителя). Команда JNC анализирует содержимое следующего разряда. Если этот разряд равен 1, то множимое (в регистровой паре D, E) добавляется к частичной сумме. Если этот разряд равен нулю, суммирование пропускается. Команда DCR B осуществляет счет циклов. Если вычисления не закончены, осуществляется условный переход на следующий цикл (командой JNZ M4). По окончании вычислений осуществляется возврат в основную программу по команде RET.
50
СОДЕРЖАНИЕ Стр. ПРЕДИСЛОВИЕ ………………………………………………………………. 3 I РАБОЧАЯ ПРОГРАММА ……………………………………………… …... 3 1. ЦИФРОВЫЕ УСТРОЙСТВА………………………………………………. 3 Введение ………………………………………………………………………… 3 1.1. Основы алгебры логики и переключательных функций ………………... 4 1.2. Основы цифровой техники ………………………………………………... 4 1.3. Комбинационные устройства …………………………………………….. 4 1.4. Цифровые автоматы ……………………………………………………….. 5 1.5. Аналого-цифровые и цифроаналоговые преобразователи ……………… 5 1.6. Полупроводниковые запоминающие устройства ………………………... 5 Перечень лабораторных работ по разделу «Цифровые устройства» ……….. 6 Тематический план лекций по разделу «Цифровые устройства» …………… 6 Тестовые вопросы к разделу «Цифровые устройства»……………………….. 7 2. МИКРОПРОЦЕССОРЫ …………………………………………………….. 9 Введение ………………………………………………………………………… 9 2.1. Особенности архитектуры микропроцессоров …………………………... 9 2.2. Аппаратные средства микропроцессорных систем ……………………… 9 2.3. Общие вопросы программного обеспечения МП систем ………………. 10 2.4. Особенности программирования на языке Ассемблера ………………… 10 2.5. Структуры данных и организация подпрограмм ………………………… 11 2.6. Особенности архитектуры и программирования микроконтроллераКМ1816ВЕ48 ......................................................................... 11 Перечень практических работ по разделу «Микропроцессоры» ……………. 12 Перечень лабораторных работ по разделу «Микропроцессоры» …………….. 12 Тематический план лекций по разделу «Микропроцессоры» ………………... 12 Тестовые вопросы к разделу «Микропроцессоры» …………………………… 12 ЛИТЕРАТУРА …………………………………………………………………… 15 II ЗАДАНИЯ НА КОНТРОЛЬНУЮ РАБОТУ ………………………………… 16 Задание 1 …………………………………………………………………………. 16 Задание 2 …………………………………………………………………………. 17 III МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КОНТРОЛЬНОЙ РАБОТЫ …………………………………………………… 19 IV ЗАДАНИЯ НА КУРСОВОЙ ПРОЕКТ ……………………………………. 21 V МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ КУРСОВОГО ПРОЕКТА ………………………………. 22 1. Требования к блок-схеме алгоритма……………………………………….. 22 2. Составление блок-схемы алгоритма и программы ………………………. 22 51
3. Пример выполнения курсового проекта ………………………………….. 3.1. Общая постановка задачи …………………………………………………. 3.2. Распределение памяти …………………………………………………….. 3.3. Составление структурной схемы и программы вычислений ……………
23 23 24 24
ПРИЛОЖЕНИЕ 1. Титульный лист пояснительной записки………………… ПРИЛОЖЕНИЕ 2. Задание на курсовой проект ……………………………… ПРИЛОЖЕНИЕ 3. Система команд на языке АССЕМБЛЕРА ……………… ПРИЛОЖЕНИЕ 4. Основные директивы АССЕМБЛЕРА ………………….. ПРИЛОЖЕНИЕ 5. Список команд в машинных кодах ……………………… ПРИЛОЖЕНИЕ 6. Особые приемы программирования …………………….. ПРИЛОЖЕНИЕ 7. Организация задержек …………………………………… ПРИЛОЖЕНИЕ 8. Подпрограмма умножения MULT ……………………….
32 32 33 42 43 45 46 50
Лицензия ЛР №020308
Редактор А. В. Алёхина
Подписано в печать Формат 60×841 /16 Бумага оберточная Печать офсетная РТП РИО СЗТУ П. л. 3, 25 Б. л. 1,62 Тираж Заказ Северо-Западный государственный заочный технический университет РИО СЗТУ, член Издательско-полиграфической ассоциации вузов Cанкт-Петербурга . 191186, Санкт-Петербург, ул. Миллионная, 5
52