Rjmp start ; Go to Reset handler 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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. Выбор вида сигнала компаратора

ACIS1 ACIS0 Изменение сигнала АСО
    любое
   
    1→0
    0→1

 

В микроконтроллере 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

 

Вход t11 t12 t15 t28 1200 2313   8515 8535 m163 m103*
AIN0 РВ0 РВ0 РВ0 PD6 РВ2 РВ2 РЕ2
AIN1 РВ1 РВ1 РВ1 PD7 РВЗ РВЗ РЕЗ

 

* — АС+, 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 Режим прерывания
    Прерывание по переключению выхода компаратора
    Зарезервировано
    Прерывание по падающему фронту на выходе компаратора
    Прерывание по нарастающему фронту на выходе компаратора

 

При изменении состояния битов ACIS1/ACIS0 прерывание по аналоговому компаратору должно быть запрещено очисткой бита разрешения прерывания в регистре ACSR. В противном случае, при изменении состояния битов может произойти прерывание.

На отрицательный вход аналогового компаратора можно скоммутировать любой из входов порта PORTA (PA7.. РА0). Для выбора входа используется мультиплексор аналогоцифрового преобразователя.

0 Бит ACME в регистре специальных функций ввода вывода SFIOR предназначен для подключения мультиплексора к аналоговому компаратору.

0 Битами MUX2..0 в регистре мультиплексора ADMUX выбирается контакт на входе (табл. 34).

Таблица 34. Логика подключения отрицательного входа компаратора.

ACME ADEN MUX2..0 Отрицательный вход аналогового компаратора
  X XXX AIN1
    XXX AIN1
      РАО
      РА1
      РА2
      РАЗ
      РА4
      РА5
      РА6
      РА7

 

Задание к лабораторной работе

 

Изучить программу 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; просмотров: 134; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.206.160.129 (0.037 с.)