Разработка микропроцессорной системы на базе микропроцессора I-8085A, содержащую: 2 кБ ROM памяти, 2 кБ RAM памяти, периферийные БИС I-8255A (параллельный интерфейс) и I-8279 (контроллер клавиатуры и дисплея), страница 8

- работа двунаправленный обмен по порту А с квитированием, для квитирования используется порт С, порт В работает в режиме простого ввода.

- используем линейный выбор устройства ввода-вывода, при котором для каждого устройства используется определенная линия адреса. Для работы БИС требуется 2 младших разряда с линии адреса(A1, A0) и один разряд для выбора устройства (A4). Это уменьшает число возможных портов ввода вывода, но позволяет упростить дешифрацию.

Таким образом, получаем следующие адреса портов параллельного интерфейса.

Таблица 8. Адреса портов параллельного интерфейса

Адрес порта

Назначение

хxxx0100

При записи: Запись с шины данных в порт А

При чтении: Чтение из порта А

хxxx0101

При записи: Запись с шины данных в порт В

При чтении: Чтение из порта B

хxxx0110

При записи: Запись с шины данных в порт С

При чтении: Чтение из порта C

xxxx0111

При записи: Запись с шины данных в регистр управления

При чтении: не используется

            Подключение БИС к МПС выполняется следующим образом. Шину данных подключаем к шине данных МПС. Входы ~RD, ~WR к сигналам ~IOR, ~IOW шины управления. К входам A1, A0 к двум младшим разрядам старшей части шины адреса, а вход ~CS к третьему разряду старшей части шины адреса.

В соответствии с заданием в качестве периферийной БИС интерфейсного устройства клавиатуры и дисплея использована микросхема Intel 8279, предназначенного для обслуживания 64-клавишной клавиатуры и одного 16 разрядного алфавитно-цифрового дисплея клавиатуры и дисплея.

Микросхема состоит из двух функционально-автономных частей:

- клавиатурной, обеспечивающей ввод информации в БИС через линии возврата с клавиатуры RL7-RL0, а также ввод по стробирующему сигналу. Для хранения вводимой информации в БИС предусмотрена память типа  FIFO ёмкостью 8 байт.

- дисплейной части, обеспечивающей вывод информации по двум 4-х разрядным каналам OUT A3- OUT A0 и OUT B3-OUT B0 в виде двоичного кода на 8-  и 16-разрядные цифровые и алфавитно-цифровые дисплеи. Для хранения информации, подлежащей отображению, в микросхеме имеется ОЗУ ёмкостью 128 бита, которая может быть организована 1 банком с организацией 16*8, либо 2 банками с организацией 16*4.

Кроме того, микросхема обеспечивает формирование сигналов сканирования SL3-SL0 клавиатуры и дисплея, а также сигнала для гашения информации на дисплее BD.

Конфигурируем БИС следующим образом:

- будем использовать матрицу ключей 8*8+2 в качестве клавиатуры;

- будем использовать режим дешифрированного сканирования, при котором c выходов сканирования S3-S0 непосредственно выдаются сигналы сканирования клавиатуры и дисплея;

- используем для обмена БИС с МП программный опрос;

- в качестве дисплея используем 8 семисегментных индикаторов;

Подключаем БИС к МПС следующим образом:

- шину данных БИС подключаем к  шине данных МПС;

- вход RESET подключаем в выходу RESET OUT процессора, вход CLK  в выходу CLOCK, входы ~RD, ~WR к сигналам ~IOR, ~IOW шины управления, вход

~CS подключаем к сигналу A3 старшей части шины адреса;

Подключение клавиатуры и дисплея:

- к трём младшим разрядам подключим дешифратор 74LS138 c инверсными выходами для разрешения работы дешифратора вход G1 подключаем к логичской единице через R2=1Ком, а входы G2A и G2B к земле;

- подключаем контактную клавиатуру, к сигналам дешифратора, и линиям возврата контроллера дисплея и клавиатуры, подключаем входы клавиш Control и Shift к соответствующим выходам клавиатуры;

- в качестве дисплея используем 8 семисегментных индикаторов типа GNS-3011HS с общим анодом;

- выходы каналов дисплея OUT A3- OUT A0 и OUT B3- OUT B0 подключаем к информационным входам дисплея через буфер 74LS244.

-  выходы дешифратора через анодные формирователи, построенные на транзисторах BF441 , подсоединяем к общим анодам 7-сегментных индикаторов;

Таблица 9. Адреса портов контроллера дисплея и клавиатуры

Адрес порта

Назначение

хxxx10x0

При записи: Запись в ОЗУ дисплея

При чтении: Чтение ОЗУ клавиатуры или ОЗУ дисплея

хxxx10x1

При записи: Запись в регистр команд

При чтении: Чтение статусного регистра