Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASSEMBLER / Пособие51GB / 3.описание особенностей GB.doc
Скачиваний:
116
Добавлен:
16.04.2015
Размер:
750.08 Кб
Скачать

3.4 Узел ацп Функциональная схема ацп

АЦП микроконтроллеров 8XC51GB имеет 8 аналоговых входов (выводы АСН0-АСН7), вход внешнего запуска TRIGIN, выводы питания и земли аналоговой части (AVref и AVss), развязанные с цифровой частью, а также вывод опорного напряжения сравнения COMPREF.

Внутренние цепи АЦП содержат 8-канальный мультиплексор, 256-элементную резисторную линейку, компаратор, устройство выборки/хранения, регистр последовательного приближения, 8 регистров результата, регистр результата сравнения.

Регистры результатов преобразований АЦП

АЦП имеет 10 регистров, адресуемых в пространстве SFR. Регистры AD0-AD7 содержат результаты преобразований по каждому из 8-ми каналов. Причём значение каждого регистра обновляется по завершению преобразования, начиная с регистра AD0. Физические адреса регистров AD0-AD7: 84h, 94h, 0A4h, 0В4п, 0C4h, 0D4h, 0E4h, 0F4h.

Регистр результатов сравнения АЦП - АСМР

Данный регистр (физический адрес - 0C7h) содержит 8 флагов, отражающих результат сравнения значения аналоговых входов АСН0-АСН7 со входом COMPREF. Если входное напряжение аналогового входа больше нежели COMPREF, то соответствующий флаг регистра АСМР устанавливается в "1". В случае, когда напряжение аналогового входа меньше, чем COMPREF, устанавливается логический "0".

Регистр результата сравнения асмр

MSB LSB

СМР0

СМР1

СМР2

СМРЗ

СМР4

СМР5

СМР6

СМР7

Бит

Поз.

Функция присвоения приоритета прерывания

СМР0

АСМР.7

Флаг сравнения. Канал 0. АСМР=1,если UACH0 > UCOMPREF

СМР1

АСМР.6

Флаг сравнения. Канал 1. АСМР=1,если UACH1 > UCOMPREF

СМР2

АСМР.5

Флаг сравнения. Канал 2. АСМР=1,если UACH2 > UCOMPREF

СМРЗ

АСМР.4

Флаг сравнения. Канал 3. АСМР=1,если UACH3 > UCOMPREF

СМР4

АСМР.З

Флаг сравнения. Канал 4. АСМР=1,если UACH4 > UCOMPREF

СМР5

АСМР.2

Флаг сравнения. Канал 5. АСМР=1,если UACH5 > UCOMPREF

СМР6

АСМР.1

Флаг сравнения. Канал 6. АСМР=1,если UACH6 > UCOMPREF

СМР7

АСМР.0

Флаг сравнения. Канал 7. АСМР=1,если UACH7 > UCOMPREF

Регистр управления АЦП - АСОN

Регистр ACON (физический адрес 097h), содержит флаг прерывания AIF, бит разрешения преобразования АСЕ, два бита выбора канала ACS1 и ACS0, биты режима входа AIM и режима запуска АТМ.

Регистр управления ацп acon

MSB LSB

-

-

AIF

АСЕ

ACS1

ACS0

AIM

АТМ

Бит

Поз.

Функция присвоения приоритета прерывания

-

ACON.7

Зарезервирован для дальнейшего использования

-

ACON.6

Зарезервирован для дальнейшего использования

AIF

ACON.5

Флаг прерывания. Устанавливается в "1" по окончании преобразования в 7-м канале. Будет вызывать прерывание в случае разрешения прерывания от данного источника

АСЕ

ACON.4

Бит разрешения преобразования. При установке в "0" - прекращаются все преобразования

ACS1

ACON.3

Бит 1 выбора канала

ACS0

ACON.2

Бит 0 выбора канала

AIM

ACON.1

Бит режима входа АЦП:

0-режим сканирования

1-режим выбора канала

АТМ

ACON.0

Бит режима запуска АЦП:

0-режим внутреннего запуска

1-режим внешнего запуска

ACS1

ACS0

Выбранный канал

0

0

Канал АСН0

0

1

Канал АСН1

1

0

Канал АСН2

1

1

Канал АСНЗ

Режим сравнения АЦП

Этот режим всегда активен и используется для сравнения напряжений на входах АСН0-АСН7 с опорным напряжением, подаваемым на вход COMPREF микросхемы. Всякий раз при запуске аналогово-цифрового преобразования, состояние каждого бита регистра АСМР устанавливается в новое состояние, начиная с канала 0, независимо от типа установленного режима опроса каналов. Режим позволяет быстро осуществить сравнение типа "больше-меньше" двух аналоговых сигналов аппаратным методом, что заметно упрощает и уменьшает объём требуемого программного кода. В случае если режим не используется, то на вход COMPREF может подаваться напряжение от Vss до Vcc.

Режим запуска АЦП

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

Для установки режима внутреннего запуска бит AТМ регистра управления ACON должен находиться в состоянии логического “0”. В этом режиме преобразование начинается с нулевого канала, в машинном цикле следующем затем, в котором был установлен бит АСЕ. Флаг прерывания AIF устанавливается после завершения преобразования на 7-м канале. Данный флаг вызывает прерывание по вектору АЦП в случае, если оно разрешено. Новый цикл преобразования может начинаться только после того, как завершён предыдущий. При раздельном преобразовании по каждому из каналов - флаг АСЕ должен быть установлен в "0", что прекращает все преобразования. Начало нового цикла преобразования перезаписывает все значения старых.

В режиме внешнего запуска преобразование начинается по отрицательному уровню на входе TRIGIN. На этом входе отсутствует схема определения перепада уровня и состояние входа определяется путём опроса каждый машинный цикл. То есть, на входе TRIGIN должен установиться высокий уровень длительностью не менее 1-го машинного цикла, и вслед за ним - низкий с не меньшей продолжительностью. После запуска цикла состояние входного триггера игнорируется и преобразование осуществляется так же, как и в режиме внутреннего запуска. После завершения преобразования на 7-м канале цикл завершается и АЦП переходит в состояние останова до нового импульса на входе TRIGIN или установки бита АСЕ.

Режим входа АЦП

Микросхема имеет 2 режима входа АЦП - сканирования (Scan Mode) и выбранного канала (Select Mode). Очистка бита AIM переводит АЦП в режим сканирования. При этом преобразование происходит в порядке: АСН0,АСН1...АСН7. Результат преобразования помещается соответственно в регистры AD0,AD1...AD7.

Установка бита AIM в "1" переводит АЦП в режим выбранного канала. Здесь происходят последовательные 4 преобразования на одном из первых 4-х каналов АСН0-АСН3, конкретный номер которого определяется установкой битов ACS0/ACS1 регистра ACON. Результаты помещаются в первые 4 регистра результата AD0-AD3. После завершения этих преобразований АЦП производит опрос каналов АСН4-АСН7, как и в режиме сканирования. Результаты заносятся в регистры AD4-AD7.

Использование АЦП для меньшего количества каналов

Имеется несколько вариантов использования АЦП для количества каналов, меньшего, чем исходные 8. В простейшем случае, если время преобразования не критично, то можно просто ожидать прихода прерывания по завершению преобразования на 7-м канале и считывать результат только из необходимых каналов. Если пользовательская программа должна получить результат преобразования сразу после его завершения на конкретном канале, то можно, исходя из известного времени каждого преобразования, произвести отсчёт нужного интервала (от начала цикла до чтения значения АЦП), используя таймер и его прерывание. Второй способ ускорения получения результата - периодическое сравнение значения в регистре результата заданного канала с предыдущим значением. Изменение содержимого этого регистра укажет на то, что произошло новое преобразование. Однако использование режима выбранного канала не уменьшает время, требуемое для завершения цикла преобразований, а лишь увеличивает частоту преобразований конкретного канала.

Ниже приведён фрагмент программы, осуществляющей одноканальное аналогово-цифровое преобразование. Поскольку, как уже говорилось выше, АЦП микросхемы не имеет средств для определения готовности по каждому из каналов, поэтому он определяется по истечению известного времени, требуемого для завершения операции. Необходимый временной интервал отмеряется с помощью таймера/счётчика РСА. При частоте тактирования микросхемы - 12МГц, время преобразования по 1-му каналу будет составлять 26мкс. По прошествии этого интервала генерируется прерывание по переполнению таймера/счётчика РСА, обработчик которого останавливает АЦП, РСА и передаёт управление процедуре чтения и обработки полученного значения.

Обработчик прерывания от РСА:

ORG 0033h

ANL

ACON,#11101111b

;остановка АЦП

CLR

CR

;остановка таймера РСА

JMP

Service_A2D

;переход к обработке знач. AD0

; Процедура запуска измерения

Timer_0_Init:

SETB

EA

;разрешить все прерывания

MOV

CMOD,#1

;генерация прерывания от таймера

;РСА

SETB

EC

разрешение прерывания от РСА

MOV

CH,#0FFh

;устаиовка временного интервала

MOV

CL,#0E0h

SETB

CR

;запуск таймера РСА

ORL

ACON,#00010000b

;запуск A/D

RET

АЦП в режиме микропотребления.

В состав АЦП микросхемы входит цепь, ограничивающая энергопотребление этого узла во время режима микропотребления до значения тока утечки. Для полноценного функционирования этой цепи на вывод AVREF микросхемы подаётся уровень VCC. В течение режима микропотребления, при соблюдении этого условия, напряжение питания кристалла может быть уменьшено до минимального значения.

Соседние файлы в папке Пособие51GB