Пространство памяти программ CSEG
Объем пространства памяти программ 64Кбайт. Оно построено как однородное линейное пространство с двумя основными способами передачи управления. Первые (младшие) 4К байт физически принадлежат EPROM внутри МК, остальные 60К байт - реализуются внешним ЗУ. К пространству CSEG возможно также обращение как к источнику операндов (констант). Для этого используется непосредственная адресация и косвенная адресация через регистры DPTR или PC c переменным смещением.
При непосредственной адресации операнд (константа!) указывается в коде команды. Возможны команды с 8-разрядным операндом #d и 16-разрядным операндом (#d16).
Косвенная адресация возможна только с помощью двух команд. Команда MOVC A,@A+DPTR считывает в аккумулятор байт из CSEG по адресу, равному сумме содержимого А (смещение) и DPTR. Команда MOVC A,@A+PC считывает в аккумулятор байт из СSEG по адресу, найденному как сумма содержимого A и PC.
Команды передачи данных
В микроконтроллере широко представлены команды пересылки данных, большую часть которых составляют команды передачи и обмена байтов. Все команды данной группы не модифицируют флаги результата, за исключением команд загрузки PSW и аккумулятора. Мнемоника и коды операций команд передачи данных приведены в таблица 2.
Таблица 2. Группа команд передачи данных
Мнемоника | Код операции | Байт | Циклов | Операция |
MOV A,Rn | 11101rrr | 1 | 1 | (A) := (Rn) |
MOV A,ad | 11100101 | 2 | 1 | (A) := (ad) |
MOV A,@Ri | 1110011i | 1 | 1 | (A) :=((Ri)) |
MOV A,#d | 01110100 | 2 | 1 | (A) := #d |
MOV Rn,A | 11111rrr | 1 | 1 | (Rn) := (A) |
MOV Rn,ad | 10101rrr | 2 | 2 | (Rn) := (ad) |
MOV Rn,#d | 01111rrr | 2 | 1 | (Rn) := #d |
MOV ad,A | 11110101 | 2 | 1 | (ad) := (A) |
MOV ad,Rn | 10001rrr | 2 | 2 | (ad) := (Rn) |
MOV add,ads | 10000101 | 3 | 2 | (add):= (ads) |
MOV ad,@Ri | 0000011i | 2 | 2 | (ad) :=((Ri)) |
MOV ad,#d | 01110101 | 3 | 2 | (ad) := #d |
MOV @Ri,A | 1111011i | 1 | 1 | ((Ri)):= (A) |
MOV @Ri,ad | 0110011i | 2 | 2 | ((Ri)):= (ad) |
MOV @Ri,#d | 0111011i | 2 | 1 | ((Ri)):= #d |
MOV DPTR,#d16 | 10010000 | 3 | 2 | (DPTR):= #d16 |
MOVC A,@A+DPTR | 10010011 | 1 | 2 | (A) :=((A)+(DPTR)) |
MOVC A,@A+PC | 10000011 | 1 | 2 | PC):=(PC)+1,(A):=((A)+(PC)) |
MOVX A,@Ri | 1110001i | 1 | 2 | (A) :=((P2)*(Ri)) |
MOVX A,@DPTR | 11100000 | 1 | 2 | (A) :=((DPTR)) |
MOVX @Ri,A | 1111001i | 1 | 2 | ((P2*(Ri)):=(A) |
MOVX @DPTR,A | 11110000 | 1 | 2 | ((DPTR)) :=(A) |
PUSH ad | 11000000 | 2 | 2 | (SP):=(SP)+1,((SP)):=( ad) |
POP ad | 11010000 | 2 | 2 | (ad):=((SP)),(SP):=(SP)-1 |
XCH A,Rn | 11001rrr | 1 | 1 | (A) -- (Rn) |
XCH A,ad | 11000101 | 2 | 1 | (A) -- (ad) |
XCH A,@Ri | 1100011i | 1 | 1 | (A) --((Ri)) |
XCHD A,@Ri | 1101011i | 1 | 1 | (A[0-3]) -- ((Ri[0-])) |
|
|
Задание для домашней подготовки.
|
|
1. Повторить основные узлы МК51;
2. Повторить форматы данных и команд МК51;
3. Повторить способы адресации данных МК51;
4. Повторить команд передачи данных МК51;
Порядок выполнения работы.
1. Ознакомиться с заданием и проанализировать его.
2. Составить программу согласно заданию в кодах МК51.
3. Набрать текст составленной программы в текстовом редакторе отладчика.
4. Выполнить трансляцию программы (в случае возникновения ошибок исправить их).
5. Сделать пошаговое выполнение программы и убедиться в правильности ее работы (в случае неправильности внести исправления в текст программы и повторить п.4-5).
6. Ответить на вопросы.
Задание по лабораторной работе.
Составить на ассемблере МК 51 программу, которая:
· записывает в ячейку RAM1 константу CONST1;
· записывает в ячейку RAM2 константу CONST2;
· переписывает содержимое RAM1 в регистр с номером X банка регистров с номером Q;
· переписывает содержимое RAM2 в регистр с номером Y банка регистров с номером W;
Начальный адрес программы ADR1.
Таблица 3. Таблица вариантов заданий
Номер | RAM1 | RAM2 | CONST1 | CONST2 | X | Bank Q | Y | Bank W | ADR1 |
01 | 71 | 43 | FE | CA | 0 | 0 | 2 | 3 | 0714 |
02 | 62 | 54 | FF | AB | 1 | 1 | 3 | 2 | 062F |
03 | 53 | 62 | FD | BC | 2 | 2 | 4 | 1 | 053E |
04 | 44 | 71 | FC | CD | 3 | 3 | 5 | 0 | 044A |
05 | 35 | 12 | FB | DE | 4 | 1 | 6 | 3 | 0355 |
06 | 26 | 23 | FA | EF | 5 | 2 | 7 | 2 | 0266 |
07 | 17 | 34 | F1 | FF | 6 | 3 | 0 | 0 | 0177 |
08 | 78 | 45 | F2 | 1A | 7 | 0 | 1 | 3 | 078A |
09 | 69 | 56 | F3 | 2B | 3 | 1 | 2 | 2 | 069D |
10 | 5A | 67 | F4 | 3C | 0 | 2 | 3 | 1 | 05AF |
11 | 4B | 78 | F5 | 4D | 1 | 3 | 4 | 0 | 04BA |
12 | 3C | 23 | F6 | 5E | 2 | 0 | 5 | 3 | 03C9 |
13 | 2D | 3A | F7 | 6F | 3 | 1 | 6 | 2 | 02D8 |
14 | 1E | 4B | F8 | 7A | 4 | 2 | 7 | 1 | 01E4 |
15 | 7F | 5C | F8 | 8B | 5 | 3 | 0 | 0 | 07F5 |
16 | 6E | 6D | F9 | 9C | 6 | 0 | 1 | 3 | 06E6 |
17 | 5A | 7E | F1 | 2D | 7 | 1 | 2 | 2 | 05A1 |
18 | 4D | 1F | F2 | 5E | 0 | 2 | 3 | 1 | 04D3 |
19 | 3C | 2E | F3 | 6F | 1 | 3 | 4 | 0 | 03C8 |
20 | 26 | 3D | F4 | 7A | 2 | 0 | 5 | 3 | 026F |
21 | 45 | 6A | FF | 8B | 3 | 1 | 6 | 3 | 04BE |
22 | 67 | 8D | 1F | 9D | 4 | 2 | 7 | 3 | 03CA |
23 | 4F | 4E | 2E | A0 | 5 | 3 | 7 | 2 | 02D3 |
24 | 5D | 3B | 3D | B1 | 6 | 3 | 6 | 1 | 01E7 |
25 | 3A | 71 | 4C | C2 | 7 | 2 | 5 | 0 | 07F3 |
26 | 6E | 69 | 5B | D3 | 1 | 1 | 4 | 2 | 06E5 |
27 | 3F | 6E | 6A | E4 | 2 | 0 | 3 | 1 | 05AD |
Содержание отчета
|
|
|
|
ü Задание по лабораторной работе;
ü Текст программы с комментариями;
ü Ответы на вопросы:
- Описать архитектуру микроконтроллера i8051
- Описать организацию памяти микроконтроллера i8051.
- Дать краткую характеристику команд пересылок данных для микроконтроллера i8051.
Пример выполнения задания.
Записать на ассемблере МК 51 программу, которая:
· записывает в ячейку 7Fh константу 25h;
· записывает в ячейку 35h константу 3Eh;
· переписывает содержимое ячейки 7F в регистр с номером 3 банка регистров с номером 0;
· переписывает содержимое 35h в регистр с номером 0 банка регистров с номером 1;
Начальный адрес программы 034Ah.
org 0
jmp start ; переход на начало программы
org 034Ah
start: ; начало программы
mov 7Fh,#25h ; запись в ячейку памяти
mov 35h,#3Eh ; запись в ячейку памяти
mov psw,0 ; установка банка 0
mov r3,7Fh ; запись в r3
mov psw,8 ; установка банка 1
mov r0,35h ; запись в r0
jmp $ ; останов программы
end
Дата добавления: 2018-11-24; просмотров: 157; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!