Пространство памяти программ 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!