Современная электроника №2/2022
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 59 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2022 Введём текст программы в окне кода CodeVisionAVR и запустим коман- дой основного меню Project/Build All компиляцию, по окончании кото- рой выдаётся отчёт о наличии оши- бок в коде программы (рис. 20). Если ошибки не обнаружены, на диске компьютера будет создан исполня- емый файл для записи в микрокон- троллер. Теперь перейдём в Proteus и в окне свойств микросхемы ATmega16 укажем путь к файлу прошивки на диске компьютера (в нашем при- мере к файлу с расширением .hex). Командой основного меню Debug/ Run Simulation запустим симуляцию собранной схемы, результат которой представлен на рис. 21 (а, б, в), и про- анализируем её работу. После запуска моделирования про- грамма микроконтроллера выполняет инициализацию его портов и буквен- но-цифрового дисплея. Затем на экране дисплея отображается заставка в виде индикатора загрузки (рис. 21а). Фор- мирование индикатора осуществля- ется последовательным заполнением первой строки экрана дисплея в пози- циях 0…19 символами █ – заполнен- ное знакоместо (шестнадцатиричный код такого символа – 0xff). В нулевой строке экрана отображается надпись Loading, вывод которой осуществля- ется с помощью функций lcd_gotoxy (выбор позиции курсора на экране) и lcd_putsf (вывод строки, начиная с теку- щей позиции курсора). Затем дисплей очищается, и на экране отображается рамка. Командыформирования рамки собраны в отдельной функции ramka( ), инициализация которой выполнена в начале программы. Далее запускается цикл while(1), где непрерывно ведётся опрос линии РА1 микроконтроллера, подключённой к выводу данных датчи- ка касания, и обработка двух условий. Для каждого условия происходит фор- мирование оповещающего сообщения (WARNING! или ___OKey___), которое отображается на экране дисплея. Появ- ление на линии логической единицы (истинно первое условие) означает, что сенсорная кнопка датчика нажата (рис. 21б). Когда на линии логический ноль (истинно второе условие) – кноп- ка датчика отжата (рис. 21в). Проанализировав способы форми- рования программного кода управле- ния буквенно-цифровым дисплеем в представленных выше примерах, мож- но прийти к выводу, что применение специальных инструментов (таких как генератор кода CodeWizardAVR и функции стандартных библиотек) расширяет возможности программы CodeVisionAVR, облегчает написание и позволяет существенно сократить объём кода программы инициали- зации микроконтроллера и время её выполнения. Литература 1. Proteus VSMHelp // Labcenter Electronics, 2020. 2. ISIS Help // Labcenter Electronics, 2014. 3. CodeVisionAVR Help // HP InfoTech, 2014. 4. HD44780U (LCD-II) (Dot Matrix Liquid Crystal Display Controller/Driver) // Hitachi, Ltd. 1998. 5. Евстифеев А.В. Микроконтроллеры AVR семейства Mega. Руководство пользова- теля. М.: Издательский дом «Додэка-XXI», 2007. 6. Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих. М.: Издательство МГТУ им. Н.Э. Бау- мана, 2007. Реклама МОСКВА (495) 234-0636 info@prosoft.ru САНКТ-ПЕТЕРБУРГ (812) 448-0444 info@spb.prosoft.ru ЕКАТЕРИНБУРГ (343) 356-5111 info@prosoftsystems.ru (951) 811-7945 ekaterinburg@regionprof.ru
RkJQdWJsaXNoZXIy MTQ4NjUy