- •Методические указания и задания по лабораторному практикуму по курсу «Микропроцессоры» Учебное пособие Москва 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. Содержимое отчета
- •Список рекомендованной литературы
3.1.3. Управление работой таймеров
При необходимости использовать таймеры ОЭВМ их сначала надо инициализировать. Для инициализации используется регистр TMOD. В нем есть отдельные биты, которые ответственны за установку режимов. Структура регистра TMOD показана на рис. 3.3.
Рис. 3.3. Структура регистра TMOD:
TMOD.0 и TMOD.1 для таймера 0 (соответственно для таймера 1 - TMOD.4 и TMOD.5) устанавливают режим работы таймера (см. [2]).
TMOD.2 для таймера 0 (соответственно для таймера 1 - TMOD.6) устанавливает будет ли таймер работать от внутреннего источника импульсов (TMOD.2 или TMOD.6 =0) или как счетчик внешних событий (TMOD.2 или TMOD.6 =1).
TMOD.3 для таймера 0 (соответственно для таймера 1 - TMOD.7) позволяет запускать таймер не только программно, но и аппаратно: если установить TMOD.3=1(соответственно для таймера 1 - TMOD.7=1), то запуск таймера можно осуществить только при наличии уровня лог.1 на входе INT0 (соответственно для таймера 1 - INT1). Если же установить эти биты в 0, то уровни на входах INT0 и INT1 не воздействуют на запуск таймеров.
Этот регистр не является бит-адресуемым, т.е. для него нельзя установить отдельные биты командами CLR и SETB. Необходимо записывать в регистр TMOD сразу целый байт.
Кроме регистра TMOD в управлении таймеров участвует регистр TCON (он как раз является бит-адресуемым). Его старшие 4 бита отведены как раз под управление таймерами. Структура регистра TCON показана на рис. 3.4.
Рис. 3.4. Структура регистра TCON:
TCON.4 (альтернативное обозначение TR0) - установка этого бита в 1 запускает таймер 0. Установка в 0 - останавливает.
TCON.5 (альтернативное обозначение TF0) - бит переполнения таймера 0 (устанавливается аппаратно при переполнении, требует программного сброса).
TCON.6 (альтернативное обозначение TR1) - установка этого бита в 1 запускает таймер 1. Установка в 0 - останавливает.
TCON.7 (альтернативное обозначение TF1) - бит переполнения таймера 1 (устанавливается аппаратно при переполнении, требует программного сброса).
Ниже приведена программа работы таймера 0 в режиме прерывания для организации секундной задержки:
Программа 4
NAME TEST4
Xseg at 0000h
ds 20h
CSEG AT 8000h
ORG 8000h
ljmp start ; переход на начало основной программы
ORG 800bh ;установка адреса вектора прерывания от таймера (см. Примечание)
int11: clr tcon.4; останов таймера 0
clr ie.1 ;запрещение прерывания о таймера 0
mov tl0,#low(not(50000-1));загрузка регистров таймера на период 50 мс
mov th0,#high(not(50000-1))
dec r2; уменьшение на 1 счетчика числа циклов по 50 мс
setb tcon.4; запуск таймера 0
setb ie.1; разрешение прерывания от таймера 0
reti ;возврат из прерывания
start: setb ie.7; начало основной программы - разрешение глобальных прерываний
mov tmod,#01;установка режима таймера - 16 разрядов, внутренний источник
mov tl0,#low(not(50000-1));загрузка регистров таймера на период 50 мс
mov th0,#high(not(50000-1))
mov r2,#20; загрузка числа периодов по 50 мс
lcall 23ddh; вызов программы отображения состояния ОЭВМ
setb tcon.4 ;запуск таймера 0
setb ie.1; разрешение прерывания от таймера 0
m1:
nop; пустая операция
cjne r2,#0,m1; проверка на нуль регистра r2 и зацикливание
lcall 23ddh
ret
end
Примечание: вектора прерываний для платы EB552 смещены в область адресов памяти команд 8003Н - 8026Н и затем программой монитором пересылаются в область 0003Н - 0026Н.