Страница 1 из 1
Крупные цифры на текстовом ЖКИ
Добавлено: Чт апр 02, 2009 22:34:00
WildCat
Доброго времени суток, товарищи. Схожая тема про вывод графики на текстовый ЖКИ уже обсуждалась, однако сейчас возникла конкретная задача.
Нужно сделать электронные часы. Схема примитивная, на одной аврке. функции по мелочам - календари, будильники с музыкой сменной - это я уже продумал что и как. Возникает одна проблема. Вследствие ограничения в материалах, а так же просто ТЗ так велело, вывод нужно делать на простой текстовый ЖКИ 16*2. Все бы ничего, но вот если просто выводить цифры, они жутко мелкие получаются. Вот я и думаю, как бы научить индикатор всего в 2 строки выводить символами псевдографики хотя бы 4 большие цифры. Даже псу понятно, что одним черным блоком тут не обойтись. Но какие дополнительные 8 символов можно придумать, чтобы выводить качественые читаемые цифры для времени?
Добавлено: Пт апр 03, 2009 04:21:08
SeregaT
Где-то в примерах от CodeVisionAVR видел, как делать графику для отдельного блока (просто включая нужные пиксели). Наверное можно сделать по 4 таких блока на каждую цифру (может в виде массивов?) и затем выводить на дисплей.
Если получится, то можно будет выводить большие, качественные цифры, только наверное памяти будет нехило занимать такая прога.
Добавлено: Пт апр 03, 2009 11:25:40
WildCat
да не, про подгрузку и включение пикселей я то знаю. Я просто придумать не могу, как должны эти фрагменты выглядеть, и как вывести их сразу больше 8? Динамическую индикацию тут особо не сделать.
Кста пишу на баскоме, с кодевижном - только если пальцем покажете, где все лежит

Добавлено: Пт апр 03, 2009 11:29:12
uk8amk
Вот этот самый пример.
По поводу памяти - нет, всего 8 байт на одно знакоместо потратиться + небольшой код по загрузке символа из флеша в RAM индикатора. Для какой-нибудь меги8 еще дохрена ресурсов останется. И на часики и на календарь хватит(при разумном кодинге конечно).
Добавлено: Пт апр 03, 2009 12:34:58
Radan
Добавлено: Пт апр 03, 2009 13:04:26
nds
если делать один символ из двух то можно например так

Добавлено: Пт апр 03, 2009 14:16:02
WildCat
nds
Кошерно. То, что нужно. Только все линии, кроме той, что между строками, можно наверное сделать в два ряда пикселей, чтоб жирнее выглядело. Как раз 7 символов занимает!
А та ссылка как раз про этот вариант. Только дисплей у нас в два раза меньше

Добавлено: Вс апр 05, 2009 03:33:55
Секретный кот
Рваные какие цифры будут, вроде крупные а читаемость не особо

Добавлено: Вс апр 05, 2009 07:10:41
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);
Добавлено: Вс апр 05, 2009 11:03:33
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
Re: Крупные цифры на текстовом ЖКИ
Добавлено: Чт май 23, 2013 19:22:33
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");
}
}
Теперь в массивы и на экран , вот тут и ничего не понятно...
Re: Крупные цифры на текстовом ЖКИ
Добавлено: Чт май 23, 2013 21:13:00
Microtech
Хорошо получилось. Я тоже делал симпатичные шрифты, со скруглёнными уголками. Но надо искать, возможно, где-то осталась эта заготовка. Делал для 4х строчного ЖКИ.