
- •Основные понятия и определения. Лекция №1. Микропроцессоры и микроконтроллеры. Общие сведения. Шина адреса, шина управления.
- •Что такое микропроцессор?
- •Шинная структура связей
- •Лекция №2. Архитектура микропроцессоров и микроконтроллеров. Risc и cisc система команд в мп и мк. Архитектура микропроцессорных систем
- •Типы микропроцессорных систем
- •Risc и cisc система команд в мп и мк
- •Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды переходов
- •Лекция №3. Внутренняя организация процессора. Назначение и функциональные особенности блоков. Быстродействие процессора
- •Классификация и структура
- •Процессорное ядро
- •Функции процессора
- •Лекция №4. Последовательность выполнения команд микропроцессором. Режимы адресации.
- •Адресация операндов
- •Методы адресации
- •Адресация байтов и слов
- •Регистры процессора
- •Система команд мп. Лекция №5. Архитектура изучаемого микроконтроллера. Назначение внутренних блоков. Микроконтроллеры семейства avr
- •Микроконтроллер aTtiny2313 фирмы Atmel
- •Архитектура микроконтроллеров семейства Tiny
- •Организация памяти
- •Память программ
- •Память данных
- •Способы адресации памяти данных
- •Прямая адресация
- •Лекция №6. Блок регистров общего назначения. Команды с непосредственной адресацией. Различные режимы адресации. Энергонезависимая память данных (eeprom)
- •Доступ к eeprom
- •Меры предосторожности
- •Счетчик команд и выполнение программы
- •Лекция №7. Система команд изучаемого микроконтроллера.
- •Лекция №8. Команды переходов и сдвига. Остальные команды.
- •Выводы микроконтроллера. Лекция №9. Описание выводов микроконтроллера.
- •Описание выводов
- •Кварцевый генератор
- •Лекция №10. Пространство ввода/вывода микроконтроллера.
- •Порт ввода/вывода в
- •Регистр направления данных порта b - ddrb
- •Альтернативные функции portb
- •Порт ввода/вывода d
- •Регистр направления данных порта b - ddrb
- •Порт d, как порт ввода/вывода общего назначения
- •Альтернативные функции порта d
- •Регистры и обработка прерываний микроконтроллера. Лекция №13. Регистр состояния и указатель стека микроконтроллера.
- •Регистр состояния - sreg
- •Указатель стека sp
- •Лекция №14. Обработка внешних прерываний в микроконтроллере.
- •Обработка внешних прерываний. Общий регистр маски прерываний gimsk
- •Общий регистр флагов прерываний
- •Регистр управления микроконтроллером - mcucr
- •Лекция №15. Обработка прерываний от таймеров/счетчиков в микроконтроллере.
- •Регистр маски прерывания от таймера/счетчика - timsk
- •Регистр флагов прерываний от таймеров/счетчиков - tifr
- •Прерывания в микроконтроллере. Лекция №16. Определитель таймеров/счетчиков. Принцип работы таймера/счетчика 0.
- •Определитель таймеров/счетчиков
- •Регистр управления таймером/счетчиком 0 - tccr0
- •Лекция №17. Режимы работы таймера/счетчика 1.
- •Регистр a управления таймером/счетчиком 1 - tccr1a
- •Таймер/счетчик 1 - tcnt1h и tcnt1l
- •Регистр совпадения a таймера/счетчика 1 - ocr1ah и ocr1al
- •Регистр захвата таймера/счетчика 1 - icr1h и icr1l
- •Таймер/счетчик в режиме шим
- •Лекция №18. Универсальный асинхронный приемо-передатчик. Принцип работы и управления.
- •Передача данных
- •Прием данных
- •Управление uart регистр ввода/вывода uart
- •Регистр состояния uart (usr)
- •Регистр управления uart (ucr)
- •Генератор скорости передачи
- •Лекция №19. Аналоговый компаратор и сторожевой таймер микроконтроллера.
- •Аналоговый компаратор регистр управления и состояния аналогового компаратора (acsr).
- •Регистр управления сторожевым таймером - wdtcr
- •Форматы представления чисел в эвм. Лекция №20. Формат чисел с фиксированной точкой и элементарные операции над ними.
- •Компьютерное представление целых чисел
- •Лекция №21. Формат чисел с плавающей точкой и элементарные операции над ними.
- •Компьютерное представление вещественных чисел
- •Цифро-аналоговые преобразователи. Лекция №22. Основные понятия и определения цифро-аналоговых преобразователей (цап). Виды погрешностей преобразования.
- •Параметры цап
- •Лекция №23. Цап на взвешивающей матрице и на матрице r-2r. Принцип работы. Достоинства и недостатки. Цап на взвешивающей матрице
- •Цап на матрице r-2r
Лекция №14. Обработка внешних прерываний в микроконтроллере.
В ATtiny2313 предусмотрены 10 источников прерываний. Эти прерывания и сброс имеют различные векторы в области памяти программ. Каждому из прерываний присвоен отдельный бит разрешающий данное прерывание при установке бита в 1, если бит I регистра состояния разрешает общее обслуживание прерываний.
Самые младшие адреса памяти программ определены как векторы сброса и прерываний. Полный список векторов прерываний приведен в таблице 14.1. Этот список определяет и приоритет различных прерываний. Меньшие адреса соответствуют более высокому уровню приоритета. Самый высокий уровень у сброса, следующий приоритет у INT0 - внешнего запроса прерывания 0 и т.д.
Ниже приведена типичная программа обработки сброса и векторов прерываний:
Address Labels Code Comments
$000 rjmp RESET ; Обработка сброса
$001 rjmp EXT_INT0 ; Обработка IRQ0
$002 rjmp EXT_INT1 ; Обработка IRQ1
$003 rjmp TIM_CAPT1 ; Обработка захвата таймера 1
$004 rjmp TIM_COMP1 ; Обработка совпадения таймера 1
$005 rjmp TIM_OVF1 ; Обработка переполнения таймера 1
$006 rjmp TIM_OVF0 ; Обработка переполнения таймера 0
$007 rjmp UART_RXC ; Обработка приема байта
$008 rjmp UART_DRE ; Обработка освобождения UDR
$009 rjmp UART_TXC ; Обработка передачи байта
$00a rjmp ANA_COMP ; Обработка аналогового компаратора
$00b MAIN: <instr> xxx ; Начало основной программы
_ _ _ _
Таблица 14.1. Сброс и векторы прерываний.
┌─────────────┬──────┬──────────────┬────────────────────────────────┐
│Номер вектора│ Адрес│Источник │ Описание прерывания │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 1 │ $000 │RESET │ Ножка сброса и сброс от сторо- │
│ │ │ │ жевого таймера │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 2 │ $001 │INT0 │ Внешнее прерывание 0 │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 3 │ $002 │INT1 │ Внешнее прерывание 1 │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 4 │ $003 │TIMER1 CAPT1 │ Захват таймера/счетчика 1 │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 5 │ $004 │TIMER1 COMP1 │ Совпаден. таймера/счетчика 1 │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 6 │ $005 │TIMER1 OVF1 │ Переполнение таймера/счетчика 1│
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 7 │ $006 │TIMER0 OVF0 │ Переполнение таймера/счетчика 0│
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 8 │ $007 │UART RX │ Последоват.порт прием закончен │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 9 │ $008 │UART UDRE │ Посл.порт регистр данных пуст │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 10 │ $009 │UART TX │ Посл.порт передача закончена │
├─────────────┼──────┼──────────────┼────────────────────────────────┤
│ 11 │ $00A │ANA_COMP │ Аналоговый компаратор │
└─────────────┴──────┴──────────────┴────────────────────────────────┘
ATtiny2313 имеет два регистра маски прерываний GIMSK - общий регистр маски прерываний и TIMSK - регистр маски прерываний от таймера/счетчика.
Когда возникает прерывание бит глобального разрешения прерываний I сбрасывается (ноль) и все прерывания запрещаются. Программа пользователя может установить этот бит для разрешения прерываний. Флаг разрешения прерываний I устанавливается в 1 при выполнении команды выхода из прерывания - RETI.
Для прерываний включаемых статическими событиями (напр. совпадение значения счетчика/таймера 1 с регистром совпадения) флаг прерывания взводится при возникновении события. Если флаг прерывания очищен и присутствует условие возникновения прерывания, флаг не будет установлен, пока не произойдет следующее событие. Когда программный счетчик устанавливается на текущий вектор прерывания для его обработки, соответствующий флаг, сгенерированный прерыванием, аппаратно сбрасывается. Некоторые флаги прерывания могут быть сброшены записью логической единицы в бит соответствующий флагу.