Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессоры.doc
Скачиваний:
12
Добавлен:
24.11.2019
Размер:
9.53 Mб
Скачать
    1. Устройства ввода-вывода

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

      1. Устройство звуковой сигнализации

Кратковременный звуковой сигнал обычно выдается сразу после включения электропитания МПС, что означает начало функционирования, или формируется в процессе ее работы в необходимых случаях. Схема программируемого устройства звуковой сигнализации (УЗС), адресуемого кодом на линиях А0 — А7 и предназначенного для генерации звука определенной тональности, приведена на рис. 2.20, где обозначено:

  • DD1 — дешифратор кода адреса на линиях А0—А2 .

  • DD2 — D-триггер

  • DD3 — логический элемент 2ИЛИ-НЕ, вырабатывающий сигнал записи WR;

  • схема на элементах DD4, DD5, DD6, разрешающая работу DD1 сигналом L-уровня.

Микросхема триггера вырабатывает электрические импульсы необходимой длительности и частоты, которые затем усиливаются транзистором по току для их преобразования в звук громкоговорителем. Генерация импульсов на выходе Q осуществляется путем поочередной записи в триггер со звуковой частотой логических единиц и нулей, выдаваемых ЦП на линию D0 в соответствии с программой.

Временная диаграмма, отображающая процесс формирования триггером импульса Н-уровня приведена на рис. 2.21. Согласно диаграмме, в момент времени t0 ЦП выдает на ША адресный код УЗС — в данном случае 00h. В соответствии с этим кодом ДА устанавливает сигнал L-уровня, после чего на линию D0 помещается логическая 1. Далее, в момент времени t1 ЦП вырабатывает низкоуровневый сигнал записи , поступающий после на вход DD3. В результате операции ИЛИ-НЕ между и ( ) микросхема DD3 на отрезке времени [t1, t2] выдаст импульс WR Н-уровня, передний фронт которого осуществит защелкивание в триггере DD2 логической 1, ранее

Рис. 2.20

Рис. 2.21

установленной на линии D0. В этом случае в момент t1 выход триггера Q переключится из 0 в 1. Обратное переключение выхода произойдет в момент t3 при записи 0 — таким образом будет сформирован импульс длительностью [t1, t3].

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

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

Программа 2.2

МЕТКА

МНЕМОКОД

КОММЕНТАРИЙ

LXI SP 0900

Начало программы

Запись в регистр SP адреса вершины стека.

LXI B, FFFF

Запись в регистровую пару ВС числа повторений цикла START (65535 повторений).

START:

XRA А

Начало цикла START.

Поразрядное логическое исключающее ИЛИ аккумулятора с самим собой, в результате чего его разряды устанавливаются в 0 (очистка).

OUT 00

Вывод содержимого аккумулятора (нули) в УВВ (D-триггер) с адресом 00h.

CALL DELAY

Вызов подпрограммы, формирования временной паузы.

CMA

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

OUT 00

Вывод содержимого аккумулятора (FFh) в УВВ.

CALL DELAY

Вызов подпрограммы, формирования временной паузы.

DCX B

Уменьшение содержимого регистровой пары ВС на 1.

JNZ START

Если результат не равен 0, то переход к метке START.

Конец цикла START.

HLT

Конец программы.

RST7

Подпрограмма 2.2

МЕТКА

МНЕМОКОД

КОММЕНТАРИЙ

DELAY:

LXI D, FFFF

Начало подпрограммы DELAY.

Запись в регистровую пару DE числа повторений цикла CYCLE.

CYCLE:

DCX D

Начало цикла CYCLE.

Уменьшение регистровой пары DE на 1.

JNZ CYCLE

Если результат не равен 0, то переход на метку CYCLE.

Конец цикла CYCLE.

RET

Возврат в основную программу.

Конец подпрограммы DELAY.

Выполнение основной программы начинается с записи в регистр SP адреса вершины стека, в котором всякий раз будет сохраняться содержимое IP при вызове подпрограммы командами CALL DELAY. При завершении этой подпрограммы командой RET сохраненное в стеке значение IP будет восстановлено. Необходимость сохранения и восстановления IP была рассмотрена в п. 2.2.4.

Программа содержит цикл, начинающийся с метки START. Внутри цикла кроме остальных находятся две команды OUT 00, осуществляющие запись в триггер логических единиц и нулей. Первая команда OUT 00 выводит на ШД код 00h, а вторая — FFh. Если на ШД установлено значение 00h, то разряд D0 равен 0, если же FFh — то 1. Перед началом цикла в регистр В записывается код FFFFh. Счетчиком цикла является команда DCX B, уменьшающая регистр В на 1 до тех пор, пока не произойдет обнуления всех его разрядов, завершающего цикл. Таким образом, в результате циклического выполнения команд OUT 00 на линию D0 будет выдано 65535 единиц и нулей, частота формирования которых определит длительность звучания.