- •Микроконтроллеры
- •Базовая информация о микроконтроллерах
- •Сущность и назначение микроконтроллера. Семейства микроконтроллеров
- •Состав микроконтроллера
- •Назначение микроконтроллера
- •Cемейства микроконтроллеров
- •Отправная точка. Микроконтроллерi8051
- •Основные характеристики микроконтроллераi8051
- •Назначение выводовi8051
- •Структурная схемаi8051
- •Микроконтроллеры семействаavrкомпанииatmel
- •Общая характеристика архитектуры, системы команд и ассемблераAvr
- •Состав семейства и основные характеристики микроконтроллеровAvr
- •Структура ассемблерного кодаAvr
- •Группы команд микроконтроллеров avr
- •Директивы ассемблераAvr
- •Список директив ассемблераAvr
- •Директива byte
- •Директива cseg
- •Директива db
- •Директива def
- •Директива device
- •Директива dseg
- •Директива dw
- •Директивы macro иEndmacro
- •Директива equ
- •Директива set
- •Микроконтроллер atmega8535
- •Характеристики, назначение выводов и структура микроконтроллера aTmega8535
- •Характеристики микроконтроллера aTmega8535
- •Назначение выводов микроконтроллера aTmega8535
- •Структура микроконтроллера aTmega8535
- •Сброс микроконтроллера aTmega8535. Режимы пониженного энергопотребления. Сигналы запроса внешних прерываний. Регистры управления
- •Сброс микроконтроллера aTmega8535
- •Регистр mcucsr (mcu Control and Status Register)
- •Регистр mcucr (mcu Control Register)
- •Режимы пониженного энергопотребления
- •Форма сигналов запроса внешних прерываний
- •Регистры общего назначения, регистр состояния и указатель стека микроконтроллера aTmega8535
- •Регистры общего назначения
- •Регистр состояния (sreg)
- •Указатель стека
- •Ввод-вывод
- •Регистры и команды ввода-вывода
- •Порты ввода-вывода
- •Прерывания
- •Источники и таблица векторов прерываний
- •Регистр gicr (General Interrupt Control Register)
- •Внешние прерывания
- •Регистр gifr (General Interrupt Flag Register)
- •Таймеры микроконтроллера aTmega8535
- •Общая информация о таймерах микроконтроллера aTmega8535
- •Множество таймеров aTmega8535
- •Регистр timsk (Timer/Counter Interrupt Mask Register)
- •Регистр tifr (Timer/Counter Interrupt Flag Register)
- •Примеры программ работы с таймером
- •Таймер t0
- •Назначение и свойства таймера t0
- •Структура таймера t0
- •Регистры таймера t0
- •Регистр tccr0 (Timer/Counter Control Register)
- •Устройство сравнения таймера t0
- •Режимы работы таймера t0
- •Режим Normal
- •Режим ctc
- •Режим быстрой шим (fastPwMmode)
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode)
- •Таймер t1
- •Назначение и свойства таймера t1
- •Структура таймера t1
- •Регистры таймера t1
- •Регистр tccr1a (Timer/Counter1 Control Register a)
- •Регистр tccr1b (Timer/Counter1 Control Register b)
- •Задание режима генерации сигнала битами wgm13:0
- •Устройство захвата (Input Capture Unit)
- •Режимы работы таймера t1
- •Список режимов работы таймера t1
- •Режим быстрой шим (fast pwm mode) таймера t1
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode) таймера t1
- •Режим шим с корректировкой фазы и частоты (Phase and Frequency Correct pwm Mode) таймера t1
- •Таймер t2
- •Назначение и свойства таймера t2
- •Структура таймера t2
- •Регистры таймера t2
- •Регистр tccr2 (Timer/Counter Control Register)
- •Устройство сравнения таймера t2
- •Режимы работы таймера t2
- •Режим Normal
- •Режим ctc
- •Режим быстрой шим (fast pwm mode)
- •Режим шим с корректировкой фазы (Phase Correct pwm Mode)
- •Асинхронный режим работы таймера t2. Регистр assr (Asynchronous Status Register)
Директива set
Директива SET присваивает имени некоторое значение. Это имя позднее может быть использовано в выражениях. В отличие от директивы EQU значение имени может быть изменено другой директивой SET.
Пример.
.set io_offset = 0x23
.set porta = io_offset + 2
.cseg
clr r2 ;очистить регистр r2
out porta, r2 ;записать r2 в порт А
Микроконтроллер atmega8535
Характеристики, назначение выводов и структура микроконтроллера aTmega8535
Характеристики микроконтроллера aTmega8535
Рассмотрим архитектуру микроконтроллеров AVR на примере ATmega8535. Как видно из его названия, он относится к линии Mega AVR.
Характеристики ATmega8535 таковы:
тактовая частота до 16 МГц (до 8 МГц у ATmega8535L);
разрядность 8 бит;
RISC-архитектура:
130 команд, большинство из которых выполняется за один такт;
32 8-разрядных регистра общего назначения;
производительность до 16 MIPS на частоте 16 MHz;
аппаратный двухтактный перемножитель;
память:
Flash-память 8 Кбайт с возможностью перепрограммирования до 10000 циклов стирания-записи;
загрузочная секция с независимыми блокировочными битами (опционально);
EEPROM 512 байт с возможностью перепрограммирования до 100000 циклов стирания-записи;
SRAM 512 байт;
ввод-вывод:
32 линии ввода-вывода;
двухпроводный последовательный интерфейс;
программируемый универсальный синхронно-асинхронный приемо-передатчик (USART);
интерфейс SPI;
два 8-разрядных таймера-счетчика;
один 16-разрядный таймер-счетчик;
программируемый сторожевой таймер (Programmable Watchdog Timer, PWT);
счетчик реального времени (Real Time Counter, RTC);
4 канала ШИМ (широтно-импульсная модуляция, Pulse Width Modulation, PWM);
8-канальный 10-битный АЦП (аналого-цифровой преобразователь, Analog to Digital Converter, ADC);
аналоговый компаратор (Analog Comparator);
специальные характеристики:
внутренний калиброванный RC-контур;
внешние и внутренние источники прерываний;
6 режимов пониженного энергопотребления: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, Extended Standby.
Назначение выводов микроконтроллера aTmega8535
ATmega8535 выпускается в различных корпусах. Один из них — PDIP-40 (рис.).
Рис. Расположение выводов ATmega8535 в корпусе PDIP-40
Назначение выводов микроконтроллера ATmega8535:
PA0-PA7 — порт A;
PB0-PB7 — порт B;
PC0-PC7 — порт C;
PD0-PD7 — порт D;
RESET# — сброс;
VCC — напряжение питания 4.5-5.5 В (2.7-5.5 В для ATmega8535L);
GND — общий провод;
XTAL1, XTAL2 — подключение кварцевого резонатора;
AVCC — напряжение питания для порта A и АЦП, должен быть подключен к VCC, причем через фильтр нижних частот в случае, если АЦП используется;
AREF — внешний источник опорного напряжения для АЦП;
XCK (USART External Clock Input/Output) — вход внешних тактовых импульсов интерфейса USART;
T0, T1 (Timer/Counter External Counter Input) — входы таймеров T0, T1;
INT0, INT1, INT2 — входы внешних прерываний;
AIN0, AIN1 (Analog Comparator Negative Input) — входы аналогового компаратора;
OC0, OC1A, OC1B, OC2 (Timer/Counter Output Compare Match Output) — выходы таймеров T0, T1, T2;
SS# (SPI Slave Select Input) — сетевой режим по интерфейсу SPI;
MOSI (SPI Bus Master Output/ Slave Input), MISO (SPI Bus Master Input/ Slave Output) — вход-выход данных интерфейса SPI;
SCK (SPI Bus Serial Clock) — вход тактовых импульсов интерфейса SPI в режиме Slave, выход — в режиме Master;
RXD (Receive Data), TXD (Transmit Data) — вход и выход данных интерфейса USART — когда передатчик USART разрешен, TXD становится его выходом вне зависимости от значения DDRD1, а RXD — входом вне зависимости от значения DDRD0;
ICP1 (Timer/Counter1 Input Capture Pin) — вход захвата таймера T1;
SDA (Two-wire Serial Interface Data) и SDL (Two-wire Serial Interface Clock) — линии последовательной передачи данных и тактовых импульсов по шине I2C — если бит TWEN в регистре TWCR установлен, что разрешает интерфейс I2C, то выводы PC1 и PC0 отсоединяются от порта и становятся линиями передачи данных и тактовых импульсов интерфейса I2C;
TOSC1, TOSC2 — выводы подключения часового резонатора 32768 Гц;
ADC0-ADC7 — каналы АЦП.
Таким образом, тридцать две линии ввода-вывода распределены по четырем двунаправленным 8-битным портам, которые имеют также альтернативные функции. Все линии ввода-вывода могут находиться в трех состояниях: нуля, единицы и высокоомном.