Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Рябов В.Т. - Разработка и отладка программного обеспечения микропроцессорной системы управления на базе однокристальных микроЭВМ

Рябов В.Т. - Разработка и отладка программного обеспечения микропроцессорной системы управления на базе однокристальных микроЭВМ, страница 9

PDF-файл Рябов В.Т. - Разработка и отладка программного обеспечения микропроцессорной системы управления на базе однокристальных микроЭВМ, страница 9 Системы автоматического управления (САУ) (МТ-11) (15198): Книга - 8 семестрРябов В.Т. - Разработка и отладка программного обеспечения микропроцессорной системы управления на базе однокристальных микроЭВМ: Системы автоматичес2017-12-26СтудИзба

Описание файла

PDF-файл из архива "Рябов В.Т. - Разработка и отладка программного обеспечения микропроцессорной системы управления на базе однокристальных микроЭВМ", который расположен в категории "". Всё это находится в предмете "системы автоматического управления (сау) (мт-11)" из 8 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "системы автоматического управления (сау)" в общих файлах.

Просмотр PDF-файла онлайн

Текст 9 страницы из PDF

Такой двигательимеет 4 фазы, шаг перемещения 1/200 оборота. Максимальная частота вращения 3000об/мин.Типовая схема аппаратного подключения шагового двигателя показано на рисунке 6.Рис. 6. Типовая схема подключения шагового двигателя.На рисунке показано, что каждая фаза двигателя включается ключом на биполярномтранзисторе VT1 через оптронную развязку DA1. Резистор R2 ограничивает темновой токвыходного фототранзистора оптопары, а резистор R3 отводит его от базы ключевого транзистора.

Диоды VD1 и VD2 шунтируют ЭДС самоиндукции фазовой обмотки шагового двигателя при ее включении и выключении.В нашем микроконтроллере фазы двигателя управляются от младших четырех битовпорта Р1 микроконтроллера, которые подключены к базе ключевого транзистора через буферК1565АП5 без использования оптронной развязки.Это допустимо при коротких линиях связи. Кроме шагового двигателя к лабораторномумикроконтроллеру подключено четыре кнопки, сигналы которых могут читаться также портом Р1 (рис. 7).- 29 -Рис. 7.

Схема лабораторного микроконтроллера управления шаговым двигателем.9. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ УПРАВЛЕНИЯ ШДКонтроллер, изображенный на рис.7, должен вращать с переменной скоростью в ту илииную сторону шаговый двигатель. Обеспечить необходимый алгоритм работы должно программное обеспечение контроллера. На примере разработки ПО мы убедимся, как удобнопрограммировать под управлением диспетчера задач реального времени.Наше ПО удобно представить двумя квантами:Шаг шагового двигателя «STEP».Опрос клавиатуры «KLAV».Первый синхроквант будем запускать через переменную задержку времени, так какдвигатель должен вращаться с переменной скоростью. Второй синхроквант – опрос клавиатуры будем запускать через 100 мс.

Вряд ли кто сможет нажать на кнопку более одного разаза это время.9.1. Программа двухфазного вращения шагового двигателяЗадача программы – переключать биты в соответствии с заданной последовательностью1100 – 0110 – 0011 – 1001 и т.д. Моменты переключения жестко привязаны ко времени. Каждое переключение – это 1/200 оборота для двигателя ДШИ-200.Определите, какова будет скорость вращения, если задержка между переключениями составляет 1 мс?Для вращения в обратную сторону последовательность нужно изменить последовательность подачи тетрад 1001 - 0011 – 0110 – 1100.

Да при всем этом, не нужно искажать содержимое старшей тетрады порта Р1. Она у нас, судя по схеме на рис. 9, будет использоваться длясвязи с четырьмя управляющими кнопками. Одна из них будет включать или выключать, есливключен, шаговый двигатель, вторая реверсировать направление вращения. Все время, поканажата третья кнопка, двигатель будет увеличивать скорость своего вращения. Четвертаякнопка, наоборот, будет замедлять двигатель.Для управления отдельными битами применяют прием маскирования. Управление осуществляется при помощи команды «исключающее ИЛИ» XOR .

Для этого заводят переменную FASA - значение младшей тетрады порта Р1 и переменную MASKA, которой присваи- 30 -вается значение 1010.В этом случае подпрограмма выполнения шага будет выглядеть так:XOR FAZA, MASKA;исключающее ИЛИ маски и фазы, результат в фазуINV MASKA;инверсия маски, значения каждого битаЗадержка.;меняется на противоположноеВ цифровом виде это будет выглядеть: исходно MASKA=1010, FAZA=1100.Первый вход в подпрограмму11001010 «исключающее ИЛИ c MASKA»Второй вход в подпрограмму0110 «Результат в FAZA»0101 «исключающее ИЛИ c инверсией MASKA»0011 «Результат в FAZA»1010 «исключающее ИЛИ c инверсией MASKA»1001 «Результат в FAZA»Жирным шрифтом здесь выделены последовательные значения в переменной FAZA.Видно, что две единицы поехали вправо, т.е.

двигатель начал вращаться.Чтобы вращать двигатель в другую сторону перед входом в программу шага нужнопредварительно инвертировать маску.Реально на конкретном ассемблере MCS51 программа из-за ряда ограничений будет выглядеть более сложно. Наш шаговый двигатель подключен к младшим четырем битам(младшей тетраде) порта P1. Программа управления двигателем при своей работе не должнапортить старшей тетрады порта, к этим битам могут быть подключены другие элементы объекта управления (у нас, набор кнопок). Манипулируя байтовыми переменными FAZA иMASKA, мы изменяем, все восемь бит.

Управляют отдельными битами, используя приеммаскирования. Далее приведен текст программы с комментариями.Прежде всего, квант «STEP» нужно прописать в зоне векторов запуска синхроквантов:;--------------------USER PROGRAMM MEMORY---------------------ORG 149h;-------name thread0-------------LJMP STEPПрисвоим ему наивысший приоритет при запуске. Чтобы квант стал нормально работать,нужно заранее подготовить его переменные MASKA, FASA, задержка и установить статус кванта.

Это сделаем в подпрограмме начальной настройки пользователя START и активизируем ее вектор162h.ORG 162h;-------name user-start program--LJMP STARTДалее приведен текст кванта START. Набирается он в зоне -USER PROGRAMMпрограммы диспетчера. В стартовой подпрограмме мы должны определить и задать начальные значения всем переменным, которые нам понадобятся в квантах STEP и KLAV.При написании программы на ассемблере есть возможность использовать символические переменные и макоопределения, что улучшает читабельность программы.

С другойстороны, использование символических переменных не дает возможности применить неявную адресацию через регистры контроллера, что приводит к увеличению длины программного кода и снижению быстродействия. Читабельность программы можно улучшить подробным комментированием. В комментариях к кванту объявим все используемые переменные.Используемые переменные, требующие инициализации, приведены в таблице 6Таблица 6.АдресПеременные пользователяАдресСистемная переменная диспетчераR1Задержка кванта STEP20h.0hСтатус кванта STEPR2MASKA – маска для коммутации фаз 20h.1hСтатус кванта KLAVR3FAZA - фазы двигателя22h.0-7h Разрядности тиков задержкиквантов28hПрошлые состояния клавиш- 31 -;----------------------USER PROGRAMM---------------------------;-----------------------user start programm-------------------------START: MOVR3,#0Ch;00001100 в ФАЗУMOVR2,#0Ah;00001010 в МАСКУMOVP1,R3;фазу в портCLR20h.0h;снять статус кванта STEPMOVR1,#20h;задержка кванта STEP 32 - тикаMOV08h,R1;переписать ее в регистр задержек кванта STEPSETB 20h.1h;установить статус кванта KLAVMOV09h,#80h;записать 128 в регистр задержек кванта KLAVMOV28h,#0FFh;клавиши не нажималисьMOV22h,#00;все задержки в коротких тикахRET;возврат из ППТекст кванта START реализует описанную выше идею с исключающим ИЛИ, но выглядит посложнее.;-----------------------Step_SM--------------------------STEP:CLRA;очистить аккумуляторORLA,P1;фазу в аккумуляторXRLA,R2;исключающее ИЛИ фазы и маскиMOVP1,A;результат в портXRL02h,#0Fh;исключающее ИЛИ маски и 0FhMOV08h,R1;установить задержку кванту из R1MOVR3,A;новую фазу в R3RET; возврат из ППДокажите, что этот квант ни как не искажает содержимое старшей тетрады порта Р1.9.2.

Программа опроса кнопок и управления шаговым двигателемКнопки через однонаправленный буфер BF подключены к старшей тетраде порта Р1(рис.7). Если кнопка не нажата, на бит буфера через пары резисторов R1-R5…R4-R8 поступает напряжение +5В и единица на соответствующий бит порта. При нажатии на кнопку, на соответствующей линии будет фиксироваться нуль.Распределим фукции кнопок.Кнопка К4 «Вкл-Выкл», подключенная к порту Р1.7, будет у нас включать и выключатьдвигатель.

Если двигатель выключен, нажатие на нее должно приводить к включению, есливключен и вращается – к выключению.Кнопка К3 «Реверс» должна реверсировать вращение шагового двигателя. При нажатиина нее шаговый двигатель должен остановиться и начать крутиться в другую сторону с той жескоростью, что и до реверса.Кнопка К2 «Быстрее» должна при нажатии на нее приводить к уменьшению задержкимежду шагами шагового двигателя и ускорению его вращения.Кнопка К1 «Медленее» должна при нажатии на нее приводить к увеличению задержкимежду шагами шагового двигателя и замедлению его вращения.Не заметили принципиальной разницы между кнопками? Первые две должны реагироватьна каждое нажатие и обнаруживать спад сигнала на соответствующей линии: прошлый опросбыла единица, а теперь ноль, вот событие, которое должна фиксировать такая кнопка. Этокнопка однократного нажатия.Кнопки К1 и К2 – кнопки с автоповтором.

Действие, связанное с этой кнопкой выполняется всякий раз, как только будет обнаружено ее нажатие. Ноль в цикле опроса вне зависимости от прошлого состояния – вот событие, фиксируемое такой кнопкой.В управляющей программе, прежде всего, пропишем процесс опроса кнопок в зоне векторов квантов с единичным приоритетом. Старший нулевой приоритет пусть занял квант STEP.- 32 -ORG 14Ch;-------name thread1----------LJMP KLAVДля того, чтобы считывать состояние выводов порта Р1, а не состояние защелок этих выводов, необходимо в защелки старшей тетрады порта предварительно записать единицы. Этовыполняется первым оператором «ИЛИ».

Далее анализируется состояние кнопки однократного нажатия «ВКЛ-ВЫКЛ» (р1.7). При условии: в прошлом опросе была единица, а теперь –ноль, запускается подпрограмма включения выключения PUSK_STOP.В ней просто инвертируется статус кванта STEP и квант включается, если был выключенили выключается, если был включен. При выключении не только снимается с диспетчирования сам процесс, но и отключается напряжение с фазных катушек ШД. При этом процесс чтения состояния кнопок не нарушается, поскольку единичные биты старшей тетрады порта Р1восстанавливаются всякий раз при обращении к процессу чтения.;------------------------KLAV-------------------------KLAV:ORLP1,#0F0h;-------------------------p1.7----------------P1_7:JBP1.7,N_P1_7JNB28h.7h,P1_6LCALL PUSK_STOPINV7:CPL28h.7hSJMP P1_6N_P1_7:JB28h.7h,P1_6SJMP INV7;------------------------p1.6------------------P1_6:JBP1.6,N_P1_6JNB28h.6h,P1_5LCALL REVERSINV6:CPL28h.6hSJMP P1_5N_P1_6:JB28h.6h,P1_5SJMP INV6;------------------------p1.5------------------P1_5:JBP1.5,P1_4LCALL FASTER;------------------------p1.4------------------P1_4:JBP1.4,EKLLCALL SLOWLYEKL:RET;----------------------------------------------PUSK_STOP:CPL20h.0hMOVP1,#0F0hJNB20h.0h,ENDPSMOVP1,R3ENDPS:RET;----------------------------------------------REVERS:XRL02,#0FhRET;----------------------------------------------SLOWLY:INCR1RET;---------------------------------------------FASTER:DECR1RET;---------------------------------------------END;Конец всей программы.- 33 -10.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5168
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее