Эмуляция проекта на МК AVR в программе Proteus

05.11.2015 11:24

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

 

 

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

 

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

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

 

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

Вот такое окно у нас открывается сразу после запуска программы (кликните для увеличения):

 

 

Далее нам нужно нажать Файл => Новый проект, ввести название и выбрать в какой папке мы его сохраняем

 

Затем нам нужно выбрать из библиотеки те радиодетали, которые нам нужны для проекта и поместить их в список деталей. Их мы затем сможем выбрать и установить на рабочее поле. В нашем проекте мы будем использовать МК Attiny2313, желтый светодиод LED-YELLOW (он хорошо "светится" в Протеусе) и резистор RES для ограничения тока, протекающего через светодиод. Иначе мы, как бы это смешно не звучало, "спалим" виртуальный светодиод :-).

 

 

Для того, чтобы выбрать эти  радиоэлементы, мы должны кликнуть по буковке "Р":

 

 

После того, как кликнули, выйдет вот такое окошко:

 

 

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

 

 

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

 

 

Затем повторяем то же самое с резистором. Вбиваем "res":

 

 

и точно также ищем светодиод:

 

Ну вот, теперь все эти три элемента у вас должны отобразиться в графе "Устройства":

 

 

Теперь кликаем по черной стрелочке, и потом уже в списке выбираем нужный нам радиоэлемент:

 

Слева в вертикальной колонке мы видим значок "Терминал". Нас там интересуют две строчки: Power и Ground. Это соответственно в нашей схеме +5 вольт питания и земля. На МК питание подавать не надо, оно подается автоматически. Для схемы мы берем только значок "земля".

 

 

Вытаскиваем все радиоэлементы на рабочее поле

 

 

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

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

 

 

Нам также нужно изменить номинал резистора. По умолчанию он не подходит для нашей схемы. Как это сделать?

Нажимаем правой кнопкой мыши на резисторе, выбираем Правка свойств

 

 

А потом меняем значение на 200 Ом. Вполне хватит, что наш виртуальный светодиод не помер)

 

 

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

 

 

Кстати, хочу сразу сказать, если мы совершили какое-то ошибочное действие, нам достаточно нажать кнопку "Отменить" и последнее действие будет отменено. Думаю, многие это знают из сторонних программ, но мало ли).

 

Итак, мы собрали схему. Теперь надо залить прошивку в наш микроконтроллер и посмотреть, как же это выглядит в действии. Для этого нам нужно кликнуть правой кнопкой мыши по МК и нажать иконку с изображением желтой папки в графе Program Files. Кстати, здесь же можно при необходимости выставить фьюз биты (кликните для увеличения картинки):

 

 

Затем нужно выбрать файл прошивки с расширением *.HEX и нажать "Открыть". Все готово, можно эмулировать проект.

(для увеличения кликните по картинке)

 

 

Для начала эмуляции нужно нажать кнопочку "треугольник" в нижнем левом углу программы "Протеус":

 

У нас начнется эмуляция. Мы увидим, как мигает светодиод. В какой-то момент времени наш светодиод будет светиться. Смотрите как ярко горит желтым цветом :-)

 

 

А потом он снова будет тухнуть:

 

 

 Теперь мы можем при желании сохранить наш проект под любым названием, выбрав “Cохранить проект как”, а также если требуется открыть готовый файл другого проекта, выбрав “Открыть проект”

 

Так выглядит иконка сохраненного проекта на рабочем столе:

 

 

Также можно сохранить проект как готовый шаблон, выбрав “Сохранить проект как шаблон” и в будущем использовать его, в качестве части любой будущей схемы:

 

Надеюсь, у вас, читатели, не составит труда собрать этот проект самостоятельно и в дальнейшем, прокачав скилл, вы легко сможете самостоятельно собрать любой более сложный проект. Готовый проект для программы Proteus 7.7 и прошивку прикрепил в  этом архиве.

 

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

 

Читайте также:

Atmel Studio 6. Создание HEX-файла

 

Работа в CodeVisionAVR. Написание первой программы

 

Первое знакомство с AVR