простые и интересные  РАДИОСХЕМЫ сделанные своими руками

» ДАТАШИТ
Например: TDA2050


» РАДИОБЛОГИ
Цветомузыка на микросхеме индикаторе уровня
Генератор импульсов на микросхеме К174ХА11
Реставрация лабораторного БП
Зарубежные схемы FM трансмиттеров
Почему светодиоды надо питать током?
Последнее интервью Никола Теслы
Керамические конденсаторы К10-83
Использование старых спутниковых тюнеров
Шуруповёрт: вторая жизнь
Генератор импульсов с независимой регулировкой длительности и скважности

Радиосхемы » Устройства на микроконтроллерах

ПОДКЛЮЧЕНИЕ ДИСПЛЕЯ К МИКРОКОНТРОЛЛЕРУ

      
   На сей раз хочу вам рассказать как подключить дисплей от мобильного телефона Nokia 1202 к микроконтроллеру Atmega8. Программируем в среде CodeVision. Кое где могу и ошибаться. Сам только не давно разобрался что к чему. Опыта в программировании не имею и библиотеки для работы с дисплеем писал не я. Они скопированы с одного проекта в интернете. Там прописаны все нужные функции и есть шрифт 5*8 латинские буквы и кириллица. Есть так же пару символов 12*16 и 24*32, которые использовал автор библиотек в своем устройстве. Если их удалить, то шрифт 5*8 будет занимать около 700 байт флеша микроконтроллера. Поэтому микроконтроллер для проекта надо брать "пожирней”. В моем случае использована Atmega8. Вполне достаточно. Все файлы - исходники, библиотеку и так далее, качаем здесь.

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



Принципиальная схема подключения ЖК дисплея к МК

   Нарисовал схему подключения. Для питания дисплея нужно напряжение 3,3V. Если запитывать микроконтроллер от 5V, то ставим резисторные делители и микросхему 78L33. В случае питания всей схемы от 3,3V резисторные делители не нужны. Вроде Atmega8A может работать от 3,3V при условие, что частота не выше 8 МГц. Лично я не пробовал. У меня все собрано на отладочной плате с питанием от 5V. Перед самим дисплеем ставить по питанию электролит большой емкости ни в коем случае не надо. В самом начале работы контроллер подает на дисплей команды инициализации. Для заряда конденсатора нужно время. Пока он зарядится и дисплей начнет работать пройдет некоторое время, и команды инициализации он не получит. Конечно это миллисекунды, но в даном случае эффект ощутим. 

Схема распиновки дисплея нокиа

Схема распиновки дисплея

   У дисплея Nokia 1202 9-ти битный SPI интерфейс. У выбранного нами микроконтроллера такой роскоши нет. По этому для связи с дисплеем мы используем не аппаратный, а программный SPI, так сказать "ногодрыг”. Как создавать новые проекты в CodeVision рассказывать не буду - думайте сами. Скажу только, что все выводы PORTB надо настроить на выход. В настройках проекта нужно поставить галочку на "Store Global Constants in FLASH Memory”. Данное действие нужно для того, чтоб массивы шрифтов и наших картинок хранились во флеше.


   Итак, проект мы создали. Выбрали микроконтроллер, задали тактовую частоту, настроили проект. Что дальше? А дальше нужно добавить библиотеки для работы с дисплеем и библиотеки задержек. Распаковываем архив. Там есть два файла. Их нужно скопировать в определенные папки. Надеюсь CodeVision вы установили прямо на диск C:\. Если да, то файлы копируем по соответствующим путям:

 C:\cvavreval\inc для файла 1100.inc, и
 C:\cvavreval\lib для файла 1100.h . 

назначение пинов микроконтроллера можно изменять

   Еще хочу сказать, что назначение пинов микроконтроллера можно изменять в файле 1100.h. Тогда и схема подключения изменится. Начинаем кодить. Просто выведем какую-то надпись на дисплей основным шрифтом 5*8. В самом начале добавим библиотеки.

 #include < 1100.h> // библиотека дисплея
 #include <delay.h> // библиотека задержек


   В самом низу до основного цикла while(1){} делаем инициализацию дисплея и его очистку.

 lcd_init(); // инициализация дисплея
 lcd_clear(); // очистка дисплея


   Нашу надпись поставим так же до основного цикла. Пусть сперва контролер выведет послание на дисплей, а после крутится в основном цикле. Пишем вот это:

 print_string("Выводим надпись",5,0);
 print_string("Какую сами хотим",0,1);
 print_string("БУХАРЬ",10,2);


   Думаю здесь все понятно. Первая цифра – координата по оси x на дисплее. Она может принимать значение от 0 до 96. Вторая – строка. Она от 0 до 7. В принципе там помещается 8 с половиной строк, но на пол строки мы читать не будем. Компилируем и прошиваем. Смотрим результат. Можно так же установить Proteus, и протестировать в нем. Контроллер можно настроить для работы от внутреннего генератора на частоту заданную в проекте с задержкой при старте 64 мсек. Добавляю архив с скомпилированным проектом. Частота 8 Мгц.

Пример ПОДКЛЮЧЕНИЕ ДИСПЛЕЯ К МИКРОКОНТРОЛЛЕРУ

   Но как уже писал в начале, в библиотеке есть еще и другие символы. Правда там нет букв, а только цифры. Теперь немного усложним задачу. Пусть надпись не будет инертной, а изменяется. Допустим считает от 0 до 9 с интервалом в 1 секунду. Когда дойдет до 9, после обнулится и снова наново. Возьмем цифры большие размером 24*32. Ну чтож приступим. Можно взять предыдущий проект и удалить три строки "print_string”. Сразу после добавления библиотек объявим некую глобальную переменную m.

 char m = 0;

   Можно и просто написать:

 char m;

   В даном случае ей автоматически присвоится значение 0. В основном цикле пишем вот это:

  char_24_32(m,35,2); //функция вывода символа 24*32 
  delay_ms(1000); // ждем 1 секунду
  m++; // добавляем 1 к переменной m
  if(m>9)m=0; // Условие. Если переменная m больше 9, то m равняется 0.

Снял небольшое видео работы программы


   В следующей статье попробую рассказать как рисовать картинки и выводить их на экран дисплея. Как создавать массивы и функции к их выводу и как инвертировать изображение. Библиотеки позаимствовал с сайта cxem.net. Материал подготовил Бухарь.

   Форум по микроконтроллерным схемам

   Обсудить статью ПОДКЛЮЧЕНИЕ ДИСПЛЕЯ К МИКРОКОНТРОЛЛЕРУ


Схемы наши, лайки ваши - всё по честному :)


ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ

ТЕРМОМЕТР НА МИКРОКОНТРОЛЛЕРЕ     Схема, фотографии и файлы прошивки простого самодельного термометра на микроконтроллере PIC16F84.

АЭРОСЪЁМКА С МУЛЬТИКОПТЕРА

АЭРОСЪЁМКА С МУЛЬТИКОПТЕРА     Продолжаем знакомство с интереснейшим летающим устройством - мультикоптер.

САМОДЕЛЬНЫЙ СВЕТОДИОДНЫЙ ФОНАРЬ

САМОДЕЛЬНЫЙ СВЕТОДИОДНЫЙ ФОНАРЬ     Конструкция и фотографии самодельного светодиодного фонарика, изготовленного на основе преобразователя для мобильника.

УПРАВЛЕНИЕ НАСОСОМ

УПРАВЛЕНИЕ НАСОСОМ     Схема и фото самодельного блока управления насосом на микроконтроллере ATtiy2313.


» ПОИСК СХЕМ



» РАДИОЭЛЕМЕНТЫ

» МИКРОНАУШНИКИ

Группа вконтакте Канал ютуб Группа в фэйсбук Мобильная версия © 2010-2016, "Радиосхемы". Все права защищены. Почта