//--> PROTEUS VSM ISIS ARES скачать PROTEUS русское руководство для начинающих - www.proteus123.narod.ru - схема прошивка скачать книги роботы
 

 

 

Краткий учебный курс PROTEUS  обновлен 8 дней назад.
Самоучитель PROTEUS

PROTEUS это супер программа для полного цикла разработки электроники, для создания схем радио электронных устройств, для моделирования электронных устройств - симулятор электроники аналоговой и цифоровой. PROTEUS позволяет достаточно реалистично моделировать микроконтроллеры  AVR , 8051, PIC10, PIC16, PIC18, ARM7, Motorola HC11 и всю схему в которой они работают и ARES для проектирования печатных плат.               

PROTEUS - от идеи до результатов работы устройства и файлов для производства
 

3D визуализация вашего устройства! 

 

Как сделать плату в PROTEUS.

VIDEO получения 3D макета

Главное - в PROTEUS вам доступна МАССА виртуальных приборов и источников сигналов - то чего всегда не хватает любителю !   Осциллограф 4 лучевой записывающий - причем в схеме вы можете использовать их несколько одновременно. Супер мощный анализатор GRAPH - в нем может быть сколько угодно цифровых и аналоговых сигналов одновременно и таких графов тоже можно использовать несколько в схеме.

Примеры работы с анализатором GRAPH  в папке  Proteus\SAMPLES\Graph Based Simulation  начните с примеров - Plltype2.DSN  Mixed.DSN  
DAC0808.DSN  и  Invosc.DSN  и вам станет ясно, что это за ЗВЕРЮГА!

  Полный скриношот с логическим анализатором GRAPH.


Сыграйте партию в шахматы с PROTEUS и вы убедитесь,
что возможности этой программы очень велики.

В примерах PROTEUS есть шахматный компьютер на микроконтроллерах -
AVR
,  PIC,  8051 и большом "тачскрине" - работают прекрасно и демонстрируют некий интеллект.

 

Cкачать PROTEUS можно в google.com запрос:  скачать proteus 7.10    это самая стабильная версия на 2014-01 версия 8 доступна но стабильно работающей я не нашел пока.

 

PROTEUS  содержит более 200 примеров показывающих как использовать его возможности - смотрите их и учитесь.

Вот только перечень папок с примерами - и в каждой их множество ...


 
 
  Рейтинг@Mail.ru
 

 

Великолепнейший FAQ по PROTEUS на русском языке !
    Спасибо его создателю !   
    Вариант в .PDF в архиве с PROTEUS 7.6 sp0

Конференция с МОРЕМ ответов на вопросы по PROTEUS ! 

ВНИМАНИЕ - чтобы получить ответ быстро и без переспросов - прикладывайте к вопросу ваши проекты в PROTEUS и в компиляторах - указывайте версии программ в исходниках. 

Чем больше информации вы дадите в вопросе - тем проще будет вам помочь и помощь будет точнее ! 

Выкладывать без регистрации файлы удобно на http://zalil.ru/ а картинки на http://saveimg.ru/

 

Реклама - радиодетали почтой недорого:


 
 
Советы

Не создавайте проект в PROTEUS с нуля!

Откройте пример из папки SAMPLES и модифицируйте
его под свою схему, задачу.    Пример -
> как шаблон.

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

Вот так вы можете найти пример PROTEUS с нужным вам МК или компонентом для использования в качестве заготовки:

Скриншот крупно.

 

 

Запустите PROTEUS -> ярлык  ISIS 7 Professional

Зайдите в меню File -> Open Design...

обычно открывается папка с примерами - SAMPLES.  Откройте папку

C:\Program Files\Labcenter Electronics\Proteus 7 Professional\SAMPLES\VSM for AVR\One-Wire\NETWORK

Вы увидите файл проекта PROTEUS -  1WIRE_NET.DSN  - двойным щелчком по названию откройте проект.  Разверните окно PROTEUS на весь экран щелкнув по квадратику в правом верхнем углу.

Вот что у вас должно получиться (часть картинки)

Старт Шаг Пауза Стоп

<-    это кнопки управления симуляцией.

Для навигации по схеме мышкой перетаскивайте область видимости схемы - это зеленый квадрат вверху слева на картинке.

Масштаб изображения можно менять с помощью колеса на мышке или с помощью инструментов "лупа +" и   "лупа -" в верхней панели инструментов. 

Весь рабочий лист можно увидеть кликнув кнопку справа от "лупа -" 

Показать определенную область схемы можно выделив ее с помощью инструмента выделения области инструментом - он еще правее.

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

Внимательно изучите это меню  - кроме манипуляций положением компонента вы видите "молоток" - он позволяет разобрать сложный компонент на его "кусочки-кирпичики" поправив которые по своему можно опять собрать компонент кнопкой "Make Device". Вы видите вызов справки по компоненту и даже линк на скачивание даташита ! Очень удобно. Используйте. "Packaging Tool" позволяет редактировать корпус. "Show Pack ..." - показывает корпус компонента.

Фиолетовый жук - БАГ - это очень гибкие настройка опций симуляции.


Это меню можно открыть и не выделяя предварительно компонент - а просто сразу щелкнув на нем правой кнопкой мыши.


Свойства компонента
 - сделайте двойной щелчок левой кнопкой мышки по компоненту и откроется окно его свойств.  О нем чуть ниже.


В левой верхней области экрана вы видите мини макет страницы со схемой проектируемого устройства и чуть ниже панель DEVICES  - это компоненты которые использованы в проекте :

Кнопка с буквой  "Р"  открывает форму поиска компонента в библиотеках PROTEUS для добавления в схему.  

Кнопка с буквой  "L"  открывает менеджер библиотек - с его помощью вы можете подключать новые библиотеки компонентов.

Вы видите микроконтроллер AVR  AT90s8515 

Несколько компонентов компании DALLAS - MAXIM - все они подключены по схеме к одному проводу интерфейса 1-Wire

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

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

   

Я уже предупреждал вас - PROTEUS это интерактивный
справочник по электронным компонентам! 

Значит мы можем узнать что это за компоненты.
 


Кликните кнопку с буквой  Р.  Откроется форма-меню поиска и выбора компонентов "Pick Devices". 

В поле - "Keywords"  вводите ключевые слова - любая часть названия компонента, или класса компонентов, или ток, напряжение, типа транзистора - то, что вы знаете и помните о нужном вам компоненте 

Вот пример поиска компонентов в базе PROTEUS на ток 60 ампер - Изображение.

Теперь введите ds2 и затем выберите щелкнув мышкой верхний из 4-х найденных компонентов - DS2405. В поле "Description" (описание) видим "адресуемый переключатель" - т.е. к этому прибору можно обратится по его адресу и "приказать" ему сделать на выходе PIO лог.  "1" или "0" и возможно перевести выход в высоко импедансное Z-сотояние - ножка с очень большим сопротивлением практически не проводящая тока - т.е. не влияющая на то, что к ней подключено.  



Я пишу возможно потому что не знаком с этим компонентом и у меня нет под рукой его ДатаШита


Подробнее о лог."1"  лог."0" и Z-сотоянии - читайте на стр. 2 курса по AVR и PIC.


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


 

Квадрокоптер, Мультикоптер, Автопилоты, БПЛА, ДПЛА, Роботы, системы автономной навигации - системы под ключ и обучение.

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

Недорогие БПЛА ДПЛА беспилотники готовые к работе от 450 $.

Есть дорогие аппараты с дальностью полета до 2800 Км Грузоподъемность до 160 Кг. Но довольно дорого !

 

 


Другая часть 1-Wire приборов на схеме начинается на  ds1 - введите эти символы в поле ключевых слов.  

Теперь найдено 8 приборов. Причем они расположены в 2-х категориях. 

Я выбрал мышкой DS18s20  - в описании написано: "Высоко точный 1-Wire цифровой термометр". На схемном изображении этого компонента видно некоторое поле напоминающее дисплей - так и есть, в нем наверняка будут выводится какие то данные в процессе симуляции.

 

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


Поместить компонент на схему
можно кликнув "ОК"  затем поместите указатель мыши 
в нужное место на листе схемы и щелкните мышкой. Компонент окажется на схеме. Если таких компонентов надо несколько - то
сделайте несколько щелчков мышкой в нужных местах.  Потом можно разместить и развернуть компоненты так как вам удобно.

Внимание !  Компонент   интерактивный. 

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

Температура отображается на дисплее компонента. 

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   Virtual Instruments  -  измерительные приборы
  L16   прокладка проводников на схеме, проводники можно называть с помощью  L3


L10 - L15  - это инструментарий моделирования работы электронного устройства - т.е. главное в PROTEUS ! 

Помощь находится в меню:     Help  ->  Proteus VSM Help 

Часто в свойствах компонента есть кнопка "Help" - она открывает раздел справки именно по данному компоненту или модели.

 

Пожалуйста !

Посимулируйте примеры из папки \SAMPLES\Simulation  

ЭТО  НУЖНО  ВАМ !

 

 

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

они расположены в низу левой панели инструментов.

Первая и вторая - вращают на 90 градусов, ниже 
поле для указания произвольного угла поворота, 
еще ниже стрелки зеркального переворота компонента. 

Такие же кнопки есть в выпадающем меню по двойному
щелчку леыой кнопкой мышки по компоненту.  

 

4 кнопки управления симуляцией

"Пуск" - запуск симуляции или продолжение приостановленной симуляции. 

"Шаг" - выполнить минимальный шаг по программе МК, обычно это одна инструкция на ассемблере. Этой кнопкой тоже можно начать симуляцию.

"Пауза" - пауза симуляции. Можно продолжить кнопками "Пуск" или "Шаг"

"Стоп" - остановка симуляции. После этого симуляция начнется сначала кнопками "Пуск" или "Шаг"

 

 

Напомню - у нас открыт проект  - 1WIRE_NET.DSN  

Откройте панель редактирования свойств компонента (Edit Component) микро контроллер AVR ATmega8515 - двойным щелчком по МК левой кнопкой мыши. Щелкните по кнопке "Hidden Pins" (скрытые выводы) - откроется дополнительное меню в котором показано как по умолчанию называются узлы (проводники) схемы к которым подключены питание МК - VCC и его общий провод - GND. Изменение этих названий позволит подключить питание МК к другим узлам схемы - это может потребоваться вам при питании МК или других компонентов разными напряжениями или от разных источников. 

  

Нажмите "ОК" чтобы закрыть панель скрытых выводов и посмотрите внимательно
на содержимое панели редактирования компонента. 

Главное для МК это программа по которой он будет работать. 

В поле "Program File" нужно указать:

.cof  -  если вы хотите вести отладку по исходнику - по тексту программы на языке Си в
                компиляторе CodeVisionAVR - CVAVR - я очень рекомендую его вам ! 

.elf    -  файл если вы хотите вести отладку по исходнику на языке Си программы созданой в компиляторе   WinAVR   - это отличный компилятор, БЕСПЛАТНЫЙ и профессиональный, но новичкам немного затруднительно его использовать.

UBROF -  формат файла если вы хотите вести отладку по исходнику на языке Си программы созданой в компиляторе  IAR   - это самый лучший компилятор для AVR, но новичкам ОЧЕНЬ затруднительно его использовать.

.obj  - если вы будете отлаживать программу из BASCOM-AVR в PROTEUS

.hex   -  это файл прошивки которую загружают и в реальный микроконтроллер. При выборе его вы можете отлаживать устройство без возможности просмотра исполняемого кода либо при использовании МК из новых библиотек в той строке где указана частота такта МК вы можете слева выбрать опцию "Дизассемблировать" прошивку и в поле справа указать "Yes" ( скриншот ниже ) - теперь в паузе симуляции вы увидите в окне исходного текста программы ассемблерный текст.

 

Все файлы проекта располагайте
в папке с проектом
PROTEUS !
 

Вот так выглядит окно свойств микроконтроллера в версии 7.4 и выше

Галочки в низу с лева, с верху в низ  - "исключить компонент из симуляции", "исключить из разводки платы", "редактировать свойства в текстовом формате".

Советую ознакомится со всеми опциями по help.


Clock Frecuency  -
частота такта.  Здесь в PROTEUS задается на какой частоте будет работать МК.  Однако в AVR имеет значение установка фьюзов в свойствах микроконтроллера.

 

Если ваша программа подразумевает наличие данных в  EEPROM  МК ( эти данные сохраняются при выключении МК )  то файл с ними можно указать в этом же диалоге :


Конвертировать форматы данных  .bin .hex .epp
можно в программаторе -
CVAVR

 

 

 

Ассемблер в PROTEUS - ДА !
для AVR, PIC, 8051, Motorola

Если у вас есть "исходник" текст программы на ассемблере  .asm или вы хотите написать программу на ассемблере в PROTEUS -  вам нужно указать в свойствах микроконтроллера название .hex  файла прошивки  и еще через  меню:  Source (исходник, источник)  далее:  Add/Remove Source File... (добавить - удалить исходник на ассемблере)  - добавить название файла с текстом программы на ассемблере и выбрать нужный ассемблер:


Теперь при запуске симуляции будет происходить ассемблирование файла   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, как подключать файлы с отладочной информацией и ограничения моделей.


Очень важно знать что НЕ симулирует модель МК - Model Limitations

 

Пример - ограничения моделей ATmega8   ATmega16  ATmega32

1) симулируется обычно используемый режим UART - асинхронный прием и пердача. 

2 ) и 3) частота тактирования при симуляции зависит только от параметра CLOCK задаваемого в свойствах AVR на схеме.

Все же 3) ошибка наверно -
делители работают в 7.4 и выше.

И для AVR надо устанавливать фьюзы.

4) биты  boot lock  не моделируются 

5) JTAG  не моделируется

 

 

В общем - все что нужно моделируется !



 

 
 

PROTEUS  - лучше устанавливать для
пользователя с именем из латинский символов !

Либо делать путь к папке  \
temp  без кириллицы.

Не используйте кирилицу в названиях проектов и файлов.

Чтобы отлаживать в PROTEUS функции PRINTF и SCANF
в программах созданных в компиляторе CodeVisionAVR зайдите в меню CVAVR - "прожект" - "конфига"  - "С компилер" и в списках этих функций выберите "Long..." или "Float..." и затем "ОК".

 

 


 

Пора запустить симуляцию.


Кнопки управления симуляцией я уже описал выше. 

А давайте запустим симуляцию "по хитрому" - укажем сколько времени программе работать и потом остановиться.  Откройте меню DEBUG и щелкните пункт "Execute for specified Time" - значит приказ "Отработать указанное время" - впишите время выполнения "198m"  - это значит отработать 198 милиСекунд - нажмите "ОК" - программа поработает и остановится - внизу под схемой будет указано время - 0.198000000 секунд.

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

Множители в PROTEUS

p - пико x10-12   n - нано x10-9  u - микро  x10-6  m - мили x10-3 

k
или K - кило x103         M - мега  x106 
 

Сейчас можно было бы повторить такое же время или задать иное.  А вы нажмите "ПАУЗА"  - вот что у вас должно быть на экране после щелчка по меню DEBUG :

Вот скриншот.  Вы видите в верхней части меню команды управления ходом симуляции - моделирования устройства и соответствующие горячие клавиши.
Ctrl+F12 -
начать симуляцию с начала.
F
12 - пуск моделирования, продолжение если мы в паузе или стоим.
Alt+F12 - позволяет моделировать не останавливаясь на "точках останова" - "Breakpoints" -                        о них подробней ниже.

F10 - проскакивать функции
Ctrl+F10 - выполнить до строки отмеченной щелчком мышки

                        (но ваша строка может оказаться не достижима по алгоритму программы)

F11 - пошаговая симуляция
Ctrl+F11 - выйти из симулируемой функции

 




 

Нижняя часть меню. В ней находится ЖУК - это настройка диагностики, реакции на события в моделируемых устройствах и настройка сообщений отладчика PROTEUS.
Ниже расположены  разделы отдельных компонентов на схеме. При наведении указателя на компонент показывается, что можно просматривать в специальных окнах при симуляции.   

Помощь по симуляции МК находится в разделе - Proteus VSM Help  
SOURCE  LEVEL  DEBUGGING  WITHIN  PROTEUS  VSM

 
При симуляции устройства на экране мы будем видеть анимированную картинку. Режим анимации можно изменить через меню System  >  Set Annimation Options...   
 

Обычный режим - экран обновляется 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" у "Automatic Serialization" что бы выводились заданые вами номера.

 

Нажмите кнопку "Стоп".  Окно терминала пропадет. 

Давайте отключим один 1-Wire прибор. Кликните правой кнопкой мыши на проводе от микросхемы U5 и затем левой щелкните красный крест - это удалит провод со схемы и отключит прибор от провода 1-Wire. 

Нажмите кнопку "Пуск".  Опять появится терминал PROTEUS но в списке опознанных приборов уже не появится отключенная U5 и уменьшится число найденных приборов до 6.  

Восстановите удаленный проводник. Это можно сделать двумя способами: 

1) Нажать кнопку отмены действия в верхней панели инструментов.

2) Проложить проводник заново. Выберите инструмент L16 - "проводник"  - косая черточка над синим квадратом на левой панели инструментов и проведите провод от компонента U5 к проводу 1-Wire удерживая нажатой кнопку мыши и щелкните при касании провода - появится точка соединения проводников.

Снова запустите симуляцию и убедитесь что прибор опять опознан и считан. 

 

  Виртуальный терминал

Один из важнейших инструментов отладки РЕАЛЬНЫХ устройств на МК - Virtual terminal - моделирующий терминал ПК обменивающийся данными с UART (USART) МК.

Как использовать его в отладке я рассказал в задаче 4

Терминал (Virtual Terminal) находится под кнопкой 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

Передаваемая с терминала информация не отображается в окне терминала!  Курсор остается на месте. Однако вы можете поставить галочку у "Echo Typed Characters" щелкнув правой кнопкой в окне терминала при симуляции  и тогда вводимый в терминал текст будет виден.


Пожалуйста прочитайте подробнее о терминале по
кнопке "Help" в его свойствах. 

Не забывайте о компоненте COMPIM который позволяет 
вашему виртуальному устройству подключится к
реальному COM-порту вашего ПК  !

Вот VIDEO Видео инструкция
как подключить реальный COM порт в PROTEUS.

 


 

 

 

РеСтартуйте и приостановите симуляцию 

для этого нажмите "Стоп" затем "Старт" и "Пауза" либо просто "СТОП" - "Пауза"  
на экран повыскакивают "pop-up" окна с отладочной информацией
Перечень этих окон задается в низу выпадающего меню DEBUG  - щелкните в меню

2. Watch Window - окно слежения наблюдения за данными в МК.

После настройки оно не исчезает с экрана и при симуляции и нахождении в паузе. В этом окне вы можете размещать регистры МК и не только отслеживать их содержимое по ходу программы, но и задавать некоторые условия и действия при достижении этих условий - например остановить симуляцию. Щелкните правой кнопкой мыши в этом окне и выпадет меню для добавления наблюдаемых регисторв - по имени Alt+N  или по их адресу Alt+A.  Выбрав "добавить по имени" вы увидите окно со списком всех регистров ( что такое регистр ? ) данного микроконтроллера - двойной щелчок по названию регистра поместит его в Watch Window - по завершении выбора нажмите "Done" - "сделано".  

Если перед названием регистра в Watch Window стоит квадратик с плюсом значит
вы можете развернуть регистр на группы функционально связанных битов.


 
Шрифт (Font) вы можете изменить по своему желанию 
как здесь, так и в большинстве других окон.

 


В окне Watchpoint Condition можно задать некоторое условие для наблюдаемого регистра и что делать симулятору при его возникновении - т.е. это
"точка останова" симуляции :  

   

1) Отключить слежение

2) Остановить симуляцию если
верно хотя бы одно условие

3) Остановить симуляцию если
верны все условия.

 

 

Мы планируем симулировать и отлаживать
программу написанную на языке
Си для МК  
значит нам очень интересно 

Окно с текстом этой программы:    AVR Source Code - U9

При симуляции в ПРОТЕУС этого примера сделанного на старой версии CVAVR - это окно не помнит какой исходник показывать если в нем нет активных точек останова ! 

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

CVAVR  CodeVisionAVR до версии 2 создавал копию файла исходного кода программы    которую называет добавляя два знака подчеркивания перед точкой  __.с  и именно на этот файл содержит ссылки файл .cof   с  отладочной информацией  используемой симуляторами и ПРОТЕУС -ом тоже.

 

 
Важно ! 

Файл .cof  может содержать абсолютные адреса, поэтому не стоит его
и связанные с ним файлы перемещать  после компиляции !

Я рекомендую все файлы компилятора и PROTEUS
размещать в одной папке проекта. 

 


 

После указания файла с исходным текстом программы он появится в
окне - я добавил мышкой несколько точек останова :


Берюзовые цифры - показывают адреса строк программы на которые можно поставить точки останова программы - строки можно выделить (подсветить темно-синим)
кликом мышки и затем:

Двойным кликом или кнопкой F9 поставить точку останова (BP) - красный кружок.  

Программа дойдя то этой точки остановится в режиме "ПАУЗА" - т.е. повыскакивают
pop-up
окна с отладочной информацией.  

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

Если нажать F9 еще раз, или еще раз сделать двойной щелчок по строчке - то BP исчезнет.

В меню DEBUG есть команда Alt + F12   - игнорировать  любые BP  

BP - очень эффективны при отладке программы. 

ВАЖНО!!! Не оставляйте в программе неиспользуемые функции - оптимизатор компилятора их выкинет и у строк программы ниже них не будет адресов и вы не сможете ставить там точки останова.

в PROTEUS есть и "железные" BP  - вот их перечень

Список аппаратных ("железных") точек, событий останова симуляции - BP

ВАЖНО ! Посмотрите внимательно какие это мощные инструменты для
отладки - они позволяют засечь массу событий

- изменение логического уровня на проводнике.
- изменение логического уровня на шине - на группе проводников.
- достижение различные напряжений и токов
- выход напряжения или тока из заданного диапазона ...

Давайте попробуем точку останова "1 бит" - устанавливаемую на один
проводник в схеме. Добавьте эту 
BP  на провод 1-wire в нашей схеме вот так:

Затем двойным щелчком по ней откройте свойства этой аппаратной  BP

В поле "Trigger Value" указывают значение при возникновении которого эта BP остановит симуляцию - в данном случае это логическая "1" на проводнике - т.е. когда в проводнике возникнет фронт сигнала - переход из "0" в "1" - симуляция остановится. 


Запускаем моделирование нашего устройства, если вы установили 3 точки останова в программе как на скриншоте который был выше то программа вначале будет останавливаться на некоторых из них  - в низу схемы выводится сообщение о причине остановки и время с начала симуляции.  Нажимайте "ПУСК" пока причиной остановки не станет  DBT1 - щелкните на "6 Message(s)" - появится окно лога симуляции - в нем указана причина и время остановки.

Если поставить еще одну BP  на эту же линию и событием в ней назначить "0" то можно отслеживать любое изменение логического сигнала на данном проводнике.
Выше в списке вы видели что такие BP есть до 16 бит шириной.

 

Закончите симуляцию - нажмите кнопку "Стоп".

Отключите BP - это можно сделать так:
- удалить
BP из схемы
- отсоединить
от проводника удалив провод от BP 
- в свойствах
BP поставить галочку "Exclude from Simulation" - "исключить из симуляции".

 

Нажмите "Пуск". 

Программа остановится на 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 в закладке "C Compiler" снять галочку
у "Automatic register allocation" и скомпилировать проект заново.

Теперь переменные и их значения  видны:     
( Скачайте CVAVR и вы сами так сделаете )

 

Щелкнув правой кнопкой в окне переменных - вы откроете меню в котором можно: 

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

 

Щелкнув правой кнопкой в окне исходника - "AVR source code"
вы откроете меню в котором можно: 
 
- включить нумерацию строк программы 
- включить или выключить все
BP 
- найти что-то в исходнике 
- перейти на нужную строку программы.
- изменить шрифт в окне.

Ctrl+D  - включить отображение ассемблерных инструкций реализующих
код программы написанной на  Си  - это очень удобно:


На ассемблерном коде вы тоже можете ставить "точки останова" программы -  BP
 

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


Теперь поработайте сами  по-симулируйте, расставьте 
точки останова так, что бы отследить алгоритм работы программы. 

Вы можете изменить и перекомпилировать программу в компиляторе
CodeVisionAVR и посмотреть результат в PROTEUS.

 


Использование виртуального осциллографа и логического анализатора 
я рассмотрю в следующих примерах этого курса. 
 

Вы можете сами пока посмотреть примеры работы с этими
устройствами в папке
   SAMPLES\Simulation   

 

 
В
SAMPLES\Simulation есть примеры использования самого мощного средства графического сбора и отображения данных 
моделирования работы устройства : 

Simulation Graph - попробуйте вот эти примеры:

DAC0808.DSN
или  Invosc.DSN  -  вот скриншот этого примера PROTEUS  GRAPH

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

Теперь посмотрите внимательно какие сигналы показаны - найдите их названия на схеме устройства. 

Главное учитесь масштабировать графики и сопоставлять данные на графиках. Пользоваться инструментами в окне графиков.

Наведите курсор на  какой либо график и кликните кнопку мыши - курсор зафиксируется на этом графике и данные этого графика будут выводится в низу экрана в цифровом виде.

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

 


 

Промежуток времени отображаемый на графике устанавливается в меню которое открывается по щелчку правой кнопкой мыши на графе  -  пункт "Edit Graph", в нем же настраивается вертикальный масштаб и можно дать названия осям.

Для редактирования отображаемых сигналов  откройте меню двойным щелчком по названию сигнала -  давайте откроем зеленый AD1(A) и изменим масштаб его отображения умножив на 0.3 и поднимем его вверх на 2 вольта - я вписал формулу для изменения сигнала  в поле "Expression" и для памяти (не обязательно) добавил к названию сигнала в "Trace name" то как он изменен - чтоб не запутаться в его реальной величине. В формулах можно использовать и другие сигналы - т.е. выводить на график комбинации сигналов - например из напряжения и тока можно получить график мощности.

Сделайте такие изменения, щелкните "ОК" и обновите данные симуляцией "Пробел" - зеленая трасса изменилась.  Теперь уберите эти изменения-формулы.

Вывод комбинации аналоговых сигналов на график.

Давайте сложим 4 аналоговых сигнала и еще на 0.2 умножим сумму, чтоб они не сильно изменили диапазон графика.  По-умолчанию в PROTEUS диапазон по вертикали выставляется автоматически.  Для этого нажмите "плюс" левее человечка млм "Ctrl + A" - появится меню "Добавить трассу, сигнал" - я назвал сигнал SUMM, выберите Analog и в "Probe Px" укажите 4 аналоговых сигнала, затем умножаем на 0.2  - вот так :

жмем "ОК" и название нового сигнала появилось на графике. Запускаем симуляцию в GRAPH нажав клавишу "пробел" или щелкнув по человечку - вот результат:


Можно жестко задать диапазон напряжений выводимый на графике вот так:

 

Данные симуляции вы можете сохранить в файл через меню Graph -> Export Data
укажите название файла и где его расположить, затем нажмите "Сохранить".  Вы получите файл в стандартном формате для измерительных приборов - CSV - данные разделенные запятыми - сможете затем импортировать в Excel или например в MATLAB

Графики результатов симуляции можно экспортировать в графические 
и CAD форматы через меню  File -
> Export Graphics 
 


В общем пакет мощный - сразу всё не расскажешь ...

Надо его активно использовать и придет опыт, умение ...

Подробно про отладку по исходному коду программы 
написано в разделе помощи: 

"SOURCE LEVEL DEBUGGING WITHIN PROTEUS VSM" 

 

 

 
Внимание ! 

Если вы случайно закрыли крестиком в правом верхнем углу окно
виртуального терминала или осциллографа или логического 
анализатора, то они не появятся сами при новом старте симуляции ! 

Чтобы они появились снова вам нужно зайти в меню DEBUG 
и щелкнуть по "Reset Popup Windows"

 

Читайте и учитесь самостоятельно делать модели компонентов для PROTEUS !!! в FAQ
 

 
 

Краткий Курс - Самоучитель

Микроконтроллеры AVR ,  ATmega
и ATtiny для начинающих с нуля !
 

Быстрый и уверенный старт -
               
самые первые шаги ...

     Чайникам  от  Чайника !


Предлагаю вам учиться на моём примере.

Маленькие шажки ...
      ( комедия "А как же Боб !" )

  ... и  конечно  с  картинками !

Можно скачать курс одним архивом.
 

 

 

 

 
 
 
 
 
 
 
 
 
 

 

 

Реклама недорогих радиодеталей почтой: