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

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


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

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

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

      
   Из предыдущей статьи мы научились подключить 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)

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

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


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


УСИЛИТЕЛЬ В МАШИНУ

УСИЛИТЕЛЬ В МАШИНУ     Высококачественный автомобильный усилительный комплекс для меломанов и любителей звука погромче.

АККУМУЛЯТОРЫ НИКЕЛЕВЫЕ

АККУМУЛЯТОРЫ НИКЕЛЕВЫЕ     Обзор никель-кадмиевых аккумуляторов – преимущества и особенности работы.

ПРОСТОЙ МЕТАЛЛОДЕТЕКТОР

ПРОСТОЙ МЕТАЛЛОДЕТЕКТОР     Схема фотографии очень простого в настройке но эффективного металлодетектора.

ЖУЧОК НА КТ368

ЖУЧОК НА КТ368     Простой проверенный ФМ жучек шпиону-новичку.


» ПОИСК СХЕМ



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

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

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