Проектирование микропроцессорной системы контроля и управления объектом. Общие принципы проектирования микропроцессорных систем, страница 21

 


Рис. 3.18. Схема аварийной сигнализации

3.7.  Примеры разработки программ работы МПС

Алгоритм работы МПС был приведен на рис. 2.2. Он заключается в инициализации (начальной установке) всех устройств системы, разрешения прерываний и затем останова МП. Дальнейшая работа МПС выполняется как реакция на запросы прерывания от различных устройств (таймера опроса, пульта управления, аварийного датчика, генератора импульсов с ЧИМ или ШИМ), т.е. с помощью подпрограмм обработки запросов прерываний.

При составлении программы на языке Ассемблера необходимо знать адреса, занимаемые ПЗУ и ОЗУ, и адреса портов. Желательно использовать символические адреса констант, портов и ячеек памяти, с которыми оперирует программа.

Будем считать, что модуль памяти проектируемой МПС выполнен по схеме рис. 3.3. ПЗУ имеет адреса 0000Н-07FFН, а ОЗУ – адреса 0800Н-0FFFН. Адреса и символические имена портов и регистров БИС даны в таблицах 1 и 2.

Для инициализации программируемого таймера, параллельного адаптера, контроллера прерываний необходимо определить управляющие слова для заданных режимов работы БИС [2,4].

Для счетчиков СТ0, СТ1 1-го таймера ПТ_1: режим 2 (делитель частоты), счет двоичный, загрузить 2 байта. Числа N0 и N1 равны 1000=03Е8Н. Управляющее слово для СТ0: 00110100В=34Н, для СТ1: 01110100В=74Н.

Для ПКП: адреса подпрограмм обслуживания прерываний равны 0020Н, 0024Н, 0028Н, 002СН. Управляющее слово 1: 00110110В=36Н, управляющее слово 2: 00000000В=00Н.

Для ППА: режим 0, порты РА и РВ работают на ввод, порт РС – на вывод. Управляющее слово: 10010010В=92Н.

Основную программу назовем CONTROL. Текст программы имеет следующий вид.

; CONTROL – основная программа работы МПС

СТ0_1

EQU   80H

…………………………

IPORT

EQU   90H

OPORT1

EQU   A0H

STACK

EQU   0FFFH

;

Адрес вершины стека

ORG   0000H

CONTROL:

LXI   SP, STACK

;

Определить стек

JMP   MAIN

ORG   0020H

;

Вектор прерывания по INT0

JMP   ISR0

ORG   0024H

;

Вектор прерывания по INT1

JMP   ISR1

ORG   0028H

;

Вектор прерывания по INT2

JMP   ISR2

ORG   002CH

;

Вектор прерывания по INT3

JMP   ISR3

ORG   0050H

MAIN:

MVI   A, 92H

OUT   РУС55

;

Инициализация ППА

XRA   A

OUT   PC

;

Вывод нулей в порт PC

OUT   OPORT1

;

Гашение светодиодов

OUT   OPORT2

;

Гашение дисплея

OUT   OPORT3

OUT   OPORT4

OUT   OPORT5

MVI   A, 34H

OUT   РУС53_1

;

Режим CT0_1

MVI   A, 74H

OUT   РУС53_1

;

Режим CT1_1

MVI   A, 0E8H

OUT   CT0_1

MVI   A, 03H

OUT   CT0_1

;

Число N0 в CT0_1

MVI   A, 0E8H

OUT   CT1_1

MVI   A, 03H

OUT   CT1_1

;

Число N1 в CT1_1

MVI   A, 36H

OUT   РУС59

MVI   A, 00H

OUT   РУС59A

;

Инициализация ПКП

EI

;

Разрешить прерывания

HLT

;

Остановить МП