
- •Міністерство освіти і науки, молоді та спорту україни Національний університет "Львівська політехніка"
- •Інструкція до лабораторної роботи №1
- •Табличне асемблювання програм, написаних на мові Асемблера"
- •Мета роботи.
- •Короткі теоретичнi відомості.
- •3. Домашня підготовка до роботи:
- •4. Порядок виконання роботи
- •6. Контрольні питання.
- •7. Рівень знань та навичок після виконання лабораторної роботи.
- •8. Література.
6. Контрольні питання.
Способи адресації даних
На які групи поділяються команди мікроконтролера КР1816ВЕ51 ?
Що таке машинний код програми ?
Як виконується табличне асемблювання прогами, написаної на мові Асемблера ?
Час виконання команд (поняття такту, машинного циклу)
Типи команд. Формат команд. Команди прямої і непрямої адресації.
Арифметичні команди. Логічні команди.
Команди роботи із стеком, послідовність дій (команд) при роботі із стеком
Призначення і робота з внутрішньою пам'яттю даних ОЕОМ
Характеристики вихідних сигналів ОЕОМ
7. Рівень знань та навичок після виконання лабораторної роботи.
В результаті виконання практичної роботи студенти повинні навчитися писати нескладні програми на мові Асемблера для мікроконтролера КР1816ВЕ51 та здійснювати табличне асемблювання програм.
8. Література.
В.В. Сташин, А.В. Урусов, О.Ф. Мологонцева. Проектирование цифровых устройств на однокристальніх микроконтроллерах.
Г.Б. Уильямс. Отладка микропроцессорных систем.
6. А.В. Фрунзе. Микроконтроллеры? Это же просто.
Додаток 1
Адреси регістрів спеціальних функцій
-
РСФ
Адреса (в шістнадцятковій системі числення)
Найменування
*
P0
80
Порт 0
SP
81
Вказівник стеку
DPL
82
Регістр-вказівник даних (молодший байт)
DPH
83
Регістр-вказівник даних (старший байт)
PCON
87
Регістр керування потужністю
*
TCON
88
Регістр керування/статусу таймера
TMOD
89
Регістр режиму таймера
TL0
8A
Таймер 0 (молодший байт)
TL1
8B
Таймер 1 (молодший байт)
TH0
8C
Таймер 0 (старший байт)
TH1
8D
Таймер 1 (старший байт)
*
P1
90
Порт 1
*
SCON
98
Регістр керування послідовним портом
SBUF
99
Буфер послідовного порту
*
P2
A0
Порт 2
*
IE
A8
Регістр маски переривань
*
P3
B0
Порт 3
*
IP
B8
Регістр пріоритетів
*
PSW
D0
Слово стану
*
ACC
E0
Акумулятор
*
B
F0
Регістр-розширювач акумулятора
Додаток. 2
СИСТЕМА КОМАНД ОЕОМ КР1816ВЕ51 |
||||||||||
Пересилки |
Арифметичні |
Логічні |
Перед. керування |
|||||||
MOV |
A,Rn |
ADD |
A,Rn |
ANL |
A,Rn |
LJMP |
ad16 |
|||
MOV |
A,ad |
ADD |
A,ad |
ANL |
A,ad |
AJMP |
ad11 |
|||
MOV |
A,@Ri |
ADD |
A,@Ri |
ANL |
A,@Ri |
SJMP |
rel |
|||
MOV |
A,#d8 |
ADD |
A,#d8 |
ANL |
A,#d8 |
JMP |
@A+DPTR |
|||
MOV |
Rn,A |
ADDC |
A,Rn |
ANL |
ad,A |
JZ |
rel |
|||
MOV |
Rn,ad |
ADDC |
A,ad |
ANL |
ad,#d8 |
JNZ |
rel |
|||
MOV |
Rn,#d8 |
ADDC |
A,@Ri |
ORL |
A,Rn |
JC |
rel |
|||
MOV |
ad,A |
ADDC |
A,#d8 |
ORL |
A,ad |
JNC |
rel |
|||
MOV |
ad,Rn |
DA |
A |
ORL |
A,@Ri |
JB |
bit, rel |
|||
MOV |
add,ads |
SUBB |
A,Rn |
ORL |
A,#d8 |
JNB |
bit, rel |
|||
MOV |
ad,@Ri |
SUBB |
A,ad |
ORL |
ad,A |
JBC |
bit, rel |
|||
MOV |
ad,#d8 |
SUBB |
A,@Ri |
ORL |
ad,#d8 |
DJNZ |
Rn,rel |
|||
MOV |
@Ri,A |
SUBB |
A,#d8 |
XRL |
A,Rn |
DJNZ |
ad,rel |
|||
MOV |
@Ri,ad |
INC |
A |
XRL |
A,ad |
CJNE |
A,ad,rel |
|||
MOV |
@Ri,#d8 |
INC |
Rn |
XRL |
A,@Ri |
CJNE |
A,#d8,rel |
|||
MOV |
DPTR,#d16 |
INC |
ad |
XRL |
A,#d8 |
CJNE |
Rn,#d8,rel |
|||
MOVC |
A,@A+DPTR |
INC |
@Ri |
XRL |
ad,A |
CJNE |
@Ri,#d8,rel |
|||
MOVC |
A,@A+PC |
INC |
DPTR |
XRL |
ad,#d8 |
LCALL |
ad16 |
|||
MOVX |
A,@Ri |
DEC |
A |
CLR |
A |
ACALL |
ad11 |
|||
MOVX |
A,@DPTR |
DEC |
Rn |
CPL |
A |
RET |
|
|||
MOVX |
@Ri,A |
DEC |
ad |
RL |
A |
RETI |
|
|||
MOVX |
@DPTR,A |
DEC |
@Ri |
RLC |
A |
NOP |
|
|||
PUSH |
ad |
MUL |
AB |
RR |
A |
Операції з бітами |
||||
POP |
ad |
DIV |
AB |
RRC |
A |
CLR |
C |
|||
XCH |
A,Rn |
|
|
|
|
CLR |
bit |
|||
XCH |
A,ad |
Прямоадресовані регістри |
SETB |
C |
||||||
XCH |
A,@Ri |
|
* ACC |
* P3 |
TH1 |
SETB |
Bit |
|||
XCHD |
A,@Ri |
|
* B |
* IP |
TL1 |
CPL |
C |
|||
SWAP |
A |
|
* PSW |
* IE |
* SCON |
CPL |
Bit |
|||
|
|
|
SP |
TMOD |
SBUF |
ANL |
C,bit |
|||
|
|
|
* P0 |
* TCON |
PCON |
ANL |
C,/bit |
|||
|
|
|
* P1 |
TH0 |
|
ORL |
C,bit |
|||
|
|
|
* P2 |
TL0 |
|
ORL |
C,/bit |
|||
|
|
|
DPTR (DPH, DPL) |
MOV |
C,bit |
|||||
|
|
* - допускається адресація окремих біт |
MOV |
bit,C |
-
* PSW:
C
AC
F0
RS1
RS0
OV
-
P
-
TMOD
TMR1
TMR0
GATE
Л/-T
M1
M0
GATE
Л/-T
M1
M0
-
* TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
-
* SCON
SM0
SM1
SM2
REN
TB8
RB8
T1
R1
-
PCON
SMOD
GF1
GF0
PD
IDL
-
* IE
EA
-
-
ES
ET1
EX1
ET0
EX0
-
* IP
-
-
-
PS
PT1
PX1
PT0
PX0
-
* P3
-RD
-WR
T1
T0
-INT1
-INT0
TXD
RXD
MOVC A,@A+DPTR - (A) ← ((A) + (DPTR))
MOVC A,@A+PC - (PC) ← (PC) + 1; (A) ← ((A) + (PC))
XCHD A,@Ri - (A0-3) ↔ ((Ri)0-3)
SUBB A,Rn - (A) ← (A) - (C) - (Rn)
MUL AB - (B) (A) ← (A) x (B)
DIV AB - (A).(B) ← (A) / (B)
Додаток 3
Машинні (шістнадцяткові коди команд однокристального мікроконтролера КР1816ВЕ51. (Х – шістнадцяткова цифра)
По горизонталі - старша цифра По вертикалі - молодша цифра. Наприклад, машинний код команди RRC A – 13H
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|
0 |
NOP |
AJMP 0XXH |
LJMP ad16 |
RR A |
INC A |
INC ad |
INC @R0 |
INC @R1 |
INC R0 |
INC R1 |
INC R2 |
INC R3 |
INC R4 |
INC R5 |
INC R6 |
INC R7 |
0 |
1 |
JBC bit,rel |
ACALL 0XXh |
LCALL ad16 |
RRC A |
DEC A |
DEC ad |
DEC @R0 |
DEC @R1 |
DEC R0 |
DEC R1 |
DEC R2 |
DEC R3 |
DEC R4 |
DEC R5 |
DEC R6 |
DEC R7 |
1 |
2 |
JB bit,rel |
AJMP 1XXH |
RET |
RL A |
ADD A,#d |
ADD A,ad |
ADD A,@R0 |
ADD A,@R1 |
ADD A,R0 |
ADD A,R1 |
ADD A,R2 |
ADD A,R3 |
ADD A,R4 |
ADD A,R5 |
ADD A,R6 |
ADD A,R7 |
2 |
3 |
JNB bit,rel |
ACALL 1XXh |
RETI |
RLC A |
ADDC A,#d |
ADDC A,ad |
ADDC A,@R0 |
ADDC A,@R1 |
ADDC A,R0 |
ADDC A,R1 |
ADDC A,R2 |
ADDC A,R3 |
ADDC A,R4 |
ADDC A,R5 |
ADDC A,R6 |
ADDC A,R7 |
3 |
4 |
JC rel |
AJMP 2XXH |
ORL ad,A |
ORL ad,#d |
ORL A,#d |
ORL A,ad |
ORL A,@R0 |
ORL A,@R1 |
ORL A,R0 |
ORL A,R1 |
ORL A,R2 |
ORL A,R3 |
ORL A,R4 |
ORL A,R5 |
ORL A,R6 |
ORL A,R7 |
4 |
5 |
JN Crel |
ACALL 2XXh |
ANL ad,A |
ANL ad,#d |
ANL A,#d |
ANL A,ad |
ANL A,@R0 |
ANL A,@R1 |
ANL A,R0 |
ANL A,R1 |
ANL A,R2 |
ANL A,R3 |
ANL A,R4 |
ANL A,R5 |
ANL A,R6 |
ANL A,R7 |
5 |
6 |
JZ rel |
AJMP 3XXH |
XRL ad,A |
XRL ad,#d |
XRL A,#d |
XRL A,ad |
XRL A,@R0 |
XRL A,@R1 |
XRL A,R0 |
XRL A,R1 |
XRL A,R2 |
XRL A,R3 |
XRL A,R4 |
XRL A,R5 |
XRL A,R6 |
XRL A,R7 |
6 |
7 |
JNZ rel |
ACALL 3XXh |
ORL C,bit |
JMP @A+DPTR |
MOV A,#d |
MOV ad,#d |
MOV @R0,#d |
MOV @R1,#d |
MOV R0,#d |
MOV R1,#d |
MOV R2,#d |
MOV R3,#d |
MOV R4,#d |
MOV R5,#d |
MOV R6,#d |
MOV R7,#d |
7 |
8 |
SJMP rel |
AJMP 4XXH |
ANL C,bit |
MOVC A,@A+PC |
DIV AB |
MOV add,ads |
MOV ad,@R0 |
MOV ad,@R1 |
MOV ad,R0 |
MOV ad,R1 |
MOV ad,R2 |
MOV ad,R3 |
MOV ad,R4 |
MOV ad,R5 |
MOV ad,R6 |
MOV ad,R7 |
8 |
9 |
MOV DPTR,#d16 |
ACALL 4XXh |
MOV bit,C |
MOVC A,@A+DPTR |
SUBB A,#d |
SUBB A,ad |
SUBB A,@R0 |
SUBB A,@R1 |
SUBB A,R0 |
SUBB A,R1 |
SUBB A,R2 |
SUBB A,R3 |
SUBB A,R4 |
SUBB A,R5 |
SUBB A,R6 |
SUBB A,R7 |
9 |
A |
ORL C,/bit |
AJMP 5XXH |
MOV C,bit |
INC DPTR |
MUL AB |
|
MOV @R0,ad |
MOV @R1,ad |
MOV R0,ad |
MOV R1,ad |
MOV R2,ad |
MOV R3,ad |
MOV R4,ad |
MOV R5,ad |
MOV R6,ad |
MOV R7,ad |
A |
B |
ANL C,/bit |
ACALL 5XXh |
CPL bit |
CPL C |
CJNE A,#d,rel |
CJNE A,ad,rel |
CJNE @R0,#d,rel |
CJNE @R1,#d,rel |
CJNE R0,#d,rel |
CJNE R1,#d,rel |
CJNE R2,#d,rel |
CJNE R3,#d,rel |
CJNE R4,#d,rel |
CJNE R5,#d,rel |
CJNE R6,#d,rel |
CJNE R7,#d,rel |
B |
C |
PUSH ad |
AJMP 6XXH |
CLR bit |
CLR C |
SWAP A |
XCH A,ad |
XCH A,@R0 |
XCH A,@R1 |
XCH A,R0 |
XCH A,R1 |
XCH A,R2 |
XCH A,R3 |
XCH A,R4 |
XCH A,R5 |
XCH A,R6 |
XCH A,R7 |
C |
D |
POP ad |
ACALL 6XXh |
SETB bit |
SETB C |
DA A |
DJNZ ad,rel |
XCHD A,@R0 |
XCHD A,@R1 |
DJNZ R0,rel |
DJNZ R1,rel |
DJNZ R2,rel |
DJNZ R3,rel |
DJNZ R4,rel |
DJNZ R5,rel |
DJNZ R6,rel |
DJNZ R7,rel |
D |
E |
MOVX A,@DPTR |
AJMP 7XXH |
MOVX A,@R0 |
MOVX A,@R1 |
CLR A |
MOV A,ad |
MOV A,@R0 |
MOV A,@R1 |
MOV A,R0 |
MOV A,R1 |
MOV A,R2 |
MOV A,R3 |
MOV A,R4 |
MOV A,R5 |
MOV A,R6 |
MOV A,R7 |
E |
F |
MOVX @DPTR,A |
ACALL 7XXh |
MOVX @R0,A |
MOVX @R1,A |
CPL A |
MOV ad,A |
MOV @R0,A |
MOV @R1,A |
MOV R0, A |
MOV R1, A |
MOV R2, A |
MOV R3, A |
MOV R4, A |
MOV R5, A |
MOV R6, A |
MOV R7, A |
F |
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
|