- •Введение
- •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
- •Контрольные вопросы
- •Литература
Регистр X, регистр y и регистр z
Шесть регистров (с R26 по R31) регистрового файла, кроме обычной для прочих регистров функций, выполняют функцию 16-разрядных регистров указателей адреса при косвенной адресации SRAM. Эти три регистра косвенной адресации определяются как регистры X,Y и Z.
Рис. 6. Формат регистров X, Y и Z
В различных режимах адресации эти регистры выполняют функции фиксированного смещения, автоматического инкремента и декремента (см. описания команд).
Регистры ввода-вывода и спецфункций
Регистры ввода-вывода можно разделить на 2 группы – служебные регистры МК и регистры, относящиеся к конкретным периферийным устройствам.
К регистрам ввода-вывода можно напрямую обратиться двумя способами:
– как к пространству ввода-вывода (команды IN, OUT), в этом случае используются регистры, ввода-вывода, относящиеся к пространству ввода-вывода (адреса $00-$3F)
– как к регистрам (команды LDI, MOV,..), в этом случае адреса регистров необходимо увеличить на $20 (в таблице 1 указан в скобках), так как в начальной области памяти данных располагается 32 регистра общего назначения (3210=2016).
Таблица 1. Пространство I/O микроконтроллера ATmega8515
Адрес I/O (адрес SRAM) |
Обозначение |
Функция |
$3F ($5F) |
SREG |
Регистр статуса (Status REGister) |
$3E ($5E) |
SPH |
Верхний байт указателя стека (Stack Pointer High) |
$3D ($5D) |
SPL |
Нижний байт указателя стека (Stack Pointer Low) |
$3C ($5C) |
|
Не используется |
$3B $5B) |
GICR |
Общий регистр управления прерываниями |
$3A ($5A) |
GIFR |
Общий регистр флагов прерываний |
$39 ($59) |
TIMSK |
Регистр масок прерываний по таймерам/счетчикам (Timer/Interrupt MaSK register) |
$38 ($58) |
TIFR |
Регистр флагов прерывания по таймерам/счетчикам (Timer/ Counter Interrupt Flag register) |
$37 ($57) |
SPMCR |
Регистр управления памятью программ |
$36 ($56) |
EMCUCR |
Дополнительный регистр управления МК |
$35 ($55) |
MCUCR |
Регистр управления МК |
$34 ($54) |
MCUCSR |
Регистр управления и состояния МК |
$33 ($53) |
TCCR0 |
Регистр управления таймером/счетчиком 0 (Timer/Counter0 Control Register) |
$32 ($52) |
TCNT0 |
Таймер/счетчик0 (Timer/Counter0 (8-bit)) |
$31 ($51) |
OCR0 |
Регистр сравнения выхода таймера/счетчика 0 (Timer/Counter0 Output Compare Register) |
$30 ($50) |
SFIOR |
Регистр специальных функций |
$2F ($4F) |
TCCR1A |
Управляющий регистр A таймера/счетчика 1 (Timer/Counter1 Control Register A) |
$2E ($4E) |
TCCR1B |
Управляющий регистр B таймера/счетчика 1 (Timer/Counter1 Control Register A) |
$2D ($4D) |
TCNT1H |
Старший байт таймера/счетчика 1 (Timer/Counter1 High Byte) |
$2C ($4C) |
TCNT1L |
Младший байт таймера/счетчика 1 (Timer/Counter1 Low Byte) |
$2B ($4B) |
OCR1AH |
Старший байт регистра A сравнения выхода таймера/счетчика 1 (Timer/Counter1 Output Compare Register A High Byte) |
$2A ($4A) |
OCR1AL |
Младший байт регистра A сравнения выхода таймера/ счетчика 1 (Timer/Counter1 Output Compare Register A Low Byte) |
$29 ($49) |
OCR1BH |
Старший байт регистра B сравнения выхода таймера/счетчика 1 (Timer/Counter1 Output Compare Register B High Byte) |
$28 ($48) |
OCR1BL |
Младший байт регистра B сравнения выхода таймера/счетчика 1 (Timer/Counter1 Output Compare Register B Low Byte) |
$27 ($47) |
|
Не используется |
$26 ($46) |
|
Не используется |
$25 ($45) |
ICR1H |
Старший байт регистра захвата таймера/счетчика 1 (Timer/Counter1 Input Capture Register High Byte) |
$24 ($44) |
ICR1L |
Младший байт регистра захвата таймера/счетчика 1 (Timer/Counter1 Input Capture Register Low Byte) |
$21 ($41) |
WDTCR |
Регистр управления сторожевым таймером (Watchdog Timer Control Register) |
$20 ($40) |
UBRRH, UCSRC |
Регистр скорости передачи данных USART (мл.байт), Регистр управления и состояния USART |
$1F ($3F) |
EEARH |
Старший байт регистра адреса EEPROM (EEPROM Address Register High) |
$1E ($3E) |
EEARL |
Младший байт регистра адреса EEPROM (EERPOM Address Register Low) |
$1D ($3D) |
EEDR |
Регистр данных EEPROM (EEPROM Data Register) |
$1C ($3C) |
EECR |
Регистр управления EEPROM (EEPROM Control Register) |
$1B ($3B) |
PORTA |
Регистр данных порта A (Data Register, Port A) |
$1A ($3A) |
DDRA |
Регистр направления данных порта A (Data Direction Register, Port A) |
$19 ($39) |
PINA |
Выводы входов порта A (Input Pins, Port A) |
$18 ($38) |
PORTB |
Регистр данных порта B (Data Register, Port B) |
$17 ($37) |
DDRB |
Регистр направления данных порта B (Data Direction Register, Port B) |
$16 ($36) |
PINB |
Выводы входов порта B (Input Pins, Port B) |
$15 ($35) |
PORTC |
Регистр данных порта C (Data Register, Port C) |
$12 ($32) |
PORTD |
Регистр данных порта D (Data Register, Port D) |
$11 ($31) |
DDRD |
Регистр направления данных порта D (Data Direction Register, Port D) |
$10 ($30) |
PIND |
Выводы входов порта D (Input Pins, Port D) |
$0F ($2F) |
SPDR |
Регистр данных SPI I/O (SPI I/O Data Register) |
$0E ($2E) |
SPSR |
Регистр статуса SPI (SPI Status Register) |
$0D ($2D) |
SPCR |
Регистр управления SPI (SPI Control Register) |
$0C ($2C) |
UDR |
Регистр данных USART I/O (UART I/O Data Register) |
$0B ($2B) |
USRA |
Регистр статуса USART (USART Status Register) |
$0A ($2A) |
UCRB |
Регистр управления USART (USART Control Register) |
$09 ($29) |
UBRRL |
Регистр управления скоростью USART (USART Baud Rate Register) |
$08 ($28) |
ACSR |
Регистр статуса и управления аналогового компаратора (Analog Comparator Control and Status Register) |
$07 ($27) |
PORTE |
Регистр данных порта E (Data Register, Port E) |
$06 ($26) |
DDRE |
Регистр направления данных порта E (Data Direction Register, Port E) |
$05 ($25) |
PINE |
Выводы входов порта E (Input Pins, Port E) |
$04 ($24) |
OSCCAL |
Регистр калибровки тактового генератора |
$03 ($23) |
|
Не используется |
$02 ($22) |
|
Не используется |
$01 ($21) |
|
Не используется |
$00 ($20) |
|
Не используется |