Современная электроника №1/2021

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 34 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2021 Сигналы управления на приво- ды через соединители Х1…Х3 посту- пают с регистра DD2 и инверторов DD1.1…DD1.3. На входы данных инвер- торов поступает тактовая частота с про- граммируемого таймера DD3. Работа обратной связи привода с пультом будет рассмотрена на при- мере привода № 1. Когда тумблер SA1 находится в положении «1», устанавли- вается запрет работы пульта по каналу 1. Тумблер SA1 в положении «2» разре- шает работы пульта по каналу 1. С кон- такта 7 соединителя Х1 сигнал READY1 поступает на вход 8 микроконтролле- ра DD4. Микроконтроллер DD4 ана- лизирует уровень сигнала, поступаю- щего на вход 8. При уровне лог. 0 на входе 11 таймера DD3 (вход разреше- ния счёта канала 0) присутствует лог. 1. При этом счёт канала 0 разрешён. Ана- логично работают приводы№2 и№3. Пульт выполнен в виде функциональ- но законченного модуля. Программ- ное обеспечение микроконтроллера осуществляет реализацию алгоритма работы динамической индикации бло- ка и функционирование трёх контрол- леров OSM. Функционально закончен- ный модуль состоит из трёх основных частей: процедуры инициализации, основной программы, работающей в замкнутом цикле, и подпрограм- мы обработки прерывания от тайме- ра TF0. В основной программе проис- ходит вычисление частоты вращения роторов шаговых двигателей по фор- муле F=1500/N, преобразование полу- чившегося двухбайтового двоичного числа в десятичное двоично-кодиро- ванное (BCD) число для отображения информации на индикаторе устрой- ства. В подпрограмме обработки пре- рывания от таймера TF0 в каждом цикле происходит опрос клавиатуры, пере- кодировка двоично-десятичного чис- ла в код для семисегметного индикато- ра и запись информации из порта P1 микроконтроллера DD4 в регистры DD2, DD5. Запись в регистры проис- ходит по фронту импульсов, подавае- мых, соответственно, с выводов 3 и 6 микроконтроллера DD4. Таймер TF0 микроконтроллера DD4 формирует запрос на прерывание через каждые 3400 мкс. Данный таймер играет роль счётчика времени, кото- рый формирует временные интервалы, необходимые для отображения разря- дов в динамической индикации блока. Питающее напряжение поступает на плату с соединителя Х4. Конденсатор С4 фильтрует пульсации в цепи пита- ния +5 В. Сразу после подачи питания на выводе 1 микроконтроллера DD4 через RC-цепь R16С1 формируется сигнал системного аппаратного сбро- са микроконтроллера DD4. Затем происходит инициализа- ция программы, в которой задают- ся параметры работы динамической индикации, приводов, а также про- граммируемого таймера DD3. Далее запускается таймер TF0 и разреша- ется работа устройства по приведён- ному ранее алгоритму. В ОЗУ микро- контроллера DD4 организован буфер отображения. Каждый байт из функциональной группы буфера отображения в под- программе обработки прерывания тай- мера TF0 выводится в порт P1 микро- контроллера DD4. Номер группы или режим работы записан в регистре R2. В регистре R1 записан текущий номер отображаемого разряда динамической индикации. Адрес ячейки памяти, где хранится значение самого разряда, записан в регистре R0. В процессе рабо- ты подпрограммы обработки прерыва- ния происходит опрос клавиатуры. Байт, выводимый при этом в порт Р1 микроконтроллера, представляет собой код «бегущий ноль». После записи данно- го байта в порт Р1микроконтроллерDD4 анализирует сигнал на входе 7 (Р3.3). В рамках указанной подпрограммы при любой нажатой кнопке на входе 7 микроконтроллера присутствует лог. 0. Таким образом, каждая кнопка клавиа- турыпривязана к своему разряду байта. Нажатием кнопки S4 инкрементируется регистр R2, и тем самым задаётся один из трёх режимов работыблока управления. В памяти данных микроконтролле- ра в адресах с 30Н по 3BН организован буфер отображения для динамической индикации. По своему функционально- му назначению адресное пространство данного буфера можно условно разбить на три функциональных группы. Каж- дая группа занимает четыре ячейки памяти (так как у нас имеется четыре разряда или знакоместа): ● 30Н…33H – адреса, где хранится теку- щее значение (об/мин) для привода № 1. Эти адреса выводятся на инди- кацию в режиме «привод 1». По адре- су 30Н хранится число 1. ● 34Н…37Н – адреса, где хранится теку- щее значение (об/мин) для привода № 2. Эти адреса выводятся на инди- кацию в режиме «привод 2». По адре- су 34Н хранится число 2. ● 38Н…3ВН – адреса, где хранится теку- щее значение (об/мин) для привода № 3. Эти адреса выводятся на инди- кацию в режиме «привод 3». По адре- су 38Н хранится число 3. Данные адреса загружаются в регистр R0 микроконтроллера. Каж- дый байт из функциональной груп- пы в цикле в подпрограмме обработ- ки прерывания таймера TF0 (метка OT) после перекодировки выводится в порт Р1 микроконтроллера. Для вклю- чения индикаторов HG1…HG4 необхо- димо установить лог. 0 на выводах 2, 5, 6, 9 регистра DD5 соответственно. Так, например, для того чтобы в режиме «привод 1» на индикаторе HG1 инди- цировалась единица, необходимо дво- ично-десятичное число, расположен- ное по адресу 30H, перекодировать, вывести в порт Р1 микроконтроллера и записать лог. 0 в первый разряд реги- стра DD5 (вывод 2). Путём записи поо- черёдно после перекодировки в цикле в порт Р1 микроконтроллера байты из функциональной группы буфера ото- бражения и лог. 0 на соответствующий вывод регистра DD5 будет реализо- ван режим динамической индикации. Понятно, что каждый разряд индикато- ра устройства привязан к своему опре- делённому адресу в функциональной группе. На регистре R1 реализован счётчик разрядов. В регистр R0 записываются адреса функциональных групп (метки TEMО0, TEMО1, TEMО2). При каждом обраще- нии к подпрограмме обработки пре- рывания регистры R0 и R1 инкремен- тируются. При инициализации в R0 загружается адрес 30H (режим «привод 1»), а в R1 – число 1. В памяти данных в ячейке с адресом 20Н находится байт, который управляет разрядами динами- ческой индикации и входами разреше- ния счёта каналов 0, 1, 2 таймера DD3. Данный байт записывается в регистр DD5 сразу после опроса клавиатуры. Младшая тетрада в данном байте пред- ставляет собой код «бегущий ноль» для включения знакомест (разрядов) дина- мической индикации. Длительность цикла динамической индикации, как уже отмечалось ранее, составляет 3,4 мс. По адресу 21Н в памяти данных находится байт, который управляет сигналами импульсных интерфей- сов приводов (сигналы DIR и EN) и задаёт адреса каналов в таймере DD3. Данный байт выводится в цикле под- программы обработки прерывания в регистр DD2.

RkJQdWJsaXNoZXIy MTQ4NjUy