Краткие теоретические сведения

В составе экспериментального стенда имеется группа из 8 переключателей, используемых для подачи информации на соответствующие входы микросхем К155ИЕ7, К155ИР13, К155КП7. Используемый в лабораторном стенде мультиплексор К155КП7 содержит 8 информационных входов D0...D7, три адресных входа А0...А2, вход разрешения работы мультиплексора Е. Работа мультиплексора разрешается при подаче на вход Е уровня логического нуля. Конструкция экспериментального стенда не позволяет осуществлять непосредственную подачу сигналов на адресные входы мультиплексора. Необходимый адрес, соответствующий опрашиваемому переключателю формируется с помощью микросхемы К155ИЕ7, выходы которой соединены с адресными входами мультиплексора (см. рисунок 2).

 
 

Обеспечивая прохождение на суммирующий вход счетчика соответствующего количества импульсов, возможно организовать работу мультиплексора в старт-стопном режиме. Сущность режима заключается в следующем: после подачи управляющего сигнала начинается передача необходимой информации, поданной на информационные входы мультиплексора. Входы мультиплексора коммутируются последовательно по мере поступления импульсов на суммирующий вход счетчика. После завершения передачи всех символов информации схема должна автоматически вырабатывать сигнал прекращения передачи. Формирование этого сигнала, запрещающего прохождение импульсов на суммирующий вход счетчика, может быть реализовано, например, с использованием триггера К155ТМ2 или программно.

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

and операнд_1, операнд_2 – операция логического умножения. Команда выполняет поразрядно логическую операцию И над битами операндов операнд_1, операнд_2. Результат записывается на место операнд_1.

test операнд_1, операнд_2 – операция "проверить". Команда выполняет поразрядно логическую операцию И над битами операндов операнд_1, операнд_2. Состояние операндов остается прежним, изменяются только флаги zf, sf, pf, что дает возможность анализировать состояние отдельных битов операнда без изменения их состояния.

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

loop метка_перехода – повторить цикл. Команда позволяет организовать циклы подобные циклам for в языках высокого уровня с автоматическим уменьшением счетчика цикла. В качестве счетчика цикла используется регистр сх. Работа команды заключается в выполнении следующих действий:

- декремента регистра сх;

- сравнение регистра сх с нулем;

если сх > 0, то управление передается на метку перехода;

если сх = 0, то управление передается на следующую после loop команду.

loope метка_перехода. Работа команды заключается в следующем.

- декремента регистра сх;

- сравнение регистра сх с нулем;

- анализа состояния флага нуля (zf);

если сх > 0 и zf = 1 то управление передается на метку перехода;

если сх = 0, или zf = 0 то управление передается на следующую после loope команду.

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

Наиболее очевидный способ увеличения числа разрядов на ввод – мультиплексирование принимаемых данных. Этот способ может быть реализован, например, с использованием микросхемы К1533КП11 рисунок 3 (аналог 74ALS257), реализующей преобразование восьми линий в четыре, которое выполняется в две фазы, ввод младшей тетрады и ввод старшей тетрады.

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

Из микросхем, имеющихся в составе экспериментального стенда, для организации ввода байта может быть использован регистр К155ИР13. Запись байта в регистр производится подачей импульса на тактирующий вход, при условии наличия на управляющих входах М01 и М02 уровней логической "1". С выходов регистра считывается младшая тетрада, затем регистр переводится в режим сдвига, выходной код сдвигается на четыре разряда, считывается старшая тетрада, после чего вновь производится запись байта.

 
 

Для большего увеличения возможностей параллельного порта может быть использована микросхема КР580ВВ55 (8255), позволяющая формировать 24-канальный ввод/вывод, имеющая в своем составе четыре регистра, три из которых используются для передачи данных, а четвертый, регистр управления, для хранения параметров настройки.

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

Для манипуляций с отдельными битами могут оказаться полезными следующие команды микропроцессора:

or операнд_1, операнд_2 – операция логического сложения. Может быть использована для установки отдельных разрядов в "1", при этом операнд_2 играет роль маски и содержит единичные биты на месте тех разрядов, которые должны быть установлены в "1" в операнд_1.

Для сброса определенных разрядов в "0" может быть использована, рассмотренная ранее команда логического умножения and, в которой операнд_2 содержит нулевые биты на месте тех разрядов, которые должны быть сброшены в "0" в операнд_1.

not операнд – операция логического отрицания. Выполняет поразрядное инвертирование каждого бита операнда. Результат записывается на место операнда.

Начиная с процессора 80386, в системе команд для манипуляций с отдельными битами содержаться команды вида: bt x операнд, номер бита.

При этом для установки, сброса и инвертирования заданного бита используются команды bts, btr, btc соответственно.

Для перемещения битов в поле операнда используются команды сдвига. Все команды сдвига имеют одинаковую структуру:

коп операнд, счетчик сдвигов

К командам логического линейного сдвига относятся следующие:

shl операнд, счетчик_сдвигов (Shift Logical Left) – логический сдвиг влево. Содержимое операнда сдвигается влево на количество битов, определяемое значением счетчик_сдвигов. Справа (в позицию младшего бита) вписываются нули.

shr операнд, счетчик_сдвигов (Shift Logical Right) – логический сдвиг вправо. Содержимое операнда сдвигается вправо на количество битов, определяемое значением счетчик_сдвигов. Слева (в позицию старшего бита) вписываются нули.

Порядок выполнения работы

1. Изучить схему включения мультиплексора К155КП7.

2. Изучить способы увеличения количества линий ввода-вывода для стандартного параллельного порта.

3. Разработать алгоритм для выполнения индивидуального задания.

4. Разработать программу для выполнения индивидуального задания.

5. Используя необходимые элементы, имеющиеся на стенде, собрать схему для выполнения задания.

6. Ввести программу индивидуального задания на ПК.

7. Убедиться в правильном выполнении задания, при необходимости изменить программу.

Варианты индивидуальных заданий

Таблица 2 - Варианты заданий к лабораторной работе №2

Содержание задания
  Опрашивать состояние переключателя D3: замкнут – прохождение "бегущих огней" на выходах К155ИР13 от седьмого к нулевому разряду. После заполнения всех разрядов сбросить регистр, выдержать паузу 5 секунд и повторить цикл. Если D3 разомкнут – зафиксировать регистр в текущем состоянии.
    Опрашивать переключатель D3. Замкнут – установить триггер DD6, разомкнут – сбросить триггер. Состояние переключателя отображать на мониторе.
  Опрашивать D4 и D7. В зависимости от состояния переключателей управлять триггерами DD6 и DD7 по следующему алгоритму: оба датчика разомкнуты – оба триггера сброшены; оба датчика замкнуты – оба триггера установлены; D4 замкнут, D7 разомкнут - DD6 установлен, DD7 сброшен; D7 замкнут, D6 разомкнут – DD7 установлен, DD6 сброшен.

Таблица 2. Варианты заданий к лабораторной работе №2 (продолжение)

    Опрашивать датчик D3. Замкнут – триггер DD7 установлен, разрешено прохождение импульсов чрез элемент DD11 с частотой 1Гц, разомкнут триггер DD7- сброшен, прохождение импульсов через DD11 запрещено.
  Опрашивать D1, D3, D7 – результат отображать на мониторе.
    Опрашивать D1 и D4. В зависимости от их состояния управлять регистром К155ИР13 по следующему алгоритму: D1 и D4 разомкнуты – работа регистра запрещена. D1 и D4 замкнуты – регистр в режиме параллельной записи. D1 замкнут, D4 разомкнут – регистр в режиме прямого сдвига. D4 замкнут, D1 разомкнут – регистр в режиме обратного сдвига.
  Организовать работу мультиплексора К155КП7 в старт-стопном режиме. Управлять началом опроса от клавиатуры.
  Организовать ввод байта в регистр К155ИР13 и чтение байта из регистра. Если полученное значение больше 64, сбросить триггер DD7, иначе установить триггер.
  В течении 10 секунд с интервалом в 1 секунду осуществлять ввод байта в регистр К155ИР13 и чтение байта из регистра. Считываемые данные записывать в файл.
  В течении 15 секунд с интервалом в 1 секунду осуществлять ввод байта в регистр К155ИР13 и чтение байта из регистра. Выводить на монитор все считываемые значения.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: