- •Практическая работа № 13
- •Оглавление
- •1. Цель и содержание работы
- •2. Архитектура микроконтроллера at90s2313
- •2.1. Регистры общего назначения
- •2.2. Арифметико-логическое устройство
- •2.3. Загружаемая память программ
- •2.4. Eeprom память данных
- •2.5. Статическое озу данных
- •2.6. Время выполнения команд
- •2.7. Пространство ввода/вывода
- •Пространство ввода/вывода at90s2313
- •2.8. Регистр состояния – sreg
- •2.9. Ук а з ат е л ь стека spl
- •2.10. Регистр управления микроконтроллером - mcucr
- •2.11. Режимы пониженного энергопотребления
- •2.12. Таймеры/счетчики
- •2.12.1. Регистр управления t/c 0 - tccr0
- •Выбор коэффициента предварительного деления
- •2.12.2. Таймер/счетчик 0 - tcnt0
- •2.12.3. Регистр a управления т/с 1 – tccr1a
- •Ус т а н о в к а режима совпадения
- •Установка режима работы шим
- •2.12.6. Регистр совпадения a т/с1 – ocr1ah и ocr1al
- •2.12.7. Регистр захвата т/с 1 – icr1h и icr1l
- •2.12.8. Т/с 1 в режиме шим
- •Конечное значение таймера и частота шим
- •Ус т а н о в к а режима совпадения при работе шим
- •2.12.9. Регистр управления сторожевым таймером - wdtcr
- •3. Запуск среды раз ра б о т к и avrstudio
- •4. Компиляция и компоновка
- •5. Тестирование и отладка
- •6. Задание для самостоятельной работы
- •7. Лабораторные задания
- •8. Содержание отчета
- •9. Контрольные вопросы
- •Система команд at90s2313
- •I/o регистры
2.8. Регистр состояния – sreg
Бит 7 – I: Общее разрешение прерываний. Для разрешения прерываний этот бит должен быть установлен в единицу. Управление отдельными преры-ваниями производится регистрами маски прерываний -GIMSK и TIMSK. Если флаг сброшен (0), независимо от состояния GIMSK/TIMSK прерывания за-прещены. Бит I очищается аппаратно после входа в прерывание и восстанавли-вается командой RETI, для разрешения обработки последующих прерываний.
Бит 6 – T: Хранение копируемого бита. Команды копирования битов BLD (Bit LoaD) и BST (Bit STore) используют этот бит как источник и при-емник обрабатываемого бита. Бит из регистра регистрового файла может
быть скопирован в T командой BST, бит T может быть скопирован в бит ре-гистрового файла командой BLD.
Бит 5 – H: Флаг половинного переноса. Этот флаг индицирует пере-нос из младшей половины байта при некоторых арифметических операциях.
Бит 4 – S: бит знака, S = N XOR V. Бит S всегда равен исключающе-му ИЛИ между флагами N (отрицательный результат) и V (переполнение дополнения до двух).
Бит 3 – V: Флаг переполнения дополнения до двух. Этот флаг под-держивает арифметику с дополнением до двух.
Бит 2 – N: Флаг отрицательного результата. Этот флаг индицирует от-рицательный результат различных арифметических и логических операций.
Бит 1 – Z: Флаг нулевого результата. Этот флаг индицирует нулевой результат различных арифметических и логических операций.
Бит 0 – C: Флаг переноса. Этот флаг индицирует перенос в арифме-тических и логических операциях.
Более подробно об этом можно прочитать в описании системы команд.
2.9. Ук а з ат е л ь стека spl
Указ ат е л ь стека указывает на область памяти, в которой расположен стек вызова подпрограмм и прерываний. Область стека в ОЗУ должна быть задана до того, как произойдет любой вызов подпрограммы или будут раз-решены прерывания. Ука з ат е л ь стека уменьшается на 1 при записи данных в стек командой PUSH и уменьшается на 2 при вызове подпрограммы ко-мандой CALL или обработке прерывания. Указатель стека увеличивается на 1 при выборе данных из стека командой POP и увеличивается на 2 при выполнении команд возврата из подпрограммы или обработчика прерыва-ния (RET или RETI).
2.10. Регистр управления микроконтроллером - mcucr
Этот регистр содержит биты общего управления микроконтроллером.
Биты 7,6 – зарезервированы и всегда читаются как 0.
Бит 5 – SE: Разрешение режима Sleep: Этот бит должен быть установ-лен в 1, чтобы при выполнении команды SLEEP процессор переходил в ре-жим пониженного энергопотребления. Этот бит должен быть установлен в 1 до исполнения команды SLEEP.
Бит 4 – SM: Режим Sleep: Этот бит выбирает один из двух режимов пониженного энергопотребления. Если бит сброшен (0), в качестве режима Sleep выбирается холостой режим (Idle mode). Если бит установлен, – выби-рается экономичный режим (Power down). Особенности каждого из режимов будут рассмотрены далее.
Биты 3,2 – ISC11, ISC10: биты управления срабатыванием прерывания 1: Внешнее прерывание активируется выводом INT1, если установлен флаг (I) регистра состояния SREG и установлена соответствующая маска в регистре GIMSK. Срабатывание по уровню и фронтам задается следующим образом:
Примечание. При изменении битов ISC11/ISC10 прерывание INT1 должно быть за-прещено очисткой соответствующего бита в регистре GIMSK. Иначе прерывание мо-жет возникнуть во время изменения битов.
Примечание. При изменении битов ISC01 и ISC00, прерывания по входу INT0 должны быть запрещены сбросом бита разрешения прерывания в регистре GIMSK. Иначе пре-рывание может произойти при изменении значения битов.
Биты 1,0 – ISC01, ISC00: биты управления срабатыванием прерыва-ния 0. Внешнее прерывание активируется выводом INT0, если установлен
флаг (I) регистра состояния SREG и установлена соответствующая маска в регистре GIMSK. В таблице 3 приведена установка битов для задания срабатывания по уровню и фронтам.
