- •1. Система команд мікроконтролерів сімейства mcs51.
- •1.1. Загальна характеристика команд.
- •1.2. Команди пересилки даних мікроконтролера mcs51.
- •1.3. Команди логічних операцій мікроконтролера mcs51.
- •1.4. Команди операцій над бітовими змінними мікроконтролера mcs51.
- •1.5. Команди передачі керування мікроконтролера mcs51.
1.4. Команди операцій над бітовими змінними мікроконтролера mcs51.
Група складається з 12 команд, короткий опис яких приведений в табл.5. Ці команди дозволяють виконувати операції над окремими бітами: скидання, встановлення, інверсію біта, а також логічні І (/\) та АБО (\/). В якості "логічного" аккумулятора, що бере участь у всіх операціях з двома операндами, виступає прапорець переносу С (розряд D7 PSW). В якості операндів можуть використовуватися 128 біт з бітової пам'яті даних та регістри спеціальних функцій, що допускають адресацію окремих біт. У таблиці також вказані тип команди (Т) відповідно до табл.1, її довжина в байтах (Б) і час виконання в машинних циклах (Ц).
Табл. 5. Операції з бітовими змінними
|
Назва команди |
Мнемокод |
КОП |
Т |
Б |
Ц |
Операція |
|
Скидання прапорця переносу |
CLR С |
11000011 |
1 |
1 |
1 |
(C) 0 |
|
Скидання біту |
CLR bit |
11000010 |
4 |
2 |
1 |
(b) 0 |
|
Встановлення прапорця переносу |
SETB С |
11010011 |
1 |
1 |
1 |
(C) 1 |
|
Встановлення біту |
SETB bit |
11010010 |
4 |
2 |
1 |
(b) 1 |
|
Інверсія прапорця переносу |
CPL С |
10110011 |
1 |
1 |
1 |
(C) NOT(C) |
|
Інверсія біта |
CPL bit |
10110010 |
4 |
2 |
1 |
(b) NOT(b) |
|
Логічне І біта та прапорця переносу |
ANL С, bit |
10000010 |
4 |
2 |
2 |
(C) (C) AND (b) |
|
Логічне І інверсії біта та прапорця переносу |
ANL С, /bit |
10110000 |
4 |
2 |
2 |
(C) (C) AND (NOT(b)) |
|
Логічне АБО біта та прапорця переносу |
ORL С, bit |
01110010 |
4 |
2 |
2 |
(C) (C) OR (b) |
|
Логічне АБО інверсії біта та прапорця переносу |
ORL С, /bit |
10100000 |
4 |
2 |
2 |
(C) (C) OR (NOT(b)) |
|
Пересилка біта в прапорець переносу |
MOV С, bit |
10100010 |
4 |
2 |
1 |
(C) (b) |
|
Пересилка прапорця переносу в біт |
MOV bit, С |
10010010 |
4 |
2 |
2 |
(b) (C) |
78) CLR С
Команда виконує скидання (онулення) прапорця переносу С.
(С) = 1
CLR C
(C)=0.
79) CLR bit
Команда виконує онулення бітової змінної bit.
(P1) AFH 10101111B
CLR P1.3
(P1) A7H 10100111B.
80) SETB С
Команда виконує встановлення прапорця переносу С.
(С) = 0
SETB C
(C)=1.
81) SETB bit
Команда виконує встановлення бітової змінної bit.
(P1) 82H 10000010B
SETB P1.5
(P1) A2H 10100010B.
82) CPL С
Команда виконує інверсію прапорця переносу С.
(С) = 1
CPL C
(C)=0.
83) CPL bit
Команда виконує інверсію бітової змінної bit.
(F) = 0
CPL F
(F)=1.
84) ANL С, bit
Команда виконує логічне множення (“І”) над прапорцем переносу та бітовою змінною bit. Якщо бітова змінна bit рівна 0, то відбувається онулення прапорця переносу С, в іншому випадку прапорець переносу не змінює свого біжучого значення.
(C)=1, (P1.4)=0
ANL C, P1.4
(C)=0, (P1.4)=0.
85) ANL С, /bit
Команда виконує логічне множення (“І”) над прапорцем переносу та інверсним значенням бітової змінною bit. Якщо інверсія бітової змінної bit рівна 0, то відбувається онулення прапорця переносу С, в іншому випадку прапорець переносу не змінює свого біжучого значення. Значення інверсної змінної bit не змінюється.
(C)=1, (P1.2)=1
ANL C, /P1.2
(C)=0, (P1.2)=1.
86) ORL С, bit
Команда виконує логічне додавання (“АБО”) над прапорцем переносу та бітовою змінною bit. Якщо бітова змінна bit рівна 1, то відбувається встановлення прапорця переносу С, в іншому випадку прапорець переносу не змінює свого біжучого значення.
(C)=0, (P1.7)=1
ORL C, P1.7
(C)=1, (P1.7)=1.
87) ORL С, /bit
Команда виконує логічне додавання (“АБО”) над прапорцем переносу та інверсним значенням бітової змінною bit. Якщо інверсія бітової змінної bit рівна 1, то відбувається встановлення прапорця переносу С, в іншому випадку прапорець переносу не змінює свого біжучого значення. Значення інверсної змінної bit не змінюється.
(C)=0, (P1.7)=0
ANL C, /P1.7
(C)=1, (P1.7)=0.
88) MOV С, bit
Команда пересилає вмістиме бітової змінної bit в прапорець переносу С. Значення інших прапорців не змінюється.
(C)=0, (P3.0)=1
MOV C, P3.0
(C)=1, (P3.0)=1.
89) MOV С, /bit
Команда пересилає інвертоване значення вмістимого бітової змінної bit в прапорець переносу С. Значення бітової змінної bit та інших прапорців не змінюється.
(C)=0, (P3.2)=0
MOV C, P3.2
(C)=1, (P3.0)=0.
