Призначення регістрів SFR та окремих бітів цих регістрів
Таблиця 5 — команди булевого процесора MCS — 51. В командах можливі наступні формування ознак: PSW.5 — прапорець користувача (General Purpose Status Flag). Таблиця 3 — логічні та арифметичні команди. Таблиця 4 — команди передачі управління. Безпосередній операнд, довжиною 16 біт; Регістр загального призначення (n = 0.7); Безпосередній операнд, довжиною 8 біт; Зсув на сторінці CSEG, довжиною 8 бит. Читать ещё >
Призначення регістрів SFR та окремих бітів цих регістрів (реферат, курсовая, диплом, контрольная)
Акумулятор (Acc) використовується як джерело і як приймач при обчисленнях та пересилках. Мається можливість як бітової, так і байтової адресації.
Регістр В використовується як джерело і як приймач при операціях множення або ділення. Мається можливість як бітової, так і байтової адресації.
Регістр слова стану програми (PSW) містить біти (прапорці), які відзеркалюють результати виконання операцій, біти обрання відповідного регістрового банку, біт загального використання, який доступний користувачу:
Рисунок 6 — Формат регістр слова стану програми (PSW).
PSW.0 — біт парності (Parity flag);
PSW.1 — резерв;
PSW.2 — біт переповнення (OVerflow flag);
PSW.3, PSW.4 — біти обрання регістрового банку (Registers Bank Selection);
PSW.5 — прапорець користувача (General Purpose Status Flag).
PSW.6 — зарезервований біт;
PSW.7 — біт перенесення (Carry flag);
Система команд мікроконтролера MCS — 51
Система команд містить 111 команд — одно байтних 49, дво байтних 45 та три байтних 17. Всі команди виконуються за 1 або 2 машинних цикли МЦ (12 тактов CLK), за виключенням команд множення та ділення MUL и DIV, для виконання яких потрібно 4 МЦ. Більшість дво байт них команд — одноциклові, а всі три байтні двох циклові. За один МЦ в MCS — 51 можна вводити до двох байтів програмного коду.
В MCS — 51 передбачена пряма (direct), непряма (через R0, R1 или DPTR) та безпосередня (# data) адресація елементів DSEG и RSEG, пряма адресація елементу BSEG, непряма адресація (через R0, R1 або DPTR) — адресація XSEG.
Вся множина команд розподілена на 5 груп: пересилки 28, логічних 25, арифметичні 24, передачі управління 17 та булевого процесора 17.
В таблицях 1 — 4 наведені мнемо коди команд, тривалість команди в МЦ, HEX-коди та опис команд. В таблицях використані наступні позначення:
Таблиця 1.
A, B. | — акумулятор, додатковий акумулятор; | |
Rn. | — регістр загального призначення (n = 0.7); | |
@Ri. | — не пряма адреса через Ri (i = 0,1); | |
direct. | — пряма адреса DSEG (8 бит); | |
#data. | — безпосередній операнд, довжиною 8 біт; | |
#data16. | — безпосередній операнд, довжиною 16 біт; | |
addr11. | — адреса переходу, довжиною 11 біт; | |
addr16. | — адреса переходу, довжиною 16 бит; | |
rel. | — зсув на сторінці CSEG, довжиною 8 бит; | |
bit. | — пряма адреса BSEG (номер біту). | |
В командах можливі наступні формування ознак:
[1] - P.
[2] - CY, P.
[3] - CY, AC, OV, P.
[4] - OV, P, CY 0.
[5] - CY.
Таблиця 2 — команди пересилки.
Мнемокод. | МЦ | HEX-коди. | Опис команди. | |
MOV A, Rn | E8. EF. | A Rn | ||
MOV A, direct. | E5. | A (direct). | ||
MOV A, @Ri | E6. E7. | A (Ri). | ||
MOV A, #data. | A data. | |||
MOV Rn, A. | F8. FF. | Rn A. | ||
MOV Rn, direct. | A8. AF. | Rn (direct). | ||
MOV Rn, #data. | 78. 7 °F. | Rn data. | ||
MOV direct, A. | F5. | (direct) A. | ||
MOV direct, Rn | 88. 8 °F. | (direct) Rn | ||
MOV direct, direct. | (direct) (direct). | |||
MOV direct, @Ri | 86. 87. | (direct) (Ri). | ||
MOV direct, #data. | (direct) data. | |||
MOV @Ri, A. | F6. F7. | (Ri) A. | ||
MOV @Ri, direct. | A6. A7. | (Ri) (direct). | ||
MOV @Ri, #data. | 76. 77. | (Ri) data. | ||
MOV DPTR, #data16. | DPTR data16. | |||
MOVC A,@A+DPTR. | A CSEG (A+DPTR). | |||
MOVC A,@A+PC. | A CSEG (A+PC). | |||
MOVX A, @Ri | E2. E3. | A XSEG (P2.Ri). | ||
MOVX A, @DPTR. | E0. | A XSEG (DPTR). | ||
MOVX @Ri, A. | F2. F3. | XSEG (P2.Ri) A. | ||
MOVX @DPTR, A. | F0. | XSEG (DPTR) A. | ||
PUSH direct. | C0. | +(SP) (direct). | ||
POP direct. | D0. | (direct) (SP); | ||
XCH A, Rn | C8. CF. | A Rn | ||
XCH A, direct. | C5. | A (direct). | ||
XCH A, @Ri | C6. C7. | A (Ri). | ||
XCHD A, @Ri | D6. D7. | A[3:0] (Ri[3:0]). | ||
Таблиця 3 — логічні та арифметичні команди.
Мнемокод. | МЦ | HEX-коди. | Опис команди. | |
ANL A, Rn | 58. 5 °F. | A A Rn | ||
ANL A, direct. | A A (direct). | |||
ANL A, @Ri | 56. 57. | A A (Ri). | ||
ANL A, #data. | A A data. | |||
ANL direct, A. | (direct) (direct) A. | |||
ANL direct, #data. | (direct) (direct) data. | |||
ORL A, Rn | 48. 4 °F. | A A Rn | ||
ORL A, direct. | A A (direct). | |||
ORL A, @Ri | 46. 47. | A A (Ri). | ||
ORL A, #data. | A A data. | |||
ORL direct, A. | (direct) (direct) A. | |||
ORL direct, #data. | (direct) (direct) data. | |||
XRL A, Rn | 68. 6 °F. | A A Rn | ||
XRL A, direct. | A A (direct). | |||
XRL A, @Ri | 66. 67. | A A (Ri). | ||
XRL A, #data. | A A data. | |||
XRL direct, A. | (direct) (direct) A. | |||
XRL direct, #data. | (direct) (direct) data. | |||
CLR A. | E4. | A 0000 0000 (очищення акумулятора). | ||
CLP A. | F4. | A A (інверсія акумулятора). | ||
RL A. | Зсув лівий циклічний. | |||
RLC A. | Зсув лівий з перенесенням. | |||
RR A. | Зсув правий циклічний. | |||
RRC A. | Зсув правий з перенесенням. | |||
SWAP A. | C4. | A[7:4] A[3:0]. | ||
ADD A, Rn | 28. 2 °F. | A A + Rn | ||
ADD A, direct. | A A + (direct). | |||
ADD A, @Ri | 26. 27. | A A + (Ri). | ||
ADD A, #data. | A A + data. | |||
ADDC A, Rn | 38. 3 °F. | A A + Rn + CY. | ||
ADDC A, direct. | A A + (direct) + CY. | |||
ADDC A, @Ri | 36. 37. | A A + (Ri) + CY. | ||
ADDC A, #data. | A A + data + CY. | |||
SUBB A, Rn | 98. 9 °F. | A A — Rn — CY. | ||
SUBB A, direct. | A A — (direct) — CY. | |||
SUBB A, @Ri | 96. 97. | A A — (Ri) — CY. | ||
SUBB A, #data. | A A — data — CY. | |||
INC A. | A A + 1. | |||
INC Rn | 08. 0 °F. | Rn Rn + 1. | ||
INC direct. | (direct) (direct) + 1. | |||
INC @Ri | 06. 07. | (Ri) (Ri) + 1. | ||
INC DPTR. | A3. | DPTR DPTR + 1. | ||
DEC A. | A A — 1. | |||
DEC Rn | 18. 1 °F. | Rn Rn — 1. | ||
DEC direct. | (direct) (direct) — 1. | |||
DEC @Ri | 16. 17. | (Ri) (Ri) — 1. | ||
MUL AB. | A4. | B.A A B. | ||
DIV AB. | A.B A B. | |||
DA A. | Десяткова корекція додавання. | |||
Таблиця 4 — команди передачі управління
Мнемокод. | МЦ | HEX-коди. | Опис команди. | |
ACALL addr11. | aaa10001. | +(SP) PC; PC[10:0] adrr11. | ||
LCALL addr16. | +(SP) PC; PC adrr16. | |||
RET. | PC (SP); | |||
RETI. | PC (SP)-; кінець переривання. | |||
AJMP addr11. | aaa00001. | PC[10:0] adrr11. | ||
LJMP addr16. | PC adrr16. | |||
JMP @A + DPTR. | PC DPTR +A. | |||
SJMP rel. | PC PC + rel. | |||
JZ rel. | if A = 0 then PC PC + rel. | |||
JNZ rel. | if A 0 then PC PC + rel. | |||
CJNE A, direct, rel. | B5. | if A (direct) then PC PC + rel. | ||
CJNE A, #data, rel. | B4. | if A data then PC PC + rel. | ||
CJNE Rn, #data, rel. | B8. BF. | if Rn data then PC PC + rel. | ||
CJNE @Ri,#data, rel. | B6. B7. | if (Ri) data then PC PC + rel. | ||
CJNZ Rn, rel. | D8. DF. | Rn Rn — 1 if Rn 0 then PC PC + rel. | ||
CJNE direct, rel. | D5. | (direct) (direct) — 1 if (direct) 0 then PC PC + rel. | ||
NOP. | ||||
Таблиця 5 — команди булевого процесора MCS — 51.
Мнемокод. | МЦ | HEX-коди. | Опис команди. | |
MOV C, bit. | A9. | CY BSEG (bit). | ||
MOV bit, C. | BSEG (bit) CY. | |||
CLR C. | C3. | CY 0. | ||
CLR bit. | C2. | BSEG (bit) 0. | ||
SETB C. | D3. | CY 1. | ||
SETB bit. | D2. | BSEG (bit) 1. | ||
CPL C. | B3. | CY CY. | ||
CPL bit. | B2. | BSEG (bit) BSEG (bit). | ||
ANL C, bit. | CY CY BSEG (bit). | |||
ANL C, bit. | B0. | CY CY BSEG (bit). | ||
ORL C, bit. | CY CY BSEG (bit). | |||
ORL C, bit. | A0. | CY CY BSEG (bit). | ||
JC rel. | if CY = 1 then PC PC + rel. | |||
JNC rel. | if CY = 0 then PC PC + rel. | |||
JB bit, rel. | if BSEG (bit) = 1 then PC PC + rel. | |||
JNB bit, rel. | if BSEG (bit) = 0 then PC PC + rel. | |||
JBl. | if BSEG (bit) = 1 then PC PC + rel и BSEG (bit) 0. | |||