Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль 3.docx
Скачиваний:
128
Добавлен:
04.06.2015
Размер:
2.43 Mб
Скачать

13.Регистр слова состояния программы (psw). Битовый процессор мк-51. Режимы работ таймеров-счетчиков мк-51 (0, 1, 2, 3). Регистр слова состояния программы (psw).

| C | AC | F0 | RS1 | RS0 | OV | -- | P |

С-флаг переноса

АС-флаг доп переноса устанавливается в случае переноса (заема) из 3го разряда в 4ый (из 4го в 3ий)

F0-флаг пользователя

RS1, RS0 задают активный банк регистров

OV-флаг переполнения, устанавливается в случае знакового переполнения,

- если результат умножения >255,

- если выполнено деление на «0».

Р- флаг дополнения до четности.

При выпол многих команд в АЛУ формируется ряд признаков операции, которые фиксир в регистре PSW.

RS1

RS0

Банк

Границы адресов

0

0

0

00Н-07 Н

0

1

1

08H-0FH

1

0

2

10Н-17Н

1

1

3

18H-1FH

Наиболее "активным" флагом PSW является флаг переноса, который принимает участие и модифицируется в процессе выполнения множества операций, включая сложение, вычитание и сдвиги. Кроме того, флаг переноса (С) выполняет функции "булевого аккумулятора" в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком и делает возможным использование арифметики в дополнительных кодах. АЛУ не управляет флагами селекции банка регистров (RS0, RS1), и их значение полностью определяется прикладной программой и используется для выбора одного из четырех регистровых банков.

Таблица 3.2. Формат слова состояния программы (PSW)

Символ

Позиция

Имя и назначение

С

PSW.7

Флаг переноса. Устанавливается и сбрасывается аппаратурными средствами или программой при выполнении арифметических и логических операций

АС

PSW.6

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

F0

PSW.5

Флаг 0. Может быть установлен, сброшен или проверен программой как флаг, специфицируемый пользователем

RS1

RSW.4

Выбор банка регистров. Устанавливается и сбрасывается

RS0

PSW.3

программой для выбора рабочего банка регистров (см. Примечание)

OV

PSW.2

Флаг переполнения. Устанавливается и сбрасывается аппаратно при выполнении арифметических операций

.

PSW.1

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

Р

PSW.0

Флаг паритета. Устанавливается и сбрасывается аппаратно в каждом цикле команды и фиксирует нечетное/четное число единичных бит в аккумуляторе, т.е. выполняет контроль по четности

Режимы работ таймеров-счетчиков МК-51

Таймеры-счетчики предназначены для подсчета числа событий. В режиме таймера таким событием является машинный цикл, в режиме счетчика – изменение сигнала на внешнем входе.

Блок таймеров-счетчиков относится к периферийным устройствам, работает параллельно с процессором. Используется для реализации времязадающих функций и фиксации времени событий.

Состав блока:

1) Два 16ти разрядных счетных регистра

  • Регистр режимов – TMOD

  • Регистр управления – TCON

2) Схема инкремента

3) Схема фиксации внешних сигналов на входах /INT0, /INT1, T0, T1

4) 16ти разрядные счетные регистры (TCNT0 и TCNT1) состоят из пары 8ми разрядных

TL0, TH0 – для нулевого таймера-счетчика

TL1, TH1 – для первого таймера-счетчика

обращение к 16ти разрядному регистру возможно только при обращении к отдельному байту.

Таймеры-счетчики считают только на увеличение. При каждом событ содерж таймера-счетчика увелич на 1.

Регистры TL0, TL1, TH0, TH1 доступны по чтению и записи.

При переполнении нулевого таймера-счетчика устанавливается флаг TF0, при переполнении 1го – TF1. Эти флаги формируют запрос на прерывание. Эти флаги доступны как для чтения так и для записи.

Регистр TMOD:

М0.0, М0.1 – определяет один из четырех возможных режимов работы: 0й - 00, 1й - 01, 2й - 10, 3й – 11.

С/(инверсное Т) – определяет как работает устройство

Если С/(инверсное Т) = 1, то как счетчик

Если С/(инверсное Т) = 0, то как таймер

GATE – бит разрешения внешнего управления. Если бит установлен, то таймер/счетчик разрешен до тех пор, пока на входе "INTx" высокий уровень и бит управления "TRx" установлен. Если бит сброшен, то TCNT разрешается, как только бит управления "TRx" устанавливается (TMOD не допускает битовой адресации)

Регистр TCON: (Допускает битовую адресацию) Регистр относится не только к таймерам-счетчикам, но и к внешним прерываниям.

IT – определяет тип внешнего прерывания. Устанав/сбрасывается программно для спецификации запроса

если IT = 1, то прерывание происходит по заднему фронту сигнала на входе /INTx

если IT = 0, то по уровню (низкому)

IE – флаг запроса внешних прерываний. Устанавливается аппаратно, когда детектируется срез внешнего сигнала INTx. Сбрасывается при обслуживании прерывания

TF – флаги переполнения

TR0, TR1 – биты разрешения счета

Если бит = 1, то таймер-счетчик запущен

Если бит = 0, то остановлен, т.е. находится в режиме хранения.

Режимы работы таймеров счетчиков.

В 0м, 1м и 2м режимах таймеры-счетчики работают одинаково и не зависимо друг от друга.

Режим 0: Таймер-счетчик представляет собой 13ти разрядное счетное устройство. Используется 8 разрядов старшего байта и 5 младшего.

При внутреннем управлении (GATE0 = 0) счет начинается при установке бита TR0. При внешнем управлении (GATE0 = 1) таймер-счетчик запущен, когда и TR0 = 0 и сигнал на входе /INT0 = 1.

Режим 1: Аналогичен реж 0, отличается только тем, что используются все 16 разрядов счетного регистра.

Режим 2: Для счета используется 8 разрядов регистра TL, при его переполнении устанавливается TF и происходит аппаратная загрузка в TL содержимого TH.

Этот режим используется для формирования временных интервалов меньше 256 машинных циклов.

(в ТН, рис2, или в счетчик, рис1, загружается число машинных циклов, которое не нужно, но в рис2 – аппаратно, а в рис1 – программно, следовательно в рис2 – четкий не колеблющийся интервал времени)

Режим 3: Перевод T/С1 в 3й режим останавливает его, т.е. Т/С1 просто хранит свое состояние. Т/С0 в 3ем режиме представляет 2 независимых 8ми разрядных счетных устройства на основе TH0 и TL0.

Устройство на основе TL0 может работать как таймер и как счетчик, при переполнении устанавливается TF0. Сохраняется вся схема управления от Т/С0.

Устройство на основе TH0 работает только как таймер. Для его включения используется бит TR1, при переполнении устанавливается флаг TF1.

Если Т/С0 работает в режиме 3, а Т/С1 в 0м, 1м или 2м режиме, то при GATE1 = 0 Т/С1 всегда включен, при переполнении установка флага TF1 не происходит (т.к. TF1, в этом случае, относится к другому режиму). Т/С1 аппаратно связан с блоком синхронизации последовательного интерфейса, при его переполнении вырабатывается импульс тактирования. Режим 3 для Т/С0 необходим когда требуется работа последовательного интерфейса и двух счетных устройств.

При работе Т/С в режиме счетчика инкрементирование происходит по спаду сигнала на внешнем счетном коде.

Режим 3 используется в тех случаях применения МК51, когда требуется наличие дополнительного 8-битного таймера или счетчика событий. Можно считать, что в режиме 3 МК51 имеет в своем составе три таймера/счетчика. В том случае, если TCNT0 используется в режиме 3, TCNT1 может быть или включен, или выключен, или переведен в свой собственный режим 3, или может быть использован последовательным портом в качестве генератора частоты передачи, или, наконец, может быть использован в любом применении, не требующем прерывания.