Подключение светодиодного матричного индикатора к микроконтроллеру PIC » Программирование устройств на PIC микроконтроллерах


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

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

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

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


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


Последние материалы
  • Тестовая плата для отладки программ на микроконтроллере PIC18F4550
  • Кнопка On/OFF на PIC12F629.
  • Часы с синхронизацией от китайского будильника
  • ШИМ регулятор на PIC16F628A.
  • Счетчики прямого и обратного счета на PIC16F628A.
  • Таймер отключения питания для мультиметра и не только.
  • Измеритель напряжения и тока
  • Маршрутный компьютер для электровелосипеда
  • Простой двухканальный термометр на PIC16F690 и датчиках DS18B20
  • Электронная "Незабудка" для забывчивых
  • Популярные материалы
    Случайная книга
    Программирование устройств на PIC микроконтроллерах » Статьи » Подключение светодиодного матричного индикатора к микроконтроллеру PIC
    Подключение светодиодного матричного индикатора к микроконтроллеру PIC
    Автор публикации: alex Просмотров: 9112 Добавлен: 23-05-2013, 13:33 Комментарии: 0

         Матричные светодиодные индикаторы находят широкое применение в устройствах отображения информации, т.к. позволяют отображать статический и анимированный текст и графику. Вы, наверное, сталкивались с такими большими информационными табло на автомобильных заправочных станциях, в общественных местах, на автодорогах, которые отображали информацию различного характера.

    Подключение матричного индикатора к микроконтроллеру PIC

         В статье мы рассмотрим базовые моменты подключения монохромного матричного индикатора к микроконтроллеру с целью отображения на нем статических символов.
         Для решения нашей задачи мы использовали отладочную плату StartUSB for PIC с установленным микроконтроллером Microchip PIC18F2550, однако пользователи могут использовать любой микроконтроллер с достаточным количеством линий ввода/вывода для управления индикатором.

    StartUSB for PIC

         Использование платы StartUSB обусловлено простотой ее использования, т.к. она подключается непосредственно к USB интерфейсу и для программирования микроконтроллера не требуется внешнего программатора.

    Принципиальная схема отладочной платы StartUSB

         Матричный индикатор представляет собой массив светодиодов, объединенных в один корпус. Размеры массива обычно составляют 4×4, 5×7, 5×8 или 8×8 точек. Каждая точка может быть сформирована одним, двумя или тремя светодиодами различного цвета. Множество светодиодов объединены в столбцы и строки. Это сделано с целью сокращения количества выводов для управления. Например, для матричного индикатора 8×8 (см. рисунок ниже) требовалось бы 64 линии ввода/вывода, одна для каждого светодиода. Соединением всех анодов в рядах (R1-R8) и катодов в столбцах (C1-C8), необходимое количество выводов управления сокращаеся до 16. На рисунке ниже, если на R4 появится высокий уровень и на C3 – низкий уровень, то светодиод в четвертом ряду и третьем столбце будет светиться. Символы на таком индикаторе отображаются динамически, т.е. мы будем быстро переключать столбцы для отображения символа.

    Матричный светодиодный индикатор

         Матричный светодиодный индикатор, используемый в нашем проекте, имеет размер 5×7, и мы узнаем как отображать на нем стандартные символы разрешением 5×7. На рисунке ниже отображено, какие светодиоды должны быть включены для отображения буквы английского алфавита «A». Семь строк и пять столбцов управляются микроконтроллером. Теперь рассмотрим в деталях, как это работает.

    Подключение матричного светодиодного индикатора к микроконтроллеру

         Для отображения символа «A» сначала мы выберем первый столбец С1 (это означает, что в нашем случае на С1 мы подадим низкий уровень) и отключим все оставшиеся (подадим на С2-С5 высокий уровень). Теперь у нас активен первый столбец и необходимо включить светодиоды в строках R2-R7 подав на них напряжение высокого уровня. Далее, нам нужно сделать активным столбец C2 и включить светодиоды в строке R1 и R5 и так далее. Таким образом, перебирая очень быстро столбцы (более 100 раз в секунду) и включая соответствующие светодиоды для каждого отдельного столбца, мы увидим статическое изображение символа.

    Вывод символа на матричный светодиодный индикатор

         Таблица ниже демонстрирует, какие должны быть логические уровни на выводах столбцов и строк для отображения символа «A».

    Таблица логических состояний для управления матричным индикатором

         Следует отметить, что для управления столбцами индикатора потребуются ключи на транзисторах, т.к. линия ввода/вывода микроконтроллера не может обеспечить протекание большого тока (заметьте одновременно могут быть включены 7 светодиодов). С этой целью применяется драйвер ULN2003A, который имеет семь составных транзисторов. Активное состояние входа драйвера – высокий уровень. На рисунке ниже изображено расположение выводов микросхемы и схема одного канала.

    Расположение выводов микросхемы ULN2003A и схема одного канала

    Примечание. Выборки исходного кода, размещенные в тексте описания, использовать в своих проектах не рекомендуется. В конце описания имеется ссылка на архив с полным исходным кодом к проекту.

         Схема подключения индикатора и драйвера к микроконтроллеру очень проста. Нам потребуется семь резисторов номиналом 300 Ом, которые включаются в цепи строк R1-R7 для ограничения тока через светодиоды. Управление строками осуществляется выводами RB0-RB6 микроконтроллера. Столбцы индикатора подключаются к выходам драйвера ULN2003A. Соответствующие входы управления драйвера подключаются к порту RA0-RA4 микроконтроллера. Таким образом, микроконтроллер может переключать столбцы индикатора, записывая в порт соответствующие биты. Например, установив бит RA0 (лог. 1) и сбросив биты RA1-RA4 (лог. 0), мы сделаем активным первый столбец индикатора. Между перключениями столбцов микроконтроллер должен выдержать паузу около 1 мс. Для каждого столбца, необходимо вывести соответствующее значение в порт B, чтобы включить нужные светодиоды в столбце. Переключение между столбцами происходит довольно быстро, поэтому человеческий глаз этого не замечает, и мы видим статическое изображение.

    Схема подключения индикатора и драйвера к микроконтроллеру (отладочной плате)

    Схема подключения матричного индикатора к микроконтроллеру

         Главная часть нашего проекта – программа микроконтроллера, осуществляющая вывод символов на индикатор. Программа осуществляет переключение столбцов и вывод соответствующих данных в строки в определенные моменты времени. Данные, которые должны выводиться в порт B, могут быть определены в RAM микроконтроллера или в программе, если объема встроенной RAM недостаточно. В компиляторе mikroC переменные сохраняются в RAM, а константы сохраняются в памяти программ. В случае, если памяти RAM микроконтроллера не хватает, пользователь может определить массив констант в памяти программ.
         В mikroC мы определим каждый символ с разрешением 5×7 (буквы английского алфавита A-Z, пользователи могут самостоятельно подготовить эти данные в соответствии со своими нуждами)
    unsigned short Alphabets[130]=
    {
    0x7e, 0x09, 0x09, 0x09, 0x7e, // A
    0x7f, 0х49, 0х49, 0х49, 0х36, // B
    0x3e, 0х41, 0х41, 0х41, 0х22,
    0x7f, 0х41, 0х41, 0х22, 0x1c,
    0x7f, 0х49, 0х49, 0х49, 0х63,
    0x7f, 0х09, 0х09, 0х09, 0х01,
    0x3e, 0х41, 0х41, 0х49, 0x7a,
    0x7f, 0х08, 0х08, 0х08, 0x7f,
    0х00, 0х41, 0x7f, 0х41, 0х00, // I
    0х20, 0х40, 0х41, 0x3f, 0х01,
    0x7f, 0х08, 0х14, 0х22, 0х41,
    0x7f, 0х40, 0х40, 0х40, 0х60,
    0x7f, 0х02, 0х04, 0х02, 0x7f,
    0x7f, 0х04, 0х08, 0х10, 0x7f,
    0x3e, 0х41, 0х41, 0х41, 0x3e,
    0x7f, 0х09, 0х09, 0х09, 0х06,
    0x3e, 0х41, 0х51, 0х21, 0x5e,
    0x7f, 0х09, 0х19, 0х29, 0х46,
    0х46, 0х49, 0х49, 0х49, 0х31, // S
    0х01, 0х01, 0x7f, 0х01, 0х01,
    0x3f, 0х40, 0х40, 0х40, 0x3f,
    0x1f, 0х20, 0х40, 0х20, 0x1f,
    0x3f, 0х40, 0х30, 0х40, 0x3f,
    0х63, 0х14, 0х08, 0х14, 0х63,
    0х07, 0х08, 0х70, 0х08, 0х07,
    0х61, 0х51, 0х49, 0х45, 0х43 // Z
    }
    А также данные специальных символов, которые сохраняются в программе
    const unsigned short characters[30]=
    {
    0х24, 0x2A, 0x7f, 0x2A, 0х12, // $ 
    0х08, 0х14, 0х22, 0х41, 0х00, // <
    0х41, 0х22, 0х14, 0х08, 0х00, // > 
    0х14, 0х14, 0х14, 0х14, 0х14, // =
    0х36, 0х49, 0х55, 0х22, 0х50, // &
    0х44, 0x3c, 0х04, 0x7c, 0х44, // PI
    };

    Демонстрация работы индикатора


    В архиве Исходный код демонстрационной программы (последовательное отображение букв и символов на индикаторе)

    ledmatrix.rar [28,63 Kb] (cкачиваний: 304)

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