- •Введение
- •1. Омэвм avr семейства Mega
- •1.1. Технические характеристики микроконтроллера avr aTmega8515
- •1.2 Условное графическое обозначение (уго) микроконтроллера avr aTmega8515
- •1.3. Структура микроконтроллера аTmega8515
- •1.4. Организация памяти
- •1.4.1. Карта памяти
- •1.4.2. Память программ (Flash – пзу)
- •1.4.3. Память данных
- •Регистровая память (рон и рвв)
- •Файл регистров общего назначения
- •Регистр X, регистр y и регистр z
- •Регистр статуса – sreg
- •1.4.4. Оперативная память (озу или ram)
- •Регистр управления mcu - mcu Control Register - mcucr
- •1.4.5. Энергонезависимая память данных (eeprom)
- •1.5. Режимы адресации памяти данных
- •1.7. Стек. Указатель стека - Stack Pointer - sp
- •1.8. Тактирование. Режимы пониженного энергопотребления
- •1.8.1. Тактовый генератор
- •Система реального времени (rtc)
- •1.8.2. Сброс. Источники сброса
- •Сброс по включению питания
- •Внешнее управление сбросом
- •Сброс по сторожевому таймеру
- •1.8.3. Режимы энергосбережения (Sleep Modes)
- •1.9. Прерывания (interrupts)
- •Время отклика на прерывание
- •Обработка прерываний и сброса
- •Регистр флагов прерываний – gifr (General Interrupt Flag Register)
- •Регистр управления внешними прерываниями – gicr
- •Регистр масок прерывания по таймерам/счетчикам - timsk (Timer/Counter Interrupt Mask Register)
- •Регистр флагов прерываний по таймерам/счетчикам tifr
- •1.10. Таймеры/счетчики (timer/counters)
- •1.10.1. Таймер/счетчик t/c0
- •Регистр управления т/с0 - tccr0 (The Timer/Counter0 Control Register) Регистр tccr0 предназначен для управления модулем т/c0. Формат регистра tccr0:
- •Регистр сравнения выхода т/с0
- •Режимы работы т/с0
- •Изменение состояния ос0 определяется разрядами сом01:сом00 регистра tccr0 (состояние вывода ос0 изменяется в соответствии с таблицей 11).
- •1.10.2. Таймер/счетчик 1 – t/c1
- •1.11. Сторожевой таймер (Watchdog Timer)
- •Регистр управления сторожевым таймером – wdtcr
- •1.12. Универсальный синхронно-асинхронный приемопередатчик (usart)
- •Регистр данных usart - udr - (usart I/o Data Register)
- •Регистр ucsra
- •Регистр ucsrв
- •Регистр ucsrс
- •Формат кадра
- •Скорость обмена данными
- •Передача данных
- •Прием данных
- •1.13. Последовательный периферийный интерфейс spi
- •1.14. Аналоговый компаратор (Analog Comparator)
- •2. Система команд
- •Команды логических операций
- •Команды арифметических операций и сдвига
- •Команды операций с битами
- •Команды пересылки данных
- •Команды передачи управления
- •Теоретическая часть
- •1.1. Методические указания по выполнению лабораторной работы
- •1.1.1. Создайте новый проект.
- •1.1.2. Напишите и отладьте программу lab1
- •. Содержание отчета
- •3.2. Практическая работа №1 Изучение системы команд мк avr aTmega8515
- •2. Содержание отчета
- •3.3. Лабораторная работа №2 Изучение работы с портами ввода/вывода мк avr
- •Контрольные вопросы
- •Литература
Регистр статуса – sreg
Регистр статуса – SREG – размещен в пространстве I/O по адресу $3F ($5F) и его биты определяются как:
Таблица 2. Формат регистра флагов микроконтроллера ATmega8515
Биты |
|
|
||||||||
3 |
|
REG |
Bit 7 – I: Global Interrupt Enable – Разрешение глобального прерывания. Бит разрешения глобального прерывания для разрешения прерывания должен быть установлен в состояние 1. Управление разрешением конкретного прерывания выполняется регистрами маски прерывания GIMSK и TIMSK. Если бит глобального прерывания очищен (в состоянии 0), то ни одно из разрешений конкретных прерываний, установленных в регистрах GIMSK и TIMSK, не действует. Бит I аппаратно очищается после прерывания и устанавливается для последующего разрешения глобального прерывания командой RETI.
Bit 6 – T: Bit Copy Storage – Бит сохранения копии. Команды копирования бита BLD (Bit LoaD) и BST (Bit STore) используют бит T как бит источник и бит назначения при операциях с битами. Командой BST бит регистра регистрового файла копируется в бит T, командой BLD бит T копируется в регистр регистрового файла.
Bit 5 – H: Half Carry Flag – Флаг половинного переноса. Флаг полупереноса указывает на полуперенос в ряде арифметических операций. Устанавливается в «1», если произошел перенос из младшей половины байта в старшую половину (или заем из старшей тетрады при вычитании).
Bit 4 – S: Sign Bit, S = NV – Бит знака. Бит S всегда находится в состоянии, определяемом логическим «исключающим ИЛИ» (exclusive OR) между флагом отрицательного значения N и флага переполнения V.
Bit 3 – V: Two’s Complement Overflow Flag – Дополнение до двух флага переполнения. V = CCI. V определяемом логическим «исключающим ИЛИ» над флагом переноса С (перенос из седьмого разряда результата в восьмой) и флагом CI (перенос из шестого разряда результата в седьмой).
Bit 2 – N: Negative Flag – Флаг отрицательного значения. Флаг отрицательного значения N указывает на отрицательный результат ряда арифметических и логических операций. Определяется по старшему 7 знаковому разряду результата операции.
Bit 1 – Z: Zero Flag – Флаг нулевого значения. Флаг нулевого значения Z=1 указывает на нулевой результат ряда арифметических и логических операций.
Bit 0 – C: Carry Flag – Флаг переноса. Флаг переноса C указывает на перенос в арифметических и логических операциях. «С» указывает на перенос из седьмого разряда результата в восьмой при сложении и заем в восьмом разряде при вычитании.
Пример формирования арифметических флагов по результату операции в АЛУ.
Необходимо сложить два числа 49h + 78h и выставить арифметические флаги.
1) Перед операцией сложения необходимо числа представить в двоичной системе счисления:
4916=0100 10012, 7816=0111 10002.
2) Сложить и выставить арифметические флаги:
При сложении двух положительных чисел в дополнительном коде, получен отрицательный результат (С1h), что говорит о переполнении разрядной сетки МК.
Hf=1, перенос из младшей в старшую тетраду байта при сложении;
Nf=1, флаг отрицательного результата определяется по старшему знаковому разряду результата;
Zf=0, полученный результат отличен от нуля;
Сf=0, нет основного переноса за границы байта при сложении;
Vf=1, V = CCI=01=1 – переполение;
Sf=0, S = NV=11=0, полученный результат положительный, но произошло переполнение разрядной сетки МК.