Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AVR.doc
Скачиваний:
17
Добавлен:
26.04.2019
Размер:
2.79 Mб
Скачать

Регистр статуса – sreg

Регистр статуса – SREG – размещен в пространстве I/O по адресу $3F ($5F) и его биты определяются как:

Таблица 2. Формат регистра флагов микроконтроллера ATmega8515

Биты

7

6

5

4

3

2

1

0

3

I

T

H

S

V

N

Z

C

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 = NV – Бит знака. Бит S всегда находится в состоянии, определяемом логическим «исключающим ИЛИ» (exclusive OR) между флагом отрицательного значения N и флага переполнения V.

Bit 3 – V: Two’s Complement Overflow Flag – Дополнение до двух флага переполнения. V = CCI. 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 = CCI=01=1 – переполение;

Sf=0, S = NV=11=0, полученный результат положительный, но произошло переполнение разрядной сетки МК.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]