Устройство ввода и отображения информации на базе БИС КР580ВВ79

ПримечаниеВ комплекте: пояснительная записка, структурная и принципиальная схемы устройства, программа для работы с устройством
Загрузить архив:
Файл: 015-0018.zip (132kb [zip], Скачиваний: 57) скачать

Национальный технический университет Украины

"Киевский политехнический институт"

КУРСОВОЙ ПРОЕКТ

по курсу

"Вычислительные микропроцессорные

средства и системы"

Тема:

"Устройство ввода и отображения информации на базе

БИС КР580ВВ79 с подключением к параллельному порту ЭВМ (LPT)"

Допущено к защите:

"_____"__________________2000г.

Защищено с оценкой:

Выполнил:

ст. гр. ДК –71 ІІІ курса ФЭЛ

Кузин Евгений Андреевич

Преподаватель:

"_____"__________________2000г.

Корнев В.П.

Киев - 2000


СОДЕРЖАНИЕ

TOC o "1-2" h z Введение.. PAGEREF _Toc482027551 h 3

1.Описание контроллера КР580ВВ79. PAGEREF _Toc482027552 h 3

1.1.Структура контроллера КР580ВВ79. PAGEREF _Toc482027553 h 4

1.2. Связь с системной шиной. PAGEREF _Toc482027554 h 6

1.3. Программирование. PAGEREF _Toc482027555 h 6

1.4. Работа БИС КР580ВВ79. PAGEREF _Toc482027556 h 7

1.5. Интерфейс клавиатуры.. PAGEREF _Toc482027557 h 9

1.6. Интерфейс дисплея. PAGEREF _Toc482027558 h 11

2. Описание параллельного интерфейса ввода-вывода ЭВМ. PAGEREF _Toc482027559 h 13

3. Описание разрабатываемого устройства.. PAGEREF _Toc482027560 h 15

4. Разработка программного обеспечения.. PAGEREF _Toc482027561 h 15

5. Выбор элементной базы. PAGEREF _Toc482027562 h 17

выводы... PAGEREF _Toc482027563 h 17

ЛИТЕРАТУРА. PAGEREF _Toc482027564 h 18

Приложение 1. Листинг управляющей программы. PAGEREF _Toc482027565 h 19


Введение

Микропроцессорные системы в зависимости от их функционального назначения используют различные устройства ввода и отображения (УВО) информации. Несмотря на то, что в настоящее время любоая ЭВМ может быть оснащена достаточным набором стандартных устройств ввода и отображения информации (многофункциональные клавиатуры, символьно-графические дисплеи на ЭЛТ, другие манипуляторы), в некоторых случаях возникает необходимость использования нестандартных устройств ввода и отображения информации, выполняющих ограниченный набор функций, но при этом более компактных и приспособленных для работы в специфических условиях. Наличие у современных ЭВМ стандартизированных каналов (портов) ввода-вывода позволяет при наличии соответствующего програмного обеспечения обеспечить взаимодействие таких специализированных устройств с програмно-аппаратным комплексом ЭВМ. Примером таких устройств могут быть внешние блоки охранных систем, ситстем управления различным оборудованием и многое другое.

Для вышеописанных целей отечественной промышленностью был разработан ряд устройств, обеспечивающих функции ввода и отображения информации и ряд других вспомогательных функций. Одним из таких устройств является БИС КР580ВВ79, входящая в состав микропроцессорного комплекта КР580. Несмотря на то, чо данная БИС разрабатывалась для использования совместно с микропроцессором из комплекта КР580, данное устройство можно с успехом использовать и с другими устройствами, в частности с ЭВМ типа IBM-PC, используя параллельный интерфейс (LPT).

Целью данного курсового проекта является разработка устройства ввода и отображения информации на базе БИС КР580ВВ79.

1.Описание контроллера КР580ВВ79

БИС КР580ВВ79 – программируемое устройство, предназначенное для построения систем (подсистем) отображения информации на основе дисплеев (индикаторов) различных типов, а также ситем (подсистем) ввода информации из различного типа клавиатур (рис.1, табл.1).

Эта БИС позволяет автоматически сканировать клавиатуру, определить и выдать код позиции клавиши, нажатой в матрице клавиатуры, подавить помехи дребезга контактов клавиатуры, а также регененерировать изображение на дисплее (индикаторе). Программирование восьми режимов ввода и четырех режимов вывода обеспечивает широкие возможности для пользователя при вводе и отображении информации. Вводимая информация может накапливаться в обратном магазине (ОМ) ОЗУ датчиков с доступом "первый вошел-первый вышел" емкостью 8слов Х 8разрядов (8 байт). При наличии информации в ОМ ОЗУ датчиков микросхема вырабатывает запрос прерывания, а в случае ввода или чтения более восьми символов – сигналы ошибок переполнения или переопустошения в слове состояния. Для регенерации изображения на дисплее (индикаторе) в микросхеме имеется ОЗУ отображения объемом 16 слов Х 8 разрядов. Время сканирования клавиатурыи регенерации изображения задается программным способом. По электрическим параметрам БИС КР580ВВ79 полностью совместима с микросхемами серии ТТЛ. Конструктивно выполнена в пластмассовом корпусе типа 2123.40-2 ГОСТ 17467-79.

Рис. 1. Условное графическое обозначение (а) и назначение выводов (б) БИС КР580ВВ79.

1.1.Структура контроллера КР580ВВ79.

БИС КР580ВВ79 организована на базе внутренней шины. В ее состав входят (рис.2): ОМ ОЗУ датчиков со схемой управления и устранения дребезга клавиатуры, буферами клавиатуры и датчиков и схемой анализа состояния ОМ ОЗУ датчиков; схема управления и синхронизации со счетчиком сканирования; ОЗУ отображения с регистрами адреса и данных; средства сопряжения с системной шиной – буферы канала данных и схема управления чтением-записью.

ОМ ОЗУ датчиков обеспечивает хранение инфомрмации, поступающей со входов RET7…RET0, и выдачу ее в микропроцессор через внутраннюю шину данных и буферы канала данных по командам чтения. В этом блоке используются следующие сигналы:

RET7…RET0 – информация, вводимая с клавиатуры или матрицы датчиков. За счет внутренних нагрузок на этих выводах постоянно обеспечивается состояние лог.1 до появления входных сигналов низкого уровня.

SH – входной сигнал, используемый в режиме сканирования клавиауры для расширения (увеличения числа) функций клавиш (вывод SH также имеет внутреннюю нагрузку.

- входной сигнал, назначение которого определяется режимом работы в режиме сканирования (состояние лог.1) увеличивает число конфигураций клавиатуры; в режиме сканирующего ввода (состояние лог.0) используется как строб для ввода информации с линий возврата RET0…RET7 в ОМ ОЗУ датчиков по фронту сигнала (вывод также имеет внутреннюю нагрузку).

INT – выходной сигнал, переходит в состояние лог.1: в режиме сканирования клавиатуры при наличии данных в ОМ ОЗУ датчиков; в режиме сканирования матрицы датчиков при обнаружении изменения в датчиках.

Схема управления и синхронизации программно задает скорость ввода-вывода и синхронизирует работу всех узлов контроллера. Необходимая скорость ввода-вывода создается от деления частоты входной синхронизации на программно задаваемое число, лежащее в диапазоне 2…31. При работе схемы используются сигналы сброс SR, тактовый С и BD, блокирующий индикатор (дисплей в момент смены кодов символов.

Счетчик сканирования – 4-разрядный двоичный счетчик сканирует строки клавиатурной матрицы и  регенерирует изображения на дисплее (индикаторе). Программно счетчик можно установить в кодированный или декодированный (дешифрированный режим работы. В кодированном режиме он выдает на линии сканирования S3…S0 4-разрядный двоичный код от 00002 до 11112, который дешифрируется внешними дешифраторами; в декодированном режиме он выдает два младших разряда кода, а на линии сканирования S3…S0 4- разрядный унитарный код (активный уровень – лог.0). Внешних дешифраторов в этом случае не требуется, однако клавиатура может иметь не более четырех строк клавиш, а дисплей не более четырех знакомест при 8-разрядном коде символа и восемь знакомест при 4-разрядном коде.

Буферное ОЗУ отображения – ОЗУ с произвольным доступом, хранит коды символов, отображаемых на дисплее. Каждый байт может рассматриваться как два независимых полубайта. Это позволяет обслужить дисплей с большими функциональными возможностями – на 16 знакомест при восьмиразрядном коде символа и на 32 знакоместа при 4-разрядном коде символа. ОЗУ доступно для записи и чтения информации. Регистр адреса ОЗУ отображения может быть прогаммно установлен в режим автоинкрементирования. В процессе регенерации отображения на дисплее информация из ОЗУ отображения на дисплее циклически выдается на выходы DSPA3…DSPA0 иDSPB3…DSPB0, причем бит DSPA3 соответствует биту D7 шины данных, а DSPB0 – биту D0.

Буфер канала данных – двунаправленный трехстабильный, осуществляет стыковку внутренней шины данных БИС КР580ВВ79 с системной шиной данных с помощью линий D7… D0.

Схема управления чтением-записью управляет блоками контроллера при приеме информации с системной шины данных и выдаче информации на эту шину. Для управления схемой используются следуюшие сигналы:

- разрешают проведение операций чтение-запись, выдачу информации на системную шину данных, прием информации с системной шины данных соответственно;

INS=1) или передачу данных (

1.2. Связь с системной шиной

Операции чтения-записи выполняются в зависимости от состояния управляющих сигналов (табл.1)

Таблица 1.

Входные сигналы

Вид операции

1

1

0

0

Запись комманды

0

1

0

0

Запись данных

1

0

1

0

Чтение слова состояния

0

0

1

0

Чтение данных

Х

Х

Х

1

Микросхема отключена от системной шины

Примечание: Х – безразличное состояние.

1.3. Программирование

Центральный процессор управляет контроллером с помощью комманд (табл.2), которые передаются по системной шине данных при , INS=1 и загружаются по нарастающему фронту сигнала . Комманда "Режим работы" устанавливает режим работы клавиатуры (табл.3) и дисплея (табл.4).

Таблица 2.

Комманда

D7

D6

D5

D4

D3

D2

D1

D0

Режим работы

0

0

0

К4

К3

К2

К1

К0

Программирование скорости ввода-вывода

0

0

1

Р4

Р3

Р2

Р1

Р0

Чтение ОМ ОЗУ датчиков

0

1

0

А4

Х

А2

А1

А0

Чтение ОЗУ отображения

0

1

1

А4

А3

А2

А1

А0

Гашение – запрет отображения

1

0

1

Х

Г3

Г2

Г1

Г0

Сброс

1

1

0

С4

С3

С2

С1

С0

Сброс INT – установка режима обнаружения ошибок

1

1

1

Е

Х

Х

Х

Х

Примечание: Х – безразличное состояние.

Таблица 3.

Код

Режим клавиатуры

К2

К1

К0

0

0

0

Кодированное сканирование с обнаружением одноклавишных сцеплений (устанавливается после сброса)

0

0

1

Декодированное сканирование с обнаружением одноклавишных сцеплений

0

1

0

Кодированное сканирование с обнаружением N-клавишных сцеплений

0

1

1

Дешифрированное сканирование с обнаружением N-клавишных сцеплений

1

0

0

Кодированное сканирование матрицы датчиков

1

0

1

Дешифрированное сканирование матрицы датчиков

1

1

0

Ввод по стробу, кодированное сканирование дисплея

1

1

1

Ввод по стробу, дешифрированное сканирование дисплея

Таблица 4.

Код

Режим дисплея

К4

К3

0

0

8-8 битовых символов на дисплее, ввод слева

0

1

16-8 битовых символов на дисплее, ввод слева (устанавливается после сброса SR)

1

0

8-8 битовых символов на дисплее, ввод справа

1

1

16-8 битовых символов на дисплее, ввод справа (устанавливается после сброса SR)

1.4. Работа БИС КР580ВВ79

Информация в БИС КР580ВВ79 вводится через линии возврата RET7…RET0. В кодированном (дешифрированном) режиме сканирования с обнаружением одноклавишных сцеплений по нажатии клавиши срабатывает логика подавления дребезга. Другие нажатия клавиш обнаруживаются в течение следующих двух сканирований. Если это единственная нажатая клавиша и ОМ ОЗУ датчиков было пусто, то ее позиция записывается в ОМ ОЗУ датчиков вместе с содержимым линий и SH а сигнал INT устанавливается в состояние лог. 1, сообщая центральному процессору (ЦП) о вводе информации в ОМ ОЗУ датчиков из клавиатуры. Если ОМ ОЗУ датчиков было заполнено полностью, то информация с клавиши не будет введена и установится флаг ошибки D5 в слове состояния. В случае одновременного нажатия нескольких клавиш код ни одной из них не будет записан в ОМ ОЗУ датчиков. Код клавиши записывается в ОМ ОЗУ датчиков только одиночным нажатием.

В кодированном (дешифрированном) режиме с обнаружением N-клавишных сцеплений каждое нажатие клавиши обрабатывается независимо от всех остальных. При нажатии клавиши схема подавления дребезга ожидает два цикла сканирования и проверяет достоверность нажатия клавиши. При подтверждении нажатия в двух циклах код клавиши записывается в ОМ ОЗУ датчиков. Если встретится одновременное нажатие, то коду клавиш будут распознаны и введены в соответствии с порядком сканирования клавиатуры сигналами S3…S0.

В кодированном (декодированном) режиме с обнаружением N-клавишных сцеплений с помощью комманды "сброс INT – установка режима обнаружения ошибок" можно запрограммировать специальный режим обнаружения ошибок. Распознавание и подавление дребезга клавиши происходит, как в обычном N-клавишном режиме. Если в течение одного цикла подавления дребезга две клавиши будут обнаружены нажатыми, то это распознается как одновременные нажатия и устанавливается в регистре слово состояния разряд D6 – флаг ошибки. Указанный флаг запрещает дальнейшую запись в ОМ ОЗУ датчиков и устанавливает на выводе INT состояние лог.1 (если оно до этого еще не было установлено).

В кодированных (дешифрированных) режимах сканирования клавиатуры символы, вводимые в ОМ ОЗУ датчиков, соответствуют позиции датчика в клавиатуре и значению сигналов SH и SH- следующий. Далее три бита указывают строку, в которой находится нажатая клавиша. Последние три бита и указывают, к какой линии (RET7…RET0) подсоединена нажатая клавиша.

В кодированном (дешифрированном) режиме сканирования матрицы датчиков логика подавления дребезга заблокирована и состояние ключей датчиков вводится непосредственно в ОЗУ датчиков. Хотя подавление дребезга не обеспечивается, этот режим имеет то преимущество, что ЦП "знает" как долго датчик находится в замкнутом состоянии и когда он был разомкнут. Клавиатурные режимы могут только отобразить действительное замыкание. Для упрощения программного обеспечения разработчик должен функционально сгруппировать датчики в строки в том формате,вкотором ЦП будет их читать. Вывод INT устанавливается в состояние лог.1 (если обнаружено изменение состояния датчика) в конце сканирования матрицы датчиков. В состояние лог.0 INT переходит после первой операции чтения данных, если перед чтением данных была записана команда "чтение ОМ ОЗУ датчиков", а во время записи команды разряд слова состояния (D4) находился в состоянии лог.0 или при подаче комманды "сброс INT-установка обнаружения ошибок" (Е=1).

В кодированном (дешифрированном) режиме сканирования матрицы датчиков данные с линий возврата RET7…RET0 вводятся прямо в строку ОЗУ датчиков, соответствующую строке матрицы датчиков, которая сканируется. Таким образом, каждая позиция датчика отображается прямо в позиции матрицы ОЗУ датчиков. Входы SHв этом режиме не используются. Заметим, что к линиям возврата могут быть подключены не только контакты. Любая логика, фиксирующаяся линиями сканирования, выдает данные на входы RET7…RET0.

В режиме "ввод по стробу с кодированным (дешифрированным) сканированием дисплея" данные также вводятся в ОМ ОЗУ датчиков через линии возврата RET7…RET0. Данные записываются нарастающим фронтом строб-импульса на линии     9-й будет в этом случае вводиться снова в крайнюю слева позицию дисплея и т.д. Вывод в произвольную позицию дисплея при установке режима вывод слева направо без сдвига приводит к нежелательным побочным эффектам и результата при этом предсказуем. В этом режиме адресация ОЗУ отображения используется с автоинкрементированием и без инкремента. Инкрементирование способствует увеличению адреса, по которому будет производиться следующая запись, на единицу, и символ появляется в следующей позиции. Без инкремента оба ввода произойдут в один и тот же адрес ОЗУ отображения и позицию дисплея.

Режим 16(8)-8 битовых символов на дисплее ввода справа используются в большинстве электронных калькуляторов. Первый введенный символ помещается в правую позицию дисплея. Следующий вводимый символ также помещается в правую позицию дисплея, но после того, как сдвинется все отображение на одну позицию влево. Крайний слева символ при этом сдвигается за край дисплея и теряется. В режиме ввода справа со сдвигом нет прямого соответствия между позицией дисплея и адресом строки ОЗУ отображения. Следовательно, ввод какого-либо символа в некоторую произвольную позицию дисплея не допускается, так как это может привести к неопределенным результатам. Рекомендуется последовательный ввод, начиная с нулевой позиции в режиме автоинкрементирования.

Если режим дисплея установлен на восемь символов, то цикл подсвета вдвое меньше, чем он был бы для 16-символьного дисплея, т.е. время сканирования для 8-символьных дисплеев 5,12 мс и 10,24 мс для 16-символьных дисплеев при внутренней частоте синхронизации 100 кГц.

Слово состояния используется в режимах опроса контроллера для индикации количества символов в ОМ ОЗУ датчиков D3…D0, а также для индикации ошибок при вводе информации по стробу и из клавиатуры. Имеются два типа ошибок – это переполнение и переопустошение. Переполнение D5возникает, когда предпринимается попытка записи еще одного символа в заполненное ОМ ОЗУ датчиков. Переопустошение D4 происходит, когда ЦП пытается читать пустое ОМ ОЗУ датчиков. Слово состояния также имеет бит D7, указывающий, что ОЗУ отображения занято, так как команды сброс дисплея или общий сброс не завершили оперецию сброса ОЗУ отображения до конца. В кодированном (дешифрированном) сканировании матрицы датчиков в слове состояния устанавливается бит D6, указывающий, что по крайней мере один контакт замкнут в ситуации заполненного ОЗУ датчиков. В N-клавишном специальном режиме устанавливается бит D6 в слове состояния, указывающий, что встретились ошибки нажатия более одной клавиши.

1.5. Интерфейс клавиатуры

При вводе информации с клавиатуры необходимо обеспечить опрос и анализ состояния датчиков, устранение дребезга, определение кодов датчиков, буферирование введенной информации, сервис (выбор способов опроса и анализа состояний, формирование запросов прерываний и т.п.). Для упрощения интерфейсов устройств ввода и отображения информации (УВО) обычно применяют мультиплексный опрос датчиков клавиатуры и такое же отображение информациина дисплее. Это, в свою очередь, позволяет объединить функции регенерации изображения и опроса клавиатуры.

Датчики клавишного или сенсорного типа, фиксирующие нажатие или касание пальцем, являются основным элементом клавиатуры. Наиболее распространены механические клавишные датчики, изменяющие при нажатии свое сопротивление. Основные их достоинства – невысокая стоимость и возможность прямого подключения к интерфейсам, а недостатки – сравнительно низкая надежность и дребезг контактов. Наряду с механическими используются и другие клавишные датчики: емкостные (изменяющие при нажатии емкость), интегральные (например, работающие на эффекте Холла), механические со встроенными схемами антидребезга, оптические и другие.

В отличие от клавишных сенсорные датчики не имеют двигающихся частей и "чувствуют" касание пальца по вносимой емкости или наводкам переменного напряжения, изменению сопротивления сенсорного элемента и т.п. Такие датчики изготавливаются, как правило, в виде элементов топологии печатных плат. К недостаткам сенсорных датчиков относятся отсутствие механической обратной связи, затрудняющее определение оператором факта срабатывания датчика, необходимость в схемах сопряжения, слабая помехоустойчивость, чувствительность к загрязненности сенсорного элемента. Для мультиплексного опроса датчики объединяются в матрицу.

Анализ информации о состоянии датчиков, полученный в ходе опроса матрицы, и подготовка информации о сработавших датчиках для ввода в ЭВМ проводятся различными способами в зависимости от требований, предъявляемых к работе клавиатуры. Контроллер клавиатуры и дисплея КР580ВВ79 позволяет программно выбрать один из шести режимов сканирования клавиатуры.

Буферирование введенной информации, подготовленной для выдачи в ЭВМ после анализа состояния матрицы, необходимо вводить из-за асинхронности моментов фиксации срабатывания датчиков и считывания данных о них МП БИС. Для фиксации кодов сработавших датчиков используют регистр или ОЗУ, организованное как стек, а для фиксации состояния всей матрицы – обычное ОЗУ. Извещение ЭВМ о наличии готовых к вводу данных в интерфейс клавиатуры обеспечивает схема формирования запроса прерывания и/или регистр состояния буферного ОЗУ. Последний, при отсутствии формируемых интерфейсом прерываний, может использоваться для организации ввода данных в ЭВМ по опрсу как в произвольные моменты, так и по прерываниям от задатчика интервалов времени.

В БИС КР580ВВ79 для этих целей служат: буферное ОЗУ (8х8 бит), которое работает как стек FIFO на восемь символов в режимах 1…3, 5 и как ОЗУ датчиков в режиме 4; регистр слова состояния стека – ОЗУ датчиков; выход запроса прерывания, формируемого схемой интерфейса клавиатуры. Доступ к буферному ОЗУ возможен после аппаратного сброса или выполнения комманды "Чтение стека – ОЗУ датчиков".

Для регламентации обмена данными между стеком БИС и ЭВМ можно пользоваться словом состояния. Его разряды D0…D3 отражают число кодов в стеке, причем D3=1 указывает на то, что в стеке находится восемь символов, и если данные из него не будут считаны, то информация о следующих сработавших датчиках будет утеряна. Об ошибочных попытках чтения чтения данных из пустого стека и ввода в полный стек очередного кода свидетельствуют флаги переопустошения D4=1 и переполнения D5=1. После чтения слова состояния разряды D4 и D5 автоматически сбрасываются.

Одновременно с записью первого кода в стек устанавливается запрос прерывания на выходе INT БИС. Запрос снимается во время чтения очередного кода из стека и устанавливается вновь после окончания чтения, если стек еще не пуст. Кроме этого, возможен аппаратный или программный сброс запроса прерывания.

1.6. Интерфейс дисплея.

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

Таблица 5.

Тип ЗСИ

Параметры питающих напряжений

Достоинства

Недостатки

Полупроводниковые

Напряжение питания – 2…5 В

Максимальный постоянный ток сегмента – 4…25 мА

Импульсный ток сегмента – 200…300 мА

Быстродействующие (время включения 10 нс), долговечность, высокая механическая стойкость, малые габариты, три цвета свечения

Высокая потребляемая мощность, большая стоимость

Вакуумные люминесцентные

Напряжение питания нака-ла – 0,7…5,5 В

Ток потребления накала – 50…100 мА

Импульсное напряжение питания сетки – 20…70 В

Импульсный ток потребле-ния сетки – 2,5…45 мА

Импульсное напряжение питания анодов сегментов – 20…70 В

Импульсный ток потребле -ния анодов сегментов – 0,1…1,3 мА

Высокая яркость, долговечность, малая потребляемая мощность, несколько цветов свечения

Несколько источников питания, низкая механическая стойкость

Вакуумные накаливаемые

Импульсное напряжение питания сегмента – 20…300 В

Эффективное напряжение питания сегмента – 4,5…7,0 В

Ток потребления сегмента – 20…50 мА

Ток потребления сегмента в момент включения – 70…150 мА

Дешевизна, стабильность параметров

Инертность, (время включения 25…50 мс), низкие вибростойкость и механическая прочность, высокое потребление один цвет свечения

Газоразрядные сегментные постоянного тока

Напряжение поджига разряда – 190…220 В

Напряжение поддержания разряда – 120…170 В

Ток потребления сегмента – 25…40 мкА

Малая потребляемая мощность

Высокое питающее напряжение, низкая механическая стойкость

При мультиплексном отображении информации (динамическая индикация) выбор знакоместа, на которое она будет выводиться в текущий момент времени, осуществляется сигналами сканирования. Устойчивое изображение на дисплее получается при условии регенерации с частотой, большей 40 Гц.

В интерфейсах на основе БИС КР580ВВ79 мультиплексное отображение информации осуществляется под управлением счетчика сканирования. При дешифрированном режиме работы счетчика непосредственно на выводах БИС формируется четыре сигнала сканирования, что дает возможность использовать до четырех знакомест в одной группе. В случае кодированного сканирования в зависимости от запрограммированного режима работы дисплея можно получить с помощью внешней схемы формирования сигналов сканирования до восьми или шестнадцати таких сигналов.

Буферирование отображаемой информации при динамической индикации необходимо для хранения информации, выводимой МП БИС на дисплей и выдачи в нужный момент при сканировании.

Для буферирования выводимой на дисплей информации в БИС КР580ВВ79 служит внутреннее ОЗУ отображения объемом 16 байт. С помощью комманды "Гашение – запрет записи" пользователь может организовать запись в ОЗУ как целыми байтами, так и отдельными тетрадами (чтение кода всегда осуществляется только побайтно). Это позволяет подключить вторую группу знакомест дисплея, удваивая их число с помощью дешифратора кодов.

Данные для дисплея выдаются из ОЗУ отображения на выходы DSPB0…DSPB3 (тетрада В, разряды D0…D3 ОЗУ) и DSPA0…DSPA3 (тетрада А, разряды D4…D7). Чтобы исключить влияние переходных процессов в дешифраторе кодов интерфейса или подсветки индикаторов при переключениях сканирующих импульсов на качество изображения, БИС формирует сигнал запрета отображения DSP БИС выдается код очистки дисплея. Его значение устанавливается программно командой "Сброс". При аппаратном сбросе устанавливается код очистки 00, а содержимое ОЗУ отображения не изменяется. На время подачи сигнала сброса на вход CLR БИС ее выходы и DSP устанавливаются в состояние лог.0. При необходимости (например, для устранения мигания дисплея в случае изменения МП БИС всего содержимого ОЗУ отображения) БИС позволяет запрещать отображение тетрад А и/или В с помощью команды "Гашение – запрет записи". На погашенные тетрады постоянно выдается код очистки дисплея.

Для организации правильного вывода информации на дисплей необходимо учитывать установленные режимы работы счетчика сканирования и дисплейной части БИС, а также используемый способ доступа к ОЗУ отображения. Если режим работы задан таким образом, что формируется шестнадцать сигналов сканирования дисплея, то каждому знакоместу ставится в соответствие одна ячейка ОЗУ отображения. Соответствие будет однозначным, (номер знакоместа совпадает с адресои ячейки ОЗУ), если не использовалась автоинкрементная запись при вводе справа со сдвигом. В противном случае соответствие нарушается. Из-за сложности определения адреса ячейки ОЗУ отображения конкретного знакоместа для правильного размещения информации на дисплее при ее обновлении удобнее вначале восстановить соответствие между ними, очистить дисплей выдачей комманды "Сброс" или заново запрограммировать режим работы БИС. Следует отметить, что в случае работы БИС с формированием восьми сигналов сканирования, запись в ячейки с адресами к и к+8 (к=0…7) приведет к выводу информации на одно и то же знакоместонезависимо от установленного порядка отображения, а информация, заносимая в любую из этих ячеек, запишется и в остальные. При дешифрированном сканировании дисплея каждому знакоместу поставлены в соответствие четыре ячейки ОЗУ отображения с адресами к, к+4, к+8, к+0Сh (к=0…3).

2. Описание параллельного интерфейса ввода-вывода ЭВМ.

На сегодняшний день каждый IBM-совместимый компьютер комплектуется параллельным интерфейсом ввода-вывода типа "Centronics" (порт LPT), позволяющим организовать обмен данными с максимум тремя внешними устройствами. Чаще всего к указанному порту подключают печетающие устройства и устройства сканирования изображения (сканеры), что, впрочем, не мешает использовать его для подключения других, дополнительных устройств ввода-вывода.

Устройство печати IBM PC-подобных компьютеров обычно подключается к параллельному интерфейсу. Для подключения используется стандартный разъем Centronix, имеющий 36 контактных выходов (отечественный аналог ИРПР-М). Допускается три варианта подключения принтеров к ПЭВМ:

- адаптер принтера может находится на одной плате с адаптером монохромного дисплея, при этом используются порты 3BCh - 3BEh;

- к ПЭВМ могут подключены два отдельных адаптера для управленияпринтерами, использующие порты 378h - 37Ah (первый адаптер) и 278h - 27Ah (второй адаптер).

При программировании принтера важно знать адрес базового портаввода-вывода  (первого порта из трех); адреса базовых портов хранятсяв области данных BIOS,начиная с адреса 0:408h(LPT1) и далее по слову на принтер до LPT4. Дальнейшее описание предполагает, что базовый адрес принтера равен 378h.

  ПортОперация   Описание

────────────────────────────────────────────────────────────────

  378h   Запись   Регистр данных - сюда засылается байт, посылае-

                  мый на печать

         Чтение   Регистр данных - позволяет считать последний

                  байт, переданный принтеру

  379h   Чтение   Регистр состояния принтера:

  765  432 1 0

┌──┬──┬──┬──┬──┬─┬─┬─┐

│  │││  │  │X│X│X│ Биты:

└┬─┴┬─┴┬─┴┬─┴┬─┴─┴─┴─┘ ─────

  │ ││  │  └─────────> 3: 0=при печати возникла ошибка

  │││  └────────────> 4: 0=принтер в автономном режиме

  ││  └───────────────> 5: 1=сигнал "конец бумаги"

  │  └──────────────────> 6: 0=принтер готов к печати

  │                            следующего символа

  └─────────────────────> 7: 0=принтер занят, находится в

                             автономном режиме или

                             произошла ошибка

  37Ah   Чтение/Регистр управления принтером:

         Запись

7 6 5 43  210

┌─┬─┬─┬──┬──┬──┬──┬──┐

│X│X│X││  │││  │ Биты:

└─┴─┴─┴┬─┴┬─┴┬─┴┬─┴┬─┘ ─────

        │││  │└───> 0: бит запуска печати

        │││  └──────> 1: 1=после возврата каретки выводить

        │││               перевод строки (в MS-DOS должен

        │││               быть сброшен)

        ││  └─────────> 2: 1=инициализировать принтер

        │  └────────────> 3: 1=разрешить вывод на печать (должен

        │                      быть всегда установлен)

        └───────────────> 4: 1=разрешить прерывания от принтера

Для управления разрабатываемым устройством можно использовать указанные регистры.

3. Описание разрабатываемого устройства

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

Назначение клавиш следующее:

Таблица 6.

Обозначение на схеме

Наименование

Функция

SB1…SB13

"0"…"9", "A", "B", "С"

Ввод кода (пароля)

SB14

"ВВОД"

Сигнал завершения ввода

SB15

"СБРОС"

Ввод кода заново

SB16

"ЗВОНОК"

Подача звукового сигнала

Как видно из таблицы, вводимый код определяется тринадцатью символами, что значительно усложняет подбор пароля и увеличивает количество комбинаций кода.

Вводимая информация отображается на дисплее, при неправильном вводе пароля выводится сообщение об ошибке.

Назначение выводов устройства следующее:

Таблица 7.

Наименование вывода

Назначение вывода

Вход

Выход

DAT0…DAT7

Шина данных

+

+

INS/D

Передача данных/передача команд

+

--

IORC

Разрешение чтения

+

--

IOWC

Разрешение записи

+

--

RESET

Аппаратный сброс устройства

+

--

PCLK

Синхровход

+

--

IRQ

Запрос на прерывание

--

--

4. Разработка программного обеспечения

Программа для управления разрабатываемым устройством выполняет следующие функции:

·

·

·

·

·

·

Программа написана на языке TurboPascal 7.0 и предназначена для работы с операционной системой MS-DOS версии 6.22 и выше.

Управление устройством производится с помощью записи в соответствующие порты ввода-вывода комманд и управляющих сигналов. Состояния выводов соответствующих портов и используемые при работе комманды приведены в табл. . Запись и чтение данных производится через порт данных принтера (378h), управляющие сигналы (INS/D, IORC, IOWC, RESET, PCLK, IRQ) передаются устройству через порт управления (37Ah), запрос на прерывание передается контроллером через порт статуса (379h).

Таблица 8. Управление устройством.

Команда

LPT

37Ah

378h

X

X

X

INS/D

IORC

IOWC

RESET

PCLK

DAT7

DAT6

DAT5

DAT4

DAT3

DAT2

DAT1

DAT0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

Программирование режима работы

X

X

X

1

1

0

0

1

0

0

0

1

1

0

0

1

Чтение клавиатуры (выбор первого ряда «0»…»7»)

X

X

X

1

1

0

0

1

0

1

0

0

0

0

0

0

Чтение клавиатуры (выбор второго ряда)

X

X

X

1

1

0

0

1

0

1

0

0

0

0

0

1

Чтение клавиатуры (прием данных)

X

X

X

0

0

1

0

1

?

?

?

?

?

?

?

?

Сброс INT

X

X

X

1

1

0

0

1

1

1

1

1

0

0

0

0

Сброс контроллера (аппаратный)

X

X

X

Х

Х

Х

1

1

X

X

X

Х

Х

Х

Х

Х

Сброс контроллера (програмный)

X

X

X

1

1

0

0

1

1

1

0

1

0

0

1

1

Сброс после вывода на дисплей

X

X

X

1

1

0

0

1

1

1

0

1

0

0

1

0

Запись для вывода на дисплей

X

X

X

0

1

0

0

1

?

?

?

?

?

?

?

?

Чтение слова состояния

X

X

X

1

0

1

0

1

?

?

?

?

?

?

?

?

Примечание. Х – безразличное состояние; ? – передаваемые либо принимаемые данные.

Таблица кодов символов, выводимых программой на дисплей.

A

B

C

D

E

F

G

H

Nh

1

0

1

1

0

0

0

0

0

60

2

1

1

0

1

1

0

1

0

DA

3

1

1

1

1

0

0

1

0

F2

4

0

1

1

0

0

1

1

0

66

5

1

0

1

1

0

1

1

0

B6

6

1

0

1

1

1

1

1

0

BE

7

1

1

1

0

0

0

0

0

E0

8

1

1

1

1

1

1

1

0

FE

9

1

1

1

1

0

1

1

0

F6

0

1

1

1

1

1

1

0

0

FC

A

1

1

1

0

1

1

1

0

EE

b

0

0

1

1

1

1

1

0

3E

E

1

0

0

1

1

1

1

0

9E

r

1

0

0

0

1

1

0

0

8C

Коды клавиш, получаемые ЭВМ от

устройства.

Клавиша

b0

b1

b2

b3

b4

b5

b6

b7

Nh

"0", "8"

1

0

0

0

0

0

0

0

80

"1","9"

0

1

0

0

0

0

0

0

40

"2","А"

0

0

1

0

0

0

0

0

20

"3","В"

0

0

0

1

0

0

0

0

10

"4","С"

0

0

0

0

1

0

0

0

8

"5","ВВОД"

0

0

0

0

0

1

0

0

4

"6","СБРОС"

0

0

0

0

0

0

1

0

2

"7","ЗВОНОК"

0

0

0

0

0

0

0

1

1

Текст программы приведен в приложении 1.

5. Выбор элементной базы.

Для создания разрабатываемого устройства были использованы ИМС микропроцессорного комплекта КР580 как наиболее совместимые с контроллером ввода-вывода КР580ВВ79. Остальные ИМС (инвертор и дешифратор) были выбраны из соображений электрической совместимости и надежности разрабатываемого устройства.

Другие полупроводниковые приборы (транзисторы и светоизлучающие диоды) были выбраны из соображения их максимальной электрической совместимости с выходными характеристиками ИМС, несмотря на их относительно большое энергопотребление по сравнению с другими светоизлучающими знакогенерирующими приборами.

Резисторы С2-23 были выбраны, исходя из соображений рационального сочетания цены и стабильности их параметров.

Переключатели малогабаритные МП10 были выбраны, исходя из таких их преимуществ, как малые габариты и большая надежность, а следовательно, и наработка на отказ.

выводы

Разработанное в данном курсовом проекте устройство ввода и отображения информации на базе контроллера КР580ВВ79 является полезным устройством при проектировании систем безопасности на базе обычных персональных ЭВМ типа IBMPC. Разработанное устройство не требует для подключения никаких дополнительных устройств и имеет достаточно гибкое, легко настраиваемое под конкретные потребности програмное обеспечение. Кроме того, возможности ввода данного устройства могут быть значительно расширены за счет неполного использования матрицы датчиков, причем добавлены могут быть не только кнопочные датчики, а например, температурные либо оптические. Это не потребует дополнения схемы устройства, а только соответствующей доработки программного обеспечения.

Исходя из выше сказанного, можно утверждать, что разработанное устройство вполне можно применять в составе различных систем, гдекроме стандартных устройств ввода и отображения (а также последующего анализа) информации необходимы дополнительные, компактные и многофункциональные устройства. Несмотря на некоторую моральную устарелость БИС КР580ВВ79, устройства на ее основе вполне можно применять в тех областях, где скорость работы и энергопотребление не играют решающей роли.

ЛИТЕРАТУРА.

1. Лю Ю-Чжен, Гибсон Г. Микропроцессоры семейства 8086/8088. Архитектура, программирование и проектиро вание микропроцессорных систем., Пер. с англ. , М.: Р и С, 1987г.

2. Аналоговые и цифровые интегральные схемы. Под ред. С.В.Якубовского, Радио и связь, 1980.

3. Микропроцессорные средства и системы, журнал.


Приложение 1. Листинг управляющей программы.

{программа управления устройством ввода и отображения информации на базе

БИС КР580ВВ79

Разработка: Кузин Е.А.}

program KR580;

uses crt,dos;

const Recode: array[1..16] of byte = ($01,$02,$04,$08,$10,$20,$40,$80,$03,$05,

                                      $09,$0B,$12,$22,$42,$82);

{код}

      Code: array[1..16] of integer = (1,2,3,3,3,4,4,5,6,6,0,0,0,0,0,0);

var i,k:integer;

    Display:array[1..16] of integer;

    tmp:byte;

    OK : boolean;

label NEW,AGAIN;

procedure OutByte(portN,bte:byte);{выводбайтавпорт}

begin

case portN of

    $378:  asm

mov al,bte

            out $378,al

           end;

    $37A:  asm

mov al,bte

out $37A,al

           end;

end(*case*);

Delay(10);

end;

function InByte(portN:byte):byte;{чтениебайтаизпорта}

begin

case portN of

    $378:  asm

in al,$378

           end;

    $379:  asm

in al,$379

           end;

    $37A:  asm

in al,$37A

           end;

end(*case*);

asm

mov InByte,al

end;

Delay(10);

end;

procedure Init; {первичная инициализация устройства}

begin

OutByte($37A,$03); {aппаратныйсброс}

OutByte($37A,$19); {программирование режима}

OutByte($378,$19); {работы                   }

end;

procedure Wait; {ожидание прерывания от устройства}

begin

repeat until InByte($379) <> 0;

end;

procedure OutToDisplay(Symbol:integer); {выводсимволанадисплей}

{таблица перекодировки выводимых символов}

const Recode:array[1..15] of byte = ($60,$da,$f2,$66,$b6,$be,$e0,$fe,$f6,$fc,$ee,$3e,$9c,$9e,$8c);

begin

OutByte($37A,$09);

OutByte($378,Recode[Symbol]);

end;

function StatusWord:boolean;{чтениесловасостояния}

var SW:byte;

begin

StatusWord := false;

OutByte($37A,$15);

SW := InByte($378);

if SW <> 0 then StatusWord := TRUE;

end;

procedure ResetINT; {сброс INT}

begin

OutByte($37A,$19);

OutByte($378,$F0);

end;

procedure ResetDSPL;{сброс после вывода на дисплей}

begin

OutByte($37A,$19);

OutByte($378,$D2);

end;

procedure Bell;{подачазвуковогосигнала}

begin

Sound(1200);

Delay(1000);

NoSound;

end;

function GetChar:byte; {чтениесимволасклавиатуры}

begin

If not StatusWord then

   begin

     OutByte($37A,$19);

     OutByte($378,$40);

     OutByte($37A,$05);

     GetChar := Inbyte($378);

     if GetChar = 0 then

      begin

       OutByte($37A,$19);

       OutByte($378,$41);

       OutByte($37A,$05);

       GetChar := Inbyte($378)+2;

      end

     else

      begin

       Bell;Bell;

       WriteLN('аппаратная ошибка !!!');

   end;

ResetINT;

end;

begin

AGAIN:

Init;

k := 0;

repeat

begin

Wait;

tmp := GetChar;

i := 0;

repeat

inc(i);

until Recode[i] = tmp;

inc(k);

case i of

   1..13: begin

           Display[k] := i;

           OutToDisplay(i);

          end;{цифры}

   14: k:=16;   {ВВОД}

   15: goto AGAIN;{СБРОС}

   16: Bell;      {ЗВОНОК}

end(*case*);

end;

until k=16;

for i:=0 to 16 do

if Display[i] <> Code[i] then OK := true; {ПРОВЕРКАПАРОЛЯ}

if OK then Exec('proc.exe,''); {пароль проверен, запуск другой программы}

goto AGAIN;

end.