- •Содержание
- •Введение
- •1 Изучение системы команд и основных принципов программирования микроконтроллеров на примере управления блоком светодиодов
- •1.1 Указания по организации самостоятельной работы
- •1.1.2. Программная модель микроконтроллера avr mega128. Механизм работы с регистрами, памятью и портами ввода/вывода.
- •1.1.3 Система команд микроконтроллера avr mega128.
- •1.1.4. Синтаксис и основные операторы языка с.
- •1.1.5. Принципы программного управления светодиодами, подключенными к внешним выводам портов ввода/вывода микроконтроллера avr atmega128.
- •1.2 Описание лабораторной установки
- •1.2.1. Описание лабораторного макета.
- •Микроконтроллера avr atmega 128
- •1.2.2. Описание блока светодиодов лабораторного макета.
- •1.2.3. Описание интерфейса компилятора языка с CodeVision avr.
- •1.3 Порядок проведения работы и указания по ее выполнению
- •1.5 Контрольные вопросы и задания
- •2 Изучение режима программного опроса клавиатуры
- •2.1 Указания по организации самостоятельной работы
- •2.1.1. Принципы анализа нажатия стандартных кнопок с помощью микроконтроллера avr mega128.
- •2.1.2. Принципы считывания данных с матричной клавиатуры с помощью микроконтроллера avr атmega128 в режиме программного опроса.
- •2.2 Описание лабораторной установки
- •2.3 Порядок проведения работы и указания по ее выполнению.
- •3 Изучение принципов программного управления внешними устройствами на примере вывода информации на цифровой индикатор
- •3.1 Указания по организации самостоятельной работы
- •3.2 Описание лабораторной установки
- •3.3 Порядок проведения работы и указания по ее выполнению
- •3.4 Содержание отчета
- •4 Изучение принципов обработки прерываний
- •4.1.2. Принципы функционирования аппаратных таймеров-счетчиков, входящих в состав микроконтроллера avr атmega 128.
- •Interrupt [tim1_ovf] void timer1_overflow (void).
- •Interrupt [tim1_compa] void timer1_compareА (void);
- •Interrupt [tim1_compв] void timer1_compareВ (void);
- •Interrupt [tim1_compс] void timer1_compareС (void).
- •4.2 Описание лабораторной установки
- •5 Изучение принципов организации обмена данными по последовательному интерфейсу rs-232c между микроконтроллером avr атmega128 и пэвм
- •5.1.1. Принципы обмена данными по последовательному интерфейсу rs-232c.
- •5.2 Описание лабораторной установки
- •5.3 Порядок проведения работы и указания по ее выполнению
- •6 Изучение принципов работы со встроенным в микроконтроллер аналого-цифровым преобразователем на примере измерения температуры с помощью аналогового термодатчика.
- •6.1 Указания по организации самостоятельной работы
- •6.2 Описание лабораторной установки
- •6.3 Порядок проведения работы и указания по ее выполнению
- •6.4 Содержание отчета
- •6.5 Контрольные вопросы и задания
- •Рекомендуемая литература
- •Приложение 1 расположение выводов микроконтроллера avr атmega 128
- •Приложение 2 инструкции процессоров avr
6 Изучение принципов работы со встроенным в микроконтроллер аналого-цифровым преобразователем на примере измерения температуры с помощью аналогового термодатчика.
Цель работы: изучить принципы функционирования встроенного в микроконтроллер AVR АТMEGA128 АЦП и методику измерения температуры с помощью аналогового термодатчика.
6.1 Указания по организации самостоятельной работы
Перед работой необходимо проработать теоретический материал по литературе [1, 4] и конспект лекций, ознакомиться принципами функционирования и возможностями программирования встроенного в микроконтроллер AVR АТMEGA 128 АЦП, изучить методику измерения температуры с помощью аналогового термодатчика.
В состав микроконтроллера AVR АТMEGA 128 входит 10-разрядный аналого-цифровой преобразователь (АЦП), реализующий принцип последовательного приближения (см. рисунок 6.1). На входе модуля АЦП имеется 8-ми канальный аналоговый мультиплексор, управляющий переключением данных, поступающих с восьми каналов с несимметричными входами. В качестве источника опорного напряжения может выступать напряжение от внутреннего источника UREF (2.56 В), напряжение питания микроконтроллера UCC, или внешнего источника. Наибольшая точность преобразования достигается при тактовой частоте модуля АЦП порядка 50 200 кГц. Модуль АЦП может функционировать в режимах одиночного и непрерывного преобразований. Стандартное преобразование аналогового значения в цифровое с помощью встроенного АЦП выполняется за 13 тактов, одиночное – за 25 тактов. Результат преобразования для каналов с несимметричным входом определяется из выражения:
,
где – значение входного напряжения,– величина опорного напряжения.
Рисунок 6.1 – Обобщенная структурная схема модуля АЦП
в микроконтроллере AVR АТMEGA 128
Для работы с модулем АЦП используются следующие регистры:
ADCW (ADCH, ADCL) – 16-разрядный регистр данных, расположенный по адресу 4h/24h. В регистре используется 10 разрядов, выровненных по левой или правой границе.
ADCSRA – регистр управления/статуса.
ADMUX – регистр управления мультиплексором входных каналов.
Форматы и описания отдельных битов регистров ADCSRA и ADMUX приводится на рисунках 6.2, 6.3 и в таблицах 6.1, 6.2 соответственно.
№ бита |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
06h (26h) |
ADEN |
ADSC |
ADFR |
ADIF |
ADIE |
ADPS2 |
ADPS1 |
ADPS0 |
Рисунок 6.2 – Регистр состояния ADCSRA
Таблица 6.1 – Описание значений управляющих битов регистра ADCSRA
Разряд |
Обозначение |
Описание | |||
7 |
ADEN |
Разрешение работы АЦП: 0 – выкл.; 1- вкл. | |||
6 |
ADSC |
Запуск преобразования (1 – начать преобразование) | |||
5 |
ADFR |
Выбор режима работы АЦП: 1 – режим непрерывного преобразования, 0 – режим одиночного преобразования | |||
4 |
ADIF |
Флаг прерывания ( 1 – произошло прерывание от АЦП). Сбрасывается аппаратно при переходе на процедуру обработки прерывания. | |||
3 |
ADIE |
Обмен по прерыванию (1–разрешение прерывания) | |||
2 – 0 |
ADPS2- ADPS0 |
Управление предделителем тактовой частоты АЦП | |||
ADPS2 |
ADPS1 |
ADPS0 |
k | ||
0 |
0 |
0 |
2 | ||
0 |
0 |
1 |
2 | ||
0 |
1 |
0 |
4 | ||
0 |
1 |
1 |
8 | ||
1 |
0 |
0 |
16 | ||
1 |
0 |
1 |
32 | ||
1 |
1 |
0 |
64 | ||
1 |
1 |
1 |
128 |
№ бита |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
07h (27h) |
REFS1 |
REFS0 |
ADLAR |
MUX4 |
MUX3 |
MUX2 |
MUX1 |
MUX0 |
Рисунок 6.3 – Регистр состояния ADMUX
Таблица 6.2 – Описание значений управляющих битов регистра ADMUX.
Разряд |
Обозначение |
Описание | ||
7, 6 |
REFS1, REFS0 |
Выбор источника опорного напряжения (ИОН) | ||
REFS1 |
REFS0 |
ИОН | ||
0 |
0 |
Внешний, AREF | ||
0 |
1 |
Напряжение питания UCC | ||
1 |
0 |
Зарезервировано | ||
1 |
1 |
Внутренний (2,56 В), UREF | ||
5 |
ADLAR |
Выравнивание 10-битового результата по границе слова: 0 – по правой, 1 – по левой. | ||
4,3,2,1,0 |
MUX4 – MUX0 |
Управление мультиплексором входных каналов: при использовании несимметричных входов код на линиях MUX2–MUX0 соответствует номеру канала. |
Согласно формату регистров ADCSRA и ADMUX для работы с модулем АЦП в режиме одиночного преобразования необходимо при каждом чтении данных из регистра ADCW выполнить следующий инициализирующий код на языке С:
ADMUX=0b11000000; используется внутренний источник опорного
напряжения UREF (2.56 В), оцифровывание данных,
поступающих по 0-му входному каналу;
ADCSRA=0b11000000; запуск модуля АЦП в режиме одиночного преобразования.
Если используется режим, в котором модуль АЦП генерирует прерывание ADCINT(cм. таблицу 4.1) по окончанию преобразования, то необходимо обязательно описать процедуру обработки данного прерывания.