Крупные цифры на текстовом ЖКИ

Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Ответить
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Крупные цифры на текстовом ЖКИ

Сообщение WildCat »

Доброго времени суток, товарищи. Схожая тема про вывод графики на текстовый ЖКИ уже обсуждалась, однако сейчас возникла конкретная задача.
Нужно сделать электронные часы. Схема примитивная, на одной аврке. функции по мелочам - календари, будильники с музыкой сменной - это я уже продумал что и как. Возникает одна проблема. Вследствие ограничения в материалах, а так же просто ТЗ так велело, вывод нужно делать на простой текстовый ЖКИ 16*2. Все бы ничего, но вот если просто выводить цифры, они жутко мелкие получаются. Вот я и думаю, как бы научить индикатор всего в 2 строки выводить символами псевдографики хотя бы 4 большие цифры. Даже псу понятно, что одним черным блоком тут не обойтись. Но какие дополнительные 8 символов можно придумать, чтобы выводить качественые читаемые цифры для времени?
Реклама
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18881
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Где-то в примерах от CodeVisionAVR видел, как делать графику для отдельного блока (просто включая нужные пиксели). Наверное можно сделать по 4 таких блока на каждую цифру (может в виде массивов?) и затем выводить на дисплей.
Если получится, то можно будет выводить большие, качественные цифры, только наверное памяти будет нехило занимать такая прога.
Реклама
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Сообщение WildCat »

да не, про подгрузку и включение пикселей я то знаю. Я просто придумать не могу, как должны эти фрагменты выглядеть, и как вывести их сразу больше 8? Динамическую индикацию тут особо не сделать.
Кста пишу на баскоме, с кодевижном - только если пальцем покажете, где все лежит :(
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

Вот этот самый пример.

По поводу памяти - нет, всего 8 байт на одно знакоместо потратиться + небольшой код по загрузке символа из флеша в RAM индикатора. Для какой-нибудь меги8 еще дохрена ресурсов останется. И на часики и на календарь хватит(при разумном кодинге конечно).
Вложения
lcd.txt
(1.45 КБ) 498 скачиваний
Реклама
Эиком - электронные компоненты и радиодетали
Radan
Мучитель микросхем
Сообщения: 465
Зарегистрирован: Ср июн 21, 2006 08:24:32
Откуда: Лисичанск
Контактная информация:

Сообщение Radan »

Посмотри здесь как идею - http://www.mcselec.com/index.php?option ... &Itemid=57
Реклама
Аватара пользователя
nds
Друг Кота
Сообщения: 4751
Зарегистрирован: Вс май 25, 2008 19:47:47
Откуда: РФ
Контактная информация:

Сообщение nds »

если делать один символ из двух то можно например так Изображение
2B OR NOT 2B = FF
Реклама
Аватара пользователя
WildCat
Собутыльник Сэра Мурра
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Сообщение WildCat »

nds
Кошерно. То, что нужно. Только все линии, кроме той, что между строками, можно наверное сделать в два ряда пикселей, чтоб жирнее выглядело. Как раз 7 символов занимает!
А та ссылка как раз про этот вариант. Только дисплей у нас в два раза меньше :)
Аватара пользователя
Секретный кот
Поставщик валерьянки для Кота
Сообщения: 2106
Зарегистрирован: Ср сен 17, 2008 14:32:15
Откуда: Старые Васюки
Контактная информация:

Сообщение Секретный кот »

Рваные какие цифры будут, вроде крупные а читаемость не особо :(
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18881
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

uk8amk писал(а):Вот этот самый пример.
Подскажите, как сделать, чтобы выводился не один рисунок, а несколько и в нужном порядке. Я сделал несколько цифр, но выводить нужные не получается. Тоесть они выводятся, но непоймёшь как и иногда искажённые.
Не пойму, за что отвечают вот эти строчки?
void define_char(byte flash *pc,byte char_code)
{
byte i,a;
a=(char_code<<3)|0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);
}

И вот тут, что обозначает ноль:
lcd_putchar(0);
и тут:
define_char(char0,0);
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Сообщение uk8amk »

SeregaT писал(а):
uk8amk писал(а):Вот этот самый пример.
Подскажите, как сделать, чтобы выводился не один рисунок, а несколько и в нужном порядке. Я сделал несколько цифр, но выводить нужные не получается. Тоесть они выводятся, но непоймёшь как и иногда искажённые.
Не пойму, за что отвечают вот эти строчки?
void define_char(byte flash *pc,byte char_code)
{
byte i,a;
a=(char_code<<3)|0x40;
for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);
}

И вот тут, что обозначает ноль:
lcd_putchar(0);
и тут:
define_char(char0,0);
Ну тебе нужно просто сделать функцию которую ты будешь кормить симфволом/цифрой, а она по своей логике будет переводить эти символы в эти рисунки и вызывать функцию отправки рисунков на ЖКИ

по коду:
1.записать в RAM индикатора рисунок символа
2.вывести букву/символ №0 (по ASCII коду)
3.скормить изображение символа по массиву char0 и назначить ему код №0
Аватара пользователя
C@at
Вымогатель припоя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

Re: Крупные цифры на текстовом ЖКИ

Сообщение C@at »

Понимаю что тема старая, Но что поделать , у меня например только "проснулся" интерес, к этим большим цИфрам...
Наработки у людей по этому поводу есть...
Вот пример двух шрифтов
СпойлерИзображение
Изображение Изображение

Это взял здесь http://forum.chipmk.ru/index.php/topic/ ... C-hd44780/


Изображение


Изображение

А это здесь http://flank1er.blogspot.com/2013/01/lua_20.html
Только не пойму как это собрать в массив и отображать на экране.

Это начало такому проекту, вывел ноль с помощью символов.
Спойлер

Код: Выделить всё

 #include <mega8.h>
#asm
   .equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>
typedef unsigned char byte;
/* table for the user defined character
   arrow that points to the top right corner */
flash byte chara[]={
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111
};
flash byte charb[]={
0b1111111,
0b1111111,
0b1111111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111
};
flash byte charc[]={
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b0000111,
0b1111111,
0b1111111,
0b1111111
};
/* function used to define user characters */
                              void define_char(char flash *pc,unsigned char char_code)  //
                              { char ir,ar; ar=(char_code<<3) | 0x40;
                              for (ir=0; ir<8; ir++) lcd_write_byte(ar++,*pc++);  };  

void main(void)
{
/* initialize the LCD for 2 lines & 16 columns */
lcd_init(16);

/* define user character 0 */
define_char(chara,1);
define_char(charb,2);
define_char(charc,3);
/* switch to writing in Display RAM */

while (1)
      {   /* loop forever */   
lcd_gotoxy(0,0);
  lcd_putsf("\x01\x02");     

lcd_gotoxy(0,1);
  lcd_putsf("\x01\x03");     

      }
}
Теперь в массивы и на экран , вот тут и ничего не понятно...
Аватара пользователя
Microtech
Поставщик валерьянки для Кота
Сообщения: 2052
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Откуда: Москва
Контактная информация:

Re: Крупные цифры на текстовом ЖКИ

Сообщение Microtech »

Хорошо получилось. Я тоже делал симпатичные шрифты, со скруглёнными уголками. Но надо искать, возможно, где-то осталась эта заготовка. Делал для 4х строчного ЖКИ.
Ответить

Вернуться в «Умные мысли»