- •1. Структура и функционирование микроконтроллера mc68hc908gp32
- •1.1. Общая структура микроконтроллера mc68hc908gp32.
- •1.2. Организация и адресация памяти.
- •1.3. Генерация тактовых импульсов и запуск микроконтроллера.
- •1.4. Реализация прерываний.
- •1.5. Режимы функционирования.
- •2. Лабораторный стенд лс-1
- •2.1. Общее описание лабораторного стенда лс-1.
- •2.2. Основные функциональные узлы лабораторного стенда лс-1.
- •2.3. Включение лабораторного макета и подготовка его к работе.
- •3. Интегрированная среда программирования ics08gpgtz
- •3.1. Интегрированная среда WinIde.
- •3.2. Создание исходного текста и компиляция программы.
- •3.3. Моделирование выполнения программы.
- •3.4. Загрузка программы в память микроконтроллера.
- •3.5. Запуск и отладка программы на лабораторном макете.
- •Работа №1. Микроконтроллер mc68hc908gp32: регистровая структура, способы адресации, команды пересылки
- •Введение
- •Выполнение работы
- •Работа № 2. Микроконтроллер mc68hc908gp32: команды обработки данных
- •Введение
- •Выполнение работы
- •Работа № 3. Микроконтроллер mc68hc908gp32: команды управления программой и процессором.
- •Введение
- •Выполнение работы
- •Работа № 4. Микроконтроллер mc68hc908gp32: программирование на языке Ассемблера
- •Выполнение работы
- •Работа №5. Цифровая система на базе микроконтроллера mc68hc908gp32: реализация параллельного ввода-вывода данных.
- •Введение
- •Порядок выполнения работы
- •Работа №6. Цифровая система на базе микроконтроллера mc68hc908gp32: реализация последовательного обмена данными.
- •Введение
- •Порядок выполнения работы
- •Работа №7. Цифровая система на базе микроконтроллера mc68hc908gp32: ввод и обработка аналогового сигнала.
- •Введение
- •Порядок выполнения работы
- •Работа №8. Цифровая система на базе микроконтроллера mc68hc908gp32: реализация таймерных функций.
- •Введение
- •Порядок выполнения работы
- •Приложение 1. Описание жидкокристаллического индикатора
- •Приложение 2.
- •Приложение 3.
Порядок выполнения работы
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 пользователь имеет возможность считывать значение сигнала, и тем самым контролировать угол поворота ручки потенциометра.