1.06M
Categories: programmingprogramming softwaresoftware

Написання програм AVR-мікроконтролерів. Основні команди і директиви ATmega16. Тема 6

1.

Національний аерокосмічний університет ім. М.Є. Жуковського
Цифрові пристрої
Digital devices
&
Microprocessors
Мікропроцесори
Тема 6:
Написання програм AVR-мікроконтролерів.
Основні команди і директиви ATmega16.
к.т.н., доцент каф.501
Мазуренко О.В.

2.

Програмні засоби написання і відлагодження програм AVR-МК
1
Технологія написання і відлагодження програм мікроконтролерів
Основні програмні засоби
розробки:
- AVR Studio
- IAR
- CodeVision AVR
- Proteus, VMLab
© Мазуренко О.В., 2018
Мікропроцесори і їх програмування

3.

Основні директиви компілятора AVR Studio
2
Мнемоніка – скорочення (абревіатура) (3-5 символів) від слова або виразу, що позначає дію, яка
відповідає команді.
DEVICE - Визначити пристрій для якого компілюється програма
Синтаксис:
.DEVICE <ім’я моделі AVR-МК>
CSEG – Визначити початок програмного сегмента
Синтаксис:
.CSEG
DSEG - Визначити початок сегмента даних в ОЗП
Синтаксис:
.DSEG
ESEG – Визначити початок сегмента даних в ППЗПЕС
Синтаксис:
.ESEG
ORG - Встановити положення в сегменті
Синтаксис:
.ORG <значення або математичний вираз>
DEF - Призначити регістру загального призначення символічне ім’я
Синтаксис:
© Мазуренко О.В., 2018
.DEF <cимволічне_ім’я> = <стандартне ім’я РЗП>
Мікропроцесори і їх програмування

4.

3
Приняті позначення
Позначення, використовувані при описі команд:
Rd – результуючий (і вихідний) регістр загального призначення;
Rr – вихідний регістр загального призначення;
b – константа (3 біта), може бути константний вираз;
AdrIO – константа (5-6 біт), може бути константний вираз;
K8 – константа (8 біт), може бути константний вираз;
AdrRAM – константа (розмір залежить від інструкції і моделі МК), може бути константний
вираз;
k – константа (розмір залежить від інструкції), може бути константний вираз;
X,Y,Z – регістри непрямої адресації (X=R27:R26, Y=R29:R28, Z=R31:R30).
Прапорці регістра статуса:
С – прапорець переноса;
Z – прапорець нульового значення;
N – прапорець негативного результату операції;
V – прапорець переповнення додаткового кода;
S – прапорець знаку (N V);
H – прапорець напівпереносу;
T – біт користувацького прапорця;
I – біт глобального дозволу\заборони переривань.
Позначення систем числення числових величин:
0b – префікс для позначення двійкової системи числення;
0 – префікс для позначення вісімкової системи числення;
0х (или $) – префікси для позначення шіснадцяткової системи числення;
Без префіксів – позначення десяткової системи числення.
© Мазуренко О.В., 2018
Мікропроцесори і їх програмування

5.

Типи команд AVR-МК. Основні команди пересилання даних
4
Типи команд AVR-МК:
- команди пересилання даних;
- команди роботи з бітами;
- арифметичні і логічні команди;
- команди розгалуження.
LDI – Load Immediate – Завантажити константу в РЗП
Операція: Rd К8
Синтаксис:
ldi Rd,K8
Операнди:
16 d 31
Прапорці, на які діє команда:
Кількість тактів виконання операції:
Лічильник команд:
PC PC+1
не діє
1.
Приклад 1:
ldi R20,100; R20:=100
Приклад 2:
.DEF Tmp = R31
ldi Tmp, 0b100
© Мазуренко О.В., 2018
;?
Мікропроцесори і їх програмування

6.

Основні команди роботи з бітами AVR-МК
5
CLR – Clear Register – Очистити регістр
Операція: Rd $00
Синтаксис:
clr Rd
Операнди:
0 d 31
Прапорці, на які діє команда:
Кількість тактів виконання операції:
Лічильник команд:
PC PC+1
S 0, V 0, N 0, Z 1
1.
Приклад 3:
ldi R20,100
clr R20
; R20:=100
; R20:=? SREG=?
SER – Set Register – Встановити регістр
Операція: Rd $FF
Синтаксис:
ser Rd
Прапорці, на які діє команда:
Кількість тактів виконання операції:
Операнди:
16 d 31
Лічильник команд:
PC PC+1
не діє
1.
Приклад 4:
ser R10
;?
© Мазуренко О.В., 2018
Мікропроцесори і їх програмування

7.

Основні арифметичні і логічні команди AVR-МК
6
ADD – Add without Carry – Додати без врахування переносу
Операція: Rd Rd + Rr
Синтаксис:
add Rd,Rr
Операнди:
0 d, r 31
Прапорці, на які діє команда :
Кількість тактів виконання операції :
Лічильник команд:
PC PC+1
H, S, V, N, Z, C
1.
ADС – Add with Carry – Додати з врахуванням переносу
Операція: Rd Rd + Rr +С
Синтаксис:
adc Rd,Rr
Операнди:
0 d, r 31
Прапорці, на які діє команда :
Кількість тактів виконання операції:
Лічильник команд:
PC PC+1
H, S, V, N, Z, C
1.
Приклад 5:
ldi R20, 200
clr R21
ldi R30, 100
ldi R31, 0
add R20, R30
adc R21, R31
© Мазуренко О.В., 2018
; R20:= 200
; R21:= 0
; R30:= 100
; R31:= 0
; R30:= R20+R30 := 0b00101100, SREG(C):=1
; R31:= R21+R31 := 0 + 0 + C:= 0b00000001
Мікропроцесори і їх програмування

8.

Основні арифметичні і логічні команди AVR-МК
6
SUB - Subtract without Carry – Відняти без врахування переносу
Операція: Rd Rd - Rr
Синтаксис:
sub Rd,Rr
Прапорці, на які діє команда :
Кількість тактів виконання операції :
Операнди:
0 d, r 31
Лічильник команд:
PC PC+1
H, S, V, N, Z, C
1.
SBС – Subtract with Carry – Відняти з врахуванням переносу
Операція: Rd Rd - Rr - С
Синтаксис:
sbc Rd,Rr
Прапорці, на які діє команда :
Кількість тактів виконання операції:
© Мазуренко О.В., 2018
Операнди:
0 d, r 31
Лічильник команд:
PC PC+1
H, S, V, N, Z, C
1.
Мікропроцесори і їх програмування

9.

Основні команди розгалуження AVR-МК
7
RJMP – Relative jump – Відносний перехід
Операция: PC PC+1+k
Синтаксис:
rjmp k
Прапорці, на які діє команда :
не діє
Количество тактов выполнения операции:
© Мазуренко О.В., 2018
Операнди:
-2K k +2K
Лічильник команд:
PC PC+1+k
2.
Мікропроцесори і їх програмування
English     Русский Rules