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


Логин:
Пароль:
О сайте:

Pic.Rkniga.ru - Сайт как для начинающих, так и для опытных радиолюбителей, разрабатывающих свои устройства на популярных PIC микроконтроллерах.
Здесь можно обмениваться сообщениями на форуме, а также добавлять на сайт статьи и схемы своих устройств.

Меню сайта
Главная Форум по PIC микроконтроллерам Форум Статьи по PIC микроконтроллерам Статьи Справочная информаци по PIC микроконтроллерам Справочник Литература по PIC микроконтроллерам Литература Схемотехника Схемотехника устройств на PIC микроконтроллерах Микроконтроллеры Программаторы Все по программированию PIC микроконтроллеров Программы, Софт Программы Ссылки
Опрос

На каком языке программирования вы пишите программы?


Ассемблер
Си
Бейсик
Паскаль
Другой


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Программирование устройств на PIC микроконтроллерах » Статьи » Подключение LCD (HD44780) к микроконтроллеру PIC12F683 по трехпроводному интерфейсу
    Подключение LCD (HD44780) к микроконтроллеру PIC12F683 по трехпроводному интерфейсу
    Автор публикации: alex Просмотров: 12572 Добавлен: 7-04-2013, 11:54 Комментарии: 0

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

    Схема: подключение LCD (HD44780) к PIC12F683

         Микросхема 74HC595 содержит 8 битный регистр хранения и 8 битный сдвиговый регистр. Данные последовательно передаются в сдвиговый регистр, затем фиксируются в регистре хранения. К регистру хранения подключены 8 выходных линий. На картинке ниже показано расположение выводов микросхемы 74HC595.

    74HC595

         Сдвиговый регистр и регистр хранения имеют различные тактовые входы: SH_CP и ST_CP, соответственно. Когда на тактовом входе SH_CP появляется логическая единица, регистр считывает бит со входа данных DS и записывает его в самый младший разряд. При поступлении на тактовый вход следующего импульса, все повторяется, только бит записанный ранее сдвигается на один разряд, а его место занимает вновь пришедший бит. Когда все восемь бит заполнились и приходит девятый тактовый импульс, регистр снова начинает заполнятся с младшего разряда, и все повторятся вновь. Что бы данные появились на выходах Q0…Q7, нужно их «защелкнуть». Для этого необходимо подать логическую единицу на вход ST_CP. Что бы мы не делали с регистром, данные на выходах не изменятся пока мы вновь не «защелкнем» их.
         В нашем случае тактовые входы SH_CP и ST_CP объединены, поэтому, если нам необходимо получить 8 бит, переданных последовательно, в параллельном формате на выходе Q0…Q7, после передачи 8 бита, необходим еще один тактовый импульс, т.к. регистр хранения запаздывает на 1 тактовый импульс от регистра сдвига.
         Символьные ЖК дисплеи на базе контроллера HD44780 для управления, в общем случае, требует 14 линий ввода/вывода: 8 линий данных (D0…D7), 3 линии управления (RS, E, R/W), 3 линии питания (Vdd, Vss, Vee). Кроме того многие модели оснащены подсветкой.

    HD44780

    Аппаратная часть проекта очень простая.
    Принципиальная схема: подключение регистра сдвига к LCD модулю
    Подключение LCD HD44780 к PIC12F683

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

         Последовательные данные от микроконтроллера поступают на вывод DS (14). Вывод OE (13) подключен к общему проводнику, вывод MR (10) подключен к +5 В. Выводы параллельных данных Q0-Q3 регистра сдвига подключены к выводам данных LCD модуля D4-D7. Также вывод Q4 подключен к выводу RS управления LCD модуля. Если LCD модуль имеет встроенную подсветку, то управление ею можно осуществить по линии LED (см. схему), логическая 1 на этой линии включает подсветку.

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


         Программная часть для нашего проекта сложнее, чем аппаратная. Необходимо соблюдать последовательность операций для реализации алгоритма последовательной передачи данных и команд в регистр сдвига.
         Первый бит данных, переданный на вывод 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), которые вы будете использовать для своего микроконтроллера.

    В архиве исходный код программы для микроконтроллера

    podkllcdkmkpic.rar [2,08 Kb] (cкачиваний: 905)

    Категория: Статьи, PIC12
    « Назад
    Комментарии