- •Л.С. Грошева, в.И. Плющаев
- •1. Архитектура систем управления и контроля
- •2. Аппаратная база для систем автоматического управления
- •2.1 Микроконтроллеры семейства mcs-51
- •Базовая архитектура микроконтроллеров семейства mcs-51
- •Блок управления
- •Блок счетчика команд
- •Арифметико-логическое устройство
- •Порты микроконтроллера
- •Внутренняя память данных.
- •Блок таймеров / счетчиков
- •Блок последовательного интерфейса
- •Блок прерываний
- •Система команд
- •2.2.Типовые периферийные устройства
- •3. Задание для контрольной работы
- •4. Пример выполнения контрольной работы
- •5. Задания для лабораторных работ
- •5.1 Обработка дискретной информации
- •5.2 Обработка аналоговой информации
- •Литература
- •Оглавление
- •Грошева Людмила Серафимовна Плющаев Валерий Иванович
- •Учебно-методическое пособие
Система команд
Для описания системы команд используются следующие обозначения:
A - аккумулятор;
Rn - регистр общего назначения с номером n;
Direct - любой регистр специального назначения или ячейка внутреннего ОЗУ;
#Data - байт данных, содержащийся во втором байте кода команды.
Met - метка в командах переходов, указывающая какая команда будет выполняться следующей.
Bit – имя прямоадресуемого бита (например: A.1, P2.3)
Наиболее часто используемые команды:
1.Сложение содержимого аккумулятора и содержимого второго операнда, результат записывается в аккумулятор.
ADD A,Rn ; A+Rn A - прибавить к содержимому аккумулятора содержимое регистра общего назначения с номером n
ADD A,Direct ; A+DirectA - прибавить к содержимому аккумулятора содержимое ячейки внутреннего ОЗУ или регистра специального назначения
ADD A,#Data ; A+DataA - прибавить к содержимому аккумулятора данные, содержащиеся во втором байте команды
2.Вычитание из содержимого аккумулятора содержимого второго операнда, результат записывается в аккумулятор.
SUBB A,Rn ; A-Rn A
SUBB A,Direct ; A-DirectA
SUBB A,#Data ; A-Data A
3.Увеличение содержимого указанного операнда на 1.
INC A ; A+1 A
INC Direct ; Direct+1Direct
INC Rn ; Rn+1 Rn
4.Уменьшение содержимого указанного операнда на 1.
DEC A ; A-1 A
DEC Direct ; Direct-1 Direct
DEC Rn ; Rn-1 Rn
5.Логическое умножение («И») содержимого аккумулятора и содержимого второго операнда, результат записывается в аккумулятор.
ANL A,Rn ; A AND Rn A
ANL A,Direct ; A AND Direct A
ADD A,#Data ; A AND Data A
6.Логическое сложение («ИЛИ») содержимого аккумулятора и содержимого второго операнда, результат записывается в аккумулятор.
ORL A,Rn ; A OR Rn A
ORL A,Direct ; A OR DirectA
ORL A,#Data ; A OR Data A
7.”Исключающее или” содержимого аккумулятора и содержимого второго операнда, результат записывается в аккумулятор.
XRL A,Rn ; A XOR Rn A
XRL A,Direct ; A XOR DirectA
XRL A,#Data ; A XOR DataA
8.Очистка аккумулятора – содержимое всех разрядов аккумулятора сбрасывается в ноль.
CLR A ; 0А
9. Переслать содержимое второго операнда в первый.
MOV A,Rn ; Rn A
MOV A,Direct ;DirectA
MOV A,#Data ;DataA
MOV Rn,A ; A Rn
MOV Rn,Direct ;DirectRn
MOV Rn,#Data ;DataRn
MOV Direct,Rn ; Rn Direct
MOV Direct,A ;ADirect
MOV Direct,#Data ;DataDirect
10.Безусловный (обязательный) переход на команду, обозначенную указанной в команде меткой.
LJMP Met
11.Осуществить переход на команду, обозначенную указанной в команде меткой, если содержимое аккумулятора
равно 0:
JZ Met
не равно 0:
JNZ Met
12.Осуществить переход на команду, обозначенную указанной в команде меткой, если содержимое операнда не равно заданным в команде данным.
CJNE A,#Data,Met ;перейти на метку Met, если A ≠ Data
CJNE Rn,#Data,Met ;перейти на метку Met, если Rn≠Data
13.Уменьшить на единицу содержимое указанного регистра Rn и, если содержимое Rn не ноль, - переход на метку, указанную в команде.
DJNZ Rn,Met
14.Установка в «1» прямоадресуемого бита.
SETB Bit; 1Bit
15.Сброс в «0» прямоадресуемого бита.
CLR Bit; 0 bit
16.Инвертирование содержимого прямоадресуемого бита.
CPL Bit; /Bit Bit
11.Осуществить переход на команду, обозначенную указанной в команде меткой, если содержимое прямоадресуемого бита
равно 0:
JNB Bit,Met
не равно 0:
JB Bit,Met
Замечание: при использовании команд переходов необходимо учитывать, что при невыполнении заданного в команде условия будет выполняться следующая за ней команда. При задании метки перед командой, после метки ставится двоеточие.
С другими функциональными возможностями ОМЭВМ и полным перечнем команд можно ознакомиться в [2].