Система команд мікроконтролерів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Система команд мікроконтролерів

У сімействі AVR система команд у мікроконтролерів різних типів містять від 89 до 130 команд (табл. В1, колонка NK). У мікроконтролерів типу 2323, 2343, 2313, 4433, 8515 і 8535 в систему команд входять 118 команд. Цю систему команд будемо називати базовою.

У табл. 1-13 описані операції, що виконуються за командами базової системи, і наведені мнемокод команд, які використовуються при розробці програми на мові AVR Асемблера. У таблицях дана наскрізна нумерація команд, використовувана далі в тексті.

Базова система команд містить:

33 команди реєстрових операцій, при виконанні яких використовуються лише регістри загального призначення (команди № № 1-33);

26 команд зі зверненням за адресою в адресному просторі SRAM (команди № № 34-59);

2 команди зі зверненням до регістрів введення-виведення (команди № № 60 і 61);

1 команда зі зверненням до FlashROM (команда № 62);

22 команди операцій з бітами в розрядах регістрів загального призначення і регістрів введення-виведення (команди № № 63-84);

34 команди управління ходом програми (команди № № 85-118).

У систему команд мікроконтролерів типу t1l, t12, t15, 1200 і t28, у яких немає SRAM, не входять команди зі зверненням за адресою в адресному просторі SRAM за винятком команд з мнемокода LD Rd, Z (№ 40) і ST Z, Rr ( № 41), по яких проводиться звернення до регістрів загального призначення і регістрам введення-виведення з використанням непрямої адресації. У систему команд у цих мікроконтролерів не входять також 2 команди реєстрових операцій (№ № 32 і 33) та дві команди управління ходом програми (№ № 86 і 88). У мікроконтролерів типу 1200 в систему команд не входить також команда зі зверненням до FlashROM (№ 62).

У систему команд мікроконтролерів типу m163 і m10З входять додаткові команди. Поява деяких з них пов'язане зі збільшеним об'ємом FlashROM, а у мікроконтролера типу т163, крім того, з наявністю апаратного помножувача.

При розробці програми роботи мікроконтролера крім мнемокод команд використовуються директиви асемблера і інші засоби асемблера. Особливості розробки програми на мові Асемблера AVR фірми Atmel розглянуті в додатку П8.

Таблиця 1

Операція

Мнемокод команди

Ознаки результату




H

S

V

N

Z

C

1

CLR


0

0

0

1


2

TST


+

0

+

+


3

COM


+

0

+

+

1

4

NEG

+

+

+

+

+

+

5

INC


+

+

+

+


6

DEC


+

+

+

+


7

LSR


+

+

0

+

+

8

LSL

+

+

+

+

+

+

9

ROR


+

+

+

+

+

10

ROL

+

+

+

+

+

+

11

ASR


+

+

+

+

+

12

SWAP







13

MOV







14

ADDV

+

+

+

+

+

+

15

ADC

+

+

+

+

+

+

16

SUB

+

+

+

+

+

+

17

SBC

+

+

+

+

+

+

18

CP

+

+

+

+

+

+

19

CPC

+

+

+

+

+

+

20

AND


+

0

+

+

+

21

OR


+

0

+

+


22

EOR


+

0

+

+


d = 0 - 31, r = 0 - 31

Таблиця 2

Операція

Мнемокод команди

Ознаки результату

23

SER

H

S

V

N

Z

C

24

LDI







25

SUBI

+

+

+

+

+

+

26

SBCI

+

+

+

+

+

+

27

CPI

+

+

+

+

+

+

28

ANDI


+

0

+

+


29

CBR


+

0

+

+


30

ORI


+

0

+

+


31

SBR


+

0

+

+


d = 16 - 31 ('), K = 0 - 255

Таблиця 3

Операція

Мнемокод команди

Ознаки результату




H

S

V

N

Z

C

32

ADIW


+

+

+

+

+

33

SBIW


+

+

+

+

+

d = 24, 26, 28, 30, K = 0 - 63

Таблиця 4

Операція

Мнемокод команди

Операція

Мнемокод команди

34

LSD

35

STS

d, r = 0 - 31, k - адреса з адресного простору SRAM

Таблиця 5

Операція

Мнемокод команди

Операція

Мнемокод команди

36

LD

37

ST

38

LD

39

ST

40

LD

41

ST

42

1

2

LD

43

1

2

ST

44

1

2

LD

45

1

2

ST

46

1

2

LD

47

1

2

ST

48

1

2

LD

49

1

2

ST

50

1

2

LD

51

1

2

ST

52

1

2

LD

53

1

2

ST

54

LDD

55

ST

56

LDD

57

ST

58

1

2

POP

59

1

2

PUSH

d, r = 0 - 31, q = 0 - 63

Таблиця 6

Операція

Мнемокод команди

Операція

Мнемокод команди

60

IN

61

OUT

d, r = 0 - 31, P = 0 - 63 = $ 00 - $ 3F

Таблиця 7

Операція

Мнемокод команди

(Z.15-1) - адреса в FlashROM

Z.0 = 0 - мол. байт; Z.0 = 1 - ст. байт

62

LPM


Таблиця 8

Операція

Мнемокод команди

Операція

Мнемокод команди

63

BLD

64

BST

65

CBI

66

SBI

67

BCLR

68

BSET

d, r = 0 - 31; P = 0 - 31 (!); b = 0 - 7

Таблиця 9

Операція

Мнемокод команди

Операція

Мнемокод команди

69

CLI

70

SEI

71

CLT

72

SET

73

CLH

74

SHE

75

CLS

76

SES

77

CLV

78

SEV

79

CLN

80

SEN

81

CLZ

82

SEZ

83

CLC

84

SEC

Таблиця 10

Операція

Мнемокод команди

Операція

Мнемокод команди

85

RJMP k

86

IJMP

87

1.

2.

3.

RCALL k

88

1.

2.

3.

ICALL

89

1.

2.

RET

90

1.

2.

3.

RETI

k = -2048 - +2047

До групи реєстрових операцій входять пересильні, арифметичні та логічні операції. Команди реєстрових операцій описані в табл. 1, 2 і 3. Машинні коди всіх команд реєстрових операцій мають формат "слово", команди № № 1-31 виконуються за один такт, а команди № № 32 і 33 - за два такти.

При описі операцій в табл. 1-3 використовуються наступні позначення:

Таблиця 11

Операція

Мнемокод команди

Операція

Мнемокод команди

91

I = 0

BRID k

92

I = 1

BRIE k

93

T = 0

BRTC k

94

T = 1

BRTS k

95

H = 0

BRHC k

96

H = 1

BRHS k

97

S = 0

BRGE k

98

S = 1

BRLT k

99

V = 0

BRVC k

100

V = 1

BRVS k

101

N = 0

BRPL k

102

N = 1

BRMI k

103

Z = 0

BRNE k

104

Z = 1

BREQ k

105

C = 0

BRCC k

106

C = 1

BRCS k

107

C = 0

BRSH k

108

C = 1

BRLO k

109

SREG.b = 0

BRBC b, k

110

SREG.b = 1

BRBS b, k

k = -64 - +63; b = 0 - 7

Таблиця 12

Операція

Мнемокод команди

Операція

Мнемокод Команди

111

SBRC

112

SBRS

113

SBIC

114

SBIS

115

CPSE




d, r = 0 - 31; P = 0 - 31 (!); b = 0 - 7

Таблиця 13

Операція

Мнемокод команди

116

МК - режим енергозбереження

SLEEP

117

Перезапуск WDT

WDR

118

Ні

NOP

RdRr - регістри загального призначення з номерами d і r відповідно;

(Rd), (Ri) - байти в регістрах Rd n R, відповідно;

Rd.b - розряд b (b = 0-7) регістра Rfi, біт в розряді Rd.b;

$ - покажчик шестнадцатернчного коду;

^, v, + - знаки логічних операції І, АБО, що виключає АБО відповідно;

(~)/(), () - знаки операції НЕ, зсув коду вправо, зсув коду вліво відповідно.

Арифметичні операції - додавання і віднімання - можуть виконуватися з числами без знаку у двійковому коді і з числами із знаком в додатковому двійковому коді. На відміну від мікроконтролерів багатьох інших родин, в яких віднімання зводиться до складання з числом зі зміненим знаком (XY = X + (-Y)), в мікроконтролерах сімейства AVR віднімання виконується за допомогою апаратного двійкового вичітателя. Робота двійкового вичітателя розглянута в додатку П7.

При виконанні арифметичних і логічних операцій окрім коду результату формуються значення ознак результату. При виконанні операцій порівняння (команди М »№ 18, 19 і 27) формуються лише значення ознак результату.

Значення ознак результату представлені станом розрядів регістра стану SREG (№ S3F). Використовуються тесть ознак результату, яким присвоєно імена С (SREG.O), Z (SREG.1) N (SREG.2), V (SREG.3), S (SREG.4) та Н (SREG.5). У табл. 1-3 ознаки, значення яких формуються при виконанні команд, відмічені знаком "+" плі вказано їх значення.

При виконанні різних операцій значення ознак формуються за різними правилами.

Ознака С бере одиничне значення:

при появі одиниці переносу зі старшого розряду при виконанні операції додавання (команди № № 14, 15 і 32);

при появі одиниці позики в старший розряд при виконанні операції віднімання (команди №> № 4, 16, 17, 18, ​​19, 25, 26, 27 і 33);

при виході одиниці за межі розрядної сітки при виконанні операції зсуву (команди № № 7, 8, 9, 10 і 11).

Одиничне значення ознаки С при виконанні операцій додавання і віднімання з числами без знаку свідчить про отримання неправильного результату операції внаслідок переповнення розрядної сітки.

Ознака Z приймає одиничне значення при отриманні нульового результату операції. При виконанні операції віднімання з урахуванням позики (команди № № 17, 19 і 26) Z = 1, якщо нульовий результат отримано при виконанні даної і попередньої операцій.

Ознака N має значення, рівне значенню старшого розряду коду результату. При виконанні арифметичних операції з числами із знаком і відсутності переповнення розрядної сітки він представляє знак результату.

Ознака V приймає одиничне значення, якщо при виконанні арифметичної операції з числами із знаком виникло переповнення розрядної сітки.

Ознака S = N + V представляє знак результату при виконанні арифметичних операцій з числами із знаком незалежно від переповнення розрядної сітки. При переповненні розрядної сітки (V = l) знак результату протилежний значенням в старшому розряді коду результату.

Ознака Н приймає одиничне значення при наявності одиниці переносу з розряду D3 в розряд D4 при виконанні операції додавання, за наявності одиниці позики у розряд D3 з розряду D4 при виконанні операції віднімання і при передачі одиниці з розряду D3 в розряд D4 при виконанні операції зсуву коду вліво .

Команди із зверненням за адресою SRAM

По командах із зверненням за адресою в адресному просторі SRAM виконуються операції пересилки (копіювання) байта між регістром загального призначення і елементом, якому відповідає адреса в адресному просторі SRAM. Таким елементом може бути регістр загального призначення (адреси від $ 00 до $ 1F), регістр введення-виведення (адреси від $ 20 до $ 5F), комірка пам'яті в SRAM (адреси від $ 60 до максимального адреси в SRAM), комірка пам'яті в ERAM (адреси від максимального адреси в SRAM +1 до максимального адреси в ERAM) (див. п. 1.5).

Команди із зверненням за адресою в адресному просторі SRAM описані в табл. 4 і 5.

Машинні коди команд № № 34 і 35 мають формат "2 слова", машинні коди інших команд - формат "слово". Команди виконуються за 2 такту, а при зверненні до осередків в ERAM - за 3 такту. У разі необхідності в цикл виконання команди при зверненні до ERAM може бути введений додатковий такт очікування.

У табл. 4 і 5 використовуються такі нові позначення:

яча - регістр загального призначення, регістр введення-виведення, комірка пам'яті в SRAM, комірка пам'яті в ERAM, до яких проводиться звернення з використанням адреси А з адресного простору SRAM;

(яча) - байт у м'яча;

X, Y, Z - пара регістрів загального призначення X (R26, R27), Y (R28, R29), Z (R30, R31) відповідно;

(X), (Y), (Z) - слово в парі регістрів X, Y, Z відповідно;

СТЕК - яча, до якої виробляється звернення з використанням адреси, що зберігається в регістрі-покажчику стека SP;

(СТЕК) - байт у СТЕК, е;

(SP) - код числа у регістрі SP.

У командах № № 34 і 35 реалізується пряма адресація. Адреса байта (А = к) указивет в коді команди.

У командах № № 36-57 реалізується непряма адресація. Адреса байта знаходиться в парі регістрів X, Y або Z. При виконанні команд № № 42-47 після виконання пересилання адреса в парі регістрів апаратно збільшується па одиницю. При виконанні команд № № 48-53 до виконання пересилання адреса в парі регістрів апаратно зменшується на одиницю. При виконанні команд № № 54-57 адреса, за якою проводиться звернення, дорівнює адресою в парі регістрів Y або Z, збільшеному на число q, яке зазначено в коді команди. Адреса в парі регістрів залишається без зміни.

У командах № № 58 і 59 у якості коду адреси використовується код, що знаходиться в регістрі-покажчику стека. При запуску мікроконтролера в регістр-покажчик стека заноситься код числа 0. Для нормальної роботи стека в регістр-покажчик стека на початку програми необхідно занести код іншого числа. Звичайно як такого числа використовують старший адреса в SRAM. Наприклад, для мікроконтролера типу 8515 такою адресою є число $ 025F.

Команди із зверненням до регістрів введення-виведення

По командах із зверненням до регістрів вводу-виводу здійснюються операції пересилки (копіювання) байта між регістром загального призначення та регістром введення-виведення з використанням для вибору регістра введення-виведення його номера ($ 00 - $ 3F). Команди із зверненням до регістрів введення-виведення описані в табл. 6. Машинні коди команд мають формат "слово". Команди виконуються за один такт.

У табл. 6 використовуються такі нові позначення:

ргр - регістр введення-виведення з номером Р;

(РГР) - байт в регістрі РГР.

При записі мнемокода команди замість конкретного номера регістру може використовуватися його символічне ім'я. Всі регістри вводу-виводу мають штатні імена. Імена регістрів введення-виведення і їх номери наведені в додатку П4. У мікроконтролерів різних типів регістри введення-виведення, що мають однакові імена, можуть мати різні номери. При записі в мнемокода імен регістрів замість їх номери необхідно використовувати версію AVR-Асемблера для мікроконтролера даного типу.

Команда зі зверненням до FlashROM

За командою з зверненням до FlashROM виконується пересилання (копіювання) байта з половини комірки пам'яті в FlashROM в регістр загального призначення R0. Команда описана в табл. 7. Машинний код команди має формат "слово". Команда виконується за три такти.

До виконання команди необхідно адресу, відповідний комірці пам'яті в FlashROM, в якій зберігається константа, помножити на 2 і записати в пару регістрів Z (№ № $ 30, $ 31).

При множенні на 2 (зсув коду вліво на один розряд) у молодшому розряді регістру ZL ($ 30) виявляється цифра 0. При нульовому значенні молодшого розряду вибирається байт з молодшої половини осередку FlashROM. Для вибору байта зі старшої половини осередку необхідно число, код якого знаходиться в парі регістрів Z, збільшити на 1 з використанням команди № 33 з мнемокод ADIW R30, 1 або ADIW ZL, 1.

Запис констант в FlashROM виконується при програмуванні мікроконтролера.

Команди операцій з битами

Команди операцій з битами описані в табл. 8 і 9. Машинні коди всіх команд мають формат "слово". Команди № № 65 і 66 виконуються за 2 такту, решта команд - за 1 такт.

У табл. 8 використовується наступне нове позначення:

РгР.b - розряд b (b = 0-7) регістра введення-виведення з номером Р (Р = $ 00 - $ 1F (!)), біт в розряді РгР.Ь.

По командах № № 63 і 64 виконується пересилання (копіювання) біта між зазначеним розрядом регістра загального призначення та розрядом Т регістру SREG.

По командах № № 65 і 66 встановлюється в потрібне стан (0 або 1 відповідно) вказаний розряд регістра введення-виведення, а по командах № № 67 і 68 - зазначений розряд регістра SREG.

При записі мнемокод команд № № 65 і 66 замість номера регістра (Р) може бути зазначено його символічне ім'я (див. додаток П4), а замість номера розряди (b) - символічне ім'я розряду. У мікроконтролерах сімейства AVR розряди багатьох регістрів введення-виведення мають штатні імена. Ці імена наводяться в тексті при розгляді пристроїв, в яких ці ​​розряди використовуються. Штатні імена розрядів регістрів введення-виведення, які керують роботою різних пристроїв мікроконтролера і відображають стан цих пристроїв наведені в додатку П5.

У мікроконтролерах деяких типів розряди однойменних регістрів з однаковими іменами мають різні номери. При використанні штатних імен регістрів введення-виведення і штатних імен розрядів в них необхідно використовувати версію AVR Асемблера для мікроконтролера відповідного типу.

При призначенні штатного імені розряду малося на увазі, що цей розряд належить певному регістру введення-виведення, однак у мнемокод команд № № 65 і 66 необхідно вказувати і ім'я / номер регістра і назва розряду. Необхідне значення біта (0 або 1) у розрядах регістрів введення-виведення з номерами від $ 20 до $ 3F встановлюється з використанням команд реєстрових операцій з мнемокода CBR (№ 29) і SBR (№ 31) відповідно.

У табл. 9 наведено мнемокод команд, за якими встановлюється в певний стан (0 або 1) розряди регістра SREG без зазначення в мнемокод команди номера розряду.

До групи команд управління ходом програми входять команди безумовного і умовного переходів, переходу до режиму, перезапуску сторожового таймера і "неодружена" команда.

У табл. 10 описані команди безумовного переходу (№ № 85 і 86), безумовного переходу з поверненням (№ № 87 і 88), повернення з підпрограми (№ 89) і повернення з переривати програми (№ 90). У таблиці використовуються такі нові позначення:

PC - лічильник команд;

(PC) - код числа у лічильнику команд;

k-прирощення числа в лічильнику команд.

Під час запису програми на мові асемблера в мнемокода команд № № 85 і 87 замість збільшення до вказується позначка (символічний адреса), записана перед мнемокод команди, до виконання якого потрібно перейти. Приріст обчислюється і поміщається в машинний код команди в процесі ассемблирования.

Машинні коди команд, описані в табл. 10, мають формат "слово". Команди безумовного переходу (№ № 85 і 86) виконуються за 2 такту, команди безумовного переходу з поверненням (№ № 87 і 88) - за 3 такту, команди повернення (№ № 89 і 90) - за 4 такту.

Група команд умовного переходу ділиться на дві підгрупи. У командах першої підгрупи в якості умови використовується рівність нулю або рівність одиниці одного з бітів у регістрі SREG. Умови н мнемокод команд першої підгрупи наведені в табл. 11. Якщо умова виконується, відбувається перехід за адресою, який формується з використанням збільшення до, зазначеного в коді команди ((PC) + 1 + k-PC; -64 <k <63).

Якщо умова не виконується, відбувається перехід до наступної команді в програмі ((PC) + 1 -> РС).

Фрагмент структурної схеми програми з командою умовного переходу з першої підгрупи зображений на рис. 1.

Під час запису програми на мові асемблера в мнемокод команд, описаних в табл. 11, замість збільшення до вказується позначка (символічний адреса), записана перед мнемокод команди, до виконання якого потрібно перейти, якщо умова виконується.

Машинні коди команд першої підгрупи (табл. 11) мають формат 'слово ". При виконанні умови команда виконується за 2 такту, при невиконанні умови - за 1 такт.

Команди умовного переходу другої підгрупи і використовувані в них умови описані в табл. 1 Якщо умова не виконується, відбувається перехід до чергової команді в програмі ((PC) + 1-РС). Якщо умова виконується, відбувається перехід до виконання команди, наступної за черговою ((PC) + 1 + 1/2-РС). Приріст числа в лічильнику команд (1 або 2) визначається форматом машинного коду чергової команди (1 слово або 2 слова відповідно). Фрагмент структурної схеми програми з командою умовного переходу з другої підгрупи зображений на рис. 2.

Машинні коди команд умовного переходу другої підгрупи (табл. 2,12) мають формат "слово". Команди виконуються за один такт, якщо умова не виконується, за 2 такту, якщо умова виконується і чергова команда (К1) має формат "слово", або за 3 такту, якщо умова не виконується і чергова команда (К1) має формат "2 слова ".

У табл. 13 наведені мнемокод команд, при виконанні яких відбувається перехід мікроконтролера в один з режимів енергозбереження (№ 116), виконується перезапуск сторожового таймера (№ 117) або в ході програми з'являється "холостий" такт, в якому не виконуються які-небудь операції (№ 118 ).

Додаткові команди в системі команд мікроконтролерів типу m163 і m10З

Операції, що виконуються за командами, і мнемокод додаткових команд описані в табл. 14. Знаком "+" відзначено входження команди в систему команд мікроконтролера зазначеного типу.

Таблиця 14

Операція

Мнемокод команди

Тип МК




m163

m103

119

d, r = 0,2, ..., 30

MOVW

+


120

d, r = 0 - 31

MUL

+


121

d, r = 16 - 31

MULS

+


122

d, r = 16 - 23

MULSU

+


123

1.

FMUL

+


124

2.

FMULS

+


125

d, r = 16 - 23

FMULSU

+


126

JMP k

+

+

127

1.

2.

3.

CALL k

+

+

128

d = 0 - 31

LPM

+


129

1.

2.

d = 0 - 31

LPM

+


130

ELPM


+

131

див. табл. 15

SPM

+


За командою реєстрової операції з мнемокод MOVW Rd, Rг (№ 119) виконується пересилання (копіювання) слова з однієї пари регістрів загального призначення в іншу пару регістрів. Машинний код команди має формат "слово", команда виконується за один такт.

За трьом командам реєстрових операцій з мнемокода MUL Rd, Rг MULS Rd, Rr та MULSU Rd, Rr (№ № 120, 121 і 122) виконується операція множення, в якій бере участь цілі числа без знака (MUL), цілі числа із знаком (MULS ) і ціле число зі знаком і ціле число без знака (MULSU). При виконанні операції формуються значення ознак результату С і Z (С = R1.7, Z = 1, якщо після виконання операції (R1) = 0 і (R2) = 0).

За трьом командам реєстрових операцій з мнемокода операції FMUL, FMULS і FMULSU (№ № 123, 124, 125) виконується операція множення зі збільшенням результату в два рази, в якій беруть участь дробові числа без знака (FMUL), дробові числа зі знаком (FMULS) і дробове число зі знаками і дробове число без знака (FMULSU). Операнди мають формат 1.7, а результат - формат 1.15, де праворуч від точки вказано число дрібних розрядів. При виконанні операції формуються значення ознак результату С і Z (С - результат зсуву вліво коду твори, Z = 1, якщо після виконання операції (R1) = 0 і (R0) = 0.)

Машинні коди команд № № 120-125 мають формат "слово". Команди виконуються за два такти з використанням апаратного помножувача.

По командах з мнемокода JMP k (№ 126) і CALL до (№ 127) здійснюються безумовний перехід і безумовний перехід з поверненням в межах всього адресного простору FlashROM. Машинні коди цих команд мають формат "2 слова". Команди виконуються за 3 JМР) і 4 (CALL) такту.

По командах пересильних операцій із зверненням до FlashROM з мнемокода LPM Rd, Z і LPM Rd, Z + (№ № 128, 129) виконується операція пересилання (копіювання) константи з половини осередку FlashROM в будь-який регістр загального призначення. До виконання команди необхідно адресу, відповідний комірці пам'яті, в якій зберігається константа, помножити на 2 і записати в пару регістрів Z. Якщо потрібно прочитати байт зі старшої половини осередку, до числа, код якого записаний в парі регістрів Z, необхідно додати 1.

При виконанні команди з мнемокод LPM Rd, Z + після пересилання байта число, код якого зберігається в парі регістрів Z, збільшується на 1 апаратно.

Машинні коди команд № № 128 і 129 мають формат "з юво". Команди виконуються за 3 такту.

За командою з мнемокод ELPM (№ 130) виконується пересилання Константи з половини осередку FlashROM в регістр R0 (див. команду № 62). У мікроконтролері типу ml03 FlashROM містить 64 До елементів пам'яті. Для розміщення старшого розряду коду після множення на 2 використовується розряд RAMPZ0 регістру RAMPZ (№ $ ЗВ). Машинний код команди має формат "слово". Команда виконується за 3 такту.

Команда з мнемокод SPM (№ 131) призначена для запису байтів в FlashROM в процесі виконання програми. При виконанні команди використовується регістр управління SPMCR (№ $ 37) і пара регістрів Z.

З використанням команди з мнемокод SPM виконуються наступні операції:

1) послівно заповнення буферного запам'ятовуючого пристрою (BUF) ємністю 64X16 біт;

2) стирання в FlashROM сторінки - групи з 64-х осередків;

3) перепис 64-х слів з ​​буферного ЗУ в "очищену" сторінку FlashROM.

Для завдання номера осередку в буферному ЗУ використовуються розряди Z6-Z1 в парі регістрів Z. Для створення номера сторінки (початкового адреси в сторінці) використовуються розряди Z13-Z7 в парс регістрів Z.

Вибір операції, виконуваної за командою з мнемокод SPM, визначається кодом, який до виконання команди SPM, але не раніше, ніж за 4 такту до її виконання, записується в регістр SPMCR. Коди, що записуються в регістр SPMCR, та операції, що виконуються при цьому по команді SPM, вказані в табл. 15.

Таблиця 15

(SPMCR)

Операція

$ 01

$ 03

-------------------------------------

$ 05

-------------------------------------

$ 09

При (SPMCR) = $ 01 за командою SPM слово, раніше записане в пару регістрів R1, R0, пересилається (копіюється) у клітинку буферного ЗУ, номер якої вказаний у розрядах з шостого по перший в парі Z регістрів загального призначення. Буферне ЗУ може заповнюватися у довільному порядку.

При (SPMCR) = $ 2003 відбувається стирання групи осередків у FlashROM з номерами в двійковому коді від Z.13, ..., Z.7, 0, 0, 0, 0, 0, 0, X до Z.13, .. .. Z.7, 1, 1, 1, 1, 1, 1, X.

При (SPMCR) = $ 2005 відбувається перепис 64-х слів з ​​буферного ЗУ в раніше стерту сторінку FlashROM.

При (SPMCR) = $ 2009 проводиться установка бітів захисту (Lock Bits) BLB12, BLB11, BLB02 і BLB01, які дозволяють / забороняють виконувати запис у FlashROM з використанням команди SPM і читання з FlashROM з використанням команди LPM.

Література

  1. Таверньє К. PIC-мікроконтролери. Практика застосування: Пер. з фр. -М: ДМКПресс, 2008. - 272 с.: Іл. (Серія «Довідник»).

  2. Борзенко А.Є. IBM PC: пристрій, ремонт, модернізація. - 2-е вид. перераб. і доп. - М.: ТОВ фірма «Комп'ютер Прес», 2006. - 344с.: Іл.

  3. Цифрові інтегральні мікросхеми: Справ. / М. І. Богданович, І.М. Грель, В.А. Прохоренко, В.В. Шалімо.-Мн.: Білорусь, 2001. - 493 с.: Іл.

Додати в блог або на сайт

Цей текст може містити помилки.

Комунікації, зв'язок, цифрові прилади і радіоелектроніка | Реферат
117кб. | скачати


Схожі роботи:
Система команд Структура слова команд Синтаксис команд Групи команд
Функціональна організація і система команд процесора
Система команд конфігурування маршрутизаторів Cisco
Архітектура мікроконтролерів
Класифікація і структура мікроконтролерів
Внутрішня організація мікроконтролерів AVR
Електронні вироби на основі програмованих мікроконтролерів
Створення вимірювального апаратно-програмного комплексу термометра на основі мікроконтролерів
Створення вимірювального апаратно програмного комплексу термометра на основі мікроконтролерів сім`ї
© Усі права захищені
написати до нас