ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.01.2025
Просмотров: 3649
Скачиваний: 8
СОДЕРЖАНИЕ
1. Структура и функционирование микроконтроллера aTmega128
Регистр управления делением частоты кварцевого генератора – xdiv
2. Интегрированная система программирования avr Studio v4.12
3.Описание лабораторного стенда лс-2.
Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления
Работа №2 микроконтроллер aTmega128: команды обработки данных
Работа №3 цифровые системы на базе микроконтроллерa aTmega128:
Регистр управления внешними прерываниями – eicra и eicrb
16-Разрядные таймеры/счетчики t/c1 и t/c3
Регистры сравнения а таймеров/счетчиков - ocRxA
Работа №6 цифровые системы на базе микроконтроллера aTmega128:
Передача данных - Передатчик usart.
Прием данных - Приемник usart.
Работа №7 цифровые системы на базе микроконтроллера aTmega128:
Задания
Составить программы асинхронного приема и передачи данных с контролем принятого байта. При приеме заданных байт осуществлять включение или выключение светодиода.
Составить программы асинхронного приема и передачи данных на разных скоростях обмена. Посмотреть, как будет передаваться информация при настройке разной скорости передачи на двух соединенных стендах.
Работа №7 цифровые системы на базе микроконтроллера aTmega128:
обслуживание аналогового компаратора
Цель работы: изучение функционирования встроенного аналогового компаратора микроконтроллера ATmega128.
Аналоговый компаратор.
Аналоговый компаратор сравнивает уровни напряжений на неинвертирующем входе AIN0(PE2) и инвертирующем входе AIN1(PE3). Если напряжение на неинвертирующем входе AIN0 превышает напряжение на инвертирующем входе AIN1, то выход аналогового компаратора ACO принимает единичное состояние. Выход компаратора может быть настроен для использования в качестве источника входного сигнала для схемы захвата фронтов таймера-счетчика 1. Кроме того, компаратор может генерировать собственный запрос на обработку прерывания. Пользователь может выбрать несколько событий, по которым возникает прерывание: нарастающий, падающий фронт на выходе компаратора или любое его изменение.
Регистр специальных функций ввода-вывода – SFIOR
Разряд 3 – ACME: Выбор мультиплексора на входе аналогового компаратора
Если выключен аналогово-цифровой преобразователь (ADEN=0 в регистре ADCSRA) и в данный разряд записана лог. 1, то к инвертирующему входу аналогового компаратора подключен выход аналогового мультиплексора АЦП. Запись в данный разряд лог. 0 приведет к подключению инвертирующего входа аналогового компаратора к выводу микроконтроллера AIN1.
Регистр состояния и управления аналогового компаратора – ACSR
Разряд 7 – ACD: Отключение аналогового компаратора
Запись в данный разряд лог. 1 приводит к снятию питания с аналогового компаратора. Данный разряд можно устанавливать в любой момент при необходимости отключения аналогового компаратора. Его использование позволяет снизить энергопотребление в активном режиме и режиме холостого хода. Перед изменением бита ACD необходимо отключить прерывание по аналоговому компаратору путем сброса бита ACIE в регистре ACSR. В противном случае может возникнуть прерывание после изменения значения данного бита.
Разряд 6 – ACBG: Подключение источника опорного напряжения к аналоговому компаратору
После установки данного бита к неинвертирующему входу компаратора подключается источник опорного напряжения. После сброса данного разряда неинвертирующий вход компаратора связан с выводом AIN0 микроконтроллера.
Разряд 5 – ACO: Выход аналогового компаратора
Этот бит выхода аналогового компаратора связан непосредственно с выходом ACO.
Разряд 4 – ACI: Флаг прерывания аналогового компаратора
Данный разряд устанавливается аппаратно, при возникновении события в соответствии с установками бит ACIS1 и ACIS0. Запрос на обработку прерывания аналогового компаратора выполняется, если установлены биты ACIE и I в регистре SREG. ACI сбрасывается аппаратно при переходе на соответствующий вектор обработки прерывания. Альтернативно, бит ACI можно сбросить программно путем записи лог. 1 в данный флаг.
Разряд 3 – ACIE: Разрешение прерывания аналогового компаратора
Если в данный разряд записана лог. 1 и установлен бит I в регистре статуса, то прерывание по аналоговому компаратору активизируется. Запись в данный разряд лог. 0 приводит к отключению данного прерывания.
Разряд 2 – ACIC: Подключение аналогового компаратора к схеме захвата фронтов
Установка данного разряда приводит к разрешению совместной работы схемы захвата фронтов таймера-счетчика 1 и аналогового компаратора. В этом случае, выход аналогового компаратора непосредственно подключен к входному каскаду схемы захвата фронтов, позволяя к компаратору добавить функции подавления шумов и настройки фронтов прерывания по захвату фронта таймером-счетчиком 1.После записи в данный разряд лог. 0 связь между аналоговым компаратором и схемой захвата фронтов разрывается. Для активизации прерывания схемы захвата фронтов таймера-счетчика 1 по срабатыванию аналогового компаратора необходимо установить бит TICIE1 в регистре маски прерывания таймера (TIMSK).
Разряды 1, 0 – ACIS1, ACIS0: Выбор события прерывания аналогового компаратора
Данные разряды определяют, какое событие приводит к генерации запроса на прерывание аналогового компаратора. Варианты установок данных разрядов и их назначение представлены в таблице 7.1.
Таблица 7.1 - Установки разрядов ACIS1, ACIS0
|
ACIS1 |
ACIS0 |
Событие |
|
0 |
0 |
Прерывание по любому изменению на выходе компаратора |
|
0 |
1 |
Зарезервировано |
|
1 |
0 |
Прерывание по падающему фронту на выходе компаратора |
|
1 |
1 |
Прерывание по нарастающему фронту на выходе компаратора |
Перед изменением бит ACIS1/ACIS0 необходимо отключить прерывание по аналоговому компаратору путем сброса бита разрешения прерывания в регистре ACSR. В противном случае может возникнуть прерывание при изменении значений данных бит.
Мультиплексированный вход аналогового компаратора.
Имеется возможность использовать выводы ADC7..0 в качестве неинвертирующих входов аналогового компаратора. Для организации такого ввода используется мультиплексор АЦП и, следовательно, в этом случае АЦП должен быть отключен. Если установлен бит разрешения подключения мультиплексора к аналоговому компаратору (бит ACME в SFIOR) и выключен АЦП (ADEN=0 в регистре ADCSRA), то состояние разрядов MUX2..0 регистра ADMUX определяют, какой вывод микроконтроллера подключен к неинвертирующему входу аналогового компаратора (см. табл. 7.2). Если ACME сброшен или установлен ADEN, то в качестве неинвертирующего входа аналогового компаратора используется вывод микроконтроллера AIN1.
Таблица 7.2 – Мультиплексированный вход аналогового компаратора
|
ACME |
ADEN |
MUX2..0 |
Неинвертирующий вход аналогового компаратора |
|
0 |
x |
xxx |
AIN1 |
|
1 |
1 |
xxx |
AIN1 |
|
1 |
0 |
000 |
ADC0 |
|
1 |
0 |
001 |
ADC1 |
|
1 |
0 |
010 |
ADC2 |
|
1 |
0 |
011 |
ADC3 |
|
1 |
0 |
100 |
ADC4 |
|
1 |
0 |
101 |
ADC5 |
|
1 |
0 |
110 |
ADC6 |
|
1 |
0 |
111 |
ADC7 |
ВЫПОЛНЕНИЕ РАБОТЫ
Изучить функционирование блока аналогового компаратора микроконтроллера ATmega128 и схему подключения его входов в данном лабораторном стенде (см. рис. 7.1).
Рисунок 7.1 – Схема подключения аналогового компаратора.
Запустить на персональном компьютере интегрированную систему программирования AVRStudio. Командой ProjectNew Project создать новый проект Lesson7. С использованием редактора текста создать демонстрационную программу:
.device ATmega128
.include "m128def.inc"
in R16,DDRE ;
sbr R16,(1<<PE7) ;установка линии порта PE7 на выход
out DDRE, R16 ;разрешение работы линии порта PE7 на выход
sbi PORTE,PE7 ;выключение светодиода
loop:
in R16,ACSR
sbrs R16,ACO ;если выход компаратора ACO=1 включаем светодиод
rjmp comp_1 ;если ACO=0 выключаем светодиод
cbi PORTE,PE7 ;включение светодиода
rjmp loop
comp_1:
sbi PORTE,PE7 ;выключение светодиода
rjmp loop
Эта программа демонстрирует работу блока аналогового компаратора микроконтроллера ATmega128. В качестве индикатора выхода используется светодиод подключенный к порту РЕ7.
Выполнить команду Project/Buildдля компиляции проекта.
Если компиляция прошла без ошибок загрузить полученную программу lesson7.hex в микроконтроллер по методике пункта 2.4 «ЗАПИСЬ ПРОГРАММЫ В МИКРОКОНТРОЛЛЕР», при получении сообщения об ошибке компиляции исправить ее и повторить пункт 3.
После запуска программы в микроконтроллере, вращая ручку переменного резистора на стенде, наблюдать изменение состояния светодиода (включен\выключен). При равенстве напряжений на выводах AIN0 и AIN1 светодиод должен поменять свое состояние.
Задания
Написать программу, использующую прерывания от аналогового компаратора.
Написать программу, отображающую состояние выхода на одном разряде индикатора (0 или 1).
Написать программу, реагирующую на изменение фронта сигнала на выходе компаратора нарастающего или спадающего.
РАБОТА №8
ЦИФРОВЫЕ СИСТЕМЫ НА БАЗЕ МИКРОКОНТРОЛЛЕРА ATmega128:
обслуживание АЦП
Цель работы: изучение функционирования встроенного АЦП микроконтроллера ATmega128.
Аналогово-цифровой преобразователь.
ATmega128 содержит 10-разр. АЦП последовательного приближения. АЦП связан с 8-канальным аналоговым мультиплексором, 8 однополярных входов которого связаны с линиями порта F. Входы АЦП могут объединятся попарно для ввода дифференциальных напряжений. Два дифференциальных входа (ADC1, ADC0 и ADC3, ADC2) содержат каскад со ступенчатым программируемым усилением: 0 дБ (1x), 20 дБ (10x), или 46 дБ (200x). Если выбрано усиление 1x или 10x, то можно ожидать 8-разр. разрешение, а если 200x, то 7-разрядное.
Принцип действия.
АЦП преобразовывает входное аналоговое напряжение в 10-разр. код методом последовательных приближений. Минимальное значение соответствует уровню GND, а максимальное уровню AREF равное 2,56В в данном лабораторном стенде.
Канал аналогового ввода и каскад дифференциального усиления выбираются путем записи битов MUX в регистре ADMUX. В качестве однополярного аналогового входа АЦП может быть выбран один из входов ADC0…ADC7, а также GND и выход фиксированного источника опорного напряжения 1,22 В.
Работа АЦП разрешается путем установки бита ADEN в ADCSRA. Выбор опорного источника и канала преобразования не возможно выполнить до установки ADEN.
АЦП генерирует 10-разрядный результат, который помещается в пару регистров данных АЦП ADCH и ADCL. По умолчанию результат преобразования размещается в младших 10-ти разрядах 16-разр. слова (выравнивание справа), но может быть опционально размещен в старших 10-ти разрядах (выравнивание слева) путем установки бита ADLAR в регистре ADMUX.
Практическая полезность представления результата с выравниванием слева существует, когда достаточно 8-разрядное разрешение, т.к. в этом случае необходимо считать только регистр ADCH. В другом же случае необходимо первым считать содержимое регистра ADCL, а затем ADCH, чем гарантируется, что оба байта являются результатом одного и того же преобразования. Как только выполнено чтение ADCL блокируется доступ к регистрам данных со стороны АЦП. Это означает, что если считан ADCL и преобразование завершается перед чтением регистра ADCH, то ни один из регистров не может модифицироваться и результат преобразования теряется. После чтения ADCH доступ к регистрам ADCH и ADCL со стороны АЦП снова разрешается.