Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Параллельные порты.




Порты Р0-Р3 предназначены для ввода или вывода байтовой информации и обеспечивают обмен с внешними устройствами: памятью программ и данных, контроллерами различного назначения, периферийными устройствами.

Каждый из портов состоит из 8-разрядного регистра -защелки (РЗ), выходного драйвера транзистора Т1, входных цепей и схемы Д1 с открытым коллектором. Схемотехника портов несколько отличается, так как они выполняют разные функции. Однако в упрощенном варианте её можно рассмотреть на примере рис.

При чтении со входа порта Рх.Y данные через конъюнктор Д1 передаются на внутреннюю шину данных (ВШД), которая организована как "монтажное ИЛИ". Если в РЗ записана 1, то данные со входа порта без искажения передаются в приемник. Если РЗ=0, то в соответствующий разряд приемника будет записан 0 в независимости от значения сигнала.

При записи информации в порт, данные записываются в РЗ и выводятся через Т1 на выход порта.

 

 

Обращение к портам возможно только по прямому адресу. Все разряды порта находятся в битовом пространстве. Порты однонаправленные. Каждый бит порта может быть настроен как на ввод, так и на вывод. По сбросу все порты устанавливаются на ввод.

Для чтения данных из порта или регистра защелки используются различные команды.

Чтение РЗ осуществляется командами «чтение-модификация-запись», при выполнении которых команда считывает состояние РЗ, при необходимости модифицирует полученное значение и записывает результат обратно в РЗ:

ORL Px,A - Px - приемник

XRL Px, A

ANL Px,A

INC Px

DEC Px

DJNZ Px,rel

Для чтения отдельных битов используются команды:

JBC Px.y, SETB Px.y

CPL Px.y, MOV Px.y,C

Во всех случаях, когда операндом и регистром назначения является порт или бит порта, команды считывают информацию с выходов РЗ, а не с внешних контактов выводов порта.

Чтение с внешних выводов порта может быть выполнено командами:

MOV (A, @Ri, Rn, ad), Px

ADD A, Px

Чтение информации с выходов РЗ, а не с внешних контактов позволяет исключить в ряде случаев неправильную интерпретацию уровня напряжения на выводе порта. Например, при соединении вывода порта с базой n-p-n транзистора и подаче лог. 1, транзистор открывается и чтение состояния внешнего вывода покажет лог.0, так как на контакте порта присутствует напряжение база-эммитер транзистора (0,7В). Чтение же РЗ подтвердит подачу лог. 1.

Запись данных в порт осуществляется обычным способом: MOV Px,(A,Rn,@R0,#d).

Порты Р0, Р1, Р2, Р3 в зависимости от особенности применения могут реализовать разные функции. При работе с внешней памятью порт Р0 является системным портом, через который в режиме с разделением времени передаются младший байт адреса и данные. Появление младшего байта адреса сопровождается сигналом ALE, по которому он должен быть зафиксирован во внешнем регистре.

Признаком работы Р0 в системном режиме является использование команд MOVX, MOVC.

При работе в качестве системного порта согласование (специальное) с нагрузкой не требуется. Если Р0 используется как порт общего назначения, то к выходу порта должен быть присоединен внешний подтягивающий резистор от источника питания +5В. Р1-Р3 имеют встроенную нагрузку.

Порт Р2 служит для вывода старшего байта адреса при работе в системном режиме. Особенностью порта Р2 является возможность мультиплексирования на выход содержимого РЗ или старшего байта адреса. При работе в режиме адресной шины содержимое РЗ сохраняется и поступает на выводы порта в тех машинных циклах, когда нет обращения к внешней памяти. При обращении к внешней памяти на выход порта выводится информация из регистра адреса DPTR или из программного счетчика РС по командам MOVC и MOVX.Исключение составляют команды MOVX A,@Ri, и MOVX @Ri,A, при которых на выходе находится содержимое регистра-защелки.

Нагрузочная способность Р0 - два входа ТТЛ, у остальных - один.

Р1 - порт общего назначения и особенностей не имеет.

Р3 - при записи в Р3 “1” выполняет системные функции

               
RD WR T1 T0 INT1 INT0 TxD RxD

Рис.3.5. Альтернетивные функции порта 3: RD - чтение внешней памяти данных; WR- запись во внешнюю память данных; Т1,Т0 - входы таймера/счетчика; INT0, INT1 - входы запросов прерываний; TxD- выход передатчика последовательного порта; RxD - вход приемника последовательного порта.

. Если в бит порта Р3 записан “0”, то на выходе порта фиксируется “0”.

При использовании порта Р3 необходимо учитывать функциональные особенности каждого входа: T1, T0, INT1, INT0 – входные линии, RD,WR,- выходные линии, сигналы на которых формируются только при выполнении команд MOVX, и так далее. Если не используются внешние прерывания и/или счетчики, то назначение этих линий определяет пользователь.

Наиболее оптимально применение ВЕ51 в том случае, если отсутствуют устройства, для которых требуются внешние шины данных и адреса, так как в этом случае можно использовать произвольно порты Р0-Р2.

Счетчик/Таймер

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

В состав ОМК входят два 16 разрядных суммирующих СТ. Счетчик состоит из регистров счетчика TL (младший байт), TH (старший байт), логики управления входными сигналами и триггера переполнения TF. Бит TF устанавливается при переходе счетчика из состояния все “1” во все “0”. Бит TF располагается в битовом пространстве и доступен по прямому адресу. Обращение к TLi, THi производится раздельно по прямым адресам.

Управление работой счетчика выполняется с помощью регистра режима работы TMOD и регистра управления - статуса TCON.

 

 

Рис.3.6. Формат регистра режима таймера/счетчика TMOD: GATE1, GATE0 - управление блокировкой (при GATEi=1 работа счетчика/таймера разрешается, если INT=1 и TRi=1 (см. рис.3.7.); если GATEi=0, то работа счетчика зависит только от состояния TRi; i=1,0); С/Т1, С/Т0 - выбор режима работы (при С/Т=1 - работа в режиме счетчика от внешних сигналов на входе Ti; при С/Т=0 - работа в режиме таймера от внутреннего источника сигналов синхронизации); М1, М0 - задание основных режимов работы(см. таблицу).

В режиме таймера счетчик работает от внутреннего генератора с частотой OSC/12.

При работе в режиме счетчика содержимое T/C инкрементируется под воздействием перехода из 1 в 0 внешнего сигнала, подаваемого на соответствующие входы Т0, Т1 порта Р3. Инкремент выполняется после анализа состояния “0” или ”1” на входе Тi, поэтому накладываются определенные ограничения на параметры преобразуемого сигнала: уровень 0 и 1 должен продолжаться не менее OSC/12. Максимальная преобразуемая внешняя частота - OSC / 24.

Способ запуска СТ устанавливается битом GATE:

если GATE =1, то реализуется аппаратный запуск, при котором разрешение счета подается на вход INTi порта Р3 (уровень 1). Предварительно должен быть установлен бит запуска счетчика TRi в регистре TCON.

При программном запуске GATE =0, начало счета задается установкой бита TRi =1.


 

Рис.3.7. Формат регистра управления / статуса TCON: TFi - флаги переполнения таймера, устанавливается аппаратно при переполнении счетчика/таймера, сбрасывается программно или аппаратно при обслуживании прерывания; TRi - биты управления таймером, устанавливается/сбрасывается программно для пуска/останова; ITi - биты управления видом сигнала запроса прерывания, при IТi=1 прoграммируется прерывание по срезу импульса запроса, при ITi=0 – по низкому уровню; IEi - флаги запроса прерывания. Устанавливаются аппаратно от внешних запросов на входах INTi. Cбрасываются программно или аппаратно, если прерывание вызвано срезом импульса запроса.

i= 0,1


Рис.3.8. Принцип работы счетчика/таймера в режимах “0, 1, 2”:

TL, TH - соответственно младший и старший байты счетчика;

OSC/12 - выходная частота внутреннего генератора ОМК.

Режим работы каждого СТ определяется значением битов М0, М1 в регистре ТМОD. Счетчики могут быть настроены на один из 4 режимов. Режимы 0,1,2, одинаковы для обоих счетчиков и в этих режимах они полностью независимы. Работа ТС0 и ТС1 в режиме 3 различна. Режим 3 рационально использовать только для СТ0. При этом установка СТ0 в режим 3 влияет на режим работы СТ1.

Режим 0: режим 13-ти разрядного счетчика, состоящего из TНi и 5 младших разрядов TLi

Режим 1: 16-ти разрядный счетчик, состоящий из THi и TLi.

Режим 2: В этом режиме СТ представляет собой 8-разрядный счетчик TLi. При каждом переполнении TLi кроме установки флага TFi происходит автоматическая загрузка содержимого THi в TLi.Требуемый коэффициент деления должен записываться одновременно в THi и TLi. В отличие от режимов 0 и 1 после установки флага переполнения коэффициент деления переписывается автоматически.

Режим 3: В этом режиме счетчик 0 функционирует как 2 независимых счетчика, а счетчик 1 заблокирован и просто сохраняет свой код (выполняет функции регистра). При этом можно настроить счетчик 1 на другие режимы.

Режим 3 используется,если необходимо увеличить число действующих счетчиков до 3-х.

При работе в этом режиме ТС0 разделяется на два 8-ми разрядных счетчика, сформированных на базе регистров ТН0,ТL0. Счетчик ТН0 управляется битом ТR1 и формирует сигнал переполнения ТF1. Счетчик ТН0 может работать только в режиме таймера.

Установка ТС0 в режим 3 лишает ТС1 бита включения TR1. Поэтому ТС1 в режимах 0, 1, 2 при GATE=0 всегда включен и при переполнении в режимах 0 и 1 ТС1 обнуляется, а в режиме 2 перезагружается, не устанавливая флага, если ТС0 находится в режиме 3.

ТС1 аппаратно связан с блоком синхронизации последовательного порта. Поэтому в режимах 0,1,2 при переполнении ТС1 всегда вырабатывает импульс синхронизации последовательного порта.

Если ТС0 работает в режим 3, то ТС1 может быть настроен на режим 0,1 или 2, но при этом необходимо учитывать, что в процессе работы не формируется бит переполнения,а режим разрешения счета постоянно включен.

Для настройки счетчика на требуемый режим необходимо:

задать требуемый коэффициент пересчета в регистры ТНi, ТLi,

задать режим работы в слове TMOD,

при программном вводе-выводе замаскировать соответствующие прерывания от счетчика, а при использовании прерывания- их разрешить

установить бит разрешения ТRi в слове TCON.

На базе СТ можно организовать преобразователи частоты, временного интервала, периода в код, генераторы и формирователи сигналов.

Однако необходимо учитывать, что TFi аппаратно недоступен, поэтому выходные сигналы следует формировать на выходах параллельных портов.

 

ЗАДАЧА:

Измерить временной интервал 0-1 с с погрешностью +/- 1 мкс. Результат записать в РПД. Измеряемый импульс –положительный. Частота кварца ОМК –12МГц.

Преобразование выполняется в программном режиме.

В качестве счетчика выбираем СТ0, работающий в режиме 1. Измеряемый интервал подается на вход INT0..В соответствии с требованиями по точности максимальный результат измерения должен быть 1000000, а в СТ0 может быть записано число 65535. Поэтому на базе регистра R2 организуем счетчик переполнений. Результат преобразования должен быть размещен в свободной зоне РПД. Базовый адрес результата хранится в регистре R0. Регистры принадлежат нулевому банку.

Режимное слово в (TMOD)=09h.

 

mov SP, #addr

п/п измерения: сохранение регистров

clr IE.7; запрет прерывания

mov R0, #addr.res

clr A;Обнуление

mov R2, A R2,

mov TH0, A; TH0,

mov TL0, A; TL0

mov TMOD, #9h; Запись слова режима

setb TCON.4; установка TR0, разрешение работы счетчика

M1: jnb P3.2, M1;Анализ входного импульса

M4: jb P3.2, M2 M3;

clr TCON.4;

mov @R0, R2;Запись результата

inc R0

mov @R0, TH0

inc R0

mov @R0,TL0

восстановление регистров

ret

M2: jbc TCON.5(TF0); Проверка TF0 и его сброс

sjmp M4

M3: inc R2; Подсчет переполнений C/T0

sjmp M4

 

При измерении частоты методом среднего возможны два варианта формирования эталонного временного интервала Тэт. Аппаратная реализация предполагает подачу измеряемой частоты на вход Ti, а Тэт – на INTi

При программной реализации Тэт формируется на одном из счетчиков, работающем в режиме таймера; второй счетчик подсчитывает число внешних импульсов. Начало работы второго счетчика задается битом TRi первого счетчика, а конец счета - битом TF первого счетчика.

Особенностью формирования выходных частотно-временных сигналов является отсутствие электрического выхода СТ. Поэтому сигналы формируются на свободных выходах портов Р0 – Р2 в момент установки TRi и TFi.

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных