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

Следует отметить, что начальный исполняемый адрес системы по сбросу – FFF0h, поэтому для того, чтобы не вводить в систему дополнительное ПЗУ загрузки, ПЗУ, содержащее программу включаются уровнем лог. “1” на соответствующей адресной линии, т.е. автоматически выбирается при включении устройства.

Таким образом, при выставлении микропроцессором при включении на шину начального исполняемого адреса FFF0h, система отреагирует только на младшие биты 111.11110000b, т.е. включит ПЗУ и произведёт чтение по адресу 7F0h, т.е. обеспечит запуск программы.

5.  Описание принципиальной схемы

Поскольку проектируемая система имеет небольшое число ИС, микропроцессор работает в минимальном режиме, т.е. все необходимые сигналы управления вырабатываются на основе управляющих сигналов микропроцессора с помощью комбинационных логических схем типа И, НЕ и т.д.

К1810ВМ88 имеет 8-разрядную шину данных, мультиплексированную с 8-ю младшими разрядами шины адреса. Задача демультиплексирования (разделения) шины данных и шины адреса решается с помощью буферного регистра КР580ИР82, на котором защёлкивается 8 младших бит адреса, и двунаправленного 8-разрядного шинного формирователя с высокой нагрузочной способностью КР580ВА86, подключенных к ЦПУ стандартным образом.

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

Проектируемое устройство содержит два постоянных запоминающих устройства с электрическим программированием (PROM).

ПЗУ таблицы прерываний КМ1608РТ1 подключается к линиям A1,A0 ША (остальные адресные входы микросхемы заземлены) и содержит, начиная с адреса 00b, сформированного на этих выводах, четыре байта (38.00.60.00)h, содержащие адрес подпрограммы обработки прерывания 638h.

ПЗУ КР556РТ17 содержит исполняемую программу и подключено к 9 младшим разрядам системной шины адреса.

Для тактирования микропроцессора и периферийных устройств используется генератор тактовых импульсов КР1810ГФ84.

Частота опорного генератора задается с помощью внешнего кварцевого резонатора ZQ1 частотой 12МГц, который подключается к выводам Х1 и Х2. Тактовый сигнал МОП-уровня CLK, подаваемый на вход CLK МП, в три раза меньше частоты опорного генератора и составляет FCLK=4МГц.

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

Назначение программируемого таймера К1810ВИ54 – генерировать сигналы запроса прерывания на микропроцессор с заданной периодичностью. Таймер тактируется также от микросхемы КР1810ГФ84 импульсами PCLK вдвое меньшей частоты, чем СLK.

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

Цифро-аналоговый преобразователь К1108ПА1 выполняет функции линейного преобразования 8-ми разрядного параллельного кода в выходной униполярный ток. На выходе микросхемы включен быстродействующий операционный усилитель типа К574УД1, преобразующий выходной ток в напряжение и умощняющий выходной сигнал.

ИС К574УД1 обладает коэффициентом усиления по напряжению KU=5×104, выходным напряжением 10В и скоростью его нарастания 50-100В/мкс. Емкость С3 позволяет минимизировать время установления выходного тока.

Данные для ЦАП защёлкиваются на специальном регистре типа K555ИР27.

6.  Программа

Нач.адрес

(Метка):

Команда

nT*

Комментарий

Инициализация системы

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

MOV SS, AX                                      ;

MOV AX, 00                                      ; инициализация указателя стека

MOV SP, AX                                      ;

                        MOV AL, 24h                                     ; инициализация таймера***

                        OUT 07h                                             ;

MOV AL, 63h                                     ; загрузка константы пересчёта

                        OUT 00h                                             ; в таймер (cм. пункт 7)

                        STI                                                      ; разрешение прерывания

Nach:              MOV СX, 141h          4                      ; СX=321

MOV AL,00h              4                      ; AL содержит текущий отсчёт

HLT                            2                      ; ожидание прерывания

 Начало подпрограммы обработки прерывания

638h:               DEC SP                       2                      ; уменьшение содержимого указателя стека

                        DEC SP                       2                      ; чтобы не было переполнения

                        DEC SP                       2         

OUT 08h                     10                    ; вывод текущего отсчёта на ЦАП

                        DEC CX                      2                      ; СX=CX-1

СMP CX, F0h             4                      ; cравнение CX c числом 240

                        JB label2                     4                      ; переход на label2, если CX<240

label1:             INC AL                       2                      ; AL=AL+1

                        HLT

label2:             SUB AL, 03h              4                      ; AL=AL-3