- •Методические указания и задания по лабораторному практикуму по курсу «Микропроцессоры» Учебное пособие Москва 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. Содержимое отчета
- •Список рекомендованной литературы
Лабораторная работа № 5 Исследование таймеров-счетчиков и системы прерывания оэвм
Цель работы: Изучить принцип работы таймеров-счетчиков ОЭВМ семейства MCS-51, их режимы работы и способы использования. Исследовать принцип действия системы прерывания ОЭВМ в реальном времени.
3.1. Основные теоретические сведения
ОЭВМ семейства MCS-51 и в частности микро-ЭВМ PCF80C552 содержит два идентичных 16-разрядных таймера-счетчика, которые могут работать двумя основными способами:
Режим таймера, когда сигнал на вход таймера подается с внутреннего тактового генератора ОЭВМ.
Режим счетчика событий, когда сигнал подается извне на входы Т0 (для таймера 1 – на вход Т1).
Подробная информация о работе таймеров и их режимах приведена в [2]. В настоящем разделе приводится только самая необходимая информация, чтобы можно было выполнить домашнее и лабораторное задание.
3.1.1. Использование таймера для осуществления программной задержки
В способе таймера на счетчики подается сигнал с внутреннего тактового генератора ОЭВМ. Его частота определяется частотой кварцевого резонатора, подключенного к выводам ОЭВМ. Для наиболее общего случая, когда частота кварца равна 12 МГц, частота сигнала, подаваемая на таймер равна 1 МГц, или период сигнала соответствует 1 мкс.
Основное использование таймера при этом способе – организация точной и длительной временной задержки выполнения каких-либо действий системы. Каждый импульс длительностью 1 мкс увеличивает содержимое регистров таймера на 1.
Для осуществления задержки целесообразно установить 1 режим работы таймера (как описано в [2], таймер может работать в четырех различных режимах). При этом два 8-разрядных регистра таймера – старший (обозначаемый как TH0 или TH1) и младший (обозначаемый как TL0 или TL1) соединены последовательно и образуют единый 16-разрядный регистр-счетчик.
Принцип действия задержки с помощью таймера достаточно прост: в регистры таймера загружают определенное число, которое и определяет величину задержки, затем запускают таймер на счет и спустя некоторое время он достигает переполнения (т.е. момента, когда его значение переходит с 0FFFFH в 0000H). При этом устанавливается специальный флаг в специальном регистре и вырабатывается прерывание по переполнению таймера, если оно разрешено. Таким образом, время задержки по существу, прямо пропорционально значению, записанному в регистры таймера. При периоде входных импульсов в 1 мкс максимальное время задержки составляет 65535 мкс (время счета от 0000Н до 0FFFFH).
Ассемблер имеет ряд операторов, которые позволяют легко рассчитать, какую величину надо загружать в регистры, чтобы получить фиксированную задержку. Надо включить в программу инициализации таймера два оператора:
mov th0,#high(not (Tз-1))
mov tl0,#low(not(Tз-1))
где оператор high – функция выделения старшего байта из двухбайтного числа, оператор low - функция выделения младшего байта из двухбайтного числа, not – оператор дополнения до числа 0FFFFH, Тз - требуемое время задержки в мкс. Например, для получения задержки 50 мс надо написать следующие операторы:
mov th0,#high(not (50000-1))
mov tl0,#low(not(50000-1))
Ассемблер сам вычислит конкретные загружаемые в регистры значения.
Для получения времен задержки, больших 65535 мкс, надо использовать очень распространенный прием – накапливать в каком-либо регистре число прерываний таймера по 50 мс. Например, для задержки в 1 с надо накапливать 20 таких событий.
Слежение за флагом переполнения таймера является неэффективным, так как нерационально расходуется процессорное время на ожидание события. Целесообразнее использовать возможность прерывания основной программы при переполнении таймера.