Эмуляция AVR в Proteus, микроконтроллеры в Proteus

Устанавливаем программу Proteus.

Для чего нужна эта программа? Proteus нужен для эмуляции, проверки электронных схем, у него имеется большая библиотека существующих компонентов.

Наша задача сэмулировать работу микроконтроллера AVR

1)Запускаем Proteus

2)Вверху Выбираем File – New Project

3)Вводим имя проекта в поле Name

В поле Path выбираем путь или оставляем по умолчанию

4)Жмем Next

5)Выбираем дизайн схемы, оставим выбор по умолчанию – Default, кликаем Next

6),Появилось окно опций разметки печатной платы, выбираем Do not create PCB Layout(не создавать), Next

7)Здесь самое интересное, выбираем имеет ли проект прошивку

Нужно выбрать Create Firmware Project

В поле Family(Семейство) выбрать – AVR

В поле Controller – ваш микроконтроллер, который собираемся эмулировать, к примеру выберем ATmega8

Compiler – оставить как есть, сейчас он нам не понадобится, мы уже используем скомпилированную прошивку

Далее – Next

8)Появляются сведения о выбранных опциях проекта

Жмем Finish

9)Откроется вкладка написания кода(Source Code) на ассемблере, нам же нужно выбрать вкладку Schematic Capture

10)Появится одиноко стоящий мк ATmega8

Наводим на него мышку, кликаем правой кнопокой мышки , выбираем Edit Properties

Находим пункт Program File:(программный файл) , кликаем на желтую папку рядом с пока пустым полем и выбираем наш файл прошивки в формате HEX!После этого поле заполнится в виде пути до файла прошивки.

Как пример выберем файл прошивки из этой статьи, HelloLED – Как прошить микроконтроллер ATmega, AVR

Это мигающий светодиод

Жмем ОК.

11)В самом вверху программы выбираем Debug – Run Simulation

ATmega8 запустится и мы можем видеть как замелькали все порты D, потому что все порты D в исходном коде установлены как выходы(смотрите статью – Как написать код для AVR, программирование микроконтроллеров Atmel AVR на Си )

Чтоб остановить эмуляцию выберите Debug – Stop VSM Debugging

12)Смотреть на просто мелькающие порты не интересно, давайте добавим к схеме нужную обвязку

Схема очень проста, вот она :

В Proteus на пустом месте кликаем правую кнопку мыши, нажимаем Place(поместить) – Component – From Libraries, в поле Keywords вводим RES и получаем в окне в середине аналоговый примитив – резистор, выбираем его и кликаем ОК.

13)На пустом месте кликаем и помещаем резистор куда надо, чтоб изменить сопротивление резистора кликаем по его значению сопротивления и в поле String вводим нужное

14)Для добавления светодиода аналогично поступаем как и с резистором, только вместо RES вводим в поиск LED и находим в списке простой LED Generic Light Emmiting Diode

15)При помощи клика по выводам электронных компонентов осуществляем соединения между ними

16)Для подсоединения к земле, массе , как обычно на пустом месте правая кнопка мыши – Place – Terminal -Ground появится символ стрелка вниз, к нему соединяемся в качестве земли.

17)Запускаем схему, должно получится что-то вроде этого и увидеть как квадратик около LED тоже мигает

А можно подсоединить лампочку накаливания, изменив ее напряжение на 5 вольт(только в Proteus!не соединять на реальной схеме) и наблюдать как она мелькает: