Если подпрограмма обслуживает прерывания, точки входов которых, как нам уже известно, находятся в нулевом банке, значение MBF должно быть обязательно равно нулю. Отсюда следует, что допустимо прерывание только той программы, которая находится в нулевом банке.
Микроконтроллер имеет ряд команд передачи управления, не имеющих аналогов в МП580.
Команда DJNZ эквивалентна двум командам (декремента и перехода по нулевому значению признака Z) и широко используется при организации циклов с выходом по нулю декрементного счетчика.
Команды условного перехода по значению внешних (Т0, T1 ) и внутренних (F0, F1) признаков, не формируемых в процессе преобразования данных. Первые две команды используются для организации реакции микроконтроллера на внешние сигналы ТО, 71, вторые две команды — для разветвления вычислительных процессов по признакам пользователя F0 и F1.
Команда условного перехода по сигналу внешнего прерывания JNI организует переход по сигналу INT = 0 в режиме опроса. Реакция на этот сигнал может быть отличной от той, которая имеет место при непосредственном воздействии INT = 0, когда прерывание разрешено (управление передается по адресу 003)
Команда условного перехода JBb служит для тестирования b-то разряда аккумулятора; представляет собой совокупность двух команд-маскирования b-го разряда аккумулятора и перехода по его ненулевому значению.
Команда JMPP @А передает управление команде текущей страницы, адрес которой находится в аккумуляторе. Эта команда используется для организации многонаправленного перехода типа «переключатель». Пусть, например, требуется передать управление 16 различным программам с именами Rout0 + Rout16 в зависимости от значения индекса X, изменяющегося в пределах от 0 до 15. Это может быть сделано при помощи следующего сегмента программы:
ORG 0 ;задание начального адреса программы;
ANL А, # OFH ;сброс старшей тетрады А во избежание ошибки перехода;
JMPP @ ;обращение к таблице переходов;
DB ROUT0 ;начальный адрес программы ROUT0
DB ROUT1 ;начальный адрес программы ROUT1
DB ROUTF ;начальный адрес программы ROUTF
Отсутствие команд вычитания. Вычитание в микроконтроллере организуется путем использования операций сложения отрицательных чисел, представленных в обратном или дополнительном коде.
Пусть, например, требуется выполнить операцию вычитания X - Y, где X, Y - целые без знака, и поместить разность на место X. Положим, что X и Y располагаются в регистрах R3, R4 нулевого банка
SUB: SEL RB0 ; выбор банка 0
MOV A, R4 ; загрузка вычитаемого
CPL A ; получение дополнительного кода
INC A ; вычитаемого
ADD A, R3 ; формирование разности
MOV R3, A ; засылка результата
Ограниченное количество портов ввода-вывода. В стандартном варианте микроконтроллер использует только три порта ввода/вывода: Р1, Р2 и BUS; в расширенном варианте к портам Р1 и Р2 могут быть подключены до четырех самостоятельных портов. При программировании операций ввода-вывода необходимо учитывать особенности работы портов Р1 ,Р2 и BUS
Порты Р1 и Р2 могут выполнять ввод, вывод или ввод/вывод, в зависимости от программной настройки порта на выполнение заданной операции.
Вывод информации осуществляется с помощью команды OUTL А,Рр (р = 1,2), которая фиксирует выводимые данные на выходном регистре порта. Состояние этого регистра остается неизменным до следующей команды вывода.
При вводе информации используется команда IN А, Рр (р = 1,2), которая производит маскирование (поразрядное «И») входной информации содержимым выходного регистра порта, после чего передает результат маскирования в аккумулятор. При этом содержимое выходного регистра не изменяется.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.