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

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


» РАДИОБЛОГИ
Тритиевые батареи
Стабилизатор тока для светодиодов двух выводной
Литий-ионные аккумуляторы стандарта 21700 (2170)
Беспроводной осциллограф из смартфона
Рекорд эффективности светодиодов от Nichia
Совет по заработку для радиолюбителей
Звуковой модуль для игрушек
Сбербанк Онлайн или как «не остаться без штанов»
Как я делал Гаусс-ган, а получился шокер
Цветомузыка на микросхеме индикаторе уровня

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

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

      
   На сей раз хочу вам рассказать как подключить дисплей от мобильного телефона 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. Материал подготовил Бухарь.

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

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


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


УЛЬТРАЗВУКОВОЙ ОТПУГИВАТЕЛЬ КОМАРОВ

УЛЬТРАЗВУКОВОЙ ОТПУГИВАТЕЛЬ КОМАРОВ     Схема и фотографии мощнейшего ультразвукового отпугивателя.

ИЗГОТОВЛЕНИЕ ПРИБОРНЫХ ПАНЕЛЕЙ

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

ПРОСТОЙ САМОДЕЛЬНЫЙ МЕТАЛЛОИСКАТЕЛЬ

ПРОСТОЙ САМОДЕЛЬНЫЙ МЕТАЛЛОИСКАТЕЛЬ     Делаем простейший металлоискатель всего на двух транзисторах.

АККУМУЛЯТОРНАЯ ЗАРЯДКА

АККУМУЛЯТОРНАЯ ЗАРЯДКА     Предлагаем вашему вниманию проверенную схему зарядки для никель-кадмиевых аккумуляторов, собранную на микроконтроллере АТtiny.


» ПОИСК СХЕМ


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

» ТРЕКЕР GPS



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