Abstract and keywords
Abstract (English):
This article is devoted to modeling the operation of the Atmega8535 microcontroller in the Proteus program. The author provides detailed instructions for setting up and using this program to emulate the operation of a microcontroller. The article also presents simulation results and an analysis of their correspondence to real performance indicators of the microcontroller.

Keywords:
microcontroller, Atmega8535, modeling, Proteus, emulation, programming, electronics, circuit design
Text
Text (PDF): Read Download

Программа Proteus была разработана компанией Labcenter Electronics Ltd в 1996 году и стала одним из наиболее популярных инструментов который применялся при проектировании и моделировании электронных схем и микроконтроллерных систем.

Рассматривая программу Proteus можно выделить следующие характеристики:

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

Положительными сторонами программы Proteus можно отметить:

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

Среди отрицательных сторон можно отметить:

  • нет возможности интеграции с другими программами и пакетами, используемыми для проектирования и моделирования электроники;
  • слабая поддержка ряда типов микроконтроллеров и иных компонентов.

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

  • имеет более ограниченную функциональность и возможности для работы с большими проектами, чем у Altium Designer и Eagle;
  • обладает большим количеством элементов и инструментов для моделирования и оптимизации проектов, чем у Multisim и LTSpice;
  • имеет более простой и легко усваиваемый интерфейс, и делает его более доступным для начинающих разработчиков, чем у TINA и OrCAD.

Опираясь на выше сказанное можно сделать следующие выводы – программа Proteus является мощным и функциональным инструментом для проектирования и моделирования электронных схем и микроконтроллерных систем. Наиболее значимыми плюсами являются – широкий функционал, многообразие инструментов и возможность создания трехмерных моделей проектируемых устройств. Практически отсутствуют интеграционные казусы, но имеются определенные ограничения в поддержке некоторых типов микроконтроллеров и элементов. Также отличительной чертой Proteus является его «простой» и понятный интерфейс в сравнении с другими программами.

Для построения схемы сигнализации основанной на использовании микроконтроллера ATmega8535, потребуются следующие компоненты:

  • микроконтроллер ATmega8535;
  • внешние датчики, например, датчик движения PIR и датчик звука;
  • резисторы;
  • транзисторы;
  • LCD-дисплей;
  • пьезодинамик;
  • резисторы для подключения дисплея и пьезодинамика.

Разработка схемы сигнализации состоит из следующих шагов (рис. 1):

  • подключение внешних датчиков к микроконтроллеру ATmega8535 через разъемы ввода-вывода;
  • настройка программы для микроконтроллера ATmega8535 и проверка состояния внешних датчиков, выдача сигнала на LCD-дисплей и пьезодинамик при обнаружении движения или звука;
  • подключение LCD-дисплея к микроконтроллеру ATmega8535 для вывода информации о состоянии датчиков и сигналах;
  • подключение пьезодинамика к микроконтроллеру ATmega8535 для выдачи звукового сигнала при обнаружении движения или звука;
  • выполнение моделирования работы сигнализации, проверка работы на наличие ошибок и исправление их при необходимости.

Демонстрационная схема с использованием микроконтроллера ATmega16 и светодиодов

Рисунок 1 – Схема реализации сигнализации в программе Proteus на базе микроконтроллера ATmega8535

 

Для разработки прошивки микроконтроллера используем программу Atmel Studio 7 где в качестве языка программирования возьмем язык С и дополним его следующими библиотеками языка C: avr/io.h (ввода-вывода микроконтроллера), avr/interrupt.h (прерываний микроконтроллера), avr/delay.h (задержки микроконтроллера), stdio.h (общего назначения для ввода-вывода), lcd.h (для работы с LCD-дисплеями). В программном коде подключение библиотек осуществляется указанием служебного слова, заголовков (#include) в начале программы, а также следует настроить порты микроконтроллера для работы с внешними устройствами. Затем выполняется проектирование работы микроконтроллера с проверкой контактов портов ввода-вывода с системой взаимодействия с внешними датчиками и вывода информации как на LCD дисплей, так и звукового сигнала на пьезодинамик:

 

#include <avr/io.h>

#include "lcd.h"

#define PZ1 PB0  // Пин пьезодинамика

#define SENSOR1 PC0 // Пин первого внешнего датчика

#define SENSOR2 PC1 // Пин второго внешнего датчика

 

int main(){

    // Инициализация дисплея

    lcd_init();

    // Конфигурирование портов

    DDRB = _BV(PZ1);   // PZ1 на выход

    DDRC = 0x00;       // Все порты PCx на вход

    // Подтяжка портов PC0 и PC1 к VCC

    PORTC = _BV(SENSOR1) | _BV(SENSOR2);

    int sensor1_val = 0;

    int sensor2_val = 0;

    while(1)

    {

        // Считывание значений с датчиков

        sensor1_val = PINC & _BV(SENSOR1);

        sensor2_val = PINC & _BV(SENSOR2);

        // Формирование сообщения для вывода на дисплей

        char msg[16];

        sprintf(msg, "Sensor1:%d,2:%d", sensor1_val, sensor2_val);

        // Вывод сообщения на дисплей

        lcd_clrscr();

        lcd_puts(msg);

        // Если значения датчиков выше порога, то вывод сообщения и генерация звукового сигнала

        if(sensor1_val > 0 && sensor2_val > 0){

            lcd_gotoxy(0, 1);

            lcd_puts("ALERT: Obstacle!");

            PORTB |= _BV(PZ1);

            _delay_ms(1000);

            PORTB &= ~_BV(PZ1);

            _delay_ms(1000);

        }

        _delay_ms(100); // Задержка между проверками сигналов

    }

    return 0;

}

 

Следующим шагом в моделировании схемы устройства будет компиляция программного кода и прошивка микроконтроллера в программе Proteus. Затем необходимо провести моделирование работы схемы через имитацию запуска микроконтроллера с последующей проверкой работы дисплея. Выполняя имитацию воздействия на внешние датчики можно получить картину работы указанной схемы в различных условиях ее эксплуатации. Особенность программы Proteus заключается так же в том, что мы можем поэтапно вводить в схему новые компоненты и проводить эксперименты с условием того, что для ввода нового элемента схемы нужно в коде прошивки вводить дополнительные функции и подключать библиотеки. В частности, схему можно расширить, добавив в нее, например, дополнительный функционал реализовав чтение сигналов с внешних датчиков или управление моторами. Добавление новых элементов в Proteus ограничено только воображением разработчика, так как библиотека компонент имеет большой спектр элементов, в частности, датчики освещенности, давления, веса, расстояния и т.д. Следует только помнить, что при проектировании прошивки микроконтроллера ATmega8535 в программе Atmel Studio 7 следует для каждого нового датчика подбирать соответствующую библиотеку, в частности для работы с датчиками - элементы из библиотеки Sensors.

Подводя итог использования программы Proteus для моделирования схемы сигнализации можно сказать, что указанная программа позволяет довольно легко проводить построения схем любой степени сложности, позволяет поэтапно проводить достройку схемы вводя по нескольку элементов в схему и выполнять моделирование работы элементов схемы на каждом шагу моделирования. Создание прошивки микроконтроллера может быть осуществлено как в самой программе Proteus, так и с использование стороннего ПО, в частности программы Atmel Studio 7, что дает возможность использовать различные библиотеки элементов и расширить спектр подключаемого оборудования.

References

1. Krasnov, S. A. Avtomatizirovannoe proektirovanie universal'nogo laboratornogo stenda na baze mikroprocessorov serii AVR s ispol'zovaniem paketa programm Proteus / S. A. Krasnov, V. I. Monahov, T. I. Plyuscheva // Innovacionnoe razvitie legkoy i tekstil'noy promyshlennosti (INTEKS-2014) : tezisy dokladov vserossiyskoy nauchnoy studencheskoy konferencii, Moskva, 15–16 aprelya 2014 goda / Federal'noe gosudarstvennoe byudzhetnoe obrazovatel'noe uchrezhdenie vysshego professional'nogo obrazovaniya «Moskovskiy gosudarstvennyy universitet dizayna i tehnologii». – Moskva: Federal'noe gosudarstvennoe byudzhetnoe obrazovatel'noe uchrezhdenie vysshego professional'nogo obrazovaniya "Moskovskiy gosudarstvennyy universitet dizayna i tehnologii", 2014. – S. 90.

2. Homyakov, A. V. Razrabotka bloka upravleniya dlya avtomaticheskogo kontrolya i regulirovaniya temperatury s primenenie programmy Proteus / A. V. Homyakov, M. I. Mehno // Sovremennye elektrotehnicheskie i informacionnye kompleksy i sistemy: Materialy V Mezhdunarodnoy nauchno-prakticheskoy konferencii prepodavateley, aspirantov i nauchno-tehnicheskih rabotnikov, posvyaschennoy 105- letiyu so dnya obrazovaniya KubGTU, Armavir, 10–11 noyabrya 2023 goda. – Armavir: OOO «Redakciya gazety «Armavirskiy sobesednik», 2023. – S. 76-80.

3. Al'terman, A. D. Programma dlya avtomaticheskogo proektirovaniya elektricheskih shem Proteus / A. D. Al'terman, A. S. Parfenova // Sovremennye nauchnye issledovaniya i razrabotki. – 2018. – № 12(29). – S. 121-122.

4. Fam, T. H. Modelirovanie raboty usilitel'no-preobrazuyuschego bloka mobil'nogo izmeritelya koncentracii kisloroda v programme Proteus / T. H. Fam // Tehnika XXI veka glazami molodyh uchenyh i specialistov. – 2022. – № 20. – S. 315-321.

5. Sboev, V. M. Modelirovanie elektromehanicheskih sistem v programme "Proteus VSM" / V. M. Sboev, V. V. Rychkov // Vserossiyskaya ezhegodnaya nauchno-tehnicheskaya konferenciya "Obschestvo, nauka, innovacii" (NTK-2012) : Sbornik materialov: Obscheuniversitetskaya sekciya, BF, GF, FEM, FAVT, FAM, FPMT, FSA, HF, ETF, Kirov, 16–27 aprelya 2012 goda / Otvetstvennyy redaktor: Litvinec S.G.. – Kirov: Vyatskiy gosudarstvennyy universitet, 2012. – S. 1146-1149.

6. Zhuravlev, A. A. Razrabotka cifrovogo dvoynika ulichnogo fonarya s pomosch'yu programmy Proteus / A. A. Zhuravlev // Modern Science. – 2020. – № 12-5. – S. 364-368.

7. Tret'yakov, O. V. Osobennosti programmirovaniya mikrokontrollerov s pomosch'yu universal'nogo programmatora ponyprog i paketa programm Proteus / O. V. Tret'yakov, I. A. Odarchenko // Molodezh' i nauchno-tehnicheskiy progress: Sbornik dokladov VII mezhdunarodnoy nauchno-prakticheskaya konferencii studentov, aspirantov i molodyh uchenyh. V 3-h tomah, Staryy oskol, 10 aprelya 2014 goda. Tom 1. – Staryy oskol: Obschestvo s ogranichennoy otvetstvennost'yu "Assistent plyus", 2014. – S. 146-148.

8. Kolesnikova, T. Primenenie programmy CodeVisionAVR dlya upravleniya LCD-displeyami v Proteus 8.11 / T. Kolesnikova // Komponenty i tehnologii. – 2021. – № 10(243). – S. 86-97.

9. Klochek, M. S. Programma dlya avtomaticheskogo proektirovaniya elektricheskih shem Proteus / M. S. Klochek, A. S. Parfenova // Innovacionnoe razvitie. – 2018. – № 1(18). – S. 11-12.

10. Lysenkov, A. A. Proektirovanie vos'mirazryadnogo dvoichnogo schetchika na baze processora STM32 c vizualizaciey v programme Proteus / A. A. Lysenkov, N. A. Pikulev // Aktual'nye voprosy nauki i praktiki: Sbornik nauchnyh trudov po materialam XXXIX Mezhdunarodnoy nauchno-prakticheskoy konferencii, Anapa, 06 dekabrya 2021 goda. – Anapa: Obschestvo s ogranichennoy otvetstvennost'yu «Nauchno-issledovatel'skiy centr ekonomicheskih i social'nyh processov» v Yuzhnom Federal'nom okruge, 2021. – S. 163-167.

Login or Create
* Forgot password?