Современная электроника №2/2022
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 49 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2022 ● вывести значение байта данных на линии шины D0…D7. Последовательность действий, кото- рые необходимо выполнить управляю- щей схеме при совершении операции записи в 4-разрядном режиме, может быть следующей: ● установить значение линии RW=0 (запись в микросхему LM044L); ● установить значение линии RS=0 (приём команд); ● вывести значение старшего полубай- та 0010 команды 00100000 на линии шины D4…D7 (установка разрядно- сти шины); ● вывести значение старшего полубай- та 0000, а затем младшего полубай- та 1111 команды 00001111 на линии шины D4…D7 (команда включения дисплея); ● вывести значение старшего полубай- та 0000, а затем младшего полубайта 0001 команды 00000001 на линии ши- ны D4…D7 (очистка дисплея и уста- новка курсора в нулевую позицию); ● установить значение линии RS=1 (приём данных); ● вывести значение старшего полубай- та данных, а затем младшего полубай- та данных на линии шины D4…D7. Принаписаниикода программынеоб- ходимо учитывать, что по умолчанию микросхема LM044L работает в 8-раз- рядномрежиме, поэтому первуюкоманду 00100000 (установка 4-разрядногорежи- ма) необходимоподать нашину данных/ команд с учётом того, что информация будет передана за один такт. Так как в 4-разрядномрежимемыне имеемдосту- па к выводамD0…D3микросхемыLM044L и управляющийбит находится в старшем полубайте (0010) команды(00100000), то младший полубайт (0000) на шину дан- ных/командD0…D7 выводить не нужно. После записикода 0010 в регистр команд микросхема LM044L будет переведена в 4-разрядный режим работы, и дальней- шаяпередачаинформациибудет выпол- няться через выводыD4…D7. Необходимо учитывать, что большин- ство операций, выполняемых контрол- лером микросхемы LM044L, занимают значительное время, около 40 мкс, а вре- мя выполнения некоторых доходит до единиц миллисекунд. Поэтому в про- грамме управления жидкокристалличе- скиммодулем совершениюлюбой опе- рации должныпредшествовать команды задержки, которые можно организовать с помощью функции delay_ms( ), где в скобках указывается время задержки в мс. Также необходимо обеспечитьфор- мирование тактового сигнала на линии Е микросхемы LM044L. Сделать этомож- но программно, посредствомчередова- ния подачи значений нуля и единицы. На языке программирования С эти действия можно реализовать следую- щим образом: ● для 8-разрядного режима работы: PORTC &=~ (1<<4); // RS=0 (при- ём команд) e ( ); PORTD=0b00001111; // вклю- чение дисплея e ( ); PORTD=0b00110100; // уста- новка 8-разрядной шины e ( ); PORTD=0b00000001; // очист- ка дисплея и установка курсора в нулевую позицию while(1) { e ( ); PORTC |= 1<<4; } // RS=1 (приём данных) ● для 4-разрядного режима работы: PORTC &=~ (1<<4); // RS=0 (при- ём команд) e ( ); PORTD=0b00100000; //уста- новка 4-разрядной шины // команда включения дисплея 00001111 e ( ); PORTD=0b00000000; //стар- ший полубайт 0000 кода 00001111 e ( ); PORTD=0b11110000; //млад- ший полубайт 1111 кода 00001111 //команда очистки дисплея и уста- новки курсора в нулевую позицию 00000001 e ( ); PORTD=0b00000000; //стар- ший полубайт 0000 кода 00000001 e ( ); PORTD=0b00010000; //млад- ший полубайт 0001 кода 00000001 while(1) { e ( ); PORTC |= 1<<4; } // RS=1 (приём данных) В данном примере для переда- чи команд/данных используется порт РD микроконтроллера. Для передачи управляющих сигналов задействован ещё один порт – РС. Функция e ( ); обеспечивает фор- мирование тактового сигнала на линии Е дисплея. Рис. 4. Окно свойств: (а) буквенно-цифрового дисплея LM044L, (б) микроконтроллера ATmega16 б а
RkJQdWJsaXNoZXIy MTQ4NjUy