Аппаратные средства МПС. Карта распределения адресного пространства МПС. Расчет электрического сопряжения компонентов МПС, страница 16

Адресное пространство

Компонент

Назначение адреса

Адрес в шестнадцатеричной системе счисления

Внешняя памяти программ

ROM

Чтение ячейки ROM

0000H-1FFFH

Внешняя память данных

NVRAM

Чтение/запись ячейки NVRAM

0000H-0800H

ADC

Запись номера канала для выдачи результата преобразования по данному каналу

8000H-8002H

DAC

Запись цифрового эквивалента Y4

8020H

IOP

Обмен байтом данных

8040H

Запись управляющего слова, чтение байта состояния

8041H

3.2  Головной модуль

;Объявления констант, используемых в программе

TIMEUNIT    EQU 56         ;значение, загружаемое в таймер-счетчик для получения

;периода 0.5 мс

;это значение зависит от тактовой частоты, которая в ;данном случае составляет 4.8 МГц

Q0                EQU   80H    ;константа Q0=0.5  в виде числа с запятой,

;зафиксированой перед старшим разрядом

A0                EQU   2CH    ;константа A0=0.17 в виде числа с запятой,

;зафиксированой перед старшим разрядом

;константа A1 вводится непосредственно при вычислениях (модуль PROCESS_ANALOG_2)

TM1             EQU   50

TM2             EQU   60

TM3             EQU   120

;Объявления символических адресов для переменных, расположенных во

;внутренней памяти данных. При этом, используется 0 банк РОН и дно стека

;находится на устанавливаемом после сброса адресе, т.е. 07H

K                  EQU   20H    ;уставка

SYS_CLOCK_LOW EQU  21H     ;ячейка, содержащая текущее значение "системных ;часов". Часы обнуляются в начале каждого цикла ;управления и используются для определения момента ;окончания цикла

SYS_CLOCK_HIGH EQU 22H   

TIMER          EQU   23H    ;ячейка, используемая для формирования задержек

;обработчик прерывания таймера-счетчика 1 ;инкрементирует ее каждые 0.5мс ;независимо от тактовой частоты.

Q4      EQU   24H              ;числовой эквивалент Y4

INPUT_MODE        EQU   25H    ;признак ввода уставки

PRE_K         EQU 26H      ;промежуточное значение при вводе уставки с клавиатуры

                                        ;1 байт на 16-ричную цифру

COUNT        EQU 28H      ; число введенных цифр уставки    ;обработчик прерывания таймера-счетчика 1 ;инкрементирует ее каждые 0.5мс независимо от тактовой

;частоты.

 

ajmp START

;таблица переходов

org 0003H

ajmp IE0_HANDLER

org 000BH

ajmp TF0_HANDLER

org 001BH

ajmp TF1_HANDLER

org 0040H

;собственно головной модуль

START:

acall INIT

CONTROL_CYCLE:

acall PROCESS_BOOLEAN

acall PROCESS_ANALOG_1

acall PROCESS_ANALOG_2

WAIT_500ms:

mov R0,SYS_CLOCK_LOW

mov R1,SYS_CLOCK_HIGH

cjne R0,#0E8H,WAIT_500ms

cjne R1,#03,WAIT_500ms

mov SYS_CLOCK_LOW,#0

mov SYS_CLOCK_HIGH,#0

ajmp CONTROL_CYCLE

CONVERTOR_TABLE:

DB 11111100B,01100000B,11011010B,11110010B

DB 01100110B,10110110B,10111110B,11100000B

DB 11111110B,11110110B,11101110B,00111110B

DB 10011100B,01111010B,10011110B,10001110B

3.3  Инициализация МПС

При инициализации МПС необходимо установить режимы работы программируемых интерфейсных БИС. В разрабатываемой МПС инициализации требует единственная БИС: контроллер клавиатуры и дисплея IOP КР580ВВ79. Кроме того, необходимо инициализировать встроенный контроллер прерываний CPU. Необходимо также присвоить начальные значения переменным.

ККД работает в режиме одиночного нажатия клавиши; сканирование в режиме инверсного дешифратора на 4 выхода. Поскольку в качестве внешнего синхросигнала используется ALE, следующий с частотой fBQ/6=4.8*106/6=800кГц, для получения внутреннего опорного сигнала с частотой 100кГц необходимо загрузить делитель 8. Ниже приведен текст программного модуля INIT: