Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 64

STRT  CNT                ;3апуск счетчика

МТ:                 MOV   А,Т                  ;3агрузка аккумулятора из счетчика

JB5MET                     ;Переход к метке МЕТ при А5=1, т.е. (А)=32

JMP     МТ                  ;Переход к метке МТ

Р6.87. Фрагмент программы:

COUNT:          STRT  CNT                ;Запуск счетчика

BEG:               CLR    А                     ;Очистка аккумулятора

MOV   Т,А                  ;Очистка счетчика

L1:                   JTF L2            ;Условный переход к метке L2 по признаку

;переполнения счетчика

JMP     L1                    ;Возврат к L1

L2:                   INC     А                     ;Инкремент аккумулятору

OUTL  P1,A                ;Вывод (А) в порт Р1

JB8      BEG                ;Возврат к метке BEG при А8 = 1, т.е.

;при (А) = 128

JMP     L2                    ;Возврат к L2

Р6.88. При тактовой частоте МК1816 6 МГц во внутреннем. Датчике (таймере) состояние инкрементируется каждые 80 мкс. Таким образом, заданный интервал 8 мс соответствует состоянию таймера 100 = 64Н. Вариант программы приведен ниже. Подпрограмма PROG1 выполняется в начале каждого интервала (предполагается, что время ее выполнения меньше 8 мс). Проверка состояния таймера производится с помощью команд XPL и JZ.

INT:                 CLR    А                     ;Очистка аккумулятора

MOV   Т, А                 ;Очистка таймера

STRT  Т                      ;3апуск таймера

CALL  PROG1            ;Вызов подпрограммы PROG1

L1:                   MOV   А, Т                 ;Пересылка из таймера в аккумулятор

XRL    A,#64H           ;(А)←(А)+01100100

JZ        INT                  ; Переход к метке INT, если (А) = 0

JMP     L1                    ;Возврат к метке L1

ROG1: ...................                 ;

...................                 ;           Подпрограмма

RET                 ;           ;

P6.89. Схема МПС на базе МК1816 с дополнительным одним ОЗУ емкостью 256 байт приведена на рис. Р6.4. ОЗУ показано условно: оно может состоять и из нескольких микросхем. Управление ОЗУ производится через многорежимный буферный регистр (МБР) с помощью сигналов «строб веса внешней памяти» (САВП),  и , снимаемых выходов МК. Адреса выбираемых ячеек ОЗУ и данные подаются через двунаправленный внутренний порт BUS.

Рис. Р6.4. Схема подключения дополнительного (внешнего) ОЗУ к микроконтроллеру КМ 1816

При ВР = 1 информационные выходы МБР постоянно открыты. В исходном состоянии САВП = ВК2 = 0 и информационные входы МБР от шины BUS отключены. Обращение к внешнему ОЗУ осуществляется с помощью команд пересылки MOVX A, (@ Rr и MOVX (@ Rr, А с косвенной адресацией выбираемых ячеек ОЗУ в регистрах R0 и R1 внутреннего ОЗУ МК. При выполнении этих команд в МК образуйся сигнал САВП=1, который открывает информационные входы МБР, в результате чего байт адреса ячейки ОЗУ выводится через порт BUS на адресные входы внешнего ОЗУ А0…7.После этого МК выдает сигналы ,  и обменивается информацией с ОЗУ опять же через порт BUS, но теперь по входам D0…7 ОЗУ. При Зп = 0, Чт = 1 информация выводится из МК в ОЗУ, а при Зп = 1,Чт = 0 — вводится в МК из ОЗУ.

Р6.90. Схема МПС с расширенной памятью программ представлена на рис. Р6.5. При обращении к внутренней памяти программ емкостью 1 Кбайт (адреса 0 ... 1023) МК


Рис. Р6.5. Схема подключения дополнительного (внешнего) ПЗУ к микроконтроллеру КМ 1816


генерирует внешних управляющих сигналов (кроме сигнала САВП, сопровождающего каждый машинный цикл).Начиная с адреса 1024, МК при выполнении команд JMP и CALL автоматически выводит содержимое счетчика команд 1 бит) через порт BUS (биты А0 ... А7) и младшую тетраду порта Р2 (биты А8 ... а11), а также формирует сигнал «разрешение внешней памяти» РВП = 0. Последний используется для фиксации байта адреса А0 ... А7 в регистре МБР (биты А8 ... а11 фиксируются в порте Р2). Поскольку при ВР=1коды МБР всегда открыты, адрес выбираемой ячейки А0 ... а9по сигналу РВП = 0 подается параллельно на все сразу ПЗУ.