Файл: Отчет по лабораторной работе 5 ацп проверил Качалов А. В. 2020 г.docx

ВУЗ: Не указан

Категория: Отчет по практике

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 97

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.



Министерство образования и науки Российской Федерации Федеральное государственное автономное образовательное учреждениевысшего профессионального образования«Microsoft» (национальный исследовательский университет)Политехнический институтФакультет «Энергетический»Кафедра «Автоматизированный электропривод»ОТЧЕТпо лабораторной работе №5АЦППроверил:______________/Качалов А.В./«__»________________2020 г.Автор работыстудент группы П-___________/./«__»________________2020 г.Челябинск 2020Цель работыОсвоить теоретический и практический материал по работе 10-разрядного аналого-цифрового преобразователя (АЦП) микроконтроллера AtmegaХХ. Применить приобретенные навыки при написании программы. Созыкин Дмитрий Дмитриевич18.05.99Данные согласно варианту3 канал АЦПЛевое выравниваниеКд = 1284 выходных разрядаРежим управления – несимметричныйШИМ – быстрый, 8 битНоминальная скорость = 1700Диапазон изменения скорости -1350 0 1350Функциональная схема работы устройстваРисунок 1 – Функциональная схема Расчёт регистров ШИМРасчёт начинается с выбора режима в котором будет работать таймер. Режим ШИМ, фазовый.Максимальная скорость = 1700 Об\мин. Соответственно для получения максимальной скорости, заданной по варианту необходимо произвести следующее вычисление.max speed = 1700\1350 = 0.8. Данная скорость составляет 0.8 от максимально заполенного ШИМ. Т.е т.к ШИМ 8 бит, то максимальная заполненность достигает, когда в регистре OCR находится число 255. Соответственно по варианту 0.8 от 255+1 составляет205 от maxPWM (256); всего 16 скоростей т.к. значение 4ех разрядное согласно варианту, следовательно 205 \ 16 = 13 от maxspeed на каждую скорость 13 Соответственно для получения скорости необходимо умножить полученную скорость на константу 13.Настройка регистров АЦП
Согласно варианту присутствует левое выравнивание, соответственоо бит ADLAR в регистре ADMUX должен быть установлен, а полученный результат сдвинут на 4 бита. Также для выбора первого канала регулирования необходимо установить бит 0 и первый бит в битах MUX. Также для выбора предделителя установим биты ADPS2,1,0 в регистре ADCSRA, установим 6 и 7 бит этого регистра, чем разрешим работу АЦП и запустим преобразование Л истинг программы;Программа для управления электродвигателем постоянного тока..equ EN_WORK = 0.equ REVERS = 1.equ BIT_MASK = $03.equ SPEED_MASK = $06.equ CONST = 13.def SPEED_REG = R18.include"m32def.inc" ;подключение стандартной библиотеки.cseg ;начало сегмента кода.org$0reset: ldi r16,low(RAMEND) ;Инициализация стека ldi r17,high(RAMEND) out spl,r16 out sph,r17 clr r16;Инициализация портов ввода/выводаout DDRA,r16 ;Порт А - на ввод информацииser r16out DDRD,r16 ;Порт D - на вывод информации.out DDRB,r16 ;Порт B - на вывод информации.clr r16out OCR1AH,r16 ;обнуление регистров Т1out OCR1BH,r16 out TCNT1H,r16 out TCNT1L,r16ldi r16,0xA1 ; инициализация таймера ШИМ 8 бит, быстрыйout TCCR1A,r16 ldi r16,0x0B ; out TCCR1B,r16 clr SPEED_REG rcall startADCmain: in r16,ADCSRA ;Опрос регистра ADCSRA SBRC r16,4 ;Если бит 4 чист, то следующая команда пропускаетсяrcall ADC_ready ;Иначе вызов ADC_ready rjmp main ;Возврат на mainADC_ready: in r23,SREG ;сохранение значения регистра SREGldi r16,0x97 ;Обнуление флага ADIF записью в него логической«1»out ADCSRA,r16 in r16, PINA ; маска на вход andi r16, BIT_MASK sbrs r16, EN_WORK ; проверка разрешения rjmp stop ; нет разрешения останов двигателя rcall set_speed ; установка скорости: out PORTB, SPEED_REG ; вывод скорости sbrc r16, REVERS rjmp revers_set ; если есть реверс, то переход на установки реверса clr r17 out OCR1BL, R17 ; если реверса нет, то идем дальше out OCR1BH, R17 out OCR1AL, SPEED_REGquit: ldi r16,0xA1 ; ; установка значений таймера и АЦП out TCCR1A,r16 ldi r16,0x0B ; out TCCR1B,r16rcall startADC out SREG, r23 rjmp mainrevers_set: ; установки таймера для реверса

clr r17 out OCR1AL, R17 out OCR1AH, R17 out OCR1BL, SPEED_REG rjmp quitstop: ; Останов двигателя. Либо нет сигшнала вкл. Либо не нажата скорость clr r16 out TCCR1A, r16 out TCCR1B, r16 out PORTB, r16 ;скорость очистили out ADCSRA,r16 ; выключили бит 7. ADEN rjmp mainset_speed:in r17,ADCH ;Считывание результата преобразования из ADCHlsr r17 ; 4 разрядаlsr r17lsr r17lsr r17 ; max speed = 1350\1700 = 0.8 = 205 от maxPWM (256) ; всего 16 скоростей 205 \ 16 = = 13 от max speed на каждую скорость 13ldi r21, CONST mul r17, r21 mov SPEED_REG, r0 retstartADC: ldi r16,0x63 ;Инициализация мультиплексора АЦПout ADMUX,r16 ldi r16,0xC7 out ADCSRA,r16 ;Инициализация АЦП и его запускretВывод: Был исследован аналого-цифровой преобразователь.