![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Работа рассчитана на несколько посещений и предполагает:
- изучение списка микрокоманд ЦПЭ К1804ВС1 и методики его программирования;
- рассмотрение принципов построения БМУ на основе БИС К1804ВУ1 и К1804ВУ3;
- приобретение навыков программирования и построения простейших контроллеров на МП серии К1804.
Оценить особенность архитектуры МПК К1804, его функциональные возможности, приобрести навыки программирования устройств на основе МПК К1804 позволяют восемь микропрограмм, тексты которых приводятся ниже.
Микропрограмма 1 иллюстрирует методы загрузки данных в РОН ЦПЭ. Текст программы приведен в табл.4.5.
Таблица 4.5
Адреса памяти | Микрокоманда | Выполняемая функция | |||||||
Адрес пере-хода | Тип пере-хода | Приемник результата | Источник операнда | Функция АЛУ | A | B | D | ||
7-8 | |||||||||
MS2 I8-I6 | MS1 I2-I0 | C0 I5-I3 | |||||||
xxx | х 011 (F → B) | х 111 (R=D S=0) | х 011 (RvS) | xxxx | Загрузка R0 | ||||
xxx | х 001 (Y=F) | х 011 (R=0 S=B) | х 011 (RvS) | xxxx | xxxx | Чтение R0 | |||
xxx | х 011 | х 111 | х 011 | xxxx | Загрузка R1 | ||||
xxx | х 001 | х 011 | х 011 | xxxx | xxxx | Чтение R1 | |||
xxx | х 011 | х 111 | х 011 | xxxx | Загрузка R9 | ||||
х 001 | х 011 | х 011 | xxxx | xxxx | Чтение R9 |
После занесения микропрограммы в память необходимо:
- выполнить микропрограмму в пошаговом режиме, фиксируя результат выполнения отдельных микрокоманд по содержимому поля ДАННЫЕ («Двоичный код результата на выходе ЦПЭ») ЖКИ-монитора (позиции символов 9 – 12);
– убедиться, что с помощью указанных микрокоманд можно загрузить любой из шестнадцати РОН произвольным числом, меняя только содержимое полей B и D.
Микрокоманда с адресом 005 в этой микропрограмме, передающая управление самой себе (в поле инструкции перехода такой микрокоманды должен быть указан код 0001, а в поле адреса перехода - адрес микрокоманды), является микрокомандой «останова». С помощью индикаторов ДАННЫЕ убедитесь, что микропрограмма «зацикливается» на микрокоманде с адресом 005, при этом любое последующее нажатие кнопки ПУСК не изменяет содержимое счетчика микрокоманд БИС К1804ВУ1.
Загрузка регистра Q выполняется аналогичными командами, однако для этого необходимо изменить приемник результата. Выполните эту микрооперацию.
Микропрограмма 2 иллюстрирует выполнение сдвиговых операций операндов 4-разрядной и 8-разрядной длины. Текст программы приведен в табл. 4.6.
Таблица 4.6
Адрес памяти | Микрокоманда | Выполняемая операция | |||||||
7-8 | |||||||||
MS2 18-16 | MS1 12-10 | ||||||||
хxx | х 011 F→B | х 111 R=D S=0 | х 011 R ![]() | xxxx | Загрузка R0 | ||||
xxx | 0 111 2F→B | 1 011 R=0 S=B | х 011 R ![]() | xxxx | xxxx | Сдвиг R0 влево циклический. | |||
хxx | 0 101 F/2→B | 1 011 R=0 S=B | х 011 R ![]() | xxxx | xxxx | Сдвиг R0 вправо | |||
хxx | х 000 F→Q | X 010 R=0 S=Q | х 100 R ^S | xxxx | xxxx | xxxx | Обнуление Q | ||
xxx | 1 110 2F→B 2Q→Q | 0 011 R=0 S=B | х 011 R ![]() | xxxx | xxxx | Циклический сдвиг двойной длины влево | |||
xxx | 1 100 F/2→B Q/2→Q | 0 011 R=0 S=B | х 011 R ![]() | xxxx | xxxx | Циклический сдвиг двойной длины вправо | |||
х 001 Y=F | х 011 R=0 S=B | х 011
R ![]() | xxxx | xxxx | xxxx | Пустая операция |
В данную микропрограмму включены микрокоманды (1, 2 и 4, 5), в которых реализуется переход по адресу, содержащемуся в регистре Радр (переход по вектору). Использование этих микрокоманд позволяет выполнить операцию, определяемую операционным полем микрокоманды, произвольное число раз. Для выполнения микропрограммы необходимо соответствующим образом управлять регистром адреса перехода (в этот регистр перед выполнением микропрограммы необходимо занести адрес микрокоманды, исполнение которой планируется многократно). Тип сдвиговых операций задается разрядами микрокоманды MS2 и MS1.
Выполните микропрограмму 2, последовательно реализуя следующие действия:
- выполните микрокоманду, размещенную по нулевому адресу ЗУМК. В результате ее выполнения в РОН0 загружается число 2, а БМУ формирует адрес перехода к следующей микрокоманде, размещенной по первому адресу ЗУМК. На индикаторах ДАННЫЕ ЖКИ-индикатора высветится число 2. Поскольку микрокоманда, размещенная по первому адресу ЗУМК, является микрокомандой, осуществляющей переход по вектору, то при ее выполнении БМУ сформирует адрес, определяемый регистром Радр. Для правильного выполнения микропрограммы соответствующий адрес должен находиться в регистре Радр;
- перейдите в режим ЗАГРУЗКА и загрузите в регистр адреса перехода адрес микрокоманды, исполнение которой планируется многократно (в данном случае 001);
- вернитесь в режим РАБОТА и нажав клавишу ПУСК выполните микрокоманду, размещенную по первому адресу. Поскольку в регистре Радр хранится число 001 БМУ реализует переход на адрес 001, т.е. снова к микрокоманде, размещенной по первому адресу ЗУМК. При последовательном нажатии кнопки ПУСК микрокоманда, размещенная по первому адресу, будет выполнять циклический сдвиг содержимого РОН0 влево на один разряд. Зафиксируйте результат выполнения этой микрокоманды при нажатии клавиши ПУСК пять раз (значения индикаторов ДАННЫЕ ЖКИ-монитора). Сравните результат, отображаемый на табло, с теоретическим значением содержимого регистра при циклическом сдвиге. Объясните причину несоответствия.
- перейдите в режим ЗАГРУЗКА и загрузите в регистр Радр число 002 - адрес микрокоманды, реализующей циклический сдвиг вправо;
- вернитесь в режим РАБОТА и нажав клавишу ПУСК выполните микрокоманду, размещенную по адресу 2. Последовательно нажимая клавишу ПУСК и контролируя результат по индикаторам ДАННЫЕ, убедитесь в том, что при каждом нажатии ПУСК осуществляется циклический сдвиг содержимого РОН0 вправо на один разряд. Зафиксируйте результат выполнения этой микрокоманды при нажатии клавиши ПУСК несколько раз;
- аналогично рассмотренному загрузите в регистр Радр адрес 003 и выполните микрокоманду обнуления регистра Q, размещенную по этому адресу. При ее выполнении реализуется переход к следующей микрокоманде (по адресу 004), которая является микрокомандой перехода по вектору;
- аналогично рассмотренному загрузите в регистр Радр адрес 004 и выполните микрокоманду циклического сдвига двойной длины влево. С помощью световых индикаторов ДАННЫЕ зафиксируйте результат выполнения этой микрокоманды при нажатии клавиши ПУСК несколько раз;
- аналогично рассмотренному загрузите в регистр Радр адрес 005 и выполните микрокоманду циклического сдвига двойной длины вправо. С помощью индикаторов ДАННЫЕ ЖКИ-монитора зафиксируйте результат выполнения этой микрокоманды при нажатии клавиши ПУСК несколько раз;
- аналогично рассмотренному загрузите в регистр Радр адрес 006 и завершите выполнение микропрограммы 2.
Объясните результаты выполнения микрокоманд сдвига.
Составьте и выполните микропрограмму, демонстрирующую выполнение арифметического сдвига 8-разрядной длины вправо и влево, а также 4-разрядного сдвига с вводом лог.0 в старшие (при сдвиге вправо) или младшие (при сдвиге влево) разряды РОН и регистра Q.
В МП К1804ВС1 при выполнении сдвиговых операций выдвигаемый бит не фиксируется. Определение значения выдвигаемого бита можно выполнить программным способом. Примеры определения значения выдвигаемого бита рассматриваются в микропрограмме 8.
Микропрограмма 3 иллюстрирует действие некоторых арифметических операций в ЦПЭ К1804ВС1. Текст микропрограммы приведен в табл.4.7.
Микрокоманды 0 и 1 используются для инкремента и декремента содержимого РОН0. Здесь и при последующем изложении номер микрокоманды соответствует ее адресу. Микрокоманды 2, 3 демонстрируют сложение (вычитание) содержимого РОН с константой. Микрокоманды 4, 5, 6 реализуют сложение содержимого двух РОН. В данной микропрограмме, как и в предыдущей, используются микрокоманды, реализующие переход по вектору - микрокоманды 0, 1, 2, 3.
Таблица 4.7
Адреса памяти | Микрокоманда | Выполняемая функция | |||||||
7-8 | |||||||||
MS2 I8-I6 | MS1 I2-I0 | C0 I5-I3 | |||||||
хxx | x011 | х011 | 1 000 | xxxx | хххх | R0+1 | |||
xxx | x011 | x011 | 0 001 | xxxx | xxxx | R0 - 1 | |||
xxx | x011 | х101 | 0 000 | R0+3 | |||||
xxx | x011 | х101 | 1 001 | R0 – 5 | |||||
xxx | x011 | х011 | х 100 | xxxx | Обнуление R0 | ||||
xxx | x011 | х111 | х 011 | xxxx | R1=5 | ||||
xxx | x011 | х001 | 0 000 | xxxx | R0← R0+ R1 | ||||
xxx | x011 | х001 | 0 000 | xxxx | R0← R0+ R1 | ||||
xxx | x011 | Х101 | 0 000 | хххх | R0← R0+ D | ||||
х001 | х011 | х 011 | xxxx | xxxx | xxxx | Пустая операция |
Выполните микропрограмму 3. Результат выполнения отдельных микрокоманд фиксируйте с помощью индикаторов ДАННЫЕ ЖКИ-монитора.
Составьте и выполните микропрограмму, демонстрирующую выполнение других микрокоманд арифметических и логических операций.
Микропрограмма 4 иллюстрирует работу БМУ при безусловных переходах. Текст микропрограммы приведен в табл. 4.8. Микрокоманды 0, 4, 10, 15 выполняют безусловный переход по адресу из регистра микрокоманд, микрокоманды 3, 9 реализуют безусловный переход "Продолжить".
Поскольку при передачах управления операция, выполняемая ЦПЭ, обычно не имеет значения, кодирование разрядов операционного поля микрокоманд может быть любым. Однако для сохранения неизменным содержимого блока внутренних регистров в поле приемника результата микрокоманды необходимо указать код 001, запрещающий куда-либо запись результата АЛУ.
Таблица 4.8
Адреса памяти | Микрокоманда | Выполняемая функция | |||||||
7-8 | |||||||||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | (БП) по адресу 9 | |||
xxx | х001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП (продолжить) | ||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП по адресу 015 | |||
xxx | x001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП (продолжить) | ||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП по адресу 3 | |||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП по адресу 0 |
Выполните микропрограмму в пошаговом режиме. Результат выполнения микропрограммы 4, формируемый на выходе БИС К1804ВУ1, наблюдайте по содержимому поля АДРЕС («десятичный код адреса следующей микрокоманды») ЖКИ-монитора (позиции символов 5-7).
Результат выполнения микропрограммы представьте в виде диаграммы переходов.
Микропрограмма 5 иллюстрирует один из способов организации цикла с помощью стека. Текст микропрограммы приведен в табл.4.9.
Таблица 4.9
Адреса памяти | Микрокоманда | Выполняемая функция | |||||||
7-8 | |||||||||
xxx | х001 | xxxx | xxxx | xxxx | xxxx | xxxx | Продолжить | ||
xxx | х001 | xxxx | xxxx | xxxx | xxxx | xxxx | Загрузить в стек и продолжить | ||
xxx | х001 | xxxx | xxxx | xxxx | xxxx | xxxx | Продолжить | ||
x001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП по адресу 10 | |||
xxx | х001 | xxxx | xxxx | xxxx | xxxx | xxxx | Переход по стеку |
В данной микропрограмме, как и в предыдущей, действие, выполняемое ЦПЭ, не имеет значения, поэтому кодирование разрядов операционного поля микрокоманд может быть любым.
Выполните микропрограмму в пошаговом режиме, фиксируя адреса, формируемые на выходе БИС К1804ВУ1, по содержимому поля АДРЕС ЖКИ-монитора.
Отметим, что микропрограмма 5 не демонстрирует способы выхода из цикла. Для выхода из цикла можно использовать микрокоманды условных переходов или микрокоманды, в адресном поле которых (тетрада 6) закодирована инструкция перехода по результатам проверки конца цикла: -1000, если результат операции АЛУ равен нулю (Z=1) или 1011, если C4=1. В корректной микропрограмме одна из указанных микрокоманд обязательно должна быть включена в тело цикла.
Разработайте микропрограмму 6, реализующую обращение к подпрограмме и возврат из нее, в соответствии с диаграммой переходов на рис.4.14.
В разрабатываемой микропрограмме используйте микрокоманду, в которой закодированы инструкция "Переход к подпрограмме" (код 0101 в поле 6 микрокоманды) и адрес первой микрокоманды подпрограммы (поле 7-8). В последней микрокоманде подпрограммы должна быть указана инструкция "Возврат из подпрограммы" (код 0110 в поле 6).
Выполните микропрограмму в пошаговом режиме, контролируя адреса, формируемые на выходе БИС К1804ВУ1 по содержимому поля АДРЕС ЖКИ-монитора.
Микропрограмма 7 иллюстрирует работу стека при вложении подпрограмм, когда одна подпрограмма вызывает другую, которая, в свою очередь, может вызвать третью и т.д. На рис.4.15 предложена диаграмма организации последовательности выполнения вложенных микропрограмм. В табл. 4.10 содержится начальный фрагмент микропрограммы, соответствующий, диаграмме. Закончите написание текста микрограммы и выполните её в пошаговом режиме, контролируя адреса, формируемые на выходе БИС К1804ВУ1 по содержимому поля АДРЕС ЖКИ-монитора.
Таблица 4.10
Адреса памяти | Микрокоманда | Выполняемая функция | |||||||
7-8 | |||||||||
xxx | х001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП (продолжить) | ||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | Переход к подпрограмме 1 | |||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП по адресу из Рг микрокоманд | |||
x001 | xxxx | xxxx | xxxx | xxxx | xxxx | Переход к подпрограмме 2 | |||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | Переход к подпрограмме 3 | |||
xxx | х001 | xxxx | xxxx | xxxx | xxxx | xxxx | Возврат из подпрограммы 1 |
Ответьте на вопросы:
Какие ограничения на количество вложенных подпрограмм накладывает организация стека БИС СУАМ К1804 ВУ1?
Можно ли с использованием СУАМ К1804 ВУ1 реализовать микропрограмму, содержащую 10 подпрограмм?
Микропрограмма 8 иллюстрирует реализацию условных переходов в типовых микропрограммах. Текст микропрограммы представлен в табл.4.11.
В микротренажере МТ2 1804 признаки результата выполненной в АЛУ операции запоминаются в регистре состояния. В соответствии со значениями этих признаков предусмотрено несколько различных команд условного перехода, кодирование которых в микрокомандах осуществляется согласно табл.4.4. Если условие выполнено, то реализуется переход по адресу, указанному в тетрадах 7-8 микрокоманды, в противном случае выполняется следующая по порядку микрокоманда. Конструктивной особенностью данного тренажера является то, что формируемые в АЛУ признаки результата записываются в регистр состояния в момент завершения импульса синхронизации. По этой причине реализацию условных переходов можно осуществить не ранее, чем в следующем такте после микрокоманды, в которой формируется контролируемый признак.
Другой особенностью тренажера является то, что при выполнении микрокоманды, содержащей код условного перехода, признаки результата операции, указанной в этой микрокоманде, никуда не записываются, а потому и переход по ним невозможен. Наличие блокировки записи в регистр состояния при выполнении микрокоманд условных переходов позволяет осуществить несколько проверок результата выполненной операции по значению различных флагов, при этом содержимое регистра состояния будет оставаться неизменным. Содержимое регистра состояния отображается в одноименном поле ЖКИ-монитора (позиции символов 29-32).
Таблица 4.11
Адреса памяти | Микрокоманда | Выполняемая функция | |||||||
7-8 | |||||||||
xxx | х011 | х011 | xxxx | xxxx | R0 +1, продолжить | ||||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | УП по С4 | |||
х001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП по адресу 0 | |||
xxx | х001 | xxxx | xxxx | xxxx | xxxx | xxxx | БП (продолжить) |
Микрокоманда 0 выполняет инкремент содержимого регистра R0 и передает управление следующей микрокоманде. Микрокоманда 1 проверяет состояние выходного переноса АЛУ C4. При единичном значении флага C4 выполняется переход на адрес 255, в противном случае - к следующей микрокоманде. Операции, выполняемые ЦПЭ в микрокомандах 2 и 255, не имеют значения, поэтому кодирование разрядов операционного поля этих микрокоманд за исключением поля приемника результата может быть любым.
Выполните микропрограмму в пошаговом режиме, фиксируя адреса, формируемые на выходе БИС К1804ВУ1 по содержимому поля АДРЕС ЖКИ-монитора.
Ранее отмечено, что в МП К1804ВС1 при выполнении сдвиговых операций выдвигаемый бит не фиксируется. Значение выдвигаемого бита выполняется программным способомс использованием команд условного перхода. Для определения значения выдвигаемого бита можно следующие действия:
- при сдвиге влево для определения значения выдвигаемого бита до сдвига анализируется значение старшего разряда (например, микрокомандой чтения регистра), после этого выполняется сдвиг и проверка флага F3. Если F3=1, то выдвигаемый бит (перенос) равен 1, в противном случае – 0.
- при сдвиге вправо исходное слово перед сдвигом маскируется словом-маской 00…01, содержащем единственную 1 в младшем разряде слова. Затем выполняется сдвиг и реализуется условный переход по значению флага Z. Если Z=1, то выдвигаемый бит (перенос) равен 0 и осуществляется выбор одной из возможных ветвей продолжения, в противном случае – перенос равен 1 и осуществляется выбор другой ветви.
Составьте и выполните фрагменты микропрограмм, иллюстрирующие определение значения выдвигаемого бита при сдвигах вправо и влево.
Дата публикования: 2014-11-02; Прочитано: 1796 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!