Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛП_ЛС1.doc
Скачиваний:
16
Добавлен:
21.08.2019
Размер:
9.68 Mб
Скачать

Порядок выполнения работы

1. Ознакомиться с функционированием модуля последовательного обмена SCI08, входящего в состав микроконтроллера MC68HC908GP32.

2. Написать подпрограмму инициализации модуля SCI08, обеспечивающую настройку модуля на 8-разрядный двунаправленный обмен данными с контролем результатов обмена по прерыванию. Также реализовать процедуру обработки прерывания от SCI08.

3. Написать программу передачи строки символов по интерфейсу RS-232.

4. Соединить последовательный порт стенда ЛС-1 с терминалом посредством стандартного кабеля. Проверить правильность работы программы в реальных условиях. (ПРИМЕЧАНИЕ. В качестве терминала может выступать персональный компьютер с соответствующим программным обеспечением или другой лабораторный стенд ЛС-1).

5. Написать программу считывания информации о температуре окружающей среды из DS1722 по интерфейсу SPI и вывода ее на экран ЖКИ. (ПРИМЕЧАНИЕ. Использовать результаты лабораторной работы №5).

Работа №7. Цифровая система на базе микроконтроллера mc68hc908gp32: ввод и обработка аналогового сигнала.

Цель работы: изучение функционирования блока ADC08 микроконтроллера MC68HC908GP32, получение практических навыков ввода и обработки аналогового сигнала в цифровой системе.

Введение

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

Модуль аналого-цифрового преобразователя ADC08. Модуль 8-разрядного аналого-цифрового преобразователя ADC08, входящего в состав MC68HC908GP32, содержит входной мультиплексор, осуществляющий выбор одного из восьми входов аналогового сигнала, АЦП последовательного приближения, регистр управления-состояния ADSCR (адрес $003C), регистр настройки тактовой частоты ADCLK (адрес $003E) и регистр результата преобразования ADR (адрес $003D). Входы AD0-AD7 модуля ADC08 совмещены с выводами PTB0-PTB7 параллельного порта B. Так как в один и тот же момент времени может использоваться только один вход АЦП, то остальные выводы порта B доступны для параллельного ввода-вывода.

Функционирование АЦП определяется содержимым регистра ADSCR, который содержит следующие биты (рис.7.1,а):

COCO – признак окончания преобразования, доступный только для чтения, если установлено значение бита AIEN = 0; принимает значение COCO = 1 после выполнения очередного цикла преобразования,;

AIEN – разрешает при значении AIEN = 1 формирование запроса прерывания после каждого цикла преобразования;

ADCO – определяет режим работы АЦП: однократное преобразование при значении ADCO = 0, непрерывная работа преобразователя при ADCO = 1;

ADCH4-ADCH0 – осуществляют выбор аналогового входа мультиплексора в соответствии с табл.7.1.

7

6

5

4

3

2

1

0

COCO

AIEN

ADCO

ADCH4

ADCH3

ADCH2

ADCH1

ADCH0

а). ADSCR (адрес $003C)

7

6

5

4

3

2

1

0

ADIV2

ADIV1

ADIV0

ADICLK

0

0

0

0

б). ADCLK (адрес $003E)

Рис.7.1. Формат содержимого регистров ADSCR (а) и ADCLK (б) модуля ADC08.

Запуск АЦП осуществляется после выбора определенного аналогового входа мультиплексора, путем записи соответствующего значения битов ADCH4-ADCH0 в регистре ADSCR. В процессе работы на вход АЦП подается сигнал с выбранного входа ADi, а с выхода считывается 8-разрядное число, соответствующее величине потенциала аналогового сигнала. Это число записывается в регистр результата ADR. Считывание результата в регистр A или X микроконтроллера, для последующей обработки, производится командой LDA или LDX.

Таблица 7.1. Выбор аналоговых входов модуля ADC08

Значение ADCH4-ADCH0

Подключаемый аналоговый вход

00000

AD0 (PTB0)

00001

AD1 (PTB1)

00010

AD2 (PTB2)

00011

AD3 (PDTB)

00100

AD4 (PTB4)

00101

AD5 (PTB5)

00110

AD6 (PTB6)

00111

AD7 (PTB7)

1000-11100

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

11101

Потенциал Vrf

11110

Аналоговая «земля»

11111

Отключение АЦП

Значение результата преобразования в регистре ADR линейно зависит от значения входного потенциала Vвх, при этом максимальное значение Vвх соответствует числу $FF, а минимальное – $00. Поступающий на аналоговый вход потенциал Vвх должен находиться в диапазоне 0 < Vвх < Vrf, где Vrf – величина опорного напряжения, подаваемого на специальный вывод микроконтроллера. В лабораторном макете Vrf = 5В, таким образом, разрешающая способность АЦП в лабораторном стенде ЛС-1 составляет около 20 мВ, а погрешность преобразования – 10 мВ.

Путем установки определенных значений битов ADCH4-ADCH0 также можно измерить значение Vrf или потенциал, присутствующий на входе аналоговой «земли» (табл.7.1). Такое измерение выполняется для контроля значений вышеуказанных потенциалов. Значение ADCH4-ADCH0 = 11111 приводит к выключению модуля ADC08.

В зависимости от значения бита ADCO в регистре ADSCR, обеспечиваются следующие режимы функционирования АЦП:

  • режим однократного преобразования (ADCO = 0), в котором АЦП автоматически выключается (в регистре ADSCR устанавливается значение битов ADCH4-ADCH0 = 11111) после выполнения очередного цикла преобразования и записи результата в регистр ADR;

  • режим непрерывного преобразования (ADCO = 1), в котором АЦП продолжает многократно выполнять преобразование входного сигнала на выбранном аналоговом входе ADi, при этом значение предыдущего результата преобразования сохраняется в регистре ADR до окончания текущего цикла преобразования.

В любом режиме работы после выполнения очередного цикла преобразования модуль ADC08 выдает запрос прерывания, если в регистре ADSCR установлено значение бита AIEN = 1. При этом производится обращение к процедуре обработки прерывания, вектор которой размещается в таблице векторов прерываний по адресу $FFDE-FFDF.

Если прерывания по запросу АЦП запрещены (бит AIEN = 0), то после каждого цикла преобразования в регистре ADSCR устанавливается значение признака COCO = 1. В этом случае процессор должен производить программный опрос признака COCO, и при установке последнего в 1, выполнять считывание результата из регистра ADR. Сброс COCO в состояние 0 производится автоматически после чтения содержимого регистра ADR или после записи нового значения в регистр ADSCR.

В состав модуля ADC08 входит схема выбора тактовой частоты АЦП, настройка которой осуществляется в регистре ADCLK, содержащем следующие биты (рис.7.2,б):

ADICLK – определяет выбор сигнала тактовой частоты для АЦП: системная тактовая частота Ft при установке значения ADICLK = 1 или частота кварцевого резонатора Fq при ADICLK = 0;

ADIV2-ADIV0 – задают коэффициент деления частоты входного сигнала Ka для формировании тактовых сигналов АЦП (табл. 7.2).

Оптимальным значением тактовой частоты аналого-цифрового преобразователя Fa является частота порядка 1МГц. Эта частота обеспечивается путем деления тактовой частоты Ft (при значении бита ADICLK = 1) или частоты кварцевого резонатора Fq (при значении бита ADICLK = 0). Необходимое значение коэффициента деления Ka = Ft/Fa или Ka = Fq/Fa задается установкой битов ADIV2-ADIV0 в регистре ADCLK в соответствии с табл.7.2.

Таблица 7.2. Значения коэффициента деления частоты Ka для модуля ADC08.

ADIV2-ADIV0

Ka

000

1

001

2

010

4

011

8

1xx

16

Для выполнения одного цикла преобразования требуется 17 тактов, поэтому в случае Fa = 1 МГц время преобразования составляет около 17 мкс.

В лабораторном стенде ЛС-1 на внешний разъем выведены только шесть (AD0-AD5) из восьми каналов модуля ADC08. При этом измеряемый сигнал подается на один из входов разъема АЦП, а для задания опорного уровня должен использоваться один из выводов PTB0-PTB5 порта B.

Датчик угла поворота. В лабораторном стенде ЛС-1 имеется датчик угла поворота, который реализован на базе канала AD7 модуля ADC08. Этот датчик представляет собой обычный потенциометр, при повороте ручки которого в диапазоне от 0 до 270 , напряжение на входе АЦП линейно меняется от 0 до Uп, что соответствует результату преобразования от $00 до $FF. Таким образом, разрешение датчика составляет порядка 1 . После соответствующей настройки ADC08 пользователь имеет возможность считывать значение сигнала, и тем самым контролировать угол поворота ручки потенциометра.