Современная электроника №7/2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 56 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 7 2021 ра ATmega32 линии выполняется про- граммно. После создания схемы, подключения всех приборов и настройки их пара- метров переходят к следующему эта- пу разработки: написанию программ- ного кода управления устройством в CodeVisionAVR. В результате его компи- ляции (при условии отсутствия в коде ошибок) на диске компьютера будет получен hex-файл, путь к которому ука- зывают в окне свойств микроконтрол- лера в Proteus. Завершающим этапом работы в Proteus является запуск процесса моде- лирования схемы в редакторе ISIS, который выполняют кнопкой Run the simulation, расположенной в левом ниж- нем углу окна редактора или командой основного менюDebug/Run Simulation. Создание программного кода в CodeVisionAVR Формирование программного кода в CodeVisionAVR выполняют при помощи автоматического генератора CodeWizardAVR или вручную с нуля, используя синтаксис языка програм- мирования С и функции стандартных библиотек программы. Удобство при- менения генератора состоит в быстром получении кода выполнения функций инициализации микроконтроллера и его портов ввода/вывода, аналого- вого компаратора, таймеров/счётчи- ков, интерфейса UART и SPI, алфавит- но-цифровых и графических дисплеев и др. Однако в процессе работы масте- ра формируется достаточно объёмный код, который впоследствии приходит- ся редактировать. После создания командой основного менюFile/New/Project нового проекта в CodeVisionAVR открывается окно гене- ратора кода CodeWizardAVR, где задают параметрымикроконтроллера, его вну- тренних ресурсов и используемых в схе- ме периферийных устройств, что уже было рассмотрено в [1], поэтому подроб- но остановимся на определении свойств графического дисплея. В окне генерато- ра кода (см. рис. 4а) перейдём на вклад- ку Graphic Display Settings и укажем тип контроллера, разрешение дисплея и инверсию выводов активации сегмен- тов дисплея (поле Display Type, в нашем примере – KS0108 128 × 64 /CS1, /CS2), применение внешней памяти для хра- нения изображения (Use Image Storage in External Memory, в нашем примере флажок в чекбоксе снят). На вкладках Data и Control настраивают параметры подключения микроконтроллера (порт и номер вывода) к микросхеме дис- плея – в нашем примере биты 2...7 пор- та PА микроконтроллера подключены к выводам E, R/W, RS, RST , CS 1 и CS 2 дис- плея соответственно, биты 0...7 порта PD микроконтроллера подключены к выво- дам DВ0...DВ7 дисплея. Также настройку параметров дисплея можно выполнить на базе уже суще- ствующего проекта CodeVisionAVR, для чего с помощью команды Project/ Configure основного меню открывают окно Configure Project. В этом окне сле- дует перейти на вкладку C Compiler и затем – на вкладку Libraries, где открыва- ют вкладку Graphic Display (см. рис. 4б) и устанавливают в поле Display Type тип контроллера, разрешение дисплея и инверсию выводов активации сег- ментов дисплея. Подключение управ- ляющих сигналов и сигналов данных/ команд определяют на вкладках Control и Data. Прежде чем приступить к написанию программного кода в CodeVisionAVR, подключим поддержку карты памя- ти ММС и увеличим размер сте- ка, для чего на вкладке Libraries окна Configure Project откроем вкладку MMC/SD/SD HC Card и установим фла- жок в чекбоксе Enable MMC/SD/SD HC Card and FAT Support (разрешить поддержку карт памяти и файловой системы FAT), см. рис. 5а. На вклад- ке C Compiler откроем вкладку Code Generation (см. рис. 5б) и в поле Data Stack Size укажем размер стека в байтах – для компиляции кода в нашем примере значения 1920 будет достаточно. Применение функций библиотеки ff.h для записи данных во внешнюю память, их чтения и отображения на экране терминала и алфавитно-цифрового дисплея Для работы с картами памяти MMC/SD/SD HC, отформатирован- ными в FAT12, FAT16 или FAT32, в CodeVisionAVR предусмотрены библи- отекифункций sdcard.h и ff.h, описание которых было рассмотрено в [1]. Про- демонстрируем на конкретном приме- ре работу с функциями создания фай- а б Рис. 4. Настройка параметров графического дисплея: в окне CodeWizardAVR (а), на вкладке Graphic Display окна Configure Project (б)

RkJQdWJsaXNoZXIy MTQ4NjUy