Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_Инф_3 поколения__2011.doc
Скачиваний:
63
Добавлен:
01.04.2015
Размер:
20.61 Mб
Скачать

Instruction (инструкция).

Внимание! Для того, чтобы метки отображались в символическом виде в поле Label в программе, необходимо загрузить файл листинга по команде File/Import Map File.

Следует отметить, что команда может занимать в РПП от одного до трёх байтов, что необходимо учитывать при оценке длины программы.

Задание 4. Загрузите Demo-программу, предложенную преподавателем, выполните ее в различных режимах и оцените быстродействие, используя встроенную в симулятор программу анализа Program analysis. Оцените емкость памяти, занимаемую программой.

Рис.4.Модуль резидентной памяти программ

Отлаживаемую в симуляторе программу можно выполнять в следующих режимах:

  • автоматический режим выполнения программы полностью (клавиша F5);

  • выполнение программы отдельными фрагментами до точки останова (Breakpoint), количество точек останова неограниченно. Для определения точки останова необходимо выделить требуемый адрес команды и кликнуть мышью на кнопке (Toggle Breakpoint). При этом адрес команды останова будет помещен в квадратные скобки; далее можно нажать F5;

  • пошаговый режим выполнения команд программы (клавиши F8 или Shift + F8).

Program Analysis. Время выполнения моделируемой программы определяется симулятором автоматически. Для оценки времени необходимо вызвать из меню View программу анализа Program Analysis и снять показание. Следует отметить, что время выполнения, показанное в поле CPU Time, зависит от входной частоты микроконтроллера, которая устанавливается в поле Speed окна Configuration/Project Options.

Лабораторная работа №2

Тема: «Изучение разработки и отладки программ контроллера»

Цель занятия: Ознакомление с основными этапами разработки и моделирования программ, построением модели решаемой задачи.

Отрабатываемые вопросы

1.Этапы подготовки, трансляции, моделирования программ.

2.Изучение базовых команд контроллера.

Организационно – методические указания

Задание.1. Изучение команд передачи данных.

1.1.Подготовить программу передачи массива из 4 данных из области резидентной памяти данных, начиная с ячейки 30Н в область памяти с ячейки 40Н.

$MOD812

MOV R0,#30H ; установка адреса 30Н

MOV R2,#4H ;установка в счетчик кода 4

MOV R1,#40h ; установка адреса 40Н

REP: MOV A,@R0 ;передача первого числа в аккумулутор

MOV @R1,A ;передача первого числа в память

INC R0 ;увеличение адреса-источника данных

INC R1 ;увеличение адреса-приемника данных

DJNZ R2,REP ;проверка завершения передачи массива

JMP$ ;останов выполнения программы

END

Регистры R0 и R1 используются в качестве регистров адреса массива – источника данных и массива- приемника данных соответственно.

Регистр R2 выполняет функцию счетчика, определяет количество передаваемых данных. Команда DJNZ R2,REP выполняет организацию проверки количества циклов передачи данных.

Директивы $MOD812 И END используются транслятором программы при преобразовании исходного файла программы в машинный 16-ричный машинный код.

1.2.Набрать файл программы в редакторе блокнот и сохранить в папке, присвоив файлу имя с расширением ASM.

1.3.Выполнить трансляцию программы , используя транслятор ASM51.EXE, например: ASM51.EXE PR1.ASM, где PR1.ASM – имя файла программы с расширением ASM.

1.4.Выполнить загрузку 16-ричного кода файла ASM51.НЕХ в симулятор контроллера для последующего выполнения.

1.5.Выполнить отладку программы в пошаговом и автоматическом режимах. Предварительно введите данные в память данных, начиная с ячейки 30Н.

1.6.Выполните оценку времени выполнения программы и объема программы.

Задание 2. Вычисление среднего значения данных, хранящихся в массиве памяти. Вычисленное среднее значение массива вывести в порт Р2.

3.1.Подготовить программу вычисления среднего значения. Массив данных загрузите, начиная с 16-ричного адреса 40Н резидентной памяти данных.

; загрузка 4 чисел в память, начиная с ячейки 40Н

$MOD812

MOV 40H,#6 ;загрузка в ячейки памяти исходных чисел

MOV 41H,#4

MOV 42H,#9

MOV 43H,#8

;суммирование массива чисел

CLR A ;обнуление аккумулятора

ADD A,40H ;сложение аккумулятора с первым числом

ADD A,41H

ADD A,42H

ADD A,43H

;вычисление среднего значения

MOV B,#4 ;загрузка в регистр В числа 4

DIV AB ;получение среднего в аккумуляторе

MOV P2,A ;вывод среднего в порт Р2

END

2.2.Выполнить действия, аналогичные указанным в пунктах 1.2.-1.6.

Задание 3. Изучения обмена кодами между портами Р0 и Р2 с проверкой условия ввода. Данные поступают в контроллер из порта Р0 контроллера и выдаются в исполнительное устройство через порт Р2. Условие разрешения ввода кода хранится в порте Р1.0.

3.1.Разработать программу обмена.

$MOD812

M1: MOV C,P1.0 ; установка условия разрешения ввода

JNC M1 ;проверка условия

MOV A,P0 ;ввод кода с порта Р0

MOV P2,A ;вывод кода в порт Р2

CLR C ;сброс условия

JMP M1 ; переход в начало программы

END

3.2.Выполнить действия, аналогичные указанным в пунктах 1.2.-1.6.

Задание 4. Выполнить сравнение двух чисел, хранящихся в регистрах R2 и R3 процессора, большее из них вывести в порт Р2 контроллера.

4.1.Подготовить программу для сравнения двух чисел.

$MOD812

MOV P2,#0 ;очистка порта Р2

M2: MOV A,R2 ;передача в аккумулятор первого числа

SUBB A,R3 ;вычитание чисел

JC M1 ;анализ разности чисел

MOV P2,R2 ;вывод наибольшего числа в порт Р2

M1: JMP M2 ;возврат к началу программы

END

4.2.Выполнить действия, аналогичные указанным в пунктах 1.2.-1.6.