Учебная работа. Реферат: Блок управления двигателем на МК

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (5 оценок, среднее: 4,80 из 5)
Загрузка...
Контрольные рефераты

Учебная работа. Реферат: Блок управления двигателем на МК

СОДЕРЖАНИЕ

Лист

1. Введение. 3

2. анализ начальных данных, выбор параметра контроля. 6

2.1. Отладочный комплекс. 6

2.2. Выбор параметра контроля. 10

3. Описание схемы электронной принципной. 11

3.1. Плата микроконтроллера. 11

3.2. Плата макета. 13

4. Описание метода программки. 15

5. Описание программки. 17

6. методика выполнения лабораторной работы. 21

6.1. Цель работы. 21

6.2. Описание лабораторной установки. 21

6.3. Начальные данные. 23

6.4. Домашние задание. 24

6.5. Советы по выполнению. 24

6.6. Последовательность выполнения работы. 26

7. Заключение. 27

Литература. 29

Приложение. Текст программки 30

Графическая часть

Лист №1 Схема электронная принципная

Лист №2 Блок схема метода



1. Введение.

В истинное время фактически нереально указать какую-то ветвь науки и производства, в какой бы не использовались процессоры (МП) и микроЭВМ.

Универсальность и упругость МП как устройств с программным управлением вместе с высочайшей надежностью и дешевизной разрешают обширно использовать их в самых разных системах управления для подмены аппаратной реализации функций управления, контроля, измерения и обработки данных. Применение МП и микроЭВМ в системах управления фабричным оборудованием подразумевает, а именно, внедрение их для управления станками, транспортировочными механизмами, сварочными автоматами, прокатными станами, ядерными реакторами, производственными линиями, электростанциями, также создание на их базе робототехнических комплексов, гибких автоматических производств, систем контроля и диагностики. Микропроцессорные средства разрешают создавать различные по трудности выполняемых функций устройства управления — от простых микроконтроллеров легких устройств и устройств до сложнейших специализированных и всепригодных систем распределенного управления в настоящем времени.

Посреди разных форм организации современных микропроцессорных средств можно условно выделить последующие группы:

— встраиваемые МП и простые микроконтроллеры;

— всепригодные микроконтроллеры и спец микроЭВМ;

— микроЭВМ общего предназначения;

— мультимикропроцессорные системы;

— аппаратные средства поддержки микропроцессорных систем (расширители).

Встраиваемые в приборы и аппаратуру МП и простые микроконтроллеры агрессивно запрограммированы на реализацию узкоспециализированных задач, их программное обеспечение проходит отладку на особых щитах либо всепригодных ЭВМ (Электронная вычислительная машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач), потом записывается в ПЗУ и изредка меняется в процессе использования. Встраиваемые средства употребляют и простые наружные устройства (переключатели/клавишные переключатели, индикаторы).

СпециализированныемикроЭВМ реализуются почаще всего на базе секционных микро программируемых МП, позволяющих адаптировать структуру, разрядность, систему установок микроЭВМ под определенный класс задач. Но таковой подход организации систем просит трудозатратной и дорогой разработки «Собственного» программного обеспечения.

В крайнее время обширное распространение получают также программируемые микроконтроллеры, представляющие из себя спец микроЭВМ, направленные на решение бессчетных задач в системах управления, регулирования и контроля. Необыкновенную группу составляют программируемые контроллеры для систем автоматического регулирования. Важным устройством хоть какой системы автоматического регулирования является регулятор, задающий главный законуправления исполнительным механизмом. Подмена традиционных аналоговых регуляторов всепригодными программируемыми микроконтроллерами, способными программно перестраиваться на реализацию всех законов регулирования, записанных в память микроконтроллеров, обеспечивает увеличение точности, надежности, гибкости, производительности и понижение цены систем управления. Огромным достоинством всепригодных микроконтроллеров является их способность делать ряд доп системных функций: автоматическое обнаружение ошибок, контроль предельных значений характеристик, оперативное отображение состояния систем и т. п.

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

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



2. анализ начальных данных, выбор параметра контроля.

Начальными данными определена разработка платы и программного обеспечения с режимами установки частоты вращения якоря мотора, стабилизации частоты вращения и ее индикации.

Область внедрения макета – лабораторные и практические работы в ККЭП.



2.1.Отладочный комплекс.

Базой начальных данных является отладочный комплекс МК51. Комплекс состоит из платы микроконтроллера и программного обеспечения и предназначен для отладки и тестирования аппаратуры и программного обеспечения управляющих систем, выполнен на базе микроконтроллера (МК) семейства Intel imcs51.

Плата МК51 состоит из последующих блоков:

— МК SAB80C535 созданный для выполнения программки монитор и для выполнения пользовательской программки (управления);

— неизменное запоминающее устройство, созданное для хранения программки монитор; емкость ПЗУ 32К б;

— оперативное запоминающее устройство, создано для хранения программки юзера (программка работы управляющей системы);

— экран, предназначен для контроля значений вводимых характеристик, вывода значений характеристик системы управления, вывода знаков;

— клавиатура, создана для ввода значений параметра программки управляющей системы, пуска программки управления, вызова процедур и сброса МК;

— буфер интерфейса связи платы ПМК с компом;

— блок коммутации адресов ОЗУ и ПЗУ.

Программное обеспечение состоит из программки FDSAB полноэкранный отладчик программ на ассемблере микроконтроллеров семейства МК51, направленный на внедрение вместе с платой для отладки программ на базе микроконтроллера Siemens SAB80C535 создана для отображения и полноэкранного редактирования ресурсов микроконтроллера, загрузки программного кода для микроконтроллера, выполнения его в ПМК стопроцентно, блоками либо по шагам.

В программке предусмотрен режим терминала с возможностью выбора номера коммуникационного канала (1 либо 2) и скорости передачи и приема данных.

Меню программки содержит последующие пункты:

1. Загрузить файл с программкой… <F3>

2. Выполнить программку ПМК <F9>

3. Перечитать ОЗУ и регистры ИЗ ПМК <F5>

4. Загрузить ОЗУ и регистры В ПМК <Alt+F5>

5. Прочесть ПЗУ либо ОЗУ установок ПМК
… <F6>

6. Загрузить ПЗУ либо ОЗУ установок ПМК
… <Alt+F6>

7. Перегрузить программку В ПМК <Alt+S>

8. Дизассемблировать команды в спектре
… <Alt+D>

9. Сохранить текст программки в файл
… <F10>

10. Включить
/
выключить символьные метки <Alt+V>

11. характеристики связи
… <Alt+L>

12. Режим терминала
> <Alt+T>

13. Короткая информация о системе <Alt+I>

14. Выход <Alt+X>

Предназначение пт меню:

1. Выбор на дисках компа двоичного файла (.BIN) с программкой, загрузка в отладчик и память установок макета и дизассемблирование загруженного кода на экран в область отображения дизассемблированных инструкций.

2. Передача управления от монитора ПМК программке юзера в памяти установок макета.

3. Считывание содержимого внутренней ОЗУ макета и особых многофункциональных регистров из ПМК.

4. загрузка в ПМК содержимого внутренней ОЗУ из отладчика и особых регистров.

5. Считывание содержимого памяти установок ПМК в отладчик (спектр запрашивается).

6. загрузка содержимого памяти установок ПМК из отладчика в ПМК (спектр запрашивается).

7. Перезагрузка кода программки в память установок ПМК из памяти отладчика.

8. Дизассемблирование программного кода из памяти установок отладчика в запрашиваемом спектре адресов. По выбору юзера аннотации дописываются за уже имеющимися или подменяют их.

9. Сохраняет в файл, имя которого запрашивается, дизассемблированный фрагмент программки юзера с мнемоническими обозначениями регистров микропроцессора Siemens SAB80C535 и символьными метками (если включен режим отображения символьных меток).

10. Переключает режим представления дизассемблированного кода на дисплее: с выделенными символьными метками либо лишь с адресами переходов.

11. Изменение номера поочередного порта компа, к которому подключена ПМК и скорости передачи через порт средством конфигурации делителя частоты.

12. Перевод программки в режим терминала. В этом режиме юзер может принимать и передавать данные по поочередному порту в ПМК.

13. Отображение короткой инфы о системе (размер вольной ОП, пространство на текущем диске, характеристики соединения, загруженный файл).

14. Выход из программки.



2.2.Выбор параметра контроля.

Естественным параметром контроля является частота вращения ротора электродвигателя. Датчиком для установления числа оборотов может служить оптопара. Но в этом случае из-за малой частоты импульсов, поступающих от датчика, будет низкой стабильность частоты вращения, из-за большенный продолжительности измерения и резвого нрава конфигурации перегрузки.

Для роста стабильности предусматривается диск на котором размещено наибольшее число прорезей. В этом случае одному обороту вала мотора будет соответствовать огромное количество импульсов от датчика. Да и в этом случае для четкого измерения частоты вращения требуется существенное время. Проведенные опыты вправду проявили существенное отклонение частоты вращения от установленной.

Высшую стабильность удержания частоты вращения обеспечивает метод измерения периода импульсов от датчика. МК имеет в собственной архитектуре подобающую аппаратную и программную поддержку.



3. Описание схемы электронной принципной.

Схема электронная принципная представлена в графической части лист1.



3.1.Плата микроконтроллера.

Порты Р0 и Р2 МК употребляются в режиме наружной памяти. Младшие разряды адреса ячейки памяти запоминаются в регистре адреса (DD9) импульсом ALE.

Блок переадресовки выполнен на элементах DD6 и DD7 и делает функцию переключения адресов в согласовании с таблицей 3.1.

Таблица
3.1


Начальный адресок
Рабочий адресок

ПЗУ
ОЗУ
ПЗУ
ОЗУ

0000Н
8000Н
8000Н
0000Н

По сигналу RESET=0 RS – триггер на элементах DD7.3 – DD7.4 установлен в единичное состояние (на выводе 13 DD7.4 уровень логического нуля) и делается выбор ПЗУ (DD12). Опосля отпускания клавиши сброса (SA1) триггер сохраняет свое состояние и импульсом PSEN считывается 1-й б команды перехода из ПЗУ. Триггер удерживается в единичном состоянии сигналом с выхода DD6.1 (А15=0 => А15=1), невзирая на наличие импульса PSEN на входе 1 элемента DD7.2.

В последующих 2-ух воззваниях считывается из ПЗУ адресок перехода 8000Н и производится команда SJMP 8000H.

При чтении из ячейки 8000Н первого б команды МК выдает адресок, в каком А15=0, как следует на выходе DD6.1 формируется маленький уровень. Импульсом PSEN формируется положительный импульс на выходе DD7.2 и триггер переключается. Потому что А15=1, то на выходе DD6.1 находится маленький уровень, как следует на выходе DD6.2 – высочайший и невзирая на то, что триггер переключился выбор ОЗУ не делается. Выбор ОЗУ будет делается если А15=0 и считывание установок делается импульсом PSEN.

Порты Р4 и Р5 употребляются для подключения клавиатуры и монитора. В плате употребляется клавиатура формата 4х4 и 4 разрядный экран динамического типа. Разряды Р4.3 – Р4.0 являются разрядами сканирования клавиатуры и сразу разрядами выбора индикатора. Сигналы выбора индикатора («бегущий ноль») подаются на входы усилителей (DD10). Маленький уровень с выхода DD10 производит выключение транзистора, через который подается на общий анод избранного индикатора напряжение +5В.

Сигналы частей с выходов порта Р5 через токовые усилители DD4 поступают на шину частей С0 – С7 индикаторов. Резисторы R17 – R24 определяют значения амплитуды импульса тока, протекающего через сегменты.

Разряды Р4.7 – Р4.4 являются входами сигналов опроса клавиатуры.

При помощи частей DD11.1 – DD11.2 формируется сигнал запроса прерывания от клавиатуры, поступающий на вход INT0 МК.

ИМС DD5 является преобразователем уровней для поочередного канала.

Элементы источника питания:

VD3 – диодик выпрямителя;

С5 – С8 – сглаживающий фильтр;

DD3 – стабилизатор напряжения.

Трансформатор блока питания вынесен в отдельный блок, совмещенный вилкой питания.

соединение с «наружным миром» делается при помощи разъемов.

Разъем Х7 предназначен для соединения с СОМ – портами компа.

На контакты разъемов Х1 выведены входы порта Р6 и входы эталонных питания и земли.

На контакты разъема Х5 выведены полосы от порта Р3.

На контакты разъема Х4 выведены полосы от порта Р1.

Разъем Х8 употребляется для подключения блока трансформатора.



3.2.Плата макета.

Оптопара VD1 VD2 является датчиком частоты вращения якоря мотора. Фотодиод VD1 сформировывает токовые импульсы при прохождении шторки освещением от светодиода VD2. Импульс с VD1 открывает транзистор VT1 тем формируя импульс на его коллекторе.

Управление движком происходит с помощью DD1 (ИМС управления реверсивными коллекторными движками). Режимы работы представлены в таблице 3.2.

Таблица
3.2


Режим работы
IN1
IN2
OUT1
OUT2

Тормоз
1
1
L
L

Движ/Рев
0
1
L
H

Рев/Движ
1
0
H
L

Стоп
0
0
¥
¥

На входы DD1 поступают логические уровни «0» «1», что выбирает режим работы мотора, присоединенного к выходам DD1. С1 – С4 – сглаживающие фильтры.

Переменным резистором R8, соединенным поочередно с генератором, подается перегрузка на движок. Резисторы R5 R9 (R5=R9) соединены общим проводом, а с остальных концов снимается аналоговое ток в цепи будет протекать в 2-ух направлениях, как следует, работы мотора.



4. Описание метода программки.

Блок схема метода представлена в графической части лист 2.

Основная программка зациклена и представляет собой блок процедуры индикации. Программки измерения частоты вращения мотора и обработки нажатия кнопок производятся прерывая основную программку индикации прерываниями от измерителя частоты и клавиатуры соответственно. Опосля выполнения программ обработки прерываний программка индикации продолжает работу с места ее прерывания.

Подпрограмма (ПП) обработки прерывания от измерителя (INT1) сначала выполнения инспектирует повторное вхождение в ПП. При первом вхождении осуществляется пуск измерителя и выход. При повторном вхождении измеренное

В ПП обработки прерывания от клавиатуры (KLAV) определяется нажатие многофункциональной клавиши. Если кнопка не многофункциональная то производится сдвиг индикационных ячеек на лево и запись кода нажатой клавиши в последнею индикационную ячейку, дальше выход. Если же кнопка многофункциональная делается определение какая конкретно нажата для этого служат четыре блока решения, если функциональность клавиши не обусловится то означает нажата кнопка «реверса» при нажатии которой осуществляется реверс направления вращения якоря мотора и выход. Дальше перечислены деяния по нажатию многофункциональных кнопок, опосля выполнения которых ПП заканчивается:

— кнопка «удалить» — сдвиг индикационных ячеек в Право и запись в старшую ячейку нуля;

— кнопка «старт» — преобразования введенного числа оборотов в секунду в продолжительность периода импульсов с датчика;

— кнопка «стоп» — остановка мотора;

— кнопка «режим» — переключение режима индикации частоты вращения / подаваемой перегрузки.



5. Описание программки.

В программке употребляются символические имена присвоенные ячейкам ОЗУ:

st1 data 52h

номер сдвига индикационной ячейки n_sd data 53h

введенная частота вращения якоря мотора obor data 54h

делимое 1-й б chi_3 data 55h

делимое 2-й б chi_2 data 56h

делимое 3-й б chi_1 data 57h

делитель 1-й б zn_h data 59h

делитель 2-й б zn_l data 5ah

личное 1-й б rez_h data 5bh

личное 2-й б rez_l data 5ch

итог деления 16/8 rezul data 5dh

измеренная продолжительность импульса мл. б dli_i_l data 5eh

измеренная продолжительность импульса ст. б dli_i_h data 5fh

данная продолжительность импульса мл. б dli_l data 60h

данная продолжительность импульса ст. б dli_h data 61h

временная ячейка temp data 62h

счетчик паузы выдачи измеренного значения indik data 63h

Применяемые биты флагов перечислены ниже:

повторный вход в п.п. измерения периода импульса flag bit 00h

индикация нажатия многофункциональной клавиши f_ind bit 01h

многофункциональная кнопка «реверс» f_rev bit 02h

направление вращения f_nap bit 03h

вкл./выкл. движок f_rab bit 04h

индикация обороты/перегрузка f_rez bit 05h

многофункциональная кнопка «режим» f_rezind bit 06h

Деление 24-х битного числа на 16-и битное итог 16 бит, реализовано в подпрограмме div24. Деление многобайтного числа на многобайтное реализуется по принципу вычитания делителя из делимого со сдвигом крайнего на лево, с возможностью восстановления делимого. Перед процедурой деления в ячейки делителя записывается число в спектре 0-0fffh. Сначала деления происходит: сдвиг делителя на четыре разряда на лево это нужно для деления 24/16, запись в личное 10h для определения окончания деления, запись в ячейки делимого число 1000000. Сначала цикла деления делается сдвиг делимого на лево на один разряд, а так же сдвиг на лево личного и запись в стек значений флагов переносов. Дальше из старшей части делимого вычитаем делитель, зависимо от знака переноса в личное записывается «0» либо «1» и сохранение делимого. Проверка переноса при сдвиге делимого и запись в личное «1» если перенос был. Проверка окончания деления методом проверки восстановленного значения флага переноса при сдвиге личного. Опосля окончания деления итог деления находится в ячейках результата.

Опосля нажатия клавиши «Старт» происходит преобразования значения индикационных ячеек в двоичный код (1 б), опосля что это секунду. Опосля преобразования производится функция пуска мотора которая дает толчок и разрешается прерывание INT1 с оптопары.

В подпрограмме обработки прерывания INT1 проверяется повторное вхождение для этого употребляется флаг flag. При первом вхождении запускается таймер и происходит выход из подпрограммы обработки прерывания. Во 2-м вхождении таймер останавливается, запрещается прерывание INT1 и означает частота вращения меньше нужной и движок врубается (отключается, если переноса нет) установкой кода на портах Р3.4 Р3.5. Композиция выбирается зависимо от направления вращения которая определяется битом f_nap. Индикация измеренной частоты вращения происходит через 47 (2f) раз измерения импульсов, это необходимо для того чтоб убрать мелькание цифр на индикаторе. Преобразование измеренного значения в частоту вращения мотора в обр/сек происходит последующим образом: деление 1000000 на измеренное инициализация регистров и ячеек перед последующим пуском процедуры и разрешается прерывание INT1.

Для опции таймера и прерывания INT1 употребляются последующие управляющие слова:

— TMOD=01H – режим работы таймера;

— TCON=04H

— Tr – разряд пуска таймера;

— IEN0 – разрешения прерываний

— 8 разряд – запрет всех прерываний;

— 3 разряд – INT1;

— 1 разряд – INT0 (клавиатура);



6. методика выполнения лабораторной работы.


6.1.Цель работы.

Приобретение практических способностей в технологии разработки и отладки частей управляющих систем.



6.2.Описание
лабораторной установки.

Лабораторная установка состоит из последующих частей: платы управления ПМК, платы мотора и блока питания.

Плата мотора рис.6.1 состоит из 3-х блоков: блок датчика скорости вращения, блок управления, блок датчика перегрузки. Плата мотора подключается к разъемам портов ПМК с помощью разъемов. X2 подключается к порту Р3 и служит для соединения: оптопары («Датчик») со входом прерывания INT1, портов Р3.4 Р3.5 с входами блока управления (Упр1 и Упр2). X6 подключается к порту Р6 используя две полосы AI6 и AI7 для измерения перегрузки прелагаемой к движку при помощи генератора (измерение перегрузки прелагаемой из вне с помощью данной нам схемы нереально). Внедрение 2-ух каналов предусматривается для измерения напряжения мотора с вероятным реверсом когда при вращении в одну сторону измерение происходит с первого канала, а при вращении в другую со второго. Такое распределение выходит методом использования делителя напряжения общий конец которого соединен с нулевым проводом и при протекании тока в различных направлениях меняет символ напряжения на концах делителя относительно общего провода на обратный. Опорное напряжение Uref подается соединением +5В, а нижняя граница (Ugnd) задается соединением с общим.

Рис. 6.1.Схема платы мотора.

Разъем X3 соединяет схему с блоком питания.

Датчик числа оборотов представляет собой диск, с 24-ю прорезями, агрессивно закрепленный навалу вращения мотора. Во время прохождения прорези меж оптопарой светодиод VD2 освещает инфракрасным излучением фотоприемник представляющий из себя фотодиод VD1. Полупроводниковый фотоприемник уменьшив из-за этого свое сопротивление начинает пропускать ток открывая тем транзистор VT1 с коллектора которого снимаются прямоугольные импульсы.

Обороты мотора прямо пропорциональны приложенному к нему напряжению. В связи с сиим предлагается задерживать частоту вращения в определенных границах при помощи конфигурации напряжения подаваемого на движок. Внедрение цифровых систем управления которые разрешают стремительно обрабатывать данные делает вероятным внедрения в качестве меняющегося напряжения шим-генератор. Продолжительность импульсов и пауз формируется динамически зависимо от нрава приложенной перегрузки. Подержание оборотов при увеличении перегрузки будет продолжается до того времени пока продолжительность паузы не будет равной нулю и предстоящее повышение перегрузки будет снижать обороты мотора. Для улучшения поддержания частоты вращения предлагается очень может быть прирастить напряжение источника питания.



6.3.Начальные данные.

1. Комплекс отладочный: плата, ПО (то есть программное обеспечение — комплект программ для компьютеров и вычислительных устройств) FDSAB;

2. установка управления движком;

3. Возможность установки частоты вращения с клавиатуры;

4. Стабилизация частоты;

5. Импульсы с датчика поступают на вход прерывания INT1;

6. Управление движком осуществляется выдачей кода на порты Р3.4 и Р3.5 в согласовании с таблицей 6.1;

7. Наибольшая скорость вращения мотора 110 обр1/сек.;

8. Число прорезей диска вращения датчика составляет 24 шт.

9. Мощность мотора 10 Вт;

10. Входы для измерения перегрузки поступают на АЦП каналы AI6 и AI7. VAREF=5B.

Таблица
6.1


Режим работы
IN1
IN2
OUT1
OUT2

Тормоз
1
1
L
L

Движ/Рев
0
1
L
H

Рев/Движ
1
0
H
L

Стоп
0
0
¥
¥



6.4.Домашние задание.

Составить метод и программку стабилизации частоты вращения электродвигателя неизменного тока с параллельным возбуждением в согласовании с начальными данными.



6.5.Советы по выполнению.

В качестве параметра регулирования взять продолжительность периодов импульсов от оптопары. Выбор этого параметра взамен измерению частоты вращения диска, перекрепленного на движок, дозволяет создавать резвый контроль стабильности системы управления за счет значимого уменьшения продолжительности измерения. Для такового регулирования нужно преобразовывать введенную частоту вращения в продолжительность периода импульсов, создаваемых прорезями на диске датчика, и назад – продолжительность периода в частоту вращения. Рекомендуется производить преобразование последующим образом:

1) Введенную частоту вращения (обр/сек) помножить на число прорезей в диске (24);

2) 1000000 поделить на приобретенное число, в итоге что получится продолжительность 1-го периода в мкс.

Для оборотного преобразования:

1) 1000000 поделить на продолжительность периода;

2) поделить на 24.

При делении 1000000 (3 б) на 2 б может быть внедрение обычной процедуры деления 4-х байтного числа на 2-й байтное. Но для наиболее резвого деления (а означает и роста скорости измерения) рекомендуется уменьшить продолжительность деления, производя деление 6-ти тетрад (1000000) на 3-и тетрады (очень вероятное число 4095), для этого нужно:

1) перед процедурой деления двинуть делитель на четыре разряда на лево;

2) продолжать деление с учетом сдвинутого делителя, т. е. деление обязано продолжается на четыре цикла меньше;

3) опосля процедуры деления двинуть личное на четыре разряда на лево.

Для измерения продолжительности периода импульсов нужно в качестве счетчика употреблять один из таймеров в режиме таймера. Подача на вход прерывания INT1 импульсов вызывает ПП обработки прерывания в какой нужно смотреть за первым и вторым входом в ПП. При первом вхождении включить таймер, а при втором вхождении считать состояние таймера, что и будет являться продолжительностью периода импульса.



6.6.Последовательность выполнения работы.

1. Набрать текст программки;

2. Откомпилировать программку;

3. Запустить отладчик FDSAB;

4. Загрузить в память bin файл, запустить программку на выполнение;

5. Снять зависимость конфигурации частоты вращения от подаваемой перегрузки;

6. Прийти к выводу о проделанной работе;

7. Составить отчет.

Внимание! При приложении огромных усилий торможения мотора он может остановится что приведет к резкому повышению тока в выходной цепи ИМС управления и может быть выход ее из строя.



7. Заключение.

В итоге проделанной дипломной работы была разработана плата макета и программное обеспечение блока управления реверсивным движком. С режимами работы: установки частоты вращения якоря мотора, стабилизации и индикации частоты. В качестве перегрузки употребляется генератор, соединенный с движком, на выходы которого подсоединен переменный резистор, которым задается перегрузка. В цепь генератора включен делитель напряжения для измерения напряжения и его индикации.

При разработке дипломного проекта было опробовано два метода автоматического регулирования частоты вращения мотора: измерение частоты (за определенное время подсчитывалось количество импульсов от датчика), измерение периода (измерялась продолжительность периода импульсов поступающих от датчика). 1-ый метод измерения частоты показал нехорошую стабильность частоты вращения регулирующей системы, т. к. из-за большенный продолжительности измерения (при уменьшении продолжительности измерения увеличивалась погрешность) и резвого конфигурации нрава перегрузки система не успевала выслеживать это изменение, а как следует и регулировать входную величину. 2-ой метод регулирования с измерением продолжительности периода показал неплохую стабильность автоматической системы управления. Это достигается повышение числа прорезей на вращающемся диске оптопары, измерение продолжается куцее время, за которое система автоматического регулирования не успевает отклониться от установленного значения. Маленькое отклонение частоты вращения за маленький просвет времени (времени измерения 1-го периода) сходу контролируется и происходит модификация выходного параметра.



Литература.

1. Григорьев В. Л. Программное обеспечение микропроцессорных систем. – М.: Энергоатомиздат, 1983.

2. Щелкунов Н. Н., Дианов А. П. Микропроцессорные средства и системы. – М.: Радио и связь, 1989.

3. Сташин В. В. Проектирование цифровых устройств на однокристальных микроконтроллерах. – М.: Энергоатомиздат, 1990.

4. Иванов В. И. Полупроводниковые оптоэлектронные приборы: Справочник – 2-е изд., перераб. И доп. – М.: Энергоатомиздат, 1989

5. Хвощ С. Т. Процессоры и микроЭВМ в системах автоматического управления. Справочник. Л.: Машиностроение. Ленингр. отд-ние, 1987.



приложение.

Текст программки.

; присваивание имен

p4 data 0e8h

p5 data 0f8h

ip0 data 0a9h

ip1 data 0b9h

ien0 data 0a8h

ien1 data 0b8h

adcon data 0d8h

addat data 0d9h

darp data 0dah

st1 data 52h

n_sd data 53h

obor data 54h

chi_3 data 55h

chi_2 data 56h

chi_1 data 57h

chi_t data 58h

zn_h data 59h

zn_l data 5ah

rez_h data 5bh

rez_l data 5ch

rezul data 5dh

dli_i_l data 5eh

dli_i_h data 5fh

dli_l data 60h

dli_h data 61h

temp data 62h

indik data 63h

flag bit 00h

f_ind bit 01h

f_rev bit 02h

f_nap bit 03h

f_sta bit 04h

f_rab bit 05h

f_rez bit 06h

f_rezind bit 07h

; определение векторов прерываний

org 0000h

sjmp start

org 0003h

ljmp klav

org 013h

ljmp int_1

; исходная инициализация

start:mov darp,#00h

mov adcon,#0fh

clr f_rezind

clr f_rab

clr f_rev

clr f_sta

setb f_nap

setb f_rez

mov n_sd,#0bh

mov st1,#3fh

mov ip0,#04h

mov ip1,#04h

mov sp,#65h

mov ien0,#81h

inizial:mov r0,#47h

mov r1,#03h

; изначальное обнуление индикатора

numb:mov @r0,#00h

inc r0

djnz r1,numb

; определение режима работы и его индикация

jnb f_sta,re1

jb f_rez,re1

mov 4ah,#19h

sjmp re2

re1:mov 4ah,#10h

re2:clr f_ind

beg:jb f_ind,beg2

; определение режима работы

jnb f_rezind,na2

clr f_rezind

jb f_nap,na1

mov 4ah,#0fh

sjmp na2

na1: mov 4ah,#0ah

; пуск мотора с проверкой направления вращения

na2: jnb f_rev,beg2

jb f_nap,napr1

clr p3.5

mov 4ah,#0fh

jb f_rez,napr

mov 4ah,#19h

sjmp napr

napr1: clr p3.4

mov 4ah,#0ah

jb f_rez,napr

mov 4ah,#19h

napr: clr f_rev

clr flag

setb f_rab

mov ien0,#85h

; остановка мотора

beg2: jnb f_ind,beg1

djnz st1,beg1

mov st1,#05fh

; сдвиг индикационных ячеек на Право

mov r0,#0ahov r1,#49h

mov 40h,#10h

sdvig: mov a,@r1

inc r1

mov @r1,a

mov a,r1

subb a,#02h

mov r1,a

djnz r0,sdvig

djnz n_sd,beg1

mov n_sd,#0bh

ljmp inizial

; процедура индикации

beg1: mov r4,#0feh

mov dptr,#tabcod

mov r0,#47h

cycl: mov p4,#0ffh

mov a,@r0

movc a,@a+dptr

mov p5,a

mov a,r4

mov p4,a

rl a

mov r4,a

inc r0

lcall del

cjne r0,#4bh,cycl

ljmp beg

del: mov r1,#10

st_2: mov r2,#10

st_1: nop

nop

nop

djnz r2,st_1

djnz r1,st_2

ret

tabcod: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h

db 0feh,0fdh,0fbh,0f7h,0efh,0dfh,0ffh

db 0c6h,0f8h,0c0h,0c8h,88h,8ch,86h,80h,89h,0ceh,91h,0b0h,82h

; клавиатура

klav: push acc

push p4

push psw

setb psw.3

mov r4,#00h

mov r7,#04h

mov r6,#0feh

loop: mov a,r6

mov p4,a

rl a

mov r6,a

mov a,p4

mov r5,#04h

swap a

rotate: rrc a

jnc dbnc

inc r4

djnz r5,rotate

djnz r7,loop

ljmp quit

dbnc: mov r2,#0ah

m1: mov r3,#55h

m2: djnz r3,m2

djnz r2,m1

mov a,#0f0h

wait: mov p4,#0f0h

cjne a,p4,wait

mov r2,#0ah

m3: mov r3,#55h

m4: djnz r3,m4

djnz r2,m3

mov a,#09h

subb a,r4

jc func

rel: mov r0,#03h

mov r1,#48h

new: mov a,@r1

inc r1

mov @r1,a

mov a,r1

subb a,#02h

mov r1,a

djnz r0,new

mov r1,#47h

mov 47h,r4

ljmp quit

; определение режима по многофункциональной клавише

func: jb f_ind,quit

cjne r4,#0ah,g2

ljmp bakesp

g2: cjne r4,#0bh,g3

ljmp sta

g3: cjne r4,#0ch,g4

ljmp stop

g4: cjne r4,#0dh,g5

ljmp rezim

g5: cjne r4,#0eh,g6

ljmp rezim

g6: ljmp revers

quit: clr psw.3

pop psw

pop p4

pop acc

reti

; удаление знака

bakesp: jb f_rab,quit

mov 47h,48h

mov 48h,49h

mov 49h,#00h

ljmp quit

; старт. DEC->BIN

sta: jb f_rab,quit

mov 4ah,#0ah

mov b,#0ah

mov a,49h

mul ab

add a,48h

mov b,#0ah

mul ab

add a,47h

mov obor,a

; BIN*24

mov b,#18h

mov a,obor

mul ab

mov zn_l,a

mov zn_h,b

; деление1000000 на приобретенное

lcall div24

mov dli_l,rez_l

mov dli_h,rez_h

; старт измерение

mov tl0,#00h

mov th0,#00h

clr flag

mov indik,#00h

mov tmod,#10h

mov tcon,#04h

mov 4ah,#10h

mov 49h,#10h

mov 48h,#10h

mov 47h,#10h

mov 46h,#11h

mov 45h,#12h

mov 44h,#15h

mov 43h,#16h

mov 42h,#12h

mov 41h,#10h

setb f_ind

setb f_rev

setb f_sta

ljmp quit

; стоп

stop: jnb f_rab,quit

mov ien0,#81h

setb p3.4

setb p3.5

clr f_rab

mov 4ah,#10h

mov 49h,#10h

mov 48h,#10h

mov 47h,#10h

mov 46h,#10h

mov 45h,#11h

mov 44h,#12h

mov 43h,#13h

mov 42h,#14h

mov 41h,#10h

setb f_ind

clr f_sta

ljmp quit

; реверс

revers: jnb f_rab,out2

mov ien0,#81h

setb p3.4

setb p3.5

mov 4ah,#10h

mov 49h,#10h

mov 48h,#10h

mov 47h,#10h

mov 46h,#16h

mov 45h,#17h

mov 44h,#18h

mov 43h,#17h

mov 42h,#16h

mov 41h,#11h

jb f_nap,n1

mov adcon,#0eh

sjmp n2

n1: mov adcon,#0fh

n2: setb f_rev

cpl f_nap

setb f_ind

out2: ljmp quit

; режим обороты мотора/перегрузка

rezim: jnb f_rab,out

cpl f_rez

jb f_rez,rez1

mov 4ah,#10h

mov 49h,#10h

mov 48h,#10h

mov 47h,#10h

mov 46h,#19h

mov 45h,#15h

mov 44h,#1ah

mov 43h,#16h

mov 42h,#1bh

mov 41h,#1ch

setb f_ind

out: ljmp quit

rez1: mov 4ah,#10h

mov 49h,#10h

mov 48h,#10h

mov 47h,#10h

mov 46h,#13h

mov 45h,#1dh

mov 44h,#13h

mov 43h,#16h

mov 42h,#13h

mov 41h,#12h

setb f_rezind

setb f_ind

ljmp quit

; процедура деления 3-х б на 2-ва

div24: push psw

push acc

mov chi_3,#0fh

mov chi_2,#42h

mov chi_1,#40h

mov rez_h,#00

mov rez_l,#10h

mov a,zn_h

mov b,#10h

mul ab

mov zn_h,a

mov a,zn_l

mov b,#10h

mul ab

mov zn_l,a

mov a,b

add a,zn_h

mov zn_h,a

lp24: mov a,rez_l

rlc a

mov rez_l,a

mov a,rez_h

rlc a

mov rez_h,a

push psw

clr c

mov a,chi_1

rlc a

mov chi_1,a

mov a,chi_2

rlc a

mov chi_2,a

mov a,chi_3

rlc a

mov chi_3,a

push psw

clr c

mov a,chi_2

subb a,zn_l

mov chi_t,a

mov a,chi_3

subb a,zn_h

jc nosav

pop psw

sav: mov chi_3,a

mov chi_2,chi_t

inc rez_l

sjmp qsav

nosav: pop psw

jc sav

qsav: pop psw

jnc lp24

pop acc

pop psw

ret

; прерывание от датчика

int_1: jb flag,iz2

setb flag

setb tr1 ; 1-ое вхождение. запустить таймер

reti

iz2: push psw ; 2-ое вхождение

push acc

clr tr1

mov ien0,#80h

mov dli_i_l,tl1 ; сохранить измеренное

mov dli_i_h,th1 ;

; регулировка

clr c

mov a,dli_i_l

subb a,dli_l

mov a,dli_i_h

subb a,dli_h

jc mot_1

jb f_nap,nap11

setb p3.4

sjmp mot_0

nap11: setb p3.5

sjmp mot_0

mot_1: jb f_nap,nap01

clr p3.4

sjmp mot_0

nap01: clr p3.5

mot_0:

; индикация

jb f_ind,inizdp

djnz indik,inizdp

mov indik,#2fh

jb f_rez,chas

; индикация перегрузки

azp0: jnb adcon.4,azp0

mov a,addat

mov b,#0ah

div ab

mov 47h,b

mov b,#0ah

div ab

mov 48h,b

mov 49h,a

inizdp: ljmp iniz

; индикация частоты вращения

chas: jb f_nap,i_nap1

mov a,4ah

cjne a,#0ah,in_ob2

mov 4ah,#10h

in_ob2: dec 4ah

sjmp i_nap2

i_nap1: mov a,4ah

cjne a,#0fh,in_ob1

mov 4ah,#09h

in_ob1:inc 4ah

i_nap2: mov zn_l,dli_i_l

mov zn_h,dli_i_h

lcall div24 ; деление 3 б на 2 б

mov rezul,#01h ; деление 2 б на 24

lp16: clr c

mov a,rezul

rlc a

mov rezul,a

push psw

clr c

mov a,rez_l

rlc a

mov rez_l,a

mov a,rez_h

rlc a

mov rez_h,a

push psw

clr c

mov a,rez_h

subb a,#18h

jc nosav16

pop psw

sav16: mov rez_h,a

inc rezul

sjmp qsav16

nosav16: pop psw

jc sav16

qsav16: pop psw

jnc lp16

;BIN->DEC

mov a,rezul

mov b,#0ah

div ab

mov 47h,b

mov b,#0ah

div ab

mov 48h,b

mov 49h,a

; инициализация новейшего пуска программки измерения

iniz: mov tl1,#00h

mov th1,#00h

clr flag

port_0: jb p3.3,port_0

port_1: jnb p3.3,port_1

mov ien0,#85h;84

pop acc

pop psw

reti

end

]]>