Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Micro_systK.doc
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
4 Мб
Скачать
☆

4.5. Способы организации ввода/ вывода информации в мпс

Существуют три способа организации ввода/вывода информации в микро­процессорных системах:

  • под управлением основной программы;

  • в режиме прерывания программы;

  • в режиме прямого доступа к памяти.

4.5.1. Организация ввода/вывода информации под управлением основной программы

Рассмотрим особенности организации ввода/вывода под управлением основной программы на примере решения конкретной задачи применительно к микропроцессору I8086.

Задача 1. При изменении состояния переключателей S1 и S2 (см. рис. 4.15) необходимо записать информацию в ячейку памяти с адресом ADR.

Для обеспечения решения поставленной задачи микропроцессор должен непрерывно опрашивать порт ввода, к которому подключены переключатели S1 и S2,и после изменения их положения зафиксировать введенную информацию в ячейке памяти ADR.

Фрагмент программы, реализующий данный алгоритм, представлен ниже.

MOV BL, 00h ; Обнуление регистра BL

M1: IN AL, 00h ; Опрос порта 00h

AND AL, 03h ; Маскирование старших разрядов

CMP AL, BL ; Сравнение содержимого регистров AL и BL

JZ M1 ; Переход на метку M1, если нет изменения

MOV ADR, AL ; Запись информации в ячейку ADR

MOV BL, AL ; Запись информации в регистр BL

JMP M1 ; Переход на опрос порта

Достоинство ввода/вывода информации под управлением основной про­граммы – минимальные аппаратные затраты.

Недостатками способа:

  • микропроцессор постоянно занят опросом порта и не может решать другие задачи;

  • задержка в обнаружении изменения информации может достигать пе­риода опроса порта;

  • возможность приема ложной информации вследствие “дребезга” кон­тактов.

Для устранения последнего недостатка необходимо после обнаружения изменения информации на входе порта повторить опрос порта в момент времени, когда все переходные процессы будут закончены, т. е. необходимо ввести задержку по времени большую, чем время “дребезга” контактов (см. рис. 4.16).

С учетом этого доработанный вариант программы будет иметь вид:

MOV BL, 00h ; Обнуление регистра BL

M1: IN AL, 00h ; Опрос порта 00h

AND AL, 03h ; Маскирование старших разрядов

CMP AL, BL ; Сравнение содержимого регистров AL и BL

JZ M1 ; Переход на метку M1, если нет изменения

CALL TZ ; Уход на п/программу задержки TZ

IN AL, 00h ; Опрос порта 00h

AND AL, 03h ; Маскирование старших разрядов

MOV ADR, AL ; Запись информации в ячейку ADR

MOV BL, AL ; Запись информации в регистр BL

JMP M1 ; Переход на опрос порта

t

t

S1

S2

t1

t2

t3

t4

t5

t6

3

Рис. 4.16. Борьба с “дребезгом” контактов кнопок

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]