Разработка микропроцессорной системы цифровой обработки сигналов, страница 2

c)  ОЗУ КМ185РУ8 ёмкостью 256 байт, содержащее результаты обработки;

Для дешифрации адресов памяти указанной ёмкости используются 9 младших адресных линий А08.

Управление данными микросхемами осуществляется по адресным линиям А9 и А10 с помощью дешифратора КР531ИД7 (DD5) следующим образом:

M/IO

A10

A9

Адресуемая микросхема

Диапазон адресов

1

  0

  0

ПЗУ таблицы прерываний

000h÷003h

1

  0

  1

ОЗУ

200h÷2FFh

1

  1

  1

ПЗУ программы

700h÷7FFh

Табл.  Управление микросхемами памяти

Управление периферийными устройствами осуществляется посредством следующих управляющих сигналов:

a)  выбор кристалла таймера;

b)  выбор кристалла контроллера клавиатуры и дисплея;

c)  “разрешение считывания” с АЦП;

Кроме этого, две младших адресных линии A01 используются при программировании внешних устройств.

Исходя из этого, перечисленные выше сигналы формируются с помощью комбинационных логических схем на основе адресных сигналов и сигнала M/IO:

M/IO

A4

A3

A2

Адресуемая микросхема

Диапазон адресов

0

  0

  0

  1

Выбор кристалла таймера

04h÷07h

0

  0

  1

  0

Выбор кристалла ККД

08÷09h

0

  1

  0

  0

Разрешение считывания с АЦП

10h

Табл.2  Управление микросхемами ВУ

Запуск системы и считывание информации с АЦП

При включении питания генератор тактовых импульсов КР1810ГФ84 (DD3) формирует сигнал RESET (“сброс”), поступающий на микропроцессор и внешние устройства и переводящий их в некоторое начальное состояние.

Счётчик IP обнуляется, содержимое сегментного регистра CS становится равным FFFFh, т.е. начальным исполняемым адресом системы автоматически устанавливается FFFF0h. При выставлении этого адреса на шину обеспечивается включение ПЗУ, содержащего исполняемую программу.

Программа осуществляет инициализацию требуемых сегментных регистров и РОНов, а также программирование таймера и контроллера клавиатуры и дисплея.

Сразу же после загрузки управляющего слова на выходе нулевого канала OUT0 таймера устанавливается единичный сигнал, осуществляющий инверсию состояния JK-триггера 134ТВ14 (DD10.1), который, в свою очередь, формирует сигнал запуска на АЦП К1113ПВ1 (DA1). Через время, необходимое для преобразования, на выходе АЦП  READY DATE “готовность данных” появляется сигнал с уровнем лог. “1”, запрашивающий вывод данных с АЦП на ШД системы. Для этого указанный вывод АЦП соединён со входом запроса прерывания INT микропроцессора.

После обработки запроса прерывания микропроцессор по адресной линии А4 инвертирует состояние JK-триггера, на выходе которого появляется уровень лог. “1”, который “гасит” информацию, содержащуюся в регистре АЦП, после чего АЦП снова готов к приёму и обработке данных.

Далее с частотой FPCLK/N, (N – программно загружаемая константа деления, FPCLK – тактовые импульсы ТТЛ-уровня, генерируемые микросхемой КР1810ГФ84) на выходе нулевого канала таймера снова появляется сигнал запуска на АЦП. Таймер запрограммирован таким образом, что после окончания отсчёта одного периода внутренний счётчик автоматически перезагружается и начинается отсчёт следующего периода.

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

Процедура обслуживания прерываний

Запрос на внешнее прерывание поступает в МП по входу INT (“запрос прерывания”) с выхода “готовность данных” АЦП после преобразования последним аналоговой информации в цифровую форму.

Далее микропроцессор подтверждает поступивший запрос прерывания, выполняя два последовательных цикла INTA. При этом во время второго цикла подтверждения прерывания происходит чтение информации с буферного регистра 1533ИР33 (DD11), который содержит код 20h, определяющий тип прерывания (вектор прерывания). Таким образом, второй сигнал INTA стробирует чтение номера вектора прерывания.

Далее микропроцессор автоматически осуществляет последовательное чтение 4-х байт по адресу, полученному путём умножения считанного вектора на 4, т.е. 80h. (При выставлении этого адреса открывается специальное ПЗУ таблицы прерываний, содержащее байты 48h.00h.70h.00h).

Полученные 2 слова определяют начальный логический адрес подпрограммы обработки прерывания.

Слово 0070h с большим адресом содержит базовый адрес сегмента, а слово 0048h с меньшим адресом – смещение подпрограммы от начала кодового сегмента (таким образом, физический адрес подпрограммы – 748h). После установления нового содержимого регистров IP и CS микропроцессор выбирает код операции первой команды подпрограммы и затем выполняет обычные действия по заполнению очереди команд, выполнению команд и обмену данными.

Индикатор и его интерфейс

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

Т.к. в системе используется индикатор на 4 знака, то для формирования отображаемого слова применен принцип прямого управления элементами индикатора на светоизлучающих диодах АЛС324Б.

Контроллер производит выдачу данных (сохраненных в двоично- десятичном формате) через дешифратор 533ИД18 (DD9)- преобразователь двоично- десятичного кода в семисегментный на индикатор. Выдача данных через порты синхронизируется с помощью сигналов управления S0¸S3, которые обеспечивают выбор требуемого разряда индикатора. Контроллер работает в режиме внутренней дешифрации, т.е. в каждый момент времени активен только один сигнал управления из четырех.

Для реализации описанного принципа работы индикатора в схему включены катодные формирователи, на которые подаются сигналы с адресных линий контроллера S0¸S3.

Микросхема 533ИД18 – дешифратор- преобразователь двоично- десятичного кода в семисегментный служит для управления семисигментными светодиодными индикаторами с объединенными анодами АЛС324Б.

Подробнее подобный метод включения индикатора рассмотрен в [10], стр.286-290.


5.  Алгоритм работы системы

 


Блок-схема: решение: INT?Подпись: нет

Подпись: да

 


Подпись: нетБлок-схема: решение:   AL=M?

Подпись: да

DX=DX+1

 
Подпись: нет

Блок-схема: данные: Определение времени по таймеру
 


Блок-схема: решение: Время кончилось?

Подпись: нет

Подпись: да

Блок-схема: данные: Вывод результата на индикатор

Скругленный прямоугольник: Конец

Рис.4 Блок-схема алгоритма работы системы.


Примечания: текущий отсчёт считывается в регистр AL, регистр DX содержит информацию о числе моментов времени, когда входной сигнал равен заданной константе M.


6.  Программа

Нач.адрес

(Метка):

Команда

Комментарий

700h:               MOV AX, 80h            ; инициализация стека*