от 0 до 180 эл. градусов; частота несущих выходных импульсов 1кГц – 20
кГц; длительность выходных импульсов 100 мкс – 6,6 мс;
– универсальную
систему
выпрямительно-инверторного
преобразователя: питание от сети переменного тока общего пользования с
напряжением: 380 В, 50 Гц, 220 В, 50 Гц; защита по току короткого
замыкания, время срабатывания не более 100 нC; защита по току перегрузки,
время срабатывания 100 мC – 10 C.
4 Содержание выпускной квалификационной работы
4.1 Введение
4.2 Исследование цифровых методов формирования сигналов системы
управления полупроводниковыми преобразователями электроэнергии
4.3 Разработка математических моделей функциональных узлов
системы
управления
полупроводниковыми
преобразователями
электроэнергии
4.3.1 Модель трехфазного тиристорного выпрямителя с системой
управления
4.3.2 Модель трехфазного транзисторного инвертора с системой
управления
4.4 Проектирование и проверка на моделях алгоритмов и методов
управления полупроводниковыми преобразователями электроэнергии
4.5 Разработка структуры комплексной цифровой системы управления
преобразователем, определение элементной базы для построения
4.6
Разработка
функциональных
узлов
системы
управления
полупроводниковыми преобразователями электроэнергии
4.7
Программирование
узлов
системы
управления
полупроводниковыми преобразователями электроэнергии
4.8
Реализация
и
экспериментальные
исследования
системы
управления полупроводниковыми преобразователями электроэнергии
4.9 Заключение
4.10 Список использованных источников
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
1 Исследование цифровых методов формирования сигналов
системы управления полупроводниковыми преобразователями
электроэнергии
2 Разработка математических моделей функциональных узлов
системы управления полупроводниковыми преобразователями
электроэнергии
7
8
2.1 Модель трехфазного тиристорного выпрямителя с системой
управления
2.2 Модель трехфазного транзисторного инвертора с системой
управления
3 Проектирование и проверка на моделях алгоритмов и методов
управления полупроводниковыми преобразователями
4 Разработка структуры комплексной цифровой системы
управления преобразователем, определение элементной базы для
построения
5 Разработка функциональных узлов системы управления
полупроводниковыми преобразователями электроэнергии
6 Программирование узлов системы управления
полупроводниковыми преобразователями электроэнергии
7 Реализация и экспериментальные исследования системы
управления полупроводниковыми преобразователями
электроэнергии
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А (обязательное) Текст программы управляющего
микроконтроллера
ПРИЛОЖЕНИЕ Б (обязательное) Функциональные схемы
преобразователей частоты для электропривода переменного тока
ПРИЛОЖЕНИЕ В (обязательное) Структурная схема импульснофазового контроллера трехфазного выпрямителя
ПРИЛОЖЕНИЕ Г (обязательное) Общая структурная схема
комплексной системы управления
ПРИЛОЖЕНИЕ Д (обязательное) Фрагмент принципиальной схемы
системы управления
ПРИЛОЖЕНИЕ Е (обязательное) Перечень графического материала
15
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
14
17
18
26
29
34
40
48
50
51
83
84
85
86
87
Лист
6
ВВЕДЕНИЕ
Для
создания
силовых
полупроводниковых
приборов
с
новыми
характеристиками в области энергетических и частотных параметров требуется
широкий спектр полупроводниковых преобразователей электроэнергию.
Надежность полупроводниковых приборов и системы управления может
быть гарантирована только стабильной и
электроэнергии
формирование
на
мощных
сигналов
четкой работой преобразователей
полупроводниковых
управления
повлечет
за
приборах.
собой
Неверное
сбой
системы
управления, вследствие чего, произойдет поломка силовых полупроводниковых
приборов преобразователя.
Множество современных преобразователей электроэнергии осуществляют
многозвенную передачу энергии от цепей переменного тока в цепи постоянного
тока и обратно. Для этого используются две силовые схемы: выпрямитель и
инвертор. Данные схемы имеют различные схемотехнические варианты
исполнения, но большая часть из них использует общие законы для сигналов
системы управления силовыми вентилями.
Это
создает
исследованию
и
исходные
обобщению
предпосылки
наиболее
для
постановки
используемых
задачи
по
схемотехнических
решений цифровых систем управления и оптимизации методов управления на
основе разработки математических моделей функциональных узлов. Конечной
целью
является
управления
программно-аппаратная
преобразователем
на
базе
реализация
цифровой
программируемых
системы
логических
интегральных схем (ПЛИС).
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
7
1 Исследование цифровых методов формирования сигналов системы
управления полупроводниковыми преобразователями электроэнергии
Номенклатура полупроводниковых преобразователей включает огромное
количество элементов для различных отраслей промышленности и энергетики.
Мощность преобразователей варьируется от единиц киловатт до десятков
мегаватт. По областям применения аппараты можно разделить на несколько
направлений (таблица 1):
Таблица 1 - Области применения преобразователей
1. Вставки постоянного тока для согласования промышленных сетей
2. Преобразователи для электропривода постоянного тока
3. Системы питания оперативного тока, зарядно-подзарядные устройства
4. Преобразователи для питания гальванических ванн
5. Комплексы и источники бесперебойного питания
6. Преобразователи для питания электропривода переменного тока
На рисунке 1 представлена структура преобразователя для вставки
постоянного тока. Он выполнен на основе регулируемых мостовых схем с
полным числом тиристоров, разделенных сглаживающим LC фильтром.
Поочередная работа одного моста в режиме выпрямителя, а другого в режиме
инвертора тока ведомого сетью разрешают передавать электроэнергию из сети
общего пользования переменного тока 50 Гц в сеть общего пользования
переменного тока 60Гц, или обратно.
Этот преобразователь имеет возможность применения на
большие
мощности и высокое напряжение, что обуславливает использование группового
соединения тиристоров в плече. Эта особенность требует синхронной
коммутации всех вентилей входящих в плечо, как в начале проводимости, так и
при выходе из работы. При раннем выключении одного тиристора в группе
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
8
приведет к неравномерному распределению токов по приборам группы при
параллельном соединении и последующему лавинообразному выходу из строя
оставшихся.
Рисунок 1 – Функциональная схема преобразователя для сопряжения
энергосетей через звено постоянного тока
Отдельным
направлением
преобразовательной
техники
являются
преобразователи для электропривода постоянного тока, показано на рисунке 2.
Рисунок 2 – Функциональная схема преобразователя реверсивного
электропривода постоянного тока
В основном эти преобразователи содержат 2 комплекта выпрямителей или
для обеспечения бесконтактного реверса вращения вала, или независимого
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
9
регулирования
возбуждения
электрической
машины
постоянного
тока.
Серьезным отличием данного преобразователя является работа на ярко
выраженную активно-индуктивную нагрузку.
Учитываем то, что требуется
обеспечить правильное прерывание тока на участке естественной коммутации.
т.к. в выпрямителях применяются не полностью управляемые вентили. В этой
связи необходимо предусмотреть возможности переключения параметров
управляющих последовательностей импульсов.
Преобразователи гарантированного электропитания –
также являются
классом устройств преобразовательной техники. Вариант такого устройства
показан на структурной схеме, предоставленной на рисунке 3. На входе стоит
понижающий
низкочастотный
трансформатор
т.к.
напряжение
на
аккумуляторной батарее находящийся в буфере с нагрузкой значительно ниже
напряжения питающей сети.
Рисунок 3 – Функциональная схема преобразователя зарядноподзарядного устройства для систем оперативного тока
Крутая нелинейная вольтамперная характеристика характеризует то, что
трансформатор и работает на активно-емкостную нагрузку. Выпрямитель
располагается на вторичной стороне. В связи с этим преобразователь может
работать в двух неблагоприятных режимах: режим близкий к короткому
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
10
замыканию
(практически
полностью
разряженная
емкость)
и
режим
прерывистых токов (полностью заряженная емкость).
Самыми востребованными устройствами преобразовательной техники
являются источник бесперебойного питания и преобразователь частоты для
электропривода переменного тока. В первую очередь это связанно с бурным
развитием MOSFETи IGBT транзисторов. Они имеют самую важную роль в
построении выходных инверторов. На рисунке 4 показаны функциональные
схемы
источников
бесперебойного
питания
большой
мощности
с
аккумуляторной батареей на полную амплитуду выходного напряжения.
Рисунок 4 – Функциональные схемы преобразователей
бесперебойного питания
Преобразователь состоит из двух частей, первая эквивалентна зарядноподзарядному устройству, вторая - содержит автономный инвертор напряжения
и выходной фильтр. Выходной каскад может строится по трехфазной или
однофазный мостовой схеме. Это зависит от потребителя. Мостовая схема по
сигналам от системы управления формирует высокочастотную ШИМ с
синусоидальным законом изменения скважности импульсов по фазам.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
11
Наиболее
простой
видов
преобразователей
для
электропривода
переменного тока является преобразователь питания обмотки якоря синхронных
электродвигателей переменного тока (рисунок 5).
По своему принципу и
структуре они не имеют больших отличий от преобразователей возбуждения для
электродвигателей постоянного тока, про которые говорится выше. Данный
преобразователь не дает возможности непосредственной регулировки скорость
вращения ротора двигателя и служит вспомогательным аппаратом питания
электрической машины. Один из самых эффективных способов регулирования
скорости вращения ротора электродвигателей переменного тока – это
использование преобразователя с изменяемой частотой и значением выходного
напряжения, представленный на рисунке 6.
Рисунок 5 – Функциональная схема преобразователя возбуждения для
синхронного электропривода переменного тока
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
12
Рисунок 6 – Функциональные схемы преобразователей частоты для
электропривода переменного тока
Основные
назначения
управляемого
выпрямителя
в
структуре
преобразователя частоты:
1. Обеспечение функций быстродействующей защиты. Аварии
инвертора при работе преобразователя частоты связанны с большими
сквозными токами (пробой транзистора, шунтирующего диода) и токами
короткого замыкания (замыкание фазы на полюс, на корпус, на заземление),
своевременное
быстродействующее
отключение
от
сети
позволяет
предотвратить масштабное развитие аварии.
2. Плавный заряд емкости в звене постоянного тока. Так для мощных
преобразователей емкость в звене постоянного тока может достигать десяти
тысяч микрофарад и более, которая определяется реактивной мощностью
используемого электродвигателя. Очевидно, что непосредственная зарядка
от сети такой емкости в начальный момент времени будет эквивалентна
короткому замыканию на выходе выпрямителя, а ударные токи разрушат
электроды конденсаторов за несколько сотен циклов заряда.
Обобщив результаты проведенного обзора можно сделать вывод, что
мостовые схемы выпрямления и инвертирования находят применение в 90%
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
13
устройств преобразовательной техники, при этом базовые принципы
формирования управляющих сигналов остаются неизменными, и могут
быть расширены для каждого конкретного применения с целью повышения
надежности работы. Объединив элементы импульсно фазового управления
мостовым выпрямителем, и элементы широтно-импульсного управления
мостовым инвертором в единую систему управления, можно обеспечить
универсальный модульный принцип построения системы управления для
широкого
спектра
преобразователей
электроэнергии
различного
назначения.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
14
2Разработка математических моделей функциональных узлов
системы управления полупроводниковыми преобразователями
электроэнергии
2.1Модель трехфазного тиристорного выпрямителя с системой
управления
Комплексная
система
управления
должна
содержать
контроллер
системного импульсно фазового управления (СИФУ) тиристорного моста. Было
проведено совместное моделирование разработанного прототипа СИФУ и
тиристорного моста в среде моделирования SimPowerSystem 9 (PSIM 9). Было
это сделано для предварительного синтеза его структуры и исследования логики
работы
В схеме реализован прототип 6 канальной СИФУ с независимым отсчетом
угла управления для каждого из каналов, в диапазоне от 0 до 360 эл. градусов, а
также независимым регулированием длительности управляющего импульса в
диапазоне 10 мкс - 10 мс.
СИФУ
получает
синхронизирующие
последовательности
от
формирователя синхронизации, выполненного на резистивных делителях и трех
компараторах, которые осуществляют попарное сравнение фазных напряжений
и выдачу прямоугольных сигналов SyncA, SyncB, SyncC по переднему и заднему
фронту синхронных с пересечением нуля линейным напряжением. На рисунке 7
представлены диаграммы линейных напряжений с наложением на них
выпрямленного напряжения при нулевом угле регулирования.
Так же была произведена модификация модели, с целью введения
обратной связи по выпрямленному напряжению.
В качестве источника угла управления для СИФУ выступает разностное
значение ПИ-регулятора и максимальной длительности угла регулирования, это
связанно обратным значением управляющего воздействия регулятора. Чем
больше разница, тем больше значение на выходе регулятора, в то время как
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
15
большее значение угла проводимости соответствует меньшему напряжению на
выходе выпрямителя. В качестве опорного задания регулятора установлена
величина в 200 В, время интегрирования регулятора составляет 5мС.
Рисунок 7 – Диаграммы результатов моделирования
Результаты моделирования СИФУ с замкнутой системой стабилизации
выходного напряжения представлены на рисунке 8, на них виден процесс
выхода на режим стабилизации в течение двух периодов сети и дальнейшая
устойчивая работа СИФУ.
Рисунок 8 – Диаграммы результатов моделирования
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
16
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
17
2.2 Модель трехфазного транзисторного инвертора с системой
управления
Контроллер трехфазного мостового инвертора является второй частью
общей системы управления преобразователя.
Прототип системы управления выполнен на основе 6 канального широтноимпульсного модулятора (ШИМ) с частотой несущей 1 кГц. Модулятор
содержит
отдельные
компараторы
гистерезисом, поэтому
для
каждого
канала
управления
с
вводится гарантированная пауза, необходимая для
исключения сквозных токов в плечах инвертора.
На вход модулятора подается три синусоидальных сигнала. Второй
сдвинут на 120 эл. Градусов относительно первого сигнала, а второй на 240
градусов. Период синусоидальной огибающей задается интегратором временной
развертки, который сделан методом накапливающего сумматора с переменным
коэффициентом
суммирования.
Амплитуда
огибающей
и
следовательно
результирующий диапазон изменения скважности импульсов несущей на выходе
инвертора, определяется как произведение текущего задания амплитуды
нормированного к единице на выход формирователя синусоидального сигнала
каждой из фаз. Предусмотрена цепь корректировки задания, представляющая
пропорциональный
регулятор,
для
поддержания
постоянного
значения
амплитуды на выходе инвертора, в зависимости от меняющегося напряжения в
звене постоянного тока,.
Сигналы модуляции изначально имеют не синусоидальную форму. В
процессе исследования стало ясно, что для повышения эффективности
использования напряжения в звене постоянного тока можно вводить до 15%
амплитуды третьей гармоники от основной частоты огибающей, при этом в
линейных токах нагрузки данная составляющая подавляется и не оказывает
негативного влияния.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
18
3 Проектирование и проверка на моделях алгоритмов и методов
управления полупроводниковыми преобразователями электроэнергии
По завершении предварительного моделирования были сформированы
математические прототипы систем управления выпрямителем и инвертором,
определены принципы построения. Осуществлен переход от математических
моделей в среде PSIM, к элементной базе цифровой электроники для
последующей имплементации в цифровую систему управления.
В качестве основы построения выбраны ПЛИС. Выбор определяется
несколькими причина. Первая - это аппаратная реализация, с привязкой к
периодам синхрогенератора. Это нам гарантирует формирование управляющих
сигналов в заданные промежутки времени. Вторая – это то, что в ПЛИС все
процессы выполняются параллельно и синхронно с периодами тактового
генератора, что отличает от последовательной программной реализации
алгоритмов
на
микропроцессоре.
защищенность от
Наиболее
весомым
является
высокая
сбоев конечных логических автоматов, реализованных в
базисе ПЛИС, в то время как программные обработчики циклических процессов
подвержены “зависанию”.
Таким образом, дальнейшее проектирование комплексной системы
управления велось с учетом особенностей размещения ее основных элементов в
виде синтезируемых логических структур на кристаллах ПЛИС. Системы
управления выпрямителем и инвертором не имеют общих связей кроме
интерфейса настройки режимов работы. Поэтому желательно выделить их в
отдельные
контроллеры
и
проводить
поочередную
проработку
их
конфигурации.
Структурная схема контроллера трехфазного выпрямителя приведена на
рисунке 9.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
19
Рисунок 9 – Структурная схема импульсно-фазового контроллера
трехфазного выпрямителя
Блок параллельного 8-разрядного интерфейса с мультиплексированной
шиной адреса и данных – это коммуникационная основа контроллера СИФУ.
Интерфейс предназначен для конфигурации режимов работы контроллера и
обмена данными с центральным процессором комплексной системы управления.
Оснащение контроллера параллельным интерфейсом позволяет интегрировать
регистры конфигурации контроллера СИФУ в адресное пространство вводавывода управляющего микропроцессора, а также без труда добавлять и изменять
количество
периферийных
управляющих
регистров,
обслуживаемых
параллельным интерфейсом. Меньшее количество задействованных выводов
центрального процессора позволит упростить последующую трассировку и
компоновку
печатной
платы,
поэтому
стоит
использовать
принцип
мультиплексирования.
Имплементированный блок параллельного интерфейса осуществляет 2байтовые пересылки. Сначала во внутренний буфер пересылается адрес
назначения, который в свою очередь поступает на внутренний дешифратор
адресов, после чего по внутренней шине пересылается байт данных в регистр
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
20
назначения. Внутренняя шина объединяет четыре программно-доступных
регистра, хранящие значения конфигурации. Два из них имеют биториентированный формат флагов, их установка определяет режим работы
контроллера СИФУ. Конфигурация режимов дает право настраивать работу с
одиночным или сдвоенным импульсом, установить длительность управляющего
импульса, выбрать сплошной импульс управления или с заполнением ВЧ
составляющей, выбрать длительность начального форсирующего импульса.
Кроме этого побитно программно доступны две линии цифрового вывода,
которые могут использоваться по усмотрению пользователя, например для
управления контактором подключения сети или реле, коммутирующим
выходную полярность.
Блок из трех таймеров – это следующим важный узел контроллера СИФУ.
Каждый из таймеров отсчитывает временные интервалы только для своей фазы
управления. Для экономии площади на кристалле таймеры фазы поочереди
отсчитывают временные интервалы угла регулирования и длительности.
Значения отсчитываемых временных интервалов поочередно подаются в таймер
из соответствующих регистров с помощью мультиплексора данных, который
находится под управлением блока логики, получающего синхронизацию от
питающей сети. Данный блок логики играет роль дешифратора и в зависимости
от состояния входов синхронизации выдает мультиплексору сигнал на
коммутацию
канала
связи
соответствующего
таймера
к
регистру
отсчитываемого временного интервала. Формируемые тремя каналами таймеров
импульсы поступают на логический блок совмещения. В нем происходит
разделение временных интервалов и преобразование трех фазовых каналов в
шесть каналов управления, по одному на каждый полупериод фазы.
Блок логики совмещения использует флаг регистра режима,
переключает
ступенчатые
наложения
импульсов
из
который
соседней
фазы
шестиканальной системы для получения сдвоенных или одиночных импульсов.
Полученная последовательность обрабатывается блоком формирования ВЧ
заполнения, временные интервалы для которого формируются отдельным
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
21
таймером и селектором. Данный таймер сильно отличается от таймеров фазы,
потому что будет выполняется по принципу формирователя фиксированного
набор частот, и не может быть программно перенастроен. Для управления
выбором
заполнения
используется
программно
доступный
селектор,
позволяющий подать частоту с одного из фиксированных выходов таймера на
блок формирователя заполнения.
Для правильной работы контроллеру СИФУ требуется формирователь
синхронизации, который преобразует синусоидальные напряжения сети в
прямоугольную синхронизирующую последовательность. Трехфазная мостовая
схема выпрямителя осуществляет выпрямление линейных напряжений. По
правилам
электробезопасности
система
управления
обязана
иметь
или
гальваническую изоляцию от токоведущих цепей высокого напряжения или
использовать защитное заземление в качестве потенциала общей точки. В таком
случае
для
получения
синхронизации
используют
развязывающий
трансформатор, который одновременно позволяет получить и гальваническую
изоляцию, и синхронизацию от линейных напряжений. Но в некоторых
ситуациях применение трансформатора становится невозможным из-за его
массы и габаритов или невозможности выполнения межобмоточной изоляции,
соответствующей
резистивных
рабочему
делителей
синхронизации,
при
последовательности
напряжению.
фазных
этом
напряжений
требуется
линейного
Но
возможно
для
формирование
напряжения
из
использование
получения
сигналов
синхронизирующей
фазного,
получаемого
с
делителей.
В структуре системы управления формирователь выполнен на основе трех
компараторов, охваченных петлей гистерезиса для предотвращения ложных
переключений. Отдельно стоит отметить использование для всей схемы
источника питания только одной полярности, этого удалось достичь, сместив
входные напряжения в область положительной полярности, применив метод
виртуального нуля на резистивно-конденсаторном делителе. Также схема
получила нечувствительность к наличию постоянной составляющей между
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
22
общей точкой соединения “звезда” трехфазной сети и точкой заземления, что
также положительно сказывается на устойчивости работы формирователя
синхронизации.
Последним на пути прохождения полностью сформированных сигналов
СИФУ стоит один из самых важных элементов всего контроллера – блок
вентилей аварийной защиты. Его основное назначение
– это разрешать или
запрещать прохождение сформированных импульсов на внешние выводы
микросхемы контроллера, и выполнять функции шинного формирователя для
повышения нагрузочной способности внешних выводов.
Отдельным блоком в структурной схеме реализованного контроллера
выделен блок синхронизирующей последовательности. Он получает тактовый
сигнал через внешний вход GCLK, делит его частоту, после чего распределяет
по внутренним блокам, в частности от его работы зависит работа контроллера в
целом, а также длительности всех формируемых временных интервалов.
Работа системы управления была промоделирована в среде VSMISIS7 Proteus. Дальнейшая разработка детализированных моделей проводилась в среде
автоматизированного проектирования и симуляции ALTERAQuartusII. Это
позволяет моделировать работу полученной конфигурации с учетом всех
особенностей микросхем программируемой логики, вычислять требуемую
логическую емкость необходимую для
размещения на кристалле ПЛИС.
Результаты моделирования подтвердили расчеты. Общая логическая емкость,
необходимая для конфигурирования контроллера выпрямителя составила 134
логических макроячейки.
Затем была проработана структурная схема контроллера трехфазного
инвертора. (рисунок 10). Так же, как и в структуре контроллера выпрямителя, в
данной структуре предусмотрен параллельный порт с дешифратором адресов
для задания режимов работы, схемная модель порта не имеет отличий от
приведенной
выше.
Это
позволяет
в дальнейшем
произвести простое
объединение адресного пространства обоих контроллеров для получения
единого интерфейса для обращения к внутренним регистровым файлам как
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
23
контроллера выпрямителя, так и инвертора. Для связи с внешними устройствами
добавлен синхронный последовательный порт контроллера аналого-цифрового
преобразователя (АЦП).Главные задачи его - это непрерывный опрос каналов и
передача
результатов
размещения
во
преобразования
внутренних ячейках
по
последовательной
памяти.
Загруженные
шине
для
значения
в
дальнейшем могут быть использованы внутренними модулями контроллера
инвертора или переданы через параллельную мультиплексированную шину
внешнему устройству.
Рисунок 10 – Структурная схема формирователя широтно-импульсного
контроллера с синусоидальной огибающей для трехфазного инвертора.
С
целью
получения
перенастраиваемого
контроллера
трехфазного
инвертора в структурную схему были введены дополнительные блоки, которые
не учитывали в предварительном моделировании. Так был добавлен блок
ускорения/замедления,
Изм Лист № докум.
Подп.
включающий
Дата
накапливающий
сумматор
БР-02069964-11.03.04-10-19
для
Лист
24
формирования интенсивности изменения частоты и реверсивный счетчик,
который определяет текущее задание выходной частоты и получает тактовые
импульсы по переполнению накапливающего сумматора. Еще был добавлен
блок зависимого изменения амплитуды огибающей от текущей частоты, в его
основе лежит сдвигающий умножитель. Эти блоки предназначены для
построения систем управления, в которых инвертор используется в составе
преобразователя частоты для электропривода переменного тока, и могут быть
отключены при использовании системы управления совместно с инвертором
выходного каскада в источнике бесперебойного питания.
Для гибкой настройки системы управления инвертором в ее структуре
предусмотрено 2 селектора, доступных через внешний интерфейс. Селекторы
осуществляют выбор источников задания амплитуды и частоты, которыми могут
быть аналоговые входы АЦП, внутренние регистры параллельного интерфейса,
или модули для управления электроприводом.
Формирование
периода
синусоидальной
огибающей
производится
подсчетом периодов тактовых импульсов в накапливающем сумматоре),
которые поступают от формирователя синхронизирующих последовательностей.
При переполнении сумматора его накапливающий регистр перезагружается
некоторым числом, определяющим требуемую выходную частоту огибающей,
одновременно с этим происходит инкрементирование счетчика адресов таблицы
синуса. С целью экономии ресурсов внутренней памяти таблица содержит
значения синуса только в диапазон 180 градусов, с 8-разрядной дискретизацией
по амплитуде. Для формирования огибающей в диапазоне более 180 градусов
(об этом говорит переход старшего разряда счетчика адресов в лог.1)
производится умножение исходных данных таблицы на -1. Данное действие
осуществляется в 12-разрядном параллельном умножителе совместно с
умножением на значение текущего задания амплитуды.
В структуре контроллера инвертора предусмотрены буферы хранения
текущего значения коэффициента модуляции для каждой из фаз, которые
обновляются при каждом изменении счетчика адресов таблицы синуса. Также
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
25
данные буферы совместно со счетчиком фаз, селектором смещения и
сумматором адреса предназначены для организации смещения синусоидальных
огибающих по фазам. Организовано это следующим образом: одновременно с
изменением счетчика базового адреса происходит разрешения работы счетчика
фаз, который через селектор смещения последовательно выбирает приращения к
текущему адресу в таблице синуса. Одновременно выдаются стробирующие
сигналы на запись значения из таблицы в соответствующий регистр фазы. После
того как все три буферных регистра фаз перезагружены новыми значениями,
счетчик фаз блокируется до следующего шага счетчика базового адреса в
таблице.
Последним блоком является широтно-импульсный модулятор, состоящий
из
трех
12-разрядных
компараторов
кода
и
формирователя
линейно
нарастающего кода, определяющего несущую частоту модуляции. С выхода
каждого компаратора сигнал поступает на таймер гарантированной паузы,
который задерживает фронт переключения сигнала ШИМ, полученного с
компаратора на фиксированное время, тем самым вводя гарантированную паузу
в работу вентилей при их взаимной коммутации. Последним на пути
сформированных сигналов управления инвертором стоит блок с логическими
вентилями аварийной защиты, имеющий приоритетное управление от внешнего
защитного устройства по сигналу ALR. Такое решение позволяет создать в
системе управления двухуровневую независимую защиту на отключение
преобразователя при аварийных режимах работы.
По результатам моделирования системы управления инвертором была
получена логическая емкость, необходимая для конфигурирования на кристалле
ПЛИС, которая составила 797 логических макроячеек.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
26
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
27
4 Разработка структуры комплексной цифровой системы управления
преобразователем, определение элементной базы для построения
На основании выполненных ранее результатов моделирования в среде
Quartus II были получены данные о логической емкости, необходимой для
аппаратной реализации системы управления преобразователем, составляющей
суммарно 931 макроячейку, что позволяет сделать предварительное заключение
о возможности ее размещения с некоторым запасом в объеме кристалла
программируемой логической микросхемы (ПЛИС) со структурой CPLD и
максимальной емкостью 1270 макроячеек. При этом оставшейся логической
емкости в 339 макроячеек недостаточно для размещения на базе кристалла
интегрированного микропроцессора с целью общей координации работы всей
системы управления. Таким образом возможно два пути решения задачи:
1. Использование более ёмкой матрицы ПЛИС с архитектурой FPGA
(EP1C3T144)
2. Использование отдельного внешнего микропроцессора и ПЛИС с
архитектурой CPLD (EPM1270T144)
Рассмотрение данных вариантов привело к следующим результатам:
Использование FPGA фирмы ALTERA серии Cyclone потребует внешней
конфигурационной памяти (EPCS4), а также кроме основных источников
питания 5 В, 3,3 В еще и дополнительного источника питания 1,8 В, при этом
для удобства проведения работ по отладке необходимо размещение микросхемы
внешней памяти программ для интегрированного микропроцессора. Также стоит
отметить, что конвертирование проектов с логической емкостью более 1500
макроячеек в базис базовых матричных кристаллов (БМК) становится
затруднительным, и может послужить препятствием при переходе к выпуску
полузаказных микросхем силами сторонних заводов-изготовителей.
Во втором варианте использование внешнего микропроцессора более
удобно для проведения отладки в связке с БИС программируемой логической
микросхемы CPLD. А по сравнению с первым, такое решение не увеличивает
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
28
число корпусов микросхем на печатной плате комплексной системы управления,
так как для CPLD не требуется конфигурационная память, и достаточно всего
одного источника питания 3,3 В. Общая структурная схема комплексной
системы управления приведена на рисунке 11, она состоит из двух базовых
элементов: микропроцессора и БИС управления преобразователем, выполненной
на базе ПЛИС архитектуры CPLD.
Рисунок 11 – Общая структурная схема комплексной системы управления
В данном случае микропроцессор выполняет периферийные функции
системы управления, такие как формирование структуры меню оператора,
обслуживание индикации и внешнего последовательного интерфейса. Также
микропроцессор является ведущим на мультиплексированной параллельной
шине, связывающей его с внутренними регистрами управления аппаратных
контроллеров выпрямителя и инвертора, которые размещаются на кристалле
ПЛИС. В качестве внешнего микропроцессора выбрана архитектура Intel MCS51 (C8051), так как де факто она является промышленным стандартом, и
выпускается
множеством
различных
производителей,
в
том
числе
и
отечественной промышленностью. Кроме того, имеется возможность простого
расширения внешней памяти данных, которая может быть использована для
сопряжения с параллельной шиной реализуемого контроллера. При таком
построении комплексной системы управления микропроцессор полностью
освобождается от жестких временных ограничений на формирование сигналов
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
29
управления силовыми приборами, а следовательно сбои в работе программного
обеспечения не могут повлиять на корректность выдачи управляющих сигналов
и повлечь за собой неконтролируемую аварийную ситуацию.
Как видно из структурной схемы, логика работы конфигурации ПЛИС
включает в себя функции сбора данных с цепей обратной связи, таких как
датчики тока и напряжения, однако ПЛИС не имеют в своем составе аналоговых
узлов и оперируют только с цифровыми сигналами, в связи с этим комплексная
система управления должна содержать внешнюю микросхему многоканального
аналого-цифрового
преобразователя,
подключаемого
посредством
последовательного интерфейса с максимальной скоростью обмена 1,5 Мбит/с,
что для 12-разрядного АЦП с учетом расходов на выбор канала составит ~90
кВыб/с на канал.
Для предотвращения развития аварийных токов, связанных с коротким
замыканием
на
выходе
силового
преобразователя
или
перегрузкой,
предусматривается наличие аппаратного отдельно реализуемого компаратора
защиты, выдающего сигнал отключения на выходные буферы ПЛИС,
приводящие к мгновенному прекращению подачи сигналов управления на
силовые приборы независимо от текущего состояния внутренней логики.
Так как порты ввода вывода ПЛИС имеют малую нагрузочную
способность и оперируют с логическими уровнями КМОП 3,3 В, то сигналы,
формируемые на них, не могут быть непосредственно использованы для
управления силовыми ключами и не могут быть переданы на расстояние более
десятка сантиметров. Для преодоления этого ограничения в структуре
комплексной системы управления должны содержаться формирователи уровней,
позволяющие
передать
сигналы
управления
по
внешним
связям
непосредственно до драйверов силовых приборов.
Таким образом, законченная комплексная система управления силовым
преобразователем, содержащим один комплект выпрямителя и один комплект
инвертора, может быть полностью реализована в одноплатном варианте,
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
30
включающем
интерфейс
взаимодействия
с
оператором
и
внешней
автоматизированной системой управления технологическим процессом.
5
Разработка
функциональных
узлов
системы
управления
полупроводниковыми преобразователями электроэнергии
Проектирование
полупроводниковыми
универсальной
преобразователями
системы
управления
электроэнергии
должно
быть
выполнено исходя из условий обеспечения широкой совместимости как с
первичными датчиками входных параметров тока и напряжения, так и с
драйверами
силовых
полупроводниковых
приборов.
Одновременно
при
реализации системы управления должны быть учтены вопросы взаимодействия
с оператором путем создания удобного человеко-машинного интерфейса,
позволяющего отображать параметры работы системы управления, структуру
пунктов меню и вводить необходимые исходные данные.
Разработка прототипов отдельных узлов системы управления была
частично
начата
предварительная
на
первом
структурная
этапе,
схема,
исходя
которая
из
этого
была
получена
являлась опорной и при
проектировании общей принципиальной схемы системы управления, но по
факту ее завершения претерпела некоторые изменения и уточнения.
Данное адресное пространство также доступно микроконтроллеру (МК),
выполняющему роль супервизора системы управления. На рисунке 12 показан
фрагмент схемы сопряжения МК и ПЛИС через 8-разрядную параллельную
шину. Такое подключение позволяет аппаратным средствам МК формировать
сигналы стробирования передачи данных синхронно с внутренним потоком
команд, тем самым получая максимальную пропускную способность. Еще
одним
важным
преимуществом
такого
объединения
с
периферийного
контроллером является интеграция его адресного пространства в память данных
МК, что упрощает процесс взаимодействия с ним на программном уровне.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
31
Рисунок 12 - Фрагмент принципиальной схемы системы управления (узел
сопряжения МК и ПЛИС)
В
первоначальном
варианте
структуры
системы
управления
для
обеспечения синхронизации импульсно-фазового управления тиристорами
предполагалось
использование
аппаратного
блока
компараторов,
формирующего из 3х-фазных напряжений на своем выходе три цифровых
сигнала с фронтом переключения, совпадающим по времени с моментом
естественной коммутации линейных напряжений питающей сети. При этом так
же оставалась необходимость контроля значения напряжения питающей сети. В
связи
с
этим
для
минимизации
количества
аналоговых
блоков
в
скорректированной структуре системы управления было решено отказаться от
аналогового формирователя синхронизации, и произвести его реализацию
цифровыми
методами
в
структуре
ПЛИС
путем
обработки
данных,
поступающих с измерительных каналов аналого-цифрового преобразователя.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
32
Для
обеспечения
совместной
работы
подсистемы
измерения
входного
напряжения питающей сети и подсистемы синхронизации, необходимо
оцифровывать поступающие синусоидальные сигналы сетевого напряжения с
учетом знака. Так как АЦП и вся система управления в целом питается
однополярным
напряжением
питания,
то
необходимо
выполнить
предварительную нормализацию и смещение входных сигналов. Фрагмент
данной схемы приведен на рисунке 13.
Рисунок 13 – Фрагмент принципиальной схемы системы управления (узел
нормализации сигналов с датчиков входного напряжения и датчика тока)
Схема
построена
на
базе
трех
операционных
усилителей
(ОУ),
включенных
по схеме
усилителя со смещающим напряжением, в качестве
которого используется опорное напряжение АЦП, равное 4,096 В, что
изначально позволяет получать цифровые отсчеты с АЦП, в которых старший
разряд является указателем знака. Кроме измерения входных напряжений
необходимо контролировать ток потребления, причем в качестве датчика тока
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
33
могут
применяться
различные
устройства:
резистивный
шунт
75
мВ,
трансформатор тока, компенсационный датчик тока, датчик тока на основе
эффекта
Холла.
Для
охвата
совместимости
системы
управления
с
всевозможными датчиками тока предусмотрен каскад нормализации сигналов
тока, выполненный в 2 каскада, первый представляет собой усилитель
дифференциального
напряжения
(снимаемого,
например,
с
шунта)
с
возможностью работы с двуполярным или однополярным входным сигналом,
выбор которого осуществляется переключателем SW1, подключая или отключая
напряжение смещения. Второй каскад является масштабным усилителем и
необходим для выравнивания динамического диапазона токового сигнала по
величине 12-разрядной сетки АЦП.
Для отображения и ввода текущих параметров, режимов работы, а также
отображения пунктов меню в системы управления предусмотрен клавиатурно дисплейный
модуль,
выполненный
в
двух
вариантах:
резидентный
–
располагающийся в корпусе вместе с системной платой, выносной –
располагается вне корпуса системы управления и может использоваться для
дистанционного управления на небольшом расстоянии. Принципиальная схема
резидентного дисплейного модуля приведена на рисунке 14, она состоит из
знакосинтезирующего OLED дисплея, организованного в 4 строки по 20
символов каждая, валкодера и клавиатуры, состоящей из 16 кнопок. Для
сокращения числа связей клавиатура имеет матричную организацию 4 сроки - 4
столбца, обслуживание клавиатуры и дисплея осуществляется периферийным
контроллером на основной плате системы управления.
Выносной модуль клавиатуры и дисплея по количеству элементов ввода и
отображения информации не имеет отличий от резидентного, но ввиду
необходимости максимального сокращения числа проводников, связывающих
его с основной платой системы управления, содержит свой контроллер
клавиатуры и дисплея, выполненный на ПЛИС емкостью 128 макроячеек.
Контроллер получает тактовые импульсы с частотой около 200 кГц от
RCгенератора, выполненного на 2х элементах НЕ микросхемы 74HC04,
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
34
осуществляет
сканирование
матричной
клавиатуры,
обслуживание
параллельной 8-разрядной дисплейной шины и загрузку символьных сток из
последовательной памяти 93LC46.
Рисунок 14– Принципиальная схема модуля клавиатуры и дисплея
Основной задачей контроллера является взаимодействие с основной
платой системы управления через синхронный последовательный интерфейс,
выведенный на разъем X1, передача данных для отображения на дисплее
осуществляется асинхронно по инициативе МК платы системы управления.
Передача данных о кодах
нажатых клавиш и положении валкодера в свою
очередь осуществляется в два этапа: на первом этапе контроллер клавиатуры
выставляет сигнал запроса прерывания к МК (INT), после чего МК инициирует
обмен по последовательной синхронной шине (MOSI, MISO,SCLK)и загружает
код клавиши или текущее значение счетчика положения валкодера. Питание
выносного клавиатурно – дисплейного модуля осуществляется от основной
платы системы управления, через разъем X1 напряжением 5 В. Также для
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
35
осуществления загрузки конфигурации контроллера клавиатуры и дисплея в
ПЛИС EPM7128S предусмотрен отдельный сервисный 5-контактный разъем
X2,на который выведены сигналы JTAG интерфейса.
6 Программирование
узлов
системы
управления
полупроводниковыми преобразователями электроэнергии
В структуре системы управления содержится МК, выполняющий роль её
супервизора, основными задачами которого являются: начальная проверка
работоспособности и настройка внутренних и внешних (ПЛИС) периферийных
модулей, создание структуры меню, подготовка к отображению, ввод и
изменение
настроечных
коэффициентов
системы
управления,
прием
и
декодирование символьных команд от последовательного порта RS232, выдача
текущих параметров и подтверждение готовности через последовательный порт,
обслуживание порта дискретных команд, обслуживание интерфейса внешнего
клавиатурно - дисплейного модуля, формирование таблиц соответствия кодов
нажатых клавиш. Обобщенный алгоритм программного обеспечения (ПО),
исполняемого на резидентном МК можно разделить на несколько частей: первая
линейная часть - это процесс начальной инициализации, вторая линейная часть это процесс активирования защит и подготовка интерфейса оператора
(отображение на дисплее строк меню). Оставшаяся часть алгоритма содержит
дерево ветвлений, распределяющее процессорное время между несколькими
различными задачами, связанными через обработчик команд. Дерево ветвлений
составляет основной
обслуживающих
цикл
задач
программы,
выполняется
в
выполнение
вспомогательных и
обработчиках
соответствующих
прерываний.
Всего в основном цикле алгоритма содержится 8 ветвлений, из которых 4
относятся к процедуре обслуживания последовательного порта, 3 - к процедуре
обслуживания интерфейса пользователя, и 1 - к процедуре обслуживания
дискретного
Изм Лист № докум.
ввода-вывода.
Подп.
Дата
Обработка
команд,
поступающих
БР-02069964-11.03.04-10-19
в
Лист
36
последовательный порт, выполняется следующим образом: поступающие байты
данных обработчиком прерывания от UART сохраняются во внутреннем буфере,
одновременно с этим осуществляется проверка на принятие символа завершения
передачи, и в случае его обнаружения устанавливается флаг “Принят пакет через
RS232”. При очередном проходе основного цикла алгоритма программа,
обнаружив
данный
флаг,
используя
таблицу
соответствия,
попытается
декодировать содержимое буфера. Если совпадающая символьная запись будет
найдена в таблице, то ей будет сопоставлен внутренний номер команды и
установлен
флаг
соответствующей
“Декодирована
записи
будет
команда”.
установлен
В
флаг
случае
“Ошибка
отсутствия
пакета”.
В
зависимости от установленного флага в основном цикле алгоритма будет
выполнена или передача пакета с символом ошибки, или передано управление
процедуре обработчика команд, которая выполнит действия, соответствующие
номеру команды, содержащейся в буфере. Если результат выполнения команды
будет успешным, то процедура обработки команд выставит флаг “Команда
выполнена”, в противном случае установлен флаг “Ошибка пакета”.
На
очередном витке прохода основного цикла алгоритма состояние выполнения
команды будет передано через последовательный порт МК.
Алгоритм
обслуживания дискретного ввода команд для экономии ресурсов памяти МК
выполняется схожим образом, за тем лишь исключением, что использует
собственную таблицу сопоставления сигналов, получаемых через порт, номеру
команды, после чего вызывается единая процедура обработки номера команды.
Такое решение позволяет программно, через меню, изменять таблицу
соответствия, и тем самым менять состав и назначение команд, подаваемых
через дискретный порт внешним устройством.
Так как основные цифровые блоки формирования импульсных сигналов
управления силовыми п/п приборами и регуляторы обратной связи находятся в
структуре
периферийного
контроллера,
выполненного
на
ПЛИС,
то
микроконтроллеру отводится второстепенная роль в работе системы управления.
МК соединен с ПЛИС параллельной мультиплексируемой шиной, при этом
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
37
внутренние регистры ПЛИС стали программно доступны для МК через область
в памяти данных. С целью дальнейшего написания программного обеспечения
для МК была сформирована логическая модель представления данных,
состоящая из области памяти и входящего в неё регистрового файла.
Рисунок 15– Организация адресации и ресурсов памяти в МК
На рисунке 15 показана диаграмма распределения ресурсов памяти
микроконтроллеров с архитектурой MCS-251, на которой пунктиром показано
нахождение регистрового файла периферийного контроллера на ПЛИС в
области XDATA (внешней памяти данных), адресуемой командами MOVX через
регистры указатели R0,R1. Косвенная адресация через R0,R1 позволяет
адресовать 256 байт, а через указатель DPTR 64 Кбайт регистрового
пространства ввода-вывода, но при этом для вывода старшего байта адреса
требуется дополнительный порт P2. В схемотехнической реализации системы
управления предусматривается использование только мультиплексной передачи
одного байта адреса и одного байта данных за 3 тактовых импульса (время
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
38
выполнения команды MOVX). В таблице 2 приведено распределение по адресам
XDATA внутренних регистров периферийного контроллера, предназначенных
для настройки режимов работы модуля управления инвертором, модуля
управления выпрямителем, модуля сбора данных с АЦП, контроллера
клавиатуры и дисплея.
Таблица 2 - Распределение адресного пространства управляющих регистров
ПЛИС
Адре
с
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
Назначение регистра
Выходная частота инвертора, приведенная к диапазону 0,2 - 50Гц
Интенсивность изменения частоты инвертора
Setting_Reg - регистр длительности форсирующего импульса и управления
выпрямителем
Dual_Imp_control – регистр управления сдваиванием импульсов выпрямителя
Регистр комплексного управления преобразователем
Регистр режимов инвертора
Флаги состояния модулей контроллера
Стартовая частота инвертора
Задание амплитуды инвертора
Задание гарантированной паузы транзиторных ключей инвертора
Порог напряжения отпирания тормозного ключа
Значение номинального тока
Значение тока срабатывания защиты от короткого замыкания
Начальное значение регулятора при постоянном токе (5)
Интенсивность регулятора амплитуды (7)
Регистр значения ЦАП аналогового выхода (LSB)
Регистр значения ЦАП аналогового выхода (MSB)
Регистр режимов ЦАП аналогового выхода
Alpha_Reg – регистр угла регулирования (Дискретность 0,17 град.)
Pulse_Reg – регистр общей длительности импульса (Дискретность 1 град.)
Датчик постоянного тока Ch0_ADC-LSB(7...0)
Ch0_ADC -MSB(11...4)
Датчик температуры Ch1_ADC-LSB(7...0)
Ch1_ADC -MSB(11...4)
Напряжение фазы BCh2_ADC-LSB(7...0)
Ch2_ADC -MSB(11...4)
Напряжение фазы CCh3_ADC-LSB(7...0)
Ch3_ADC -MSB(11...4)
Напряжение фазы ACh4_ADC-LSB(7...0)
Ch4_ADC -MSB(11...4)
ТокФазы A Ch5_ADC-LSB(7...0)
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
39
1F
20
21
22
23
24
25
26
27
Ch5_ADC -MSB(11...4)
Ток Фазы BCh6_ADC-LSB(7...0)
Ch6_ADC -MSB(11...4)
Датчик напряжения звена постоянного тока Ch7_ADC-LSB(7...0)
Ch7_ADC -MSB(11...4)
Key_code – Регистр кода последней нажатой клавиши
Display_DATA – Регистр символов, отображаемых на дисплее
Display_MODE – Регистр режимов работы дисплея
ENC_CN – Регистр положения валкодера
Регистры периферийного контроллера содержат 3 типа представления
данных: регистры численных значений параметра и бит-ориентированные
регистры байтовой длины. Хранение 12-разрядных значений ЦАП и АЦП
осуществляется в регистрах числовых значений двухбайтной длины. Т.к. шина,
соединяющая
МК
и
ПЛИС
8-разрядная,
то
передача
слова
данных
осуществляется побайтно в два этапа, при этом по младшему адресу (базовому
адресу) располагается младший байт слова, по старшему адресу старший байт
слова.
На рисунке 16 показаны структура и назначение битовых флагов регистра
управления модулем выпрямителя, биты сгруппированы в двух байтах,
располагающихся по адресам 02h, 03h. Регистр по адресу 02h имеет смешанную
структуру, т.к. старшая тетрада регистра отводится под четырехразрядное
двоичное число, задающее длительность стартового импульса, а младшая
состоит из битовых флагов, назначение которых указано на рисунке 16.
Несмотря на то, что система команд MCS-251 содержит команды битовых
операций, данные команды не могут адресоваться к области памяти XDATA. В
связи с этим для изменения состояния отдельных бит регистров в ПЛИС
необходимо хранить в оперативной памяти их локальную теневую копию.
Используя
команды
поразрядных
байтовых
логических
операций
с
соответствующими битовыми масками, можно установить или сбросить
отдельные биты в теневом регистре, после чего его содержимое перезаписать в
целевой регистр ПЛИС. Данное обстоятельство существенно снижает общее
быстродействие МК при битовых операциях с внешней памятью данных, на
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
40
которую требуется пять инструкций по сравнению с одной инструкцией при
работе с внутренней памятью. Поэтому количество бит-ориентированных
регистров, содержащихся в регистровом файле периферийного контроллера,
было сведено к минимуму. Их структуры с расшифровками назначения бит
приведены на рисунках 16 и 17.
Рисунок 16 – Битовая организация управляющих регистров ПЛИС
Рисунок 17 – Битовая организация управляющих регистров ПЛИС
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
41
В соответствии с элементами ранее разработанного алгоритма и
особенностями обращения к ресурсам периферийного контроллера на языке
ассемблера
было
написано
целевое
программное
обеспечение
для
микроконтроллера AT89S8253, имеющего усовершенствованную архитектуру
MCS-251, с временем выполнения большинства инструкции за 2 периода
тактового генератора.
7
Реализация
и
экспериментальные
исследования
системы
управления полупроводниковыми преобразователями электроэнергии
Проектирование
универсальной
системы
управления
полупроводниковыми преобразователями электроэнергии было выполнено
исходя из условий обеспечения широкой совместимости как с первичными
датчиками тока и напряжения, так и с драйверами силовых полупроводниковых
приборов. Одновременно при реализации системы управления были решены
вопросы взаимодействия с оператором путем создания удобного человекомашинного интерфейса, позволяющего отображать параметры работы системы,
структуру пунктов меню и вводить необходимые исходные данные. Для
отображения и ввода текущих параметров, режимов работы, а также
отображения пунктов меню предусмотрен клавиатурно - дисплейный модуль,
выполненный в двух вариантах: резидентный – располагающийся в корпусе
вместе с системной платой, и выносной – располагается вне корпуса системы
управления и может использоваться для дистанционного управления на
небольшом расстоянии. Обслуживание клавиатуры и дисплея осуществляется
периферийным контроллером на основной плате системы.
В системе управления предусмотрен также ряд возможностей для
взаимодействия
с
внешними
управляющими
устройствами
и
автоматизированными системами управления верхнего уровня, имеется порт для
подключения внутрисхемного отладчика ATISP или выносного клавиатурно дисплейного модуля. Тактирование системы управления осуществляется от двух
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
42
источников:
микроконтроллер
тактируется
от
внутреннего
генератора,
стабилизированного кварцевым резонатором с частотой 22,118 МГц, а
периферийный контроллер, выполненный на ПЛИС, от внешнего кварцевого
генератора с частотой 32,768 МГц. Выбор таких частот определен удобством
кратности деления основной частоты, в случае с МК для получения стандартной
сетки скоростей передачи порта UART (115200 бит/с, 57600 бит/c), а в случае с
ПЛИС мерных временных промежутков, кратных 1 секунде.
Алгоритм программного обеспечения, исполняемого на резидентном
микроконтроллере, включает процесс начальной инициализации, активирования
защит и подготовки интерфейса оператора (отображение на дисплее строк
меню). Вторая часть алгоритма содержит дерево ветвлений, распределяющее
процессорное время между несколькими различными задачами, связанными
через обработчик команд. Дерево ветвлений составляет основной цикл
программы, выполнение вспомогательных и обслуживающих задач выполняется
в обработчиках соответствующих прерываний. В соответствии с элементами
разработанного
алгоритма
и
особенностями
обращения
к
ресурсам
периферийного контроллера на языке ассемблера было написано целевое
программное обеспечение для микроконтроллера AT89S8253, имеющего
усовершенствованную
архитектуру
MCS-251,
с
временем
выполнения
большинства инструкций за 2 периода тактового генератора.
По результатам прототипирования схемотехнических решений, финальной
настройки аппаратной части и ее совместной отладки с программным
обеспечением были разработаны и трассированы печатные платы макетного
образца универсальной системы управления на основе ПЛИС. Макет системы
управления состоит из двух плат: базовой, на которой размещаются все
основные, и дисплейной, на которой размещаются клавиатура, валкодер,
OLEDдисплей. Платы устанавливаются этажеркой одна над другой, и
соединяются через межплатный штыревой разъем типа BLS. Компоновка всех
плат выполнена преимущественно с использованием электронных компонентов
поверхностного монтажа (SMD), что позволило увеличить плотность монтажа и
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
43
значительно сократить объем корпуса, занимаемый системой управления.
Базовая печатная плата выполнена из двухстороннего 1,5-миллиметрового
фольгированного
стеклотекстолита
с
переходами
между
слоями
через
металлизированные отверстия. На рисунках 18, 19 представлены послойные
топологии базовой печатной платы системы управления.
Рисунок 18 – Трассировка печатной платы системы управления со стороны
элементов поверхностного монтажа
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
44
Рисунок 19 – Трассировка печатной платы системы управления со стороны
элементов выводного монтажа
Для удобства присоединения внешних кабельных связей разъемы
подключения расположены в ряд с верхней и нижней сторон печатной платы, и
выполнены в виде разрывных винтовых клемм. Трассировка сигнальных линий
базовой печатной платы выполнялась по возможности в одном слое, по стороне
компонентов поверхностного монтажа, в верхнем слое содержатся локальные
переходы линий питания и линий распределения опорного напряжения. Большая
часть верхнего слоя покрыта массивным полигоном, соединенным с “землей”.
Такое
решение
позволяет
максимально
повысить
помехозащищенность,
экранируя цепи распределения сигналов, располагающихся в нижнем слое.
Кроме трассированных соединений проекты печатных плат содержат
дополнительную технологическую информацию о расположении паяльной
маски, маркировке мест установки элементов, шелкографии. На рисунках 20, 21
показан результирующий фотовид печатной платы, полученный графическим
моделированием исходного проекта.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
45
Рисунок 20 – Фотовид печатной платы системы управления со стороны
элементов выводного монтажа
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
46
Рисунок 21 – Фотовид печатной платы системы управления со стороны
элементов поверхностного монтажа
По
завершению
проектирования
всех печатных плат,
они
были
изготовлены промышленным способом, осуществлен монтаж электронных
компонентов в соответствии со схемой, осуществлена узловая сборка плат в
единое устройство универсальной системы управления на основе ПЛИС.
Фотографии системы управления в собранном виде показаны на рисунках
22 и 23. На рисунке 24 приведена фотография дисплея при отображении двух
различных пунктов меню.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
47
Рисунок 22– Фотография системы управления в собранном виде
Рисунок 23– Фотография системы управления в собранном виде (вид со
стороны элементов)
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
48
Рисунок 24 – Отображение параметров управления на дисплее системы
управления
Экспериментальная
проверка
функционирования
разработанного
макетного образца системы управления производилась поэтапным снятием
осциллограмм
сигналов
управления
вентилями
преобразователя
с
соответствующих выходов системы управления в различных режимах и с
различными
параметрами
последовательностей
формирования
управления
СПП.
Так,
выходных
на
рисунке
импульсных
25
показана
осциллограмма, на которой был осуществлен захват 6 каналов управления
тиристорами выпрямителя в режиме сдваивания и высокочастотного заполнения
при угле регулирования 1 мС и общей длительности импульса 650 мкС.
Рисунок 25 – Осциллограмма фазы A питающей сети и 6 каналов на
выходе системы управления с шириной импульса 650 мкС
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
49
Также была выполнена проверка формирования 6 сигналов управления
транзисторами инвертора с широтно-импульсной модуляцией и качества
формируемой инвертором синусоидальной огибающей. Для этого был проведен
ряд экспериментов, в которых выходные сигналы спроектированной системы
управления были поданы на маломощный трехфазный мостовой инвертор.
Выход инвертора, в свою очередь, был нагружен на Г-образный фильтр нижних
частот, предназначенный для отсечения высокочастотной несущей ШИМ,
создания контура тока и имитации нагрузки. На рисунке 26 приведены
осциллограммы напряжения, снимаемые на выходе инвертора (канал 1) и на
выходе фильтра (канал 2).
Рисунок 26 – Осциллограмма синусоидальной огибающей фазы W,
полученной после ФНЧ в режиме глубокой синусоидальной модуляции с
частотой 4 Гц
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
50
ЗАКЛЮЧЕНИЕ
В
работе
были
рассмотрены
чаще
наиболее
используемые
полупроводниковые преобразователи электроэнергии, определены силовые
схемы наиболее широкого применения. Разобраны особенности работы силовых
полупроводниковых приборов при различных нагрузках, величины и характер
коммутируемого тока, а также группового соединения. По результатам
проведенного анализа сформированы рекомендации к форме и характеристикам
сигналов управления.
Разработаны модели силовых схем с системой управления. Проведено
моделирование в различных средах. Были получены предварительные данные о
структуре системы управления.
Для повышения параметров надежности и универсальности совместили
реализацию алгоритмов управления выпрямителем и инвертором, в виде
единого
контроллера
с
внешним
интерфейсом
на
базе
микросхем
программируемой логики.
Для сокращения времени на проектирование системы управления,
проверку и отладку разработанных моделей основных функциональных узлов
цифровой системы управления производились в интегрированной среде
разработки ПЛИС QuartusII.
Был проведен ряд конструкторских работ по прототипированию и
макетированию
физической
аппаратной
модели
комплексной
системы
управления, основу которой составляет связка программируемой логической
интегральной
микросхемы
и
микроконтроллера.
математического
моделирования
прототипирования,
выявились
с
некоторые
Сопоставив
результатами
неточности.
результаты
физического
Для
устранения
неточностей пришлось внести корректировки в структурную схему. По
результатам корректировок была синтезирована принципиальная электрическая
схема целевой системы управления, разработаны топологии печатных плат, и их
компоновка
Изм Лист № докум.
в
единый
Подп.
Дата
модуль
перенастраиваемой
системы
управления
БР-02069964-11.03.04-10-19
Лист
51
преобразователем. Вместе с подготовкой аппаратной части системы управления,
на языке ассемблера было разработано программное обеспечение встроенного
микроконтроллера. Это позволило ускорить проведение настройки и отладки
системы управления. В результате выполнения работ по проекту был изготовлен
экспериментальный
управления
осуществлено
трехфазного
образец
разработанной
полупроводниковым
его
совместное
инвертора,
перенастраиваемой
преобразователем
испытание
оснащенного
с
электроэнергии
прототипом
имитатором
системы
и
маломощного
нагрузки,
получены
осциллограммы импульсов управления и выходного напряжения в различных
режимах управления инвертором.
Опытно-конструкторские
перенастраиваемой
работы
системы
по
созданию
управления
макетного
образца
полупроводниковыми
преобразователями на основе ПЛИС и проверке его характеристик, были
проведены в полном объеме. Результаты испытания макетного образца системы
управления согласуются с теоретическими результатами математического
моделирования и подтверждаются снятыми осциллограммами. Параметры
разработанной системы управления соответствуют техническому заданию.
Дальнейшее продолжение работ по данной теме состоит во внедрении
разработанной системы управления в конкретные разработки различных
устройств преобразовательной техники.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
52
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
53
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Семенов Б. Ю. Силовая электроника: от простого к сложному. / Б. Ю.
Семенов — М.: СОЛОН-Пресс, 2005. – 416 с.
2. Стешенко В.Б. ПЛИС фирмы Altera: элементная база, система
проектирования и языки описания аппаратуры. / В. Б. Стешенко — М.:
Издательский дом «Додэка_XXI», 2007. — 576 с.
3. Болл Стюарт Р. Аналоговые интерфейсы микроконтроллеров. / Р.
Стюарт Болл — М.: Издательский дом «Додэка_XXI», 2007. — 360 с.
4. Костров Б. В., Ручкин В. Н. Архитектура микропроцессорных систем.
/ Б. В. Костров – М.: — Издательство Диалог-МИФИ, 2007 – 304 с.
5. Гладштейн М.А. Микроконтроллеры смешанного сигнала С8051 фирмы
SiLab и их применение. Руководство пользователя / М. А. Гладштейн —
М.:
Издательский дом «Додэка_XXI», 2008. — 336 с.
6.
Каспер
Э.
Программирование
на
языке
Ассемблера
для
микроконтроллеров семейства 8051. / Э. Каспер Горячая линия — М.: Телеком,
2004. – 191 с.
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
54
ПРИЛОЖЕНИЕ А
(обязательное)
Текст программы управляющего микроконтроллера
MACROASSEMBLERMODULE
WIN32 MACRO ASSEMBLER A51 V6.03.08
07/16/115 23:03:29 PAGE
1
LOC OBJ
LINE SOURCE
0096
1
EECON EQU 96H
0052
2
IF_ADR EQU 52H
0024
3
SET_BITEQU 24H
;Флажкисистемыуправления (Сохр. вEEPROM)
0029
4
C_SET EQU 29H
002A
5
C_SIN EQU 2AH
0042
6
C_FRQ EQU 42H
;частота задания
004E
7
FRQ1 EQU 4EH
004F
8
FRQ2 EQU 4FH
0050
9
FRQ3 EQU 50H
0043
10
C_ACL EQU 43H
;значение ускорения\замедления
0048
11
N_CUR EQU 48H
;значение номинального тока
0051
12
SET_EXT EQU 51H
;значения источника внешнего управления
0053
13
ERR_CODE EQU 53H
;код последней ошибки
004B
14
INT_REG EQU 4BH
;интенсивность регулятора амплитуды
0044
15
STR_FRQ EQU 44H
;стартовая частота вращения
0046
16
C_DT EQU 46H
;значение гарантированной паузы
0047
17
MAX_UD EQU 47H
;значение напряжения отпирания тормозного ключа
0049
18
CUR_BR EQU 49H
;значение тока отпускания тормоза
004A
19
C_IVR EQU 4AH
;начальное значение регуляора при торможении
пост.током
004C
20
WL_ENC EQU 4CH
004D
21
WH_ENC EQU 4DH
;временное окно энкодера
0055
22
EXT_TMP EQU 55H
;хранение предыдущего состояния порта дискр.упр.
0045
23
UADD EQU
45H
;добавочное напряжение к амплитуде выхода
24 ;------------------------------------------------------0000
25
ORG 00H
;START RESET
0000 217D
26
AJMP START
0003
27
ORG 03H ;INT0
0003 0163
28
AJMP LP1
0013
29
ORG 13H
;INT1
0013 0180
30
AJMP LP2
000B
31
ORG 0BH ;T0
000B 0209CC
32
LJMP TM0
0023
33
ORG 23H ;UART
0023 0125
34
AJMP UART
35
36 ;------------------------------------------------------37 ; Обработчик прерываний послед.порта (в данной версии скоректированн символ 13 и Сохраненеие
аккумулятора в стеке)
38 ;------------------------------------------------------0025 C0E0
39 UART:
PUSH 0E0H
;сохранить ACC
0027 10991C
40
JBC 98H.1,M1URT
;определение источника прерывания
002A C298
41
CLR 98H.0
;сброс флага приемника RX
42
43
;---RXD--002C A80B
44 M7URT: MOV R0,0BH
;копирование счетчика памяти RX
002E E599
45
MOV A,99H
;загрузка из буфера данных
0030 B40D04
46
CJNE A,#0DH,M4URT
;проверка на символ 13 переход если не об
0033 C29C
47
CLR 98H.4
;отключение приема
0035 D20F
48
SETB 21H.7
;установить флаг завершения приема
0037 A699
49 M4URT:
MOV @R0,99H
;копирование полученных данных в RAM
0039 08
50
INC R0
;установка указателя на след адрес RAM
003A B82004
51
CJNE R0,#20H,M3URT
;проверка не достигнуто переполнение буфера RAM
003D D20F
52
SETB 21H.7
;установить флаг завершения приема
003F C29C
53
CLR 98H.4
;отключение приема
0041 880B
54 M3URT:
MOV 0BH,R0
;сохранение счетчика памяти RX
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
55
0043 D0E0
0045 32
55
56
POP 0E0H
RETI
;восстановить Асс
;выход из прерывания
57
58
;---TXD--A80A
59 M1URT:
MOV R0,0AH
;копирование счетчика памяти TX
200D05
60
JB 21H.5,M2URT
;проверка на отправленный символ 13,
B82005
61
CJNE R0,#20H,M5URT
;проверка не достигнут конец(20H) RAM 16байт.
D20E
62
SETB 21H.6
;установить флаг завершения передачи пакета
D0E0
63 M2URT:
POP 0E0H
;восстановить Асс
32
64
RETI
;выход из прерывания
B60D05
65 M5URT: CJNE @R0,#0DH,M6URT ;проверка на символ 13 переход если не обнаружен
D52702
66
DJNZ 27H,M6URT
;счетчик символов 13 в поле данных переходе если
D20D
67
SETB 21H.5
;установить флаг передачи символа 13
8699
68 M6URT:
MOV 99H,@R0
;отправка байта из RAM в порт
08
69
INC R0
;установка указателя на след адрес RAM
880A
70
MOV 0AH,R0
;сохранение счетчика памяти TX
D0E0
71
POP 0E0H
;восстановить Асс
32
72
RETI
;выход из прерывания
73
74 ;------------------------------------------------------75 ;внешнее прерывание INT0 \прерывание от CPLD EPM1270T144
76 ;------------------------------------------------------0063 C0E0
77 LP1:
PUSH 0E0H
0065 C2A8
78
CLR 0A8H.0
;запрещаем INT0_прерывание от CPLD
79 ;-0067 7800
80
MOV R0,#00H
;читаем рег. состояния CPLD
0069 E2
81
MOVXA,@R0
;загружаемкод
006A 541F
82
ANL A,#1FH
;маскируем старшие 4 бита (т.к. только младшие содержат код
006C 7000
83
JNZ M1INT
;проверяем на наличие флагов ошибок и переходим если есть.
84 ;---прерывание по периоду SIN---85 ;-------------------------------006EF553
86 M1INT:
MOV 83 , A
0070 7129
87
ACALLOLED_2ST
;уст. курсорво 2 строку
0072 90200D88
MOV DPTR,#200DH
;отобразить надпись -Авария ПЧ0075 752600
89
MOV 26H,#00H
;очистить смещение для LSTR
0078 716B
90
ACALL LSTR
;отображение строки
007A 1209BE
91
LCALLBEEP
;звуковойсигнал
007D D0E0
92
POP 0E0H
007F 32
93
RETI
94 ;------------------------------------------------------95 ;внешнее прерывание INT1\по вращению энкодера
96 ;------------------------------------------------------0080 C0E0 97 LP2:
PUSH 0E0H
;сохранить ACC
98
0082 200B19
99
JB 21H.3,M0ENC
;переходим если режим изменения параметра
100
;--прокрутка меню-0085 11B9
101
ACALL MENU
;вызываем обработчик меню
0087 11CC
102
ACALL POINTVIEW
;вызываем отображение пункта меню с номером
0089 0200AD
103
JMP M1ENC
;идем на выход
104 ;-------------------------------008C11E0
105 M2ENC:
ACALL CHGFLAG
;изменяем флаги
008E 0200AB
106
JMP M6ENC
;переход к выходу
107 ;-----------8 разрядное значение--0091 30B405
108 M3ENC: JNB 0B0H.4,M4ENC
;проверяем состояние энкодера\переходим на
0094 11E9
109
ACALL CHGP
;увеличиваем 8 разрядную переменную
0096 0200AB
110
JMP M6ENC
;переход к выходу
0099 11E5
111 M4ENC:
ACALL CHGM
;уменьшаем 8 разрядную переменную
009B 0200AB
112
JMP M6ENC
;переход к выходу
113 ;-----------обработка изменения пункта меню---009E A930
114 M0ENC: MOV R1,30H
;указываем адрес изменяемой ячей
00A0 2018E9
115
JB 23H.0,M2ENC
;переход если работа с флагами
00A3 2019EB
116
JB 23H.1,M3ENC
;переход если работа с 8 разрядными числами
117 ;-----------16 разрядное значение--00A6 30B40C
118
JNB 0B0H.4,M5ENC
;проверяем состояние энкодера\переходим на
уменьшение на 1 пункт
00A9 11F4
119
ACALL CHG16P
;вызываем увеличение на 1 пункт 16 разрядного числ
00AB 3110
120 M6ENC: ACALL MENUTAB
;вызываем отображение изменений
121 ;-------------------------------00ADC28B
122 M1ENC:
CLR 88H.3
;сброситьфлагINT1
0046
0048
004B
004E
0050
0052
0053
0056
0059
005B
005D
005E
0060
0062
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
56
00AF D0E0
123
POP 0E0H
;восстановить Асс
00B1 D507FD
124 DLY:
DJNZ 07H,DLY
;(мкс)задержка дребезга
00B4 32
125
RETI
;ВЫХОД
126
00B5 3102
127 M5ENC:
ACALL CHG16M
;уменьшаем 16 разрядную переменную
00B7 80F2
128
JMP M6ENC
;переход к выходу
129
130 ;----------Обработчик циклического меню-09H=хранение пункта/3FH-указывает колличество пунктов
в списке --------------00B9 E509
131 MENU:
MOV A,09H
;загружаем указатель пунктов меню
00BB 30B405
132
JNB 0B0H.4,M0MN
;проверяем состояние энкодера\переходим на
уменьшение на 1 пункт
00BE B53F09
133
CJNE A,3FH,M2MN
;проверяем на достижение максимального
значения пунктов (колличество пунктов в списке хранит 3FH)
00C1 E4
134
CLR A
;очищаем на 0 пункт
00C2 22
135
RET
;выход
136
;--00C3 6002
137 M0MN:
JZ M3MN
;если регистр равен 0 то устанавливаем
значение равное 14 (по кольцу)
00C5 14
138
DEC A
;уменьшаем на 1 пункт.
00C6 22
139
RET
;выходим
00C7 E53F
140 M3MN:
MOV A,3FH
;присваиваем последний пунк из рег.(т.к.0-13)
00C9 22
141
RET
;выходим
142
;--00CA 04
143 M2MN:
INC A
;увеличиваем на 1 пункт
00CB 22
144
RET
;выходим
145 ;-----------вычисление и отображени стоки текущего пункта меню /Aсс-хранит номер текущего
пункта-------------00CC F509
146 POINTVIEW:
MOV 09H,A
;сохраняем
00CE 75F011
147
MOV 0F0H,#11H
;устанавливаем длину строки 16+1
символов(т.к. CR)(не более 15 строк всего)
00D1 A4
148
MUL AB
;умножаем длину строки на номер строки
00D2 F526
149
MOV 26H,A
;указываем смещение на строку для функции LSTR
00D4 854082
150
MOV 82H,40H
; (2041H)
00D7 854183
151
MOV 83H,41H
;загружаем базовый адрес текущего списка строк меню
00DA 7124
152
ACALL OLED_1ST
;установить 1 строку дисплея
00DC 00
153
NOP
00DD 716B
154
ACALL LSTR
;вызываем вывод строки
00DF 22
155
RET
156 ;------------------------------------------------------157 ;процедуры корректировки значений \R1-хранение адреса данных,31H-маска битовых операций с
флагами
158 ;-------------------------------------------------------00E0 E531
159 CHGFLAG:
MOV A,31H
;Згружаем маску изменяемого бита (инверсия)
00E2 67
160
XRL A,@R1
;накладываем маску по искл.или
00E3 F7
161
MOV @R1,A
;сохраняем результат
00E4 22
162
RET
;выход
163 ;----больше\меньше 8 бит с пределом \32H-хранение предела, R1-указатель\
164
00E5 17
165 CHGM:
DEC @R1
;уменьшаемна 1
00E6 0200EA
166
JMP M1CHG
;переход на обработку пределов
00E9 07
167 CHGP:
INC @R1
;увеличиваемна 1
00EA E7
168 M1CHG:
MOV A,@R1
;загружаембайт
00EB C3
169
CLR C
;очищаем перенос
00EC 9532
170
SUBB A,32H
;вычитаем предел
00EE 5001
171
JNC M0CHG
;сравниваем с переделом и переход
00F0 22
172
RET
;выходим
00F1 A732
173 M0CHG:
MOV @R1,32H
;в случае больше предела записывем предел
00F3 22
174
RET
175 ;--------больше\меньше 16 бит------\32H-хранение предела MSB, R1-указатель на LSB\
00F4 07
176 CHG16P:
INC @R1
;увеличиваем LSB
00F5 B70009
177
CJNE @R1,#00H,M0CP
;проверяем результат если не 0 то переходим
00F8 09
178
INC R1
;указатель на MSB
00F9 07
179
INC @R1
;т.к. при LSB+1 получился 0 то имел место
00FA E7
180
MOV A,@R1
;подгружаем MSB
00FB B53203
181
CJNE A,32H,M0CP
;проверяем на равенство пределу MSB переход
00FE 17
182
DEC @R1
;возвращаем значение MSB=32H-1
00FF 19
183
DEC R1
;указатель на LSB
0100 17
184
DEC @R1
;возвращаем значение LSB=0FF
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
57
0101 22
185 M0CP:
RET
;выход
186
0102 17
187 CHG16M:
DEC @R1
;LSB-1
0103 B7FFFB
188
CJNE @R1,#0FFH,M0CP ;проверяем результат если не 255 то переходим
0106 09
189
INC R1
;указатель на MSB
0107 17
190
DEC @R1
;т.к. при LSB-1 получилось 255 то имел место
0108 E7
191
MOV A,@R1
;подгружаем MSB
0109 B5FFF5
192
CJNE A,0FFH,M0CP
;проверяем на равенство пределу MSB переход
010C 07
193
INC @R1
;возвращаем значение MSB=0
010D 19
194
DEC R1
;указатель на LSB
010E 07
195
INC @R1
;возвращаем значение LSB=0
010F 22
196
RET
;выход
197 ;========================================================
198 ;Ветвления к обработчикам пунктов меню
199 ;========================================================
0110 75F014
200 MENUTAB:
MOV 0F0H,#14H
;умножаем на 20 т.к. в списке указателей 10
команд по 2 байта (для первых двух)
0113 E53E
201
MOV A,3EH
;загружаем номер списка меню.
0115 A4
202
MUL AB
;умножаем
0116 F8
203
MOV R0,A
;Временно сохраним смещение на лист меню
0117 75F002
204
MOV 0F0H,#02H
;Смещение на 2 т.к. 1 команда 2 байта
011A E509
205
MOV A,09H
;загружаем указатель пункта меню
011C A4
206
MUL AB
;умножаем получаем абсолюное смещение к
011D 28
207
ADD A,R0
;складываем смещение на лист и смещение
011E 900122
208
MOV DPTR,#MENUADR ;загружаем начальный адрес таблицы
0121 73
209
JMP @A+DPTR
;косвеный относительный переход, где А
210
211 ;адрес таблицы переходов (всего не более 127 записей т.к. смещение +255 и сторок 2 байта)
212
;--уровень меню L1
0122 8105
213 MENUADR:
AJMP M0ITEM
;переход к пункту меню 0
0124 8136
214
AJMP M1ITEM
;переход к пункту меню 1
0126 8159
215
AJMP M2ITEM
;переход к пункту меню 2
0128 8170
216
AJMP M3ITEM
;переход к пункту меню 3
012A 8179
217
AJMP M4ITEM
;переход к пункту меню 4
012C 8182
218
AJMP M5ITEM
;переход к пункту меню 5
012E 818B
219
AJMP M6ITEM
;переход к пункту меню 6
0130 819A
220
AJMP M7ITEM
;переход к пункту меню 7
0132 81A2
221
AJMP M8ITEM
;переход к пункту меню 8
0134 81B4
222
AJMP M9ITEM
;переход к пункту меню 9
223
;--уровень меню L2
0136 C165
224
AJMP M0STAT
;переход к пункту меню 0
0138 C171
225
AJMP M1STAT
;переход к пункту меню 1
013A C17D
226
AJMP M2STAT
;переход к пункту меню 2
013C C1AA
227
AJMP M3STAT
;переход к пункту меню 3
013E C1BD
228
AJMP M4STAT
;переход к пункту меню 4
0140 C1C0
229
AJMP M5STAT
;переход к пункту меню 5
0142 C1C8
230
AJMP M6STAT
;переход к пункту меню 6
0144 C1C8
231
AJMP M6STAT
;переход к пункту меню 7(заглушка)
0146 C1C8
232
AJMP M6STAT
;переход к пункту меню 8(заглушка)
0148 C1C8
233
AJMP M6STAT
;переход к пункту меню 9(заглушка)
234
;--уровень меню L2
014A 81C6
235
AJMP M0SET
;переход к пункту меню 0
014C 81E4
236
AJMP M1SET
;переход к пункту меню 1
014E 81F6
237
AJMP M2SET
;переход к пункту меню 2
0150 A108
238
AJMP M3SET
;переход к пункту меню 3
0152 A11A
239
AJMP M4SET
;переход к пункту меню 4
0154 A138
240
AJMP M5SET
;переход к пункту меню 5
0156 A15F
241
AJMP M6SET
;переход к пункту меню 6
0158 A17B
242
AJMP M7SET
;переход к пункту меню 7
015A A196
243
AJMP M8SET
;переход к пункту меню 8
015C A1C5
244
AJMP M9SET
;переход к пункту меню 9
015E A1E3
245
AJMP M10SET
;переход к пункту меню 10
0160 C10A
246
AJMP M11SET
;переход к пункту меню 11
0162 C128
247
AJMP M12SET
;переход к пункту меню 12
0164 C14F
248
AJMP M13SET
;переход к пункту меню 13
249
250 ;------------------------------------------------------251 ;Ветвления к обработчикам пунктов дискретного управления
252 ;-------------------------------------------------------
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
58
0166
0167
016A
016B
016C
016F
0170
0172
0174
0176
0178
017A
017C
017D
017E
0180
0182
0184
0186
0188
018A
279
018D
0190
0193
0196
0199
E9
253 DISCRINP:
MOV A,R1
;загружаем указатель (0-5)
75F002
254
MOV 0F0H,#02H
;Смещение на 2 т.к. 1 команда 2 байта
14
255
DEC A
;убираем смещение т.е. 1
A4
256
MUL AB
;умножаем получаем абсолюное смещение к
900170
257
MOV DPTR,#INP_TAB
;загружаем начальный адрес таблицы
73
258
JMP @A+DPTR
;переход, где А хранит смещение в поле
259
61EF
260 INP_TAB:
AJMP M5DINP
;переход к 0 (Авврийный останов)
61BF
261
AJMP M4DINP
;переход к 1 (Скорость-3)
61B5
262
AJMP M3DINP
;переход к 2 (Скорость-2)
61AB
263
AJMP M2DINP
;переход к 3 (Скорость-1)
6192
264
AJMP M1DINP
;переход к 4 (Пуск-реверс)
6172
265
AJMP M0DINP
;переход к 5 (Пуск-Прямо)
22
266 M5DINP:
RET
267
268 ;-------------------------------------------------------269 ; ИНИЦИАЛИЗАЦИЯ
270 ;-------------------------------------------------------E4
271 START:
CLR A
;A<0
F5A8
272
MOV 0A8H,A
;IE< G_ALL=OFF
F598
273
MOV 98H,A
;SCON<0
F5D0
274
MOV 0D0H,A
;PSW<0 STR=0
F58A
275
MOV 8AH,A
;TH0
F58C
276
MOV 8CH,A
;TH0
F58B
277
MOV 8BH,A
;TL1
758DE8
278
MOV 8DH,#0E8H ;TH1(UART) 22.118МГц=9600
280
7580FF
281
75A0FF
282
75B0FF
283
759050
284
758E01
285
286
287
75B810
288
758921
289
758845
290
75C900
291
75C800
292
758780
293
759850
294
MOV 80H,#0FFH
;P0<FF (порт доступа к внешней памяти CPLD)
MOV 0A0H,#0FFH
;P2<FF (Порт дискретного ввода с оптронов)
MOV 0B0H,#0FFH
;P3<FF (D0=RX, TX, INT0=IRQ_PLD,)
MOV 90H,#50H ;P1<50 (D7=RS485R/T=0, OLED_RS=0, OLED_CS=0, X=0,
MOV 8EH,#01H ;AUXR DISALE=1 (переводим вывод ALE в режим работы
;MOV 8FH,#01H ;не делить тактовую на 2
;===
MOV 0B8H,#10H ;IP< приоритет прерывания UART
MOV 89H,#21H ;TMOD< T0-16BIT счетный \T1-8бит (автоперезагрузка)
MOV 88H,#45H ;TCON< T0-OFF T1-ON I1-FRONT I2-FRONT
MOV 0C9H,#00H ;T2MOD 16BIT счетныйперезагрузка
MOV 0C8H,#00H ;T2CON T2=OFF
MOV 87H,#80H ;PCON< OSC X2
MOV 98H,#50H ;SCON< 57600,8,N RX=ON
019C
019F
01A2
01A5
01A8
01AB
01AE
295
01B1 758180
296
MOV 81H,#80H ;SP<80H (установка указателя стека во вторую половину ОЗУ)
01B4 1208F4
297
CALL RESRAM ;очисткапамяти
298
299 ;-----------инициализация вн. аппаратуры--------------------01B7 7410
300
MOV A,#10H
;установка начала буфера отправки UART
01B9 F50B
301
MOV 0BH,A
;Установка указателя буфера приема
01BB 75A892
302
MOV 0A8H,#92H
;ЗАГРУЗКАIEразрешениепрерываний
01BE 00
303
NOP
01BF 00
304
NOP
01C0 D20D
305
SETB 21H.5
;UARTготовкпередаче!
306 ;------------------------------------------------------307 ;загружаем данные из EEPROM памяти (42-4FH)
308 ;-----------------------------------------------------01C2 759608
309 EEPRD: MOV 150 , # 08H
01C5 900000
310
MOV DPTR,#0000H
;загружаем начальный адрес
01C8 7842
311
MOV R0,#42H
;начинаем загрузку с регистра частоты
01CA E0
312 M1EEP:
MOVX A,@DPTR
;читаем значение из DPTR
01CB F6
313
MOV @R0,A
;отправляем в регистровую память
01CC 08
314
INCR0
;
01CDA3
315
INCDPTR
;
01CEB854F9
316
CJNER0,#54H,M1EEP
;проверяемнаконец (ADR+1) пересылаемогоучастка
01D1 E0
317
MOVX A,@DPTR
;загружаем регистр с битовой областью
01D2 F524
318
MOV 36 , A
01D4 759600
319
MOV 150 , # 00H
320 ;----------Начальное значение ЦАП----------------------01D7 120984
321
LCALL SET_ACUR
;вызываем загрузку значения
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
59
01DA
01DD
01E0
01E3
327
322 ;---------Устанавливаем скорость передачи UART---------------202006
323
JB 24H.0,M0MAIN
;переход по значению бита (1-19200 0-9600)
758DE8
324
MOV 8DH,#0E8H
; 9600
0201E6
325
JMPM1MAIN
;
758DF4
326 M0MAIN: MOV 8DH,#0F4H
;19200
328 ;-----------инициализация дисплея OLED-----------------------01E6 7B3A
329 M1MAIN: MOV R3,#3AH
;выбираем интерфейс 8 бит и внутренний
01E8 7130
330
ACALLOLED_CMD
;
01EA 1208B4
331
LCALLDELY2
;ожидаем
01ED 7B0C
332
MOVR3,#0CH
;включаемдисплей
01EF 7130
333
ACALLOLED_CMD
;
01F1 1208B4
334
LCALLDELY2
;ожидаем
01F4 7B01
335
MOV R3,#01H
;очищаем видео память
01F6 7130
336
ACALLOLED_CMD
;
01F8 1208B4
337
LCALLDELY2
;ожидаем
01FB 7B06
338
MOV R3,#06H
;уст. инкрементсчетчикаадресови01FD 7130
339
ACALL OLED_CMD
;
01FF 1208B4
340
LCALL DELY2
;ожидаем
0202 7124
341
ACALLOLED_1ST
;курсорна 1 строку
342
343 ;==========Инициализируем CPLD/Даемкомандувн.сброс===========
0204 7800
344
MOVR0,#00H
;рег. частоты
0206 E542
345
MOVA , 66
0208 F2
346
MOVX @R0,A
;отправляем на внешнюю шину
0209 08
347
INC R0
348
;-020A 740C
349
MOV A,#0CH
;значение рег. SIN блока (авт.задание
амплитуды,разрешаем ускорение\замедление)
020C F2
350
MOVX @R0,A
;отправляем на внешнюю шину
020D F52A
351
MOV 42 , A
020F 08
352
INC R0
353
;
0210 7480
354
MOV A,#80H
;вн.сброс
0212 F2
355
MOVX@R0,A
;отправляем на внешнюю шину
0213 08
356
INC R0
;указатель на адрес 03H
357
358 ;----начальный адрес в CPLD 03H рег. ускорения (загружает вн.настройки от 03H->0DH)
0214 7943
359
MOV R1,#43H
;начальный адрес в области RAM
0216 E7
360 M1CINT:
MOV A,@R1
;загружаем значение памяти
0217 F2
361
MOVX @R0,A
;пишемв CPLD
0218 08
362
INC R0
;на следующие адреса
0219 09
363
INC R1
021A B80EF9
364
CJNE R0,#0EH,M1CINT ;проверяем на завершение загрузки
365
;----021D 7403
366
MOV A,#03H
;разрешаем работу регулятора вольтодобавки и
021F F2
367
MOVX @R0,A
;загружаем регистр режимов блока энкодера
(0EH)
368
;------включаем прерывания----0220 C289
369
CLR 88H.1
;очистим флаг прерывания
0222 D2A8
370
SETB 0A8H.0
;рарешаем INT0_прерывание от CPLD
371 ;-----------подготовка обработчика меню---------------0224 753F09
372
MOV 3FH,#09H
;10 пунктов в главном меню
0227 754041
373
MOV 40H,#41H
;указатель на базовые адреса строк главного
022A 754120
374
MOV 41H,#20H
375 ;-----------пишем заставку-----------------------------022D 752600
376
MOV 26H,#00H
;смещение для функции LSTR
0230 902019
377
MOV DPTR,#2019H
;выводим 1 строку
0233 716B
378
ACALL LSTR
;вызываем копирование строки из ROM на
0235 7129
379
ACALL OLED_2ST
;выводим курсор на 2 строку
0237 A3
380
INC DPTR
;выводим 2 строку
0238 716B
381
ACALL LSTR
;вызываем копирование строки из ROM на
023A 1208C2
382
LCALL DELY1
;даем время на просмотр 1C
383
;-----023D 7129
384
ACALL OLED_2ST
;выводим курсор на 2 строку
023F 7144
385
ACALLOLED_BLANK
;очищаем
0241 1208FB
386
LCALL STARTRECT
;вызываем запуск выпрямителя (зарядка)
0244 1209BE
387
LCALL BEEP
;короткийсигнал
388 ;========================================================
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
60
7124
389
ACALL OLED_1ST
;выводим курсор на 1 строку
902041
390
MOV DPTR,#2041H
;выводим 1 пункт меню (начало таблицы )
716B
391
ACALL LSTR
;вызываем копирование строки меню из ROM
7129
392
ACALL OLED_2ST
;выводим курсор на 2 строку
7144
393
ACALL OLED_BLANK
;очищаем
D2AA
394
SETB 0A8H.2
;разрешаем работу прерываний от валкодера
395 ;-------------------------------------------------------0254 301E03
396
JNB 23H.6,SYSRDY
;проверяем есть ли напряжение в звене пост.
0257 120930
397
LCALL NOCHG
;вызываем отображение нет заряда
398 ;-------------------------------------------------------025A D24C
399 SYSRDY:
SETB C_SET.4
;включить выход готовности SYS_FAULT
025C12081C
400
LCALL SETPLD
;отпраляем регистр
401
;-----025F E551
402
MOV A , 81
0261 6004
403
JZ AN
;если внешнее
0263 D28C
404
SETB 88H.4
;Пуск T0
0265 C252
405
CLR C_SIN.2
;переключаем на задание
406
;==============================================================================
407 ;*ОСНОВНОЕ ТЕЛО ПРОГРАММЫ* (Уровень=0,диспетчер событий)
408 ;-------------------------------------------------------0267 300F09
409 AN:
JNB 21H.7,RXP
;установлен бит принят пакет
026A C20F
410
CLR 21H.7
;очистка бита принятого пакета
026C D29C
411
SETB 98H.4
;включить прием UART
026E 750B10
412
MOV 0BH,#10H
;уст. начала буфера приема
0271 D1F2
413
ACALL CMPA
;вызов интерпретатора
414
415 ;----обработка бита готовности---0273 300D0E
416 RXP:
JNB 21H.5,OK
;проверка на свободность порта переход если
занят(TX_CR=0)
0276 300A0B
417
JNB 21H.2,OK
;установлен бит команда готовности
0279 C20A
418
CLR 21H.2
;очистка бита команды готовности
027B 751052
419
MOV 10H,#52H
;запись в буфер символ -R-(готово)
027E 75110D
420
MOV 11H,#0DH
;запись символа <CR>
0281 1208DB
421
LCALL SCOD
;инициализация передачи буфера в порт
422
423 ;---проверка очереди команд--0284 E522
424 OK:
MOV A,22H
;ЗАГРУЗКА регистра номера команды
0286 6005
425
JZ CMD
;переход если регистр команды равен -0- (нет команд)
0288 F13F
426
ACALL ANR
;вызов анализатора
028A 532200
427
ANL 22H,#00H
;ОЧИСТКА РЕГИСТРА НОМЕРА КОМАНДЫ
428
429 ;---отправка сообщения ошибки--028D 30080F
430 CMD:
JNB 21H.0,ERR
;обнаружена ошибка в команде или управлении
0290 C208
431
CLR 21H.0
;СБРОС СИГНАЛА ОШИБКИ
0292 902363
432
MOV DPTR,#UART_ERR ;ЗАГРУЗКА адр. начала таблицы ERROR
0295 7810
433
MOV R0,#10H
;начало буфера порта
0297 750806
434
MOV 08H,#06H
;переслать 6 байт в буфер
029A 7160
435
ACALL TBL
;переслать из ROM в RAM
029C 1208DB
436
LCALL SCOD
;отправить сообщение в послед.порт
437
029F 200919
438 ERR:
JB 21H.1,M0ENBT
;проверяем блокировку кнопки, переход если
блокирована
02A2 20B51E
439
JB 0B0H.5,ENBT
;проверка нажатия кнопки валкодера
440
441 ;---обработка нажатия-21H.3-режим валкодера--02A5 200B07
442
JB 21H.3,M1ENBT
;проверяем режим работы валкодера если в режиме
02A8 D20B
443
SETB 21H.3
;режим работы валкодера изменение параметра
02AA 3110
444
ACALL MENUTAB
;отображаем содержимое пункта меню
02AC 0202B9
445
JMP M2ENBT
;перепрыгиваем к блокировке
446
;--принять изменения-02AF C20B
447 M1ENBT: CLR 21H.3
;режим работы валкодера: режим просмотра меню
02B1 D20C
448
SETB 21H.4
;разрешаем применить изменения
02B3 3110
449
ACALL MENUTAB
;вызываем обработчик
02B5 7129
450
ACALL OLED_2ST
;установить 2 строку
02B7 7144
451
ACALL OLED_BLANK
;очищаем 2 строчку
02B9 D209
452 M2ENBT: SETB 21H.1
;устанавливаем блокировку кнопки
453
;--02BB 30B505
454 M0ENBT: JNB 0B0H.5,ENBT
;проверяем отпущена ли кнопка, если нажата
0247
0249
024C
024E
0250
0252
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
61
02BE D52F02
455
DJNZ 2FH,ENBT
;осуществляем задержку нажатия
02C1 C209
456
CLR 21H.1
;снимаем блокировку кнопки
457 ENBT:
;-----02C3 301B02
458
JNB 23H.3,NXCY
;если бит 0 то пропускаем процедуру
02C6 51CA
459
ACALL PARDISP
;
460
;-----02C8 4167
461 NXCY:
AJMP AN
;переход к началу диспетчера событий
462 ;==============фоновое отображение значений===============
02CA DF10
463 PARDISP: DJNZ R7,M1PAR
;каждый 255 проход в диспетчере вызываем функцию
02CC A84F
464
MOV R0,4FH
;загружаем значение адреса для отображения
02CE E2
465
MOVX A,@R0
;загружаем требуемую ячейку из PLD
02CF F533
466
MOV 33H,A
;отправляем для преобразования
02D1 12084A
467
LCALL BIT8
;вызываем двоично-десятичное преобразование
02D4 7BCC
468
MOV R3,#0CCH
;на 4 знакоместо с конца
02D6 7130
469
ACALL OLED_CMD
02D8 7939
470
MOV R1,#39H
;загружаем указатель на начало
02DA D1DB
471
ACALL DISPD
;выводим на экран значение 8
02DC 22
472 M1PAR:
RET
473
;*************************************************************************************************
474 ;-------------------------------------------------------475 ;процедура SPI (для ADC первый бит MSB) \R2,R3-рег.данных
476 ;-------------------------------------------------------02DD E4
477 SPIN:
CLR A
;очищаемасс
02DE FA
478
MOV R2,A
;очищаем LSB буфера
02DF FB
479
MOV R3,A
;очищаем MSB буфера
02E0 C297
480 M1SPI:
CLR 90H.7
;CLK=0 (P3.5)
02E2 00
481
NOP
;_П_
02E3 00
482
NOP
;верхнийфронт
02E4 00
483
NOP
;
02E5 00
484
NOP
02E6 00
485
NOP
02E7 00
486
NOP
02E8 00
487
NOP
02E9 D297
488
SETB 90H.7
;CLK=1
02EBA296
489
MOVC,90H.6
;копируем бит данных в перенос(P3.7)
02ED 33
490
RLC A
;сдвигаем влево через перенос
02EE CB
491
XCH A,R3
;меняем местами LSB,MSB
02EF 33
492
RLC A
;сдвигаем влево MSB
02F0 CB
493
XCH A,R3
;возвращаем LSB,MSB
02F1 DDED
494
DJNZ R5,M1SPI
;декремент счетчика на след. бит если не 0
02F3 FA
495
MOV R2,A
;сохраняем LSB
02F4 C297
496
CLR 90H.7
;CLK=0
02F6 22
497
RET
;выход
498 ;-------------(130кГц=Fтакт)
02F7 C297
499 SPOUT:
CLR 90H.7
;CLK=0
02F9 EA
500
MOV A,R2
;загружаем LSB
02FA 33
501
RLC A
;двигаем в лево C<-LSB
02FB CB
502
XCH A,R3
;загружаем MSB
02FC 33
503 M1SPO:
RLC A
;сдвинаемвлево MSB<-C
02FD 9295
504
MOV 90H.5,C
;копируем в порт DI(выход данных P3.4)
02FF D297
505
SETB 90H.7
;CLK=1
0301 00
506
NOP
;_П_
0302 00
507
NOP
0303 00
508
NOP
0304 00
509
NOP
0305 00
510
NOP
0306 00
511
NOP
0307 C297
512
CLR 90H.7
;CLK=0
0309 CB
513
XCH A,R3
;загружаем LSB
030A 33
514
RLC A
;сдвигаем LSB
030B CB
515
XCH A,R3
;загружаем MSB
030CDCEE
516
DJNZ R4,M1SPO
;декремент счетчика на след. бит если не 0
030E C295
517
CLR 90H.5
;очистить линию передачи DOUT
0310 22
518
RET
;выход
519
520 ;------------------------------------------------521 ;процедура работы C MCP4921 R2,R3-данные для отправки на ЦАП
522 ;-------------------------------------------------
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
62
0311
0313
0315
0318
0319
031B
031C
031E
C294
523 DAC:
CLR 90H.4
;CS=0
7C10
524 M1DAC:
MOV R4,#10H
;передаем 16 бит
430370
525
ORL 03H,#70H
;накладываем маску(0111=07H)
00
526
NOP
51F7
527
ACALL SPOUT
;вызываем отправку в порт.
00
528
NOP
D294
529
SETB 90H.4
;CS=1
22
530
RET
531 ;-------------------------------------------------------532 ;OLED_DISP \работас 2X16 OLEDдисплеем \R3-регистркоманд-данных
533 ;-------------------------------------------------------031F D291
534 OLED_DATA:
SETB 90H.1
;уст. RS=1 данные
0321 020332
535
JMP M1OLED
;перепрыгиваем
0324 7B80
536 OLED_1ST:
MOV R3,#80H
;курсорв 1 строку (функция)
0326 020330
537
JMPOLED_CMD
;наобработкукоманд
0329 7BC0
538 OLED_2ST:
MOV R3,#0C0H
;курсор в 2 строку (функция)
032B 020330
539
JMP OLED_CMD
;на обработку команд
032E 7B01
540 OLED_CLR:
MOV R3,#01H
;очищаем видео память (функция)
0330 C291
541 OLED_CMD:
CLR 90H.1
;уст. RS=0 инструкции
0332 7A00
542 M1OLED:
MOV R2,#00H
;очищаем регистр LSB порта
0334 7C08
543
MOV R4,#08H
;устанавливаем для передачи 8 бит
0336 51F7
544
ACALL SPOUT
;вызываем отправку SPI
0338 00
545
NOP
0339 D292
546
SETB 90H.2
;устанавливаем OLED_EN=1
033B D507FD
547 DLY2:
DJNZ 07H,DLY2
;138.348(мкс)задержка
033E C292
548
CLR 90H.2
;снимаем выбор OLED_EN=0
0340 D507FD
549 DLY3:
DJNZ 07H,DLY3
;138.348(мкс)задержка
0343 22
550
RET
551 ;----очистка 1 строки в 16 символов-/используется 08H-счетчик/---------------0344 7B20
552 OLED_BLANK:
MOV R3,#20H
;устанавливаем символ пробела
0346 D291
553
SETB 90H.1
;уст. RS=1 данные
0348 7C08
554
MOV R4,#08H
;устанавливаем для передачи 8 бит
034A 51F7
555
ACALL SPOUT
;вызываем отправку SPI
034C 00
556
NOP
034D 750810
557
MOV 08H,#10H
;загружаем число 16 знакомест
0350 D292
558 M1BLANK:
SETB 90H.2
;устанавливаем OLED_EN=1
0352 D507FD
559 DLY4:
DJNZ 07H,DLY4
;138.348(мкс)задержка
0355 C292
560
CLR 90H.2
;снимаем выбор OLED_EN=0
0357 D507FD
561 DLY5:
DJNZ 07H,DLY5
;138.348(мкс)задержка
035A D508F3
562
DJNZ 08H,M1BLANK
;проверяем на завершение
035D 22
563
RET
564 ;-------------------------------------------------------565 ;-------------------------------------------------------566 ;TBL \копирование из ROM в RAM \DPTR LSB-82H MSB-83H \R0-база назначения в RAM \08Hчисло байт для пересылки \DPTR-указатель начала таблицы (памяти программ)
567 ;-------------------------------------------------------035E 08
568 M1TBL:
INC R0
;след. адрес в RAM (от конца к началу)
035F A3
569
INC DPTR
;след. адрес в таблице
570
0360 E4
571 TBL:
CLR A
;Cмещение=0
0361 93
572
MOVC A,@A+DPTR
;загрузкаиз ROM
0362 F6
573
MOV @R0,A
;сохраниенев RAM
0363 D508F8
574
DJNZ 08H,M1TBL
;уменьшение счетчика байт
0366 22
575
RET
;выход
576 ;--------------------------------------------------------577 ;LSTR \загрузка строк меню из памяти программ на дисплей \DPTR-указатель начала таблицы
(памяти программ),26H-смещение по таблице
578 ;--------------------------------------------------------0367 FB
579 M1STR:
MOV R3,A
;отправляем в регистр последовательного порта
0368 711F
580
ACALL OLED_DATA
;вызываем отправку на дисплей символа
036A A3
581
INC DPTR
;увеличиваем указатель
036B E526
582 LSTR:
MOV A,26H
;загружаем смещение
036D 93
583
MOVC A,@A+DPTR
;загружаем запись по указанному адресу
036E B40DF6
584
CJNE A,#0DH,M1STR ;проверяем на конец строки, переход если символ
0371 22
585
RET
586 ;==========================================================
587 ;Обработчик внешнего управления
588 ;==========================================================
589
;--Движение вперед--
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
63
0372 E555
590 M0DINP: MOV A , 85
0374 20E00B
591
JB 0E0H.0,REMRV
;переходим если уст.(старт-прямо) Используем битовую
0377 20E15F
592
JB 0E0H.1,REMEXT
;если уст бит другого направления то выходим
037A C256
593 REMSTOP: CLR C_SIN.6
;сбрасываем флаг запуска
037C 5329DB
594
ANL 41 , # 0DBH
037F02042C
595
JMP M0I
;переходим к изменению рег.CPLD
596
0382 20E144
597 REMRV: JB 0E0H.1,REMERR
;переход если установлен бит противоположного
0385 301F51
598
JNB 23H.7,REMEXT
;если нет готовности по выбранной скорости то
599
0388 432924
600
ORL 41 , # 24H
038B D256
601
SETB C_SIN.6
;устанавливаем пуск
038D C255
602
CLR C_SIN.5
;сбрасываем флаг реверса
038F02042C
603
JMP M0I
;переходим к изменению рег.CPLD
604
605
;--Движение реверс-0392 E555
606 M1DINP:
MOV A , 85
0394 20E105
607
JB 0E0H.1,REMFR
;переходим если уст.(старт-реверс) Используем битовую
0397 20E03F
608
JB 0E0H.0,REMEXT
;если уст бит другого направления то выходим
039A 80DE
609
JMP REMSTOP
;переходим к остановке
610
039C20E02A
611 REMFR:
JB 0E0H.0,REMERR
;переход если установлен бит противоположного
039F 301F37
612
JNB 23H.7,REMEXT
;если нет готовности по выбранной скорости то
03A2 432924
613
ORL 41 , # 24H
03A5 432A60
614
ORL 42 , # 60H
03A8 02042C
615
JMP M0I
;переходим к изменению рег.CPLD
616
617
;--скорость1-03AB 71DA
618 M2DINP: ACALL REMTEST
;проверяем состояние входов на ошибочные или
03AD E555
619
MOV A , 85
03AF 30E227
620
JNB 0E0H.2,REMEXT
;если скорость снята то ничего не делаем
03B2 020472
621
JMP REMS1
;переходим к изменению рег.CPLD
622
623
;--скорость1-03B5 71DA
624 M3DINP: ACALL REMTEST
;проверяем состояние входов на ошибочные или
03B7 E555
625 MOV A , 85
03B9 30E31D
626
JNB 0E0H.3,REMEXT
;если скорость снята то ничего не делаем
03BC 02047B
627
JMP REMS2
;переходим к изменению рег.CPLD
628
629
;--скорость1-03BF 71DA
630 M4DINP: ACALL REMTEST
;проверяем состояние входов на ошибочные или
полностью отключенные
03C1 E555
631
MOV A , 85
03C3 30E413
632
JNB 0E0H.4,REMEXT
;если скорость снята то ничего не делаем
03C6 020484
633
JMP REMS3
;переходим к изменению рег.CPLD
634
635
;--отображение ошибки-03C9 7124
636 REMERR: ACALLOLED_1ST
;уст. курсорв 1 строку
03CB 90231C
637
MOV DPTR,#REMOTEERR
;отобразить надпись -ошибка
дискр.управления03CE 752600
638
MOV 26H,#00H
;очистить смещение
03D1 716B
639
ACALL LSTR
;вызываем отображение строки
03D3 C21F
640
CLR 23H.7
;-Запрещаем запуск03D5 80A3
641
JMP REMSTOP
;останавливаем ПЧ
642
03D7 C21F
643 REMEXT0: CLR 23H.7
;-Запрещаем запуск03D9 22
644 REMEXT: RET
;выход без изменений
645
646
;--проверка состояния входов задания скорости-03DA C21F
647 REMTEST: CLR 23H.7
;-Запрещаем запуск03DCE555
648
MOVA , 85
03DE 03
649
RRA
03DF 03
650
RR A
;сдвигаем к началу разрядной сетки
03E0 5407
651
ANL A,#07H
;маскируем 3 младших разряда
03E2 60F3
652
JZ
REMEXT0
;если ни один бит скорости не
03E4 30D0E2
653
JNB 0D0H.0,REMERR
;преходим если число единиц четное (т.е. 2)
03E7 C3
654
CLR C
;очищаем перенос
03E8 24FB
655
ADD A,#0FBH
;складывем до переполнения (Если в А>4 т.е.
03EA 40DD
656
JC REMERR
;переходим на отображение ошибки
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
64
03EC D21F
03EE 22
657
658
SETB 23H.7
RET
;-разрешаем запуск;выходим без ошибок
659
660
;--вход аварийного останова-03EF C256
661 M5DINP:
CLR C_SIN.6
;снимаем бит запуска
03F1 752900
662
MOV 41 , # 00H
03F4 120822
663
LCALL SINPLD
;пишем в регистры CPLD
03F7 12081C
664
LCALLSETPLD
03FA 7124
665
ACALLOLED_1ST
;уст. курсорв 1 строку
03FC 90233E
666
MOV DPTR,#EXTFAULT ;отобразить надпись -ошибка дискр.управления03FF 752600
667
MOV 26H,#00H
;очистить смещение
0402 716B
668
ACALL LSTR
;вызываем отображение строки
0404 22
669
RET
670 ;==========================================================
671 ;MENUITEM \Дерево ветвления пунктов меню \09H-указатель вызываемого пункта, 3EH-номер
списка меню, 3FH-количество пунктов в списке
672 ;==========================================================
673 M0ITEM:
;(1.Пуск\Стоп)
(0 запись)
0405 100C24
674
JBC 21H.4,M0I
;проверяем бит разрешения ввести изменения
0408 D218
675
SETB 23H.0
;Устанавливаем работу с флагами
040A 75302A
676
MOV 30H , # 42
040D 753140
677
MOV 31H,#40H
;указываем обработчику маской на 6 бит регистра
678
;----------------0410 7129
679
ACALL OLED_2ST
;уст. курсор во 2 строку
0412 752600
680
MOV 26H,#00H
;очистить смещение
0415 20560A
681
JB C_SIN.6,M1I
;переход по значению бита (1-работа 0-ожидание)
0418 90225A
682
MOV DPTR,#MSG_WAIT;отобразить надпись -ожидание041B C24D
683
CLR C_SET.5
;Прижимаем мех.тормоз
041D C24A
684
CLR C_SET.2
;выключаем вентилятор
041F 020429
685
JMP M2I
;переход на отображение
686
;-0422 902250
687 M1I:
MOV DPTR,#MSG_W
;отобразить надпись -работа0425 D24D
688
SETB C_SET.5
;разрешить отпустить мех.тормоз
0427 D24A
689
SETB C_SET.2
;включаем вентилятор
0429 716B
690 M2I:
ACALL LSTR
;отображение строки
042B 22
691
RET
692
;--действие по изменению-042C 120838
693 M0I:
LCALL SFRQPLD
;загружаем стартовую частоту
042F 120822
694
LCALL SINPLD
;запись изменений в CPLD
0432 12081C
695
LCALL SETPLD
0435 22
696
RET
;выходим
697 ;--------------------------------------698
;(2.Напр.Вращения)
0436 100C1C
699 M1ITEM: JBC 21H.4,M0I1
;проверяем бит разрешения ввести изменения
0439 D218
700
SETB 23H.0
;Устанавливаем работу с флагами
043B 75302A
701
MOV 30H , # 42
043E 753120
702
MOV 31H,#20H
;указываем обработчику маской на 6 разряд
703
;-----------0441 7129
704
ACALL OLED_2ST
;уст. курсор во 2 строку
0443 752600
705
MOV 26H,#00H
;очистить смещение
0446 205506
706
JB C_SIN.5,M1I1
;переход по значению бита (1-реверс 0-прямо)
0449 902264
707
MOV DPTR,#MSG_F
;отобразить надпись -прямо044C 020452
708
JMP M2I1
;переход на отображение
044F90226D
709 M1I1:
MOV DPTR,#MSG_B
;отобразить надпись -Реверс0452 716B
710 M2I1:
ACALL LSTR
;отображение строки
0454 22
711
RET
;выход
712
;--действие по изменению-0455 120822
713 M0I1:
LCALL SINPLD
;запись изменений в CPLD
0458 22
714
RET
;выходим
715
716
;(3.Частота вращен)
0459 100C10
717 M2ITEM: JBC 21H.4,M0I2
;проверяем бит разрешения ввести изменения
045C 753042
718
MOV 30H , # 66
045F 7532FF
719
MOV 32H,#0FFH
;предел для изменяемого числа 255
0462 C218
720
CLR 23H.0
;работа с числами
0464 D219
721
SETB 23H.1
;изменение 8 разрядного числа
0466 E542
0468 120965
Изм Лист № докум.
722
723
Подп.
MOV A , 66
LCALL FRQ_DISP
Дата
;преобразование и отображение частоты
БР-02069964-11.03.04-10-19
Лист
65
046B 22
725
046C120828
046F 22
0470
0472
0475
0478
0479
047B
047E
0481
0482
0484
0487
048A
048B
048D
0490
0493
0495
0497
0499
049A
049C
049F
04A1
04A2
04A4
04A7
04AA
04AD
04B0
04B1
04B3
04B4
04B6
04B9
04BC
04BF
04C2
04C3
04C5
04C6
04C9
04CC
04CF
04D1
724
RET
;--действие по изменению-726 M0I2:
LCALL FRQPLD
727
RET
;
;вызываем запись изменений CPLD
;выходим
728
729
;(4.Фикс.частота_1)
C20B
730 M3ITEM: CLR 21H.3
;режим работы валкодера: режим просмотра меню
854E42
731 REMS1:
MOV 66 , 78
120828
732
LCALL FRQPLD
;вызываем запись изменений CPLD
22
733
RET
;выходим
734
735
;(5.Фикс.частота_2)
C20B
736 M4ITEM: CLR 21H.3
;режим работы валкодера: режим просмотра меню
854F42
737 REMS2: MOV 66 , 79
120828
738
LCALL FRQPLD
;вызываем запись изменений CPLD
22
739
RET
;выходим
740
741
;(6.Фикс.частота_3)
C20B
742 M5ITEM: CLR 21H.3
;режим работы валкодера: режим просмотра меню
855042
743 REMS3:
MOV 66 , 80
120828
744
LCALL FRQPLD
;вызываем запись изменений CPLD
22
745
RET
;выходим
746
747
;(7.Код ошибки ПЧ)
C20C
748 M6ITEM: CLR 21H.4
;очищаем бит изменений (не требуются)
855333
749
MOV 33H , 83
12084A
750
LCALL BIT8
;вызываем двоично-десятичное преобразование
7129
751
ACALL OLED_2ST
;уст. курсор во 2 строку
7939
752
MOV R1,#39H
;загружаем указатель на начало результата преобр.
D1DB
753
ACALL DISPD
;выводим на экран значение 8 разрядного числа в
22
754
RET
;выходим
755
756
;(8.Cброс ошибки)
C20B
757 M7ITEM: CLR 21H.3
;режим работы валкодера: режим просмотра меню
120803
758
LCALL RESPLD
;вызываем сброс бита ошибки
D2A8
759
SETB 0A8H.0
;Разрешаем INT0_прерывание от CPLD
22
760
RET
;выходим
761
762
;(9.Настройки ПЧ)
C20B
763 M8ITEM: CLR 21H.3
;режим работы валкодера: режим просмотра меню
753E02
764
MOV 3EH,#02H
;использовать 3 список меню
753F0D
765
MOV 3FH,#0DH
;всего 14 пунктов в списке
754062
766
MOV 40H,#62H
;указатель на базовые адреса строк меню настроек.
754121
767
MOV 41H,#21H
;(2162)
E4
768
CLRA
;на 1 пункт
11CC
769
ACALLPOINTVIEW
;отображение текущего пункта меню в 1 строке
22
770
RET
;выходим
771
772
;(10.Состояние)
C20B
773 M9ITEM: CLR 21H.3
;режим работы валкодера: режим просмотра меню
753E01
774
MOV 3EH,#01H
;использовать 2 список меню
753F06
775
MOV 3FH,#06H
;всего 7 пунктов в списке
7540EB
776
MOV 40H,#0EBH
;указатель на базовые адреса строк меню состояния.
754120
777
MOV 41H,#20H
;(20EB)
E4
778
CLRA
;на 1 пункт
11CC
779
ACALLPOINTVIEW
;отображение текущего пункта меню в 1 строке
22
780
RET
;выходим
781
782 ;==========================================================
783
784
;(1.Инт.Ускорения)
100C17
785 M0SET: JBC 21H.4,M0ST0
;проверяем бит разрешения ввести изменения
753043
786
MOV 30H , # 67
7532FF
787
MOV 32H,#0FFH
;предел для изменяемого числа 255
C218
788
CLR 23H.0
;работа с числами
D219
789
SETB 23H.1
;изменение 8 разрядного числа
790
04D3 854333
Изм Лист № докум.
;-791
Подп.
MOV 33H , 67
Дата
БР-02069964-11.03.04-10-19
Лист
66
04D6 12084A
792
LCALL BIT8
04D9 7129
793
ACALL OLED_2ST
04DB 7939
794
MOV R1,#39H
04DD D1DB
795
ACALL DISPD
рег.33H
04DF 22
796
RET
797
;--действие по изменению-04E0 120816
798 M0ST0: LCALL ACLPLD
04E3 22
799
RET
800
801
;(2.Знач.Частоты_1)
04E4 C20C
802 M1SET:
CLR 21H.4
04E6 75304E
803
MOV 30H , # 78
04E9 7532FF
804
MOV 32H,#0FFH
04EC C218
805
CLR 23H.0
04EE D219
806
SETB 23H.1
807
;-04F0 E54E
808
MOV A , 78
04F2 120965
809
LCALL FRQ_DISP
04F5 22
810
RET
811
812
;(3.Знач.Частоты_2)
04F6 C20C
813 M2SET:
CLR 21H.4
04F8 75304F
814
MOV 30H , # 79
04FB 7532FF
815
MOV 32H,#0FFH
04FE C218
816
CLR 23H.0
0500 D219
817
SETB 23H.1
818
0502 E54F
819
0504 120965
820
0507 22
821
822
823
0508 C20C
824 M3SET:
050A 753050
825
050D 7532FF
826
0510 C218
827
0512 D219
828
;-MOV A , 79
LCALL FRQ_DISP
RET
;(4.Знач.Частоты_3)
CLR 21H.4
MOV 30H , # 80
MOV 32H,#0FFH
CLR 23H.0
SETB 23H.1
;вызываем двоично-десятичное преобразование
;уст. курсор во 2 строку
;загружаем указатель на начало результата преобр.
;выводим на экран значение 8 разрядного числа в
;
;вызываем запись изменений CPLD
;выходим
;очищаем бит разрешения ввести изменения
;предел для изменяемого числа 255
;работа с числами
;изменение 8 разрядного числа
;преобразование и отображение частоты
;выходим
;очищаем бит разрешения ввести изменения
;предел для изменяемого числа 255
;работа с числами
;изменение 8 разрядного числа
;преобразование и отображение частоты
;выходим
;очищаем бит разрешения ввести изменения
;предел для изменяемого числа 255
;работа с числами
;изменение 8 разрядного числа
829
;-0514 E550
830
MOVA , 80
0516 120965
831
LCALLFRQ_DISP ;преобразование и отображение частоты
0519 22
832
RET
;выходим
833
834
;(5.Номинальн.Ток)
051A 100C17
835 M4SET: JBC 21H.4,M0ST4 ;проверяем бит разрешения ввести изменения
051D 753048
836
MOV 30H , # 72
0520 7532FF
837
MOV 32H,#0FFH
;предел для изменяемого числа 255
0523 C218
838
CLR 23H.0
;работа с числами
0525 D219
839
SETB 23H.1
;изменение 8 разрядного числа
840
0527
052A
052D
052F
0531
0533
0534
0537
0538
053B
053D
;-854833
841
MOV 33H , 72
12084A
842
LCALLBIT8
7129
843
ACALL OLED_2ST
7939
844
MOV R1,#39H
D1DB
845
ACALL DISPD
22
846
RET
847
;--действие по изменению-120984
848 M0ST4:
LCALLSET_ACUR
22
849
RET
850
851
852
;(6.Частота несущ.)
100C20
853 M5SET: JBC 21H.4,M0ST5
D218
854
SETB 23H.0
75302A
855
MOV 30H , # 42
Изм Лист № докум.
Подп.
Дата
;вызываем двоично-десятичное преобразование
;уст. курсор во 2 строку
;загружаем указатель на начало результата
;выводим на экран значение 8 разрядного числа в
;
;выходим
;проверяем бит разрешения ввести изменения
;Устанавливаем работу с флагами
БР-02069964-11.03.04-10-19
Лист
67
0540 753101
856
MOV 31H,#01H
;указываем обработчику маской на 1 разряд
857
;-----------0543 7129
858
ACALL OLED_2ST
;уст. курсор во 2 строку
0545 7144
859
ACALLOLED_BLANK
0547 7129
860
ACALLOLED_2ST
;уст. курсорво 2 строку
0549 752600
861
MOV 26H,#00H
;очистить смещение
054C 205006
862
JB C_SIN.0,M1ST5
;переход по значению бита (1-1,5кГц 0-3кГц)
054F 902276
863
MOV DPTR,#SEL_C1
;отобразить надпись 6кГц
0552 020558
864
JMP M2ST5
;переход на отображение
0555 90227B
865 M1ST5: MOV DPTR,#SEL_C2
;отобразить надпись 3кГц
0558 716B
866 M2ST5:
ACALL LSTR
;отображение строки
055A 22
867
RET
;выход
868
;--действие по изменению-055B 120822
869 M0ST5: LCALL SINPLD
;запись изменений в CPLD
055E 22
870
RET
;выходим
871
872
;(7.Внешнее управ.)
055FC20C
873 M6SET:
CLR 21H.4
;очищаем бит разрешения ввести изменения
0561 753051
874
MOV 30H , # 81
0564 753205
875
MOV 32H,#05H
;предел для изменяемого числа 5
0567 C218
876
CLR 23H.0
;работа с числами
0569 D219
877
SETB 23H.1
;изменение 8 разрядного
числа
878
056B 7129
879
ACALL OLED_2ST
;уст. курсор во 2 строку
056D E551
880 MOV A , 81
056F 75F011
881
MOV 0F0H,#11H
;множитель 16+1
0572 A4
882
MUL AB
0573 F526
883
MOV 26H,A
;смещение по таблице
0575 902280
884
MOV DPTR,#SEL_IF
;начало таблицы с надписями
режимов
0578 716B
885
ACALL LSTR
;вызываем отображение
строки
057A 22
886
RET
;
887
888
;(8.Адрес -RS485-)
057B 100C17
889 M7SET:
JBC 21H.4,M0ST7 ;проверяем бит разрешения ввести изменения
057E 753052
890 MOV 30H , # 82
0581 7532FF
891
MOV 32H,#0FFH
;предел для изменяемого числа 255
0584 C218
892
CLR 23H.0
;работа с числами
0586 D219
893
SETB 23H.1
;изменение 8 разрядного
числа
894
;-0588 855233
895 MOV 33H , 82
058B 12084A
896
LCALL BIT8
;вызываем двоичнодесятичное преобразование
058E 7129
897
ACALL OLED_2ST
;уст. курсор во 2 строку
0590 7939
898
MOV R1,#39H
;загружаем указатель на
начало результата преобр.
0592 D1DB
899
ACALL DISPD
;выводим на экран значение
8 разрядного числа в рег.33H
0594 22
900
RET
;выходим
901
;--действия по изменеию-0595 22
902 M0ST7:
RET
903
904
;(9.Скорост.обмена)
0596 100C21
905 M8SET:
JBC 21H.4,M0ST8 ;проверяем бит разрешения ввести изменения
0599 D218
906
SETB 23H.0
;Устанавливаем работу с
флагами
059B 753024
907 MOV 30H , # 36
059E 753101
908
MOV 31H,#01H
;указываем обработчику маской на 1
разряд
909
;-----------05A1 7129
910
ACALL OLED_2ST
;уст. курсор во 2 строку
05A3 752600
911
MOV 26H,#00H
;очистить смещение
05A6 202006
912
JB 24H.0,M1ST8
;переход по значению бита (1-19200 0-9600)
05A9 9022E6
913
MOV DPTR,#SEL_R1
;отобразить надпись 9600
05AC 0205B2
914
JMP M2ST8
;переход на отображение
05AF 9022EC
915 M1ST8:
MOV DPTR,#SEL_R2
;отобразить надпись 19200
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
68
05B2
05B4
05B7
05B9
05BA
05BD
05C0
05C1
05C4
05C5
05C8
05CB
05CE
05D0
числа
716B
916 M2ST8:
ACALL LSTR
;отображение строки
9022F2
917
MOV DPTR,#D_RATE
;отобразить надпись -бит/с716B
918
ACALL LSTR
;отображение строки
22
919
RET
;выход
920
;--действие по изменению-202004
921 M0ST8:
JB 24H.0,M3ST8
;переход по значению бита (1-19200 0-9600)
758DE8
922
MOV 8DH,#0E8H
;записываем в перезагрузку TH1
22
923
RET
758DF4
924 M3ST8:
MOV 8DH,#0F4H
;записываем в перезагрузку TH1
22
925
RET
;выходим
926
927
;(10.КомпенC.UAMP)
100C17
928 M9SET:
JBC 21H.4,M0ST9 ;проверяем бит разрешения ввести изменения
753045
929 MOV 30H , # 69
75327F
930
MOV 32H,#7FH
;предел для изменяемого числа 127
C218
931
CLR 23H.0
;работа с числами
D219
932
SETB 23H.1
;изменение 8 разрядного
933
05D2 854533
934 MOV 33H , 69
05D5 12084A
935
десятичное преобразование
05D8 7129
936
05DA 7939
937
начало результата преобр.
05DC D1DB
938
8 разрядного числа в рег.33H
05DE 22
939
;-LCALL BIT8
;вызываем двоично-
ACALL OLED_2ST
MOV R1,#39H
;уст. курсор во 2 строку
;загружаем указатель на
ACALL DISPD
;выводим на экран значение
RET
;выходим
940
;--действие по изменению-05DF 12083E
941 M0ST9:
LCALL UADDPLD
;вызываем запись изменений в CPLD
05E2 22
942
RET
943
944 M10SET:
;(11.Режим работы)
05E3 100C20
945
JBC 21H.4,M0SET10
;проверяем бит разрешения ввести
изменения
05E6 D218
946
SETB 23H.0
;Устанавливаем работу с
флагами
05E8 753024
947 MOV 30H , # 36
05EB 753104
948
MOV 31H,#04H
;указываем обработчику маской на 3
разряд
949
;-----------05EE 7129
950
ACALL OLED_2ST
;уст. курсорво 2 строку
05F0 7144
951
ACALL OLED_BLANK
05F2 7129
952
ACALL OLED_2ST
;уст. курсор во 2 строку
05F4 752600
953
MOV 26H,#00H
;очистить смещение
05F7 202206
954
JB SET_BIT.2,M1SET10
;переход по значению бита работа с энкодером или без
05FA 902314
955
MOV DPTR,#MODE0
;отобразить надпись
05FD 020603
956
JMP M2SET10
;переход на отображение
0600 90230C
957 M1SET10:
MOV DPTR,#MODE1
;отобразить надпись
0603 716B
958 M2SET10:
ACALL LSTR
;отображение строки
0605 22
959
RET
;выход
960
;--действие по изменению-0606 12082E
961 M0SET10:
LCALL ENCPLD
;запись изменений в CPLD
0609 22
962
RET
;выходим
963
964 M11SET:
;(12.Ток отпускания тормоза)
060A 100C17
965
JBC 21H.4,M0SET11
;проверяем бит разрешения ввести
изменения
060D 753049
966 MOV 30H , # 73
0610 854832
967 MOV 32H , 72
0613 C218
968
CLR 23H.0
;работа с числами
0615 D219
969
SETB 23H.1
;изменение 8 разрядного
числа
970
;-0617 854933
971 MOV 33H , 73
061A 12084A
972
LCALL BIT8
;вызываем двоичнодесятичное преобразование
061D 7129
973
ACALL OLED_2ST
;уст. курсор во 2 строку
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
69
061F 7939
974
MOV R1,#39H
;загружаем указатель на
начало результата преобр.
0621 D1DB
975
ACALL DISPD
;выводим на экран значение
8 разрядного числа в рег.33H
0623 22
976
RET
977
;--изенения--0624 120844
978 M0SET11:
LCALL BRCURPLD
;вызываем запись в CPLD
0627 22
979
RET
980
981 M12SET:
;(13.Исп. тормозной резистор)
0628 100C20
982
JBC 21H.4,M0SET12
;проверяем бит разрешения ввести
изменения
062B D218
983
SETB 23H.0
;Устанавливаем работу с
флагами
062D 753029
984 MOV 30H , # 41
0630 753140
985
MOV 31H,#40H
;указываем обработчику маской на 6
разряд
986
;-----------0633 7129
987
ACALL OLED_2ST
;уст. курсор во 2 строку
0635 7144
988
ACALL OLED_BLANK
0637 7129
989
ACALL OLED_2ST
;уст. курсорво 2 строку
0639 752600
990
MOV 26H,#00H
;очистить смещение
063C 204E06
991
JB C_SET.6,M1SET12 ;переход по значению бита работа с энкодером или без
063F 902359
992
MOV DPTR,#MSG_D
;отобразить надпись
0642 020648
993
JMP M2SET12
;переход на отображение
0645 90234F
994 M1SET12:
MOV DPTR,#MSG_E
;отобразить надпись разрешено
0648 716B
995 M2SET12:
ACALL LSTR
;отображение строки
064A 22
996
RET
;выход
997
;--действие по изменению-064B 12081C
998 M0SET12:
LCALL SETPLD
;запись изменений в CPLD
064E 22
999
RET
;выходим
1000
1001
;(14.Выход/Сохран.)
064F C20B
1002 M13SET:
CLR 21H.3
;режим работы валкодера: режим
просмотра меню
0651 753E00
1003
MOV 3EH,#00H
;использовать 1 список меню
0654 753F09
1004
MOV 3FH,#09H
;всего 10 пунктов в списке
0657 754041
1005
MOV 40H,#41H
;указатель на базовые адреса строк
главного меню.
065A 754120
1006
MOV 41H,#20H
065D 12093D
1007
LCALL EEPWR
;сохраняем настройки в
энергонезависимой памяти (RAM 42H-53H)
0660 7408
1008
MOV A,#08H
;указатель на 9
пункт(процедура автоматом сохранит зн. в 09H)
0662 11CC
1009
ACALL POINTVIEW
;отображение текущего пункта меню в
1 строке
0664 22
1010
RET
;выходим
1011
1012 ;==========================================================
1013
1014
;(1.Отобр.скорость)
0665 100C06
1015 M0STAT:
JBC 21H.4,M0STA
;проверяем бит разрешения ввести
изменения
0668 754F02
1016
MOV 4FH,#02H
;указываем на ячейку скорости
энкодера
066B D21B
1017
SETB 23H.3
;разрешаем фоновое
отображение значений
066D 22
1018
RET
066E C21B
1019 M0STA:
CLR 23H.3
;запрещаем фоновое отображение
0670 22
1020
RET
;выходим
1021
1022
;(2.Ток потреблен.)
0671 100C06
1023 M1STAT:
JBC 21H.4,M0STA1
;проверяем бит разрешения ввести
изменения
0674 754F19
1024
MOV 4FH,#19H
;указываем на ячейку АЦП
0677 D21B
1025
SETB 23H.3
;разрешаем фоновое
отображение значений
0679 22
1026
RET
067A C21B
1027 M0STA1:
CLR 23H.3
;запрещаем фоновое отображение
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
70
1028
RET
;выходим
1029
1030
;(3.Сост.дискр.вх.)
067D C20C
1031 M2STAT:
CLR 21H.4
;очищаем бит изменений (не
требуются)
067F 7129
1032
ACALL OLED_2ST
;уст. курсор во 2 строку
0681 9022F9
1033
MOV DPTR,#P2_STA
;
0684 E5A0
1034
MOV A,0A0H
;загружаемпорт P2
0686 F4
1035
CPL A
;инвертируем (т.к.
есть инверсия через оптопары)
0687 543F
1036
ANL A,#3FH
;маскируем интересующие
разряды (2 старших не исп.)
0689 7009
1037
JNZ M3DIS
;переходим если есть
входные сигналы
068B 9022FF
1038
MOV DPTR,#NOSIGN
;указатель на надпись
068E 752600
1039
MOV 26H,#00H
;очистить смещение
0691 716B
1040
ACALL LSTR
;отображаем надпись -нет
сигналов0693 22
1041
RET
1042
;-0694 7906
1043 M3DIS:
MOV R1,#06H
;устанавливаем 6 бит сдвига
0696 13
1044 M2DIS:
RRC A
;двигаем аккумулятор вправо
0697 500E
1045
JNC M1DIS
;переходим если 0
0699 C0E0
1046
PUSH 0E0H
;убираем акк. в стек
069B E9
1047
MOV A,R1
;загружаем смещение
069C 14
1048
DEC A
;уменьшаем на 1 смещение т.к.
необходимо получить и 0 смещение
069D 93
1049
MOVC A,@A+DPTR
;загружаем из памяти символ
069E FB
1050
MOV R3,A
;отправляем последовательный порт
069F711F
1051
ACALL OLED_DATA
;вызываем отправку на дисплей
символа
06A1 7B3B
1052
MOV R3,#3BH
;ставим точку запятую
06A3 711F
1053
ACALL OLED_DATA
;вызываем отправку на дисплей
символа
06A5 D0E0
1054
POP 0E0H
;вытаскиваем акк.
из стека
06A7 D9ED
1055 M1DIS:
DJNZ R1,M2DIS
;уменьшаем счетчик и на новый виток
06A9 22
1056
RET
;выходим
1057
1058
;(4.Сост.аналог.вх.)
(************)
06AA C20C
1059 M3STAT:
CLR 21H.4
;очищаем бит изменений (не
требуются)
06AC 7800
1060
MOV R0,#00H
;читаем рег. состояния CPLD
06AE E2
1061
MOVX A,@R0
;загружаемкод
06AF 541F
1062
ANL A,#1FH
;маскируем старшие 4 бита
(т.к. только младшие содержат код ошибки)
06B1 F533
1063
MOV 33H,A
;загружаем
06B3 12084A
1064
LCALL BIT8
;вызываем двоичнодесятичное преобразование
06B6 7129
1065
ACALL OLED_2ST
;уст. курсор во 2 строку
06B8 7939
1066
MOV R1,#39H
;загружаем указатель на
начало результата преобр.
06BA D1DB
1067
ACALL DISPD
;выводим на экран значение
8 разрядного числа в рег.33H
06BC 22
1068
RET
;выходим
1069
1070
;(5.Отобр.параметр)
06BD C20C
1071 M4STAT:
CLR 21H.4
;очищаем бит изменений (не
требуются)
06BF 22
1072
RET
;выходим
1073
1074
;(6.Напряжение UD)
06C0 100C04
1075 M5STAT:
JBC 21H.4,M0STA5
;проверяем бит разрешения ввести
изменения
06C3 12099A
1076
LCALL UD_DISP
;показать значение UD
06C6 22
1077
RET
06C7 22
1078 M0STA5:
RET
;выходим
1079
1080
;(7.Выход)
067C 22
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
71
06C8 C20B
1081 M6STAT:
CLR 21H.3
;режим работы валкодера: режим
просмотра меню
06CA 753E00
1082
MOV 3EH,#00H
;использовать 1 список меню
06CD 753F09
1083
MOV 3FH,#09H
;всего 10 пунктов в списке
06D0 754041
1084
MOV 40H,#41H
;указатель на базовые адреса строк
главного меню.
06D3 754120
1085
MOV 41H,#20H
06D6 7409
1086
MOV A,#09H
;указатель на 10
пункт(процедура автоматом сохранит зн. в 09H)
06D8 11CC
1087
ACALL POINTVIEW
;отображение текущего пункта меню в
1 строке
06DA 22
1088
RET
;выходим
1089 ;--------------------------------------------------------1090 ;вывод на дисплей значения числа с адреса указанного в R1 и до 3BH/23.2-Флаг точки
1091 ;--------------------------------------------------------1092
;-выводим число на дисплей06DB 7430
1093 DISPD:
MOV A,#30H
;загружаем смещение
06DD 27
1094
ADD A,@R1
;складываем и получаем код
символа ASCII
06DE FB
1095
MOV R3,A
;сохраняем в буфер
отправки на дисплей
06DF 711F
1096
ACALL OLED_DATA
;вызываем отправку
06E1 B93A09
1097
CJNE R1,#3AH,M1DG
;проверяем надо ли поставить точку,
переход если нет (00.0)
06E4 301A06
1098
JNB 23H.2,M1DG
;переход если не требуется ставить
точку
06E7 C21A
1099
CLR 23H.2
;снимаем признак точки
06E9 7B2E
1100
MOV R3,#2EH
;символ точки в буфер
06EB 711F
1101
ACALL OLED_DATA
;вызываем отправку
06ED 09
1102 M1DG:
INC R1
;перемещаем указатель на
следующий адрес
06EE B93CEA
1103
CJNE R1,#3CH,DISPD ;проверяем не достигнут ли
конец, переход если нет
06F1 22
1104
RET
1105 ;--------------------------------------------------------1106 ;Детектирование и выгрузка константы
1107 ;--------------------------------------------------------06F2 7456
1108 CMPA:
MOV A,#56H
;загрузка символа V для
сравнения
06F4 B51005
1109
CJNE A,10H,M1VAR
;сравнение 1го байта буфера
06F7 E511
1110
MOV A,11H
;извлечение константы
06F9 F520
1111
MOV 20H,A
;сохранение в буфере
констант
06FB 22
1112
RET
1113
06FC 902369
1114 M1VAR:
MOV DPTR,#UART_CMD ;начало таблицы (переход к анализатору
команд)
06FF 750C10
1115
MOV 0CH,#10H
;начало буфера последовательного
порта
0702 750E24
1116
MOV 0EH,#24H
;указатели на последний адрес в
таблице (2324H)
0705 750F23
1117
MOV 0FH,#23H
;указатели на последний адрес в
таблице (MSB)
0708 752201
1118
MOV 22H,#01H
;установка, номера записи 1
1119 ;--------------------------------------------------------1120 ;CMP \Сравнение блока RAM C таблицей в ROM \DPTR-начало таблицы в ROM \0CH-начальный
адр. RAM \22H-хранение номера совпавшей записи \0EH,0FH-указатели адр. последней записи в табл.ROM
1121 ;--------------------------------------------------------070B 750C10
1122 CMP:
MOV 0CH,#10H
;установка начального адреса блока
сравнения в области RAM
070E E4
1123 M4CMP:
CLR A
;
070F 93
1124
MOVC A,@A+DPTR
;пересылка байта из ROM
для сравнения
0710 A80C
1125
MOV R0,0CH
;установка адреса байта в
RAM
0712 860D
1126
MOV 0DH,@R0
;пересылка байта из RAM в
буфер
0714 B50D09
1127
CJNE A,0DH, M1CMP
;сравнение 2х байт из RAM и ROM
(преход если не равно)
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
72
0717 B40D01
1128
CJNE A,#0DH,M2CMP
;проверка на символ 13 (конец строки)
071A 22
1129
RET
;выход (совпадение
найдено), переход к анализатору
1130
071B A3
1131 M2CMP:
INC DPTR
;на след адрес в таблице
071C050C
1132
INC 0CH
;на след адрес в RAM
071E E10E
1133
AJMP M4CMP
;
1134
0720 E4
1135 M1CMP:
CLR A
;
0721 93
1136
MOVC A,@A+DPTR
;
0722 B40D12
1137
CJNE A,#0DH,M5CMP
;проверка на конец строки (символ 13,
переход если не обнаружен)
0725 E50E
1138
MOV A,0EH
;
0727 B58210
1139
CJNE A,82H,M6CMP
;проверка на конец таблицы (преход
если конец не достигнут)
072A E50F
1140
MOV A,0FH
;
072C B5830B
1141
CJNE A,83H,M6CMP
;проверка MSB
072F 532200
1142
ANL 22H,#00H
;сброс регистра номера записи
0732 D208
1143
SETB 21H.0
;установить флажок ошибки
0734 C2A4
1144
CLR 0A0H.4
;погасить светодиод -связь0736 22
1145
RET
;выход (не найдено
совпадений)
1146
0737 A3
1147 M5CMP:
INC DPTR
;
0738 E120
1148
AJMP M1CMP
;
073A 0522
1149 M6CMP:
INC 22H
;установка номера след. записи
073C A3
1150
INC DPTR
;уст. в начало
строки
073D E10B
1151
AJMP CMP
;переход на новый
цикл поиска строки
1152 ;--------------------------------------------------------1153 ;ANR \Анализатор действия \22H-входные данные числа \21H-регистр флагов (уст.0-3)
1154 ;--------------------------------------------------------073F C20A
1155 ANR:
CLR 21H.2
;очистка бита команды
0741 75F002
1156
MOV 0F0H,#02H
;Смещение на 2 т.к. 1 команда 2 байта
0744 E522
1157
MOV A,22H
;загружаем указатель пункта
меню
0746 14
1158
DEC A
;убираем смещение
т.е. 1->0,2->1
0747 A4
1159
MUL AB
;умножаем получаем
абсолюное смещение к базовому адресу в Акк.
0748 90074C
1160
MOV DPTR,#CMD_TBL ;загружаем начальный адрес таблицы
переходов
074B 73
1161
JMP @A+DPTR
;косвеный относительный
переход, где А хранит смещение в поле переходов.
1162
1163
;--таблица переходов по командам последовательного порта
074C E180
1164 CMD_TBL:
AJMP M0UART
;переход к пункту 0
074E E183
1165
AJMP M1UART
;переход к пункту 0
0750 E186
1166
AJMP M2UART
;переход к пункту 0
0752 E190
1167
AJMP M3UART
;переход к пункту 0
0754 E198
1168
AJMP M4UART
;переход к пункту 0
0756 E1A0
1169
AJMP M5UART
;переход к пункту 0
0758 E1A8
1170
AJMP M6UART
;переход к пункту 0
075A E1B0
1171
AJMP M7UART
;переход к пункту 0
075C E1B9
1172
AJMP M8UART
;переход к пункту 0
075E E1C2
1173
AJMP M9UART
;переход к пункту 0
0760 E1CB
1174
AJMP M10UART
;переход к пункту 0
0762 E1D4
1175
AJMP M11UART
;переход к пункту 0
0764 E1DD
1176
AJMP M12UART
;переход к пункту 0
0766 E1DE
1177
AJMP M13UART
;переход к пункту 0
0768 E1DF
1178
AJMP M14UART
;переход к пункту 0
076A E1E0
1179
AJMP M15UART
;переход к пункту 0
076C E1E1
1180
AJMP M16UART
;переход к пункту 0
076E E1E5
1181
AJMP M17UART
;переход к пункту 0
0770 E1E9
1182
AJMP M18UART
;переход к пункту 0
0772 E1ED
1183
AJMP M19UART
;переход к пункту 0
0774 E1EE
1184
AJMP M20UART
;переход к пункту 0
0776 E1EF
1185
AJMP M21UART
;переход к пункту 0
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
73
E1F3
1186
AJMP M22UART
;переход к пункту 0
E1F7
1187
AJMP M23UART
;переход к пункту 0
E1FB
1188
AJMP M24UART
;переход к пункту 0
E1FF
1189
AJMP M25UART
;переход к пункту 0
1190 ;---------------------------------------1191
;(RST)
0780 217D
1192 M0UART:
AJMP START
;перезагрузка контроллера
0782 22
1193
RET
;выход
1194
1195
;(PNG)
0783 D20A
1196 M1UART:
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
0785 22
1197
RET
;
1198
1199
;(STA)
0786 855310
1200 M2UART: MOV 10H , 83
0789 75110D
1201
MOV 11H,#0DH
;
078C 1208DB
1202
LCALL SCOD
;вызвыаемотправку
078F 22
1203
RET
;
1204
1205
;(STR)
0790 D256
1206 M3UART:
SETB C_SIN.6
;ПУСКпреобразователя
0792 12081C
1207
LCALL SETPLD
;запись изменений в CPLD
0795 D20A
1208
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
0797 22
1209
RET
;
1210
1211
;(STP)
0798 C256
1212 M4UART:
CLR C_SIN.6
;СТОП преобразователя
079A 12081C
1213
LCALL SETPLD
;запись изменений в CPLD
079D D20A
1214
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
079F 22
1215
RET
;
1216
1217
;(RRF)
07A0 C255
1218 M5UART:
CLR C_SIN.5
;направление вперед
07A2 12081C
1219
LCALL SETPLD
;запись изменений в CPLD
07A5 D20A
1220
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
07A7 22
1221
RET
;
1222
1223
;(RRB)
07A8 D255
1224 M6UART:
SETB C_SIN.5
;направлениеназад
07AA 12081C
1225
LCALL SETPLD
;запись изменений в CPLD
07AD D20A
1226
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
07AF 22
1227
RET
;
1228
1229
;(FRQ)
07B0 852042
1230 M7UART: MOV 66 , 20H
07B3 120828
1231
LCALL FRQPLD
;вызываем запись изменений CPLD
07B6 D20A
1232
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
07B8 22
1233
RET
1234
1235
;(ACL)
07B9 852043
1236 M8UART: MOV 67 , 20H
07BC 120816
1237
LCALL ACLPLD
;вызываем запись изменений CPLD
07BF D20A
1238
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
07C1 22
1239
RET
1240
1241
;(FS1)
07C2 854E42
1242 M9UART: MOV 66 , 78
07C5 120828
1243
LCALL FRQPLD
;вызываем запись изменений CPLD
07C8 D20A
1244
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
07CA 22
1245
RET
1246
0778
077A
077C
077E
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
74
1247
;(FS2)
07CB 854F42
1248 M10UART: MOV 66 , 79
07CE 120828
1249
LCALL FRQPLD
;вызываем запись изменений CPLD
07D1 D20A
1250
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
07D3 22
1251
RET
1252
1253
;(FS3)
07D4 855042
1254 M11UART: MOV 66 , 80
07D7 120828
1255
LCALL FRQPLD
;вызываем запись изменений CPLD
07DA D20A
1256
SETB 21H.2
;установить бит готовности
(будет передан диспетчером)
07DC 22
1257
RET
1258
1259
;(ALM) активировать аварийный останов
07DD 22
1260 M12UART:
RET
1261
1262
;(SPD) текущая скорость
07DE 22
1263 M13UART:
RET
1264
1265
;(CUR) значение входного тока
07DF 22
1266 M14UART:
RET
1267
1268
;(CVL) текущее напряжение пост.тока
07E0 22
1269 M15UART:
RET
1270
1271
;(DTM) время гарантированной паузы
07E1 852046
1272 M16UART: MOV 70 , 20H
07E4 22
1273
RET
1274
1275
;(ENL) Младшая часть значения окна энкодера
07E5 85204C
1276 M17UART: MOV 76 , 20H
07E8 22
1277
RET
1278
1279
;(ENH) Старшая часть значения окна энкодера
07E9 85204D
1280 M18UART: MOV 77 , 20H
07EC 22
1281
RET
1282
1283
;(DC1)Торможение пост. включено
07ED 22
1284 M19UART:
RET
1285
1286
;(DC0) Торможение пост. отключено
07EE 22
1287 M20UART:
RET
1288
1289
;(MDC) Максимальное значение UD
07EF 852047
1290 M21UART: MOV 71 , 20H
07F2 22
1291
RET
1292
1293
;(CBD) Ток отпускания тормоза
07F3 852049
1294 M22UART: MOV 73 , 20H
07F6 22
1295
RET
1296
1297
;(IRA) Интенсивность регулятора амплитуды
07F7 85204B
1298 M23UART: MOV 75 , 20H
07FA 22
1299
RET
1300
1301
;(IVR) начальное значение регулятороа при торможении
пост.током
07FB 85204A
1302 M24UART: MOV 74 , 20H
07FE 22
1303
RET
;
1304
1305
;(SAV) сохранить настройки в энергонезависимой памяти
07FF 12093D
1306 M25UART:
LCALL EEPWR
;сохраняем настройки в
энергонезависимой памяти (RAM 42H-53H)
0802 22
1307
RET
1308 ;-------------------------------------------------------1309 ;-----------------CPLD-CMD-------------------------------------0803 752A00
1310 RESPLD: MOV 42 , # 00H
0806 120822
1311
LCALL SINPLD
;пишем в рег. настроек
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
75
0809 09
1312
INC R1
;на 2 адрес. (29H ->C_SET)
080A 7480
1313
MOV A,#80H
;даем команду сброса
080C F3
1314
MOVX @R1,A
;пишемв PLD
080D 120329
1315
LCALL OLED_2ST
;уст. курсор во 2 строку
0810 120344
1316
LCALL OLED_BLANK
;очищаем строку
0813 D2A8
1317
SETB 0A8H.0
;рарешаем INT0_прерывание
от CPLD
0815 22
1318
RET
1319
0816 7903
1320 ACLPLD:
MOV R1,#03H
;3REG-CPLD (регистр настройки
интенсивности)
0818 E543
1321 MOV A , 67
081A F3
1322
MOVX @R1,A
;пишемв PLD
081B 22
1323
RET
;выход
1324
081C 7902
1325 SETPLD:
MOV R1,#02H
;2REG-CPLD
081E E529
1326 MOV A , 41
0820 F3
1327
MOVX @R1,A
;пишемв PLD
0821 22
1328
RET
;выходим
1329
0822 7901
1330 SINPLD:
MOV R1,#01H
;1REG-CPLD (регистр управления SIN
блоком генератора)
0824 E52A
1331 MOV A , 42
0826 F3
1332
MOVX @R1,A
;пишемв PLD
0827 22
1333
RET
1334
0828 7900
1335 FRQPLD:
MOV R1,#00H
;0REG-CPLD
082A E542
1336 MOV A , 66
082C F3
1337
MOVX @R1,A
;пишемв PLD
082D 22
1338
RET
;выходим
1339
082E 790E
1340 ENCPLD:
MOV R1,#0EH
;Запись значения режима работы
блока энкодера
0830 A222
1341
MOV C,SET_BIT.2
;копируем бит режима работы
энкодера
0832 7401
1342
MOV A,#01H
;перд.загружаем акк.
разрешением работы регулятора
0834 92E1
1343
MOV 0E0H.1,C
;копируем бит в соответствующий
разряд аккумулятора
0836 F3
1344
MOVX @R1,A
0837 22
1345
RET
1346
0838 7904
1347 SFRQPLD:
MOV R1,#04H
;4REG-CPLD
083A E544
1348 MOV A , 68
083C F3
1349
MOVX @R1,A
;пишемв PLD
083D 22
1350
RET
;выходим
1351
083E 7905
1352 UADDPLD:
MOV R1,#05H
;5REG-CPLD
0840 E545
1353 MOV A , 69
0842 F3
1354
MOVX @R1,A
;пишемв PLD
0843 22
1355
RET
;выходим
1356
0844 7909
1357 BRCURPLD:
MOV R1,#09H
;9REG-CPLD
0846 E549
1358 MOV A , 73
0848 F3
1359
MOVX @R1,A
;пишемв PLD
0849 22
1360
RET
;выходим
1361
1362 ;-----------------------------------------------------1363 ;BIT8 \преобразование 8 бит в двоично-десятичный код \33H(LSB)-входящие данные\39H(MSB)3BH(LSB)-разделённый результат \3CH-делитель \R1 - косвенная адрессация\3CH-хранение вычитаемое
1364 ;-----------------------------------------------------084A 1208AB
1365 BIT8:
LCALL BITERR
;очистка используемых регистров
084D 7939
1366
MOV R1,#39H
;начальное значение
указателя результата 39H
084F 90200A
1367
MOV DPTR,#200AH
;загрузка в DPTR адреса на таблицу
1368
0852 E4
1369 M4BIT8:
CLR A
;очисткаА
0853 93
1370
MOVC A,@A+DPTR
;загрузка в А делителя
0854 F53C
1371
MOV 3CH,A
;сохранение делителя. LSB
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
76
1372
INC DPTR
;увеличение DPTR
1373
0857 E533
1374
MOV A,33H
;загружаем делимое в
аккумулятор для вычитания
1375
0859 C3
1376 M3BIT8:
CLR C
;Очистка переноса
085A 953C
1377
SUBB A,3CH
;вычитание из LSB число из
рег 3CH
085C 4005
1378
JC M0BIT8
;переход если уст. перенос
085E F533
1379
MOV 33H,A
;сохранение LSB из
аккумулятора (Сохранение исходного числа)
0860 07
1380
INC @R1
;увеличение
счетчика числа позиции(колличество десятков,сотен)
0861 0159
1381
AJMP M3BIT8
;переход на новый цикл
1382
0863 E533
1383 M0BIT8:
MOV A,33H
;восстанавливаем ранее
сохранненную копию
0865 09
1384
INC R1
;инкремент указателя
регистра сохранения результата.
0866 B93CE9
1385
CJNE R1,#3CH,M4BIT8 ;сравнение на конец переход если не
достигнут
0869 22
1386
RET
;выход
1387 ;-----------------------------------------------------1388 ;BIT16 \преобразование 16 бит в двоично-десятичный код \33H(LSB),34H(MSB)-входящие
данные\37H(MSB)-3BH(LSB)-разделённый результат \R1 - косвенная адрессация,3CH,3DH-хранение вычитаемое
1389 ;-----------------------------------------------------086A 1208AB
1390 BIT16:
LCALL BITERR ;рчистка используемых регистров
086D 7937
1391
MOV R1,#37H
;начальное значение указателя
результата 37H
086F 902000
1392
MOV DPTR,#2000H ;загрузка в DPTR адреса на таблицу
1393
0872 E4
1394 M4BIT:
CLR A
;очисткаА
0873 93
1395
MOVC A,@A+DPTR
;загрузка в А
0874 F53C
1396
MOV 3CH,A
;загрузка для вычит. LSB
0876 A3
1397
INC DPTR
0877 E4
1398
CLR A
;;очистка А
0878 93
1399
MOVC A,@A+DPTR
;загрузка в А
0879 F53D
1400
MOV 3DH,A
;загрузка для вычит. MSB
087B A3
1401
INC DPTR
;увеличение DPTR
1402
087C 853335
1403 M3BIT:
MOV 35H,33H
;Сохранение 16 бит исходного числа
087F 853436
1404
MOV 36H,34H
;
1405
0882 E533
1406
MOV A,33H
;загрузка в аккумулятор для
вычитания LSB
0884 C3
1407
CLR C
;Очистка переноса
0885 953C
1408
SUBB A,3CH
;вычитание из LSB число из 3CH
0887 400E
1409
JC M0BIT
;переход если уст. перенос(в
аккумуляторе все ещё LSB)
0889 F533
1410
MOV 33H,A
;сохранение LSB из аккумулятора
1411
088B E534
1412
MOV A,34H
;перенос в А MSB для копирования
088D C3
1413 M2BIT:
CLR C
;Очистка переноса
088E 953D
1414
SUBB A,3DH
;вычитаем из MSB число из 3DH
0890 400E
1415
JC M1BIT
;переход если перенос из
MSB (т.е. результат отрицательный)
0892 F534
1416
MOV 34H,A
;сохранение MSB из аккумулятора
0894 07
1417
INC @R1
;увеличение счетчика числа
позиции(колличество десятков,сотен)
1418
0895 80E5
1419
JMP M3BIT
;переход на новый цикл
1420
0897 F533
1421 M0BIT:
MOV 33H,A
;сохранение LSB из аккумулятора
0899 C3
1422
CLR C
;сброс переноса
089A E534
1423
MOV A,34H
;копируем MSB для вычитания
переноса LSB
089C 9401
1424
SUBB A,#01H
;вычитание 1 из MSB C переносом
089E 50ED
1425
JNC M2BIT
;переход если нет переноса из MSB
1426
0856 A3
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
77
08A0 853533
1427 M1BIT:
MOV 33H,35H
;восстанавливаем ранее сохранненную копию
08A3 853634
1428
MOV 34H,36H
;колличество этой позиции исчерпано
(подсчитанны все сотни,десятки)
1429
08A6 09
1430
INC R1
;инкремент указателя регистра
сохранения результата.
08A7 B93CC8
1431
CJNE R1,#3CH,M4BIT ;сравнение на конец переход если не
достигнут
1432
08AA 22
1433
RET
;выход
1434 ;----------------очистка регистров BIT16-----------------------08AB 783D
1435 BITERR:
MOV R0,#3DH
;установка начального адреса очистка
с конца памяти
08AD 7600
1436 M1ERR:
MOV @R0,#00H
;записьнуля
08AF 18
1437
DEC R0
;вычитаниеадреса
08B0 B834FA
1438
CJNE R0,#34H,M1ERR ;переходнаочисткуследующейячейки
08B3 22
1439
RET
;выход
1440
1441 ;-------------------------------------------------------1442 ;Задержка DELY5 = 0.25 сек, DELY10 = 1 сек.
1443 ;-------------------------------------------------------08B4 752502
1444 DELY2:
MOV 25H,#02H
;уст. переделитель
08B7 1208C8
1445
LCALL DELY
;вызов задержки
08BA 22
1446
RET
;выход
08BB 752504
1447 DELY5:
MOV 25H,#04H
;уст. переделитель
08BE 1208C8
1448
LCALL DELY
;вызов задержки
08C1 22
1449
RET
;выход
08C2 752520
1450 DELY1:
MOV 25H,#20H
;уст. переделитель
08C5 11C8
1451
ACALL DELY
;вызов задержки
08C7 22
1452
RET
;выход
1453
1454 ;-------------------------------------------------------1455 ;Задержка\06H,07H,25H-регистры счётчики
1456 ;-------------------------------------------------------08C8 C206
1457 DELY:
CLR 06H
;вызов даст задержку в
7,9сек
08CA C207
1458
CLR 07H
08CC D52501
1459 D3:
DJNZ 25H,D1
;0,035624*(25H)=DELY(X8=0,284 X32=1.139)
08CF 22
1460
RET
;ВЫХОД
08D0 D50602
1461 D1:
DJNZ 06H,D2
;139.705*255=35624.83(мкС)
08D3 80F7
1462
SJMP D3
;
08D5 D507FD
1463 D2:
DJNZ 07H,D2
;0.5425мкс*255=138,348(мкс)
08D8 00
1464
NOP
08D9 80F5
1465
SJMP D1
;УРОВЕНЬ ВЫШЕ
1466 ;-------------------------------------------------------1467 ;сокращенные коды
1468 ;-------------------------------------------------------08DB C20D
1469 SCOD:
CLR 21H.5
;уст.флаг занят UART
(разблокирует модуль пакетной передачи)
08DD 750A10
1470
MOV 0AH,#10H
;уст. начала буфера передачи
08E0 D299
1471
SETB 98H.1
;установка прерывания TX
UART
08E2 0527
1472
INC 27H
;прибавим 1 т.к.
заключительный символ всегда 13(Cчетчик числа символов в поле данных)*****
08E4 00
1473
NOP
08E5 00
1474
NOP
08E6 22
1475
RET
;выход
1476 ;==========================================================
1477 ;========================================================
1478 ;Счет числа символов 13 в поле данных \R0-адрес начала,А-адрес конца,27H-счетчик симв.
1479 ;========================================================
08E7 532700
1480 CN13:
ANL 27H,#00H
;очистка счетчика
08EA B60D02
1481 M2CN:
CJNE @R0,#0DH,M1CN ;сравниваем байт данных на наличие
символа 13
08ED 0527
1482
INC 27H
;увеличиваем
счетчик символов
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
78
08EF 08
1483 M1CN:
INC R0
;увеличиваем
указатель на след адрес
08F0 B500F7
1484
CJNE A,00H,M2CN
;сравниваем текущий адрес
переход если не конец
08F3 22
1485
RET
1486 ;--------------------------------------------------------1487 ;Процедура очиски оперативной памяти
1488 ;--------------------------------------------------------08F4 787F
1489 RESRAM:
MOV R0,#7FH
;установка начального адреса
(очистка с конца памяти)
08F6 7600
1490 M1RES:
MOV @R0,#00H
;записьнуля
08F8 D8FC
1491
DJNZ R0,M1RES
;переходна очистку следующей
ячейки
08FA 22
1492
RET
;выход
1493 ;======================================================================
1494 ;Процедура плавного запуска выпрямителя
1495 ;======================================================================
08FB 7802
1496 STARTRECT:
MOV R0,#02H
;2REG-CPLD
08FD D249
1497
SETB 29H.1
;включаем реле плавного
заряда конденсаторов
08FF E529
1498
MOV A,29H
;
0901 F2
1499
MOVX @R0,A
;пишемв PLD
1500
;
0902 120329
1501
LCALL OLED_2ST
;уст. курсор во 2 строку
0905 90203A
1502
MOV DPTR,#203AH
;отобразить надпись -Запуск0908 12036B
1503
LCALL LSTR
;отображение строки
1504
1505
;задержка заряда 8 сек
090B 7908
1506
MOV R1,#08H
;всего 8 сек
090D 1208C2
1507 M0STRC: LCALL DELY1
;задержка 1 сек.
0910 7B2E
1508
MOV R3,#2EH
;символ точки в буфер
0912 12031F
1509
LCALL OLED_DATA
;вызываем отправку
0915 D9F6
1510
DJNZ R1,M0STRC
;уменьшаем на 1 сек.
1511
;-0917 C249
1512
CLR 29H.1
;отключаем реле плавного пуска
0919 E529
1513
MOV A,29H
;
091B F2
1514
MOVX @R0,A
;пишемв PLD
091C 1208BB
1515
LCALLDELY5
;задержка на реле
1516
;---проверка напряжения-091F 791B
1517
MOV R1,#1BH
;загружаем адрес АЦП
0921 E3
1518
MOVX A,@R1
;загружаем значение UD
0922 C3
1519
CLR C
;очищаем перенос
0923 9478
1520
SUBB A,#78H
;проверяем наличие минимального напряжения
0925 4006
1521
JC RECTERR
;переходим по ошибке зарядной цепи
1522
;--0927 D248
1523
SETB 29H.0
;включаем силовой тиристорный мост
0929 E529
1524
MOV A,29H
;
092B F2
1525
MOVX @R0,A
;пишемв PLD
1526
;-092C 22
1527
RET
;выходим
1528
092DD21E
1529 RECTERR: SETB 23H.6
;устанавливаем бит обрыва зарядной цепи
092F 22
1530
RET
1531 ;------------отображение надписи обрыв цепи заряда--------0930 120329
1532 NOCHG: LCALL OLED_2ST
;уст. курсор во 2 строку
0933 90232D
1533
MOV DPTR,#RECTIFERR ;отобразить надпись -обрыв зарядной цепи0936 752600
1534
MOV 26H,#00H
;очистить смещение
0939 12036B
1535
LCALL LSTR
;вызываем отображение строки
093C 22
1536
RET
1537 ;---------------------------------------------------------1538 ;Сохранение области RAM в энергонезависемой памяти; DPTR-адреса в обл.EEPROM, R0-счетчик
адресов, (42-53)
1539 ;---------------------------------------------------------093D 759618
1540 EEPWR: MOV 150 , # 18H
0940 900000
1541
MOV DPTR,#00H
;загружаем начальный адрес в области EEPROM
0943 7842
1542
MOV R0,#42H
;Указатель в области RAM начинаем загрузку с регистра
0945 439620
1543
ORL 150 , # 20H
1544
;-0948 E6
1545 M1EPR:
MOV A,@R0
;загружаем регистровую память
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
79
0949 F0
1546
MOVX @DPTR,A
;Пишем в буфер
094A 08
1547
INCR0
;
094BA3
1548
INCDPTR
;следующийадресEEPROM
094C B854F9
1549
CJNE R0,#54H,M1EPR ;проверяем на конец (ADR+1) пересылаемого участка
1550
;-094F 639620
1551
XRL 150 , # 20H
0952 E524
1552
MOV A , 36
0954 F0
1553
MOVX @DPTR,A
;ИнициируемзаписьвEEPROM
1554
;-0955 E596
1555 M2EPR:
MOV A , 150
0957 5402
1556
ANL A,#02H
;CHECK RDY/BSY
0959 70FA
1557
JNZ M2EPR
;JUMP IF NOT BUSY YET
1558
095B E596
1559 M3EPR: MOV A , 150
095D 5402
1560
ANL A,#02H
;маскируем бит готовности
095F 60FA
1561
JZ M3EPR
;проверяем на готовность, переход если 0
0961 759600
1562
MOV 150 , # 00H
0964 22
1563
RET
1564
1565 ;--------------------------------------------------------------------1566 ;Процедура отображения частоты на дисплее в герцах (00.0) исходное значение в A
1567 ;--------------------------------------------------------------------0965 33
1568 FRQ_DISP: RLC A
;двигаем влево т.е. умножаем на 2
0966 F533
1569
MOV 33H,A
;возвращаем результат
0968 E4
1570
CLR A
;очищаем акк.
0969 33
1571
RLC A
;сдвигаем старший разряд из переноса
096A F534
1572
MOV 34H,A
;результат для старшей части произведения
096C 12086A
1573
LCALL BIT16
;вызываем двоично-десятичное преобразование
096F 120329
1574
LCALL OLED_2ST
;уст. курсор во 2 строку
0972 7939
1575
MOV R1,#39H
;загружаем указатель на начало результата преобр
0974 D21A
1576
SETB 23H.2
;ставим точку после 2 знака
0976 1206DB
1577
LCALL DISPD
;выводим на экран значение 8 разрядного числа
1578
;--надпись Гц-0979 7BA1
1579
MOVR3,#0A1H
;символ 'Г'
097B 12031F
1580
LCALL OLED_DATA
;вызываем отправку
097E 7BE5
1581
MOV R3,#0E5H
;символ 'ц'
0980 12031F
1582
LCALL OLED_DATA
;вызываем отправку
0983 22
1583
RET
1584 ;---------------------------------------------------------------------0984 E548
1585 SET_ACUR: MOV A , 72
0986 75F020
1586
MOV 0F0H,#20H
;сдвинем на 5 разряда (32 в рег. B)то 8->12рв 16 раз,
0989 A4
1587
MULAB
;умножим
098AFA
1588
MOVR2,A
;LSB
098BABF0
1589
MOVR3,0F0H
;MSB
1590
;--проверка на пределы-098D740F
1591
MOVA,#0FH
;загружаем 15
098F C3
1592
CLR C
;очищаем перенос
0990 95F0
1593
SUBB A,0F0H
;вычитаем значение старшей части
0992 5002
1594
JNC M1ACUR
;переходим если результата MSB меньше 15
0994 7B0F
1595
MOV R3,#0FH
;т.к. больше то ограничиваем на уровне 15
0996 120311
1596 M1ACUR: LCALL DAC
;отправляем в ЦАП
0999 22
1597
RET
1598 ;---------------------------------------------------------------------099A 791B
1599 UD_DISP: MOVR1,#1BH
;загружаемадресАЦП
099C E3
1600
MOVX A,@R1
;загружаем значение UD
099D 75F005
1601
MOV 0F0H,#05H
;умножаем значение АЦП на 5
09A0 A4
1602
MUL AB
09A1 C5F0
1603
XCH A,0F0H
;меняемместами A<>B
09A3 C3
1604
CLR C
;очищаем перенос
09A4 13
1605
RRC A
;двигаем старшую часть
09A5 C5F0
1606
XCH A,0F0H
;меняемместами A<>B
09A7 13
1607
RRC A
;двигаем младшую часть(разделили на
09A8 F533
1608
MOV 33H,A
;Сохраняем A
09AA 85F034
1609
MOV 34H,0F0H
;Сохраняем B, получили АЦП*2,5
09AD 12086A
1610
LCALL BIT16
;вызываем преобразование
09B0 120329
1611
LCALL OLED_2ST
;уст. курсор во 2 строку
09B3 7939
1612
MOV R1,#39H
;загружаем указатель на начало результата 09B5
1206DB
1613
LCALL DISPD
;выводим на экран значение 16 разрядного числа
1614
;--надпись V--
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
80
09B8 7B56
1615
MOV R3,#56H
;символ 'V'
09BA 12031F
1616
LCALL OLED_DATA
;вызываем отправку
09BD 22
1617
RET
1618 ;-------------------------------------------------------1619 ;Короткий звуковой сигнал
1620 ;-------------------------------------------------------09BE D24B
1621 BEEP:
SETB C_SET.3
;включаемзвук
09C0 12081C
1622
LCALL SETPLD
;пишемв CPLD
09C3 1208BB
1623
LCALL DELY5
;задержка
09C6 C24B
1624
CLRC_SET.3
;снимаембитзвука
09C8 12081C
1625
LCALL SETPLD
;пишемв CPLD
09CB 22
1626
RET
1627
1628 ;-------------------------------------------------------1629 ; Обработчик прерываний таймера T0 (опрос дискретных входов)
1630 ;-------------------------------------------------------09CC C0E0
1631 TM0:
PUSH 0E0H
09CE C28D
1632
CLR 88H.5
09D0 C28C
1633
CLR 88H.4
;СтопT0
1634
;--------------09D2 E5A0
1635
MOV A,0A0H
;загружаемпорт P2
09D4 F4
1636
CPLA
;инвертируем (т.к. есть инверсия через
09D5 543F
1637
ANL A,#3FH
;маскируем интересующие разряды (2 старших не исп.)
09D7 C555
1638
XCHA , 85
09D9 6555
1639
XRLA , 85
09DB 600F
1640
JZ M1TM0
;переходим если нет изменеий дискретных сигналов управления
09DD C3
1641
CLR C
;очищаем перенос
1642
;
09DE 7906
1643
MOV R1,#06H
;устанавливаем 6 бит сдвига
09E0 13
1644 M2DI:
RRC A
;двигаем аккумулятор вправо (ищем единицы, т.е. биты
09E1 5007
1645
JNC M1DI
;переходим если 0
09E3 C0E0
1646
PUSH 0E0H
;убираем акк. в стек
09E5 120166
1647
CALL DISCRINP ;вызываем обработчик дискретных сигналов
09E8 D0E0
1648
POP 0E0H
;вытаскиваем акк. из стека
09EA D9F4
1649 M1DI:
DJNZ R1,M2DI ;уменьшаем счетчик и на новый виток
1650
09EC D28C
1651 M1TM0: SETB 88H.4
;Пуск T0
09EE D0E0
1652
POP 0E0H
09F0 32
1653
RETI
MACRO ASSEMBLER MODULE
SYMBOL TABLE LISTING
------ ----- ------NAME
07/16/115 23:03:29 PAGE
T Y P E V A L U E ATTRIBUTES
M4BIT. . . . . . . C ADDR 0872H A
M7UART . . . . . . C ADDR 07B0H A
CMP. . . . . . . . C ADDR 070BH A
M3DIS. . . . . . . C ADDR 0694H A
M1TBL. . . . . . . C ADDR 035EH A
DELY2. . . . . . . C ADDR 08B4H A
2
REFERENCES
1394# 1431
1171 1230#
1122# 1151
1037 1043#
568# 574
331 334 337 340 1444#
M8UART . . . . . . C ADDR 07B9H A
1172 1236#
M4CMP. . . . . . . C ADDR 070EH A
1123# 1133
M1PAR. . . . . . . C ADDR 02DCH A
463 472#
ANR. . . . . . . . C ADDR 073FH A
426 1155#
CMPA . . . . . . . C ADDR 06F2H A
413 1108#
EXT_TMP. . . . . . N NUMB 0055h
22# 590 606 619 625
631 648 1638 1639
STR_FRQ. . . . . . N NUMB 0044h
M9UART . . . . . . C ADDR 07C2H A
M5CMP. . . . . . . C ADDR 0737H A
M1OLED . . . . . . C ADDR 0332H A
NXCY . . . . . . . C ADDR 02C8H A
TBL. . . . . . . . C ADDR 0360H A
M0MAIN . . . . . . C ADDR 01E3H A
CHGP . . . . . . . C ADDR 00E9H A
Изм Лист № докум.
Подп.
Дата
15# 1348
1173 1242#
1137 1147#
535 542#
458 461#
435 571#
323 326#
109 167#
БР-02069964-11.03.04-10-19
Лист
81
DELY5. . . . . . . C ADDR 08BBH A
M6CMP. . . . . . . C ADDR 073AH A
EEPWR. . . . . . . C ADDR 093DH A
M1MAIN . . . . . . C ADDR 01E6H A
ERR_CODE . . . . . N NUMB 0053h
REMTEST. . . . . . C ADDR 03DAH A
1447# 1515 1623
1139 1141 1149#
1007 1306 1540#
325 329#
13# 86 749 1200
618 624 630 647#
OLED_CLR . . . . . C ADDR 032EH A
540#
UART_ERR . . . . . C ADDR 2363H A
432 2618#
M1EPR. . . . . . . C ADDR 0948H A
1545# 1549
M0STA. . . . . . . C ADDR 066EH A
1015 1019#
REMEXT0. . . . . . C ADDR 03D7H A
643# 652
POINTVIEW. . . . . C ADDR 00CCH A
102 146# 769 779
1009 1087
LSTR . . . . . . . C ADDR 036BH A
90 154 378 381 391
582# 639 668 690
710 866 885 916 918
958 995 1040 1503
1535
IF_ADR . . . . . . N NUMB 0052h
2# 890 895
M2EPR. . . . . . . C ADDR 0955H A
1555# 1557
RECTIFERR. . . . . C ADDR 232DH A
1533 2556#
BIT16. . . . . . . C ADDR 086AH A
1390# 1573 1610
SEL_R1 . . . . . . C ADDR 22E6H A
913 2477#
M0I. . . . . . . . C ADDR 042CH A
595 603 615 674 693#
M1BLANK. . . . . . C ADDR 0350H A
558# 562
M1DAC. . . . . . . C ADDR 0313H A
524#
M0ENBT . . . . . . C ADDR 02BBH A
438 454#
CHG16M . . . . . . C ADDR 0102H A
127 187#
M3EPR. . . . . . . C ADDR 095BH A
1559# 1561
M1ERR. . . . . . . C ADDR 08ADH A
1436# 1438
M1VAR. . . . . . . C ADDR 06FCH A
1109 1114#
SEL_R2 . . . . . . C ADDR 22ECH A
915 2484#
M1I. . . . . . . . C ADDR 0422H A
681 687#
M1ENBT . . . . . . C ADDR 02AFH A
442 447#
M1RES. . . . . . . C ADDR 08F6H A
1490# 1491
BITERR . . . . . . C ADDR 08ABH A
1365 1390 1435#
UD_DISP. . . . . . C ADDR 099AH A
1076 1599#
MSG_B. . . . . . . C ADDR 226DH A
709 2343#
M2I. . . . . . . . C ADDR 0429H A
685 690#
REMS1. . . . . . . C ADDR 0472H A
621 731#
DAC. . . . . . . . C ADDR 0311H A
523# 1596
M2ENBT . . . . . . C ADDR 02B9H A
445 452#
M0DINP . . . . . . C ADDR 0372H A
265 590#
INT_REG. . . . . . N NUMB 004Bh
14# 1298
M1ACUR . . . . . . C ADDR 0996H A
1594 1596#
M1DG . . . . . . . C ADDR 06EDH A
1097 1098 1102#
P2_STA . . . . . . C ADDR 22F9H A
1033 2499#
FRQPLD . . . . . . C ADDR 0828H A
726 732 738 744 1231
1243 1249 1255 1335#
REMS2. . . . . . . C ADDR 047BH A
ENBT . . . . . . . C ADDR 02C3H A
627 737#
439 454 455 457#
ERR. . . . . . . . C ADDR 029FH A
SCOD . . . . . . . C ADDR 08DBH A
430 438#
421 436 1202 1469#
M1DINP . . . . . . C ADDR 0392H A
M0SET. . . . . . . C ADDR 04C6H A
DLY. . . . . . . . C ADDR 00B1H A
CHG16P . . . . . . C ADDR 00F4H A
M1INT. . . . . . . C ADDR 006EH A
M10UART. . . . . . C ADDR 07CBH A
MSG_D. . . . . . . C ADDR 2359H A
M0SET10. . . . . . C ADDR 0606H A
RESPLD . . . . . . C ADDR 0803H A
SINPLD . . . . . . C ADDR 0822H A
1330#
264 606#
235 785#
124#
119 176#
83 86#
1174 1248#
992 2604#
945 961#
758 1310#
663 694 713 869 1311
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
82
REMS3. . . . . . . C ADDR 0484H A
633 743#
REMSTOP. . . . . . C ADDR 037AH A
593# 609 641
M1SPI. . . . . . . C ADDR 02E0H A
480# 494
RESRAM . . . . . . C ADDR 08F4H A
297 1489#
M2DINP . . . . . . C ADDR 03ABH A
263 618#
M1SET. . . . . . . C ADDR 04E4H A
236 802#
SET_BIT. . . . . . N NUMB 0024h
3# 318 907 947 954
1341 1552
EECON. . . . . . . N NUMB 0096h
1# 309 319 1540 1543
1551 1555 1559 1562
M1DI . . . . . . . C ADDR 09EAH A
1645 1649#
M20UART. . . . . . C ADDR 07EEH A
1184 1287#
M11UART. . . . . . C ADDR 07D4H A
1175 1254#
MSG_E. . . . . . . C ADDR 234FH A
994 2593#
M0SET11. . . . . . C ADDR 0624H A
965 978#
M1SET10. . . . . . C ADDR 0600H A
954 957#
OLED_BLANK . . . . C ADDR 0344H A
385 393 451 552#
859 951 988 1316
M3DINP . . . . . . C ADDR 03B5H A
262 624#
M2SET. . . . . . . C ADDR 04F6H A
237 813#
C_FRQ. . . . . . . N NUMB 0042h
6# 345 718 722 731
737 743 1230 1242
1248 1254 1336
M2DI . . . . . . . C ADDR 09E0H A
1644# 1649
M21UART. . . . . . C ADDR 07EFH A
1185 1290#
M12UART. . . . . . C ADDR 07DDH A
1176 1260#
M0SET12. . . . . . C ADDR 064BH A
982 998#
M2SET10. . . . . . C ADDR 0603H A
956 958#
MSG_F. . . . . . . C ADDR 2264H A
707 2333#
REMRV. . . . . . . C ADDR 0382H A
591 597#
SETPLD . . . . . . C ADDR 081CH A
400 664 695 998 1207
1213 1219 1225 1325#
1622 1625
M1CINT . . . . . . C ADDR 0216H A
360# 364
M4DINP . . . . . . C ADDR 03BFH A
261 630#
M3SET. . . . . . . C ADDR 0508H A
238 824#
M0ITEM . . . . . . C ADDR 0405H A
213 673#
MENUADR. . . . . . C ADDR 0122H A
208 213#
MENUTAB. . . . . . C ADDR 0110H A
120 200# 444 449
CHGFLAG. . . . . . C ADDR 00E0H A
105 159#
C_SIN. . . . . . . N NUMB 002Ah
5# 351 405 593 601
602 614 661 676 681
701 706 855 862 1206
1212 1218 1224 1310
1331
M22UART. . . . . . C ADDR 07F3H A
1186 1294#
M13UART. . . . . . C ADDR 07DEH A
1177 1263#
M1SET12. . . . . . C ADDR 0645H A
991 994#
EXTFAULT . . . . . C ADDR 233EH A
666 2574#
REMERR . . . . . . C ADDR 03C9H A
597 611 636# 653
656
M5DINP . . . . . . C ADDR 03EFH A
260 266# 661#
M4SET. . . . . . . C ADDR 051AH A
239 835#
M1ITEM . . . . . . C ADDR 0436H A
214 699#
LP1. . . . . . . . C ADDR 0063H A
28 77#
DELY . . . . . . . C ADDR 08C8H A
1445 1448 1451 1457#
M23UART. . . . . . C ADDR 07F7H A
M14UART. . . . . . C ADDR 07DFH A
NOSIGN . . . . . . C ADDR 22FFH A
M2SET12. . . . . . C ADDR 0648H A
SYSRDY . . . . . . C ADDR 025AH A
M5SET. . . . . . . C ADDR 0538H A
M2ITEM . . . . . . C ADDR 0459H A
LP2. . . . . . . . C ADDR 0080H A
START. . . . . . . C ADDR 017DH A
Изм Лист № докум.
Подп.
Дата
1187 1298#
1178 1266#
1038 2506#
993 995#
396 399#
240 853#
215 717#
30 97#
26 271# 1192
БР-02069964-11.03.04-10-19
Лист
83
C_SET. . . . . . . N NUMB 0029h
4# 399 594 600 613
662 683 684 688 689
984 991 1326 1621
1624
M1TM0. . . . . . . C ADDR 09ECH A
1640 1651#
M1CN . . . . . . . C ADDR 08EFH A
1481 1483#
M24UART. . . . . . C ADDR 07FBH A
1188 1302#
M15UART. . . . . . C ADDR 07E0H A
1179 1269#
UART_CMD . . . . . C ADDR 2369H A
1114 2625#
D_RATE . . . . . . C ADDR 22F2H A
917 2491#
AN . . . . . . . . C ADDR 0267H A
403 409# 461
NOCHG. . . . . . . C ADDR 0930H A
397 1532#
M6SET. . . . . . . C ADDR 055FH A
241 873#
M3ITEM . . . . . . C ADDR 0470H A
216 730#
M0CHG. . . . . . . C ADDR 00F1H A
171 173#
M2CN . . . . . . . C ADDR 08EAH A
1481# 1484
M25UART. . . . . . C ADDR 07FFH A
1189 1306#
M16UART. . . . . . C ADDR 07E1H A
1180 1272#
ACLPLD . . . . . . C ADDR 0816H A
798 1237 1320#
M1SPO. . . . . . . C ADDR 02FCH A
503# 516
EEPRD. . . . . . . C ADDR 01C2H A
309#
M7SET. . . . . . . C ADDR 057BH A
242 889#
M4ITEM . . . . . . C ADDR 0479H A
217 736#
M0CP . . . . . . . C ADDR 0101H A
177 181 185# 188
192
M1CHG. . . . . . . C ADDR 00EAH A
166 168#
M17UART. . . . . . C ADDR 07E5H A
1181 1276#
M8SET. . . . . . . C ADDR 0596H A
243 905#
M5ITEM . . . . . . C ADDR 0482H A
218 742#
TM0. . . . . . . . C ADDR 09CCH A
32 1631#
M18UART. . . . . . C ADDR 07E9H A
1182 1280#
SEL_IF . . . . . . C ADDR 2280H A
884 2367#
M9SET. . . . . . . C ADDR 05C5H A
244 928#
M6ITEM . . . . . . C ADDR 048BH A
219 748#
C_ACL. . . . . . . N NUMB 0043h
10# 786 791 1236
1321
M19UART. . . . . . C ADDR 07EDH A
1183 1284#
PARDISP. . . . . . C ADDR 02CAH A
459 463#
M7ITEM . . . . . . C ADDR 049AH A
220 757#
M0ENC. . . . . . . C ADDR 009EH A
99 114#
C_IVR. . . . . . . N NUMB 004Ah
19# 1302
M0BIT8 . . . . . . C ADDR 0863H A
1378 1383#
M0ST0. . . . . . . C ADDR 04E0H A
785 798#
DISPD. . . . . . . C ADDR 06DBH A
471 753 795 845 899
938 975 1067 1093#
1103 1577 1613
CMD. . . . . . . . C ADDR 028DH A
425 430#
M8ITEM . . . . . . C ADDR 04A2H A
221 763#
M1ENC. . . . . . . C ADDR 00ADH A
103 122#
WH_ENC . . . . . . N NUMB 004Dh
21# 1280
CN13 . . . . . . . C ADDR 08E7H A
1480#
D1 . . . . . . . . C ADDR 08D0H A
1459 1461# 1465
CMD_TBL. . . . . . C ADDR 074CH A
1160 1164#
MODE0. . . . . . . C ADDR 2314H A
955 2529#
REMOTEERR. . . . . C ADDR 231CH A
637 2538#
REMEXT . . . . . . C ADDR 03D9H A
592 598 608 612 620
626 632 644#
M9ITEM . . . . . . C ADDR 04B4H A
222 773#
M2ENC. . . . . . . C ADDR 008CH A
105# 115
MENU . . . . . . . C ADDR 00B9H A
101 131#
D2 . . . . . . . . C ADDR 08D5H A
1461 1463#
M0STA1 . . . . . . C ADDR 067AH A
1023 1027#
ENCPLD . . . . . . C ADDR 082EH A
961 1340#
MODE1. . . . . . . C ADDR 230CH A
957 2520#
SET_ACUR . . . . . C ADDR 0984H A
321 848 1585#
M3ENC. . . . . . . C ADDR 0091H A
108# 116
RECTERR. . . . . . C ADDR 092DH A
1521 1529#
D3 . . . . . . . . C ADDR 08CCH A
1459# 1462
M3BIT8 . . . . . . C ADDR 0859H A
1376# 1381
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
84
SEL_C1 . . . . . . C ADDR 2276H A
M0I1 . . . . . . . C ADDR 0455H A
M1STR. . . . . . . C ADDR 0367H A
BIT8 . . . . . . . C ADDR 084AH A
863 2354#
699 713#
579# 584
467 750 792 842 896
935 972 1064 1365#
OLED_CMD . . . . . C ADDR 0330H A
330 333 336 339 469
537 539 541#
M4ENC. . . . . . . C ADDR 0099H A
108 111#
N_CUR. . . . . . . N NUMB 0048h
11# 836 841 967 1585
M4BIT8 . . . . . . C ADDR 0852H A
SEL_C2 . . . . . . C ADDR 227BH A
M0ST4. . . . . . . C ADDR 0534H A
FRQ_DISP . . . . . C ADDR 0965H A
1369# 1385
865 2360#
835 848#
723 809 820 831 1568#
M0I2 . . . . . . . C ADDR 046CH A
M1I1 . . . . . . . C ADDR 044FH A
M1EEP. . . . . . . C ADDR 01CAH A
M0MN . . . . . . . C ADDR 00C3H A
M5ENC. . . . . . . C ADDR 00B5H A
WL_ENC . . . . . . N NUMB 004Ch
M0STRC . . . . . . C ADDR 090DH A
M0UART . . . . . . C ADDR 0780H A
M0ST5. . . . . . . C ADDR 055BH A
M2I1 . . . . . . . C ADDR 0452H A
M0STAT . . . . . . C ADDR 0665H A
M6ENC. . . . . . . C ADDR 00ABH A
128
M1URT. . . . . . . C ADDR 0046H A
M1UART . . . . . . C ADDR 0783H A
M0STA5 . . . . . . C ADDR 06C7H A
M1ST5. . . . . . . C ADDR 0555H A
SPIN . . . . . . . C ADDR 02DDH A
OK . . . . . . . . C ADDR 0284H A
RXP. . . . . . . . C ADDR 0273H A
M10SET . . . . . . C ADDR 05E3H A
M1STAT . . . . . . C ADDR 0671H A
M2MN . . . . . . . C ADDR 00CAH A
M2URT. . . . . . . C ADDR 0050H A
C_DT . . . . . . . N NUMB 0046h
FRQ1 . . . . . . . N NUMB 004Eh
40 59#
1165 1196#
1075 1078#
862 865#
477#
416 417 424#
409 416#
245 944#
225 1023#
133 143#
60 63#
16# 1272
7# 731 803 808 1242
M2UART . . . . . . C ADDR 0786H A
M0ST7. . . . . . . C ADDR 0595H A
M2ST5. . . . . . . C ADDR 0558H A
MSG_WAIT . . . . . C ADDR 225AH A
DLY2 . . . . . . . C ADDR 033BH A
SPOUT. . . . . . . C ADDR 02F7H A
1166 1200#
889 902#
864 866#
682 2321#
547#
499# 527 544 555
M11SET . . . . . . C ADDR 060AH A
M2STAT . . . . . . C ADDR 067DH A
OLED_1ST . . . . . C ADDR 0324H A
636 665
M3MN . . . . . . . C ADDR 00C7H A
M3URT. . . . . . . C ADDR 0041H A
FRQ2 . . . . . . . N NUMB 004Fh
M0BIT. . . . . . . C ADDR 0897H A
M3UART . . . . . . C ADDR 0790H A
M0ST8. . . . . . . C ADDR 05BAH A
SFRQPLD. . . . . . C ADDR 0838H A
REMFR. . . . . . . C ADDR 039CH A
DLY3 . . . . . . . C ADDR 0340H A
STARTRECT. . . . . C ADDR 08FBH A
DISCRINP . . . . . C ADDR 0166H A
M12SET . . . . . . C ADDR 0628H A
M3STAT . . . . . . C ADDR 06AAH A
BEEP . . . . . . . C ADDR 09BEH A
Изм Лист № докум.
Подп.
Дата
717 726#
706 709#
312# 316
132 137#
118 127#
20# 1276
1507# 1510
1164 1192#
853 869#
708 710#
224 1015#
106 110 112 120#
246 964#
226 1031#
152 341 389 536#
137 140#
51 54#
8# 737 814 819 1248
1409 1421#
1167 1206#
905 921#
693 1347#
607 611#
549#
386 1496#
253# 1647
247 981#
227 1059#
91 387 1621#
БР-02069964-11.03.04-10-19
Лист
85
OLED_2ST . . . . . C ADDR 0329H A
87 379 384 392 450
538# 679 704 751
793 843 858 860 879
897 910 936 950 952
973 987 989 1032
1065 1315 1501 1532
1574 1611
M4URT. . . . . . . C ADDR 0037H A
46 49#
UART . . . . . . . C ADDR 0025H A
34 39#
SET_EXT. . . . . . N NUMB 0051h
12# 402 874 880
FRQ3 . . . . . . . N NUMB 0050h
9# 743 825 830 1254
M1BIT. . . . . . . C ADDR 08A0H A
1415 1427#
M4UART . . . . . . C ADDR 0798H A
1168 1212#
M0ST9. . . . . . . C ADDR 05DFH A
928 941#
M1ST8. . . . . . . C ADDR 05AFH A
912 915#
MSG_W. . . . . . . C ADDR 2250H A
687 2310#
DLY4 . . . . . . . C ADDR 0352H A
559#
OLED_DATA. . . . . C ADDR 031FH A
534# 580 1051 1053
1096 1101 1509 1580
1582 1616
INP_TAB. . . . . . C ADDR 0170H A
257 260#
M13SET . . . . . . C ADDR 064FH A
248 1002#
M4STAT . . . . . . C ADDR 06BDH A
228 1071#
M5URT. . . . . . . C ADDR 0053H A
61 65#
CUR_BR . . . . . . N NUMB 0049h
18# 966 971 1294
1358
M2BIT. . . . . . . C ADDR 088DH A
1413# 1425
M5UART . . . . . . C ADDR 07A0H A
1169 1218#
M1CMP. . . . . . . C ADDR 0720H A
1127 1135# 1148
M1DIS. . . . . . . C ADDR 06A7H A
1045 1055#
BRCURPLD . . . . . C ADDR 0844H A
978 1357#
UADDPLD. . . . . . C ADDR 083EH A
941 1352#
M2ST8. . . . . . . C ADDR 05B2H A
914 916#
DLY5 . . . . . . . C ADDR 0357H A
561#
M5STAT . . . . . . C ADDR 06C0H A
229 1075#
M6URT. . . . . . . C ADDR 005BH A
65 66 68#
UADD . . . . . . . N NUMB 0045h
23# 929 934 1353
MAX_UD . . . . . . N NUMB 0047h
M3BIT. . . . . . . C ADDR 087CH A
M6UART . . . . . . C ADDR 07A8H A
M2CMP. . . . . . . C ADDR 071BH A
M2DIS. . . . . . . C ADDR 0696H A
M3ST8. . . . . . . C ADDR 05C1H A
DELY1. . . . . . . C ADDR 08C2H A
M6STAT . . . . . . C ADDR 06C8H A
CHGM . . . . . . . C ADDR 00E5H A
M7URT. . . . . . . C ADDR 002CH A
17# 1290
1403# 1419
1170 1224#
1128 1131#
1044# 1055
921 924#
382 1450# 1507
230 231 232 233 1081#
111 165#
44#
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE
= 3494 ---XDATA SIZE
= ---- ---DATA SIZE
= ---- ---IDATA SIZE
= ---- ---BIT SIZE
= ---- ---END OF MODULE INFORMATION.
REGISTER BANK(S) USED : 0
ASSEMBLY COMPLETE. 0 WARNING(S) 0 ERROR(S)
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
86
ПРИЛОЖЕНИЕ Б
(обязательное)
Функциональные схемы преобразователей частоты для электропривода
переменного тока
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
87
ПРИЛОЖЕНИЕ В
(обязательное)
Структурная схема импульсно-фазового контроллера трехфазного
выпрямителя
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
88
ПРИЛОЖЕНИЕ Г
(обязательное)
Общая структурная схема комплексной системы управления
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
89
ПРИЛОЖЕНИЕ Д
(обязательное)
Фрагмент принципиальной схемы системы управления
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
90
ПРИЛОЖЕНИЕ Е
(обязательное)
Рисунок Е.1 — Фотография системы управления (вид со стороны
элементов)
Рисунок Е.2 — Фотография системы управления в собранном виде
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
91
Продолжение приложения Е
Рисунок Е.3 — Отображение параметров управления на дисплее
системы
Рисунок Е.4 — Осциллограмма фазы A питающей сети и 6 каналов
на выходе системы управления с шириной импульса 650 мкС
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
92
Окончание приложения Е
Рисунок Е.5 — Осциллограмма синусоидальной огибающей фазы W,
полученной после ФНЧ в режиме глубокой синусоидальной модуляции с
частотой 4 Гц
Изм Лист № докум.
Подп.
Дата
БР-02069964-11.03.04-10-19
Лист
93
Отзывы:
Авторизуйтесь, чтобы оставить отзыв