AVR микроконтроллер AT90S2333 фирмы Atmel

МнемоникаОперандыОписаниеДействиеФлагиЦклАрифметические командыADDRd, RrСложить два регистраRd<Rd+RrZ,C,N,V,H1ADCRd, Rr Сложить с переносомRd<Rd+Rr+C Z,C,N,V,H1ADIWRdl,K Сложить слово с константойRdh,l<Rdh,l+K Z,C,N,V,S2SUBRd,

AVR микроконтроллер AT90S2333 фирмы Atmel

Методическое пособие

Радиоэлектроника

Другие методички по предмету

Радиоэлектроника

Сдать работу со 100% гаранией
ний включаемых статическими событиями (напр. совпадение значения счетчика/таймера 1 с регистром совпадения) флаг прерывания взводится при возникновении события. Если флаг прерывания очищен и присутствует условие возникновения прерывания, флаг не будет установлен, пока не произойдет следующее событие.

 

 

 

 

 

 

 

РЕГИСТР УПРАВЛЕНИЯ МИКРОКОНТРОЛЛЕРОМ MCUCR

 

Этот регистр содержит биты общего управления микроконтроллером.

 

MCUCR

 

35h(55h)76543210--SESMISC11ISC10ISC01ISC00RRR\WR\WR\WR\WR\WR\WНачальное значение00000000

 

Биты 7,6 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.

 

Бит 5 - SE: Разрешение режима Sleep: Этот бит должен быть установлен в 1, чтобы при выполнении команды SLEEP процессор переходил в режим пониженного энергопотребления. Для устранения нежелательного перехода в режим пониженного энергопотребления рекомендуется устанавливать этот бит непосредственно перед выполнением команды SLEEP.

 

Бит 4 - SM: Режим Sleep: Этот бит выбирает один из двух режимов пониженного энергопотребления. Если бит сброшен (0), в качестве режима Sleep выбирается холостой режим (Idle mode). Если бит установлен, - выбирается экономичный режим (Power down). Особенности каждого из режимов будут рассмотрены ниже.

 

Биты 3,2 - ISC11, ISC10: биты управления срабатыванием прерывания 1: Внешнее прерывание активируется выводом INT1 если установлен флаг I регистра состояния SREG и установлена соответствующая маска в регистре GIMSK. Срабатывание по уровню и фронтам задается следующим образом:

 

Биты 1,0 - ISC01, ISC00: биты управления срабатыванием прерывания 0: Внешнее прерывание активируется выводом INT0 если установлен флаг I регистра состояния SREG и установлена соответствующая маска в регистре

GIMSK. В таблице 6 приведена установка битов для задания срабатывания по уровню и фронтам.

 

Таблица 5. Управление срабатыванием прерывания 1.

 

ISC11ISC10Описание00Запрос на прерывание генерируется по низкому уровню напряжения на входе INT101Запрос по изменению уровня на входе INT110Запрос на прерывание по спадающему фронту на входе INT111Запрос на прерывание по нарастающ. фронту на входе INT1

ПРИМЕЧАНИЕ: При изменении битов ISC11/ISC10 прерывание INT1 должно быть запрещено очисткой соответствующего бита в регистре GIMSK. Иначе прерывание может возникнуть во время изменения битов.

 

Таблица 6. Управление срабатыванием прерывания 0.

 

ISC01ISC0Описание00Запрос на прерывание генерируется по низкому уровню напряжения на входе INT001Запрос по изменению уровня на входе INT010Запрос на прерывание по спадающему фронту на входе INT011Запрос на прерывание по нарастающ. фронту на входе INT0

ПРИМЕЧАНИЕ: При изменении битов ISC01 и ISC00, прерывания по входу INT0 должны быть запрещены сбросом бита разрешения прерывания в регистре GIMSK. Иначе прерывание может произойти при изменении значения битов.

 

 

 

РЕЖИМЫ ПОНИЖЕННОГО ЭНЕРГОПОТРЕБЛЕНИЯ.

 

Для запуска режима пониженного энергопотребления должен быть установлен (1) бит SE регистра MCUCR, и должна быть исполнена команда SLEEP. Если во время нахождения в режиме пониженного потребления происходит одно из разрешенных прерываний, процессор начинает работать, исполняет подпрограмму обработки прерывания и продолжает выполнение программы с команды следующей за SLEEP. Содержимое регистрового файла и памяти ввода/вывода не изменяется. Если в режиме пониженного потребления происходит сброс, процессор начинает выполнение программы с вектора сброса.

Если для вывода из экономичного режима используется прерывание по уровню, низкий уровень должен удерживаться дольше времени отработки сброса. Иначе процессор не начнет работу.

Режим холостого хода.

Когда бит SM сброшен (0), команда SLEEP переводит процессор в режим холостого хода (Idle mode). ЦПУ останавливается, но Таймеры/Счетчики, сторожевой таймер и система прерываний продолжают работать. Это позволяет процессору возобновлять работу как от внешних прерываний, так и по переполнению таймеров/счетчиков или по сбросу от сторожевого таймера. Если прерывание от аналогового компаратора не требуется, аналоговый компаратор может быть отключен установкой бита ACD регистра ACSR. Это уменьшает потребляемую мощность в режиме холостого хода. При выходе из режима холостого хода процессор запускается без задержки.

Экономичный режим.

Когда бит SM установлен (1), команда SLEEP переводит процессор в экономичный режим (Power Down Mode). В этом режиме останавливается внешний генератор тактовых импульсов. Пользователь может разрешить работу сторожевого таймера в этом режиме. Если сторожевой таймер разрешен, процессор выходит из экономичного режима после отработки периода сторожевого таймера. Если сторожевой таймер запрещен, выход из экономичного режима может произойти только по внешнему сбросу, brown-out

сбросу или внешнему прерыванию по уровню.

Если для вывода из экономичного режима используется прерывание по уровню, низкий уровень должен удерживаться на время достаточное для запуска процессора. Это увеличивает устойчивость процессора к помехам. Изменение уровня дважды проверятся с периодом генератора сторожевого таймера, если обе выборки сигнала имеют необходимый уровень, процессор включается. Номинальный период сторожевого таймера 1uS при 5В питания и температуре 25 градусов Цельсия.

При выходе из экономичного режима, от времени появления условия выхода до включения процессора проходит некоторое время необходимое для запуска кварцевого генератора. Задержка включения определяется теми же битами CKSEL, что и время сброса. Длительность задержки на включение приведена в таблице 7.

Если условие включения исчезнет до того, как процессор запустится, например, низкий уровень на входе прерывания продержится недостаточно долго, процессор не выйдет из экономичного режима.

 

 

 

 

Таблица 7. Установка задержки включения

 

CKSEL [2:0]Время запуска0006CK0016CK01016K CK01116K CK10016K CK1011K CK1101K CK1111K CK

 

 

 

 

 

 

 

ТАЙМЕРЫ/СЧЕТЧИКИ

 

В AT90S2333/4433 предусмотрены два таймера/счетчика общего назначения. 8-разрядный и 16-разрядный. Каждый из таймеров индивидуально подключается к одному из выходов 10-разрядного предварительного делителя частоты. Оба таймера могут использоваться как таймеры с внутренним источником импульсов или счетчики импульсов поступающих извне. В качестве источника импульсов для таймеров можно выбрать сигнал с тактовой частотой процессора (CK), импульсы предварительного делителя (CK/8, CK/64, CK/256 или CK/1024) или импульсы с соответствующего внешнего вывода. Кроме того, таймеры могут быть остановлены, запретом прохождения импульсов на них.

 

8-РАЗРЯДНЫЙ ТАЙМЕР/СЧЕТЧИК 0

 

8-разрядный таймер/счетчик может получать импульсы тактовой частоты - CK, импульсы с предварительного делителя (CK/8, CK/64, CK/256 или CK/1024), импульсы с внешнего вывода или быть остановлен соответствующими установками регистра TCCR0. Флаг переполнения таймера находится в регистре TIFR. Биты управления таймером расположены в регистре TCCR0. Разрешение и запрещение прерываний от таймера управляется регистром TIMSK.

При работе таймера/счетчика от внешнего сигнала, внешний сигнал синхронизируется с тактовым генератором ЦПУ. Для правильной обработки внешнего сигнала, минимальное время между соседними импульсами должно превышать период тактовой частоты процессора. Сигнал внешнего источника обрабатывается по спадающему фронту тактовой частоты процессора.

8-разрядный таймер/счетчик можно использовать как счетчик с высоким разрешением, так и для точных применений с низким коэффициентом деления тактовой частоты. Более высокие коэффициенты деления можно использовать для медленных функций или измерения временных интервалов между редкими событиями.

 

 

РЕГИСТР УПРАВЛЕНИЯ ТАЙМЕРОМ/СЧЕТЧИКОМ 0 - TCCR0

 

TCCR0

 

33h(53h)76543210-----CS02CS01CS00RRRRRR\WR\WR\WНачальное значение00000000

Биты 7..3 - зарезервированы. В AT90S2333/4433 эти биты зарезервированы и всегда читаются как 0.

 

Биты 2,1,0 - CS02, CS01, CS00 - выбор тактовой частоты. Эти биты задают коэффициент деления предварительного делителя.

Таблица 8. Выбор коэффициента предварительного деления

 

CS02CS01CS00Описание000Таймер/счетчик остановлен001CK010CK/8011CK/64100CK/256101CK/1024110Внешний вывод T0, нарастающий фронт111Внешний вывод T0, спадающий фронт

Условие Stop запрещает/разрешает функционирование таймера/счетчика. В режимах деления используется частота тактового генератора. При использовании работы от внешнего источника предварительно должен быть установлен соответствующий бит регистра направления данных (0 - включает ножку на ввод).

 

 

 

ТАЙМЕР/СЧЕТЧИК 0 - TCNT0.

 

TCNT0

 

32h(52h)76543210MSBLSBR\WR\WR\WR\WR\WR\WR\WR\WНачальное значение00000000

Таймер/счетчик реализован как нара

Похожие работы

<< < 1 2 3 4 5 6 7 8 9 > >>