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

» ДАТАШИТ
Например: 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)

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

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


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



ПРОИЗВОДСТВО СВЕТОДИОДОВ

ПРОИЗВОДСТВО СВЕТОДИОДОВ     Отечественный проект по созданию высокотехнологичного производства систем освещения нового поколения - светодиодных чипов, светодиодных ламп и осветительных LED систем.

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

     Переделка обычного фонарика, с лампой накаливания 2,5В - на одноваттный светодиодный.

ЭЛЕКТРОННЫЕ ЧАСЫ С СИНХРОНИЗАЦИЕЙ

ЭЛЕКТРОННЫЕ ЧАСЫ С СИНХРОНИЗАЦИЕЙ     Электронные часы с сигнальным устройством и синхронизацией точности хода по радиосигналам поверки времени.

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

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


» ПОИСК СХЕМ

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


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