Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АКР_КЛ.doc
Скачиваний:
8
Добавлен:
13.04.2015
Размер:
1.09 Mб
Скачать

1.1.1 Призначення регістрів sfr та окремих бітів цих регістрів

Акумулятор (Acc) використовується як джерело і як приймач при обчисленнях та пересилках. Мається можливість як бітової, так і байтової адресації.

Регістр В використовується як джерело і як приймач при операціях множення або ділення. Мається можливість як бітової, так і байтової адресації.

Регістр слова стану програми (PSW) містить біти (прапорці), які відзеркалюють результати виконання операцій, біти обрання відповідного регістрового банку, біт загального використання, який доступний користувачу:

C

AC

F0

RS1

RS0

OV

*

P

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);

1.1.2 Система команд мікро контролера 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-кодитаопис команд.В таблицях використані наступні позначення:

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

Таблиця 1 – команди пересилки

Мнемокод

МЦ

HEX-коди

Опис команди

MOV A, Rn

1

E8 .. EF

A  Rn

MOV A, direct

1

E5

A  (direct)

MOV A, @Ri

1

E6 .. E7

A  (Ri)

MOV A, #data

1

74

A  data

MOV Rn, A

1

F8 .. FF

Rn  A

MOV Rn, direct

2

A8 .. AF

Rn  (direct)

MOV Rn, #data

1

78 .. 7F

Rn  data

MOV direct, A

1

F5

(direct)  A

MOV direct, Rn

2

88 .. 8F

(direct)  Rn

MOV direct, direct

2

85

(direct)  (direct)

MOV direct, @Ri

2

86 .. 87

(direct)  (Ri)

MOV direct, #data

2

75

(direct)  data

MOV @Ri, A

1

F6 .. F7

(Ri)  A

MOV @Ri, direct

2

A6 .. A7

(Ri)  (direct)

MOV @Ri, #data

1

76 .. 77

(Ri)  data

MOV DPTR, #data16

2

90

DPTR  data16

MOVC A,@A+DPTR

2

93

A  CSEG(A+DPTR)

MOVC A,@A+PC

2

83

A  CSEG(A+PC)

MOVX A, @Ri

2

E2 .. E3

A  XSEG(P2.Ri)

MOVX A, @DPTR

2

E0

A  XSEG(DPTR)

MOVX @Ri, A

2

F2 .. F3

XSEG (P2.Ri)  A

MOVX @DPTR, A

2

F0

XSEG (DPTR)  A

PUSH direct

2

C0

+(SP)  (direct)

POP direct

2

D0

(direct)  (SP)-

XCH A, Rn

1

C8 .. CF

A  Rn

XCH A, direct

1

C5

A  (direct)

XCH A, @Ri

1

C6 .. C7

A  (Ri)

XCHD A, @Ri

1

D6 .. D7

A[3:0]  (Ri[3:0])

Таблиця 2 – логічні та арифметичні команди

Мнемокод

МЦ

HEX-коди

Опис команди

ANL A, Rn

1

58 .. 5F

A  A  Rn

ANL A, direct

1

55

A  A  (direct)

ANL A, @Ri

1

56 .. 57

A  A  (Ri)

ANL A, #data

1

54

A  A  data

ANL direct, A

1

52

(direct)  (direct)  A

ANL direct, #data

2

53

(direct)  (direct)  data

ORL A, Rn

1

48 .. 4F

A  A  Rn

ORL A, direct

1

45

A  A  (direct)

ORL A, @Ri

1

46 .. 47

A  A  (Ri)

ORL A, #data

1

44

A  A  data

ORL direct, A

1

42

(direct)  (direct)  A

ORL direct, #data

2

43

(direct)  (direct)  data

XRL A, Rn

1

68 .. 6F

A  A  Rn

XRL A, direct

1

65

A  A  (direct)

XRL A, @Ri

1

66 .. 67

A  A  (Ri)

XRL A, #data

1

64

A  A  data

XRL direct, A

1

62

(direct)  (direct)  A

XRL direct, #data

2

63

(direct)  (direct)  data

CLR A

1

E4

A  0000 0000 (очищення акумулятора)

CLP A

1

F4

A  A\ (інверсія акумулятора)

RL A

1

23

Зсув лівий циклічний

RLC A

1

33

Зсув лівий з перенесенням

RR A

1

03

Зсув правий циклічний

RRC A

1

13

Зсув правий з перенесенням

SWAP A

1

C4

A[7:4]  A[3:0]

ADD A, Rn

1

28 .. 2F

A  A + Rn

ADD A, direct

1

25

A  A + (direct)

ADD A, @Ri

1

26 .. 27

A  A + (Ri)

ADD A, #data

1

24

A  A + data

ADDC A, Rn

1

38 .. 3F

A  A + Rn + CY

ADDC A, direct

1

35

A  A + (direct) + CY

ADDC A, @Ri

1

36 .. 37

A  A + (Ri) + CY

ADDC A, #data

1

34

A  A + data + CY

SUBB A, Rn

1

98 .. 9F

A  A - Rn - CY

SUBB A, direct

1

95

A  A - (direct) - CY

SUBB A, @Ri

1

96 .. 97

A  A - (Ri) - CY

SUBB A, #data

1

94

A  A - data - CY

INC A

1

04

A  A + 1

Продовження таблиці 2

Мнемокод

МЦ

HEX-коди

Опис команди

INC Rn

1

08 .. 0F

Rn  Rn + 1

INC direct

1

05

(direct)  (direct) + 1

INC @Ri

1

06 .. 07

(Ri)  (Ri) + 1

INC DPTR

1

A3

DPTR  DPTR + 1

DEC A

1

14

A  A - 1

DEC Rn

1

18 .. 1F

Rn  Rn - 1

DEC direct

1

15

(direct)  (direct) - 1

DEC @Ri

1

16 .. 17

(Ri)  (Ri) - 1

MUL AB

4

A4

B.A  A × B

DIV AB

4

84

A.B  A  B

DA A

1

74

Десяткова корекція додавання

Таблиця 3 – команди передачі управління

Мнемокод

МЦ

HEX-коди

Опис команди

ACALL addr11

2

aaa10001

+(SP)  PC; PC[10:0]  adrr11

LCALL addr16

2

12

+(SP)  PC; PC  adrr16

RET

2

22

PC  (SP)-

RETI

2

32

PC  (SP)-; кінець переривання

AJMP addr11

2

aaa00001

PC[10:0]  adrr11

LJMP addr16

2

02

PC  adrr16

JMP @A + DPTR

2

73

PC  DPTR +A

SJMP rel

2

80

PC  PC + rel

JZ rel

2

60

if A = 0 then PC  PC + rel

JNZ rel

2

70

if A  0 then PC  PC + rel

CJNE A, direct, rel

2

B5

if A  (direct) then PC  PC + rel

CJNE A, #data, rel

2

B4

if A  data then PC  PC + rel

CJNE Rn, #data, rel

2

B8 .. BF

if Rn  data then PC  PC + rel

CJNE @Ri,#data, rel

2

B6 .. B7

if (Ri)  data then PC  PC + rel

CJNZ Rn,rel

2

D8 .. DF

Rn  Rn - 1

if Rn  0 then PC  PC + rel

CJNE direct, rel

2

D5

(direct)  (direct) - 1

if (direct)  0 then PC  PC + rel

NOP

1

00

Таблиця 4 – команди булевого процесора MCS– 51

Мнемокод

МЦ

HEX-коди

Опис команди

MOV C, bit

1

A9

CY  BSEG(bit)

MOV bit, C

1

92

BSEG(bit)  CY

CLR C

1

C3

CY  0

CLR bit

1

C2

BSEG(bit)  0

SETB C

1

D3

CY  1

SETB bit

1

D2

BSEG(bit)  1

CPL C

1

B3

CY  CY\

CPL bit

1

B2

BSEG(bit)  BSEG(bit)\

ANL C, bit

2

82

CY  CY  BSEG(bit)

ANL C, bit\

2

B0

CY  CY  BSEG(bit)\

ORL C, bit

2

72

CY  CY  BSEG(bit)

ORL C, bit\

2

A0

CY  CY  BSEG(bit)\

JC rel

2

40

if CY = 1 then PC  PC + rel

JNC rel

2

50

if CY = 0 then PC  PC + rel

JB bit, rel

2

20

if BSEG(bit) = 1

then PC  PC + rel

JNB bit, rel

2

30

if BSEG(bit) = 0

then PC  PC + rel

JBl

2

10

if BSEG(bit) = 1 then

PC  PC + rel и BSEG(bit)  0

    1. Тригери

Тригери відносяться до класу послідовних схем (автоматів), значення вихідних сигналів яких залежать не тільки від значень вхідних сигналів, але й від послідовності їх змін. Для послідовних схем часто потребується введення у розглядання в явному виді часу для опису змін потенційних сигналів.