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

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 53 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2022 ётся величина деления поосиY (количе- ство вольт на деление). Начальная точка вывода сигнала на оси Y указывается в поле Position. Поле может принимать как положительное, так и отрицатель- ное значение. Выбор положительного значения в данномполе сдвигает началь- нуюточку вверхпоосиY, соответственно выборотрицательного значения сдвига- ет начальную точку вниз. Выбор режи- ма работыосуществляется посредством установки ползунка в одну из четырёх позиций: АС, DC, GND, OFF. Врежиме АС отображается толькопеременная состав- ляющая сигнала. ВрежимеDCотобража- ется сумма переменной и постоянной составляющих сигнала. В случае выбора позицииGNDвходнойканал замыкается на землю, ана экране графического дис- плея отображается прямая линия в точ- ке исходной установки оси Y. Установ- ка ползунка в позицию OFF выключает отображение сигналана дисплее. Также в окнеChannel Aрасположено две кнопки: ● Invert – задаёт инверсный режим ра- боты осциллографа, в котором сиг- нал инвертируется относительно по- ложения нуля; ● A+B – задаёт режим, в котором на экране графического дисплея ото- бражается суммарный сигнал кана- лов А и В. Интерфейс окон Channel C, Channel B, Channel D аналогичен уже рассмотрен- ному окну Channel A за исключени- ем того, что в окне Channel C вместо кнопки A+B присутствует кнопка С+D, задающая режим, в котором на экра- не графического дисплея отобража- ется суммарный сигнал каналов С и D. В окнах Channel B и Channel D такая кнопка вообще отсутствует. В нижней части окна Horizontal рас- положена ручка, при помощи кото- рой задаётся величина деления по оси Х. Начальная точка вывода сигнала на оси Х указывается в поле Position. Поле может принимать как положительное, так и отрицательное значение. Отобра- жение сигнала на экране графическо- го дисплея производится слева напра- во. Выбор положительного значения в данном поле сдвигает начальную точку вывода сигнала вправо, соответственно выбор отрицательного значения сдвига- ет начальную точку влево. Выбор режи- ма развёртки осуществляется в поле Source посредством установки ползун- ка в одну из следующих позиций: ∧ , А, В, С, D. В случае выбора режима ∧ (сиг- нал по оси Y/время) на экране графи- ческого дисплея по оси Y будут отобра- жаться сигналы каналов А, В, C, D, а ось Х будет осьювремени. РежимыА, В, C, D– это режимы наблюдения фигур Лисса- жу. Выбор такого режима может быть полезен для изучения фаз сигналов. В верхней левой части панели управ- ления осциллографа размещено окно Trigger (Синхронизация). Выбор кана- ла для запуска синхронизации произ- водится в поле Source посредством уста- новки ползунка в одну из следующих позиций: А, В, С, D. Осуществить выбор запуска сигнала синхронизации – по фронту или по срезу – можно в соответ- ствующем поле посредством установки ползунка в одну из позиций. В правой части окна Trigger находят- ся кнопки выбора режима синхрони- зации: ● One-Shot (Однократный) – режим ожидания сигнала синхронизации (используется для регистрации од- нократного сигнала); ● Auto (Автоматический) – запуск осцил- лограммыпроизводится автоматиче- скиприподключенииосциллографа к схеме и включении эмуляции схемы. Результаты работы четырёхканаль- ного осциллографа отображаются на экране графического дисплея, распо- ложенном в левой части лицевой пане- ли данного прибора, в виде кривых, которые представляют входные сиг- налы, полученные с входов А, В, C, D. В нашем примере осциллограф приме- нён для отображения сигналов SDA и SCL интерфейса I 2 C. После создания схемы, подключения всех приборов и настройки их пара- метров переходят к следующему этапу разработки: написанию программно- го кода управления устройством с помо- щью CodeVisionAVR. Среда разработки поддерживает все базовые конструкции языкаС, которыеиспользуютсяпринапи- сании программ (алфавит, константы, идентификаторы, комментарии) и раз- решены архитектурой AVR, с некоторы- мидобавленнымихарактеристиками, реа- лизующими преимущество специфики архитектуры AVR. Используя специаль- ные директивы в любом месте програм- мы, можновключить ассемблерныйкод. В CodeVisionAVR имеется набор команд управления буквенно-цифровыми дис- плеямиидатчикамитемпературы,функ- ции шины I 2 C и доступа к памяти. Про- граммные средствапозволяютнапрямую обращатьсякрегистраммикроконтролле- раиуправлять состояниемлинийпортов. В результате компиляции программ- ного кода управления устройством (при условии отсутствия в коде ошибок) на диске компьютера будет получен hex- файл, путь к которому указывают в окне свойств микроконтроллера в Proteus. Завершающимэтапомработыв Proteus является запускпроцессамоделирования схемы в редакторе Schematic Capture, который выполняют кнопкой Run the simulation, расположеннойв левомниж- нем углу окна редактора или командой основного меню Debug/Run Simulation. Временную приостановку процесса симуляциивыполняют кнопкойPause the simulation, or start up at time 0 if stopped (кнопканаходится в левомнижнемуглу окна редактора). Останавливаютмодели- рование кнопкой Stop the simulation. Создание программного кода в CodeVisionAVR Формирование программного кода в CodeVisionAVR выполняют при помо- щи автоматического генератора CodeWizardAVR (для быстрого получе- ния кода, который требует редактиро- вания) или вручную с нуля, используя синтаксис языка программирования С ифункции стандартных библиотек про- граммы. Одна часть библиотек встроена в компилятор, другая (файлы с расши- рением .lib) располагается в поддирек- тории ..\LIB. Каждая библиотека пред- ставляет собой набор определённых функций, среди которыхфункциишины I 2 C для работы с температурными дат- чиками LM75AD (библиотека lm75.lib) и LCD-функции для работы с дисплеем (библиотека lcd.lib). Для использования в программе библиотечных функций необходимо подключить с помощью директивы #include соответствующие заголовочныефайлы (lm75.h – для рабо- ты с датчиком LM74AD, lcd.h – для рабо- ты с буквенно-цифровым дисплеем). Функции протокола I 2 C рассматри- вают микроконтроллер как master (ведущий) шины, а периферийные устройства – как slaves (ведомые). Их применяют для: ● инициализации шины I 2 C (функция void i2c_init(void)); ● чтения байта из шины (функция unsigned char i2c_read (unsigned char ack)). Параметр ack (подтверждение прочтения байта) устанавливают в 0, когда подтверждение не требует- ся, или в 1, когда должно быть выда- но подтверждение после прочтения байта данных; ● записи байта data в шину (функция unsigned char i2c_write (unsigned char data)).

RkJQdWJsaXNoZXIy MTQ4NjUy