Современная электроника №2/2022
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 56 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2022 записаны в переменную res. Нажа- тие датчика приводит к появлению на линии РА1 логической единицы, иначе на линии РА1 логический ноль. Для визуального отображения сигна- ла на линии воспользуемся цветным пробником логических уровней 0 и 1, который в программе Proteus пред- ставлен компонентами LOGICPROBE и LOGICPROBE (BIG) из раздела Logic Probes библиотеки Debugging Tools (рис. 17б). В нашем примере для кон- троля входного сигнала на линии РА1 микроконтроллера добавим в рабочее поле проекта компонент LOGICPROBE (BIG) и подключим его выход к выво- ду РА1 так, как показано на рис. 18. В результате при появлении на вхо- де РА1 значения логической единицы пробник будет подсвечен красным цве- том, при появлении же значения логи- ческого нуля пробник будет подсвечен синим цветом. Также на пробнике визу- ально отображаются значения 0 и 1. Напряжение, выдаваемое датчиком при нажатии (VOUT when touching), – в нашем примере 5 В – указывают в поле Advanced Properties окна его свойств (рис. 19), которое открывают щелчком правой кнопки мыши по пиктограмме датчика на схеме контекстного меню и выбором в нём команды Edit Properties. Для работы с буквенно-цифровым дисплеем в CodeVisionAVR предус- мотрена библиотека alcd.h, которая содержит функции вывода символов на экран дисплея, среди которых: ● void char lcd_init(unsigned char lcd_ columns) – инициализация буквенно- цифрового дисплея, очистка экрана и установка курсора в позицию 0, 0. Параметр lcd_columns – количество столбцов дисплея; ● void lcd_clear(void) – очистка экрана и установка курсора в позицию 0, 0; ● void lcd_gotoxy(unsigned char x, unsigned char y) – установка курсо- ра в позицию x, y экрана, где x – это номер столбца, y – номер строки; ● void lcd_putchar(char c) – вывод сим- вола с на экран в текущую позицию курсора; ● void lcd_puts(char *str) – функция выводит строку str, расположенную в SRAM на экран, начиная с текущей позиции курсора; ● void lcd_putsf(char flash *str) – функ- ция выводит строку str, расположен- ную во FLASH на экран, начиная с те- кущей позиции курсора; ● void lcd_putse(char eeprom *str) – функция выводит строку str, распо- ложенную в EEPROM на экран, начи- ная с текущей позиции курсора. Применение функций рассмотрим на примере вывода на экран буквенно- цифрового дисплея графической и тек- стовой информации, формирующих предупреждающие сообщения, опо- вещающие о нажатии датчика касания. Текст программы: #include <mega16.h> // подключе- ние заголовочных файлов #include <alcd.h> // в которых содержатся #include <stdio.h> // прототипы функций #include <delay.h> Рис. 17. Выбор в Proteus: (а) датчика касания TOUCHPAD из библиотеки Miscellaneous, (б) пробника логических уровней 0 и 1 LOGICPROBE (BIG) из раздела Logic Probes библиотеки Debugging Tools Рис. 18. Сопряжение буквенно-цифрового дисплея LM044L, микроконтроллера ATmega16 и датчика касания в схемном редакторе Proteus Рис. 19. Окно свойств датчика касания а б
RkJQdWJsaXNoZXIy MTQ4NjUy