Система моделювання ISIS Proteus. Швидкий старт. Proteus VSM. Посібник з інтерактивного моделювання Встановлення та запуск Proteus. Інтерфейс програми ISIS

  • 2.7. Верхні (підключаються) тулбари.
  • 2.8. Набір лівого тулбара кнопок. Зв'язок їх із селектором об'єктів та вікном попереднього перегляду.
  • 2.9. "Як пройти в бібліотеку? О третій годині ночі? - (К/ф «Операція Ы»).
  • 2.10. Підбираємо компоненти, розставляємо їх у проект.
  • 2.11. Прийом швидкого редагування. Розведення проводів та шин.
  • 2.12. Прийом швидкого редагування. Маркування проводів та шин. Перенумерація елементів та призначення ним властивостей за допомогою Property Assigment Tools.
  • 2.13. Властивості моделей мікроконтролерів. Завдання чисельних значень та розмірності.
  • Прошивка» мікроконтролера в ISIS.
  • 2.15. Перший невдалий запуск симуляції. Станці з бубном або аналіз можливих причин непрацездатності в симуляторі схеми, що реально працює.
  • 2.17. Корисні властивості пробників.
  • 2.18. Digital Graph – застосовуємо практично.
  • 2.19. Властивості цифрового графіка.
  • 2.20. Додаткові можливості аналізу графіка під час максимізації вікна.
  • 2.21. Порівняння з працюючим проектом динамічної індикації. Знаходимо причину глюку.
  • 2.22. Меню та опції графіків у розгорнутому (Maximize) вікні.
  • 2.23. Підключаємо файл мікропрограми для покрокового налагодження.
  • 2.24. Режим покрокового налагодження програми в ISIS.
  • 2.25. Контекстне меню вікна покрокового налагодження.
  • 2.26. Меню Debug у розгорнутому вигляді.
  • 2.28. Меню Debug у розгорнутому вигляді (закінчення) . Вспливаючі вікна. Суперкорисне вікно Watch Window.
  • 2.29. Досліджуємо вихідник на асемблері. Чим і як його відкрити та редагувати.
  • 2.30. Реальні показання індикації у вікні Watch Window.
  • 2.31. Коригуємо асемблерний файл. «І все-таки вона крутиться».
  • 2.32. Фінальний варіант проекту із робочою індикацією.
  • 2.33. Висновки щодо застосування динамічної індикації в Протеусі та насправді. Додаткові ресурси.
  • 2.34. Висновок до першої частини.
  • 2. Встановлення та запуск Proteus. Інтерфейс програми ISIS.

    2.1. Де взяти інсталяційний пакет "Протеус".

    На офіційному сайті компанії Labcenter Electronics доступна остання демо-версія на даний момент v.7.5.SP3. Вона має суттєві обмеження: відсутня опція збереження проекту, симулюються в реальному часі в основному приклади з папки Samples, що додається. Враховуючи географічну віддаленість «туманного Альбіону» і пристойний розмір інсталятора – більше 60 Мбайт, я б не рекомендував скачування в ознайомлювальних цілях даного пакета тим, хто має повільне Інтернет-з'єднання. Але світ не без «добрих» людей. Давати тут конкретні посилання на сайти файлообмінники нема рації, життя файлів там обмежене за часом. Тому скористайтеся пошуком у Google або іншому пошуковику з параметрами Proteus v.7 (або 6), Proteus VSM або Proteus ISIS, і ви легко знайдете свіжі посилання. Тільки не варто використовувати пошук за одним словом "Протеус" або "Proteus", якщо ви не прагнете придбати однойменний силовий тренажер для накачування мускулатури.

    2.2. Встановлення програми на комп'ютер.

    Для інсталяції необхідно запустити інсталяційний пакет Setup.exe. Під час встановлення Proteus (якщо це не демо версія) запросить шлях до файлу ліцензії. Якщо на цей момент файл ліцензії відсутній, можна просто вибрати варіант наявності ліцензії на сервері, а вікно сервера залишити порожнім, але перед першим запуском все одно необхідно буде встановити ліцензію файл licenci.lxk, скориставшись менеджером ліцензій. За замовчуванням програма встановлюється в директорію: Program Files Labcenter Electronics Proteus 7, проте за бажання можна змінити шлях. Як уже зазначалося для професійної версії, після встановлення необхідно встановити ліцензію. Для цього запускається програма менеджер ліцензій (рис.1):

    ПУСК=>Всі програми=>Proteus x Professional=>Licence Manager

    у лівому вікні через кнопки Browse For Key File (вручну) або Find All Key File (автопошук) вибирається шлях до файлу ліцензій, потім натискається кнопка Install , яка стає доступною при натисканні на потрібну ліцензію в лівому вікні, і вибрана інформація повинна з'явитися в правому вікно. Після цього менеджер можна закрити. Звертаю вашу увагу, що навпроти зображення ключів перераховуються доступні для цієї ліцензії функції програми.

    Рис.1

    2.3. Перший запуск та перші проблеми.

    I. Під час спроби запуску ISIS або ARES з'являється вікно з повідомленням:

    Неможливо використовувати valid licenci key for ISIS (ARES) на цьому комп'ютері.

    Коментар: немає ліцензії, тобто не виконано або не до кінця виконано попередній пункт.

    ІІ. Під час запуску симуляції(у тому числі прикладів, що додаються з папки Samples) вона не

    функціонує, а Simulation log (Мал. 2) з'являється повідомлення:

    Cannot open "C:\DOCUME~1\=ТЕКПОРИС=\Local Setting\Temp\LISAxxx.SDF'

    де замість \=ТЕКПОЛЬЗ=\ незрозумілі закорючки (крякозябри)

    Коментар: Ця проблема не є актуальною для версій починаючи з 7.4 і вище. До цього Протеус категорично відкидав кирилицю в імені користувача комп'ютера, а також і в дорозі до файлу проекту та в самій назві файлу.

    Є два шляхи вирішення цієї проблеми:

    1) Змінити ім'я користувача на англійську мову.

    2) Зайти до Мій комп'ютер=> Властивості=> Додатково=> Змінні середовища. У верхньому вікні, вибравши змінну TEMP, натиснути Змінити та замість %USERPROFILE%

    набрати %ALLUSERPROFILE% (при цьому необхідно, щоб у папці Document and

    Setting\All Users були відповідні папки Local Settings і Temp їх можна просто перекопувати з поточного користувача (папки приховані) або створити вручну). Можна за порадою Nemo78 змінити шлях на %SYSTEMROOT%\Temp (саме так без Local Settings), тоді Протеус використовуватиме папку TEMP у системному каталозі Windows.

    ІІІ. Симуляція запускається, але за кілька секунд (хвилин) програма закривається. Симуляція працює лише з деякими типами моделей. Приклади із Samples

    симулюються без проблем.

    Коментар: Відсутня ліцензія на одну з моделей. Ви використовуєте "неофіційну" (крякнуту) версію і кряк або не встановлений, або неправильно встановлений. Протеус має багатоступінчастий захист від нелегального використання, який багаторазово перевіряється у процесі симуляції. Захищаються файли як в основній папці програми \BIN (Isis.exe, Ares.exe, Licence.dll, Prospice.dll),так і в папці бібліотек моделей \Models (Avr.dll, Lcdalfa.dll, Lcdpixel.dll, LedMPX.dll, Pic16.dll, Pic18.dll, Mcs8051.dllта деякі інші моделі). Тому симуляція працюватиме лише з тими бібліотеками, на які є ліцензія, або до яких застосовувалося «доопрацювання».

    2.4. Інтерфейс програми ISIS.

    Нижче наведено основне вікно програми ISIS із поясненнями щодо призначення основних елементів інтерфейсу. Надалі я дотримуватимуся саме такої термінології в дещо скороченій формі, тобто: ліве меню, верхнє меню команд, верхнє основне меню, кнопки симуляції, селектор об'єктів. Вікно програми трохи відповідає повністю розгорнутому вікну, оскільки при зменшенні розмірів деякі меню змінили положення. Так само як і в багатьох інших програмах для Windows меню можна перетягувати в зручне місце всередині вікна програми. Зачепивши через ліву кнопку мишки за стартовий елемент меню (прямокутна сіра смужка для горизонтальних меню зліва, а для вертикальних – зверху) не відпускаючи кнопки перетягуєте, наприклад, меню орієнтації (на малюнку стартовий елемент видно над стрілкою обертання вправо) усередині вікна до правої вертикальної межі вікна і після відпускання кнопки воно "приклеїться" вертикально праворуч. Аналогічно можна зробити і з будь-яким з верхніх командних меню. Таким чином, можна налаштувати зручне для себе розташування елементів програми. Інша приємна "фішка" програми: якщо клацнути всередині вікна селектора правою кнопкою мишки і у спливаючому вікні клацнути лівою кнопкою по функції Auto Hide, то селектор автоматично згортатиметься, якщо на нього не наведено курсор мишки. Це дозволяє на моніторах із форматом 4:3 виграти деякий простір для вікна редагування. Скасування режиму повторними діями.

    Рис.2

    2.5. Папка Samples - джерело прикладів проектів для початківців.

    При першому запуску ISIS з'являються два спливаючі вікна. В одному з них буде запропоновано перевірити оновлення - тут можна сміливо поставити галочку - більше не показувати. Інше вікно пропонує відкрити численні приклади Sample Designs, що додаються разом із програмою. Якщо Ви дійсно початківець, не поспішайте ставити аналогічну галку блокування повторного показу. Ну а якщо вже заблокували це вікно – не впадайте у відчай. Швидкий доступ до прикладів завжди можливий за допомогою верхнього меню Help => Sample Designs . Чому я так наполегливо рекомендую ознайомитись із прикладами? Та тому що третя

    частина питань, що приходять на форум, мають готові відповіді у програмах, що додаються.

    приклади. На жаль, для того, щоб ознайомитися зі вмістом того чи іншого прикладу, доводиться його відкривати, так як у більшості випадків на ім'я файлу неможливо зрозуміти - що там усередині. З шостими версіями Протеуса додавався Help за прикладами, але в сьомих версіях розробник чомусь тихо його вкрав. Описати вміст усіх прикладів тут неможливо через великий обсяг інформації. Тому, я зупинюся тільки

    на найбільш значущі для початківців і прикладу оригінальний файл SAMPLES.HLP від ​​версії 6.9sp5. Звичайно, в ньому відсутній опис прикладів для нових МК доданих у наступних версіях, а також прикладів програмних генераторів з версій 7.4 і 7.5, але для тих, хто володіє навіть початковою англійською цей Help велика підмога. Тим більше, що навіть із встановленими

    останніми версіями при натисканні мишею по зеленій назві проекту в хелпі він відкривається автоматично.

    Schematic & PCB Layout – одна з найцікавіших папок для початківців. Всі проекти, за винятком Shiftpcb , що містяться в ній, не призначені для симуляції в реальному часі, але при цьому мають як закінчений варіант схеми xxx.DSN в ISIS, так і проект плати xxx.LYT в

    Зверніть увагу на проекти Cpu за допомогою МК Z80 та Dbell – дверний дзвінок. У цих проектах є проміжні файли PSB (плат) з іменами Cpuu.LYT і Dbellu.LYT з компонентами, що не встановлені на плату. Відкривши ці проекти в ARES, Ви можете самостійно випробувати функцію автоматичного розміщення компонентів. Достатньо вибрати у верхньому меню Tools => Auto Placer і у вікні, що розкрилося, просто клацнути OK. У проектах Cpu.LYT та Dbell.LYT компоненти вже розміщені, але можна аналогічно спробувати автотрасування доріжок Tools => Auto Router. Проекти Cpur.LYT та Dbellr.LYT містять уже відтрасовані плати. На будь-якому етапі ARES через верхнє меню Output => 3D Visualization можна викликати тривимірне

    зображення плати і зачепивши її лівою кнопкою миші повертати та обстежити з усіх боків

    (Рис.3).

    Рис.3

    Окремо зупинюся на проекті Shiftpcb.DSN – 16-ти бітовий зсувний регістр на дрібній логіці. Він заслуговує на увагу з двох причин. По-перше у ньому застосована 4- х ступінчаста ієрархічна структура, т. е. це складний проект. На першому аркуші вміщено чотири модулі чотирирозрядних зсувних регістрів. Щоб подивитися структуру кожного модуля необхідно клацнути правою кнопкою мишки (елемент стане червоним) і вибрати у спливаючому меню опцію Goto Child Sheet (Ctrl+C) – перехід на дочірній лист. Аналогічно можна потрапити на наступний рівень і далі до кінцевого, що містить звичайний RS-тригер на елементах 2 І-НЕ.

    Повернення на попередній рівень також клацанням правої кнопки клацанням лише по вільному місцю у вікні та вибір опції Exit to Parent Sheet (повернення на батьківський лист). По-друге тут

    можна запустити симуляцію після деякої корекції проекту і подивитися на власні очі роботу зсувного регістру. У вихідному вигляді проект адаптований під поміщений на першому аркуші графік, тому при симуляції через кнопку управління симуляцією Play ми отримаємо в лозі попередження (жовтий знак оклику) про завантаження ЦП комп'ютера 100% і неможливості симуляції в реальному часі:

    Simulation is not running in real time due to excessive CPU load

    Вікно відкриється, якщо клацнути Simulation Log лівою кнопкою миші. Відразу ж звикайте до принципу світлофора Simulation Log: червоний знак - груба помилка - симуляція неможлива; жовтий («гірчичник») – попередження – симуляція може виконуватися, але результат некоректний і зелений – симуляція протікає нормально без помилок. Тому, щоб уникнути попередження, необхідно у властивостях генераторів D і Clk (доступні через праву кнопку миші

    опція Edit Properties Ctrl+E) встановити відповідно Pulse width 200m та 100m (в даному випадку мілісекунди). Запустивши кнопкою Play симуляцію, після цього можна на контактах роз'єму J2 спостерігати стан виходів зсувного регістру.

    У цій же папці містяться інші приклади:

    EPE.DSN – великий проект програматора EPROM на трьох аркушах (перехід між аркушами

    доступний через верхнє меню Design або клацанням правої кнопки мишки по вільному місцю у вікні редагування та виборі відповідного аркуша 1, 2 або 3). На деяких аркушах містяться субмодулі. Ви вже засвоїли, що вони мають темно-синє обведення та відповідно доступні дочірні листи.

    FEATURES.DSN – у проекті показані різні способи виконання схем у ISIS. Зверніть увагу на правий верхній кут: варіант стереофонічного підсилювача, оформлений у вигляді 2-х субмодулів з дочірніми листами.

    PPSU.DSN – дуже простий проект стабілізатора напруги. Має два варіанти PSB: PPSU.LYT

    – для мікросхеми в корпусі DIL8 (монтаж в отвори) та PSMT.LYT – м/сх у планарному корпусі SO8. Зверніть увагу, що DIL – Dual-In-Line чомусь у нас у Росії прийнято називати DIP. Якщо для PSB у Протеусі вибрати корпус DIP Dual-In-Plane – отворів у платі ви не побачите! «Труна» буде виведена в ARES як планарна з кроком 2,54 мм.

    SIGGEN.DSN – проект генератора сигналів. У хелпі хвацько заявлено, що симулюється - так, але після значної редагування.

    STYLE1, 2, 3 – приклади різного оформлення одного й того самого проекту.

    THERMO – термометр з термопарою в якості датчика та індикацією на семисегментних індикаторах. Тут не симулюється, але в папці VSM for PIC18 MAX6675 Thermometer є працюючий проект з програмою на PICC18 і проектом для MPLAB.

    dsPIC33_REC – проект пристрою реєстрації тиску аналогічно до попереднього має робочий

    дубль у папці VSM for dsPIC33.

    Interactive Simulation – папка містить підпапку Animated Circuits з дуже простими анімованими прикладами для початківців.

    Вasic – приклади, що починаються з цієї абревіатури, засновані на базових пізнаннях електротехніки: лампочка, батарейка, вимикач, потенціометр і показують протікання струму в ланцюзі.

    MVCR – низка прикладів з використанням віртуальних приладів вольтметр/амперметр. PCV – приклади з потенціометром обмежувачем струму.

    Intres – приклади на внутрішній опір джерела струму. Cap – три приклади роботи конденсатора.

    AC – приклади із змінним струмом.

    Diode – приклади застосування діодів і діодних мостів. Inrel – приклади застосування індуктивностей і реле. TRAN – сім прикладів із транзисторами.

    Opamp – шість різних прикладів із операційними підсилювачами. Заслуговують на особливу увагу. Там є варіант включення ОУ як компаратора (Opamp1.DSN). Все це анімоване, обвішане віртуальними приладами, можна покрутити та подивитися на реакцію ОУ.

    OSC – приклади генераторів. Osc03.DSN та Osc04.DSN на таймері 555, що містить дочірній лист із внутрішньою структурою таймера на примітивах Spice. Це стартовий майданчик для освоєння створення власних моделей.

    Comb та Seq – приклади для освоєння роботи логічних цифрових мікросхем.

    Ну і кілька пізнавальних прикладів: TRAFFIC.DSN – світлофор, COUNTER.DSN – чотирирозрядний лічильник на 74LS390, TTLCLOCK.DSN – годинник на TTL логіці, LISSAJOUS.DSN – застосування віртуального осцилографа для спостереження фігур Лісажу та LM3914. керування лінійною світлодіодною шкалою.

    Інші підпапки з Interactive Simulation містять приклади проектів використання однойменних віртуальних інструментів з бібліотек Протеуса: Counter Timer – застосування віртуального таймера/ лічильника у режимах таймера і частотомера. Motor Examples – приклади проектів із кроковими двигунами. Pattern Generator – приклади застосування віртуального генератора кодової послідовності. COMPIM Demo – приклад використання віртуального COM-порту та віртуального терміналу в Протеусі. Останньому для виконання симуляції необхідна наявність на комп'ютері двох реальних COM-портів, з'єднаних нуль-модемним кабелем, або встановлення на комп'ютер програми віртуального COM-порту для імітації з'єднання з реальним. При цьому в режимі симуляції можна організувати обмін даними через це з'єднання з ISIS з будь-якою програмою на комп'ютері, що дозволяє працювати з COM-портом (наприклад, стандартної Hyper Terminal).

    Інші підпапки з папки Samples містять приклади проектів із використанням відповідних серій мікроконтролерів (наприклад VSM for PIC16 – приклади з МК Microchip PIC16). Я не буду їх розглядати докладно зараз, оскільки найбільш цікаві будуть розглядатися пізніше, в міру освоєння програми ISIS.

    Тут тільки перерахую, що Graph Based Simulation містить приклади застосування різних типів графіків для дослідження схем, до папки Tutorials ми звернемося під час створення власних моделей. Особливо відзначу дві папки: VSM MPLAB Viewer та VSM AVR Studio Viewer. Ці папки містять приклади спільного використання відповідних інструментів. При цьому

    Напевно, багато хто з читачів даного сайту хотів би самостійно розробити та зібрати якийсь пристрій на МК AVR. Але причин, через які це важко зробити в залозі, може бути безліч. Наприклад, проживання у сільській місцевості, де немає радіомагазинів із великим вибором радіодеталей. Хоча в такому випадку, як завжди, нам приходить на допомогу сайт «Алі експрес». Або обмеженість бюджету. Особливо це актуально для школярів та студентів, які ще не мають постійного джерела доходу.

    То як же бути в такому випадку? Тут на допомогу нам приходять спеціальні програми-симулятори, які спеціально створені для налагодження схем.

    Одну з них, Proteus версію 7.7, ми і розберемо в цій статті стосовно нашого проекту.

    Що нам дає ця програма? Початківці подумають, що вона надто складна для освоєння. Ні це не так. Просто всіма функціями програми при емуляції перших наших проектів ми користуватися не будемо. Освоїти її основи можна за один-два вечори. Що вона дає нам у плані вивчення роботи з мікроконтролерами? Там, наприклад, є візуальне уявлення роботи світлодіодів, дисплеїв у реальному часі. Можна вибрати для емуляції роботи безліч типів МК AVR, у тому числі й ті, на яких будуть засновані наші уроки: Tiny2313 та Mega8. Що це означає та як це здійснюється? Ми пишемо код нашої прошивки, компілюємо його, отримуємо потрібний нам HEX-файл та віртуально прошиваємо наш МК у програмі Proteus. Причому ми також можемо змінити фьюз біти нашого віртуального МК.

    Давайте розберемо, які дії нам потрібно зробити, щоб зібрати цю схему на робочому полі самостійно та зробити емуляцію.

    Ось таке вікно у нас відкривається відразу після запуску програми (натисніть для збільшення):


    Потім нам потрібно вибрати з бібліотеки ті радіодеталі, які нам потрібні для проекту та помістити їх до списку деталей. Їх ми зможемо вибрати і встановити на робоче поле. У нашому проекті ми будемо використовувати МК Attiny2313, жовтий світлодіод LED-YELLOW (він добре “світиться” у Протеусі) та резистор RES для обмеження струму, що протікає через світлодіод. Інакше ми, як би це смішно не звучало, спалимо віртуальний світлодіод:-).

    Для того, щоб вибрати ці радіоелементи, ми повинні клікнути по літері “Р”:

    Після того, як клікнули, вийде ось таке віконце:


    У полі "Маска" вбиваємо те, що хочемо знайти, а саме, наш МК, світлодіод та резистор


    Набираємо в поле Маска “Tiny2313” та клацаємо по знайденому нами МК у графі “Результати(1)”:


    Потім повторюємо те саме з резистором. Вбиваємо "res":


    і так само шукаємо світлодіод:


    Ну от, тепер усі ці три елементи у вас мають відобразитися у графі “Пристрої”:

    Тепер клацаємо по чорній стрілочці, і потім уже у списку вибираємо потрібний нам радіоелемент:

    Зліва у вертикальній колонці ми бачимо значок "Термінал". Нас там цікавлять два рядки: Power та Ground. Це відповідно в нашій схемі +5 вольт живлення та земля. На МК харчування подавати не треба, воно подається автоматично.Для схеми беремо лише значок “земля”.

    Витягуємо всі радіоелементи на робоче поле


    Потім нам потрібно з'єднати їх лінією-зв'язком, після цього вони у нас будуть однаково, що з'єднані провідником, наприклад, доріжкою на платі або проводком


    Відразу скажу, не намагайтеся встановити один висновок деталі впритул до іншого або навіть внахлест, без використання ліній-зв'язків. Програма не зрозуміє це як з'єднання і схема не працюватиме.

    Нам також слід змінити номінал резистора. За замовчуванням вона не підходить для нашої схеми. Як це зробити?

    Натискаємо правою кнопкою миші на резисторі, вибираємо Правка властивостей


    А потім змінюємо значення на 200 Ом. Цілком вистачить, що наш віртуальний світлодіод не помер.


    Іноді робоче поле у ​​нас намагається втекти з екрану, тоді нам потрібно, використовуючи скролінг коліщатка миші змінити масштаб, і клацнути, встановивши зелену рамку в лівому верхньому кутку так, щоб весь наш проект опинився всередині неї

    До речі, хочу відразу сказати, якщо ми вчинили якусь помилкову дію, нам достатньо натиснути кнопку "Скасувати" і остання дія буде скасована. Думаю, багато хто це знає зі сторонніх програм, але мало).

    Отже, ми зібрали схему. Тепер треба залити прошивку в наш мікроконтролер і подивитися, як це виглядає в дії. Для цього нам потрібно натиснути правою кнопкою мишіпо МК і натиснути значок із зображенням жовтої папки у графі Program Files. До речі, тут же можна за необхідності виставити ф'юз біти (клікніть для збільшення картинки):


    Потім потрібно вибрати файл прошивки з розширенням *.HEX та натиснути “Відкрити”. Все готове, можна емулювати проект.

    (Для збільшення клікніть по картинці)


    Для початку емуляції потрібно натиснути кнопку “трикутник” у нижньому лівому кутку програми “Протеус”:


    У нас розпочнеться емуляція. Ми побачимо, як блимає світлодіод.У якийсь момент часу світлодіод буде світитися. Дивіться, як яскраво горить жовтим кольором:-)


    А потім він знову тухнутиме:


    Тепер ми можемо за бажанням зберегти наш проект під будь-якою назвою, вибравши “Зберегти проект як”, а також якщо потрібно відкрити готовий файл іншого проекту, вибравши “Відкрити проект”

    Так виглядає іконка збереженого проекту на робочому столі:

    Сподіваюся, у вас, читачі, не важко зібрати цей проект самостійно і надалі, прокачавши скілл, ви легко зможете самостійно зібрати будь-який складніший проект. Готовий проект для програми Proteus 7.7 та прошивку прикріпив у архіві.

    Ну от і все! Нижче відео роботи схеми, а також всіх етапів емуляції:

    Мета цього посібника – показати вам на прикладі створення простої схеми, як проводити інтерактивне моделювання, використовуючи Proteus VSM. Поки що ми сконцентруємося на використанні Активних компонентів (Active Components) та можливості налагодження редактора ISIS, ми також розглянемо основи трасування та основи управління схемами. Повний огляд цих тем можна знайти в довідковій системі ISIS .

    Схема, яку ми будемо використовувати для моделювання - це два світлофори, з'єднані з мікроконтролером PIC16F84 як показано нижче.

    Поки ми будемо малювати схему з нуля, закінчену версію можна буде знайти на шляху "Samples\Tutorials\Traffic.DSN"у папці, де у вас встановлений Proteus. Користувачі, які знайомі з основними способами роботи в ISIS, можуть вибрати готову схему і перейти до розділу про програму мікроконтролера. Однак, будь ласка, зверніть увагу на те, що файл цього проекту містить навмисну ​​помилку - прочитайте для більш детальної інформації.

    Якщо ви не знайомі з ISIS, інтерфейс та основи використання детально розглянуті у Редактора ISIS, і хоча ми торкнемося цих питань у наступному розділі, ви повинні виділити час, щоб ознайомитися з програмою перед роботою.

    Викреслення схеми

    Розміщення елементів

    Почнемо з розміщення двох світлофорів та PIC16F84 на новому макеті схем. Почніть новий проект, виберіть значок Компонент (Component) (усі іконки мають підказки і контекстно-залежну довідку, що допомагає їх використанню). Потім лівий клік на літері ‘P’нагорі перемикача об'єктів ( Object Selector), щоб відкрити вікно Браузера Бібліотек ( Library Browser), яке з'явиться поверх вікна редактора (для більш детальної інформації дивіться Основи Введення Схему довідковій системі ISIS).

    Натисніть кнопку P на клавіатурі та надрукуйте ‘ Traffic ’ у полі “Ключові слова” ( Key words), і двічі клацніть на результаті, щоб перемістити світлофори в перемикач об'єктів. Зробіть те саме для PIC16F84A.

    Якось вибравши в проект світлофори та PIC16F84, закрийте Браузер Бібліотек і клацніть один раз на PIC16F84 у перемикачі об'єктів (це виділить ваш вибір і елемент буде показаний у вікні попереднього перегляду у правому верхньому кутку екрана). Тепер лівий клік на вікні редактора, щоб помістити елемент на схему, - повторіть процес, щоб розмістити на схемі два світлофори.

    Переміщення та орієнтація

    Ми створили вузли схеми, але не випадково не ідеально розмістили їх. Щоб перемістити елемент, клацніть на ньому правою кнопкою миші (це виділить елемент), потім затисніть ліву кнопку миші та перетягніть елемент (ви побачите контур елемента “наступний” за курсором миші) на потрібну позицію. Коли контур буде там, де хочете, відпустіть ліву кнопку миші, і елемент переміститься на задану позицію. Зауважте, що в даний момент елемент все ще виділений - правий клік на порожньому місці вікна редактора поверне елементу нормальний стан.

    Щоб повернути елемент, правий клік на ньому так само, як і в попередньому випадку, а потім лівий клік на одній з іконок обертання ( Rotation). Це поверне елемент на 90 градусів – повторіть це стільки разів, скільки потрібно. Знову ж таки, хороший спосіб - правий клік на порожньому місці схеми, коли ви закінчили, щоб відновити початковий стан елемента.

    Розмічайте схему осмисленим способом (наприклад, виходячи з простоти сприйняття), рухайте та повертайте елементи, як потрібно. Якщо у вас виникли проблеми, радимо попрацювати з посібником у довідковій системі ISIS - ISIS Tutorial.

    Для нашої мети, ми ігноруємо 2D графіку, щоб не заплутуватися, і сконцентруємося на створенні схеми, що моделюється - для тих, кому цікаво, повну доповідь про графічні можливості ISIS можна знайти в розділі 2D графіка (2D Graphics).

    Масштаб та захоплення

    Як правило, при розведенні схеми корисна можливість зміни масштабу необхідної території. Натискання клавіші F6 або іконки Збільшити (Zoom In) збільшить масштаб навколо поточної позиції миші, або, як альтернатива, затисніть клавішу SHIFT , і затиснувши ліву кнопку миші, виділіть територію, яку потрібно збільшити. Щоб зменшити масштаб, натисніть клавішу F7 або значок Зменшити (Zoom Out), або якщо ви хочете зменшити так, щоб бачити всю схему повністю, натисніть клавішу F8 або використовуйте колесо миші, щоб зменшити або збільшити потрібну територію. Відповідні команди можуть бути доступні меню Вид (View).

    ISIS має дуже потужні можливості, звані Real Time Snap. Коли курсор миші знаходиться поблизу кінця виводу або провідника, розташування курсору захоплюється цими об'єктами. Це дозволяє легко редагувати та керувати схемою. Ця можливість може бути знайдена в меню Інструменти ( Tools) і за замовчуванням увімкнено.

    Більш детальну інформацію про масштаб і захоплення можна знайти в довідковій системі ISIS - Вікно Редактора.

    Трасування з'єднань

    Найпростіший спосіб з'єднання схеми - це використовувати опцію автотрасування провідника ( Wire Auto Router) у меню Інструменти ( Tools). Переконайтеся, що вона увімкнена (має відмітку в меню зліва від опції). Для більш детальної інформації дивіться розділ “Автотрасування провідника” в Інструкції ISIS. Збільште PIC, щоб усі висновки були видні, а потім помістіть курсор миші на кінець виведення 6 (RB0/INT). Ви побачите маленький “х”-курсор на кінці миші. Це показує, що миша у правильній позиції для приєднання провідника до цього висновку. Лівий клік мишею, щоб почати з'єднання, а потім перемістіть мишу до виводу, з'єднаного з червоним ліхтарем одного зі світлофорів. Коли ви знову отримаєте 'х'-курсор над цим висновком, клацніть лівою кнопкою миші, щоб завершити з'єднання. Повторіть цей процес для підключення обох світлофорів як показано на зразку схеми.

    Пара питань про процес розведення, що заслуговують на згадку:

    • Ви можете робити з'єднання в будь-якому режимі – ISIS досить кмітливий, щоб зрозуміти, що ви робите.
    • Коли включено автотрасування провідника ( Wire Auto router), розлучається навколо перешкод і, як правило, шукається зручна траєкторія між з'єднаннями. При цьому способі зазвичай вам тільки потрібно зробити лівий клік на обох кінцях з'єднання і надати ISIS можливість подбати про шлях між ними.
    • ISIS автоматично перемістить екран, якщо ви торкнетесь межу вікна редактора, переміщаючи провідник. Враховуючи це, ви можете збільшити масштаб до відповідного рівня і, за умови, що ви знаєте приблизну позицію елемента-мети, просто підштовхуйте екран, доки не побачите його. В якості альтернативи, ви можете збільшувати та зменшувати масштаб, поки переміщаєте провідник (використовуючи клавіші F6 та F7).

    Насамкінець, ми повинні поєднати висновок 4 з клемою живлення. Виберіть іконку "Клема" (Terminal) і виділіть "Живлення" (POWER) у перемикачі об'єктів. Тепер зробіть лівий клік на відповідному місці та помістіть клему. Виберіть відповідну орієнтацію та приєднайте клему до виводу 4, використовуючи той самий спосіб, що й раніше.

    На цьому етапі рекомендуємо вам завантажити закінчену версію схеми - це позбавить будь-якого плутанини, якщо намальована вами версія в якомусь місці відрізняється від нашої! Також, якщо ви не придбали бібліотеку моделей pic-контролерів, щоб продовжити, ви повинні завантажити приготовлений файл прикладу.

    Написання програми

    Лістинг вихідної програми

    Для успіху нашої консультації ми підготували наступну програму, яка записується в PIC для керування світлофорами. Ця програма приготовлена ​​у файлі TL.ASM і може бути знайдена у папці "Samples\Tutorials".

    ; PIC16F844 is the target processor LIST p=16F84; Include header file #include "P16F84.INC"; Temporary storage CBLOCK 0x10 state l1,l2 ENDC org 0; Start up vector. goto setports; Go до start up code. org 4; Interrupt вектор. halt goto halt; Sit in endless loop and do nothing. setports clrw; Zero in to W. movwf PORTA; Ensure PORTA is zero before we enable it. movwf PORTB; Ensure PORTB is zero before we enable it. bsf STATUS,RP0; Select Bank 1 clrw; Mask для всіх bits as outputs. movwf TRISB; Set TRISB register. bcf STATUS,RP0; Reselect Bank 0. initialise clrw; Initial state. movwf state; Set it. loop call getmask; Convert state to bitmask. movwf PORTB; Write it to port. incf state,W; Increment state in to W. andlw 0x04; Wrap it around. movwf state; Put it back in to memory. call wait; Wait:-) goto loop; And loop:-); Функція до повторного bitmask for output port ;for current state. ; Вгору значки позначки бітів для одного набору; Bit 1 is red, 2 is amber and ;bit three is green. Bit four is not used. getmask movf state,W; Get state in to W. addwf PCL,F; Add offset in W to PCL to calc.goto. retlw 0x41; state==0 is Green and Red. retlw 0x23; state==1 is Amber and Red/Amber retlw 0x14 ; state==3 is Red and Green retlw 0x32; state==4 is Red/Amber and Amber. ; Function using 2 loops to achieve a delay. wait movlw 5 movwf l1 w1 call wait2 decfsz l1 goto w1 return wait2 clrf l2 w2 decfsz l2 goto w2 return END

    Насправді у коді є навмисна помилка, але докладніше про це пізніше...

    Прикріплення вихідного файлу

    Наступний етап – приєднати програму до нашої схеми, щоб ми могли успішно моделювати її поведінку. Зробимо це через команди меню Вихідник (Source). Тепер перейдіть в меню Source та виберіть команду "Додати/видалити вихідні файли" (Add/Remove Source Files). Натисніть кнопку New, зайдіть у папку “Samples\Tutorials” та виберіть файл TL.ASM. Натисніть “відкрити” і файл з'явиться у списку імен файлів вихідних кодів ( Source Code Filename).

    Тепер потрібно вибрати програму формування коду для файлу. Для нашої мети підійде програма MPASM. Ця опція буде доступна зі списку Code Generation Tool, виберіть її звичайним способом, клацнувши лівою кнопкою миші(зверніть увагу, що якщо ви плануєте використовувати новий асемблер або компілятор, вам потрібно зареєструвати його, використовуючи команду "Визначити програму формування коду" (Define Code Generation Tools)).

    На завершення необхідно встановити з яким файлом працює процесор. У прикладі це буде tl.hex (hex-файл, генерований MPASM, є результатом трансляції tl.asm). Щоб прикріпити цей файл до процесора, натисніть на pic-контролері спочатку правою кнопкою миші, а потім лівою. Це відкриє діалогову форму редагування елемента, що містить поле "Файл програми" (Program File). Якщо в ньому ще не встановлено tl.hex, то введіть шлях до файлу або вручну, або переглядаючи місце, де знаходиться файл, натиснувши ‘?’ праворуч від поля. Встановивши hex-файл, натисніть кнопку ОК, щоб вийти з діалогової форми.

    Тепер ми прикріпили вихідний файл до проекту та встановили, яка використовуватиметься програма формування коду. Більш детальне роз'яснення системи управління вихідними кодамидоступно в цій документації далі.

    Налагодження програми

    Моделювання схеми

    Щоб змоделювати роботу схем, клацніть лівою кнопкою миші по кнопці Playна анімаційній моделі в нижньому правому кутку екрана. Рядок стану покаже час, протягом якого запущено анімацію. Зверніть увагу на те, що один із світлофорів зелений в той час як інший червоний, на схемі також можна побачити логічні рівні на висновках. Однак зауважте, що світлофори не змінюють стану. Це через те, що код внесено навмисну ​​помилку. На даному етапі це підходить для того, щоб налагодити нашу програму та знайти проблему.

    Режим налагодження

    Щоб засвідчити, що ми ретельні налагодження, ми зупинимо поточне моделювання. Закінчивши це, ви можете почати налагодження натисканням CTRL+F12 . З'являться два вікна – перше зберігає поточні значення регістрів, друге показує вихідний код програми. Будь-яке з них може бути активоване з меню "Налагодження" (Debug) разом із сукупністю інших інформаційних вікон. Ми також хочемо активувати оглядове вікно (Watch Window), у якому ми можемо спостерігати внесені зміни до параметрів стану. Повне роз'яснення цього елемента доступне в розділі, який має назву "Дивове вікно", у цій документації.

    Встановлення точки зупинки

    Погляньте на програму, можна помітити, що вона замкнута в циклі, що повторюється. Тому буде гарною ідеєю перед тим, як почати, встановити точку зупинки на початку цього циклу. Ви можете зробити це виділенням мишею рядка (за адресою 0005 та 000E), а потім натисканням F9 . Потім натисніть F12 , щоб запустити прогін програми. Тепер ви побачите повідомлення у рядку стану, що показує, що досягнуто цифрову точку зупинки, а також адресу лічильника команд. Він відповідає адресою першої точки, яку ми встановили.

    Список клавіш налагодження можна знайти в меню Debug, але ми, здебільшого, будемо використовувати F11, щоб покроково налагоджувати програму. Тепер натисніть F11 і зауважте, що червона стрілка зліва перемістилася до наступної інструкції. Ми фактично виконали інструкцію 'clrw', а потім зупинилися. Ви можете перевірити це, глянувши на регістр W у вікні регістрів і звернувши увагу, що він обнулений.

    Тепер потрібно визначити, що має статися при виконанні наступної інструкції, а потім перевірити, чи це справді сталося. Наприклад, наступна інструкція переміщає вміст регістру “ W ” в PORT A , тобто. PORT A буде очищений. Виконання цієї інструкції та перевірка вікна регістрів підтверджують, що це насправді так. Продовжуйте в тому ж дусі доки не досягнете нашої другої точки зупинки, зверніть увагу, що обидва порти налаштовані на вихід (як наказано регістром TRISB) і встановлені в нулі.

    І так ми зупинилися на виклику функції, у нас є опція перекроювання через функції ( Stepping Over) (натисканням клавіші F10), але для повноти ми пройдемо через кожну інструкцію. Натискання тут F11 переносить до першого виконуваного рядка функції getmask. Крокнувши вперед, ми бачимо, що операція переміщення була успішною, і що ми потрапляємо в правильному місці для додавання нульового зсуву в таблиці відповідності. Отже, коли ми повертаємось до основної програми, ми маємо “маску”, яку й очікували. Роблячи наступний крок і записуючи маску порт, ми можемо бачити правильний результат на схемі. Ще один крок для інкриментування режиму також успішний, що підтверджується вікном регістрів, де значення регістру W збільшилося на 1.

    Наступний крок містить інструкцію, призначену для охоплення режиму нулями, коли він зросте вище 3. Це, як можна побачити з вікна, не виконується. Очевидно, що режим збільшився тут до 1, що відповідає масці і для наступного виконання циклу.

    Пошук помилки

    Прихований аналіз показує, що причина проблеми у побітовому І з четвіркою замість трійки. Режими, які ми хочемо 0, 1, 2, 3 при побітовому І з 4 дають 0. Ось чому, коли запущено моделювання, режим світлофорів не змінюється. Рішення у простій заміні проблемної інструкції на І з 3 замість 4. Це означає, що режим збільшується до 3 і коли регістр W збільшиться до 4, режим буде обнулений. Альтернативне рішення у перевірці, коли ' W ' зросте до 4, і скидання їх у нуль.

    Цей розділ переведений з Help'а Proteus'а версії 7.2

    Поговоримо про таку чудову програму для симуляції електронних схем як Proteus 7 (а конкретніше версія 7.10). Для початку, що таке симулятор, і навіщо він потрібен. Симулятор електронних схем Proteus 7 призначений для моделювання складених вами електронних схем. Тобто ви малюєте схему (додаєте потрібні компоненти та з'єднуєте у потрібній послідовності), а потім додаєте вимірювальні прилади, які вам потрібні для контролю працездатності. Вся краса в тому, що в залозі нічого збирати не потрібно. Накидав схему і дивишся як вона працює, вимірюєш її параметри. Іноді, звичайно, трапляється, що в залозі все працює інакше. Взагалі для Proteus 7 потрібен комп'ютер потужнішим. Тепер познайомимося із самою програмою. Запускаємо програму і після завантаження бачимо: робоче поле, панелі інструментів (розташовані вгорі та зліва), та панель властивостей.

    Створимо простий проект. Додамо світлодіод, резистор, кнопку, живлення та з'єднаємо все це, щоб при натисканні на кнопку світлодіод горів. Натискаємо "Компоненти", на панелі властивостей натискаємо "P".

    Можна шукати через категорії потрібний нам компонент, а можна і просто за назвою. У рядку пошуку пишемо «LED» та вибираємо світлодіод, наприклад синій. Клацаємо по ньому 2 рази і він додається до наших компонентів. Також додамо кнопку та резистор.

    Тепер у нашій панелі є світлодіод, кнопка та резистор. Виділяємо перший компонент та робимо один клік на робочому полі. Компонент додано. Розміщуємо компоненти як зручно. Для резистора необхідно задати номінал. Для цього клацаємо по ньому 2 рази та у вікні властивостей вводимо потрібний нам номінал.

    Тепер їх треба з'єднати. Для цього наводимо курсор на один з висновків і робимо клік лівою кнопкою миші, і ведемо провідник до висновку, що підключається, і знову клацаємо.


    Тепер треба додати харчування. Тиснемо на кнопку «Terminal» і додаємо елементи Power(+) та Ground(-).

    Напруга за замовчуванням тут 5В. (Додаються на робоче поле вони так само як і компоненти). І з'єднуємо їх із потрібними точками схеми. У результаті виходить така схема.

    Тепер дивимось у нижньому лівому кутку панель запуску симуляції. Все, як і в плеєрі, трикутник - старт, квадрат - стоп ну і т.д. Запускаємо, наводимо курсор на кнопку та натискаємо її.

    Телевізори