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

Построение двухстраничного модуля памяти

Если требуется ОЗУ и ПЗУ небольшой емкости (несколько Кбайт), то можно обойтись 1 страницей ПЗУ и 1 страницей ОЗУ и исключить дешифратор адреса страниц. При этом селектором страницы будет некоторый разряд ШД.

1) А15 − селектор страницы (при А15 = 0 это ПЗУ, при А15 = 1 это ОЗУ).

Адреса ПЗУ: 0000Н ÷ 07FFH

ОЗУ: 8000H ÷ 87FFH

2) А11 − селектор страницы (при А11 = 0 это ПЗУ, при А11 = 1 это ОЗУ).

Адреса ПЗУ: 0000Н ÷ 07FFH

ОЗУ: 8000H ÷ 0FFFH

Модуль ввода-вывода

МПС связывается с внешними устройствами через порты ввода-вывода.

Порт − это адрес устройства, из которого МП получает информацию или в которое МП выводит данные. Это 8-разрядный регистр.

Недостаток − невозможно изменять функции программно. Это неудобно при работе со сложными внешними устройствами. Поэтому применяются более сложные порты на интерфейсных БИС.

В модуле ввода-вывода 3 основных элемента:

  1. адресный селектор, который декодирует адрес порта

  2. сам порт ввода или вывода

  3. схема управления порта.

Методы адресации портов:

    1. ) с раздельным полем адресов памяти и портов;

При обращении к портам: (IN port или OUT port), (port) = 00H … FFH.

При работе с памятью: и .

При работе с портами: и .

Достоинство − максимальное использование адресного пространства МП, т. е. возможно максимальное число ячеек памяти и портов ввода-вывода.

Недостаток − для работы с портами имеется только 2 команды:

  • ввод: IN port (A) ← (port);

  • вывод: OUT port (port) → (A).

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

Признак: А15 = 0 − адрес ячейки памяти;

А15 = 1 − адрес порта.

Достоинство − одинаковые команды для работы с портами и памятью.

Недостаток − уменьшение адресного пространства памяти.

Реализация модуля ввода-вывода при раздельном поле адресов памяти и портов

Существует 2 метода кодирования адреса:

1) С использованием позиционного двоичного кода (возможно максимальное число адресов − 256)

00000000 = 00H

00000001 = 01H

…

11111111 = FFH

Чтобы декодировать этот код применяются дешифраторы (используют частичное декодирование), что может привести к ошибке при работе схемы. 1110000 - 00000000 =

А7 А6 А5 А4 А3 А2 А1 А0

HEX

х х х 0 0 0 0 0

х х х 0 0 0 0 1

…

х х х 0 0 1 1 1

00H

01H

…

07H

Полное декодирование с 2-мя дешифраторами:

Адреса: 00…99 (должны быть в двоично-десятичном коде).

Достоинство − полное декодирование адреса.

2) С использованием унитарного двоичного кода (используется только один 0 или одна 1).

А7 А6 А5 А4 А3 А2 А1 А0

HEX

0 0 0 0 0 0 0 1

0 0 0 0 0 0 1 0

0 0 0 0 0 1 0 0

0 0 0 0 1 0 0 0

0 0 0 1 0 0 0 0

0 0 1 0 0 0 0 0

0 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

01H

02H

04H

08H

10H

20H

40H

80H

Используются инверторы, которые ставятся в линию, где адрес − 1.

Такой метод называется линейным выбором портов.

Применение позиционного двоичного кода позволяет получить максимальное число портов (256), но требует сложных схем дешифраторов. Использование унитарного двоичного кода упрощает декодирование, однако максимальное число портов = 8.