СОЗДАНИЕ СИМВОЛОВ И ВЫВОД ИХ НА ДИСПЛЕЙ

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

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


» РАДИОБЛОГИ
Ремонт колёсиков туристического чемодана
Светофор размером с пятирублёвую монету
Установка для травления печатных плат.
Электромагнитная защелка
УФ излучатель для экспонирования фоторезиста. Вариант 2.
Простой прибор для прозвонки проводов
Как на заводе разбирают Айфоны
Стабилизатор тока светодиодов с малым падением напряжения


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

СОЗДАНИЕ СИМВОЛОВ И ВЫВОД ИХ НА ДИСПЛЕЙ

      
   Из предыдущей статьи мы научились подключить LCD дисплей к микроконтроллеру и выводить на него символы из имеющегося массива. Теперь попробуем разобраться как создавать свои массивы с символами и писать функции для вывода их на дисплей. Начнем с того, что разрешение нашего дисплея 96x68 пикселей. Значит картинку большего разрешения вывести ми не сможем. Теперь нам надо из рисунка сделать массив. Для этой цели есть много разных программ. Мы будем пользоваться Image generate. Она находится в архиве. Кому она не нравится, тот может погуглить и найти множество других.

Скриншот картинки в программе

Скриншот картинки в программе

   Итак, запускаем программу. Устанавливаем размер картинки по осям x, y. Максимальное значение x = 96, а по оси y = 68. Меньше эти цифры могут быть, но никак не больше. Дальше, масштаб выберем 8. У кого очень зоркий глаз, или большой монитор, эту величину может не трогать. После установки размера и масштаба жмем на иконку «Новый», или «Установить новый размер». Выберем размер 96x64. Далее можно нажать на иконку «Картинка», и загрузить точечный рисунок в формате «bmp», или нарисовать с помощью мышки свой. Нарисуем свой рисунок. Конечно художник из меня плохой, но как есть. Нарисовал дом и автомобиль. Дом скорей похож на туалет :-) Дальше жмем иконку «Массив». Видим кучу всяких цифр. Копируем их в наш проект. Изменим название массива на deg_96_64. Это сделано для удобства. Сразу понятно какой размер картинки. Теперь надо как то вывести ее на дисплей. Для этого напишем функцию вывода под данное распределение.

/////////////////////////

void char_96_64 (char x, char y){

unsigned int i;
gotoxy(x,y);
for ( i = 0; i < 96; i++ )
{
lcd_write(DATA,deg_96_64[i]);
}

gotoxy(x,y+1);
for ( i = 96; i < 192; i++ )
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+2);
for ( i = 192; i < 288 ; i++ )
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+3);
for ( i = 288; i < 384 ; i++ )
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+4);
for ( i = 384; i < 480; i++ )
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+5);
for ( i = 480; i < 576; i++ )
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+6);
for ( i = 576; i < 672; i++ )
{
lcd_write(DATA,deg_96_64[i]);
}
gotoxy(x,y+7);
for ( i = 672; i < 768; i++ )
{
lcd_write(DATA,deg_96_64[i]);
}

}

////////////////////////////

СОЗДАНИЕ СИМВОЛОВ И ВЫВОД ИХ НА ДИСПЛЕЙ - нормальное

Нормальное изображение

   Теперь попробую разъяснить что к чему. В самом начале название самой функции. Дальше запомним два числа – значение по оси x = 96, и цифру в массиве в квадратных скобках [768]. Зададим локальную переменную unsigned int i ; . Потом укажем координаты на экране для вывода одной строки. В цикле for зададим значение переменной I=0; i<96;i++. Это означает, что мы будем читать поочередно значения из массива от 0 до 96 и выводить их на дисплей функцией  

lcd_write(DATA,deg_96_64[i]);

   Дальше начнем с другой строки заново. Только теперь от 96 до 192. К оставшемуся числу добавляем значение по оси x. В данном случае это 96. Дальше третья строка и так далее. Так же с каждой новой функцией gotoxy(x,y); увеличиваем значение y. Думаю здесь все понятно.

СОЗДАНИЕ СИМВОЛОВ И ВЫВОД ИХ НА ДИСПЛЕЙ - инвертированное

Инвертированное изображение

   Теперь узнаем как инвертировать изображение. То есть сделать не закрашенные участки закрашенными, и наоборот. Нам надо с помощью блокнота открыть файл библиотеки дисплея 1100.lib, и найти функцию void lcd_init(void). Найти в ней строки:

//lcd_write(CMD,0xa7); //- invert display

lcd_write(CMD,0xa6); //- normal display (non inverted)

   Ненужную строку закомментировать и еще раз скомпилировать проект. Все исходники и функция вывода - тут. А теперь займёмся практической конструкцией - электронными часами с ЖК. Если возникнут вопросы, то обращайтесь на форум. Материал подготовил Бухарь.

   Обсудить статью СОЗДАНИЕ СИМВОЛОВ И ВЫВОД ИХ НА ДИСПЛЕЙ


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



РЕМОНТ ОХЛАЖДЕНИЯ НОУТБУКА

     Описание ремонта системы охлаждения ноутбука - исчезло питание кулера.

СТРЕЛОЧНЫЙ ИНДИКАТОР ЗВУКА

     Схема и фото проверенного стрелочного индикатора звукового сигнала, на основе микросхемы 157ДА1.

ВЫБОР ДЕТАЛЕЙ ЭЛЕКТРОШОКЕРА

ВЫБОР ДЕТАЛЕЙ ЭЛЕКТРОШОКЕРА     Рассматриваем грамотный выбор необходимых деталей для изготовления шокеров.

ЛАМПЫ СВЕТОДИОДНЫЕ ЭНЕРГОСБЕРЕГАЮЩИЕ

ЛАМПЫ СВЕТОДИОДНЫЕ ЭНЕРГОСБЕРЕГАЮЩИЕ     Проблемы эксплуатации и утилизации люминисцентных энергосберегающих ламп и переход на светодиодные.


» ПОИСК СХЕМ

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


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