
- •Методические указания и задания по лабораторному практикуму по курсу «Микропроцессоры» Учебное пособие Москва 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.4. Работа таймера в режиме счетчика событий
Если установить таймер в режим счетчика событий, то от будет посчитывать число импульсов, появляющихся на входах Т0 для таймера 0 и Т1 для таймера 1. При этом управление таймером будет точно такое же, как и в режиме работы с внешним источником, кроме необходимости устанавливать другой управляющий байт в регистре TMOD.
Ниже приведен пример программы работы таймера 0 в режиме счетчика событий с одновременным воздействием на внешнее прерывание 0 (Программа 5). В ней установлены два источника прерывания:
внешнее прерывание INT0 (моделируется кнопкой INT0 на плате EB552),
прерывание от таймера 0, установленного в режим счетчика внешних импульсов (моделируются кнопкой Т0 на плате EB552).
Счетчики количеств прерываний этих двух видов установлены в регистрах R3 и R2 соответственно. Для наглядности при отладке регистры R5 и R6 используются как флаги того или иного типа прерывания (если в R5 оказывается число 00Н, а в R6 - 0FFH, то плата находится в подпрограмме обслуживания внешнего прерывания, а если в регистрах обратные величины - то в подпрограмме обслуживания прерывания по таймеру 0). При этом, так как регистр IP не задействован, то приоритет у прерывания INT0 выше.
Программа 5
NAME TEST4
Xseg at 0000h
ds 20h
CSEG AT 8000h
ORG 8000h
ljmp start; переход на начало основной программы
ORG 8003h; адрес вектора внешнего прерывания INT0
ljmp int00; переход на начало программы обработки внешнего прерывания INT0
ORG 800bh; адрес вектора прерывания от таймера 0
int11: clr tcon.4; останов таймера 0
clr ie.1; запрет прерывания от таймера 0
mov r5,#0ffh; флаги индикации, что запущена программа
mov r6,#00h; обслуживания таймера
lcall 23ddh; индикация состояния ОЭВМ
mov tl0,#0f5h; загрузка в таймер числа 0FFF5H для
mov th0,#0ffh; подсчета 10 прерываний от кнопки Т0
dec r2; вычитание 1 из счетчика числа прерываний
lcall 23ddh
setb tcon.4; запуск таймера
setb ie.1; разрешение прерывания от таймера
reti; возврат из прерывания по таймеру
int00: ; начало п/п обработки внешнего прерывания
clr ie.0; запрет внешнего прерывания
dec r3;вычитание 1 из счетчика числа прерываний
mov r5,#00h;флаги индикации, что запущена программа
mov r6,#0ffh; обслуживания внешнего прерывания
lcall 23ddh
setb ie.0; разрешение внешнего прерывания
reti; возврат из внешнего прерывания
start: ;начало основной программы
setb ie.7;разрешение глобальных прерываний
mov tmod,#05; установка режима таймера 0: 16-битовый счетчик, режим счетчика событий
mov tl0,#0f5h; загрузка в таймер числа 0FFF5H для
mov th0,#0ffh; подсчета 10 прерываний от кнопки Т0
mov r2,#20;загрузка счетчика числа прерываний от таймера 0
mov r3,#10; загрузка счетчика числа прерываний от кнопки INT0
lcall 23ddh
setb tcon.4;запуск таймера 0
setb ie.1;разрешение прерывания от таймера 0
setb ie.0;разрешение прерывания от кнопки INT0
m1: пустой цикл
nop
cjne r3,#0,m1; проверка на нуль и зацикливание
cjne r2,#0,m1;проверка на нуль и зацикливание
clr tcon.4; останов таймера 0
clr ie.1; запрет прерываний от кнопки Т0
clr ie.0; запрет прерываний от кнопки INT0
lcall 23ddh
ret
end