Объявление

Свернуть
Пока нет объявлений.

Подключение LCD (HD44780) к микроконтроллеру PIC12F683 по трехпроводному интерфейсу

Свернуть
X
Свернуть
  •  

  • Подключение LCD (HD44780) к микроконтроллеру PIC12F683 по трехпроводному интерфейсу

    Как известно ЖК дисплей на базе контроллера HD44780 требует для управления до 6 линий ввода/вывода микроконтроллера, поэтому подключить его к микроконтроллеру с малым числом линий ввода/вывода, например PIC12F683, в стандартном 8/4-битном режиме невозможно. В этом проекте мы рассмотрим технику управления таковым ЖК дисплеем с использованием всего лишь трех линий ввода/вывода микроконтроллера. Команды управления и данные будут пересылаться последовательно в сдвиговый регистр 74HC595 (8-разрядный сдвиговый регистр с защелкой на выходе), а параллельные выходные данные с регистра поступают на LCD.
    Нажмите на изображение для увеличения.

Название:	1364862574_01.jpg
Просмотров:	416
Размер:	180.4 Кб
ID:	2924 />
    Микросхема 74HC595 содержит 8 битный регистр хранения и 8 битный сдвиговый регистр. Данные последовательно передаются в сдвиговый регистр, затем фиксируются в регистре хранения. К регистру хранения подключены 8 выходных линий. На картинке ниже показано расположение выводов микросхемы 74HC595.
    Нажмите на изображение для увеличения.

Название:	1364862574_03.jpg
Просмотров:	267
Размер:	33.4 Кб
ID:	2925 />
    Сдвиговый регистр и регистр хранения имеют различные тактовые входы: SH_CP и ST_CP, соответственно. Когда на тактовом входе SH_CP появляется логическая единица, регистр считывает бит со входа данных DS и записывает его в самый младший разряд. При поступлении на тактовый вход следующего импульса, все повторяется, только бит записанный ранее сдвигается на один разряд, а его место занимает вновь пришедший бит. Когда все восемь бит заполнились и приходит девятый тактовый импульс, регистр снова начинает заполнятся с младшего разряда, и все повторятся вновь. Что бы данные появились на выходах Q0…Q7, нужно их «защелкнуть». Для этого необходимо подать логическую единицу на вход ST_CP. Что бы мы не делали с регистром, данные на выходах не изменятся пока мы вновь не «защелкнем» их.

    Нажмите на изображение для увеличения.

Название:	1364862574_04.jpg
Просмотров:	286
Размер:	98.5 Кб
ID:	2926 />
    В нашем случае тактовые входы SH_CP и ST_CP объединены, поэтому, если нам необходимо получить 8 бит, переданных последовательно, в параллельном формате на выходе Q0…Q7, после передачи 8 бита, необходим еще один тактовый импульс, т.к. регистр хранения запаздывает на 1 тактовый импульс от регистра сдвига.
    Символьные ЖК дисплеи на базе контроллера HD44780 для управления, в общем случае, требует 14 линий ввода/вывода: 8 линий данных (D0…D7), 3 линии управления (RS, E, R/W), 3 линии питания (Vdd, Vss, Vee). Кроме того многие модели оснащены подсветкой.

    Нажмите на изображение для увеличения.

Название:	1364862574_01.png
Просмотров:	307
Размер:	84.4 Кб
ID:	2927 />

    К параллельным выходным линиям регистра сдвига подключен ЖК индикатор: выводы данных D4-D7 и вывод RS (4-битный режим работы). Такое решение потребует от микроконтроллера лишь трех линий ввода/вывода: 2 для передачи тактового сигнала и данных в регистр сдвига 74HC595 и 1 для управления индикатором (вывод E). Так как используется 4-битный режим работы, любые восемь бит (команда или данные) передаются в два этапа: сначала старший полубайт, затем передается младший полубайт.
    Стоит отметить также, что вывод управления индикатора R/W (чтение/запись) подключается к общему проводнику, вследствие чего чтение данных или состояния ЖК модуля при таком подключении невозможно. Принипиальная схема: подключение микроконтроллера к регистру сдвига и LCD модулю
    Нажмите на изображение для увеличения.

Название:	1364862574_02.png
Просмотров:	287
Размер:	52.7 Кб
ID:	2928 />
    Последовательные данные от микроконтроллера поступают на вывод DS (14). Вывод OE (13) подключен к общему проводнику, вывод MR (10) подключен к +5 В. Выводы параллельных данных Q0-Q3 регистра сдвига подключены к выводам данных LCD модуля D4-D7. Также вывод Q4 подключен к выводу RS управления LCD модуля. Если LCD модуль имеет встроенную подсветку, то управление ею можно осуществить по линии LED (см. схему), логическая 1 на этой линии включает подсветку.

    Вид монтажной платы с установленным регистром сдвига и коннекторами для подключения LCD модуля и микроконтроллера
    Нажмите на изображение для увеличения.

Название:	1364862574_02.jpg
Просмотров:	259
Размер:	127.6 Кб
ID:	2929 />

    Программная часть для нашего проекта сложнее, чем аппаратная. Необходимо соблюдать последовательность операций для реализации алгоритма последовательной передачи данных и команд в регистр сдвига.
    Первый бит данных, переданный на вывод DS регистра появится на выходе Q0 через 2 тактовых импульса (т.к. SH_CP и ST_CP объединены). Поэтому для передачи 4-х бит и сигнала RS потребуется шесть тактовых импульсов, прежде чем эти 4 бита появятся на выходных параллельных линиях регистра 74HC595.
    Когда подается питание на LCD модуль, он настроен на работу в 8-битном режиме. Для инициализации его в 4-битный режим требуется несколько команд.
    Автор составил для LCD модуля 16×2 подпрограммы работы по такой схеме подключения в компиляторе mikroC, однако пользователи могут самостоятельно изменить параметры инициализации в соответствующей функции для различных дисплеев.

    Описание подпрограмм:
    • Initialize_LCD(): инициализация дисплея для работы в 4-битном режиме, 2-строчный дисплей, размер символов 5×7, дисплей включен, курсор не отображается;
    • Write_LCD_Data(): посылка байта данных в дисплей, в текущую позицию курсора;
    • Write_LCD_Cmd(): посылка байта команды в дисплей;
    • Write_LCD_Nibble(): данные или команда посылается в дисплей как два полубайта. Эта функция отвечает именно за посылку полубайта в дисплей;
    • Write_LCD_Text(): отправка символьной строки в дисплей в текущую позицию курсора;
    • Position_LCD(): смена позиции курсора.

    Конфигурация микроконтроллера: работа от внутреннего RC осциллятора 4 МГц, MCLR отключен, WDT (сторожевой таймер) отключен. Необходимо также в программе определить сигнальные линии (Data_Pin, Clk_Pin, Enable_Pin), которые вы будете использовать для своего микроконтроллера. В архиве по данной ссылке - исходный код программы для микроконтроллера

      Возможность размещать комментарии к сообщениям отключена.

    Метки статей

    Свернуть

    Меток пока нет.

    Новые статьи

    Свернуть

    Обработка...
    X