Пространство памяти программ 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     (A):= (Rn)
MOV A,ad       (A):= (ad)
MOV A,@Ri 1110011i     (A):=((Ri))
MOV A,#d       (A):= #d
MOV Rn,A 11111rrr     (Rn):= (A)
MOV Rn,ad 10101rrr     (Rn):= (ad)
MOV Rn,#d 01111rrr     (Rn):= #d
MOV ad,A       (ad):= (A)
MOV ad,Rn 10001rrr     (ad):= (Rn)
MOV add,ads       (add):= (ads)
MOV ad,@Ri 0000011i     (ad):=((Ri))
MOV ad,#d       (ad):= #d
MOV @Ri,A 1111011i     ((Ri)):= (A)
MOV @Ri,ad 0110011i     ((Ri)):= (ad)
MOV @Ri,#d 0111011i     ((Ri)):= #d
MOV DPTR,#d16       (DPTR):= #d16
MOVC A,@A+DPTR       (A):=((A)+(DPTR))
MOVC A,@A+PC       PC):=(PC)+1,(A):=((A)+(PC))
MOVX A,@Ri 1110001i     (A):=((P2)*(Ri))
MOVX A,@DPTR       (A):=((DPTR))
MOVX @Ri,A 1111001i     ((P2*(Ri)):=(A)
MOVX @DPTR,A       ((DPTR)):=(A)
PUSH ad       (SP):=(SP)+1,((SP)):=(ad)
POP ad       (ad):=((SP)),(SP):=(SP)-1
XCH A,Rn 11001rrr     (A) -- (Rn)
XCH A,ad       (A) -- (ad)
XCH A,@Ri 1100011i     (A) --((Ri))
XCHD A,@Ri 1101011i     (A[0-3]) -- ((Ri[0-3]))

 

Задание для домашней подготовки.

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
      FE CA          
      FF AB         062F
      FD BC         053E
      FC CD         044A
      FB DE          
      FA EF          
      F1 FF          
      F2 1A         078A
      F3 2B         069D
  5A   F4 3C         05AF
  4B   F5 4D         04BA
  3C   F6 5E         03C9
  2D 3A F7 6F         02D8
  1E 4B F8 7A         01E4
  7F 5C F8 8B         07F5
  6E 6D F9 9C         06E6
  5A 7E F1 2D         05A1
  4D 1F F2 5E         04D3
  3C 2E F3 6F         03C8
    3D F4 7A         026F
    6A FF 8B         04BE
    8D 1F 9D         03CA
  4F 4E 2E A0         02D3
  5D 3B 3D B1         01E7
  3A   4C C2         07F3
  6E   5B D3         06E5
  3F 6E 6A E4         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

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-10-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: