#include "config.h"
/* Interface Define */
// GND VDD RES CD CS CSL CDA
PIN SCL = {GPIOB,3}; //3
PIN SDA = {GPIOA,7}; //4
PIN RES = {GPIOB,12}; //5
PIN DC = {GPIOB,13}; //6
PIN LED = {GPIOA,15}; //7
PIN KEY_PRESS = {GPIOA,0};
PIN LED_1 = {GPIOC,8};
PIN LED_2 = {GPIOC,9};
uint8_t DigChars[16]; //Массив символов цифр
uint8_t x0; //Координаты текста
uint8_t xe; //Координаты текста
uint8_t y0;
uint16_t CC; //Цвет текста
uint16_t BC; //Цвет фона
uint8_t Font; //Шрифт
const uint8_t Font11[11][78] = {
{0x28,0x80,0x00,0x00,0x48,0x00,0x00,0x80,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0xC0,0x07,0x00,0x04,0x02,0x02,0x83,0x80 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00 ,0x0A,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00 ,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00},
{0x2C,0x8A,0x18,0x61,0xA8,0x00,0x00,0x80,0x4E,0x9C ,0x43,0x9F,0x7D,0xE7,0x00,0x00,0x80,0x63,0x1E,0xFF ,0xFC,0xCF,0x87,0x18,0xFF,0x38,0x1E,0xE7,0xF1,0x61 ,0xC4,0x18,0x7F,0x06,0x01,0x08,0x02,0x82,0x80,0xD0 ,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x50,0x00 ,0x40,0xFD,0x8F,0x9B,0x7C,0x21,0xF4,0x3F,0x14,0x22 ,0x42,0x44,0x07,0x1F,0x1E,0x47,0x00,0x00,0x00,0x0A ,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00},
{0x2C,0xCA,0x27,0x91,0xA8,0x08,0x02,0x80,0x71,0x62 ,0x64,0x41,0xC0,0x18,0x01,0x02,0x02,0x64,0xA2,0x10 ,0x85,0x20,0x84,0x14,0xD4,0x38,0xA2,0x28,0x0A,0x61 ,0xC4,0x18,0x61,0x86,0x02,0x00,0x02,0x82,0x80,0x80 ,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x50,0x00 ,0x1F,0x84,0x80,0x92,0x84,0x31,0x16,0x21,0x14,0xFA ,0x42,0x44,0x04,0x21,0x91,0x28,0x00,0x00,0x00,0x04 ,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00},
{0x84,0xBF,0xA4,0x90,0x10,0x2B,0x02,0x40,0x51,0x20 ,0x54,0x21,0xA0,0x18,0x8B,0x01,0x0C,0x94,0x62,0x10 ,0x86,0x10,0x84,0x12,0x54,0x55,0x62,0x30,0x0A,0x61 ,0x44,0xA5,0x50,0x4A,0x04,0xE0,0xDE,0xBB,0xFB,0xF7 ,0x74,0x7B,0xEF,0xEB,0x8F,0x31,0x19,0xE3,0x53,0x00 ,0xC1,0x85,0x40,0xA2,0x82,0x29,0x15,0x21,0x24,0x25 ,0x43,0x44,0x04,0x41,0x51,0xF0,0x3D,0x2E,0x19,0x91 ,0x3D,0xE2,0xEF,0x8B,0xA4,0xE1,0x79,0x1C},
{0x04,0xA5,0x98,0x60,0x12,0x1D,0x02,0x40,0x51,0x10 ,0x4B,0xEF,0x21,0x17,0x6B,0xFC,0x31,0x92,0x5E,0x10 ,0xBE,0x1F,0xFC,0x11,0x54,0x55,0x62,0x30,0x72,0xA1 ,0x2A,0xA2,0x48,0x2A,0x08,0x00,0x23,0xC6,0xC4,0xD8 ,0x92,0x8C,0x11,0x17,0x89,0x31,0xA9,0x22,0x52,0x8C ,0x21,0xBE,0x40,0xA2,0x72,0x29,0x15,0x21,0x24,0x25 ,0x43,0x44,0x3C,0x7D,0x71,0x30,0x46,0x4A,0x95,0x59 ,0x64,0x23,0x92,0x8C,0x24,0x21,0x46,0x22},
{0x04,0xC5,0x41,0x96,0x12,0xEB,0x9F,0x4F,0x51,0x08 ,0xFC,0x30,0x92,0xE8,0x11,0x00,0x40,0x91,0x62,0x10 ,0x86,0x90,0x87,0x11,0x54,0x92,0x5E,0xF0,0x81,0xA1 ,0x2A,0x42,0x48,0x0A,0x00,0xE0,0x23,0xFE,0xC4,0xD8 ,0x91,0x8C,0x11,0x33,0x89,0xAA,0x4A,0x14,0x8D,0x93 ,0xEF,0xC7,0x40,0xC2,0x81,0xA5,0x14,0x21,0xC4,0x24 ,0x7D,0x44,0x44,0x41,0x5E,0x30,0x3E,0x4A,0x55,0x35 ,0xA4,0x3E,0x92,0x8C,0x24,0xA7,0xC7,0x23},
{0xC4,0x8F,0x42,0x19,0x11,0x09,0x02,0x40,0x51,0x04 ,0x44,0x30,0x92,0x08,0x61,0xFC,0x31,0xF9,0x63,0x10 ,0x86,0x10,0x86,0x12,0x54,0x92,0x42,0x30,0x81,0xA1 ,0x2A,0x45,0x44,0x0A,0x00,0x10,0x23,0x86,0xC4,0xD8 ,0x92,0x8C,0x11,0xC3,0x89,0xAA,0x4A,0x94,0x50,0x62 ,0x21,0xC4,0x20,0xA2,0x82,0xA5,0x14,0x21,0xC4,0x24 ,0x41,0x44,0x44,0x41,0x52,0x30,0x46,0x89,0x33,0x53 ,0xA4,0x22,0x92,0xF4,0x24,0x29,0x7A,0x22},
{0x80,0x82,0x22,0x19,0x13,0x01,0x42,0x50,0x51,0x42 ,0x44,0x31,0x8A,0x88,0x8A,0x01,0x0C,0x08,0xA3,0x10 ,0x85,0x20,0x86,0x14,0x54,0x10,0x83,0x28,0x82,0x21 ,0x91,0x48,0x42,0x0A,0x00,0x10,0x23,0xC6,0xC4,0xD8 ,0x94,0x8C,0x11,0x83,0x89,0x44,0xA4,0x48,0x50,0x00 ,0x21,0xC6,0x20,0x92,0x84,0x63,0x14,0x21,0x44,0xF8 ,0x40,0x44,0x44,0x21,0x91,0x28,0x46,0x49,0x15,0x91 ,0x24,0x22,0x92,0x84,0x24,0x29,0x4A,0x22},
{0x84,0xE2,0x21,0xE6,0xA4,0x00,0x42,0x30,0xEE,0xBE ,0x43,0xCE,0x09,0x67,0x0A,0x02,0x02,0x09,0x1F,0xFF ,0xFC,0xC0,0x87,0xF8,0x7B,0x10,0x03,0x27,0x7C,0x1E ,0x91,0x48,0x7E,0x12,0x00,0xE0,0xDF,0xBB,0xF8,0xD8 ,0x98,0x8C,0xEF,0x73,0xF6,0x44,0x14,0xC9,0x53,0x00 ,0xDF,0xBD,0xF0,0x8F,0x78,0x21,0x0C,0xE1,0x3F,0x20 ,0xC0,0xFF,0x3C,0x9F,0x10,0xC7,0xBD,0x3F,0x19,0x11 ,0x23,0x22,0xE2,0x83,0x7F,0xE7,0x45,0x1C},
{0x00,0x80,0x00,0x00,0xA0,0x00,0x40,0x20,0x00,0x00 ,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00 ,0x00,0x00,0x40,0x12,0x00,0x00,0x00,0x00,0x40,0x40 ,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x04,0x50,0x00 ,0x00,0x00,0x10,0x04,0x00,0x00,0x00,0x00,0x08,0x00 ,0x00,0x80,0x00,0x00,0x00,0x00,0x80,0x10,0x00,0x00 ,0x00,0x00,0x80,0x00,0x40,0x00,0x00,0x00},
{0x00,0x80,0x00,0x00,0x40,0x00,0x20,0x20,0x00,0x00 ,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00 ,0x00,0x00,0xC0,0x13,0xF0,0x03,0x00,0x00,0x38,0x20 ,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x04,0x20,0x00 ,0x00,0x00,0x10,0x04,0x00,0x00,0x00,0x00,0x08,0x00 ,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00}
};
const uint16_t Font11C[256] = {
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0002,0x0041,0x0063,0x00C7,0x01A5,0x024A,0x0387,0 x0461,0x0483,0x04C3,0x0525,0x05C7,0x06A2,0x06E5,0x 0781,0x07A3,
0x0805,0x08A4,0x0925,0x09C5,0x0A65,0x0B05,0x0BA5,0 x0C45,0x0CE5,0x0D85,0x0E21,0x0E42,0x0E86,0x0F47,0x 1026,0x10E4,
0x0000,0x1166,0x1225,0x12C6,0x1386,0x1445,0x14E5,0 x1586,0x1646,0x1863,0x17E4,0x16E5,0x1784,0x18C7,0x 1986,0x40C7,
0x1A25,0x1AC7,0x1BA6,0x1C65,0x38A7,0x1D06,0x1DC5,0 x1DC9,0x1EE5,0x1F85,0x2025,0x20C3,0x2143,0x20E3,0x 21A7,0x2286,
0x2342,0x2385,0x2425,0x24A4,0x24A5,0x2545,0x25E3,0 x2645,0x26E5,0x2781,0x27A2,0x27E5,0x27E1,0x2887,0x 2965,0x4D25,
0x2A05,0x2A85,0x2B23,0x2B84,0x2C03,0x2C65,0x2D05,0 x2DA7,0x2E85,0x2F25,0x2FC4,0x3044,0x2121,0x30A4,0x 3127,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x3205,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x32A5,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x1166,0x3345,0x1225,0x33E5,0x3487,0x1445,0x3569,0 x3665,0x3706,0x37A6,0x16E5,0x3866,0x18C7,0x1646,0x 40C7,0x3906,
0x1A25,0x12C6,0x38A7,0x3A86,0x3B47,0x1EE5,0x39A7,0 x3C26,0x3CC9,0x3CCA,0x3E07,0x3E47,0x3E45,0x3F26,0x 4089,0x3FE6,
0x2385,0x41A5,0x4245,0x47A4,0x42E6,0x2545,0x43A7,0 x4264,0x4485,0x4505,0x4585,0x4625,0x46A5,0x4725,0x 4D25,0x47A5,
0x2A05,0x24A4,0x47E5,0x2F25,0x4887,0x2E85,0x4A45,0 x4965,0x49E7,0x49E8,0x4AE5,0x4B06,0x4B04,0x4BC4,0x 4CC8,0x4C45
};
const uint8_t Font16[16][120] = {
{0x80,0x04,0x00,0x00,0x00,0x00,0x40,0x08,0x04,0x00 ,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0 ,0x0F,0x00,0x00,0x10,0x00,0x20,0x00,0xE0,0x00,0x01 ,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x70,0x00,0xC0,0x0C,0x00,0x00,0x00 ,0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F ,0x00,0x00,0x00,0x00,0x40,0x04,0x00,0x00,0x00,0x00 ,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 },
{0xA0,0x84,0x10,0xC2,0x83,0xE0,0x41,0x94,0x24,0x00 ,0x00,0x80,0x3C,0xC4,0xE3,0xF1,0x00,0xFD,0xF1,0xFE ,0x3C,0x00,0x00,0x00,0xC0,0x81,0xE1,0xE7,0x87,0xFF ,0x3F,0x7E,0x01,0x02,0x03,0xFF,0x01,0x03,0xFC,0xE0 ,0xE3,0x07,0x5F,0x80,0x01,0x41,0x30,0x30,0xE0,0x7F ,0x0C,0x60,0x00,0x10,0x00,0x20,0x00,0x10,0x00,0x01 ,0xA2,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00 ,0x00,0x00,0x00,0x88,0x00,0x00,0x40,0xF4,0xC7,0xDF ,0x10,0xF6,0x09,0x10,0x20,0xFE,0xFF,0x40,0x10,0x04 ,0x14,0x10,0x04,0x3D,0xA0,0x0F,0xFC,0xE0,0xC3,0x00 ,0x00,0x00,0x00,0x00,0x40,0x04,0x00,0x00,0x00,0x00 ,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07 },
{0xA0,0x84,0x10,0x22,0x44,0x10,0x42,0x22,0x15,0x00 ,0x00,0x40,0x42,0x24,0x14,0x0A,0x81,0x05,0x08,0x80 ,0x42,0x00,0x00,0x00,0x20,0x42,0x22,0x28,0x98,0x80 ,0x80,0x81,0x01,0x82,0x02,0xA8,0x01,0x07,0x04,0x19 ,0x2C,0x88,0x60,0x80,0x01,0xA1,0x50,0x48,0x10,0x60 ,0x14,0x90,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x01 ,0xA2,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00 ,0x00,0x00,0x00,0x88,0x00,0xE0,0x5F,0x14,0x40,0x10 ,0x11,0x09,0x0A,0x18,0x30,0x82,0xC0,0x40,0x7C,0x04 ,0x14,0x10,0x04,0x21,0x60,0x30,0x82,0x18,0x4C,0x00 ,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x00 ,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x18 },
{0xA0,0x44,0x88,0x2F,0x44,0x10,0x42,0x22,0x0E,0x04 ,0x00,0x40,0x81,0x07,0x08,0x04,0x42,0x05,0x04,0x40 ,0x81,0x00,0x08,0x20,0x00,0x44,0x22,0x28,0xA0,0x80 ,0x80,0x00,0x01,0x42,0x02,0xA8,0x82,0x0A,0x04,0x0A ,0x28,0x48,0x40,0x80,0x82,0xA2,0x48,0x48,0x10,0x50 ,0x14,0x90,0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x01 ,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00 ,0x00,0x00,0x00,0x88,0x00,0x20,0x00,0x10,0x40,0x10 ,0x11,0x01,0x0C,0x14,0x28,0x82,0x40,0x21,0x93,0x05 ,0x14,0x10,0x04,0x21,0x20,0x20,0x81,0x08,0x28,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x20 },
{0xA0,0xF4,0x7F,0x32,0x24,0x10,0x42,0x41,0x15,0x04 ,0x00,0x40,0x81,0x04,0x08,0x04,0x22,0x05,0x02,0x40 ,0x81,0x0F,0x06,0xC0,0x00,0x44,0x22,0x28,0xA0,0x80 ,0x40,0x00,0x01,0x22,0x02,0xA8,0x82,0x12,0x04,0x06 ,0x30,0x48,0x40,0x80,0x82,0xA2,0x88,0x84,0x08,0x48 ,0x14,0x08,0x01,0x00,0x1E,0xBF,0xC7,0x79,0xFC,0x3D ,0xBA,0x50,0xE7,0x7A,0x7A,0xFC,0xDE,0x0F,0x0C,0x42 ,0x18,0x0C,0xFE,0x88,0x00,0x20,0x80,0x13,0x40,0x10 ,0x92,0x00,0x0C,0x12,0x24,0x82,0x40,0x21,0x11,0x05 ,0x14,0x10,0x04,0x21,0x20,0x40,0x81,0x04,0xB0,0xE7 ,0xC7,0x37,0x62,0x2F,0x10,0x08,0xF3,0x07,0x03,0xFF ,0xE7,0x4F,0x10,0x42,0x07,0x7A,0xF8,0xF0,0x88,0x2F },
{0x20,0x40,0x48,0x22,0x14,0x20,0x01,0xC1,0x24,0x04 ,0x00,0x20,0x81,0x04,0x08,0x0A,0x11,0x7D,0x7A,0x20 ,0x81,0x8F,0x01,0x00,0x03,0x24,0x24,0x24,0xC0,0x80 ,0x40,0x00,0x01,0x12,0x02,0xA8,0x44,0x12,0x04,0x06 ,0x30,0x48,0x40,0x80,0x82,0xA2,0x08,0x03,0x05,0x48 ,0x24,0x04,0x02,0x00,0xA1,0x60,0x28,0x12,0x82,0x43 ,0xA2,0xC8,0x18,0x87,0x86,0x82,0xA1,0x08,0x0C,0x42 ,0x28,0x0A,0x82,0x88,0x00,0x20,0x40,0x14,0x40,0x10 ,0x54,0x00,0x0A,0x12,0x24,0x82,0x40,0xA1,0x10,0x06 ,0x14,0x10,0x04,0x21,0x20,0x40,0x81,0x04,0x70,0x28 ,0x48,0x44,0x92,0x30,0x18,0x8C,0x10,0x06,0x03,0x81 ,0x10,0x51,0x10,0x42,0x04,0x86,0x84,0x08,0x45,0x48 },
{0x20,0x40,0x48,0x22,0xD4,0xE3,0x08,0x41,0x04,0x04 ,0x00,0x20,0x81,0x04,0xC4,0xF1,0x08,0x81,0x86,0x20 ,0x81,0x60,0xF0,0x1F,0x0C,0x22,0xE4,0x27,0xC0,0xFF ,0x7F,0x00,0xFF,0x0B,0x02,0xA8,0x44,0x22,0x04,0x06 ,0x30,0x84,0x43,0x80,0x44,0xA2,0x08,0x03,0x05,0x44 ,0x24,0x02,0x04,0x00,0x60,0x20,0x10,0x14,0x81,0x81 ,0xA2,0x44,0x08,0x03,0x03,0x81,0x81,0x08,0x14,0xA5 ,0x44,0x11,0x41,0x04,0x61,0xF0,0x3F,0xF8,0x43,0x10 ,0x7C,0xE0,0x09,0x11,0x22,0x82,0x40,0x92,0x10,0x06 ,0x14,0x10,0x04,0xE1,0x23,0x7F,0x82,0x07,0x30,0x30 ,0x48,0x44,0x12,0x30,0x14,0x4A,0x10,0x8A,0x02,0x81 ,0x08,0x61,0x10,0x42,0x04,0x02,0x85,0x04,0x26,0x48 },
{0x20,0x20,0x84,0xC3,0x2B,0x94,0x08,0x41,0xC0,0x7F ,0xFE,0x20,0x81,0x04,0x02,0x0A,0x05,0x01,0x03,0x11 ,0xC2,0x10,0x00,0x00,0x10,0x21,0x24,0x28,0xC0,0x80 ,0x40,0xF8,0x01,0x0E,0x02,0xA8,0x28,0x42,0x04,0x05 ,0xF0,0x03,0x5C,0x80,0x44,0x12,0x09,0x03,0x02,0x42 ,0x24,0x00,0x00,0x00,0x7E,0x20,0x10,0x14,0x81,0x81 ,0xA2,0x42,0x08,0x03,0x03,0x81,0x81,0x08,0x14,0xA5 ,0x44,0x11,0x21,0x03,0x96,0x30,0x20,0x18,0x24,0x10 ,0x92,0x00,0x8A,0x10,0x21,0x82,0x40,0x92,0x10,0x06 ,0x24,0x18,0x04,0x21,0x24,0x40,0xFC,0x04,0x30,0x30 ,0x48,0x84,0x0A,0x30,0x12,0x49,0x10,0x8A,0x02,0x81 ,0x08,0x61,0x10,0x42,0x7C,0x02,0x85,0x04,0x26,0x48 },
{0x20,0x20,0x04,0x0E,0x28,0x0C,0x09,0x41,0x00,0x04 ,0x00,0x10,0x81,0x04,0x01,0x04,0xFE,0x03,0x03,0x11 ,0xBC,0x60,0x00,0x00,0x8C,0xF0,0x2F,0x30,0xC0,0x80 ,0x40,0x80,0x01,0x12,0x02,0xA8,0x28,0x82,0xFC,0x04 ,0x30,0x02,0x60,0x80,0x44,0x14,0x05,0x03,0x02,0x41 ,0x44,0x00,0x00,0x00,0x61,0x20,0xF0,0x17,0x81,0x81 ,0xA2,0x43,0x08,0x03,0x03,0x81,0x9E,0x08,0x14,0xA5 ,0x84,0x10,0x11,0x04,0x09,0x29,0xE0,0x1F,0x28,0x10 ,0x92,0x00,0x4C,0x90,0x20,0x82,0x40,0x8C,0x10,0x06 ,0xC4,0x17,0x04,0x21,0x28,0x40,0x88,0x04,0x30,0xF0 ,0x27,0x84,0x0F,0x2E,0x91,0x78,0x10,0x52,0xFE,0x81 ,0x08,0x61,0x10,0x42,0x84,0xFA,0xF9,0x07,0x26,0x48 },
{0x20,0xF8,0x1F,0x12,0x24,0x0C,0x06,0x41,0x00,0x04 ,0x00,0x10,0x81,0x84,0x00,0x04,0x02,0x01,0x03,0x09 ,0x80,0x80,0xF1,0x1F,0x83,0x10,0x28,0x30,0xA0,0x80 ,0x40,0x80,0x01,0x22,0x02,0xA8,0x10,0x82,0x04,0x04 ,0x30,0x04,0x60,0x80,0x28,0x14,0x85,0x04,0x02,0x41 ,0x44,0x00,0x00,0x80,0x60,0x20,0x10,0x10,0x81,0x81 ,0xA2,0x44,0x08,0x03,0x03,0x81,0xA0,0x08,0xA4,0x14 ,0x45,0xA1,0x10,0x88,0x08,0x26,0x20,0x10,0x28,0x10 ,0x11,0x01,0x4C,0x90,0x20,0x82,0x40,0x0C,0x11,0x05 ,0x04,0x10,0x04,0x21,0x28,0x40,0x84,0x04,0x30,0x30 ,0x28,0x44,0x12,0x30,0x91,0x88,0x10,0x52,0x02,0x81 ,0x08,0xA1,0x1F,0x42,0x84,0x02,0x91,0x04,0x26,0x48 },
{0x00,0x20,0x04,0x12,0x22,0x0C,0x04,0x41,0x00,0x04 ,0x00,0x10,0x81,0x44,0x00,0x04,0x02,0x01,0x03,0x09 ,0x40,0x00,0x06,0xC0,0x00,0x10,0x28,0x30,0xA0,0x80 ,0x80,0x80,0x01,0x42,0x02,0xA8,0x00,0x02,0x05,0x08 ,0x28,0x08,0x60,0x80,0x28,0x14,0x45,0x08,0x82,0x40 ,0x44,0x00,0x00,0x80,0x60,0x20,0x10,0x10,0x81,0x81 ,0xA2,0x48,0x08,0x03,0x03,0x81,0xA0,0x08,0xA4,0x18 ,0x43,0xA1,0x08,0x88,0x00,0x20,0x20,0x10,0x28,0x10 ,0x11,0x01,0x2C,0x50,0x20,0x81,0x40,0x08,0x93,0x05 ,0x04,0x10,0x04,0x21,0x28,0x20,0x82,0x08,0x28,0x30 ,0x28,0x44,0x12,0xB0,0x50,0x08,0x11,0x22,0x02,0x81 ,0x08,0x21,0x10,0x42,0x84,0x02,0x89,0x04,0x46,0x4C },
{0x20,0x10,0x42,0x12,0x22,0x14,0x0A,0x41,0x00,0x84 ,0x01,0x0B,0x42,0x24,0x10,0x0A,0x01,0x85,0x84,0x04 ,0x20,0x0F,0x08,0x20,0x80,0x08,0x30,0x28,0x98,0x80 ,0x80,0x81,0x01,0x82,0x02,0xA8,0x00,0x02,0x06,0x18 ,0x2C,0x50,0x90,0x40,0x28,0x0C,0x46,0x08,0x42,0x40 ,0x84,0x00,0x00,0x80,0xB0,0x30,0x28,0x14,0xC2,0x81 ,0xA2,0x50,0x08,0x03,0x83,0xC2,0xA1,0x10,0x46,0x08 ,0x22,0x42,0x04,0x88,0x00,0x20,0x40,0x18,0x14,0x90 ,0x10,0x0A,0x1A,0x30,0x20,0x81,0x40,0x04,0x7C,0x04 ,0x04,0x10,0x04,0x21,0x64,0x30,0x81,0x18,0x4C,0x28 ,0x18,0x24,0xA2,0x70,0x30,0x08,0x0A,0x02,0x02,0x81 ,0x10,0x11,0x10,0x42,0x84,0x86,0x84,0x08,0x89,0x3B },
{0x20,0x10,0x82,0x0F,0xC1,0xE3,0x11,0x22,0x00,0x80 ,0x01,0x0B,0x3C,0xFF,0xEF,0xF1,0x00,0x79,0x78,0x04 ,0x1E,0x0F,0x00,0x00,0x80,0x08,0xF0,0xE7,0x87,0xFF ,0x00,0x7E,0x01,0x02,0xFF,0xF7,0x00,0x02,0x04,0xE0 ,0x23,0xA0,0x0F,0x3F,0x10,0x08,0x22,0x10,0xC2,0x7F ,0x84,0x00,0x00,0x00,0x2F,0xEF,0xC7,0x13,0xBC,0x81 ,0xA2,0x60,0x08,0x03,0x7F,0xBC,0x1E,0xE7,0x45,0x08 ,0x12,0x44,0xFC,0x88,0x00,0xE0,0x9F,0xF7,0xF3,0x7F ,0x10,0xF4,0x09,0x10,0xE0,0x80,0x40,0x03,0x10,0xFC ,0x0F,0xF0,0xFF,0xE3,0xA3,0x8F,0x80,0xE0,0x83,0xE7 ,0xF7,0x1F,0x42,0x2F,0x10,0x08,0x04,0x02,0x02,0x81 ,0xE0,0x0F,0xF0,0xFF,0x7C,0x7A,0x82,0xF0,0x08,0x00 },
{0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x22,0x00,0x00 ,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40 ,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00 ,0x20,0x00,0x00,0x00,0x02,0x80,0x00,0x00,0x00,0x00 ,0x00,0x20,0x00,0x88,0x00,0x00,0x00,0x00,0x10,0x20 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x08,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00 ,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x01,0x00,0x80,0x00,0x00,0x00,0x00,0x30,0x00 },
{0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x14,0x00,0x80 ,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40 ,0x04,0x01,0xF8,0x0F,0x00,0x00,0x00,0x00,0x42,0x00 ,0x20,0x00,0x00,0x00,0x02,0x80,0x00,0x00,0x00,0x00 ,0x00,0x20,0x00,0x88,0x00,0x00,0x00,0x00,0x10,0x20 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x08,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00 ,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x01,0x00,0x80,0x00,0x00,0x00,0x00,0xC0,0x07 },
{0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x08,0x00,0x80 ,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0 ,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00 ,0x1C,0x00,0x00,0x00,0x02,0x80,0x00,0x00,0x00,0x00 ,0x00,0x20,0x00,0x70,0x00,0x00,0x00,0x00,0x10,0x20 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x08,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }
};
const uint16_t Font16C[256] = {
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0005,0x0082,0x00C5,0x016B,0x02C7,0x03AE,0x056A,0 x06A3,0x0704,0x0764,0x07E7,0x08C9,0x09E2,0x0A27,0x 0B02,0x0B46,
0x0C08,0x0D05,0x0DA7,0x0E87,0x1048,0x1147,0x1228,0 x1327,0x0F48,0x1408,0x1502,0x1542,0x1588,0x1689,0x 17A8,0x18A6,
0x764D,0x196A,0x1AA8,0x6149,0x1BAA,0x1CE8,0x1DE7,0 x1ECA,0x200A,0x2383,0x22C6,0x2128,0x2227,0x23EB,0x 252A,0x614B,
0x2648,0x274B,0x28A9,0x29C8,0x5569,0x2ACA,0x2C09,0 x2D0D,0x2EA8,0x2FA9,0x30A9,0x31C4,0x3266,0x31E4,0x 332A,0x3469,
0x3583,0x35E7,0x37A8,0x7547,0x36C8,0x3887,0x3965,0 x3A08,0x3B08,0x3C02,0x3C44,0x3CE7,0x3CC2,0x3DCB,0x 3F28,0x7548,
0x4028,0x4108,0x3F26,0x4206,0x42C5,0x4368,0x4467,0 x452B,0x4687,0x4767,0x4846,0x4907,0x3241,0x4987,0x 4A6A,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x4BA8,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x4CA7,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x196A,0x4D88,0x1AA8,0x55E6,0x4E8A,0x1CE8,0x4FCD,0 x5168,0x526A,0x538A,0x2128,0x54CA,0x23EB,0x200A,0x 614B,0x55E8,
0x2648,0x6149,0x5569,0x56E8,0x57EB,0x2EA8,0x594A,0 x5A89,0x5B8D,0x5B8E,0x5D4A,0x5DA9,0x5DA7,0x5EC9,0x 60EE,0x5FE9,
0x35E7,0x62A8,0x63A7,0x6D06,0x6488,0x3887,0x658B,0 x66E6,0x67A8,0x6888,0x6968,0x6A48,0x6B29,0x6C28,0x 7548,0x6D08,
0x4028,0x7547,0x6D87,0x4767,0x6E6B,0x4687,0x7127,0 x6FC7,0x708B,0x708C,0x7208,0x7248,0x7246,0x7347,0x 74EB,0x7427
};
const uint8_t Font20[20][144] = {
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x30,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00},
{0x80,0x19,0x00,0x40,0x00,0x00,0x00,0x00,0x8C,0x0F ,0x08,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0xF0,0x1F,0x00,0x00,0x00,0x0C,0xC0,0x00,0x30,0x00 ,0x78,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0 ,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00},
{0xE0,0x19,0x84,0x40,0xE0,0x80,0x01,0x0F,0x8C,0x8D ,0x88,0x00,0x00,0x00,0xCC,0x07,0xC3,0x87,0x1F,0x60 ,0xFC,0xC3,0xFB,0xCF,0x87,0x07,0x00,0x00,0x00,0x00 ,0xF8,0x80,0xC1,0x1F,0x7F,0x80,0x9F,0xFF,0xFF,0x07 ,0x0C,0xF8,0xFF,0xC0,0x0F,0x3C,0xF8,0x03,0x1F,0xFE ,0xC0,0xCF,0x80,0x07,0x1C,0x1C,0x3C,0xE0,0x03,0xFF ,0x3F,0x1E,0x80,0x01,0x00,0x08,0xC0,0x00,0x30,0x00 ,0x7C,0x00,0x03,0xF3,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0x01 ,0x00,0xFC,0x67,0x06,0xFE,0x39,0x0C,0xE7,0xCF,0xC0 ,0xC0,0xFF,0xF0,0xFF,0x3F,0x60,0x03,0x06,0x06,0x06 ,0x06,0x83,0xF9,0x01,0x0C,0x7C,0xF0,0x03,0xFE,0xFC ,0x01,0x00,0x00,0x00,0x00,0x00,0x24,0x00,0x00,0x00 ,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0xFC,0x00},
{0xE0,0x19,0x84,0x40,0xB0,0xC1,0x80,0x1F,0xCC,0x98 ,0xEB,0x00,0x00,0x00,0xE6,0x0F,0xE3,0xCF,0x3F,0x70 ,0xFC,0xF3,0xFB,0xEF,0xCF,0x1F,0x00,0x00,0x00,0x00 ,0xFC,0xC1,0xC3,0x7F,0xFF,0xE1,0xFF,0xFF,0xFF,0x07 ,0x0C,0xF8,0xFF,0xE0,0x0E,0x3C,0xF8,0xC7,0x7F,0xFE ,0xE1,0xDF,0x80,0x0F,0x1E,0x1C,0x6C,0x30,0x03,0xFB ,0x3F,0x36,0xC0,0x03,0x00,0x18,0xC0,0x00,0x30,0x00 ,0x0E,0x00,0x03,0xF3,0x00,0x00,0x00,0x00,0x00,0xC0 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x03 ,0x00,0xFC,0x67,0x06,0xFE,0x39,0x0C,0xF7,0xDF,0xE0 ,0xE0,0xFF,0xF0,0xFF,0x3F,0x60,0x06,0x03,0x06,0x06 ,0x06,0x83,0xF9,0x01,0x0C,0xFF,0xF9,0x0F,0xFF,0x1E ,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00 ,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x03,0x03},
{0xE0,0x19,0x42,0xF0,0x1B,0xC3,0xC0,0x18,0xEC,0x38 ,0x3E,0x00,0x00,0x00,0x66,0xEC,0x23,0x5C,0x70,0x78 ,0x0C,0x38,0x00,0x7C,0xDC,0x18,0x00,0x00,0x00,0x00 ,0x84,0xC3,0xC3,0x60,0x83,0xE3,0xF0,0x01,0x03,0x06 ,0x0C,0xC0,0xCC,0x70,0x1E,0x7E,0x18,0xEE,0xE0,0x86 ,0x73,0xD0,0x80,0x0D,0x36,0x1C,0xE6,0x38,0x87,0x03 ,0x3C,0x36,0xC0,0x03,0x00,0x00,0xC0,0x00,0x30,0x00 ,0x06,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x03 ,0x00,0x0C,0x00,0x00,0x86,0x61,0x8C,0x11,0xF8,0xE0 ,0xE0,0x00,0x30,0x18,0x30,0x60,0x06,0xC3,0x3F,0x06 ,0x06,0x83,0x81,0x01,0x8C,0x83,0x0B,0x9C,0xC3,0x06 ,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00 ,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x80,0x01,0x04},
{0xE0,0x19,0x42,0xF8,0x1F,0x63,0xC0,0x18,0x6C,0x30 ,0x08,0x60,0x00,0x00,0x36,0xF8,0x03,0x18,0x60,0x6C ,0x0C,0x18,0x00,0x3C,0x78,0x30,0x10,0x00,0x40,0x00 ,0x00,0xC3,0xC3,0x60,0x03,0x36,0xC0,0x01,0x03,0x06 ,0x0C,0xC0,0xCC,0x38,0x16,0x5A,0x18,0x6C,0xC0,0x06 ,0x33,0xC0,0x80,0x0D,0x36,0x14,0xC6,0x18,0x86,0x01 ,0x36,0x36,0x60,0x06,0x00,0x00,0xC0,0x00,0x30,0x00 ,0x06,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0xC0 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x03 ,0x00,0x0C,0x00,0x00,0x86,0x61,0x8C,0x01,0xF0,0xF0 ,0xF0,0x00,0x30,0x18,0x30,0x60,0x0C,0xE3,0x7F,0x06 ,0x06,0x83,0x81,0x01,0x8C,0x01,0x03,0x98,0xC1,0x03 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x80,0x00,0x08},
{0xE0,0xD9,0xFF,0x4F,0x1C,0x63,0xC0,0x18,0x6C,0x30 ,0x3E,0x60,0x00,0x00,0x36,0x18,0x03,0x18,0x60,0x66 ,0x0C,0x08,0x00,0x36,0x78,0xF0,0xF6,0x00,0x70,0x00 ,0x00,0x63,0xC6,0x60,0x03,0x3E,0x80,0x01,0x03,0x06 ,0x0C,0xC0,0xCC,0x1C,0x36,0xDA,0x18,0x7C,0xC0,0x07 ,0x33,0xC0,0x80,0x0D,0x36,0x34,0x86,0x0D,0xCC,0x00 ,0x33,0x36,0x30,0x0C,0x00,0xC0,0xCF,0x1E,0x3F,0x3E ,0x3F,0xFC,0x7B,0xFF,0xF0,0x9E,0xB7,0xC7,0x9F,0xEF ,0x3F,0x3C,0x78,0x18,0x1E,0x3C,0xF8,0x1F,0x06,0x03 ,0x00,0x0C,0xC0,0x07,0x86,0xC1,0x8C,0x01,0xF0,0xD0 ,0xD0,0x00,0x30,0x18,0x30,0x60,0x8C,0x71,0xE6,0x06 ,0x06,0x83,0x81,0x01,0xCC,0x01,0x07,0xB0,0xC1,0xFB ,0xFC,0xE0,0x77,0x8C,0xF3,0x0D,0xC3,0x38,0xFE,0xE1 ,0xF0,0xFF,0xF9,0x9F,0x61,0x18,0xE6,0x81,0xE1,0xE3 ,0x83,0x5F,0xF8,0x09},
{0x60,0x00,0x42,0x4C,0x18,0x33,0x80,0x0D,0x30,0xE0 ,0xEB,0x60,0x00,0x00,0x33,0x18,0x03,0x18,0x30,0x66 ,0x0C,0xEC,0x01,0x76,0x7C,0xF0,0xE6,0x03,0x3E,0x00 ,0x00,0x63,0xC6,0x30,0x03,0x1C,0x80,0x01,0x03,0x06 ,0x0C,0xC0,0xCC,0x0E,0x36,0x9B,0x18,0x3C,0x80,0x07 ,0x73,0xC0,0x80,0x19,0x33,0x36,0x86,0x0D,0xCC,0x00 ,0x33,0x66,0x30,0x0C,0x00,0xC0,0xDF,0xBF,0xBF,0x7F ,0x3F,0xFF,0x7F,0xFF,0xD8,0xDF,0xFF,0xEF,0xDF,0xFF ,0x3F,0x6C,0x6C,0x18,0x36,0x66,0xEC,0x1F,0x06,0x03 ,0x00,0x0C,0xF0,0x0F,0x86,0xC1,0xCC,0x00,0xD8,0xD8 ,0xD8,0x00,0x30,0x18,0x30,0x60,0x9C,0x39,0xC6,0x07 ,0x06,0x83,0x81,0x01,0xCC,0x00,0x06,0xB0,0xC1,0xFF ,0xFD,0xE1,0xF7,0xCC,0xFB,0x8F,0xE3,0x3C,0xFE,0xE1 ,0xF0,0xFF,0xFD,0xBF,0x61,0x18,0xE6,0x81,0xF1,0xF7 ,0xC7,0x7F,0x8C,0x11},
{0x60,0x00,0x21,0x4C,0x18,0x33,0x07,0xC7,0x30,0xE0 ,0x88,0x60,0x00,0x00,0x33,0x18,0x03,0x0C,0x1E,0x63 ,0xFC,0xFC,0x03,0xE3,0x6F,0xF0,0x06,0x9F,0x8F,0xFF ,0x83,0x61,0xC6,0x1F,0x03,0x1C,0x80,0xFF,0xFF,0xFF ,0x0F,0xC0,0xCC,0x07,0x26,0x99,0x19,0x36,0x80,0x87 ,0xE1,0xC1,0x80,0x19,0x63,0x36,0x02,0x07,0x78,0x80 ,0x31,0x66,0x18,0x18,0x00,0x00,0xF0,0xB1,0xB1,0xE1 ,0x06,0xC3,0xC7,0xF3,0xCC,0x71,0x7C,0x6C,0x78,0xD0 ,0x30,0x6C,0xCC,0x3C,0x63,0x63,0x0C,0x0C,0x06,0x83 ,0x07,0xFF,0x37,0x1C,0x83,0xC1,0xED,0x80,0xCF,0xC8 ,0xC8,0x3F,0x30,0x18,0x30,0x60,0xD8,0x18,0x86,0x0F ,0x06,0x83,0x81,0x7F,0xFC,0x00,0xE6,0xBF,0xC3,0x83 ,0x8D,0x61,0xC6,0xCC,0x08,0x8F,0xE3,0x0C,0xC6,0xE3 ,0x30,0x18,0x8C,0xF1,0x61,0x18,0x86,0x81,0x39,0x16 ,0x66,0x38,0x86,0x11},
{0x60,0x00,0x21,0xF8,0xB0,0x99,0x8D,0xC7,0x30,0x60 ,0x08,0x60,0x00,0x00,0x33,0x18,0x03,0x0C,0xBE,0x61 ,0xFC,0x0D,0x07,0xE3,0xEF,0x30,0x00,0xFC,0x81,0xFF ,0xE3,0x30,0xCC,0x7F,0x03,0x1C,0xFC,0xFF,0xFF,0xFF ,0x0F,0xC0,0xCC,0x07,0xE6,0x99,0xF9,0x37,0x80,0xFF ,0xC1,0xCF,0x80,0x19,0x63,0x22,0x03,0x07,0x78,0xC0 ,0x30,0x66,0x0C,0x30,0x00,0x00,0xF0,0xE0,0xF0,0xC0 ,0x86,0xC1,0xC3,0xF3,0xC6,0x30,0x3C,0x38,0x78,0xC0 ,0x30,0x6C,0xCC,0x3C,0x63,0x63,0x0C,0x0C,0x03,0xC6 ,0x0F,0xFF,0x1F,0x18,0x83,0x81,0x7F,0x80,0xCF,0xCC ,0xCC,0xFF,0x30,0x18,0x30,0x60,0xD8,0x18,0x86,0xFD ,0x07,0x83,0x81,0xFF,0xFC,0x00,0xE6,0x3F,0xFF,0x03 ,0x8F,0x61,0x86,0xCC,0x00,0xCF,0xF3,0x0C,0xC6,0xF3 ,0x30,0x18,0x86,0xE1,0x61,0x18,0x86,0x81,0x19,0x0C ,0x6C,0x38,0x86,0x11},
{0x60,0x00,0x21,0xF0,0xE3,0xCC,0xD8,0xCC,0x30,0x60 ,0x00,0xFF,0x7F,0x80,0x33,0x18,0x03,0x06,0xF0,0xFF ,0x81,0x0F,0x86,0x61,0xCC,0x3F,0x00,0x60,0x00,0x00 ,0x30,0x30,0xCC,0xE0,0x03,0x1C,0xFC,0x01,0x03,0x06 ,0x0C,0xC0,0xCC,0x0E,0xE6,0x19,0xFB,0x31,0x80,0x7F ,0x00,0xDE,0x80,0xB1,0x61,0x22,0x03,0x07,0x30,0xC0 ,0x30,0xE6,0x00,0x00,0x00,0x00,0xFF,0xE0,0xF0,0xFF ,0x86,0xC1,0xC3,0xF3,0xC3,0x30,0x3C,0x38,0xF8,0xC1 ,0x30,0xCC,0xC6,0x24,0xC3,0xC1,0x06,0xC6,0x00,0xF8 ,0x9C,0x0F,0xF8,0x1F,0x83,0x81,0x7F,0x00,0xD8,0xC4 ,0xC4,0xC0,0x31,0x18,0x30,0x60,0xF0,0x18,0x86,0xF9 ,0x06,0x83,0x81,0xC1,0xCD,0x00,0x06,0x30,0xFC,0x03 ,0xFF,0x60,0x86,0x6D,0xF0,0x4D,0xD3,0x06,0xC6,0xD2 ,0x3F,0x18,0x86,0xE1,0x61,0x18,0x86,0x9F,0x1F,0xEC ,0x6F,0x38,0x86,0x11},
{0x60,0xE0,0xFF,0x40,0x07,0xCC,0x78,0xD8,0x30,0x60 ,0x00,0xFF,0x7F,0x80,0x31,0x18,0x03,0x03,0xE0,0xFF ,0x01,0x0F,0x86,0x31,0x98,0x37,0x00,0xFC,0x01,0x00 ,0x30,0xF0,0xCF,0xC0,0x03,0x1C,0xE0,0x01,0x03,0x06 ,0x0C,0xC0,0xCC,0x1C,0xC6,0x18,0x1B,0x30,0x80,0xE7 ,0x00,0xF0,0x80,0xB1,0x61,0x63,0x83,0x0D,0x30,0x60 ,0x30,0xC6,0x00,0x00,0x00,0xC0,0xFF,0xE0,0xF0,0xFF ,0x86,0xC1,0xC3,0xF3,0xC7,0x30,0x3C,0x38,0xD8,0xCF ,0x30,0xCC,0xC6,0x24,0xC3,0xC1,0x06,0x03,0x03,0x66 ,0xF8,0x0D,0xF8,0x1F,0x83,0xC1,0xCC,0x00,0xF0,0xC6 ,0xC6,0x80,0x31,0x18,0x30,0x60,0x70,0x38,0xC6,0x01 ,0x06,0x83,0x81,0x81,0xCD,0x00,0x06,0x30,0xCC,0x03 ,0xFF,0x31,0x06,0x3F,0xF0,0x6D,0xDB,0x07,0xC6,0xDE ,0x3F,0x18,0x86,0xE1,0x7F,0x18,0x86,0xBF,0x1F,0xEC ,0xCF,0x3F,0x86,0x11},
{0x60,0x80,0x10,0x40,0x06,0xC6,0x78,0x70,0x30,0x60 ,0x00,0x60,0x00,0x80,0x31,0x18,0x83,0x01,0x60,0x60 ,0x00,0x0F,0xC6,0x30,0x18,0x10,0x00,0x9F,0x8F,0xFF ,0x33,0xF8,0xDF,0xC0,0x03,0x3E,0xE0,0x01,0x03,0x06 ,0x0C,0xC0,0xCC,0x18,0xC6,0x18,0x1A,0x70,0xC0,0xC7 ,0x01,0xF0,0x80,0xB1,0x41,0x63,0x83,0x0D,0x30,0x60 ,0x30,0xC6,0x00,0x00,0x00,0xE0,0xF0,0xE0,0xF0,0x00 ,0x86,0xC1,0xC3,0xF3,0xC6,0x30,0x3C,0x38,0x18,0xDF ,0x30,0xCC,0x86,0x66,0xC1,0xC1,0x86,0x01,0x02,0x62 ,0xF0,0x0C,0x18,0x80,0x81,0x61,0x8C,0x01,0xF0,0xC2 ,0xC2,0x80,0x19,0x18,0x30,0x60,0x60,0x70,0xE6,0x00 ,0x06,0x83,0x81,0x81,0xCD,0x01,0x07,0x38,0xC6,0x03 ,0x0F,0x33,0x86,0x7F,0x00,0x2F,0xCB,0x06,0xC6,0xCC ,0x30,0x18,0x86,0x61,0x7F,0x18,0x86,0xB1,0x19,0x0C ,0x8C,0x3F,0x86,0x11},
{0x00,0x80,0x10,0x40,0x06,0xC6,0x78,0x70,0x30,0x60 ,0x00,0x60,0x00,0x80,0x31,0x18,0xC3,0x00,0x60,0x60 ,0x00,0x1F,0xC6,0x30,0x18,0x18,0xE0,0x03,0xBE,0xFF ,0x03,0x18,0xD8,0xC0,0x03,0x36,0xE0,0x01,0x03,0x06 ,0x0C,0xC0,0xCC,0x30,0x06,0x18,0x1E,0x60,0xC0,0x86 ,0x11,0xF0,0x80,0xB1,0xC1,0xE3,0xC1,0x18,0x30,0x30 ,0x30,0xC6,0x00,0x00,0x00,0x60,0xF0,0xE0,0xF0,0x00 ,0x86,0xC1,0xC3,0xF3,0xCC,0x30,0x3C,0x38,0x18,0xD8 ,0x30,0x8C,0x83,0x42,0x61,0x83,0xC3,0x00,0x06,0x03 ,0x00,0x0C,0x18,0x80,0x81,0x61,0x8C,0x01,0xF0,0xC3 ,0xC3,0x80,0x19,0x18,0x30,0x60,0x30,0xE0,0x7F,0x00 ,0x06,0x83,0x81,0x81,0x8D,0x01,0x03,0x18,0xC7,0x06 ,0x0F,0x33,0x86,0x6D,0x00,0x3F,0xCF,0x0C,0xC6,0xCC ,0x30,0x18,0x86,0x61,0x60,0x18,0x86,0xB1,0x19,0x0C ,0x8C,0x39,0xCC,0x09},
{0x00,0x80,0x10,0x44,0x07,0xC3,0xF8,0xF0,0x30,0x60 ,0x00,0x60,0x00,0xDE,0x60,0x0C,0x63,0x40,0x70,0x60 ,0x82,0x19,0x63,0x70,0x1C,0xDC,0xFC,0x00,0x70,0x00 ,0x00,0x18,0xD8,0xE0,0x83,0xF3,0xE0,0x01,0x03,0x06 ,0x0C,0xE0,0xCC,0x60,0x06,0x18,0x1C,0xE0,0xE0,0x06 ,0x33,0xB8,0xC1,0xE0,0xC0,0xC1,0xE1,0x38,0x30,0x18 ,0x30,0x86,0x01,0x00,0x00,0x60,0xF8,0xB0,0xB9,0x81 ,0x86,0xC3,0xC3,0xF3,0xD8,0x30,0x3C,0x7C,0x3C,0xD8 ,0x30,0x8E,0x83,0xC3,0x61,0x83,0xC3,0x00,0x06,0x03 ,0x00,0x0C,0x30,0xD0,0x80,0x31,0x0C,0x13,0xD8,0xC1 ,0xC1,0xC0,0x18,0x18,0x30,0x60,0x30,0xC0,0x3F,0x00 ,0x06,0x83,0x81,0xC1,0x8D,0x83,0x0B,0x1C,0xC3,0x86 ,0x0D,0x1B,0xC6,0xCC,0x04,0x1F,0xC7,0x18,0xC3,0xC0 ,0x30,0x18,0x8E,0x31,0x60,0x18,0x86,0xB1,0x31,0x16 ,0xC6,0x58,0xB8,0x0F},
{0x60,0x40,0x08,0xFC,0x03,0x83,0xCD,0xDF,0x61,0x30 ,0x00,0x60,0x00,0xDB,0xE0,0xEF,0xFF,0xFF,0x3F,0x60 ,0xFE,0xF9,0x63,0xE0,0xCF,0xCF,0x16,0x00,0x40,0x00 ,0x30,0x1C,0xF8,0x7F,0xFF,0xE1,0xFF,0xFF,0x03,0x06 ,0xFC,0x7F,0xFF,0xE0,0x06,0x18,0x1C,0xC0,0x7F,0x06 ,0xF7,0x9F,0xFF,0xE0,0xC0,0xC1,0x61,0x30,0x30,0xF8 ,0x3F,0x86,0x01,0x00,0x00,0xE0,0xFF,0xBF,0xBF,0xFF ,0x06,0xFF,0xC3,0xF3,0xF8,0x30,0xFC,0xEF,0xFF,0xCF ,0xEF,0x8F,0x83,0xC3,0x31,0x86,0xE3,0x1F,0x06,0x03 ,0x00,0xFC,0xF7,0xFF,0xFF,0x1B,0x0C,0xF6,0xDF,0xC1 ,0xC1,0xFF,0x0E,0x18,0xF0,0xFF,0x3E,0x00,0x06,0x00 ,0xFE,0xFF,0x87,0xFF,0x0C,0xFF,0xF9,0x8F,0xC1,0xFC ,0xFC,0xFD,0x6F,0x8C,0xFD,0x1D,0xC7,0xB0,0xC3,0xC0 ,0x30,0x18,0xFC,0x3F,0xE0,0xFF,0x9F,0x9F,0xF1,0xF7 ,0x67,0xD8,0x00,0x00},
{0x60,0x40,0x08,0xF8,0x81,0x01,0x87,0x8F,0x63,0x30 ,0x00,0x60,0x00,0xDB,0xC0,0xE7,0xFF,0xBF,0x1F,0x60 ,0x7C,0xE0,0x31,0xC0,0xC7,0xC3,0x06,0x00,0x00,0x00 ,0x30,0x0C,0xF0,0x1F,0x7F,0x80,0x9F,0xFF,0x03,0x06 ,0xFC,0x3F,0xFF,0xC0,0x07,0x18,0x1C,0x00,0x1F,0x06 ,0xCE,0x07,0x3E,0xE0,0xC0,0xC1,0x31,0x60,0x30,0xF8 ,0x3F,0x86,0x01,0x00,0x00,0x80,0xF7,0x1E,0x37,0x7E ,0x06,0xDE,0xC3,0xF3,0xF0,0x30,0xFC,0xC7,0xDB,0x87 ,0xCF,0x0D,0x01,0xC3,0x18,0x8C,0xE1,0x1F,0x06,0x03 ,0x00,0xFC,0xC7,0xEF,0xFF,0x0F,0x0C,0xEC,0xC7,0xC0 ,0xC0,0x3F,0x06,0x18,0xF0,0xFF,0x1E,0x00,0x06,0x00 ,0xFE,0xFF,0x87,0x3F,0x0C,0x7C,0xF0,0xC3,0xC1,0x78 ,0xFC,0xFC,0x3F,0x0C,0xFB,0x0C,0xC3,0xE0,0xC1,0xC0 ,0x30,0x18,0xF8,0x1F,0xE0,0xFF,0x9F,0x8F,0xE1,0xE3 ,0x31,0x98,0x01,0x00},
{0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0xE0,0x38 ,0x00,0x00,0x00,0xC1,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x30,0x86,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0xC0,0x00,0x30,0x00,0x00,0x30,0x00,0x18,0x00 ,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x06,0x03 ,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00 ,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x80,0x01,0x00,0x00,0x18,0x00,0x00,0x00 ,0x00,0x00,0x03,0x00},
{0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0xC0,0x1D ,0x00,0x00,0x80,0x61,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x30,0x06,0x03,0xC0,0xFF,0x01,0x00,0x00,0x00,0x00 ,0x00,0xE7,0x00,0x30,0x00,0x00,0x30,0x00,0x18,0x00 ,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x8C,0x01 ,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00 ,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x80,0x01,0x00,0x00,0x18,0x00,0x00,0x00 ,0x00,0x00,0xFC,0x01},
{0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x80,0x0F ,0x00,0x00,0x80,0x61,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01 ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0xF0,0x07,0x03,0xC0,0xFF,0x01,0x00,0x00,0x00,0x00 ,0x00,0x7F,0x00,0x1C,0x00,0x00,0x30,0x00,0x18,0x00 ,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xF8,0x00 ,0x00,0x00,0x00,0x60,0x00,0x03,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00 ,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x80,0x01,0x00,0x00,0x18,0x00,0x00,0x00 ,0x00,0x00,0x00,0x00}
};
const uint16_t Font20C[256] = {
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0005,0x0083,0x00E6,0x01AD,0x0349,0x0472,0x06AD,0 x0842,0x0886,0x0926,0x09E9,0x0B0C,0x0CE4,0x0BE8,0x 0D62,0x0DA7,
0x0E89,0x0FA7,0x10A9,0x11C9,0x12EA,0x1429,0x1549,0 x1669,0x1789,0x18A9,0x19C2,0x1A04,0x1BAA,0x1CEB,0x 1A8B,0x1E48,
0x8DB0,0x1F4C,0x20CA,0x72CB,0x220C,0x24E9,0x2609,0 x236C,0x272B,0x2A06,0x2908,0x2ACB,0x2849,0x2C2C,0x 2D6A,0x72CD,
0x2E69,0x2F8D,0x312B,0x328A,0x66CC,0x33CB,0x352B,0 x3671,0x388B,0x39EC,0x3B69,0x3C85,0x3D67,0x3CC5,0x 3E4C,0x3FCB,
0x4124,0x41A9,0x42C9,0x8A67,0x43C8,0x44CA,0x4607,0 x46E9,0x4808,0x4902,0x4944,0x49C8,0x49C2,0x4ACE,0x 4AC8,0x8A69,
0x4C89,0x4D89,0x4AC6,0x4EA8,0x4FA7,0x5088,0x5189,0 x52AE,0x5469,0x5589,0x56A8,0x57C9,0x3D22,0x5889,0x 59AD,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x5B49,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0 x0000,0x5C6A,0x0000,0x0000,0x0000,0x0000,0x0000,0x 0000,0x0000,
0x1F4C,0x64CB,0x20CA,0x6769,0x5DAD,0x24E9,0x5F52,0 x618A,0x62CA,0x63CA,0x2ACB,0x662C,0x2C2C,0x272B,0x 72CD,0x676B,
0x2E69,0x72CB,0x66CC,0x6A0B,0x6B6E,0x388B,0x688C,0 x6D2A,0x6E30,0x6E32,0x706E,0x70ED,0x70EA,0x746B,0x 7251,0x75CA,
0x41A9,0x770A,0x7848,0x8287,0x794A,0x44CA,0x7A8E,0 x7C48,0x7D48,0x7E08,0x7EC9,0x7FCA,0x80CA,0x81C8,0x 8A69,0x8289,
0x4C89,0x8A67,0x82EA,0x5589,0x842E,0x5469,0x8769,0 x85E8,0x86AE,0x86B0,0x88A9,0x88EA,0x88E7,0x8B88,0x 89ED,0x8C89
};
void Wait_Press()
{
uint16_t i = 0;
while(i ‹ 10000)
{
if (READ_PIN(KEY_PRESS))
{
i++;
}
}
i = 0;
while(i ‹ 10000)
{
if (READ_PIN(KEY_PRESS)==0)
{
i++;
}
}
}
void delay_ms(uint16_t ms)
{
uint16_t i;
for (i=0; i‹ms; i++)
delay_us(999);
}
uint16_t RGB_16(uint8_t Red, uint8_t Green, uint8_t Blue)
{
uint16_t Color = Red & 0xF8;
Color ‹‹= 5;
Color |= (Green & 0xFC);
Color ‹‹= 6;
Color |= (Blue››3 & 0x1F);
return Color;
}
void SPI1_Init(void)
{
RCC-›APB2ENR |= RCC_APB2ENR_SPI1EN; /* Enable SPI1 clock */
/* Configure PA6 to MISO, PA7 to MOSI, PB3 to SCK */
GPIOA-›AFR[0] &= ~((15ul ‹‹ 4* 6) | (15ul ‹‹ 4* 7));
GPIOA-›AFR[0] |= (( 0ul ‹‹ 4* 6) | ( 0ul ‹‹ 4* 7));
GPIOB-›AFR[0] &= ~(15ul ‹‹ 4* 3);
GPIOB-›AFR[0] |= ( 0ul ‹‹ 4* 3);
GPIOA-›MODER &= ~(( 3ul ‹‹ 2* 6) | ( 3ul ‹‹ 2* 7));
GPIOA-›MODER |= (( 2ul ‹‹ 2* 6) | ( 2ul ‹‹ 2* 7));
GPIOB-›MODER &= ~( 3ul ‹‹ 2* 3);
GPIOB-›MODER |= ( 2ul ‹‹ 2* 3);
SPI1-›CR1 = 0x00000000; /* Reset SPI1 CR1 Registry*/
SPI1-›CR1 = (( 0ul ‹‹ 0) | /* CPHA=0 */
( 0ul ‹‹ 1) | /* CPOL=0 */
( 1ul ‹‹ 2) | /* MSTR=1 */
( 7ul ‹‹ 3) | /* BR (fPCLK/32) ~= 1.5 Mbit/sec */
( 0ul ‹‹ 7) | /* LSBFIRST */
( 0ul ‹‹ 8) | /* SSI */
( 1ul ‹‹ 14) | /* SSI */
( 1ul ‹‹ 9)); /* SSM */
SPI1-›CR2 = 0x00000000; /* Reset SPI1 CR2 Registry*/
SPI1-›CR2 |= (SPI_CR2_NSSP | SPI_CR2_DS_0 | SPI_CR2_DS_1 | SPI_CR2_DS_2 | SPI_CR2_FRXTH);
SPI1-›CRCPR = 0x0007;
SPI1-›CR1 |= SPI_CR1_SPE; /* Enable SPI1 */
}
void SPI1_Write_byte (uint8_t wr)
{
while ((SPI1-›SR & SPI_SR_TXE) != SPI_SR_TXE);
*(uint8_t *)&(SPI1-›DR) = wr;
}
void write_byte(uint8_t c, uint8_t com)//0-command 1-data
{
//uint8_t i;
if(com==0)
{
PIN_0(DC);
}
else
{
PIN_1(DC);
}
SPI1_Write_byte(c);
// PIN_1(SCL);
// for(i=0;i‹8;i++)
// {
//
// if(((c››(7-i))&1) == 1)
// {
// PIN_1(SDA);
// }
// else
// {
// PIN_0(SDA);
// }
// PIN_0(SCL);
// //delay_us(1);
// PIN_1(SCL);
// }
}
void Reset()
{
PIN_0(RES);
delay_ms(10);
PIN_1(RES);
delay_ms(150);
}
void TFTInit()
{
//uint16_t i=0;
PIN_1(RES);
PIN_1(DC);
//PIN_1(SCL);
//PIN_1(SDA);
Reset();
write_byte(0x01,0);
delay_ms(150);
write_byte(0x11,0);
delay_ms(100);
write_byte(0x3A,0);
write_byte(0x05,1);
write_byte(0x36,0);
write_byte(0x54,1);
write_byte(0x21,0);
write_byte(0x13,0);
write_byte(0x29,0);
}
void WriteTwoByte(uint8_t LCD_DataH, uint8_t LCD_DataL)
{
write_byte(LCD_DataH,1);
write_byte(LCD_DataL,1);
}
void OutColor(uint16_t color)
{
uint16_t hC = color››8;
uint16_t lC = color&0x00FF;
WriteTwoByte((uint8_t)hC,(uint8_t)lC);
}
void Area(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1)
{
uint16_t yb,ye;
yb = y0;
ye = y1;
//yb += 80;
//ye += 80;
write_byte(0x2a,0);
write_byte((uint8_t)((yb››8)&0x00FF),1);
write_byte((uint8_t)(yb&0x00FF),1);
write_byte((uint8_t)((ye››8)&0x00FF),1);
write_byte((uint8_t)(ye&0x00FF),1);
write_byte(0x2b,0);
write_byte(0,1);
write_byte(x0,1);
write_byte(0,1);
write_byte(x1,1);
write_byte(0x2c,0);
}
void TFTSingleColor(uint16_t color)
{
uint8_t i,j;
Area(0,0,240,240);
for (i=0;i‹240;i++)
for (j=0;j‹240;j++)
OutColor(color);
}
void DrawRect(uint8_t x0, uint8_t y0, uint8_t w, uint8_t h, uint16_t color)
{
uint8_t i,j;
Area(x0,y0,x0+w-1,y0+h-1);
for (i=0;i‹w;i++)
for (j=0;j‹h;j++)
OutColor(color);
}
void DrawPixel(uint8_t x0, uint8_t y0, uint16_t color)
{
Area(x0,y0,x0,y0);
OutColor(color);
}
void WriteChar(uint8_t s)
{
uint8_t xb,yb,xe,ye;
uint8_t ic,ib,w;
uint8_t i,j;
uint16_t tmp;
if (Font == 11)
{
tmp = Font11C[s];
}
else if (Font == 16)
{
tmp = Font16C[s];
}
else if (Font == 20)
{
tmp = Font20C[s];
}
w = (uint8_t)(tmp&0x001F);
tmp››=5;
ib = (uint8_t)(tmp&0x0007);
tmp››=3;
ic = (uint8_t)(tmp&0x00FF);
xb = x0;
yb = y0;
xe = xb+w;
ye = yb+Font-1;
x0 += (w+1);
Area(xb, yb, xe, ye);
for(i=0;i‹w;i++)
{
for(j=0;j‹Font;j++)
{
uint8_t bit;
if (Font == 11)
{
bit = Font11[j][ic]&(1‹‹ib);
}
else if (Font == 16)
{
bit = Font16[j][ic]&(1‹‹ib);
}
else if (Font == 20)
{
bit = Font20[j][ic]&(1‹‹ib);
}
if(bit)
{
OutColor(CC);
}
else
{
OutColor(BC);
}
}
ib++;
if(ib==8)
{
ib = 0;
ic++;
}
}
for(j=0;j‹Font;j++)
{
OutColor(BC);
}
}
void SettingText(uint8_t x, uint8_t y, uint16_t Ccolor, uint16_t Bcolor, uint8_t F)
{
x0 = x;
y0 = y;
CC = Ccolor;
BC = Bcolor;
Font = F;
}
void SetColor(uint16_t Ccolor, uint16_t Bcolor)
{
CC = Ccolor;
BC = Bcolor;
}
void SetFont(uint8_t F)
{
Font = F;
}
void GoToXY(uint8_t x, uint8_t y)
{
x0 = x;
y0 = y;
}
void WriteStr(char *str)
{
uint8_t i = 0;
uint8_t ch = str[i];
xe = x0;
while (ch)
{
WriteChar(ch);
i++;
ch = str[i];
}
}
int8_t IntToStr(int32_t Val, uint8_t sist) //Процедура перевода числа в строку
{
int8_t i=0; //Индекс текущего символа
uint32_t tVal; //Модуль выводимого числа
uint8_t dig;
if (Val ›= 0)
{
tVal = Val;
}
else
{
tVal = -Val;
}
while (tVal) //Пока модуль числа не равен 0
{
dig = tVal%sist;
if (dig‹10)
{
DigChars[i] = tVal%sist+'0'; //Текущий символ равен младшей десятичной цифре этой переменной
}
else
{
DigChars[i] = tVal%sist+('A'-10); //Текущий символ равен младшей десятичной цифре этой переменной
}
tVal/=sist; //деление на основание системы счисления переменной модуля числа
i++;
}
//В результате данного цикла в массиве находятся цифры числа в кодировке ASCII в обратном порядке
if (Val ‹ 0) //Если исходное число отрицательное
{
DigChars[i] = '-'; //добавление к массиву символа "-"
i++;
}
if (i) //Если массив не пуст
{
i--; //Индекс массива указывает на последний элемент
}
else //Иначе если массив пуст
{
DigChars[0] = '0'; //Значение числа равно нулю (он-то и выведется на экран)
}
return i;
}
void WriteNum_ex(int32_t val, uint8_t MinLen, uint8_t AfPo, uint8_t Space, uint8_t Plus)//Процедура вывода числа
{
uint8_t ml = MinLen; //Минимальный индекс на 1 меньше минимальной длинны числа
int8_t i=IntToStr(val,10);
xe = x0;
if (AfPo == 0)
{
ml--;
}
while (i‹(AfPo+1))
{
i++;
DigChars[i] = '0'; //Значение числа равно нулю (он-то и выведется на экран)
}
while (i‹ml) //Пока индекс меньше минимального
{
WriteChar(Space); //выводится пробел (или другой символ указанный пользователем)
ml--; //и уменьшается минимальный индекс
}
if (Plus && val›0) //Если в положительных числах тоже нужно указывать знак
{ //и чичло положительное
WriteChar('+');
}
for (;i›=0;i--)
{
if ((i+1) == AfPo)
{
WriteChar('.');
}
WriteChar(DigChars[i]); //вывод массива символов цифр в обратном порядке
}
}
void WriteNum(int32_t val) //Процедура вывода числа (упрощенная)
{
int8_t i=IntToStr(val,10);
xe = x0;
for (;i›=0;i--)
{
WriteChar(DigChars[i]); //вывод массива символов цифр в обратном порядке
}
}
void ClrTxt()
{
uint8_t i,j;
Area(xe, y0, x0, y0+Font-1);
for (i=xe; i‹=x0; i++)
{
for (j=0; j‹Font; j++)
{
OutColor(BC);
}
}
}
int main()
{
// uint32_t i=14;
InitClock();
OnAllGPIO();
SPI1_Init();
//PORT_OUT(SCL);
//PORT_OUT(SDA);
PORT_OUT(RES);
PORT_OUT(DC);
PORT_OUT(LED);
TFTInit();
PIN_1(LED);
PORT_IN(KEY_PRESS);
PORT_OUT(LED_1);
PORT_OUT(LED_2);
TFTSingleColor(0xFFFF);
// SettingText(5,5,0xF100,0x0000,16);
while(1)
{
uint8_t ch = 0;
// ClrTxt();
// x0 = 5;
// WriteNum_ex(i,4,2,' ',0);
// i+=(i››2);
PIN_1(LED_1);
SettingText(5,5,0x0000,0xFFFF,11);
do
{
WriteChar(ch);
ch++;
if (x0 ›227)
{
x0 = 5;
y0 += 11;
}
}
while(ch);
DrawRect(2,y0+15,230,1,RGB_16(0xFF,0,0));
Wait_Press();
PIN_0(LED_1);
PIN_1(LED_2);
SettingText(5,5,0x0000,0xFFFF,16);
do
{
WriteChar(ch);
ch++;
if (x0 ›227)
{
x0 = 5;
y0 += 16;
}
}
while(ch);
DrawRect(2,y0+20,230,2,RGB_16(0,0xFF,0));
Wait_Press();
PIN_1(LED_1);
SettingText(5,5,0x0000,0xFFFF,20);
do
{
WriteChar(ch);
ch++;
if (x0 ›227)
{
x0 = 5;
y0 += 20;
}
}
while(ch);
DrawRect(2,y0+22,230,3,RGB_16(0,0,0xFF));
Wait_Press();
PIN_0(LED_2);
}
} |