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

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 76 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2020 инициализациимикроконтроллераиего портов ввода/вывода, аналогового ком- паратора, таймеров/счётчиков, интер- фейсовUARTи SPI, буквенно-цифровых и графических дисплеев и др. Однако в процессе работы мастера формируется достаточнообъёмныйкод, которыйвпо- следствии приходится редактировать. После создания с помощью коман- ды основного меню File → New → Project нового проекта в CodeVisionAVR открывается окно генератора кода CodeWizardAVR , где задаются параме- трымикроконтроллера, его внутренних ресурсов и используемых в схеме пери- ферийных устройств. В данном при- мере это тип и частота работы микро- контроллера (вкладка Chip Settings – см. рис. 5а), опции портов ввода/выво- да микроконтроллера (вкладка Ports Settings – см. рис. 5б). Важно, чтобы зна- чение тактовой частотымикроконтрол- лера, указанное в поле Clock вкладки Chip Settings , совпадало со значением в поле CKSEL Fuses его окна свойств в Proteus (в данномпримере это 8МГц). Окно гене- ратора кода в CodeVisionAVR можно так- же открыть нажатиемпиктограммы Run the CodeWizardAVR панели Tools , которую добавляют в проект с помощьюкоманды View → Toolbars → Tools основногоменю. На вкладке Ports Settings для каждого отдельного порта микроконтролле- ра отведена своя закладка, где в поле Direction щелчком левой кнопки мыши можно выбрать одно из значений битов порта: Out (линия порта работает на вывод данных), In (линия порта рабо- тает на приём данных). В данном при- мере для бит Bit 0 – Bit 7 портов Port D и Port C нужно указать значение Out . Предварительный просмотр кода программы, который генерируют с помощью команды Program → Generate основного меню, выполняют в поле Program Preview . После настройки параметров и генерации кода с помо- щью команды Program → Generate , Save and Exit основного меню или пикто- граммы Generate program , save and exit верхней панели инструментов окно CodeWizardAVR будет автомати- чески закрыто. Полученный код ото- бразится в окне кода CodeVisionAVR, где и будет вестись дальнейшее напи- сание программы. При этом автома- тически сгенерированный код можно отредактировать на своё усмотрение. Записывая в порт PD соответству- ющие биты, микроконтроллер может переключать столбцы матрицы. Между переключениями столбцов микрокон- троллер должен выдержать паузу. Что- бы зажечь нужные светодиоды в столб- це, необходимо программным путём записать в порт РС микроконтролле- ра соответствующий двоичный код. К примеру, чтобы зажечь три первых и один последний светодиоды второго столбца матричного индикатора раз- решением 8 × 8, необходимо в порт РС записать двоичный код 0b01111000, а в порт PD – код 0b00000010. При таком способе подачи управляющих сигналов будут подсвечены сразу все светодиоды столбца, на катоды которых был подан логический ноль. Чтобы получить пол- ную картинку, вывод столбцов симво- ла/рисунка выполняется последова- тельно в цикле. Для уменьшения мерцания отобража- емых на индикаторе символов подсвет- Рис. 4. Сопряжение микроконтроллера ATmega16 и микросхемы светодиодной матрицы разрешением 8 × 8 Рис. 5. Окно CodeWizardAVR : а) настройка параметров микроконтроллера; б) настройка параметров портов ввода/вывода микроконтроллера а б

RkJQdWJsaXNoZXIy MTQ4NjUy