Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kharakhnin / ПОСОБИЕ_Харахнин.doc
Скачиваний:
278
Добавлен:
08.03.2016
Размер:
17.89 Mб
Скачать

1.4. Регистр состояния программы psw

Этот регистр предназначен для хранения информации о состоянии результата при выполнении текущей команды прикладной программы. Обозначение битов регистра PSW представлено в табл. 2.

Таблица 2

Биты

7

6

5

4

3

2

1

0

Обозначение

CY

AC

F0

RS1

RS0

OV

-

Р

CY – флаг переноса, устанавливается и сбрасывается как аппаратными, так и программными средствами. Флаг устанавливается в единичное состояние, если в результате выполнения операции наступает переполнение байта или осуществляется заем. При выполнении операций умножения и деления флаг CY сбрасывается.

АС – флаг дополнительного переноса. Устанавливается или сбрасывается во время выполнения инструкций сложения или вычитания для указания переноса или заема в третьем бите при образовании младшего полубайта результата (D0-D3).

F0 – флаг пользователя, может быть использован программистом по его усмотрению.

RS1, RS0 – указатели банков рабочих регистров (табл. 3).

Таблица 3

RS1

RS0

Банк регистров

0

0

0

0

1

1

1

0

2

1

1

3

OV – флаг переполнения, устанавливается аппаратно, если результат операции сложения или вычитания не укладывается в семи битах и старший восьмой бит результата не может быть интерпретирован как знаковый. При выполнении операции деления флаг OV аппаратно сбрасывается, а в случае деления на 0 устанавливается. При операции умножения флаг OV аппаратно устанавливается, если результат больше 255.

Р – флаг четности. В девятиразрядном слове, состоящем из 8 разрядов аккумулятора и бита Р, всегда содержится четное число единиц. В случае, если А = 00Н, то Р = 0. Программно флаг доступен только по чтению.

1.5. Таймеры/счетчики, регистры tmod и tcon

Таймеры/счетчики (Т/С) предназначены для подсчета числа внешних событий, для получения программно - управляемых временных задержек и времязадающих функций МК. В состав блока Т/С входят:

  • два шестнадцатиразрядных регистра T/C0 и T/C1;

  • восьмиразрядный регистр для настройки режима Т/С –TMOD;

  • восьмиразрядный регистр управления T/CTCON;

  • схема инкремента;

  • схема фиксации сигналов на входах INT0, INT1, T0, T1;

  • схема управления флагами;

  • логика управления таймерами счетчиками.

Рассмотрим все вышеперечисленные устройства. Регистры Т/С выполняют функции хранения содержимого счета. Каждый из регистров состоит из пары восьмиразрядных регистров, которые обозначаются соответственно TH0,TL0 и TH1,TL1 (ТН0 и ТН1 – старшие, а TL0,TL1 – младшие байты). Регистры таймеров/счетчиков могут быть использованы как обычные регистры для хранения переменных, при этом биты управления запуском должны быть сброшены в 0. Код величины начального счета заносится в регистры Т/С программно. В процессе счета содержимое регистров инкрементируется. Признаком окончания счета является переполнение регистров, в результате происходит переход содержимого из состояния FFFFH в 0000H. Все регистры таймеров/счетчиков доступны по чтению.

Регистр режимов Т/С – TMOD предназначен для приема и хранения кода настраивающего:

  • один из четырех возможных режимов работы каждого Т/С;

  • режим работы таймером или счетчиком;

  • управление Т/С от сигналов на входах INT0 и INT1.

Рассмотрим обозначение и назначение разрядов TMOD, представленных в табл. 4.

Таблица 4

Биты

7

6

5

4

3

2

1

0

Обозначение

GATE1

C/T1

M1.1

M0.1

GATE0

C/T0

M1.0

M0.0

M1.1, M0.1, M1.0, M0.0 – биты определяют один из четырех режимов работы отдельно для таймеров/счетчиков Т/С1 и Т/С0 соответственно (табл. 5).

Таблица 5

М1

М0

Режим работы

0

0

0

0

1

1

1

0

2

1

1

3

С/Т1 и С/Т0 - биты, определяющие работу в качестве таймера или счетчика. С/Т1, С/Т0 = 0 – работа в качества таймера, С/Т1, С/Т0 = 1 – работа в качестве счетчика.

GATE1, GATE0 – биты разрешают или запрещают управлять Т/С от сигналов на внешних входах INT0, INT1 (INT0 для Т/С0, INT1 для Т/С1). GATE = 0 – управление запрещено, GATE = 1 – управление разрешено.

При работе в качестве таймера содержимое регистра T/C инкрементируется в каждом машинном цикле. Таким образом, Т/С является счетчиком машинных циклов, частота счета равна fBQ /12.

При работе Т/С в качестве счетчика внешних событий содержимое регистра инкрементируется при переходе внешнего сигнала ( на входе Т0 для Т/С0, на входе Т1 для Т/С1) из состояния “1” в состояние “0”. Максимальная частота счета внешних импульсов в режиме счетчика составляет fBQ/24.

Рассмотрим обозначение и назначение битов регистра TCON, представленных в табл. 6.

Таблица 6

Биты

7

6

5

4

3

2

1

0

Обозначение

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TF1, TF0 – флаги переполнения таймеров/счетчиков Т/С1 и Т/С0 соответственно. Они устанавливаются аппаратно при переходе содержимого регистров из состояния FFFFH в 0000Н. Если разрешено прерывание, то установка флага TF=1 вызовет прерывание в работе процессора. Флаги TF0 и TF1 сбрасываются аппаратно при передаче управления подпрограмме обработки соответствующего прерывания. TF0 и TF1 программно - доступны и установкой их в “1” можно вызвать прерывание либо отменить его в программе.

IE1, IE0 – флаги прерывания от сигналов на входах INT1 и INT0 соответственно. Они устанавливаются аппаратно или программно, вызывая подпрограммы обработки прерывания. Сброс флагов выполняется аппаратно при обслуживании прерывания, если оно было вызвано по фронту входного сигнала. Если же прерывание было вызвано уровнем входного сигнала-запроса, то сброс соответствующего флага должна выполнять подпрограмма обслуживания прерывания.

TR1 и TR0 - биты включения/выключения таймеров/счетчиков. При TR = 0 T/C выключен, при TR =1 T/C включен.

IT1, IT0 – биты, определяющие вид прерывания по входам INT0 и INT1. Если IT = 0 - прерывание по низкому уровню, IT = 1 – прерывание по фронту ( переход из “1” в “0” ).

Схема инкремента предназначена:

  • для увеличения на 1 содержимого регистров таймеров/счетчиков, для которых установлен режим таймера и счет разрешен;

  • для увеличения на 1 содержимого регистров таймеров/счетчиков, для которых установлен режим счетчика, счет разрешен и на входах T0 и Т1 зафиксирован счетный импульс.

Схема фиксации INT0, INT1, T0, T1 – представляет собой 4 триггера, в них запоминается информация с выводов INT0, INT1, T0, T1.

Схема управления флагами вырабатывает и снимает флаги переполнения T/C и флаги запросов внешних прерываний.

Логика управления синхронизирует работу регистров T/C0 и T/C1 в соответствии с запрограммированными режимами работы и блока T/C с работой МК.