Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Rjmp start ; Go to Reset handlerСодержание книги
Поиск на нашем сайте
.org $1C rjmp ad_vector; ADC conversion vector ;*********************************************** ; ADC complete interrupt service ; ad_vector: In temp, ADCH Reti ;*********************************************** ; Reset handler ; start: Ldi temp, high(RAMEND); инициализация памяти стека Out SPH, temp Ldi temp, low(RAMEND) out SPL, temp; завершение инициализации памяти стекаstart: ldi temp, $45; Power on ADC; select prescaler (/8); free running Out ADMUX,temp ldi temp, $BB Out ADCSR,temp; and enable end of conversion interrupt Sbi ADMUX, ADLAR Nop Nop Nop; Leave some time to stabilize before starting Nop Sbi ADCSR, ADSC Sei forever: Rjmp forever; Infinite loop, interrupted by ADC conversions
Порядок выполнения лабораторной работы
Необходимо выполнить все необходимые операции с проектом Lab_6.prj и программой Lab6.asm в среде VMLab.
Содержание отчета
Отчет по проделанной лабораторной работе должен содержать: - структурную схему алгоритма программы на лабораторную работу; - схему электрическую принципиальную разработанного устройства; - текст программы на языке ассемблера или СИ (распечатка файлов *c, *asm); - распечатка файла проекта (*.prj); - результаты моделирования (окно VMLab с запущенной программой и результатами вычислений).
Контрольные вопросы
1. Входные сигналы аналого–цифрового преобразователя микроконтроллера ATmega16. 2. Управление мультиплексором входных сигналов для ADC микроконтроллера ATmega16. 3. Задание режима 8 и 10 разрядного преобразования ADC (бит ADLAR) микроконтроллера ATmega16. 4. Источники опорного напряжения для ADC и их задание в микроконтроллере ATmega16. 5. Выбор коэффициента предварительного деления тактовой частоты для ADC в микроконтроллере ATmega16. 6. Бит разрешения прерывания в ADC микроконтроллера AVR ATmega16. 7. Флаг преобразования ADC микроконтроллера ATmega16. 8. Бит задания режима однократного или циклического преобразования ADC микроконтроллера ATmega16. 9. Бит пуска преобразования ADC в однократном режимемикроконтроллера ATmega16. 10. Бит разрешения преобразования ADC микроконтроллера ATmega16.
Лабораторная работа № 7
ПРОГРАММирование АНАЛОГОВОГО компаратора микроконтроллеров
Цель работы: Изучение и освоение методики программирования аналогового компаратора микроконтроллеров.
Краткие теоретические сведения АНАЛОГОВЫЙ КОМПАРАТОР
Аналоговый компаратор микроконтроллера ATmega16 имеет два входа — AIN0 и AIN1. В состав аналогового компаратора кроме базового компаратора входит регистр управления–состояния ACSR (№ $08) и элементы, управляющие работой схемы. Результатом работы компаратора является запрос прерывания ANA COMP, который формируется, когда разность значений напряжения на входах компаратора меняет знак. Схема управления СУ при определенном изменении сигнала АСО устанавливает в единичное состояние разряд ACI регистра ACSR и при единичном состоянии разряда ACIE регистра ACSR в блок прерываний поступает запрос прерывания ANA COMP. Разряд ACI сбрасывается в нулевое состояние аппаратно при переходе к выполнению прерывающей программы или программно путем записи единицы в разряд ACI. Выбор вида изменения сигнала АСО на входе схемы управления СУ, при котором формируется запрос прерывания, определяется комбинацией состояний разрядов ACISO и ACIS1 регистра ACSR в соответствии с табл. 31.
Таблица 31. Выбор вида сигнала компаратора
В микроконтроллере ATmega16 сигнал АСО с выхода базового компаратора при единичном состоянии разряда ACIC принимается в таймер–счетчик в качестве сигнала, управляющего захватом. При установке в единичное состояние разряда ACD регистра ACSR отключается питание базового компаратора и уменьшается ток потребления микроконтроллера. В микроконтроллере ATmega16 имеется возможность подключать к входу «+» базового компаратора вместо входа AIN0 выход внутреннего источника эталонного напряжения VR (1,22 ± 0,05 В). Подключение источника VR выполняется при единичном состоянии разряда AINBG регистра ACSR, кроме того, имеется возможность подключать к входу «–» базового компаратора входы аналого–цифрового преобразователя ADC0...ADC7. Подключение выполняется при нулевом состоянии разряда ADEN регистра ADCSR (№ $06) и единичном состоянии разряда ACME регистра SFIOR (№ $30). Выбор подключаемого входа определяется комбинацией состояний разрядов MUX2, MUX1 и MUX0 регистра ADMUX (№ $07). В табл. 32 указаны выводы микроконтроллера, используемые в качестве входов AIN0 и AIN1, у микроконтроллеров разных типов.
Таблица 32. Входы AIN0 и AIN1
* — АС+, AC– Схема компаратора микроконтроллера АТтеgа16 приведена на рис. 28.
Рис. 28. Функциональная схема аналогового компаратора
В работе компаратора используются регистры (рис. 29): 0 Регистр управления аналоговым компаратором ACSR 0Регистр специальных функций ввода/вывода 0 Регистр состояния аналого–цифрового преобразователя 0Регистр мультиплексора аналого–цифрового преобразователя ADCMUX 0Регистр состояния микроконтроллера SREG.
Рис. 29. Регистры, задействованные в работе аналогового компаратора
Регистр ACSR предназначен для управления аналоговым компаратором. 0 Бит 7 – ACD – отключает аналоговый компаратор. 0 Бит 6 – ACBG – выбор эталона аналогового компаратора. 0 Бит 5 – ACO – выход аналогового компаратора. 0 Бит 4 – ACI – флаг прерывания по аналоговому компаратору. 0 Бит 3 – ACIE – разрешение прерывания по аналоговому компаратору. 0 Бит 2 – ACIC – разрешение входа захвата аналогового компаратора. 0 Биты 1,0 – ACIS1, ACIS0 – выбор режима прерывания по аналоговому компаратору. Варианты установок показаны в таблице 33.
Таблица 33. Установки битов ACIS1/ACIS0
При изменении состояния битов ACIS1/ACIS0 прерывание по аналоговому компаратору должно быть запрещено очисткой бита разрешения прерывания в регистре ACSR. В противном случае, при изменении состояния битов может произойти прерывание. На отрицательный вход аналогового компаратора можно скоммутировать любой из входов порта PORTA (PA7.. РА0). Для выбора входа используется мультиплексор аналогоцифрового преобразователя. 0 Бит ACME в регистре специальных функций ввода вывода SFIOR предназначен для подключения мультиплексора к аналоговому компаратору. 0 Битами MUX2..0 в регистре мультиплексора ADMUX выбирается контакт на входе (табл. 34). Таблица 34. Логика подключения отрицательного входа компаратора.
Задание к лабораторной работе
Изучить программу Lb7.asm и файл проекта Lb_7.prj. Отладить программу в среде VMLab, подключив необходимую периферию к микроконтроллеру AVR – источники синусоидального напряжения. Программа сравнивает аналоговые напряжения на контактах PB2 и PB3, на которые подаются сигналы от генераторов синусоидальных сигналов с разной частотой. Визуально просматривается сигнал с выхода аналогового компаратора. На рис. 30 представлены результаты моделирования программы управления аналоговым преобразователем по прерываниям.
Рис.30. Результаты моделирования программы управления аналоговым компаратором Файл Lаb_7.prj .MICRO "ATmega16" .PROGRAM "Lab7.asm"; Atmel application note .TRACE; Activate micro trace .clock 1meg ; подключены два генератора синуса незначительно отличные ; по частоте (V1, and V2) к PB2 и PB3. ; Сигнал «AC0» (Analog Compator Out) реально не имеется ; на контактах микроконтроллера AVR, но его состояние ; можно просмотреть на мониторе инструмента «Scope» V1 PB2 VSS SIN(2.5 2.5 10K) V2 PB3 VSS SIN(2.5 2.5 11K) .plot v(pb2) v(pb3) v(aco)
Файл Lab7.asm ;* Программа использует аналоговый компаратор микроконтроллера ;* – ожидание по положительному перепаду выхода компаратора ;* – ожидание по положительному перепаду флага прерывния ;* – Enable interrupt on comparator output toggle. The interrupt routine ;* – инкремент 16–ти разрядного счетчика ter counter each time it is executed .include "C:\vmlab\include\m16def.inc" .def temp =r16;temporary storage register .def cntL =r17;регистр счета младшего байта .def cntH =r18;регистр счета старшего байта ;* Инициализация векторов прерываний
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-12; просмотров: 165; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.250.65 (0.007 с.) |