Не то, чтобы раньше не знал, знал и даже вот здесь его показывал.
Но тут пришлось поработать с ним вплотную, а поскольку Интернет не богат
на описание работы этой БИС, то я решил выложить материалы здесь.
Расширитель ввода/вывода КР580ВР43
Расширитель ввода/вывода (РВВ) КР580ВР43 предназначен для увеличения числа линий связи МК48 с объектом управления, но при соблюдении протокола обмена может работать и с другими МК. Расширитель содержит четыре 4-битных двунаправленных порта, которые являются прямым расширением резидентной системы ввода/вывода МК48. Это порты, именуемые Р4, Р5, Р6 и Р7. Обращение к портам РВВ осуществляется по специальным командам (MOVD, ANLD и ORLD), выполняемым совместно МК48 и расширителем. Выходы расширителя обладают высокой нагрузочной способностью: выходной ток составляет 5 и 0,24 мА для нуля и единицы соответственно.
Основные режимы работы
Подключение РВВ к МК48 производится путем соединения одноименных выводов ПРОГ и Р2.0—Р2.3. Все пересылки между МК48 и РВВ осуществляются через линии Р2.0—Р2.3 по синхросигналу ПРОГ (PROG), вырабатываемому МК48 при выполнении команд обмена с портами РВВ (MOVD, ANLD и ORLD). В процессе выполнения каждой команды обмена между РВВ и МК передаются две тетрады: первая содержит код выполняемой операции и адрес порта, вторая — данные. Сначала, при переходе сигнала ПРОГ из 1 в 0, передается управляющее слово, а затем, при переходе сигнала ПРОГ из 0 в 1, передаются данные.
Формат УС представлен на следующем рисунке:
Безо всякого МК48 порт КР580ВР43 вполне применим. У меня он сейчас работает в связке с PIC 16F877-20/P.Изменить состояние сигналов на выходах РВВ можно тремя способами: непосредственно с помощью команды MOVD Рр, А загрузить в требуемый порт новое значение; с помощью команды ORLD Рр, А произвести логическое сложение порта и аккумулятора и результат загрузить в порт и, наконец, с помощью команды ANLD Рр, А произвести логическое умножение старого содержимого порта и аккумулятора и результат загрузить в порт. Следует особо отметить, что логические операции над данными выполняет сам РВВ, а не МК48.
Прочитать данные из входного порта можно с помощью команды MOVD A, Pp. При выполнении операции ввода указанный порт настраивается на ввод, и его выходы переключаются в третье состояние. Таким образом, для настройки какого-либо порта РВВ на ввод данных необходимо выполнить для него команду ввода. Если до выполнения команды ввода порт находился в режиме вывода, то результат первого ввода окажется неопределенным, а все последующие команды ввода будут давать правильный результат.
Выполнение команд ввода/вывода поясняется временными диаграммами на рис. П 2.1, в.
При включении питания все порты РВВ переходят в третье состояние, а линии Р2.0—Р2.3 настраиваются на режим ввода.
Если достаточно одного порта, /CS - вешают на землю и шевелят выводом PROG, подавая команды и данные как в описании.