- •Конспект лекций по дисциплине Микропроцессоры и микропроцессорные системы управления
- •Раздел 1 Основы микропроцессорной техники Тема 1.1 Принцип программного управления – основной принцип работы мп
- •Тема 1.2 Принцип централизации управления мпс. Шинная связь
- •Урок №5
- •Тема 1.3 Регистровая модель микропроцессора
- •1.3.1 Классификация внутренних регистров мп
- •1.3.2 Две архитектуры мп: аккумуляторная и регистровая
- •1.3.4* Внутренняя структура мп i8080
- •1.3.5* Регистровая модель мп i8080
- •Урок № 6
- •Урок №7 Лабораторная работа №1 Ввод, компиляция и отладка программ в avr Studio
- •Урок №8 Лабораторная работа №2 Анализ работы ядра микроконтроллера
- •Тема 1.4 Режимы работы микропроцессорной системы
- •Урок №11 Тема: Упражнения. Подготовка к лабораторным работам №3, 4
- •Урок №12 Лабораторная работа №3 Анализ работы микропроцессора в программном режиме и в режиме вызова подпрограмм
- •1 Практические задания и методические указания по их выполнению
- •3 Контрольные вопросы:
- •Урок №13 Лабораторная работа №4 Анализ работы микропроцессора в режиме прерывания программы
- •2 Практические задания и методические указания по их выполнению
- •3 Оформление отчета
- •4 Контрольные вопросы:
- •Урок №14
- •Тема 1.5 Микроконтроллеры
- •Раздел 2 микроконтроллеры семейства avr
- •Тема 2.1 История создания, классификация микроконтроллеров семейства avr
- •Тема 2.2 Типы корпусов микроконтроллеров семейства avr
- •Урок №17
- •Тема 2.3 Основные параметры, назначение выводов мк aTtiny2313
- •Урок №18
- •Тема 2.4 Основные параметры, назначение выводов мк aTmega8535
- •Урок №17
- •Тема 2.3 Основные параметры, назначение выводов мк aTtiny2313
- •Урок №18
- •Тема 2.4 Основные параметры, назначение выводов мк aTmega8535
- •Урок №19
- •Тема 2.5 Синхронизация работы мк avr
- •Урок №20
- •Тема 2.6 Система сброса
- •Урок №21
- •Тема 2.7 Параллельные порты микроконтроллеров семейства avr
- •Урок №22
- •Тема 2.8 Команды обращения к параллельным портам микроконтроллеров семейства avr
- •Урок №27 Лабораторная работа № 5 Методика отладки программ на лабораторном стенде «Программирование мк aTmega8535»
- •Урок №28 Лабораторная работа № 6 Разработка и отладка программы «Copy»
- •Урок № 29
- •Тема 2.9 Типичные схемы подключения светодиодов к выходам мк
- •Урок №30
- •Урок №31
- •Тема 2.10 Типичные схемы подключения семисегментных индикаторов к выходам мк
- •Урок №32
- •Урок №33
- •Урок №34 Лабораторная работа № 7 Исследование работы схемы статической индикации на лабораторном стенде «Программирование мк aTmega8535
- •2 Практические задания и методические указания по их выполнению.
- •Урок № 35
- •Тема 2.11 Типичные схемы подключения двоичных датчиков
- •Урок № 36
- •Урок №37
- •Тема 2.12 Программирование микроконтроллеров
- •Урок № 38 Подготовка к лабораторным работам № 8, 9
- •Урок № 39 Лабораторная работа №8 Программирование микроконтроллера с помощью программатора Phyton
- •Урок № 40 Лабораторная работа №9 Отладка программ на стенде «Цифровые микросхемы»
- •Урок № 41
- •Тема 2.13 Система прерываний
- •Урок №42
- •Урок №43
- •Урок №45 Лабораторная работа №10 Исследование логики прерывания от внешнего устройства
- •1 Краткие сведения из теории
- •2 Практические задания и методические указания по их выполнению
- •3 Оформление отчета
- •Урок № 46
- •Урок № 47
- •Тема 2.14 Таймеры
- •Урок № 49
- •Урок № 50
- •Урок № 51 Лабораторная работа № 11 Исследование работы таймера-счетчика t/c0
- •1 Краткие сведения из теории
- •3 Оформление отчета
- •Тема 2.12 Лабораторный комплекс «Микроконтроллеры и автоматизация»
- •Тема 2.13 Примеры программ ввода-вывода
- •Раздел 4 специальные возможности микроконтроллеров семейства avr Тема 4.1 Система прерываний
Урок № 41
Тема 2.13 Система прерываний
Вопросы темы:
2.13.1 Источники прерывания МК ATmega8535
2.13.2 Алгоритм обработки прерывания
2.13.3 Внешние прерывания
2.13.4 Пример программ обслуживания прерываний от внешних устройств
2.13.1 Источники прерывания МК ATmega8535
В зависимости от модели, микроконтроллеры могут обслуживать различное число источников прерываний. Каждому источнику назначен так называемый вектор прерывания - ячейка в области младших адресов памяти программ, в которую записывается начальный адрес подпрограммы обработки прерывания для данного источника прерывания. В таблице 1 приведены адреса векторов источников прерывания МК ATmega8535.
Таблица1 - Таблица векторов прерывания ATmega8535
Адрес , hex |
Источник |
Примечание |
0000 |
RESET |
Внешний сброс |
0001 |
INT0 |
Внешнее прерывание 0 |
0002 |
INT1 |
Внешнее прерывание 1 |
0003 |
TIMER2 COMP |
Совпадение при сравнении таймера-счетчика 2 |
0004 |
TIMER2 OVF |
Переполнение таймера-счетчика 2 |
0005 |
TIMER1 CAPT |
Захват таймера-счетчика 1 |
0006 |
TIMER1 COMPA |
Совпадение А при сравнении таймера-счетчика 1 |
0007 |
TIMER1 COMPB |
Совпадение В при сравнении таймера-счетчика |
0008 |
TIMER1 OVF |
Переполнение таймера-счетчика 1 |
0009 |
TIMER0 OVF |
Переполнение таймера-счетчика 0 |
000A |
SPI, STS |
Завершение пересылки SPI |
000B |
USART, Rx |
Завершение приема USART |
000C |
USART, UDRE |
Регистр данных USART пуст |
000D |
USART, Tx |
Завершение передачи USART |
000E |
ADC |
Завершение преобразования АЦП |
000F |
EE_RDY |
Готовность ЕЕPROM |
0010 |
ANA_COMP |
Срабатывание аналогового компаратора |
0011 |
TWI |
Последовательный интерфейс TWI |
0012 |
INT2 |
Внешнее прерывание 2 |
0013 |
TIMER0 COMP |
Совпадение при сравнении таймера-счетчика 0 |
0014 |
SPM_RDY |
Готовность Store Progr. Memory |
Так как векторы расположены в памяти программ для их заполнения используется директива .org.
Пример 1. В следующем фрагменте в вектор внешнего сброса записан адрес подпрограммы обработки прерывания, которая начинается с метки start:
.org $0000
rjmp start
Пример 2. Рассмотрим еще один фрагмент таблицы векторов:
.org $0000 ;вектор сброса
rjmp start ;прыжок на метку start
.org $0001 ;вектор внешнего прерывания INT0
rjmp opros ;прыжок на метку opros
.org $0002 ;вектор внешнего прерывания INT1
reti ;возврат из прерывания (прерыва ;ние заглушено)
Пример 3. Подпрограмма обработки прерывания от переполнения таймера-счетчика 0 начинается с метки ind. Требуется заполнить вектор соответствующего прерывания.
.org $0009
rjmp ind
Контрольные вопросы:
1 Что такое прерывание программы
2 Перечислите источники прерывания программы в МК семейства AVR
3 Что такое адрес возврата, как он сохраняется, когда восстанавливается?
5 Что такое вектор прерывания, что в него записывают, где он расположен?
6 Что такое таблица векторов, где она располагается?
7 Как заполняется таблица векторов?
8 Подпрограмма обслуживания прерывания от начинается с метки «comp». Заполните вектор прерывания аналогового компаратора.
9 Необходимо заглушить прерывания от внешних устройств INT0, INT1. Как это сделать?
10 В следующем фрагменте используются прерывания от нескольких устройств. Определите, что это за устройства, и какие действия выполняют их ПОП:
.org $002
rjmp opros
.org $000e
rjmp count
.org $012
rjmp ind
;==========
opros:
in r0,portc
reti
count:
inc r0
reti
ind:
out portc,ro
reti