Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: шрифт 5х7
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Василий Зыков
Добрый день!

Требуется отображать цифры и символы на матричном светодиодном индикаторе 5х7 в соответствии с таблицей ASCII. Может, у кого-то есть готовый шрифт для в ставки в проект на С? Да, нужны русские и английские буквы. Буду признателен за помощь.
IgorKossak
Это подойдёт?
CODE
__flash unsigned char Font[CHARS][HEIGHT]={
{0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //0x20
{0x00,0x04,0x04,0x04,0x04,0x00,0x04}, //0x21
{0x0A,0x0A,0x00,0x00,0x00,0x00,0x00}, //0x22
{0x00,0x14,0x1E,0x0A,0x1F,0x05,0x05}, //0x23
{0x04,0x1E,0x05,0x06,0x1C,0x14,0x0F}, //0x24
{0x00,0x12,0x0D,0x06,0x0C,0x16,0x09}, //0x25
{0x00,0x0C,0x0A,0x06,0x15,0x19,0x1E}, //0x26
{0x04,0x04,0x00,0x00,0x00,0x00,0x00}, //0x27
{0x00,0x08,0x04,0x04,0x04,0x04,0x08}, //0x28
{0x00,0x04,0x08,0x08,0x08,0x08,0x04}, //0x29
{0x00,0x04,0x06,0x06,0x00,0x00,0x00}, //0x2A
{0x00,0x00,0x04,0x04,0x1F,0x04,0x04}, //0x2B
{0x00,0x00,0x00,0x00,0x00,0x06,0x06}, //0x2C
{0x00,0x00,0x00,0x00,0x0E,0x00,0x00}, //0x2D
{0x00,0x00,0x00,0x00,0x00,0x06,0x06}, //0x2E
{0x10,0x08,0x08,0x04,0x04,0x02,0x02}, //0x2F
{0x00,0x0E,0x11,0x11,0x11,0x11,0x0E}, //0x30
{0x00,0x06,0x04,0x04,0x04,0x04,0x1F}, //0x31
{0x00,0x0E,0x10,0x10,0x0C,0x02,0x1E}, //0x32
{0x00,0x1E,0x10,0x0C,0x10,0x10,0x0E}, //0x33
{0x00,0x08,0x0C,0x0A,0x1F,0x08,0x08}, //0x34
{0x00,0x0E,0x02,0x02,0x0E,0x08,0x0E}, //0x35
{0x00,0x0E,0x01,0x07,0x09,0x09,0x06}, //0x36
{0x00,0x1E,0x10,0x08,0x04,0x04,0x02}, //0x37
{0x00,0x06,0x09,0x06,0x09,0x09,0x06}, //0x38
{0x00,0x06,0x09,0x09,0x0E,0x08,0x07}, //0x39
{0x00,0x00,0x06,0x06,0x00,0x06,0x06}, //0x3A
{0x00,0x00,0x06,0x06,0x00,0x06,0x06}, //0x3B
{0x00,0x00,0x08,0x04,0x03,0x04,0x08}, //0x3C
{0x00,0x00,0x00,0x1F,0x00,0x1F,0x00}, //0x3D
{0x00,0x00,0x01,0x02,0x0C,0x02,0x01}, //0x3E
{0x00,0x0F,0x09,0x04,0x02,0x00,0x02}, //0x3F
{0x00,0x0E,0x11,0x1D,0x1D,0x01,0x0E}, //0x40
{0x00,0x04,0x0A,0x0A,0x0E,0x11,0x11}, //0x41
{0x00,0x0F,0x09,0x07,0x09,0x09,0x0F}, //0x42
{0x00,0x0E,0x01,0x01,0x01,0x01,0x0E}, //0x43
{0x00,0x07,0x09,0x09,0x09,0x09,0x07}, //0x44
{0x00,0x0F,0x01,0x07,0x01,0x01,0x0F}, //0x45
{0x00,0x0F,0x01,0x07,0x01,0x01,0x01}, //0x46
{0x00,0x0E,0x01,0x01,0x0D,0x09,0x0E}, //0x47
{0x00,0x09,0x09,0x0F,0x09,0x09,0x09}, //0x48
{0x00,0x1F,0x04,0x04,0x04,0x04,0x1F}, //0x49
{0x00,0x0E,0x08,0x08,0x08,0x08,0x06}, //0x4A
{0x00,0x09,0x05,0x03,0x03,0x05,0x09}, //0x4B
{0x00,0x01,0x01,0x01,0x01,0x01,0x0F}, //0x4C
{0x00,0x11,0x1B,0x1B,0x15,0x15,0x11}, //0x4D
{0x00,0x09,0x0B,0x0B,0x0D,0x0D,0x09}, //0x4E
{0x00,0x06,0x09,0x09,0x09,0x09,0x06}, //0x4F
{0x00,0x07,0x09,0x09,0x07,0x01,0x01}, //0x50
{0x00,0x06,0x09,0x09,0x09,0x09,0x06}, //0x51
{0x00,0x0F,0x09,0x09,0x07,0x05,0x09}, //0x52
{0x00,0x0E,0x01,0x03,0x0C,0x08,0x07}, //0x53
{0x00,0x1F,0x04,0x04,0x04,0x04,0x04}, //0x54
{0x00,0x09,0x09,0x09,0x09,0x09,0x06}, //0x55
{0x00,0x11,0x11,0x0A,0x0A,0x0E,0x04}, //0x56
{0x00,0x11,0x15,0x15,0x0D,0x0A,0x0A}, //0x57
{0x00,0x11,0x0A,0x04,0x04,0x0A,0x11}, //0x58
{0x00,0x11,0x0A,0x0A,0x04,0x04,0x04}, //0x59
{0x00,0x1F,0x10,0x08,0x04,0x02,0x1F}, //0x5A
{0x1C,0x04,0x04,0x04,0x04,0x04,0x04}, //0x5B
{0x01,0x02,0x02,0x04,0x04,0x08,0x08}, //0x5C
{0x0E,0x08,0x08,0x08,0x08,0x08,0x08}, //0x5D
{0x04,0x04,0x0A,0x0A,0x0A,0x11,0x00}, //0x5E
{0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //0x5F
{0x04,0x08,0x00,0x00,0x00,0x00,0x00}, //0x60
{0x00,0x00,0x07,0x08,0x0E,0x09,0x1F}, //0x61
{0x01,0x01,0x07,0x09,0x09,0x09,0x07}, //0x62
{0x00,0x00,0x0E,0x01,0x01,0x01,0x0E}, //0x63
{0x08,0x08,0x0E,0x09,0x09,0x09,0x0E}, //0x64
{0x00,0x00,0x06,0x09,0x0F,0x01,0x0E}, //0x65
{0x0C,0x02,0x0F,0x02,0x02,0x02,0x02}, //0x66
{0x00,0x00,0x0E,0x09,0x09,0x09,0x0E}, //0x67
{0x01,0x01,0x0D,0x0B,0x09,0x09,0x09}, //0x68
{0x04,0x00,0x07,0x04,0x04,0x04,0x04}, //0x69
{0x04,0x00,0x07,0x04,0x04,0x04,0x04}, //0x6A
{0x01,0x01,0x09,0x05,0x03,0x05,0x09}, //0x6B
{0x07,0x04,0x04,0x04,0x04,0x04,0x04}, //0x6C
{0x00,0x00,0x1F,0x15,0x15,0x15,0x15}, //0x6D
{0x00,0x00,0x0D,0x0B,0x09,0x09,0x09}, //0x6E
{0x00,0x00,0x06,0x09,0x09,0x09,0x06}, //0x6F
{0x00,0x00,0x07,0x09,0x09,0x09,0x07}, //0x70
{0x00,0x00,0x0E,0x09,0x09,0x09,0x0E}, //0x71
{0x00,0x00,0x0D,0x03,0x01,0x01,0x01}, //0x72
{0x00,0x00,0x0E,0x01,0x06,0x08,0x07}, //0x73
{0x00,0x02,0x0F,0x02,0x02,0x02,0x0C}, //0x74
{0x00,0x00,0x09,0x09,0x09,0x0D,0x0B}, //0x75
{0x00,0x00,0x11,0x11,0x0A,0x0A,0x04}, //0x76
{0x00,0x00,0x15,0x15,0x15,0x0A,0x0A}, //0x77
{0x00,0x00,0x11,0x0A,0x04,0x0A,0x11}, //0x78
{0x00,0x00,0x11,0x0A,0x0A,0x06,0x04}, //0x79
{0x00,0x00,0x0F,0x08,0x04,0x02,0x0F}, //0x7A
{0x0C,0x04,0x04,0x02,0x04,0x04,0x04}, //0x7B
{0x04,0x04,0x04,0x04,0x04,0x04,0x04}, //0x7C
{0x06,0x04,0x04,0x08,0x04,0x04,0x04}, //0x7D
{0x00,0x00,0x00,0x17,0x1D,0x00,0x00}, //0x7E
{0x00,0x0E,0x0A,0x0A,0x0A,0x0A,0x0E}, //0x7F
{0x00,0x07,0x02,0x1E,0x12,0x12,0x1A}, //0x80
{0x10,0x1E,0x02,0x02,0x02,0x02,0x02}, //0x81
{0x00,0x00,0x00,0x00,0x00,0x06,0x06}, //0x82
{0x08,0x00,0x1E,0x02,0x02,0x02,0x02}, //0x83
{0x00,0x00,0x00,0x00,0x00,0x00,0x0A}, //0x84
{0x00,0x00,0x00,0x00,0x00,0x00,0x15}, //0x85
{0x00,0x04,0x04,0x0E,0x04,0x04,0x04}, //0x86
{0x00,0x04,0x04,0x0E,0x04,0x0E,0x04}, //0x87
{0x00,0x04,0x0A,0x07,0x07,0x02,0x0C}, //0x88
{0x00,0x09,0x05,0x05,0x16,0x16,0x15}, //0x89
{0x00,0x07,0x05,0x1D,0x15,0x15,0x0D}, //0x8A
{0x00,0x00,0x00,0x04,0x02,0x02,0x04}, //0x8B
{0x00,0x05,0x05,0x1F,0x15,0x15,0x0D}, //0x8C
{0x08,0x16,0x0A,0x06,0x0A,0x0A,0x12}, //0x8D
{0x00,0x03,0x01,0x0F,0x09,0x09,0x09}, //0x8E
{0x00,0x09,0x09,0x09,0x09,0x09,0x0F}, //0x8F
{0x07,0x02,0x1E,0x12,0x12,0x12,0x12}, //0x90
{0x04,0x02,0x06,0x06,0x00,0x00,0x00}, //0x91
{0x06,0x06,0x04,0x02,0x00,0x00,0x00}, //0x92
{0x0A,0x0A,0x00,0x00,0x00,0x00,0x00}, //0x93
{0x0A,0x0A,0x00,0x00,0x00,0x00,0x00}, //0x94
{0x00,0x00,0x00,0x0E,0x0E,0x0E,0x00}, //0x95
{0x00,0x00,0x00,0x00,0x0E,0x00,0x00}, //0x96
{0x00,0x00,0x00,0x00,0x1F,0x00,0x00}, //0x97
{0x00,0x0E,0x0A,0x0A,0x0A,0x0A,0x0E}, //0x98
{0x00,0x17,0x1E,0x16,0x00,0x00,0x00}, //0x99
{0x00,0x00,0x07,0x05,0x0D,0x15,0x0D}, //0x9A
{0x00,0x00,0x00,0x02,0x04,0x04,0x02}, //0x9B
{0x00,0x00,0x05,0x05,0x0F,0x15,0x0D}, //0x9C
{0x04,0x00,0x09,0x05,0x03,0x05,0x09}, //0x9D
{0x03,0x01,0x0D,0x0B,0x09,0x09,0x09}, //0x9E
{0x00,0x00,0x09,0x09,0x09,0x09,0x0F}, //0x9F
{0x00,0x00,0x00,0x00,0x00,0x00,0x00}, //0xA0
{0x0A,0x15,0x0A,0x0A,0x04,0x04,0x03}, //0xA1
{0x04,0x00,0x11,0x0A,0x0A,0x06,0x04}, //0xA2
{0x00,0x0E,0x08,0x08,0x08,0x08,0x06}, //0xA3
{0x00,0x11,0x0E,0x0A,0x0E,0x11,0x00}, //0xA4
{0x10,0x1E,0x02,0x02,0x02,0x02,0x02}, //0xA5
{0x04,0x04,0x04,0x00,0x00,0x04,0x04}, //0xA6
{0x00,0x0F,0x01,0x06,0x09,0x06,0x08}, //0xA7
{0x0A,0x0F,0x01,0x07,0x01,0x01,0x0F}, //0xA8
{0x00,0x0E,0x15,0x15,0x15,0x15,0x0E}, //0xA9
{0x00,0x1E,0x01,0x0F,0x01,0x01,0x1E}, //0xAA
{0x00,0x00,0x00,0x0A,0x05,0x05,0x0A}, //0xAB
{0x00,0x00,0x00,0x1F,0x10,0x10,0x00}, //0xAC
{0x00,0x00,0x00,0x00,0x0E,0x00,0x00}, //0xAD
{0x00,0x06,0x09,0x0B,0x06,0x00,0x00}, //0xAE
{0x0A,0x1F,0x04,0x04,0x04,0x04,0x1F}, //0xAF
{0x00,0x04,0x0A,0x04,0x00,0x00,0x00}, //0xB0
{0x00,0x00,0x04,0x1F,0x04,0x00,0x1F}, //0xB1
{0x00,0x1F,0x04,0x04,0x04,0x04,0x1F}, //0xB2
{0x04,0x00,0x07,0x04,0x04,0x04,0x04}, //0xB3
{0x00,0x10,0x1F,0x01,0x01,0x01,0x01}, //0xB4
{0x00,0x00,0x09,0x09,0x09,0x0D,0x0B}, //0xB5
{0x00,0x1F,0x17,0x16,0x14,0x14,0x14}, //0xB6
{0x00,0x00,0x00,0x0E,0x0E,0x0E,0x00}, //0xB7
{0x0A,0x00,0x06,0x09,0x0F,0x01,0x0E}, //0xB8
{0x00,0x05,0x15,0x17,0x17,0x15,0x05}, //0xB9
{0x00,0x00,0x0E,0x01,0x07,0x01,0x0E}, //0xBA
{0x00,0x00,0x00,0x05,0x0A,0x0A,0x05}, //0xBB
{0x04,0x00,0x07,0x04,0x04,0x04,0x04}, //0xBC
{0x00,0x0E,0x01,0x03,0x0C,0x08,0x07}, //0xBD
{0x00,0x00,0x0E,0x01,0x06,0x08,0x07}, //0xBE
{0x0A,0x00,0x07,0x04,0x04,0x04,0x04}, //0xBF
{0x00,0x1C,0x12,0x11,0x1F,0x11,0x11}, //0xC0
{0x00,0x0F,0x01,0x01,0x0F,0x09,0x07}, //0xC1
{0x00,0x0F,0x09,0x07,0x09,0x09,0x0F}, //0xC2
{0x00,0x1E,0x02,0x02,0x02,0x02,0x02}, //0xC3
{0x00,0x0E,0x0A,0x0A,0x0A,0x09,0x1F}, //0xC4
{0x00,0x0F,0x01,0x07,0x01,0x01,0x0F}, //0xC5
{0x00,0x15,0x0E,0x04,0x0E,0x15,0x15}, //0xC6
{0x00,0x07,0x08,0x06,0x08,0x08,0x07}, //0xC7
{0x00,0x09,0x0D,0x0D,0x0B,0x0B,0x09}, //0xC8
{0x0A,0x0D,0x0D,0x0D,0x0B,0x0B,0x09}, //0xC9
{0x00,0x12,0x0A,0x06,0x0A,0x0A,0x12}, //0xCA
{0x00,0x0E,0x0A,0x0A,0x0A,0x0A,0x09}, //0xCB
{0x00,0x11,0x1B,0x1B,0x15,0x15,0x11}, //0xCC
{0x00,0x09,0x09,0x0F,0x09,0x09,0x09}, //0xCD
{0x00,0x06,0x09,0x09,0x09,0x09,0x06}, //0xCE
{0x00,0x0F,0x09,0x09,0x09,0x09,0x09}, //0xCF
{0x00,0x07,0x09,0x09,0x07,0x01,0x01}, //0xD0
{0x00,0x0E,0x01,0x01,0x01,0x01,0x0E}, //0xD1
{0x00,0x1F,0x04,0x04,0x04,0x04,0x04}, //0xD2
{0x00,0x11,0x0A,0x0A,0x04,0x04,0x03}, //0xD3
{0x00,0x04,0x0E,0x15,0x15,0x0E,0x04}, //0xD4
{0x00,0x11,0x0A,0x04,0x04,0x0A,0x11}, //0xD5
{0x00,0x09,0x09,0x09,0x09,0x09,0x1F}, //0xD6
{0x00,0x09,0x09,0x0D,0x0B,0x08,0x08}, //0xD7
{0x00,0x15,0x15,0x15,0x15,0x15,0x1F}, //0xD8
{0x00,0x15,0x15,0x15,0x15,0x15,0x1F}, //0xD9
{0x00,0x03,0x02,0x02,0x06,0x0A,0x06}, //0xDA
{0x00,0x11,0x11,0x13,0x15,0x15,0x13}, //0xDB
{0x00,0x01,0x01,0x01,0x07,0x09,0x07}, //0xDC
{0x00,0x0F,0x10,0x1E,0x10,0x10,0x0F}, //0xDD
{0x00,0x09,0x15,0x17,0x15,0x15,0x09}, //0xDE
{0x00,0x1C,0x12,0x12,0x1C,0x14,0x12}, //0xDF
{0x00,0x00,0x07,0x08,0x0E,0x09,0x1F}, //0xE0
{0x0E,0x01,0x0D,0x13,0x11,0x11,0x0E}, //0xE1
{0x00,0x00,0x07,0x09,0x07,0x09,0x07}, //0xE2
{0x00,0x00,0x1E,0x02,0x02,0x02,0x02}, //0xE3
{0x00,0x00,0x1C,0x14,0x14,0x12,0x1F}, //0xE4
{0x00,0x00,0x06,0x09,0x0F,0x01,0x0E}, //0xE5
{0x00,0x00,0x15,0x0E,0x04,0x0E,0x15}, //0xE6
{0x00,0x00,0x07,0x08,0x06,0x08,0x07}, //0xE7
{0x00,0x00,0x09,0x0D,0x0B,0x0B,0x09}, //0xE8
{0x04,0x00,0x09,0x0D,0x0B,0x0B,0x09}, //0xE9
{0x00,0x00,0x09,0x05,0x03,0x05,0x09}, //0xEA
{0x00,0x00,0x0E,0x0A,0x0A,0x0A,0x09}, //0xEB
{0x00,0x00,0x11,0x1B,0x1B,0x15,0x15}, //0xEC
{0x00,0x00,0x09,0x09,0x0F,0x09,0x09}, //0xED
{0x00,0x00,0x06,0x09,0x09,0x09,0x06}, //0xEE
{0x00,0x00,0x0F,0x09,0x09,0x09,0x09}, //0xEF
{0x00,0x00,0x07,0x09,0x09,0x07,0x01}, //0xF0
{0x00,0x00,0x0E,0x01,0x01,0x01,0x0E}, //0xF1
{0x00,0x00,0x1F,0x04,0x04,0x04,0x04}, //0xF2
{0x00,0x00,0x11,0x0A,0x0A,0x06,0x04}, //0xF3
{0x00,0x04,0x0E,0x0D,0x0D,0x0D,0x0E}, //0xF4
{0x00,0x00,0x11,0x0A,0x04,0x0A,0x11}, //0xF5
{0x00,0x00,0x09,0x09,0x09,0x09,0x1F}, //0xF6
{0x00,0x00,0x09,0x09,0x0E,0x08,0x08}, //0xF7
{0x00,0x00,0x15,0x15,0x15,0x15,0x1F}, //0xF8
{0x00,0x00,0x15,0x15,0x15,0x15,0x1F}, //0xF9
{0x00,0x00,0x03,0x02,0x06,0x0A,0x06}, //0xFA
{0x00,0x00,0x09,0x09,0x0B,0x0D,0x0F}, //0xFB
{0x00,0x00,0x01,0x01,0x07,0x09,0x07}, //0xFC
{0x00,0x00,0x07,0x08,0x0E,0x08,0x07}, //0xFD
{0x00,0x00,0x19,0x15,0x17,0x15,0x19}, //0xFE
{0x00,0x00,0x0E,0x09,0x0E,0x0A,0x09}, //0xFF
};

Таблица начинается с пробела, справа в комментарии - код символа. По моему реализована cp1251, уже не помню.
Василий Зыков
Спасибо!

Я думаю, подойдет.
Я посмотрел, как символы нарисованы. Получается, что мне надо повернуть их на 90 градусов влево. Т.е. у меня символы нарезаны на пять вертикалей,а не на семь горизонталей.
ARV
посмотрите вот это - не смотря на мелкие нюансы в целом очень удобная штучка smile.gif http://www.elvand.com/en/LFG.asp
Василий Зыков
Спасибо!
Интересная программа. И, главное, генерирует таблицу именно так, как мне надо. Прямо в точку.
Правда, меня пугает перспектива рисовать шрифт по точкам....
Diz
Если найдете подходящий ttf-шрифт, можно преобразовать. Вот, например, скриптик на питоне + PIL (python imaging library):
CODE
import Image, ImageFont, ImageDraw, ImageOps

fontSize = 8
fontWidth = 12
fontHeight = 12
numOfSymbols = 95
startSymbol = 32
boxSize = ( numOfSymbols * fontWidth, fontHeight )
inFont = "dlxfont.ttf"
outXbm = "fntout.xbm"

font = ImageFont.truetype(inFont, fontSize)

img = Image.new("1", boxSize, 1)
draw = ImageDraw.Draw(img)

for i in range(0, numOfSymbols, 1):
draw.text( ( i * fontWidth,0), chr(i + startSymbol), font = font)

#img.show()

img = img.rotate(-90).transpose( Image.FLIP_LEFT_RIGHT)

img.save( outXbm, 'XBM')
VDV
нет ли у кого программы наподобие
http://electronix.ru/forum/index.php?act=S...134&t=30124

необходимо встроить unicode шрифт в прибор.
FontConv как-то странновато конвертит.
хотелось бы так:
- выбор фонта в системе.
- выбор пропорциональный или фиксированная ширина/высота
- размер
- результат в хидер файл, при этом желательно выбирать направление сканирования вертикаль/горизонталь

или, может, есть готовый шифт?
интересует 8 x 8 Unicode. например, Consolas, Courier new, DejaVuSansMono
VDV
нашел статью неплохую:
http://microsin.ru/content/view/667/44/

и программу BitFontCreator
http://www.iseasoft.com/download.htm
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.