Разработка микропроцессорной системы на базе микропроцессора M6800, содержащей: 2 кБ ROM памяти, 4 кБ RAM памяти, периферийные БИС M6850 и I-8255, страница 6

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

3.1 Программирование I8255A

          Предварительно рассмотрим логику функционирования устройства.

Микросхема позволяет адресовать сигнал с шины данных на три внешних объекта с помощью трех 8-разрядных каналов данных, которые могут работать как на вход, так и на выход (см. рис.1). Режим работы каждого канала задается управляющим словом, которое подается в регистр устройства командой OUT. Помимо трех 8-разрядных каналов данных, микросхема имеет 8-разрядный канал для подключения к шине данных, а также два адресных входа, позволяющих реализовать один из 4 адресов: выбор одного из трех каналов данных или регистра устройства.

Микросхема имеет 3 режима работы (см. рис.2):

§  Режим 0: синхронная программируемая передача данных по трем канала.

§  Режим 1: раздельный ввод или вывод информации по двум каналам (стробируемый), третий канал используется для управления обменом информации.

§  Режим 2: двунаправленный обмен информацией по одному каналу, остальные служат для управления передачей.

Режим работы каждого канала программируется в регистре управляющего слова (РУС). Этот режим можно изменить и в самом процессе выполнения программы. Таким образом, микросхема может работать сразу с несколькими периферийными устройствами.

          Доступ шины данных к каналам и РУС сведен в таблицу 1.

Рис 1. Структурная схема I8255A

Рис 2. Режимы работы I8255A

Таблица 1. Доступ к каналам ввода/вывода и регистру управляющего слова

A1

A0

#RD

#WR

#CS

Доступ

Чтение

0

0

0

1

0

Шина данных <- канал A

0

1

0

1

0

Шина данных <- канал B

1

0

0

1

0

Шина данных <- канал C

Запись

0

0

1

0

0

Шина данных -> канал A

0

1

1

0

0

Шина данных -> канал B

1

0

1

0

0

Шина данных -> канал C

1

1

1

0

0

Шина данных -> регистр управления

X

Х

Х

Х

1

Шина данных в высокоомном состоянии

Для программирования устройства также необходимо знать формат управляющего слова (см. табл. 2,3).


Таблица 2. Формат управляющего слова для выбора режима каналов.

D7

D6

D5

D4

D3

D2

D1

D0

Флаг управления:

1 - выбор режима

Группа A

Группа B

Выбор режима:

00 - режим 0

01 -режим 1

1х - режим 2

Канал A:

1 - ввод

0 - вывод

Старшая тетрада канала C:

1 - ввод

0 - вывод

Выбор режима:

0 - режим 0

1 - режим 1

Канал B:

1 - ввод

0 - вывод

Младшая тетрада канала C:

1 = ввод

0 = вывод

Каждый из восьми битов канала C может быть независимо от других установлен или сброшен с помощью специальной команды вывода, посылаемой в регистр управления. Это свойство канала C облегчает программирование в случае, когда биты канала C используется для управления передачей данных по каналам A или B. Формат команды приведен в табл. 3.

Таблица 3. Формат управляющего слова для оперирования битами канала C.

D7

D6

D5

D4

D3

D2

D1

D0

Флаг управления:

0 - оперирование битами

Произвольное состояние

Выбор бита:

0 0 0 = 0 бит

0 0 1 = 1 бит

0 1 0 = 2 бит

0 1 1 = 3 бит

1 0 0 = 4 бит

1 0 1 = 5 бит

1 1 0 = 6 бит

1 1 1 = 7 бит

1 - установить бит

0 - снять бит