- •Методические указания и задания по лабораторному практикуму по курсу «Микропроцессоры» Учебное пособие Москва 2013
- •Лабораторная работа №1. "Исследование возможностей интегрированной среды для создания программ для микроконтроллеров"
- •1. Краткое описание интегрированной среды
- •1.1. Окно интегрированной среды
- •1.2. Использование отладчика (симулятора) для ассемблерных модулей
- •1.3. Порядок создания программ на Ассемблере с помощью интегрированной среды
- •1.4. Порядок отладки программ на Ассемблере с помощью интегрированной среды
- •1.5. Дополнительные операторы языка Ассемблера для использования интегрированной среды
- •1.6. Задание для домашней подготовки
- •1.7. Лабораторное занятие
- •1.8. Отчет по работе
- •Лабораторная работа №2. "Исследование арифметических и логических операций над двоичными и шестнадцатеричными числами применительно к реализации в микроконтроллерах"
- •1. Логические и арифметические операции
- •2.6. Задание для домашней подготовки
- •1.7. Лабораторное занятие
- •Лабораторная работа №3. "Исследование возможностей интегрированной среды для создания программ для оэвм семейства mcs51"
- •1.6. Задание для домашней подготовки
- •1.7. Лабораторное занятие
- •1.8. Содержание отчета
- •1.9. Задания для самопроверки
- •Лабораторная работа №4 Исследование программно-аппаратного комплекса для отладки программ для оэвм семейства mcs-51
- •4.1. Макетно-отладочная плата ев-552
- •2.3. Порядок создания и проверки программ в интегрированной системе uVision2 - eb552
- •2.3.1. Использование программы ев552.Exe для загрузки нех файлов в плату
- •8. Передача отлаживаемого файла в плату ев552
- •2.4. Задание для домашней подготовки
- •2.5. Лабораторное занятие
- •2.5.1. Основы работы с массивами чисел
- •2.5.2. Отладка программы в интегрированной среде
- •2.6. Результаты отчета
- •2.7. Контрольные вопросы
- •Лабораторная работа № 5 Исследование таймеров-счетчиков и системы прерывания оэвм
- •3.1. Основные теоретические сведения
- •3.1.1. Использование таймера для осуществления программной задержки
- •3.1.2. Система прерываний оэвм
- •3.1.3. Управление работой таймеров
- •Xseg at 0000h
- •3.1.4. Работа таймера в режиме счетчика событий
- •Xseg at 0000h
- •3.2. Задание для домашней подготовки
- •3.3. Лабораторное задание
- •3.3.1. Исследование работы таймеров
- •3.4. Содержимое отчета
- •Список рекомендованной литературы
1.7. Лабораторное занятие
1.7.1. Запустить на выполнение файл интегрированной среды, как указано в разделе 1.
1.7.2. Откомпилировать программу, выполненную в процессе домашнее подготовки, запустить сборщик и запустить отладчик для исследования этой программы.
1.7.3. В режиме пошаговой отладки исследовать изменение всех регистров, участвующих в программе с помощью протокола отладки и с помощью окна Watch.
1.7.4. Показать преподавателю результаты отладки.
Лабораторная работа №3. "Исследование возможностей интегрированной среды для создания программ для оэвм семейства mcs51"
Цель работы: Ознакомление со структурой пакета интегрированной среды для разработки программ для ОМЭВМ семейства MCS51, распределением памяти, методикой работы. Получение навыков отладки простейших программ.
1.6. Задание для домашней подготовки
1.6.1. Ознакомиться по описанию с порядком разработки программ в рамках интегрированной среды.
1.6.2. Ознакомиться с примерами программ на Ассемблере, приведенными в разделе "Лабораторное занятие".
1.6.3. По рекомендованной литературе ознакомиться со структурой и программированием ОЭВМ семейства MCS51.
1.6.4. Разработать программу на языке Ассемблера по заданию, которое приведено ниже. В табл. 1.2 приведен номер варианта программы, которая должна быть разработана для каждой бригады в отдельности. Программа должна иметь все необходимые "псевдооператоры", которые позволяли бы загрузить ее непосредственно в среду. Коды программы должны начинаться с 0000Н, байтовые переменные - с 08Н, стек - с 60Н, битовые переменные - с 20Н, внешнее ОЗУ – с 0000H. Ассемблирование вручную приводить не надо.
Таблица 1.2
Распределение вариантов домашнего задания по бригадам
N бригады |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
N варианта |
9 |
1 |
8 |
2 |
10 |
3 |
4 |
5 |
6 |
7 |
Вариант 1. Составить программу сложения N (N<16) двухбайтных чисел. Числа должны располагаться во внутренней или внешней памяти, начиная с определенного адреса. Результат должен фиксироваться в регистрах R0-R7 или ячейках внутренней памяти.
Вариант 2. Составить программу сложения двух N-байтных чисел (2<N<8). Операнды должны располагаться во внутренней или внешней памяти, начиная с определенных адресов. Результат должен фиксироваться в регистрах R0-R7 или ячейках внутренней памяти.
Вариант 3. Составить программу нахождения минимального числа из массива N однобайтовых чисел.
Вариант 4. Написать программу перезаписи байтовых чисел из одной области памяти в другую. Первая область находится во внешней памяти с адреса 0000Н по 03FFH, вторая начинается с адреса 2000Н.
Вариант 5. Подсчитать количество ненулевых элементов в байтовом массиве. Числа должны располагаться в памяти программ, начиная с адреса после кодов программы. Результат должен фиксироваться в ячейках внешней памяти, начиная с адресов 0000H.
Вариант 6. Подсчитать количество элементов, равных FF, в байтовом массиве. Числа должны располагаться в памяти программ, начиная с адреса после кодов программы. Результат должен фиксироваться в ячейках внешней памяти, начиная с адресов 0000H.
Вариант 7. Составить программу нахождения максимального числа из массива N однобайтовых чисел.
Вариант 8. Составить программу проверки элементов массива на 0. Числа располагаются во внутренней памяти, начиная с адреса 10Н по 3FH. Надо зафиксировать адреса нулевых элементов массива и запомнить их во внутренней памяти.
Вариант 9. Составить программу записи натуральных чисел во внутреннюю память. Массив для записи находится, начиная с адреса 10Н по 5FH. Надо записать в каждую из ячеек число из возрастающей последовательности 1, 2, 3, 4... .
Вариант 10. Составить программу записи во все порты ОЭВМ чередующихся нулей и единиц. Например в порт Р0 записать число в двоичной форме 01010101, в порт Р1 - 10101010 и т.д. Затем необходимо инвертировать значения во всех портах, т.е. в Р0 -10101010, в Р1 -01010101 и т.д.