Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПСМПС (лаб)

.pdf
Скачиваний:
20
Добавлен:
10.06.2015
Размер:
1.42 Mб
Скачать

141

start_counter_Hight equ 65535-100 start_counter_Low equ 65535-50 workline EQU P2.1

CSEG AT 0 USING 0

; векторная таблица

ORG 0

ljmp InitSys

ORG 0BH ljmp Timer0 ORG 100h

RSEG main

; обработчик вектора инициализации

InitSys:

;очистка битов порта P2 и установка линии 1 в "1" mov P2, #0

setb workline

;при инициализации все биты TMOD сброшены

; поэтому устанавливаем TMOD.0 = 1, т.е. M1(T/C0)=0,

;M0(T/C0)=1

;и получаем 16-битный таймер счетчик T/C0 (второй режим)

;для установки и сброса битов регистра TMOD нельзя

;применять битовые операции

;т.к. он не доступен для битового процессора MCS-51

mov TMOD, #00000001b

;загружаем 16-ное значение 7FFFh в DPTR mov DPTR, #start_counter_Hight

;и раскидываем половинки по счетным регистрам mov TL0, DPL

mov TH0, DPH

;разрешаем прерывания от таймера T/C0

setb ET0

;общее разрешение прерываний setb EA

;запуск таймера T/C0

setb TR0

142

;область фоновых задач sjmp $

;обработчик вектора прерывания от таймера T/C0 Timer0:

;на время обработка останавливаем таймер

;и запрещаем прерывания

clr TR0 clr EA

;сохраняем в стеке необходимые данные

;связанные, как правило, с фоновыми задачами push PSW

push ACC push DPL push DPH

;прием бита в флаг четности

mov C, workline

;инверсия флага cpl C

;вывод в линию инверсного значения mov P2.1, C

;"заряжаем" счетчик заново jc HighLevel

mov DPTR, #start_counter_Low mov TL0, DPL

mov TH0, DPH ljmp EndJc

HighLevel:

mov DPTR, #start_counter_Hight mov TL0, DPL

mov TH0, DPH EndJc:

;возвращаем из стека сохраненные данные pop DPH

pop DPL pop ACC

143

pop PSW

; разрешаем прерывания и запускаем заново счетчик setb EA

setb TR0 reti

RSEG stack DS 10h

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

3.3.Задания

1.Изучите теоретический материал раздела 2.

2.Разработайте программу подсчета числа импульсов внешнего сигнала с использованием таймера/счетчика. Для симуляции импульсного сигнала используйте механизм отладочных сигнальных функций.

4.Контрольные вопросы

1.Какая основная задача решается с помощью системы прерываний микроконтроллера?

2.Перечислите источники прерываний и соответствующие им вектора прерываний?

3.В чем сходство и различие между вызовом процедуры и возбуждением прерывания?

1.Каким образом можно с помощью таймера/счетчика измерять длительности импульсных сигналов?

2.Какие дополнительные возможности отладчика-симулятора обеспечивает использование отладочных функций среды µVision2?

3.Какие виды отладочных функций определены в среде µVision2?

4.В чем состоит особенность исполнения сигнальной функции по сравнению с обычной отладочной функцией?

5.С какой целью в теле сигнальной функции должна обязательно вызываться встроенная функция типа TWATCH?

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

144

Лабораторная работа № 8

СОПРЯЖЕНИЕ МИКРОКОНТРОЛЛЕРА MCS-51 С ПАРАЛЛЕЛЬНЫМ АЦП

1. Цель работы

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

Рассмотрение данного АЦП дает представления об использовании АЦП параллельного типа при построении измерительных приборов на основе микроконтроллеров.

2.Основные теоретические сведения

2.1.Сопряжение микроконтроллера с параллельным АЦП

Современные системы сбора данных, которые являются базовыми компонентами любых промышленных информационно-измерительных комплексов, широко используют аналого-цифровые преобразователи. Номенклатура АЦП в настоящее время стала весьма широка как по принципу преобразования, разрядности, так и по быстродействию. Одни АЦП реализуют параллельный интерфейс связи с внешними устройствами, другие используют последовательный способ передачи данных.

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

145

троллер АЦП является сильное влияние цифрового ядра микроконтроллера на аналоговые входы и схемы АЦП.

В связи с этим использование внешних автономных АЦП является на сегодняшний день весьма перспективным в информационно-измерительных системах и используется как базовый элемент подсистем сбора информации.

При построении систем среднего класса достаточным является использование простых 8-разрядных одноканальных параллельных АЦП с максимальной скоростью преобразований до 200 kSPS.

Рассмотрим технические характеристики распространенного АЦП AD7819 фирмы Analog Devices. Данный АЦП является высокоскоростным АЦП последовательного приближения, который совместим с микроконтроллерами по выходным уровням. Преобразователь работает с одним источником питания в диапазоне от 2.7 до 5 В. Среднее время преобразования АЦП составляет 4.5 мкс. Преобразователь содержит встроенный входной усилитель слежения и захвата (track/hold), а также источник внутреннего тактирования и 8-битный параллельный интерфейс, который разработан специально для сопряжения с микропроцессорами и цифровыми сигнальными процессорами. С использованием логики адресного декодирования AD7819 легко отображается на адресное пространство микропроцессора.

АЦП имеет режим пониженного энергопотребления (Power-Down mode). В режиме Power-Down АЦП автоматически отключается и завершает преобразование, до прихода нового сигнала начала преобразования. Это свойство значительно сокращает потребление по время простоя АЦП.

Структурная схема АЦП AD7819 приведена на рис. 8.1.

 

Vdd

AGND

Vref

 

 

 

 

ЦАП с зарядовым

Тристабильный

DB7

 

 

перераспределением

драйвер

DB0

 

 

 

 

 

 

 

Компаратор Тактовый

 

 

 

 

 

генератор

 

 

Vin

 

 

Логика управления

 

T/H

 

+

 

 

 

 

 

 

BUSY CS# RD# CONVST#

 

 

 

Рис. 8.1. Структурная схема АЦП AD7819

 

146

Данный АЦП выпускается Analog Devices в различных 16-выводных корпусах. В табл. 8.1 приведены описание выводов этого АЦП:

Таблица 8.1. Назначение выводов АЦП AD7819

Обозначение

Описание

1

VRef

Опорное напряжение от 1.2 В до Vdd

2

Vin

Аналоговый вход. Диапазон напряжения от 0 до

 

 

VRef.

3

GND

Аналоговая и цифровая «земля».

4

CONVST#

Старт преобразования. Срез сигнала на данной ли-

 

 

нии и удержание нижнего уровня в течении 1.5 мкс

 

 

внешним устройством приводит к началу преобра-

 

 

зования.

5

CS#

Сигнал выбора. Это логический вход. Сигнал CS#

 

 

используется совместно с RD# для получения с па-

 

 

раллельного интерфейса данных преобразования

6

RD#

Сигнал чтения результатов. Это сигнал логическо-

 

 

го выхода. Если сигнал CS# имеет низкий уровень,

 

 

сигнал RD# должен перейти в низкий уровень для

 

 

перевода линий DB0-DB7 из высокоимпедансного

 

 

состояния на вывод данных на шину внешнего

 

 

устройства.

7

BUSY

Сигнал состояния занятости АЦП. Это логический

 

 

выходной сигнал. Сигнал удерживается в состоя-

 

 

нии логической единицы в течение процесса пре-

 

 

образования.

8-15

DB7…DB0

Выходные линии битов данных. Эти выходы могут

 

 

находиться в третьем высокоимпедансном состоя-

 

 

нии и совместимы с TTLлогикой.

16

Vdd

Линия питающего напряжения (2.7 … 5 В).

На рис. 8.2 показана типичная схема включения АЦП и использования навесных внешних элементов. Данный АЦП не имеет встроенного источника опорного напряжения, поэтому для обеспечения точности преобразования к нему необходимо подключить внешний ИОН. Однако в большинстве применений в качестве ИОН может быть использовано напряжение внешнего пи-

147

тания АЦП. В самом простейшем случае к АЦП необходимо присоединить только два конденсатора (рис. 8.2).

10 мкФ

0.1 мкФ

Vdd Vref

AD7819

Vin BUSY

RD#

CS#

AGND CONVST#

Микроконтроллер

Рис. 8.2. Типичная схема подключения АЦП AD7819

При отсутствии внешнего ИОН вывод опорного напряжения Vref со-

единяется с выводом питания что обеспечивает диапазон входного напряжения от 0 до Vdd. Выводы питания и опорного напряжения при этом должны быть независимо друг от друга зашунтированы на «землю» с помощью двух конденсаторов номиналами 0.1 и 10 мкф соответственно.

Срез сигнала CONVST# переводит сигнал на линии BUSY в состояние логической единицы. В конце преобразования спадающий фронт BUSY используется для уведомления ведущего устройства об окончании преобразовании, например путем генерации внешнего прерывания. Приход активного уровня сигнала BUSY требует от ведущего устройства форсирования последовательности сигналов начала чтения данных. При этом сигнал CS# (chip select) необходим для обслуживания нескольких ведомых устройств со стороны микроконтроллера. Этот сигнала первым переводится в активное состояние. Сигнал RD# (read) непосредственно инициирует считывание данных преобразования и переводит выходные драйверы параллельного интерфейса в активное состояние. Сразу после прихода спадающих фронтов этих двух сигналов данные могут быть защелкнуты портом микроконтроллера. Параллельный интерфейс АЦП реализован с использованием 8-битной шины данных с возможность перехода в третье состояние. Использование такого интерфейса позволяет наиболее простым способом выполнить сопряжение АЦП с микроконтроллерами любых типов.

148

На рис. 8.3. представлены временные диаграммы работы АЦП AD7819.

CONVST#

t2

t8

 

t3

BUSY

t1

CS#

RD#

t4

t5

t6 t7

DB7…DB0

Рис. 8.3. Временные диаграммы работы АЦП AD7819

Таблица 8.2. Временные параметры сигналов АЦП AD7819

Параметр

3 В

5 В

Единица

Описание

 

t1

4.5

4.5

мкс

Время преобразования.

 

t2

30

30

нс

Ширина импульса CONVST#.

t3

30

30

нс

Время между срезом CONVST#

 

 

 

 

и фронтом сигнала BUSY.

t4

0

0

нс

Минимальное время

между

 

 

 

 

срезами сигналов CS# и RD#.

t5

0

0

нс

Минимальное время удержания

 

 

 

 

сигнала CS# после деактивации

 

 

 

 

сигнала RD#.

 

t6

10

10

нс

Время доступа к данным после

 

 

 

 

перехода сигнала RD в состоя-

 

 

 

 

ние логического нуля.

 

t7

10

10

нс

Время освобождения шины по-

 

 

 

 

сле перехода RD# в неактивное

 

 

 

 

состояние.

 

t8

100

100

нс

Задержка освобождения

шины

 

 

 

 

данных до спадающего фронта

 

 

 

 

CONVST#.

 

149

Ниже представлена принципиальная схема подключения АЦП AD7819 к микроконтроллеру AT89C51. Переключатель и светодиод являются вспомогательными элементами схемы, которые позволяют управлять процессом преобразования и сигнализировать об окончании серии преобразований. Монитор питания LM809 также можно отнести к вспомогательным элементам. Он позволяет обеспечить надежный сигнал сброса и корректное отключение микроконтроллера при снижении напряжения питания.

10 мкФ

 

 

 

 

 

+5 В

1

16

0.1 мкФ

 

 

 

 

 

 

 

 

Vref Vdd

 

 

0.1 мк

Vdd

 

 

 

DB0

8

P2.0

 

 

 

 

DB1

9

P2.1

 

LM809

 

 

 

 

 

RESET

 

 

DB2

10

P2.2

M3-4.63

 

 

 

AD7819

DB3

11

P2.3

AT89C51

 

 

 

DB4

12

P2.4

 

100 К

 

 

 

 

 

 

2 Vin

 

DB5

13

P2.5

 

 

 

DB6

14

P2.6

 

30 пФ

 

 

XTAL2

 

 

DB7

15

P2.7

 

 

 

 

 

 

 

CS#

6

P1.2

 

Q 4 МГц

 

 

RD#

5

P1.1

XTAL1

30 пФ

 

 

 

 

CONVST#

4

P1.0

 

 

 

 

 

 

P1.3

 

 

 

AGND

 

 

P1.4

GND

 

 

3

 

 

 

 

 

 

 

10 К

330

 

 

 

 

 

 

 

 

 

 

 

 

 

+5 В

 

Рис. 8.4. Принципиальная схема подключения АЦП AD7819 к микроконтроллеру AT89C51

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

.

150

3.Практическая часть

3.1.Программное управление внешним параллельным

АЦП AD7819

Рассмотрим программную реализацию управления АЦП, на примере ранее изученного АЦП AD7819.

Алгоритм работы состоит в следующем. В обработчике сброса происходит установка начального состояния управляющих линий микроконтроллера, которые непосредственно соединяют его с выводами АЦП CONVST, RD и CS. В подпрограмме инициализации также вычисляется адрес таблицы, в ячейки которой будут записываться преобразованные АЦП значения. В конце подпрограммы инициализации зажигается светодиод и устанавливается начальное состояние линии опроса управляющей клавиши.

Вся остальная часть работы микроконтроллера сосредоточена в бесконечном цикле области фоновых задач. При вхождении в цикл на вход CONVST# посылается короткий отрицательный импульс. В данном простейшем примере выходной сигнал BUSY АЦП, по состоянию которого можно определить окончание преобразования, не используется. В данном случае для гарантированного получения правильного значения преобразования используется программная задержка, величина которой задается значением ячейки DELAY. Далее, для начала чтения данных из АЦП, активируются сигналы на линиях CS# и RD#. После окончания спадающего фронта сигнала RD# преобразованные данные читаются из порта микроконтроллера и записываются в текущую ячейку таблицы. Далее увеличивается указатель на элемент таблицы и деактивируются сигналы на линиях CS# и RD#, проверяется счетчик числа преобразований, и если он не равен 0, то управление передается в начало цикла управления преобразованием. В противном случае выполняется реинициализация счетчика преобразований, установка в начало указателя на элемент таблицы и гашение светодиода. После этих действий начинается цикл опроса нажатия клавиши. После определения нажатия клавиши вновь зажигается светодиод, управление передается на начало цикла фоновых задач, и все действия вновь повторяются.

Данная программа управления внешним АЦП демонстрирует основные принципы работы с портами ввода/вывода, в ней также показаны базовые алгоритмы и приемы работы с таблицами данных. Данный пример может служить прототипом при построении реальной системы сбора данных.

1. Создадим проект и введем следующий исходный текст: