Разработка низкочастотного генератора сигнала заданной формы с помощью микропроцессорного вычислительного устройства, страница 2

При чтении из ПЗУ в любом случае на шину данных будет подаваться слово, из которого МП при необходимости выберет требуемый байт и поместит его в регистр, указанный в выполняемой команде, поэтому сигналы ВНЕ и А0 на ПЗУ не подаются.

ПЗУ состоит из двух микросхем КР556РТ17 (DD9 и DD10): информационные выходы микросхемы DD9 подключены к младшей половине ШД, DD10 подключена к старшей половине ШД.

Адресные входы А91 этих микросхем соединены параллельно и подключены к младшим 9 линиям системной ША. Таким образом, суммарная ёмкость ПЗУ составляет 1 Кбайт.

ОЗУ состоит из двух микросхем 537РУ9А (DD11 и DD12) ёмкостью по 2 Кбайта каждая, подключенных соответственно к младшей и старшей половинам ШД.

Управление входами CS (выбор кристалла) микросхем ПЗУ и ОЗУ отображено в таблице 3.1.

Таблица 3.1

А12

А13

А14

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

Тип памяти

0

0

0

0000h-0FFFh

ПЗУ

0

0

1

4000h-4FFFh

ОЗУ

1

1

1

7000h-7FFFh

ПЗУ

          Таким образом диапазон адресов ПЗУ 0000h-0FFFh дублируется диапазоном 7000h-7FFFh с целью совместить возможность хранения адреса подпрограммы обработки прерывания (на который указывает вектор прерывания, в нашем случае это – 80h) и команды безусловного перехода, которая размещается по последним адресам памяти (FFF0h) в одном блоке ПЗУ. Реализуется это при помощи элемента И-НЕ, входы которого подключении к первому и восьмому выходу дешифратора, а выход подключен к входу CS ПЗУ.

Программируемый таймер К1810ВИ54 (DD7) используется для генерации сигнала запроса прерывания с заданной периодичностью. Таймер тактируется также от микросхемы КР1810ГФ84 импульсами PCLK.

Таймер адресуется при условии: А12=1, А13=0, А14=1, что соответствует диапазону адресов 5000h-5FFFh.

По сигналу INT (запрос прерывания), поступающего с таймера микропроцессор формирует сигнал INTA (подтверждение прерывания), стробирующий считывание номера вектора прерывания с буферного регистра 1533ИР33 (DD13).

На буферном регистре в свою очередь выставлено значение вектора прерывания 20h путем подключения на вход соответствующей комбинации – 00100000b.

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

Непосредственно перед ЦАП находится регистр-защелка КP580ИР82 (DD14) запоминающий данные, после прихода строб-импульса. Строб импульс формируется при условии: WR=1,  А12=0, А13=1, А14=1 (что соответствует диапазону адресов: 6000h-6FFFh).

В таблице 3.2 приведено распределение устройств схемы по адресным линиям.

Таблица 3.2

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

Микросхема

0000h-0FFFh;  7000h-7FFFh

ПЗУ

4000h-4FFFh

ОЗУ

5000h-5FFFh

Таймер

6000h-6FFFh

Регистр-защелка ЦАП

4. Расчет константы пересчета

Назначение программируемого таймера К1810ВИ54 – генерировать сигналы запроса прерывания на микропроцессор с заданной периодичностью. Для работы используется только нулевой канал таймера, работающий во втором режиме.

При программировании в регистр управляющего слова (УС) нулевого канала таймера записывается УС, содержащее в себе информацию представленную на рис. 4.1.

Рис. 4.1

В режиме 2 – импульсного генератора частоты – канал работает как делитель входной частоты PCLK на N, где N – константа пересчета. Режим 2 является режимом с автозагрузкой, т.е. после окончания цикла счета счетчик автоматически перезагружается и счет повторяется.

Как рассчитывалось ранее, частота дискретизации для 500 отсчетов составляет:

Частота резонатора выбрана – , соответственно, .

Таким образом константа пересчета будет находиться из выражения 4.1.

                                         (4.1)

5. Программа

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

000h M1:     MOV AX,4FFFh             ; инициализация указателя стека

MOV SP,AX

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

OUT 5003h

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

OUT 5000h                     ; в таймер

          MOV CX, 1F4h              ; CX=500

MOV AL, 00h                 ; загрузка в AL нуля

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

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

080h:           00h 94h 00h 00h              ; адрес подпрограммы обработки

                                                               прерывания

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

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

CMP CX, 0FAh              ; CX>250 ?

JA M3                              ; переход на метку М3, если CX>250

DEC AL                          ; AL=AL–1

JMP M4                           ; переход на метку М4

M3:   INC AL                           ; AL=AL+1

M4:   LOOP M2                    ;СХ=СХ–1;если CХ=0 переход на метку M2                                                                 

CLI                                  ; запрещение прерывания

JMP M1                           ; переход на метку M1

70F0h:      JMP 00h

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

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

Блок-схема алгоритма работы системы представлена на Рис. 6.1.

Где ХТ – текущий отсчет сигнала; СX содержит информацию о номере текущего отсчета.

Рис.6.1


7. Список использованных источников

1. Ю.М. Казаринов – «Микропроцессорный комплект К1810», “Высшая школа”, Москва, 1990г.

2.   Ю.М. Казаринов – «Применение микропроцессоров и микроЭВМ в радиотехнических системах», “Высшая школа”, Москва, 1988г.

3. М.М. Мичурина, И.Н. Сушкин – «Цифровые устройства и микропроцессоры. Программа и методические указания», КГТУ, Красноярск,1999г.

4. С.В. Якубовский и др. – Cправочник: «Цифровые и аналоговые интегральные микросхемы», “Радио и связь”, Москва, 1990г.