- •Movx @dptr,a ; Вывод следующего знакоместа
- •Контрольные вопросы.
- •Лабораторная работа №10 вВод информации с Клавиатуры
- •Контрольные вопросы.
- •Лабораторная работа №9 организация Динамической индикации Практическая часть.
- •Порядок выполнения работы
- •Задания.
- •Подпрограмма обслуживания 8-и разрядного семисегментного индикатора.
- •Задания.
- •Контрольные вопросы
- •Лабораторная работа №2. Команды пересылки данных. Практическая часть.
- •Формирование временной задержки на основе таймера.
- •3. Считывание текущего состояния таймера без нарушения процесса синхронизации.
- •4. Измерение длительности сигнала.
- •Задание 2
- •1. Инициализация Таймера 1 для автозагрузки с частотой 32х2400 Гц.
- •III. Работа с внешней памятью данных (впд).
- •1. Запомнить в впд содержимое регистров банка 0.
- •IV.Операции со стеком.
- •Индивидуальное задание на лабораторную работу
- •6. Ввод данных с тумблеров, подключенных к линиям 3 и 4 порта 1 и выдача их на светодиоды, подключенные к линиям 4 и 5 порта 3.
- •7. Воспроизведение звука через динамик, подключенный к p3.5.
- •Задание 1
- •5. Передача символьной строки через последовательный порт.
- •Задания 2
- •Контрольные вопросы.
- •Лабораторная работа №3. Арифметические команды Практическая часть.
- •I. Инкремент и декремент.
- •II. Сложение и вычитание.
- •2. Формирование импульсных сигналов
- •3. Измерение длительности импульса
- •Устранение дребезга контактов
- •3. Программа вычитает строку, указанную регистром r1, из строки, указанной регистром r0, с точностью, указанной регистром r2. После выполнения операции проверяется переполнение результата.
- •III. Умножение и деление.
- •Задания 1.
- •1. Ввод информации с датчиков
- •Задания 1.
- •Задания 2
- •Контрольные вопросы.
- •Лабораторная работа №4 логические команды. Команды сдвига и работы с битами Практическая часть.
- •1. Маскирование при вводе.
- •Контрольные вопросы.
- •Лабораторная работа №6 изучение системы прерываний Практическая часть.
- •1. Сохранение состояния центрального процессора во время прерываний
- •Вычислить булеву функцию трех переменных :
- •Задания 1.
- •Задания 2.
- •Задания 1.
- •Индивидуальные задания 2
- •6. Последовательная передача параметров
- •Задания 3.
- •Контрольные вопросы.
- •Лабораторная работа №5 команды передачи управления. Практическая часть.
- •Временная задержка малой длительности.
- •Временная задержка большой длительности.
- •3. Временная задержка длительностью 1с:
- •4. Передать управление одной из восьми программ rout0 - rout7 при появлении нулевого уровня на соответствующем входе порта 0. Наивысшим приоритетом обладает вход р1.0:
- •5. Множественное ветвление программы:
5. Передача символьной строки через последовательный порт.
При передаче символов через последовательный порт в устройство вывода (например, принтер с форматом ASCII) может возникнуть необходимость в выводе служебных сообщений, включающих сообщения об ошибках, диагностику или инструкции для оператора. Эти символьные строки просто описываются при помощи директивы DB.
CR EQU 0DH ; Код возврата каретки (ASCII)
LF EQU 0AH ; Код перевода строки
ESC EQU 1BH ; Код операции ESC
T1 EQU P3.5
TI EQU SCON.1
CALL STRING
DB CR,LF ; Установка новой строки
DB ‘HALLO!’ ; Сообщение
DB ESC ; Завершение
;..............
STRING: POP DPH ;Загрузка первого символа
POP DPL
STR1: CLR А
MOVC A,@A+DPTR ;Выборка первого символа
STR2: JNB Т1,$ ; Ожидание готовности
CLR TI
MOV SBUF,А ; Выдача символа
INC DPTR ; Сдвиг указателя
CLR A
MOVC A,@A+DPTR ; Выборка следующего символа
CJNE A,#ESC,STR2 ; Цикл чтения
MOV А,#1
JMP @A+DPTR ; Возврат к программе после чтения
28
6. Выполнить задание варианта 5, используя в качестве временного хранилища данных область в ВПД по адресу С200Н.
7. Переслать содержимое участка памяти длиной 4 байта из РПД по адресу 16Н в ВПД по адресу С200Н.
8. Организовать стек по адресу 12Н и сохранить в нем содержимое регистров банка 3.
Задания 2
Переслать массив из одной области памяти в другую, причем четные и нечетные байты поменять местами.
Поменять местами два массива в памяти, используя стек.
Поменять местами между собой половинки массива.
Сформировать новый массив из каждого четвертого байта заданного массива.
Записать в каждый пятый элемент массива значение предыдущего байта.
Поменять местами каждый второй и каждый третий элемент (байт) массива.
В массиве поменять местами байты, равноотстоящие от начала и от конца массива(зеркально отобразить массив относительно середины).
Из заданного массива сформировать новый массив, изменив порядок следования элементов на противоположный, и переслать его на место исходного.
Контрольные вопросы.
В чем заключается различие команд MOV, MOVC и MOVX .
Назовите возможные операнды вышеперечисленных команд.
Каким образом можно зарезервировать память в программе .
К какой памяти можно обращаться с помощью DPTR .
Можно ли командой MOV смоделировать работу команд XCH,XCHD. Обоснуйте ответ.
6. Охарактеризовать методы адресации, используемые в формате команды пересылки данных MOV.
7. Каким образом осуществляется в МК51 доступ к памяти программ (ПП).
8. Как производится загрузка регистра-указателя данных DPTR 16-битным адресом. При доступе к какой части памяти МК51 и с помощью какой команды используется этот регистр.
9. Описать механизм выполнения стековых операций в МК51. Для каких целей используются подобные операции.
10. Оценить количество рабочих циклов МК51, необходимое для выполнения отдельных команд пересылки данных С по заданию преподавателя).
Лабораторная работа №3. Арифметические команды Практическая часть.