Для обмена данными БИС с МП будем использовать программный опрос.
Предварительно рассмотрим логику функционирования устройства.
Микросхема позволяет адресовать сигнал с шины данных на три внешних объекта с помощью трех 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 - снять бит |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.