Поместить компонент на схему можно кликнув "ОК" затем поместите указатель мыши
в нужное место на листе схемы и щелкните мышкой. Компонент окажется на схеме. Если таких компонентов надо несколько - то сделайте несколько щелчков мышкой в нужных местах. Потом можно разместить и развернуть компоненты так как вам удобно.
![]() | Внимание! Компонент интерактивный. Красными стрелочками вы сможете прямо в ходе симуляции менять температуру корпуса датчика - т.е. ту которую он измеряет - щелкая по ним мышкой. Температура отображается на дисплее компонента. VCC - это + питания датчика DS18s20 GND - "общий провод" или "земля" DQ - линия данных. |
Компонент имеющийся на схеме можно добавить на схему вот так - выделить, скопировать и вставить, только в этом случае придется вручную присвоить ему новый порядковый номер. Поэтому лучше брать компоненты уже имеющиеся в проекте из списка "DEVICES" - тогда они будут нумероваться автоматически.
Отменить выделение ВСЕХ выделенных компонентов можно щелкнув правой кнопкой мыши в пустом месте схемы.
Удалить компонент или любой элемент со схемы можно двумя кликами правой кнопкой мыши по нему.
![]() | ||||
Левая панель инструментов - верхняя часть | ||||
L1 | открыть панель DEVICES - компоненты проекта и поиск новых | |||
L2 | поставить точку соединения проводников вручную | |||
L3 | дать название проводу - одноименные провода электрически СОЕДИНЕНЫ! | |||
L4 | добавить текст в произвольное место схемы | |||
L5 | проложить шину - это жгут проводов - на схеме жирная темно синяя линия | |||
L6 | создать под-схему - т.е. некий блок содержащий в себе свою схему и соединители. | |||
L7 | кликом по компоненту сразу открывает редактирование его свойств. |
L3 и L5 - очень полезны! они позволяют не превращать схему
в нечитаемую паутину из проводников - используйте!
8 ![]() | ||||
Левая панель инструментов - средняя часть | ||||
L8 | TERMINALS - питание, земля, межблочные соединения, выводы. | |||
L9 | добавить вывод к создаваемому компоненту. | |||
L10 | GRAPH - графич. отображение, сохранение и МОЩНЫЙ анализ результатов симуляции | |||
L11 | "магнитофон" для записи в файл и воспроизведения данных. | |||
L12 | генераторы любых напряжений, токов т вывод их из файлов данных. | |||
L13 | указать точку измерения напряжения на проводнике. | |||
L14 | указать точку измерения тока на проводнике. | |||
L15 | VirtualInstruments - измерительные приборы | |||
L16 | прокладка проводников на схеме, проводники можно называть с помощью L3 |
L10 - L15 - это инструментарий моделирования работы электронного устройства - т.е. главное в PROTEUS!
Помощь находится в меню: Help -> Proteus VSM Help
Часто в свойствах компонента есть кнопка "Help" - она открывает раздел справки именно по данному компоненту или модели.
Пожалуйста!
Посимулируйте примеры из папки \SAMPLES\Simulation
ЭТО НУЖНО ВАМ!
![]() | Эти кнопки позволяют изменять изображение выделенного компонента на схеме. они расположены в низу левой панели инструментов. Первая и вторая - вращают на 90 градусов, ниже поле для указания произвольного угла поворота, еще ниже стрелки зеркального переворота компонента. Такие же кнопки есть в выпадающем меню по двойному щелчку леыой кнопкой мышки по компоненту. |
4 кнопки управления симуляцией. ![]() | "Пуск" - запуск симуляции или продолжение приостановленной симуляции. "Шаг" - выполнить минимальный шаг по программе МК, обычно это одна инструкция на ассемблере. Этой кнопкой тоже можно начать симуляцию. "Пауза" - пауза симуляции. Можно продолжить кнопками "Пуск" или "Шаг" "Стоп" - остановка симуляции. После этого симуляция начнется сначала кнопками "Пуск" или "Шаг" |
Напомню - у нас открыт проект - 1WIRE_NET.DSN
Откройте панель редактирования свойств компонента (EditComponent) микроконтроллер AVRATmega8515 - двойным щелчком по МК левой кнопкой мыши. Щелкните по кнопке "HiddenPins" (скрытые выводы) - откроется дополнительное меню в котором показано как по умолчанию называются узлы (проводники) схемы к которым подключены питание МК - VCC и его общий провод - GND. Изменение этих названий позволит подключить питание МК к другим узлам схемы - это может потребоваться вам при питании МК или других компонентов разными напряжениями или от разных источников.
Нажмите "ОК" чтобы закрыть панель скрытых выводов и посмотрите внимательно
на содержимое панели редактирования компонента.
Главное для МК это программа по которой он будет работать.
В поле " ProgramFile " нужно указать:
.cof - если вы хотите вести отладку по исходнику - по тексту программы на языке Си в
компиляторе CodeVisionAVR - CVAVR - я очень рекомендую его вам!
.elf - файл если вы хотите вести отладку по исходнику на языке Си программы созданой в компиляторе WinAVR - это отличный компилятор, БЕСПЛАТНЫЙ и профессиональный, но новичкам немного затруднительно его использовать.
UBROF - формат файла если вы хотите вести отладку по исходнику на языке Си программы созданой в компиляторе IAR - это самый лучший компилятор для AVR, но новичкам ОЧЕНЬ затруднительно его использовать.
.obj - если вы будете отлаживать программу из BASCOM-AVR в PROTEUS
.hex - это файл прошивки которую загружают и в реальный микроконтроллер. При выборе его вы можете отлаживать устройство без возможности просмотра исполняемого кода либо при использовании МК из новых библиотек в той строке где указана частота такта МК вы можете слева выбрать опцию "Дизассемблировать" прошивку и в поле справа указать "Yes" (скриншот ниже) - теперь в паузе симуляции вы увидите в окне исходного текста программы ассемблерный текст.
Все файлы проекта располагайте
в папке с проектом PROTEUS!
Вот так выглядит окно свойств микроконтроллера в версии 7.4 и выше
Галочки в низу с лева, с верху в низ - "исключить компонент из симуляции", "исключить из разводки платы", "редактировать свойства в текстовом формате".
Советую ознакомится со всеми опциями по help.
ClockFrecuency - частота такта. Здесь в PROTEUS задается на какой частоте будет работать МК. Однако в AVR имеет значение установка фьюзов в свойствах микроконтроллера.
Если ваша программа подразумевает наличие данных в EEPROM МК (эти данные сохраняются при выключении МК) то файл с ними можно указать в этом же диалоге:
Конвертировать форматы данных.bin.hex.epp
можно в программаторе - CVAVR
Ассемблер в PROTEUS - ДА!
для AVR, PIC, 8051, Motorola
Если у вас есть "исходник" текст программы на ассемблере.asm или вы хотите написать программу на ассемблере в PROTEUS - вам нужно указать в свойствах микроконтроллера название .hex файла прошивки и еще через меню: Source (исходник, источник) далее: Add/RemoveSourceFile... (добавить - удалить исходник на ассемблере) - добавить название файла с текстом программы на ассемблере и выбрать нужный ассемблер:
Теперь при запуске симуляции будет происходить ассемблирование файла t15demo.asm
и если нет ошибок, то МК начнет работать уже по обновленному файлу T15DEMO.HEX
Это скриншот из проекта-примера PROTEUS в папке
SAMPLES \ AVR Tiny15 Demo
В нашем проекте эти поля ПУСТЫЕ! Так как мы используем файл.cof создаваемый и обновляемый компилятором CVAVR CodeVisionAVR
Итак:
Чтобы симулировать в ПРОТЕУС работу микроконтроллера достаточно
1) найти его в библиотеках и поместить на схему
2) указать какую программу он должен выполнять (как описано выше)
3) указать частоту тактирования МК (для AVR - комбинацией фьюзов)
Всё очень просто.
В микроконтроллерах PIC надо подтянуть MCLR к питанию напрямую или через PULLUP.
Повторю - это важно:
CLOCK - однозначно определяет частоту тактирования МК при симуляции PIC и ARM.
Учтите что в свойствах некоторых МК указаны параметры встроенного делителя частоты - он работает с версии 7.4 - значит его установки влияют на частоту с которой выполняются инструкции в микроконтроллере.
Кварц и конденсаторы не нужны для симуляции, их устанавливают на схему только
для того чтобы учесть при разводке печатной платы устройства.
WDG_CLOCK - показывает частоту работы RC генератора сторожевого таймера.
Хотя она и обозначена 1MHz - "собака" не включена пока мы не добавим в свойства
МК строчку: {WDGON=1} - вам не нужно ее включать.
На рисунке видно, что МК будет работать по программе определяемой файломds1990.cof - его создал компилятор CVAVR.
Компилятор WinAVR создает файл с раcширением.elf - вы можете попробовать пример из папки SAMPLES\AVR and SED1520 В нем указана программа для МК EW12A03GLY.hex - замените ее наEW12A03GLY.elf - и вы сможете видеть движение программы по исходнику на Си и АСМ-е.
|
Значение других параметров можно узнать в справке по кнопке - Help
Перечень поддерживаемых микроконтроллеров AVR, как подключать файлы с отладочной информацией и ограничения моделей.
Очень важно знать что НЕ симулирует модель МК - ModelLimitations
![]() | Пример - ограничения моделейATmega8 ATmega16 ATmega32 1) симулируется обчно используемый режим UART - асинхронный прием и пердача. 2) и 3) частота тактирования при симуляции зависит только от параметра CLOCK задаваемого в свойствах AVR на схеме. Все же 3) ошибка наверно - делители работают в 7.4 и выше. И для AVR надо устанавливать фьюзы. 4) биты bootlock не моделируются 5) JTAG не моделируется |
В общем - все что нужно моделируется!
PROTEUS - лучше устанавливать для пользователя с именем из латинский символов! Либо делать путь к папке \temp без кириллицы.
Не используйте кирилицу в названиях проектов и файлов.
Чтобы отлаживать в PROTEUS функции PRINTF и SCANF в программах созданных в компиляторе CodeVisionAVR зайдите в меню CVAVR- "прожект" - "конфига" - "С компилер" и в списках этих функций выберите"Long..." или "Float..." и затем "ОК".
|
Пора запустить симуляцию.
Кнопки управления симуляцией я уже описал выше.
А давайте запустим симуляцию "по хитрому" - укажем сколько времени программе работать и потом остановиться. Откройте меню DEBUG и щелкните пункт "ExecuteforspecifiedTime" - значит приказ "Отработать указанное время" - впишите время выполнения "198m" - это значит отработать 198 мили Секунд - нажмите "ОК" - программа поработает и остановится - внизу под схемой будет указано время - 0.198000000 секунд.
Помните! Выполнение такой команды и вообще симуляция, могут быть прерваны "точкой останова" или другим отладочным событием останавливающим симуляцию.
Множители в PROTEUS
p - пико x10-12 n - нано x10-9 u - микро x10-6 m - мили x10-3
kK - кило x103 M - мега x106
Сейчас можно было бы повторить такое же время или задать иное. А вы нажмите "ПАУЗА" - вот что у вас должно быть на экране после щелчка по меню DEBUG:
Вот часть картинки. Вы видите в верхней части меню команды управления ходом симуляции - моделирования устройства и соответствующие горячие клавиши.
Ctrl+F12 - начать симуляцию с начала.
F12 - пуск моделирования, продолжение если мы в паузе или стоим.
Alt+F12 - позволяет моделировать не останавливаясь на "точках останова" - "Breakpoints" - о них подробней ниже.
F10 - проскакивать функции
Ctrl+F10 - выполнить до строки отмеченной щелчком мышки
(но ваша строка может оказаться не достижима по алгоритму программы)
F11 - пошаговая симуляция
Ctrl+F11 - выйти из симулируемой функции
![]() |
Нижняя часть меню. В ней находится ЖУК - это настройка диагностики, реакции на события в моделируемых устройствах и настройка сообщений отладчика PROTEUS.
Ниже расположены разделы отдельных компонентов на схеме. При наведении указателя на компонент показывается, что можно просматривать в специальных окнах при симуляции.
Помощь по симуляции МК находится в разделе - Proteus VSM Help
SOURCE LEVEL DEBUGGING WITHIN PROTEUS VSM
При симуляции устройства на экране мы будем видеть анимированную картинку. Режим анимации можно изменить через меню System > SetAnnimationOptions...
![]() | Обычный режим - экран обновляется 20 раз в сек. - отображать напряжение и ток на щупах L13 и L14 - под Цвечивать логические уровни на выводах. - показать цветом напряжения на проводниках (нет галочки) - показать стрелками направление тока в проводниках (нет галочки) |
Максимальное напряжение не ограничивает напряжение в симулируемой схеме!
Оно указывается для того чтобы ПРОТЕУС PROTEUS мог решить каким цветом показывать логические уровни - цвета у ноже компонентов означают:
" Красный " - логическая " 1 "
" Синий " - логический " 0 "
" Серый " - неопределено - высоко импедансное " Z - состояние" (выше толковал уже).
" Желтый " - конфликт на линии.
Шаг оцифровки тока 1 мкА - вы можете уменьшить этот параметр и улучшить другие параметры для повышения точности симуляции - но это потребует бОльшей вычислительной мощности и замедлит моделирование.
SPICE Options - открывает настройку симуляции моделей, но не думаю что вам нужно туда лезть - там довольно сложные параметры.
Справку по каждой строчке можно получить щелкнув по знаку вопроса? и подведя лампочку к интересующему пункту.
Если у вас еще не открыть проект 1WIRE_NET.DSN - откройте его.
Щелкните "СТОП" и нажмите "СТАРТ" он же "ПУСК"
Выскочит окно виртуального терминала ПК и примерно за 1 секунду программа
МК сделает все, что от нее требовалось:
Это вывод из USART МК на виртуальный COM порт ПК по интерфейсу
RS-232 в терминал PROTEUS списка опознанных устройств на шине
1-Wire и их серийных номеров.
![]() | При анимации логические уровни на выводах указываются цветными квадратиками. Красный - "Горячий" лог. "1" Синий - "Холодный" лог. "0" Серый - высоко омный ВХОД "Z-состояние". Для определенности ПРОТЕУС считает что на выводе половина напряжения питания МК. Желтый - конфликт на линии. Например линия замкнута на землю а программа в МК пытается сделать на ней "сильную" лог. "1". "сильную" - в моей терминологии это значит не pullup, а ножка настроена как выход и в порт записывается "1". Номер "таблетки" для домофонов DS1990 написан на ней. Серийные номера приборов DSxxxx заданы на заводе и не изменяемы. В ПРОТЕУС эти номера задаются в окне редактирования свойств компонента и надо поставить "No" у "AutomaticSerialization" что бы выводились заданые вами номера. |
Нажмите кнопку "Стоп". Окно терминала пропадет.
Давайте отключим один 1-Wire прибор. Кликните правой кнопкой мыши на проводе от микросхемы U5 и затем левой щелкните красный крест - это удалит провод со схемы и отключит прибор от провода 1-Wire.
Нажмите кнопку "Пуск". Опять появится терминал PROTEUS но в списке опознанных приборов уже не появится отключенная U5 и уменьшится число найденных приборов до 6.
Восстановите удаленный проводник. Это можно сделать двумя способами:
1) Нажать кнопку отмены действия в верхней панели инструментов.
2) Проложить проводник заново. Выберите инструмент L16 - "проводник" - косая черточка над синим квадратом на левой панели инструментов и проведите провод от компонента U5 к проводу 1-Wire удерживая нажатой кнопку мыши и щелкните при касании провода - появится точка соединения проводников.
Снова запустите симуляцию и убедитесь что прибор опять опознан и считан.
Виртуальный терминал Один из важнейших инструментов отладки РЕАЛЬНЫХ устройств на МК -Virtualterminal - моделирующий терминал ПК обменивающийся данными с UART (USART) МК. Как использовать его в отладке я рассказал в задаче 4 Терминал (VirtualTerminal) находится под кнопкой L15 - "виртуальные инструменты". В ПРОТЕУС вы можете не согласовывать уровни RS232 и UART микросхемой типа MAX232, а подключать терминал напрямую к МК. Терминал поддерживает служебные символы ASCII - управления выводом текста: CR (0x0D), BS (0x08) и BEL (0x07). LF (0x0A) и остальные служебные коды игнорируются, т.е. выводятся как обычные числа. Поддерживаются скорости от 300 до 57600 бод, Формат данных 8N1и другие. В режиме паузы симуляции вы может по щелчку правой кнопкой по экрану терминала открыть меню в котором можно скопировать - вставить информацию, можно изменить в каком виде выводить числа - в виде символов или в 16-иричном виде, можно очистить экран от данных, можно установить режим эхо - принятые на RXD терминала символы будут выводится на его ножку TXD. Выводы RTS и CTS можно не соединять и не подключать вообще - хотя они работают как в настоящем COM-порту ПК. Терминал может передавать что-то только при отсутствии лог "0" на выводе CTS Можно использовать несколько терминалов в одной схеме. Если щелкнуть мышкой в окне терминала то он начнет передавать набираемые на клавиатуре ПК символы на ножку TXD. Можно вставить из буфера обмена информацию которую терминал так же будет выводить на ножку TXD. Передаваемая с терминала информация не отображается в окне терминала! Курсор остается на месте. Однако вы можете поставить галочку у "EchoTypedCharacters" щелкнув правой кнопкой в окне терминала при симуляции и тогда вводимый в терминал текст будет виден. Пожалуйста прочитайте подробнее о терминале по кнопке "Help" в его свойствах. Не забывайте о компоненте COMPIM который позволяет вашему виртуальному устройству подключится к реальному COM-порту вашего ПК! Вот VIDEO Видео инструкция как подключить реальный COM порт в PROTEUS. |
|
РеСтартуйте и приостановите симуляцию
для этого нажмите "Стоп" затем "Старт" и "Пауза" либо просто "СТОП" - "Пауза"
на экран повыскакивают "pop-up" окна с отладочной информацией
Перечень этих окон задается в низу выпадающего меню DEBUG - щелкните в меню
2. WatchWindow - окно слежения наблюдения за данными в МК.
После настройки оно не исчезает с экрана и при симуляции и нахождении в паузе. В этом окне вы можете размещать регистры МК и не только отслеживать их содержимое по ходу программы, но и задавать некоторые условия и действия при достижении этих условий - например остановить симуляцию. Щелкните правой кнопкой мыши в этом окне и выпадет меню для добавления наблюдаемых регисторв - по имени Alt+N или по их адресу Alt+A. Выбрав " добавить по имени " вы увидите окно со списком всех регистров (что такое регистр?) данного микроконтроллера - двойной щелчок по названию регистра поместит его вWatchWindow - по завершении выбора нажмите "Done" - "сделано".
Если перед названием регистра в WatchWindow стоит квадратик с плюсом значит
вы можете развернуть регистр на группы функционально связанных битов.
Шрифт (Font) вы можете изменить по своему желанию как здесь, так и в большинстве других окон.
|
В окне WatchpointCondition можно задать некоторое условие для наблюдаемого регистра и что делать симулятору при его возникновении - т.е. это
"точка останова" симуляции:
![]() | 1) Отключить слежение 2) Остановить симуляцию если верно хотя бы одно условие 3) Остановить симуляцию если верны все условия. |
Мы планируем симулировать и отлаживать
программу написанную на языке Си для МК
значит нам очень интересно
Окно с текстом этой программы: AVR SourceCode - U9
При симуляции в ПРОТЕУС этого примера сделанного на старой версии CVAVR - это окно не помнит какой исходник показывать если в нем нет активных точек останова!
Скачайте стабильную и надежную версию CVAVR 1.25.9 и исходник программы на Си
будет появляться в окне автоматически при паузе в симуляции.
CVAVR CodeVisionAVR создает копию файла исходного кода программы .с которую называет добавляя два знака подчеркивания перед точкой __.с и именно на этот файл содержит ссылки файл .cof с отладочной информацией используемой симуляторами и ПРОТЕУС -ом тоже.
Важно!
Файл.cof может содержать абсолютные адреса, поэтому не стоит его и связанные с ним файлы перемещать после компиляции!
Я рекомендую все файлы компилятора и PROTEUS размещать в одной папке проекта.
|
После указания файла с исходным текстом программы он появится в
окне - я добавил мышкой несколько точек останова:
Зеленые цифры - показывают строки программы на которые можно поставить точки останова программы - строки можно выделить (подсветить темно-синим)
кликом мышки и затем:
Двойным кликом или кнопкой F9 поставить точку останова (BP) - красный кружок.
Программа дойдя то этой точки остановится в режиме "ПАУЗА" - т.е. повыскакивают
pop-up окна с отладочной информацией.
Если нажать F9 еще раз, или еще раз сделать двойной щелчок по строчке - то BP выключится - станет красной окружностью и программа не остановится на ней.
Если нажать F9 еще раз, или еще раз сделать двойной щелчок по строчке - то BP исчезнет.
В меню DEBUG есть команда Alt + F12 - игнорировать любые BP
BP - очень эффективны при отладке программы.
в PROTEUS есть и "железные" BP - вот их перечень
![]() |
Список аппаратных ("железных") точек, событий останова симуляции - BP
ВАЖНО! Посмотрите внимательно какие это мощные инструменты для
отладки - они позволяют засечь массу событий
- изменение логического уровня на проводнике.
- изменение логического уровня на шине - на группе проводников.
- достижение различные напряжений и токов
- выход напряжения или тока из заданного диапазона...
Давайте попробуем точку останова "1 бит" - устанавливаемую на один
проводник в схеме. Добавьте эту BP на провод 1-wire в нашей схеме вот так:
Затем двойным щелчком по ней откройте свойства этой аппаратной BP
В поле " TriggerValue " указывают значение при возникновении которого эта BP остановит симуляцию - в данном случае это логическая "1" на проводнике - т.е. когда в проводнике возникнет фронт сигнала - переход из "0" в "1" - симуляция остановится.
Запускаем моделирование нашего устройства, если вы установили 3 точки останова в программе как на скриншоте который был выше то программа вначале будет останавливаться на некоторых из них - в низу схемы выводится сообщение о причине остановки и время с начала симуляции. Нажимайте "ПУСК" пока причиной остановки не станет DBT1 - щелкните на "6 Message(s)" - появится окно лога симуляции - в нем указана причина и время остановки.
Если поставить еще одну BP на эту же линию и событием в ней назначить "0" то можно отслеживать любое изменение логического сигнала на данном проводнике.
Выше в списке вы видели что такие BP есть до 16 бит шириной.
Закончите симуляцию - нажмите кнопку "Стоп".
Отключите BP - это можно сделать так:
- удалить BP из схемы
- отсоединить от проводника удалив провод от BP
- в свойствах BP поставить галочку "ExcludefromSimulation" - "исключить из симуляции".
Нажмите "Пуск".
Программа остановится на 1-й точке останова и выскочит окно с исходником на Си. Строчка на которой остановилась программа будет подсвечена серым цветом и на нее будет указывать красный треугольник слева от BP. В окно терминала будет выведена информация:
Я вручную переместил окна для этого скриншота. Размещайте окна и задавайте
им размер так чтобы удобно было видеть их на экране.
Важно! По тексту выведенному в терминал мы видим что остановка происходит до выполнения строки на которой находится BP
|
Нажмите "ПУСК" - программа остановится на следующей точке останова -
т.е. на следующей строчке программы. В окне терминала видно что произошло
выполнение предыдущей строки программы.
Переменные их адреса и содержимое в окне AVR Variables
Посмотрите, в программе объявлены:
Глобальный массив байтов rom_code - он двумерный 8 на 9.
Локальные переменные символьного типа: i, j, devices, n.
Что такое локальные и глобальные переменные вы можете
почитать в Язык Си для микроконтроллеров МК
Обратите внимание! Для локальных переменных не указаны адреса и значения - это не удобно. Если вы хотите отслеживать какие то переменные в PROTEUS то сделайте их глобальными и проследите чтобы они не размещались в регистрах AVR а были в RAM памяти.
Вданномпримерепеременные
main () {
unsigned char i,j,devices;
unsigned char n=1;
можно сделать глобальными поместив их перед main () вот так:
unsigned char i,j,devices;
unsigned char n=1;
main () {
Затем надо в свойствах проекта CVAVR в закладке "CCompiler" снять галочку
у " Automaticregisterallocation " и скомпилировать проект заново.
Теперь переменные и их значения видны:
(Скачайте CVAVR и вы сами так сделаете)
Щелкнув правой кнопкой в окне переменных - вы откроете меню в котором можно:
- менять форму представления значения переменной
- включить отображение предыдущего значения переменной
- отключить показ глобальных переменных
- включить показ типов переменных
Щелкнув правой кнопкой в окне исходника - "AVRsourcecode"
вы откроете меню в котором можно:
- включить нумерацию строк программы
- включить или выключить все BP
- найти что-то в исходнике
- перейти на нужную строку программы.
- изменить шрифт в окне.
Ctrl+D - включить отображение ассемблерных инструкций реализующих
код программы написанной на Си - это очень удобно:
На ассемблерном коде вы тоже можете ставить "точки останова" программы - BP
Даже при таких мелких шагах все виртуальные приборы продолжают показывать
измеряемые параметры и в виртуальном осциллографе или логическом анализаторе
вы можете увидеть после выполнения какой строчки кода произошло какое либо
изменение на ножках МК или в других узлах схемы.
Теперь поработайте сами - по-симулируйте, расставьте
точки останова так, что бы отследить алгоритм работы программы.
Вы можете изменить и перекомпилировать программу в компиляторе
CodeVisionAVR и посмотреть результат в PROTEUS.
Использование виртуального осциллографа и логического анализатора
я рассмотрю в следующих примерах этого курса.
Вы можете сами пока посмотреть примеры работы с этими
устройствами в папке SAMPLES\Simulation
ВSAMPLES\Simulationесть примеры использования самого мощного средства графического сбора и отображения данных моделирования работы устройства:
SimulationGraph - попробуйте вот эти примеры: DAC0808.DSN или Invosc.DSN- вот скриншот этого примераPROTEUS GRAPH
![]() |
|
Промежуток времени отображаемый на графике устанавливается в меню которое открывается по щелчку правой кнопкой мыши на графе - пункт "EditGraph", в нем же настраивается вертикальный масштаб и можно дать названия осям.
Для редактирования отображаемых сигналов откройте меню двойным щелчком по названию сигнала - давайте откроем зеленый AD1(A) и изменим масштаб его отображения умножив на 0.3 и поднимем его вверх на 2 вольта - я вписал формулу для изменения сигнала в поле "Expression" и для памяти (не обязательно) добавил к названию сигнала в "Tracename" то как он изменен - чтоб не запутаться в его реальной величине. В формулах можно использовать и другие сигналы - т.е. выводить на график комбинации сигналов - например из напряжения и тока можно получить график мощности.
Сделайте такие изменения, щелкните "ОК" и обновите данные симуляцией "Пробел" - зеленая трасса изменилась. Теперь уберите эти изменения-формулы.
Вывод комбинации аналоговых сигналов на график.
Давайте сложим 4 аналоговых сигнала и еще на 0.2 умножим сумму, чтоб они не сильно изменили диапазон графика. По-умолчанию в PROTEUS диапазон по вертикали выставляется автоматически. Для этого нажмите "плюс" левее человечка млм "Ctrl + A" - появится меню "Добавить трассу, сигнал" - я назвал сигнал SUMM, выберите Analog и в"ProbePx" укажите 4 аналоговых сигнала, затем умножаем на 0.2 - вот так:
жмем "ОК" и название нового сигнала появилось на графике. Запускаем симуляцию в GRAPHнажав клавишу "пробел" или щелкнув по человечку - вот результат:
Можно жестко задать диапазон напряжений выводимый на графике вот так:
Данные симуляции вы можете сохранить в файл через меню Graph ->ExportData
укажите название файла и где его расположить, затем нажмите "Сохранить". Вы получите файл в стандартном формате для измерительных приборов - CSV - данные разделенные запятыми - сможете затем импортировать в Excelили например в MATLAB
Графики результатов симуляции можно экспортировать в графические
и CAD форматы через меню File -> ExportGraphics
В общем пакет мощный - сразу всё не расскажешь...