Современная электроника №2/2022
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 47 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2022 помощи автоматического генерато- ра CodeWizardAVR или вручную с нуля, используя синтаксис языка програм- мирования С и функции стандартных библиотек программы для работы с буквенно-цифровыми LCD-модулями, шиной I 2 C, EEPROM DS2430 и DS2433, температурными датчиками (LM75 и DS1820/DS18S20), часамиреальноговре- мени (PCF8563, PCF8583, DS1302, DS1307), протоколом 1-Wire, SPI, USART, а так- же функции формирования задержек, управленияпитаниемипреобразования кода Грея. Удобствоприменения генера- тора состоит в быстромполучениикода выполнения функций инициализации микроконтроллера и его портов ввода/ вывода, внешнихпрерываний, таймеров/ счётчиков, сторожевого таймера, анало- говогокомпаратора, интерфейсовUSART иSPI, шин1-Wireи I 2 C, буквенно-цифро- выхи графических дисплеев, установки доступа к внешней памяти и др. Однако впроцессеработымастераформируется достаточнообъёмныйкод, которыйвпо- следствииприходится редактировать. Когда код пишется вручную, для управления буквенно-цифровым дис- плеем применяют функции библиоте- ки для работы с буквенно-цифровы- ми модулями, функции ввода/вывода информации на экран дисплея, стро- ковые функции языка С. В статье рассмотрен вывод тексто- вых данных на экран дисплея LM044L (в 4- и 8-разрядномрежиме), работающе- го под управлениемпрограммыиници- ализациимикроконтроллера ATmega16, написанной в CodeVisionAVRна языке С с использованием системыкоманд кон- троллера HD44780. Применение функ- ций управления буквенно-цифровым дисплеемпрограммыCodeVisionAVRрас- смотренона примере схемы, где с помо- щьюдатчика касания имикроконтролле- ра ATmega16 проводитсяформирование управляющего сигнала, обработка полу- ченных данных программойинициали- зации и вывод анимации в виде строки загрузки и информационных сообще- ний на экран буквенно-цифрового дисплея. Строка загрузки реализована последовательным заполнением зна- комест первой строки экрана буквенно- цифрового дисплея (нумерация строк и столбцов начинается с нуля). Проектирование схемы электрической принципиальной в Proteus Буквенно-цифровые дисплеи – очень популярный способ вывода информа- ции в электронных устройствах. Рабо- ту с буквенно-цифровыми дисплеями в Proteus рассмотрим на примере микро- схемы LM044L с разрешением экрана 20 символов на 4 строки, для тестиро- вания которой воспользуемся микро- контроллером ATmega16. Если написание программного кода управления электронной системой пред- полагается выполнить в CodeVisionAVR, то проект схемы электрической принци- пиальной в схемномредакторе создают при помощи кнопки Schematic Capture верхней панели инструментов стартово- го окна Proteus. Нажатие кнопки откры- вает новую одноимённую вкладку, в рабочем поле которой и будет выпол- няться разработка схемы. Создадим в Proteus новый про- ект и добавим в рабочее поле микро- схему дисплея, для чего при помощи команды контекстного меню Place/ Component/From Libraries схемного редактора откроем окно Pick Devices и выберем левой кнопкой мыши из раздела Alphanumeric LCDs библиоте- ки Optoelectronics микросхему LM044L (рис. 1а). Нажмём на кнопку ОК (окно Pick Devices будет закрыто) и разместим микросхему в рабочей области проекта. Микросхема LM044L работает под управлением контроллера HD44780, который принимает и обрабатывает команды управления и выводит соот- ветствующие символы на дисплей. Микросхема имеет 14 контактов, назна- чение которых следующее: ● Vss – GND; ● Vdd – напряжение питания +5 В; ● Vee – напряжение контрастности от 0 до +5 В (настройка контрастности отображаемых на дисплее символов); ● RS – выбор регистра данных DR (RS – 1) или команд IR (RS – 0); ● RW– выбор операции чтения (RW– 1) или записи (RW – 0); ● E – линия синхронизации; ● D0…D7 – шина данных/команд. Микросхема LM044L может работать в двух режимах: ● 8-разрядном (для обмена информа- цией используются выводыD0…D7); ● 4-разрядном (для обмена информа- цией используются выводыD4…D7). Для тестирования работы дисплея будем использовать микроконтроллер, в качестве которого применим микро- схему ATmega16 из раздела AVR Family библиотеки Microprocessor ICs (рис. 1б). Для подключениямикросхемыLM044L к схеме управления используется парал- лельная синхронная шина данных/ команд (D0…D7), вывод выбора опера- ции чтения/записи (RW), вывод выбо- ра регистра данных/команд (RS) и вывод синхронизации (Е). Подсоеди- ним выводы модуля дисплея D0…D7 к выводамPD0…PD7 порта PD (для рабо- тыв 8-разрядномрежиме), а выводыRS и E к выводам PC4 и PC7 порта PC микро- контроллера ATmega16 так, как показа- но на рис. 2а. Для работы в 4-разрядном режиме выводымодуля дисплеяD4…D7 подсоединяют к выводамPD4…PD7 пор- та PD (рис. 2б). Вывод RWподключим к «земле», так как в нашей системе будет выполняться только запись информации вмикросхему LM044L. ВыводыVss иVdd подключимк «земле» инапряжению+5В соответственно. На вывод Vee подаётся напряжение контрастности (от 0 до +5В). На практике этот вывод подключается к питаниючерез подстроечныйрезистор, которыйпозволяет плавно регулировать контрастность отображения символов на дисплее. Символы «земли» и пита- ния добавляют в схему, выбрав на пане- лиTERMINALS строкиGROUNDиPOWER (рис. 3). Панель открывают нажатием кнопки Terminals Mode на левой пане- ли схемного редактора. Приём информации микросхемой LM044L выполняется по 8-разрядной шине данных/команд в 8- и 4-разрядном режиме. Подача управляющих сигналов через подключённые к портам микро- контроллера ATmega16 линии выполня- ется программно. Выбор линий портов микроконтроллера для подключения к указанным выводам дисплея произво- дится разработчиком произвольно. В окне свойств буквенно-цифрово- го дисплея (окно открывают двойным щелчком левой кнопки мыши после его выделения на схеме) в поле Advanced Properties из выпадающего списка выби- рают пункт Clock Frequency – тактовая частота (рис. 4а). Её значение должно совпадать с частотой работы микро- контроллера (в нашем примере 2МГц), которую указывают в окне его свойств (рис. 4б). Для этого в поле Advanced Properties из выпадающего списка выби- рают пункт Clock Frequency и опреде- ляют соответствующее ему значение (2 МГц). Также в окне свойств микро- контроллера установим следующие параметры: ● поле CKOPT (Oscillator Options) – (1) Unprogrammed; ● поле BOOTRST (Select Reset Vector) – (1) Unprogrammed; ● поле CKSEL Fuses – (0010) Int.RC 2MHz;
RkJQdWJsaXNoZXIy MTQ4NjUy