Исходные данные, Электродвигатель постоянного тока: - Программа для управления регулятором скорости вращения двигателя
Устройство предназначено для обеспечения плавной регулировки скорости вращения электродвигателя постоянного тока способом изменения интегрального напряжения, подводимого к его якорной цепи. Изменение напряжения выполнено на основе широтно-импульсного модулятора под управлением микроконтроллера AT90S1200 фирмы Atmel.
Электродвигатель постоянного тока:
Возбуждение постоянными магнитами
Номинальное напряжение якорной цепи 12в
Номинальный ток якорной цепи 1 А
Номинальная мощность 15Вт
Номинальная скорость вращения 1000 об/мин
Изменение скорости вращения двигателя постоянного тока производится способом изменения напряжения, подводимого к его якорной цепи. Изменение напряжения осуществляется экономичным способом широтно-импульсной модуляции. При данном способе обеспечивается максимальный диапазон регулировки выходного интегрального напряжения при ключевом режиме работы выходного транзистора. Ключевой режим транзистора благоприятно сказывается на его температурных режимах работы.
Программа управления регулятором скорости вращения двигателя для АТ90S1200
Используемые регистры: | |||
R23 |
Регистр организации 3 цикла подпрограммы задержки | ||
R24 |
Регистр организации 2 цикла подпрограммы задержки | ||
R25 |
Количество циклов подпрограммы задержки | ||
R26 |
Дискретность шага при увеличении или уменьшении ШИМ | ||
R27 |
Регистр для организации мигающего бита | ||
R28 |
Регистр хранения длительности импульса | ||
R29 |
Регистр хранения длительности паузы | ||
R30 |
Зарезервирован как указатель для непосредственной адресации регистрового файла. В программе не используется. | ||
R31 |
Регистр для конфигурирования аппаратной части контроллера | ||
ORG |
000 |
; |
Вектор сброса |
Rjmp |
Reset | ||
ORG |
002 |
; |
Вектор прерывания по переполнению таймера |
Inc |
R27 |
; |
Добавляем 1 к содержимому регистра r27 |
Sbrc |
R27,0 |
; |
Проверяем на четность младший бит регистра r27 |
Rjmp |
Pause |
; |
Если четный, то обрабатываем п/прогр pause |
Sbrs |
R27,0 |
; |
Проверяем на четность младший бит регистра r27 |
Rjmp |
Impulse |
; |
Если нечетный, то обрабатываем п/прогр impulse |
Pause: | |||
Cbi |
Portb,3 |
; |
Устанавливаем на выводе РВ3 логич "0" |
Out |
Tcnt0,r28 |
; |
Загружаем таймер величиной длительности "1" |
Rjmp |
Exit_timer |
; |
Выход из прерывания |
Impulse: | |||
Sbi |
Portb,3 |
; |
Устанавливаем на выводе РВ3 логич "1" |
Out |
Tcnt0,r29 |
; |
Загружаем таймер величиной длительности "0" |
Rjmp |
Exit_timer |
; |
Выход из прерывания |
Exit_timer: | |||
Reti |
; |
Выход из процедуры прерывания | |
Reset: | |||
Ldi |
R31,$18 |
; |
Конфигурируем порт В |
Out |
Ddrb, r31 |
; |
РВ0,1,2 - как входы. РВ3,4 - как выходы |
Ldi |
R28,$99 |
; |
Задаем начальное значение длительности импульса = 99 |
Ldi |
R29,$66 |
; |
Задаем начальное значение длительности паузы = 66 |
Ldi |
R31,$17 |
; |
Включаем внутренние подтягивающие резисторы |
Out |
Portb, r31 |
; |
К входам РВ0, РВ1, РВ2 |
Ldi |
R31,$01 |
; |
Конфигурируем таймер |
Out |
Tccr0,r31 |
; |
Тактирование от генератора МК без делителя |
Ldi |
R31,$02 |
; |
Настраиваем прерывание |
Out |
Timsk, r31 |
; |
Разрешаем прерывание от таймера |
Stop: | |||
Cbi |
Portb,4 |
; |
Устанавливаем вывод РВ4 в "0". Зажигаем светодиод |
Ldi |
R27,$0 |
; |
Обнуляаем регистр мигающего бита |
Rjmp |
Scan1 |
; |
Переход на сканирование клавиатуры |
Scan1: |
; |
Сканирование клавиатуры при включении/отключении | |
Sbis |
Pinb,0 |
; |
Если нажата кнопка ON/OFF (PD0) |
Rjmp |
Start |
; |
То переход к старту |
Sbis |
Pinb,1 |
; |
Если нажата кнопка "+" (PD1) |
Rjmp |
Start |
; |
То переход к старту |
Sbis |
Pinb,2 |
; |
Если нажата кнопка "-" (PD2) |
Rjmp |
Start |
; |
То переход к старту |
Rjmp |
Scan1 |
; |
Если ничего не нажато, то повторяем сканирование |
Start: | |||
Sbi |
Portb,4 |
; |
Устанавливаем вывод РВ4 в "1". Гасим светодиод |
Sbi |
Portb,3 |
; |
Устанавливаем на выходе ШИМ "1" (вывод РВ3="1"). |
Out |
Tcnt0,r29 |
; |
Загружаем в таймер начальное значение длительности импульса ШИМ |
Sei |
; |
Разрешаем прерывания | |
Rcall |
Pause_scan |
; |
Вызов процедуры задержки сканирования клавиатуры |
Rjmp |
Scan2 |
; |
Переходим к сканированию клавиатуры |
Scan2: | |||
Sbis |
Pinb,0 |
; |
Если нажата кнопка ON/OFF (PD0) |
Rjmp |
Off |
; |
То переход к подпрограмме выключения |
Sbis |
Pinb,1 |
; |
Если нажата кнопка "+" (PD1) |
Rjmp |
Plus |
; |
То переход к подпрограмме увеличения ШИМ |
Sbis |
Pinb,2 |
; |
Если нажата кнопка "-" (PD2) |
Rjmp |
Minus |
; |
То переход к подпрограмме уменьшения ШИМ |
Rjmp |
Scan2 |
; |
Если ничего не нажато, то повторяем сканирование |
Off: | |||
Cli |
; |
Запрещаем все прерывания | |
Cbi |
Portb,3 |
; |
Устанавливаем на выходе ШИМ (РВ3) логический "0" |
Rcall |
Pause_scan |
; |
Вызов процедуры задержки сканирования клавиатуры |
Rjmp |
Stop |
; |
Переход к подпрограмме STOP |
Plus: | |||
Ldi |
R26,$ff |
; |
Задаем максимальное значение ШИМ = FF |
Cpse |
R26,r28 |
; |
Проверяем, максимально ли текущее значение регистра r26 |
Rjmp |
Plus1 |
; |
Если нет, то переходим к подпрограмме увеличения ШИМ |
Rjmp |
Scan2 |
; |
Если да, то переходим к сканированию кнопок |
Minus: | |||
Ldi |
R26,$33 |
; |
Задаем минимальное значение ШИМ = 33 |
Cpse |
R26,r28 |
; |
Проверяем, минимально ли текущее значение регистра r26 |
Rjmp |
Minus1 |
; |
Если нет, то переходим к подпрограмме уменьшения ШИМ |
Rjmp |
Scan2 |
; |
Если да, то переходим к сканированию кнопок |
Plus1: | |||
Ldi |
R26,$33 |
; |
Задаем шаг изменения ШИМ при увеличении или уменьшении |
Add |
R28,r26 |
; |
Увеличиваем длительность импульса на 1 шаг |
Sub |
R29,r26 |
; |
Уменьшаем длительность паузы на 1 шаг |
Rcall |
Pause_scan |
; |
Вызов процедуры задержки сканирования клавиатуры |
Rjmp |
Scan2 |
; |
Переход к сканированию кнопок |
Minus1: | |||
Ldi |
R26,$33 |
; |
Задаем минимальное значение ШИМ = 33 |
Add |
R29,r26 |
; |
Увеличиваем длительность паузы на 1 шаг |
Sub |
R29,r26 |
; |
Уменьшаем длительность импульса на 1 шаг |
Rcall |
Pause_scan |
; |
Вызов процедуры задержки сканирования клавиатуры |
Rjmp |
Scan2 |
; |
Переход к сканированию кнопок |
Pause_scan: | |||
Ldi |
R25,3 | ||
D_3: |
Clr |
R24 |
Обнуляем регистр r24 |
D_2: |
Clr |
R23 |
Обнуляем регистр r23 |
D_1: |
Dec |
R23 |
Вычитаем единицу из текущего значения регистра r23 |
Brne |
D_1 |
Проверяем условие перехода | |
Dec |
R24 |
Вычитаем единицу из текущего значения регистра r24 | |
Brne |
D_2 |
Проверяем условие перехода | |
Dec |
R25 |
Вычитаем единицу из текущего значения регистра r25 | |
Brne |
D_3 |
Проверяем условие перехода | |
Ret |
Выход из подпрограммы | ||
EXIT |
Похожие статьи
-
Программно ШИМ реализован с использованием таймера/счетчика микроконтроллера. После включения питания и окончания процедуры сброса, контроллер переходит...
-
Для обработки прерываний и вызовов подпрограмм AT90S1200 использует 3-х уровневый аппаратный стек. Аппаратный стек имеет ширину 9 бит и сохраняет...
-
Сброс и обработка прерываний - Программа для управления регулятором скорости вращения двигателя
В AT90S1200 предусмотрены 3 различных источника прерываний. Эти прерывания и сброс имеют различные векторы в области памяти программ. Каждое из...
-
Все устройства ввода/вывода и периферийные устройства AT90S1200 располагаются в пространстве ввода/вывода. Различные ячейки этого пространства доступны...
-
Обзор архитектуры - Программа для управления регулятором скорости вращения двигателя
Регистровый файл быстрого доступа содержит 32 8-разрядных регистра общего назначения, доступ к которым осуществляется за один машинный цикл. Два операнда...
-
AT90S1200 - экономичный 8 битовый КМОП микроконтроллер, построенный с использованием расширенной RISC архитектуры AVR. Устройство имеет 64 байта EEPROM....
-
Файл регистров общего назначения - Программа для управления регулятором скорости вращения двигателя
Все оперирующие регистрами команды в наборе команд прямо адресуются к любому из регистров за один машинный цикл. Единственное исключение - пять команд...
-
Ядром устройства является микроконтроллер АТ90S1200. Его ресурсов более чем достаточно для организации широтно-импульсного модулятора экономичного...
-
Исходные данные для теплового расчета берем из таблицы 1. Расчет значений характерных диаметров проводим следующим образом: Диаметр цилиндра (по заданию)...
-
Исходные данные для проектирования Исходными данными в курсовом проекте являются вход-выходные временные последовательности (рис. 5). Рис. 5....
-
Номинальная мощность Ne = 2447 кВт; Номинальная частота вращения n = 520 мин-1; Удельный расход топлива qе = 192 г / кВт ч. Водоизмещение судна D = 2400...
-
Описание перекрестка Объектом анализа условий и организации движения выбран регулируемый перекресток Города Саратов, улиц Антонова и Лебедева-Кумача ....
-
Для расчета основных элементов системы импульсно-фазового управления (СИФУ) преобразователя вначале требуется выбрать тип цифровых и аналоговых...
-
Исходные данные для расчета Исходные данные принимают в соответствии с заданием на курсовое проектирование. Исходные данные: Наименование проектируемого...
-
Выбор исходных данных и корректирование нормативов ТО и ремонта Выписываем исходные нормативы технического обслуживания и текущего ремонта подвижного...
-
Исходные данные для технологического расчета Тип станции - стационарный; Число автомобилей, обслуживаемых СТО в год - 10667 легковых автомобилей,...
-
Из расчетной формулы на изгиб [1] по допустимому напряжению изгиба находится внутренний диаметр пальца , Где: - длина пальца, В - расстояние между...
-
С помощью нуль-органа опорное напряжение генератора сравнивается с управляющим напряжением Uупр преобразователя. Когда опорное напряжение в (процессе его...
-
Величина угловой скорости рассчитывается по формуле: , с-1, Мгновенная скорость поршня: , м/с. Мгновенные значения скорости поршня получаем как результат...
-
Диаметр цилиндра: D=0,081 м. Ход поршня: S=0,077 м. Степень сжатия - отношение полного объема цилиндра к объему камеры сжатия: е=9,5. Число цилиндров:...
-
Исходные данные: операция сверлильная (045) - Восстановления маховика двигателя ЗМЗ-402.10
- деталь: маховик автомобиля ЗМЗ 402.10, поверхность под диск сцепления; - материал: Серый чугун; - номер по каталогу: 24-1005011; - твердость: HRC...
-
Система управления преобразовательным устройством предназначена для формирования и генерирования управляющих импульсов определенной формы и длительности,...
-
В соответствии с заданием, в курсовой работе необходимо провести тягово-скоростной анализ автомобиля Volkswagen Passat при движении по дороге с суммарным...
-
Параметры: Параметр Значение ПС каналов 0, 1, 2, 3 10 Мб/с Задержка каналов 0, 1, 2, 3 0.01 с ПС каналов 4, 5 128 Кб/с Задержка каналов 4, 5 0.1 с Время...
-
Метод proc_int() активного протокола вызывается из метода proc_int() содержащего его экземпляра класса узла. Данный метод обновляет значение внутреннего...
-
В мостовом преобразователе с совместным управлением присутствуют уравнительные токи. Для уменьшения уравнительных токов в схему вводят 4 насыщающихся или...
-
Расчет поршневой головки шатуна Предусмотрено предварительное определение размеров головки как: - внутренний диаметр головки равен наружному диаметру...
-
Тиристоры Выбираются По Среднему Значению Тока, Протекающему через них и величине обратного напряжения. При этом должен быть обеспечен достаточный запас...
-
Расчет и выбор трансформатора Выбор силового трансформатора производится по расчетным значениям тока I 2ф , напряжению U 2ф , и типовой мощности S Т ....
-
Предварительно: Показатель политропы сжатия - при жидкостном охлаждении - при воздушном охлаждении Температура конца сжатия: Теплоемкость свежей смеси...
-
Исходные данные - Разработка дифференциального усилителя
- Входное напряжение усилителя: 60 mV - Сопротивление нагрузки: 4 - Выходное напряжение усилителя на максимальной рабочей частоте: 7 V - Рабочий диапазон...
-
Расчет полной, активной и реактивной мощностей Активная мощность, потребляемая ТП в номинальном режиме , (8.1) Где - действующее значение фазного...
-
Разборку карданного шарнира, при помощи струбцины, показанной на Извлекаем стопорные кольца подшипников одной вилки. Если есть возможность, лучше...
-
Регулировочная характеристика СИФУ при косинусоидальном опорном напряжении определяется выражением . (7.1) При линейной пилообразной форме опорного...
-
Расчет и выбор элементов задатчика интенсивности Предполагаемая принципиальная электрическая схема задатчика интенсивности изображена на рис.5.1. Рис....
-
Описание работы СИФУ - Реверсивный тиристорный преобразователь для электроприводов постоянного тока
Для работы СИФУ используется косинусоидальное опорное напряжение, максимальное значение которого должно находится в точках естественной коммутации...
-
Принципиальная схема управляющего органа представлена на рис.4.5. Рис. 4.5 Электрическая схема управляющего органа На входе ограничителя, выполненного на...
-
Протокол ARTCP, предложенный в этой работе, способен работать более эффективно и качественно, чем TCP, однако можно выделить несколько направлений...
-
Система, поддерживающая ARTCP, может быть также совместима с TCP. Для этого, инициатор соединения, поддерживающий ARTCP, помещает в заголовке...
-
Задача Превосходство ARTCP над TCP должно наиболее ярко проявляться при работе по каналам, с ненулевой вероятностью битовых ошибок, поскольку в отличие...
Исходные данные, Электродвигатель постоянного тока: - Программа для управления регулятором скорости вращения двигателя