Задача: эмуляция Arduino в программе Proteus Isis.
Другие эмуляторы либо де-факто не существуют, либо нигде не найти лекарств для них. Поэтому при всём «богатстве» выбора альтернативы Протеусу и здесь нет.
Собираем BlinkВ Arduino IDE создаём скетч:
int i = 0;
void setup() {
pinMode(13, OUTPUT); //устанавливаем 13 порт (со встроенным LED) для вывода
Serial. begin(9600);
}
void loop() {
i++;
Serial. print(i); // заходя чуть вперёд, сразу добавлю код для терминала
digitalWrite(13, HIGH); // подаём на 13 порт 1 (5В) — включаем
Serial. println("H"); // светодиод горит – пишем H
delay(500); // пауза 0,5 с
digitalWrite(13, LOW); // подаём на 13 порт 0 (0В) – выключаем
Serial. println("L"); // светодиод погасили – пишем L
delay(500); // пауза 0,5 с
}
Проверяем на железе, должно работать – мигать с периодом в 1 сек и выдавать на терминал такое:

Теперь собираем схему в Протеусе. В Proteus нет Arduino, даже в последней 8-й версии.
Поэтому берём AVR МК ATMega 328P (как в Arduino Uno Rev.3) и смотрим
Соответствие пинов Ардуино портам Атмеги:

(здесь другой ОМК, но однако суть близка)
Итак, схема:

Но где же взять HEX-прошивку?
Запускаем снова Arduino IDE, и открываем нужный скетч, нажимаем Проверить:

Дальше, открываем проводник и пишем там %temp%\ и нажимаем Enter:

Находим там папки с именами buildXXXXXXXXXXXXXXX. tmp:

В каждой из этих папок будет куча файлов, нас интересует файл Blink. cpp. hex - это и есть наш скомпилированный Blink, который можно заливать на микросхему или скормить Протеусу.
Примечание
Когда вы производите изменения с исходным текстом скетча, то папка buildXXXXXXXXX. tmp очищается автоматически, и вам надо заново нажать Проеверить, чтобы в ней появились файлы.
При дефолтных настройках Протеус будет мигать ну очень медленно – проблема со фьюзами микроконтроллера.
Вот какие должны быть настройки ATМеги, чтобы Proteus не тормозил с блинком:

(настройки фьюзов далее будут «улучшены»)
Прим: 16 МГц – рабочая частота Arduino Uno
2. Добавляем Terminal
Как же в Протеусе запустить Терминал?
Настройки терминала (вроде как дефолтные):

Запускаем моделирование (F12). Для вывода собственно окна терминала ПКМ по значку Virtual Terminal (в период выполнения) и ставим галочку внизу:

А чтобы не было крякозябров, настраиваем Атмегу так:

Теперь запускаем и получаем:

Т. о. LED мигает, терминал порт слушает, контора пишет, всьо чьотко!)
По материалам
http://robocraft. ru/blog/arduino/114.html
http://www. radioprog. ru/?p=25


