Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
01.05.2014
Размер:
45.57 Кб
Скачать

Лабораторная работа № 1 Изучение основных команд процессора i8051 и функциями системы моделирования

1. Ведение.

Цель работы - ознакомление с системой команд однокристального микроконтроллера семейства i8051 и получение навыков работы в системе отладки.

Система команд микропроцессора и наиболее употребительные директивы ассемблера представлены в разделах помощи системы отладки (см. пункты окна "Помощь" экранного меню).

Для первоначального ознакомления учащийся составляет программу в языке ассемблера ( см. варианты заданий) и выполняет основные этапы отладки : редактирование, компиляцию, моделирование . Все этапы работы выполняются посредством вызова соответствующих действий с помощью экранного меню интегрированной системы отладки, а в процессе моделирования - выбором соответствующих функций из меню встроенной программы-моделировщика. Подробно последовательность вызовов представлена в разделе 3 описания настоящей работы - порядок выполнения работы.

Разрабатывая обучающимся тестовая программа содержит операции считывания входных данных с портов ввода-вывода, обработку считанной информации и выдачу результатов на внешние контакты микроконтроллера.

В работе рассматривается так называемый минимальный режим микроконтроллера, то есть без внешней памяти. Для приема и выдачи информации используются порты ввода-вывода. Порт ввода-вывода содержит регистр для выводимых данных и буфер для входных данных. Регистр выходных данных может быть загружен командой MOV Pn, A , где n -номер порта, а данные с линии ввода-вывода прочитаны командой MOV A,Pn. Однако следует иметь в виду, что внешний контакт порта является одновременно и входом и выходом. Фактически на этой линии реализуется операция "монтажного ИЛИ", то есть если внешний источник, подключенный к соответствующему контакту или выходной регистр выдают на линию уровень логического нуля, то состояние линии нулевое, и при считывании с порта прочтется логический ноль. Иными словами, если порт используется для ввода данных в выходной регистр на время обмена ( а если ввод через этот порт не предусмотрен, то постоянно) должен быть загружен код, содержащий единицу во всех разрядах. Подобно внешние устройства, подключаемые к портам, не должны выдавать активных единичных сигналов на линию передачи данных во время приема.

2. Индивидуальные задания

Во всех вариантах заданий предусматривается наличие циклической головной программ ( 5 - 10 повторений цикла). В каждом цикле выполняется считывание данных с одного из портов, вызов подпрограммы преобразования принятых данных по алгоритму, заданному преподавателем из числа нижеприведенных, и выдача преобразованного значения на другой порт.

Вариант 1. В считанном байте анализируется бит В7. Если в нем 0 то передаче на выходной порт подлежит исходный байт, иначе все разряды кроме В7 инвертируются ( эквивалентно переводу в обратный код).

Вариант 2. В считанном байте анализируется бит В0. Если в нем 0 то передаче на выходной порт подлежит исходный байт, иначе считанное значение увеличивается на единицу .

Вариант 3. . В считанном байте переставляются местами В4 и В5.

Вариант 4. В считанном байте сравниваются биты В3 и В7. Если они равны то на выход передается нулевой код, иначе передается считанное значение

Вариант 5. Если В считанном байте в младшей тетраде есть хоть одна единица, то на выходном порте устанавливается в единицу разряд В7, остальные разряды неизменны.

Замечания:

- Для подготовки программы требуется знание символики команд работы с битами и условных переходов - с ней можно ознакомится, используя встроенную в систему отладки текстовую помощь.

-. Внутри вызванной подпрограммы рекомендуется установить новый регистровый банк используя установку или обнуления битов выбора банка ( напр. SETB RS0, CLRB RS1).

Тогда головная программа и подпрограмма под одинаковыми логическими именами регистров "подразумевают" различные физические ячейки памяти. Такой подход освобождает программиста от проблем защиты регистровой памяти при переходе с одной программы на другую.

-. Рекомендуется разместить основную часть программы с адреса не ниже 100Н. Этой основной части должно в ассемблерной программе предшествовать директива

Org <начальный адрес>

Так как процессор после запуска устанавливает на счетчике команд нулевой код, программа должна начинаться с перехода на начальный адрес основной части программы ( н.п. LJMP 100H).

Асемблер допускает символическое задание меток для команд перехода.

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