Главная » Статьи » УСТРОЙСТВА НА МК |
Как известно ЖК дисплей на базе контроллера HD44780 требует для управления минимум 6 линий ввода/вывода микроконтроллера, поэтому подключить его к микроконтроллеру с малым числом портов, например Attiny13, в стандартном 8/4-битном режиме невозможно. В этой статье мы рассмотрим технику управления ЖК дисплеем с использованием всего лишь трех линий ввода/вывода микроконтроллера. Команды управления и данные будут пересылаться последовательно в сдвиговый регистр 74HC595(8-разрядный сдвиговый регистр с защелкой на выходе), а параллельные выходные данные с регистра поступают на LCD. Символьные ЖК дисплеи на базе контроллера HD44780 требуют 14 выводов для управления: 8 линий данных (D0…D7), 3 линии управления (RS, E, R/W), 3 линии питания (Vdd, Vss, Vo). Кроме того многие модели оснащены подсветкой. К параллельным выходным линиям регистра сдвига подключен ЖК
индикатор: выводы данных D4-D7 и выводы E и RS (4-битный режим работы).
Такое решение потребует от микроконтроллера лишь трех линий
ввода/вывода: Так как используется 4-битный режим работы, любые восемь бит (команда или данные) передаются в два этапа: сначала старший полубайт, затем передается младший полубайт. Стоит отметить также, что вывод управления индикатора R/W (чтение/запись) подключается к общему проводнику, вследствие чего чтение данных или состояния ЖК модуля при таком подключении невозможно. Практическим примером такого решения является двухканальный вольтметр (0 - 25V) на микроконтроллере Attiny13 с выводом данных на ЖК дисплей. При подключении дисплея через регистр у контроллера остается как раз две свободных линии, воспользуемся этим и подключим к ним два канала АЦП. Микроконтроллер работает от внутреннего тактового генератора частотой 9,6MHz. Этот вольтметр не является образцовым, но обладает достаточно хорошей точностью измерения напряжения. Схема вольтметра показана на рисунке ниже: В управляющей программе используются две функции для общения микроконтроллера и дисплея: Чтение АЦП производится с помощью функции readADC(unsigned char ch), переменная ch
определяет номер используемого канала АЦП. В бесконечном цикле уже
преобразованное значение АЦП раскладываем на целое значение и значение
после запятой. Полный текст программы показан ниже:
Файлы:
Источник: http://radioparty.ru/index.php/prog-avr/program-c/472-lesson-74hc595-hd44780 | |||||||
Просмотров: 7152 | | |
Всего комментариев: 0 | |