Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
asm / Микроконтроллеры семейства МК51.DOC
Скачиваний:
81
Добавлен:
11.05.2015
Размер:
254.98 Кб
Скачать

Программа работы

1. Скопировать для выполнения лабораторной работы файлы из директории МК51 (z:\EDU\CMPT\MK51). Получив у преподавателя номер варианта (от N=1 до N=10), создать программу TEST.ASM:

; Программа тестирования ассемблера

MASC EQU N

DB 11111111B,377Q,255,0FFH

DB “BEGIN”

DB RS1,PSW.4,0D0H.4,0D4H

DW 0,1234H,1000

ORG 30H

1LABEL: SJMP $

ORL A,#MASC

M1: CJNE A,P1,M1

STRT CNT

MOV TH1,#HIGH(NOT(10000)+1)

MOV TL1,#LOW(NOT(10000)+1)

MOV B,#(15*5-MASC)

ЦИКЛ: JMP ЦИКЛ

END

Прокомментировать результаты ассемблирования программы и сообщения об ошибках (создать и проанализировать файл TEST.LST). Выполняет ли ассемблер в поле операндов арифметические команды сложения, вычитания, умножения? Может ли ассемблер выполнять логические функции при обработке операндов? Как можно отредактировать текст программы, чтобы ассемблер не выдавал сообщения об ошибках?

2. Составить комментарий к работе следующей программы:

MOV R7,#16

MOV R0,#20H

MOV R1,#3FH

M1: XCH A,@R0

XCH A,@R1

XCH A,@R0

INC R0

DEC R1

DJNZ R7,M1

SJMP $

END

Пояснить результаты трансляции команд, размещенных в 9 и 10 строках программы. Что изменится, если вместо SJMP $ записать команду AJMP $ или LJMP $ ?

Проверить работу программы на эмуляторе, предварительно заполнив массив ячеек резидентной памяти данных с 20H по 2FH числами от 0 до F.

3. Создать файл TABLO.ASM. Проассемблировать программу и проанализировать ее листинг. Сформировать файл TABLO.HEX, загрузить программу в эмулятор и запустить на выполнение. Объяснить изменение содержимого ячеек РПД при выполнении программы. Что отображают команды, расположенные в окне памяти программ по адресам 20Н-2FH?

4. В режиме Path Code ввести в эмулятор программу умножения 16-разрядного двоичного числа (R0 – старший байт, R1 – младший) на 8-разрядное (байт в R3). 24-разрядный результат формируется в регистрах: R4 (старший байт), R5 (средний байт), R6 (младший байт).

MOV A,R1

MOV B,R3

MUL AB

MOV R6,A

MOV R7,B

MOV A,R0

MOV B,R3

MUL AB

ADD A,R7

MOV R5,A

CLR A

ADDC A,B

MOV R4,A

Проверить работу программы в пошаговом режиме на тестовом примере (например, множимое – 10000=2710Н, множитель – 100=64Н, произведение – 1000000=0F4240H). Пояснить алгоритм формирования произведения. Оценить время выполнения программы.

5. Битовый процессор МК51 позволяет установить, очистить или проинвертировать любой программно доступный бит, проводить с битами логические операции И, ИЛИ (один из операндов в этом случае должен находиться в триггере переноса С), осуществлять условные переходы по нулевому или единичному состоянию тестируемого бита.

Разработать и отладить на эмуляторе индивидуальное задание (одно из следующих в соответствии со своим вариантом):

1) бит Р2.0 должен обнулиться, если не менее, чем на пяти линиях порта Р1 установлены нулевые уровни;

2) на линии Р1.7 сформировать бит контроля четности для семиразрядного сообщения, выводимого на младшие линии этого порта из регистра В;

3) бит Р0.7 должен обнулиться, если на любых пяти из семи оставшихся линий этого порта установлены нулевые уровни;

4) бит Р0.7 должен соответствовать логической функции F=XY, где X и Y - сигналы, подаваемые на младшие линии этого порта;

5) в ячейки 20Н-27Н РПД занесена информация о состоянии 64 датчиков. Содержимое порта Р0 должно обнулиться, если число датчиков с единичным уровнем сигнала превышает число датчиков с нулевым уровнем;

6) в ячейки 20Н-2FH РПД занесена информация о состоянии 128 датчиков. Сформировать на линии Р1.0 прямоугольные импульсы, если число датчиков с нулевым уровнем превышает 10;

7) в регистре DPTR сформировать разность двухбайтового числа (содержимое портов Р0 и Р1) и однобайтового (содержимое порта Р2);

8) разработать программу, формирующую в регистре DPTR дополнительный код числа минус 5000 (двухбайтовый формат);

9) получить на линиях порта Р1 эффект бегущей единицы со сменой направления;

10) заполнить все четные элементы РПД логическими нулями, а нечетные - единицами.

Соседние файлы в папке asm