Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Электронный фотофиниш.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.94 Mб
Скачать

3.6 Интерфейс вв51а

По условиям технического задания устройство должно включать в себя интерфейс для вывода информации на большое информационное табло. Для этого была выбрана микросхема КР580ВВ51А – универсальный синхронно-асинхронный приемопередатчик, предназначенный для аппаратной реализации последовательного протокола обмена. Микросхема преобразует параллельный код, получаемый от центрального процессора в последовательный поток символов. Условное графическое обозначение приведено на рис. 3.1

Рисунок 3.1 – Условное графическое обозначение КР580ВВ51А

Микросхема может работать в двух режимах синхронном и асинхронном. Для нашего случая выбираем асинхронный режим, т.к. он характеризуется одиночными посылками информации, инициализация которых определяется микропроцессором системы.

Подключение выводов мс КР580ВВ51А показано на рисунке 3.2

Рисунок 3.2 – Подключение выводов мс КР580ВВ51А

Адресация интерфейса осуществляется подачей на вход CO/D адресного выхода AB4. Соответсвенно адрес при записи инструкции COM_CO_Out = 0010h (0001 0000b), при передаче данных COM_D_Out = 0000h (0000 0000b).

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

1) Записываем инструкцию режима:

Для этого подаем следующие сигналы на вход мс:

CO/D = 1(записываем инструкцию), WR = 0 (активируем вход записи), CS=0, SR=0. И по шине данных передаем код инструкции режима, в нашем случае:

биты D7D6=01 – устанавливаем длину стоп-бита 1;

биты D5D4=00 – нет контроля четности;

биты D3D2=11 – длина слова 8 бит;

биты D1D0=10 – асинхронный режим работы 1:1.

2) Записываем инструкцию команды:

Для этого подаем следующие сигналы на вход мс:

CO/D = 1(записываем инструкцию), WR = 0 (активируем вход записи), CS=0, SR=0. И по шине данных передаем код инструкции команды, в нашем случае:

бит D0=1 – передача информации возможна;

бит D2=0 – прием информации невозможен(т.к. нам необходимо только передавать информацию);

остальные биты =0 – нас в данном случае не интересуют.

Код программирования интерфейса:

mov al,01001101b

out COM_CO_Out,al

mov al,00000001b

out COM_CO_Out,al

Код вывода данных:

mov al,VKZImages[bx]

out COM_D_Out,al

4 Представление программы устройства в виде «черной сферы»

Представление программы проектируемой МПС в виде «черной сферы» приведено на рисунке 4.1.

Рисунок 4.1 – Представление программы в виде «черной сферы».

5 Статическая модель программы

Первый этап декомпозиции приведен в приложении Д;

Второй этап декомпозиции приведен в приложении Е;

Третий этап декомпозиции приведен в приложении Ж;

Статическая модель системы приведена в приложении З.

6 Структура данных

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

Символьное имя

Формат данных

Кодирование данных

Примечание

D7

D6

D5

D4

D3

D2

D1

D0

Адрес порта для активации матр. индикатора

Nind

Слово

0

0

0

0

0

0

0

1

1й индикатор

Адрес порта для активации строки в матр. индикаторе

Nstr

Слово

0

0

0

0

0

0

0

1

1я строка

Адрес порта для активации столбца в матр. индикаторе

Nstolb

Слово

0

0

0

0

0

0

0

1

1й столбец

Переменная для хранения признака нажата ли кнопка "Следующая фамилия"

OldSledFam

байт

0

0

0

0

0

0

0

0

Не нажата

0

0

0

0

0

0

1

0

Нажата

Переменная для хранения признака нажата ли кнопка "Старт"

OldStart

байт

0

0

0

0

0

0

0

0

Не нажата

0

0

0

0

0

0

0

1

Нажата

Номер текущей вводимой фамилии

NumTekInd

байт

0

0

0

0

0

0

0

1

1я фамилия

Образы 8ми фамилий для вывода на матричные индикаторы

ImageInd11

Массив байт

*

*

*

*

*

*

*

*

Данные 1го индикатора

*

*

*

*

*

*

*

*

ImageInd88

*

*

*

*

*

*

*

*

Данные 64го индикатора

Время спортсменов

Vremya1

Массив байт

*

*

*

*

*

*

*

*

Время 1го спортсмена

*

*

*

*

*

*

*

*

Vremya8

*

*

*

*

*

*

*

*

Время 8го спортсмена

Флаг остановки времени спортсменов

FlagVremya1

Массив байт

0

0

0

0

0

0

0

0

Выводится Время

FlagVremya8

0

0

0

0

0

0

0

1

Выводится Результат

Номера дорожек

NumberDorog

Массив байт

*

*

*

*

*

*

*

*

Данные о номерах дорожек

Номера мест

NumberMesto

Массив байт

0

0

0

0

0

0

0

1

1е место

0

0

0

0

1

0

0

0

8е место

Флаг финиша всех спортсменов

FlagCheckFin

байт

0

0

0

0

0

0

0

0

Еще не все финишировали

0

0

0

0

0

0

0

1

Все финишировали

Номер заплыва

VKZZnach

Массив байт

*

*

*

*

*

*

*

*

2 байта для вывода цифр на индикаторы

Код клавиатуры цифр

VKZKeyboard

Массив байт

*

*

*

*

*

*

*

*

Код клавиатуры цифр

Предыдущее значение клавиши из клавиатуры цифр

VKZOldZnach

Массив байт

*

*

*

*

*

*

*

*

Данные о предыдущем значении клавиши из клавиатуры цифр

Код клавиатуры букв

VKFKeyboard

Массив байт

*

*

*

*

*

*

*

*

Данные клавиатуры букв

Смещение для нажатой клавиши

VKFKodKlav

байт

0

0

0

0

0

0

0

0

Код смещения буквы "А"

Предыдущее значение нажатой клавиши

VKFOldZnach

Массив байт

*

*

*

*

*

*

*

*

Данные о предыдцщем значении нажатой клавиши

Образы для букв русского алфавита

VKFImage1

Массив байт

*

*

*

*

*

*

*

*

Данные образа букв русского алфавита

*

*

*

*

*

*

*

*

VKFImage32

*

*

*

*

*

*

*

*

Образы для вывода одной фамилии на 8 матр. индикаторов

VKFImageInd1

Массив байт

*

*

*

*

*

*

*

*

Данные образы для вывода одной фамилии на 8 матр. индикаторов

*

*

*

*

*

*

*

*

VKFImageInd8

*

*

*

*

*

*

*

*

Адрес текущей введенной буквы

VKFAddrTekBukv

Слово

*

*

*

*

*

*

*

*

Данные об адресе текущей введенной буквы

Таймер

Taimer

Массив байт

*

*

*

*

*

*

*

*

Данные о текущем времени таймера

Переменная для обмена данными для первого спортсмена

ChangeNum1

байт

*

*

*

*

*

*

*

*

 

Переменная для обмена данными для второго спортсмена

ChangeNum2

байт

*

*

*

*

*

*

*

*

 

Переменная для обмена данных времени

VremyaX

Массив байт

*

*

*

*

*

*

*

*

 

Переменная для обмена данных дорожек

NumberDorogX

байт

*

*

*

*

*

*

*

*

 

Переменная для обмена данных фамилий

ImageIndX

байт

*

*

*

*

*

*

*

*

 

Коды цифр для 7сегментного индикатора

VKZImages

Массив байт

1

1

1

1

1

1

1

1

Цифра "0"

Коды цифр для 7сегментного индикатора

VKZImagesT

Массив байт

1

0

1

1

1

1

1

1

Цифра "0."

Флаг нажатия кнопки "Старт"

FlagStart

байт

0

0

0

0

0

0

0

0

Кнопка "Старт" не нажата

0

0

0

0

0

0

0

1

Кнопка "Старт" нажата

Флаг нажатия кнопки "Проанализировать и отсортировать"

FlagPA

байт

0

0

0

0

0

0

0

0

Кнопка "Проанализировать и отсортировать" не нажата

0

0

0

0

0

0

0

1

Кнопка "Проанализировать и отсортировать" нажата

Флаг окончания программы Сотрировки

FlagSortEnd

байт

0

0

0

0

0

0

0

0

Сортировки не было

0

0

0

0

0

0

0

1

Сортировка была