Построение счетчиков на двух регистрах.
МП обладает аппаратной возможностью формирования признака нулевого результата только для одного регистра, а не для регистровой пары. Поэтому пользователю (разработчику программ) необходимо формировать признак нулевого результата на программном уровне.
Фрагмент из программы
Delay:
LXI B, DEL ; пересылается константа
В регистровую пару В-С
M3:
NOP ; пустая команда для увеличения
Времени цикла
NOP
MOV A,C
ORA B ; (A)←(A)V(B)
JNZ M3
JMP Mi ; метка основной программы
END
Построение программы с управляющими сигналами
Если МПС управляет устройством, то на вход МПС поступает сигнал, по результатам которого формируется управляющий сигнал. Пусть двоичный счетчик управляется двумя сигналами, а именно, сигнал Х1 – сброс счетчика в нулевое состояние (начальное) и Х2 – останов счетчика.
Примечание: Эти сигналы используются в программной реализации проектируемого устройства в курсовой и лабораторной работах.
Управляющий сигнал обеспечивает сброс счетчика в начальное состояние, если Х1=0 в разряде регистра А1 (аккумулятор), а Х2=0 в разряде регистра А3 (аккумулятор) : обеспечивает останов счета. Cигналы управления вводятся в аккумулятор МП побайтно.
Рассмотрим последовательность применения управляющих сигналов.
а) выделение сигнала Х1. Для этого применим команду логического умножения (конъюнкция) АNI X, где Х – число (соnst), позволяющее выделить любой разряд (ы) регистра (аккумулятора). В нашем примере константа 02 (ANI 02), которая позволяет выделить разряд сигнала Х1.
б) определение значения разряда (1 или 0)управляющего сигналаХ1: применяем команды JZ или JNZ.
Аналогично для сигнала Х2:
а) выделение сигнала Х2 (сонстанта 08):
б) определение значенияразряда сигнала Х2: применяем команды JZ или JNZ.
Пусть Х1 =Х2=1, то есть рассмотрим ситуацию, когда счетчик работает без воздействия управляющих сигналов:
Разработка программы счетчика табличным методом.
Сущность метода построения счетчика: в памяти МПС на программном уровне формируется таблица (одномерная), в которой по адресу, соответствующему текущему состоянию, записано число (в памяти), которое соответствует следующему состоянию счетчика.
Пример: разработать счетчик табличным методом с произвольным порядком смены состояний.
Пусть счетчик имеет начальное состояние Q0 = 4 и выдает следующие значения
4 →0 →14→12 →8.
NAT обозначим, как метка, которая указывает начальный адрес таблицы знчений, выдаваемых счетчиком.
Фрагмент программы:
…………………………………
MOV A,C ;(А)← (C)
OUT OUTPORT ;вывод значений счетчика
LXI H,NAT ;загружаем данные таблицы