Современная электроника №2/2022
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 55 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2022 контроллера (вкладка Chip Settings – рис. 14а), опции портов ввода/выво- да микроконтроллера (вкладка Ports Settings – рис. 14б), буквенно-цифрово- го дисплея (вкладка Alphanumeric LCD Settings – рис. 14в). Важно, чтобы значе- ние тактовой частоты микроконтролле- ра, указанное в поле Clock вкладки Chip Settings, совпадало со значением Clock Frequency в поле Advanced Properties его окна свойств в Proteus (в нашем приме- ре это 2MHz). На вкладке Ports Settings для каждо- го отдельного порта микроконтролле- ра отведена своя закладка, где в поле Direction щелчком левой кнопки мыши выбирают одно из значений битов пор- та: Out (линия порта работает на вывод данных), In (приём данных). В нашем примере (рис. 14б) для битов Bit 0…Bit 7 портов Port D, Port C укажем значение Out, для бита Bit 1 порта Port А – зна- чение In. На вкладке Alphanumeric LCD Settings (рис. 14в) установкой флажка в чек- боксе задают разрешение поддержки буквенно-цифрового дисплея (поле Enable Alphanumeric LCD Support), тип контроллера (поле Controller Type, в нашем примере – HD44780) и количе- ство символов в строке (поле Character/ Line, в нашем примере – 20). В поле Connections настраивают параметры подключения микроконтроллера (порт и номер вывода) к микросхеме дисплея, работающего в 4-разрядном режи- ме. В нашем примере 4 и 7 биты порта PC микроконтроллера подключены к выводам RS и E дисплея, 4…7 биты пор- та PD микроконтроллера подключены к выводам D4…D7 дисплея. Вывод RD дисплея на схеме подключён к «земле», поэтому в поле Connections параметры его сопряжения с микроконтроллером можно не задавать. Если предполагает- ся, что буквенно-цифровой дисплей будет работать в 8-разрядном режиме и написание кода программы управле- ния будет вестись самостоятельно (так как стандартной библиотеки для этого режима в CodeVisionAVR нет), то поле Connections можно не заполнять. Предварительный просмотр кода программы, который генерируют командой Program/Generate основно- го меню, выполняют в поле Program Preview. После настройки параметров и генерации кода командой Program/ Generate, Save and Exit основного меню или пиктограммой Generate Program, Save and Exit верхней пане- ли инструментов окно CodeWizardAVR автоматически будет закрыто. После выбора директории размещения нового проекта полученный код (рис. 15) отобразится в окне кода CodeVisionAVR, где и будет вестись дальнейшее написание программы. При этом автоматически сгенериро- ванный код можно откорректировать на своё усмотрение. Прежде чем внести изменения в полученный код в CodeVisionAVR, уве- личим размер стека. Для этого коман- дой Project/Configure основного меню откроем окно Configure Project, перей- дём на вкладку C Compiler, где откроем закладку Code Generation и в поле Data Stack Size укажем размер стека в байтах – для компиляции кода в нашем примере значения 800 будет достаточно (рис. 16). Применение функций библиотеки alcd.h для формирования кода управления LCD-дисплеем Напишем на языке С программу для микроконтроллера ATmega16, кото- рая в качестве примера будет выводить на экран дисплея строку WARNING! (если на линии РА1 микроконтрол- лера единица) и строку ___OKey___ (если на линии ноль). Для формиро- вания управляющего сигнала в нашем примере в схему добавлен датчик каса- ния TOUCHPAD, который находится в библиотеке компонентов Miscellaneous программы Proteus (рис. 17а). Датчик может работать в качестве сенсорной кнопки или сигнализировать о каса- нии к устройству. Для работы с дат- чиком касания настроим линию РА1 на чтение данных, полученных от внешнего устройства, которые будут Рис. 15. Фрагмент программы, полученной с помощью генератора CodeWizardAVR, в окне кода CodeVisionAVR Рис. 16. Увеличение объёма стека данных до 800 байт в поле Data Stack Size закладки Code Generation окна Configure Project
RkJQdWJsaXNoZXIy MTQ4NjUy