Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практ 8-2-1.doc
Скачиваний:
1
Добавлен:
21.11.2019
Размер:
190.98 Кб
Скачать

8

Міністерство транспорту та зв’язку україни львівський коледж державного університету інформаційно-комунікаційних технологій

Навчальна дисципліна: Обчислювальна техніка та мікропроцесори

Лабораторія: обчислювальної техніки, мікропроцесорних систем і мереж

Спеціальність 5.05090308 Монтаж, обслуговування

та експлуатація апаратних засобів інформатизації

РОЗГЛЯНУТО

на засіданні циклової комісії фундаментальних дисциплін

Протокол №

від ”___”______2009 р.

Голова комісії_________О.Лабаз

ЗАТВЕРДЖУЮ

Заступник директора з НВР

____________Я.Плешівський

„___”________2009 р.

Інструкція

До практичної роботи № 9

Вивчення системи команд

Однокристального мікроконтролера

Склали викладачі:

Гамаль М.І.

Горбатюк В.Ю.

Погоджено:

к.т.н. Бохонко Б.А.


Львів – 2010

1.МЕТА РОБОТИ: вивчити систему команд мікроконтролера, набути практичних навичок запису заданих команд.

2.Література:

2.1. Ю.І. Якименко, Т.О.Терещенко, Є.І. Сокол та ін. Мікропроцесорна техніка: Підручник. – Київ. – ІВЦ «Видавництво «Політехніка». – 2004. – 439 с.

2.2. В.І. Бойко, А.М. Гурій, В.Я. Жуйков та ін. Схемотехніка електронних систем: У 3 кн. Кн.2. Цифрова схемотехніка: Підручник. – Київ. – «Вища школа». 2004. – 423 с.

2.3. Інструкція до даної практичної роботи.

3.Завдання:

3.1.Вивчити способи адресації в командах ОМК 1816ВЕ51.

3.2.Вивчити класифікацію команд ОМК 1816ВЕ51.

3.3.Вивчити різновидності команд пересилки.

3.4.Вивчити команди інкрименту/дикрименту.

3.5.Вивчити команди арифметичних операцій.

3.6.Вивчити команди логічних операцій.

3.7.Вивчити команди циклічного зсуву.

3.8.Вивчити команди переходів.

3.9.Вивчити команди звертання до підпрограми.

3.10.Використовуючи систему команд МК записати мнемоніки наступних операції:

1 варіант

2 варіант

Занести в акумулятор число використовуючи безпосередню адресацію

Занести в акумулятор число використовуючи непряму адресацію

Занести в регістр R0 число , використовуючи пряму адресацію

Занести в регістр R1 число , використовуючи безпосередню адресацію

Виконати операцію додавання А та R0

Здійснити операцію віднімання AтаR1 з використанням запозичення

Виконати операцію логічного І для R0 та А

Виконати операцію логічного АБО А та R1

Очистити восьмий біт порту P1

Встановити перший біт акумулятора в 1

4. Методичні вказівки.

Система команд ОМК надає великі можливості для обробки даних, забезпечує реалізацію логічних, арифметичних операцій, а також керування в режимі реального часу. У МК реалізована побітова, потетрадная (4 біти), побайтна (8 біт) і 16-розрядна обробка даних.

Мікроконтролер сімейства 1816 - це 8-розрядна однокристальна мікро-ЕОМ. Тому ПЗП, ОЗП, регістри спеціального призначення, АЛП й зовнішні шини мають байтну організацію. Двобайтні дані використовуються тільки покажчиком (DPTR) і лічильником команд (PC). Слід зазначити, що регістр - покажчик даних може бути використаний як двобайтний регістр DPTR або як два однобайних регістри спеціального призначення DPH й DPL. Лічильник команд завжди використовується як двобайтний регістр.

Синтаксис команд ОМК складається із мнемонічного позначення функції, слідом за яким йдуть операнди, що вказують методи адресації й типи даних. Різні типи даних або режими адресації визначаються встановленими операндами. Наприклад, абревіатура "MOV" використовується вісімнадцятьма різними командами для обробки трьох типів даних (бітів, байтів, адрес) у різних адресних просторах.

Система команд ОМК 1816ВЕ51 містить 111 команд, які можна поділити на п’ять груп:

  • команди пересилання;

  • команди арифметичних операцій;

  • команди логічних операцій;

  • команди операцій з бітами;

  • команди переходів.

Більшість команд (94) мають формат 1 – 2 байти і виконуються за 1 – 2 машинні цикли.

В ОМК використовуються такі типи адресації:

  • пряма;

  • безпосередня;

  • непряма.

При запису команд ОМК К1816ВЕ51 використовуються такі позначення:

R – один з регістрів R0 R7 (до якого блоку регістрового файлу належить вказаний регістр залежить від бітів RS0 і RS1 у слові стану, записанному у регістрі слова стану процессора PSW );

r – регістри R0, R1;

ad – байт з резидентної пам’яті даних (РПД) з прямою адресацією (у команді вказується або адреса байта – 00 – FF, або позначення одного з регістрів спеціальних функцій SFR, наприклад, TH0, P1, TCON, SBUF );

#data – безпосередні 8-розрядні дані (перед числовим значенням ставлять знак #);

d16 – безпосередні 16-розрядні дані;

add – байт-приймач з прямою адресацією;

ads – байт-джерело з прямою адресацією;

ad16 – 16-розрядна адреса;

ad11 – 11-розрядна адреса;

ad8 – 8-розрядна адреса-зміщення;

@ r – непряма адресація, де rрегістр-джерело адреси, ним може також бути регістр-вказівник даних (DPTR);

Мі(...) – комірка пам’яті (у дужках вказано адресу; індекс вказує тип пам’яті: РПД – резидентна пам’ять даних, ЗПД – зовнішня пам’ять даних, ПП – пам’ять програм);

bit – біт з прямою адресацією (у команді вказується або адреса біта – 00-7F, або розташування його в регістрі спеціальних функцій, наприклад, АСС.0 – нульовий біт акумулятора; Р1.2 – другий біт порту 1, або позначення біта в регістрі спеціальних функцій, наприклад, ЕА – біт загального дозволу переривань).

Мнемоніка

Зміст команди

Спосіб

адресації

Коментар

MOV A,#H

А← 5СН

безпосер.

Пересилка числа 16 в акумулятор

SUBB A,@R0

А←А – МРПД(R0) - C

непряма

Віднімання від вмісту акумулятора байта з комірки РПД, адреса якої вказана в регістрі R0, і прапорця С

MOV A, 63H

А← ad

пряма

Пересилка в акумулятор байта з комірки за адресою 63Н

SETB ACC.2

ACC.21

пряма

Встановлення другого біта акумулятора

ORL C,P2.0

C CVP.2.0

пряма

Логічна операція АБО нульового біта порту Р2.0 і прапорця С

Організація пам'яті програм і даних

МК1816 має гарвардську архітектуру - розділений адресний простір пам'яті програм і даних. Розподіл адресного простору РПП і РПД показаний на рис.1 і рис.2 відповідно.

Пам'ять програм EPROM (постійний запам'ятовувальний пристрій – ПЗП) розташовується з адреси 0000h, має ємність 4 Кбайти й призначена для зберігання команд, констант, слів ініціалізації, таблиць перекодування вхідних і вихідних змінних і т.п.. Пам'ять програм, розміщена на кристалі мікроконтролера, називається резидентною пам'яттю програм (РПП). Резидентна пам'ять програм має 16-бітну шину адреси, через яку забезпечується доступ до пам'яті з лічильника команд - PC або з регістра-покажчика даних - DPTR . Резидентна пам'ять програм доступна тільки для читання.

D7

D6

D5

D4

D3

D2

D1

D0

20H

07

06

05

04

03

02

01

00

21H

0F

0E

0D

0C

0B

0A

09

08

22H

17

16

15

14

13

12

11

10

23H

1F

1E

1D

1C

1B

1A

19

18

24H

27

26

25

24

23

22

21

20

25H

2F

2E

2D

2C

2B

2A

29

28

26H

37

36

35

34

33

32

31

30

27H

3F

3E

3D

3C

3B

3A

39

38

28H

47

46

45

44

43

42

41

40

29H

4F

4E

4D

4C

4B

4A

49

48

2AH

57

56

55

54

53

52

51

50

2BH

5F

5E

5D

5C

5B

5A

59

58

2CH

67

66

65

64

63

62

61

60

2DH

6F

6E

6D

6C

6B

6A

69

68

2EH

77

76

76

74

73

72

71

70

2FH

7F

7E

7D

7C

7B

7A

79

78


Пам'ять даних RAM (оперативний запам'ятовувальний пристрій) призначена для зберігання інформації в процесі виконання прикладної програми, адресується одним байтом і має ємність 128 байт. Пам'ять даних, розміщена на кристалі мікроконтролера, називається резидентною пам'яттю даних (РПД). Перші 32 байти згруповані в 4 банки по 8 регістрів R0 - R7. Команди мікроконтролера можуть звертатися до них як до регістрів загального призначення R0 - R7 й як до осередків ОЗП із прямою адресацією від 00h до 1Fh.

Молодші адреси РПП (рис.1) відводяться під початок роботи ОМК після скидання і обробку переривань (за цими адресами розміщені відповідні підпрограми).

Серед регістрів спеціальних функцій в РПД (рис.2) є регістри портів вводу-виводу Р0 – Р3, які призначені для забезпечення побайтового обміну інформацією ОМК із зовнішніми пристроями по 32 лініях вводу-виводу. Будь-яку лінію портів можна використовувати для вводу або виводу інформації незалежно від інших ліній. Фізичні адреси портів:

  • Р0 - 80Н, при бітовій адресації – 80Н-87Н;

  • Р1 – 90Н, при бітовій адресації – 90Н-97Н;

  • Р2 - А0Н, при бітовій адресації – А0Н-А7Н;

  • Р3 - В0Н, при бітовій адресації – В0Н-В7Н.

Мнемоніка

Код команд

К-кість байт

К-кість циклів

Опис команд

Команди передачі даних

MOV A,R0- R7

E8

1

1

A <- R0

MOV A, direct

E5

2

1

A <- (direct)

MOV A,@R0

E6

1

1

A <- @R0

MOV A, #data

74

2

1

A <- data

MOV R0,A

F8

1

1

R0 <-A

MOV R0, direct

A8

2

2

R0 <- (direct)

MOV R0,#data

78

2

1

R0 <- data

MOV direct, A

F5

2

1

(direct) <- A

MOV direct ,R0

88

2

2

(direct) <- R0

MOV direct ,@RO

86

2

2

(direct) <- (RO)

MOV direct ,#data

84

2

2

(direct) <- #data

MOV sdirect, ddirect

85

2

2

(sdirect) <- (ddirect)

MOV @R0,A

F6

1

1

(R0) <- A

MOV @R0, direct

A6

2

1

(R0) <- (direct)

MOV @R0, #data

76

2

1

(R0) <- #data

@R1, #data

77

2

1

(R1) <- #data

MOV DPTR,#datal6

90

3

2

DPTR <- #datal6

Команди роботи зі стеком

PUSH direct

CO

2

2

SP<-SP+1 (SP)<-(direct)

POP direct

ВО

2

2

(direct)<-(SP) SP<-SP-1

Команди арифметичних операцій. Додавання

ADD A,R0

28

1

1

A<- A+R0

ADDC A,R0

38

1

1

A<- A+R0+C

Віднімання

SUBB A,R0

98

1

1

A<- A-R0-C

Інкремент\ (Декремент DEC -1)

INC А

04

1

1

A <- A+1

INC R0

08

1

1

R0 <- R0+1

INC direct

05

2

1

(direct) <- (direct)+1

INC @RO

06

1

1

(RO) <- (R0)+1

Множення

MUL AB

A4

1

4

A <- мол. байт A*/ В <- ст. байт A*B

Ділення

DIV AB

84

1

4

A <- A:B А - частное /В - остаток

Команди логічних операцій/ Операція "І"

ANL A,R0

58

1

1

A <-A & R0

ANL direct,A

52

2

1

(direct) <- (direct) & A

ANL direct ,#data

53

3

2

(direct) <- (drc) & #data

Операція "АБО"

ORL A,R0

48

1

1

A <-A or R0

ORL direct, A

42

2

1

(direct) <-(direct) or A

ORL direct, #data

43

2

2

(direct) <-(drc) or #data

Операція " Виключаюче АБО"

XRL A,R0

68

1

1

A <- A xor R0

XRL direct, A

62

2

1

(direct)<-(direct) xor A

direct, #data

63

3

2

(direct)<-(drc) xor #data

Команди логічних операцій. Команди зсувів

RL А

23

1

1

A[n+1] <- A[n], A[0] <- A[7]

RLC А

33

1

1

A[n+1] <- A[n], A[0] <-С, С <- A[7]

RR А

03

1

1

A[n] <- A[n+1],A[7] <- A[0]

RRC А

13

1

1

A[n] <- A[n+1],A[7] <- С, С <- A[0]

CLR А

E4

1

1

A <- 0

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

CLR С

CLR bit

C3

C2

1

2

1

1

С <- 0

bit <- 0

SETB С

SETB bit

B3

B2

1

2

1

1

С <- 1

bit <- 1

Холоста команда

NOP

00

1

1

PC <-PC+1

Команди передачі керування. Безумовний перехід

LJMP addrl6

02

3

2

PC <- addrl6

SJMP addr

80

2

2

PC <- PC+addr

JMP @A+DPTR

73

1

2

PC <- (A+DPTR)

Умовний перехід

JZ addr

JNZ addr

60

70

2

2

2

2

PC <- PC+2; если А=0,то PC <- PC+addr

PC <- PC+2; если А<>0,то

PC <- PC+addr

JC addr

JNC addr

40

50

2

2

2

2

PC <- PC+2; если С=1,то PC <- PC+addr

PC <- PC+2; если С=0,то PC <- PC+addr

Команди виклику підпрограм

LCALL addrl6

12

3

2

PC <- PC+3,

(SP) <-PC[0...7],

(SP+1) <- PC [8... 15],

SP <- SP+2, PC <- addrl6,

А - регістр-акумулятор

addr - пряма 8-бітна адреса передачі керування

addrl6 - пряма 16-бітна адреса передачі керування

В - регістр-розширник акумулятора

bіt - пряма 8-бітна адреса біта

С - ознака переносу/позика

#data - 8- бітний безпосередній операнд (константа)

#datal6 - 16-бітний безпосередній операнд (константа)

dіrect - прямо адресована 8-бітова адреса осередку внутрішньої пам'яті даних

sdіrect - адреса осередку приймача даних

ddіrect - адреса осередку джерела даних

DPTR - покажчик даних

PC - лічильник команд (СК)

Rn - узагальнене ім'я робочого регістра (RO - R7)

SP - регістр/покажчик стека

@Rі - непрямо адресована комірка пам'яті даних (0-256 байт)

@DPTR - непрямо адресована комірка пам'яті даних (0-64 кбайта)

<- - занести

<-і> - поміняти місцями

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]