Таблица 2.6

Биты

Наименование

Назначение

7

EA

Бит управления всеми источниками прерываний одновременно.

EA=0 - прерывания запрещены,

EA=1 - прерывания могут быть разрешены индивидуальными разрешениями EX0, EX1, ET0, ET1, ES.

6

-

Не используется.

5

-

Не используется.

4

ES

Бит управления прерыванием от последовательного порта.

ES=0 - прерывание запрещено,

ES=1 - прерывание разрешено.

3

ET1

Бит управления прерыванием от T/C1.

ET1=0 - прерывание запрещено,

ET1=1 - прерывание разрешено.

2

EX1

Бит управления прерыванием от внешнего источника .

EX1=0 - прерывание запрещено,

EX1=1 - прерывание разрешено.

1

ET0

Бит управления прерыванием от T/C0.

ET0=0 - прерывание запрещено,

ET0=1 - прерывание разрешено.

0

EX0

Бит управления прерыванием от внешнего источника .

EX0=0 - прерывание запрещено,

EX0=1 - прерывание разрешено.

Программа обработки прерывания с низким уровнем приоритета может быть прервана запросом прерывания с высоким уровнем приоритета, но не может быть прервана другим запросом прерывания с низким уровнем приоритета. Программа обработки прерывания с высоким уровнем приоритета не может быть прервана никаким другим запросом прерывания ни от одного из источников. Если два запроса с разными уровнями приоритета приняты одновременно, сначала будет обслужен запрос с высоким уровнем приоритета. Если одновременно приняты запросы с одинаковым уровнем приоритета, обработка их будет производится в порядке, задаваемом последовательностью внутреннего опроса флагов прерываний. Таким образом, в пределах одного приоритетного уровня существует еще одна структура приоритетов:

НЕ нашли? Не то? Что вы ищете?

Источник

Приоритет внутри уровня

IE0

высокий

TF0

IE1

TF1

RI, TI

низкий

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

Таблица 2.7

Биты

Наименование

Назначение

7

-

Не используется.

6

-

Не используется.

5

-

Не используется.

4

PS

Бит установки уровня приоритета прерывания от последовательного порта.

3

PT1

Бит установки уровня приоритета прерывания от таймера/счетчика T/C1.

2

PX1

Бит установки уровня приоритета прерывания от внешнего источника .

1

PT0

Бит установки уровня приоритета прерывания от таймера/счетчика T/C0.

0

PX0

Бит установки уровня приоритета прерывания от внешнего источника .

Регистр PSW (Program Status Word). Наименование и назначение разрядов регистра PSW приведены в табл.2.8.

Аккумулятор A представляет собой 8-разрядный регистр, который является источником операнда и местом фиксации результата при выполнении арифметических, логических операций и ряда операций передачи данных. Кроме того, только с использованием аккумулятора могут быть выполнены операции сдвигов, проверки на нуль, формирование флага паритета и т. п.

Регистр B - 8-разрядный регистр, используемый в сочетании с аккумулятором при выполнении операций умножения и деления для хранения второго входного операнда и помещения возвращаемых 8-ми битов результата. В других операциях регистр B является обычным регистром общего назначения.

Таблица 2.8

Биты

Наименование

Назначение

7

C

Флаг переноса. Устанавливается в "1" (сбрасывается в "0") аппаратно или программно. Аппаратно устанавливается (сбрасывается) во время выполнения команды сложения или вычитания при наличии (отсутствии) соответственно переноса или заема в 7-ом бите результата. Во время выполнения команды умножения или деления флаг всегда аппаратно сбрасывается.

6

AC

Флаг дополнительного переноса. Устанавливается (сбрасывается) аппаратно или программно. Аппаратно устанавливается (сбрасывается) во время выполнения команды сложения или вычитания при наличии (отсутствии) соответственно переноса или заема в 3-ем бите результата.

5

F0

Программно управляемый флаг пользователя.

4

3

RS1

RS0

Разряды управления выбором банка рабочих регистров. Устанавливаются (сбрасываются) программно.

RS1

RS0

Банк

0

0

0

0

1

1

1

0

2

1

1

3

2

OV

Флаг переполнения. Устанавливается (сбрасывается) аппаратно или программно. Аппаратно устанавливается во время выполнения команды сложения (вычитания) если есть перенос (заем) в 6-ом бите результата и нет переноса (заема) в бите 7, или есть перенос (заем) в бите 7 и нет в бите 6, в противном случае флаг сбрасывается. Во время выполнения команды деления флаг аппаратно сбрасывается, а в случае деления на нуль - устанавливается. При умножении флаг аппаратно устанавливается если результат больше 255, в противном случае - сбрасывается.

1

без имени

Флаг пользователя. Устанавливается (сбрасывается) программно. Доступен по чтению.

0

P

Флаг паритета. Программно доступен только по чтению. Аппаратно сбрасывается (устанавливается) в каждом машинном цикле для индикации четности (нечетности) количества разрядов аккумулятора, находящихся в состоянии "1". Если в аккумуляторе все разряды сброшены в "0", флаг аппаратно сбрасывается.

2.2. Ассемблерный язык микроконтроллера 8051

Для эффективной разработки прикладного программного обеспечения микропроцессоров и микроконтроллеров необходимо выбрать подходящий язык программирования. Если требуется не очень сложная и при этом быстрая и компактная программа, которая не содержит сложных вычислительных операций, то для ее написания лучше выбрать язык низкого уровня (язык ассемблера). Язык высокого уровня (ЯВУ) следует выбрать в том случае, если необходимо производить сложные вычисления: операции над 16-, 32-разрядными числами, числами с плавающей точкой и др. Очень часто наиболее подходящей является смешанная модель, где критичные к быстродействию части программы написаны на ассемблере, а вычислительные процедуры реализованы на ЯВУ, например, на Си.

Изучение языков программирования целесообразнее всего начинать с ассемблера, поскольку он дает наглядное представление о функционировании аппаратной части целевого микропроцессора (микропроцессора для которого разрабатывается прикладная программа), что в конечном счете обеспечивает получение оптимальных схемотехнических решений разрабатываемой микропроцессорной техники. Язык ассемблера относится к группе машинно-ориентированных языков. Иначе говоря, каждому типу микропроцессоров или микроконтроллеров соответствует свой ассемблерный язык.

Оператором языка ассемблера микроконтроллера 8051 (языка АСМ51) является строка исходного текста микроконтроллерной программы (МК-программы), имеющая следующий формат:

<метка>

< команда/ директива >

;<комментарий>

<операция> <операнды>

Поле <команда/ директива> является главным полем строки и состоит из поля <операция> и поля <операнды>, разделенных пробелом.

Поле <операция> содержит мнемоническое обозначение команды или директивы ассемблера, которое является сокращением (аббревиатурой) полного английского наименования выполняемого действия. Например: MOV - move - переслать, JMP - jump - перейти, DB - define byte - определить байт. Кроме того, поле <операция> может содержать символическое имя ассемблерной макрокоманды.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22