Library for interfacing to Nokia 5110 LCD display (as found on the SparkFun website).

Dependents:   LV7_LCDtest LV7_Grupa5_Tim003_Zadatak1 lv7_Grupa5_Tim008_zad1 LV7_PAI_Grupa5_tim10_Zadatak1 ... more

This library is designed to make it easy to interface an mbed with a Nokia 5110 LCD display.

These can be found at Sparkfun (https://www.sparkfun.com/products/10168) and Adafruit (http://www.adafruit.com/product/338).

The library uses the SPI peripheral on the mbed which means it is much faster sending data to the display than other libraries available on other platforms that use software SPI.

The library can print strings as well as controlling individual pixels, meaning that both text and primitive graphics can be displayed.

Committer:
eencae
Date:
Wed Jul 16 08:42:27 2014 +0000
Revision:
10:6f3abb40202b
Parent:
8:40abe5736eca
Child:
11:fc7d89b33e4c
Added example code to show how to use sprintf() to print data variables on the display.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 1:df68f34cd32d 1 /**
eencae 2:e93021cfb0a9 2 @file N5110.h
eencae 1:df68f34cd32d 3
eencae 5:6ea180eef702 4 @brief Header file containing member functions and variables
eencae 4:e923c54c1c7d 5
eencae 0:d563e74f0ae9 6 */
eencae 0:d563e74f0ae9 7
eencae 0:d563e74f0ae9 8 #ifndef N5110_H
eencae 0:d563e74f0ae9 9 #define N5110_H
eencae 0:d563e74f0ae9 10
eencae 0:d563e74f0ae9 11 // Command Bytes - taken from Chris Yan's library
eencae 2:e93021cfb0a9 12 // More information can be found in the display datasheet
eencae 2:e93021cfb0a9 13 // H = 0 - Basic instructions
eencae 0:d563e74f0ae9 14 #define CMD_DC_CLEAR_DISPLAY 0x08
eencae 0:d563e74f0ae9 15 #define CMD_DC_NORMAL_MODE 0x0C
eencae 0:d563e74f0ae9 16 #define CMD_DC_FILL_DISPLAY 0x09
eencae 0:d563e74f0ae9 17 #define CMD_DC_INVERT_VIDEO 0x0D
eencae 0:d563e74f0ae9 18 #define CMD_FS_HORIZONTAL_MODE 0x00
eencae 0:d563e74f0ae9 19 #define CMD_FS_VERTICAL_MODE 0x02
eencae 0:d563e74f0ae9 20 #define CMD_FS_BASIC_MODE 0x00
eencae 0:d563e74f0ae9 21 #define CMD_FS_EXTENDED_MODE 0x01
eencae 0:d563e74f0ae9 22 #define CMD_FS_ACTIVE_MODE 0x00
eencae 0:d563e74f0ae9 23 #define CMD_FS_POWER_DOWN_MODE 0x04
eencae 2:e93021cfb0a9 24 // H = 1 - Extended instructions
eencae 0:d563e74f0ae9 25 #define CMD_TC_TEMP_0 0x04
eencae 0:d563e74f0ae9 26 #define CMD_TC_TEMP_1 0x05
eencae 0:d563e74f0ae9 27 #define CMD_TC_TEMP_2 0x06
eencae 0:d563e74f0ae9 28 #define CMD_TC_TEMP_3 0x07
eencae 0:d563e74f0ae9 29 #define CMD_BI_MUX_24 0x15
eencae 0:d563e74f0ae9 30 #define CMD_BI_MUX_48 0x13
eencae 0:d563e74f0ae9 31 #define CMD_BI_MUX_100 0x10
eencae 0:d563e74f0ae9 32 #define CMD_VOP_6V06 0xB2
eencae 0:d563e74f0ae9 33 #define CMD_VOP_7V38 0xC8
eencae 0:d563e74f0ae9 34
eencae 0:d563e74f0ae9 35 #include "mbed.h"
eencae 0:d563e74f0ae9 36
eencae 5:6ea180eef702 37 /**
eencae 5:6ea180eef702 38 @brief Simple library for interfacing with Nokia 5110 LCD display (https://www.sparkfun.com/products/10168) using the hardware SPI on the mbed.
eencae 5:6ea180eef702 39 @brief The display is powered from a GPIO pin meaning it can be controlled via software. The LED backlight is also software-controllable (via PWM pin).
eencae 5:6ea180eef702 40 @brief Can print characters and strings to the display using the included 5x7 font.
eencae 5:6ea180eef702 41 @brief The library also implements a screen buffer so that individual pixels on the display (84 x 48) can be set, cleared and read.
eencae 5:6ea180eef702 42
eencae 5:6ea180eef702 43 @brief Acknowledgements to Chris Yan's Nokia_5110 Library.
eencae 5:6ea180eef702 44
eencae 5:6ea180eef702 45 @brief Revision 1.0
eencae 5:6ea180eef702 46
eencae 5:6ea180eef702 47 @author Craig A. Evans
eencae 5:6ea180eef702 48 @date January 2014
eencae 2:e93021cfb0a9 49 *
eencae 2:e93021cfb0a9 50 * Example:
eencae 2:e93021cfb0a9 51 * @code
eencae 6:adb79338d40f 52
eencae 6:adb79338d40f 53 #include "mbed.h"
eencae 6:adb79338d40f 54 #include "N5110.h"
eencae 6:adb79338d40f 55
eencae 6:adb79338d40f 56 // VCC,SCE,RST,D/C,MOSI,SCLK,LED
eencae 6:adb79338d40f 57 N5110 lcd(p7,p8,p9,p10,p11,p13,p26);
eencae 6:adb79338d40f 58
eencae 6:adb79338d40f 59 int main() {
eencae 6:adb79338d40f 60
eencae 6:adb79338d40f 61 // initialise display
eencae 6:adb79338d40f 62 lcd.init();
eencae 6:adb79338d40f 63 // print a string in top-left corner
eencae 6:adb79338d40f 64 lcd.printString("Hello, World!",0,0);
eencae 6:adb79338d40f 65 // move cursor to 4th row
eencae 6:adb79338d40f 66 lcd.setXYAddress(0,3);
eencae 6:adb79338d40f 67 // print character
eencae 6:adb79338d40f 68 lcd.printChar('X');
eencae 10:6f3abb40202b 69
eencae 10:6f3abb40202b 70 // data to be printed on display
eencae 10:6f3abb40202b 71 int temperature = 27;
eencae 10:6f3abb40202b 72 // print formatted data to buffer
eencae 10:6f3abb40202b 73 char buffer[14]; // each character is 6 pixels, screen is 84 pixels (84/6 = 14)
eencae 10:6f3abb40202b 74 int length = sprintf(buffer,"Temperatu = %2d",temperature);
eencae 10:6f3abb40202b 75 // it is important the format specifier ensures the string will fit in the buffer
eencae 10:6f3abb40202b 76 // if string will fit on display
eencae 10:6f3abb40202b 77 if (length <= 14)
eencae 10:6f3abb40202b 78 lcd.printString(buffer,0,4); // display on screen
eencae 10:6f3abb40202b 79 else
eencae 10:6f3abb40202b 80 lcd.printString("Too long",0,4); // else print error message
eencae 10:6f3abb40202b 81
eencae 10:6f3abb40202b 82 // same idea with floats
eencae 10:6f3abb40202b 83 float humidity = 9.45;
eencae 10:6f3abb40202b 84 length = sprintf(buffer,"Humidit = %4.2f",humidity);
eencae 10:6f3abb40202b 85 if (length <= 14)
eencae 10:6f3abb40202b 86 lcd.printString(buffer,0,2);
eencae 10:6f3abb40202b 87 else
eencae 10:6f3abb40202b 88 lcd.printString("Too long",0,2);
eencae 10:6f3abb40202b 89
eencae 6:adb79338d40f 90 while(1);
eencae 6:adb79338d40f 91 }
eencae 6:adb79338d40f 92
eencae 2:e93021cfb0a9 93 * @endcode
eencae 2:e93021cfb0a9 94 */
eencae 1:df68f34cd32d 95 class N5110
eencae 1:df68f34cd32d 96 {
eencae 0:d563e74f0ae9 97
eencae 1:df68f34cd32d 98 public:
eencae 1:df68f34cd32d 99 /** Create a N5110 object connected to the specified pins
eencae 1:df68f34cd32d 100 *
eencae 1:df68f34cd32d 101 * @param pwr Pin connected to Vcc on the LCD display (pin 1)
eencae 1:df68f34cd32d 102 * @param sce Pin connected to chip enable (pin 3)
eencae 1:df68f34cd32d 103 * @param rst Pin connected to reset (pin 4)
eencae 1:df68f34cd32d 104 * @param dc Pin connected to data/command select (pin 5)
eencae 1:df68f34cd32d 105 * @param mosi Pin connected to data input (MOSI) (pin 6)
eencae 1:df68f34cd32d 106 * @param sclk Pin connected to serial clock (SCLK) (pin 7)
eencae 1:df68f34cd32d 107 * @param led Pin connected to LED backlight (must be PWM) (pin 8)
eencae 1:df68f34cd32d 108 *
eencae 1:df68f34cd32d 109 */
eencae 1:df68f34cd32d 110 N5110(PinName pwrPin, PinName scePin, PinName rstPin, PinName dcPin, PinName mosiPin, PinName sclkPin, PinName ledPin);
eencae 1:df68f34cd32d 111
eencae 1:df68f34cd32d 112 /** Initialise display
eencae 1:df68f34cd32d 113 *
eencae 1:df68f34cd32d 114 * Powers up the display and turns on backlight (50% brightness default).
eencae 1:df68f34cd32d 115 * Sets the display up in horizontal addressing mode and with normal video mode.
eencae 1:df68f34cd32d 116 */
eencae 1:df68f34cd32d 117 void init();
eencae 1:df68f34cd32d 118
eencae 1:df68f34cd32d 119 /** Turn off
eencae 1:df68f34cd32d 120 *
eencae 1:df68f34cd32d 121 * Powers down the display and turns of the backlight.
eencae 1:df68f34cd32d 122 * Needs to be reinitialised before being re-used.
eencae 1:df68f34cd32d 123 */
eencae 1:df68f34cd32d 124 void turnOff();
eencae 1:df68f34cd32d 125
eencae 1:df68f34cd32d 126 /** Clears
eencae 1:df68f34cd32d 127 *
eencae 1:df68f34cd32d 128 * Clears the screen.
eencae 1:df68f34cd32d 129 */
eencae 1:df68f34cd32d 130 void clear();
eencae 1:df68f34cd32d 131
eencae 1:df68f34cd32d 132 /** Turn on normal video mode (default)
eencae 1:df68f34cd32d 133 * Black on white
eencae 1:df68f34cd32d 134 */
eencae 1:df68f34cd32d 135 void normalMode();
eencae 1:df68f34cd32d 136
eencae 1:df68f34cd32d 137 /** Turn on inverse video mode (default)
eencae 1:df68f34cd32d 138 * White on black
eencae 1:df68f34cd32d 139 */
eencae 1:df68f34cd32d 140 void inverseMode();
eencae 1:df68f34cd32d 141
eencae 1:df68f34cd32d 142 /** Set Brightness
eencae 1:df68f34cd32d 143 *
eencae 1:df68f34cd32d 144 * Sets brightness of LED backlight.
eencae 1:df68f34cd32d 145 * @param brightness - float in range 0.0 to 1.0
eencae 1:df68f34cd32d 146 */
eencae 1:df68f34cd32d 147 void setBrightness(float brightness);
eencae 1:df68f34cd32d 148
eencae 1:df68f34cd32d 149 /** Set XY Address
eencae 1:df68f34cd32d 150 *
eencae 1:df68f34cd32d 151 * Sets the X and Y address of where the next data sent to the displa will be written in RAM.
eencae 1:df68f34cd32d 152 * @param x - the column number (0 to 83) - is automatically incremented after data is written
eencae 2:e93021cfb0a9 153 * @param y - the row number (0 to 5) - the diplay is split into 6 banks - each bank can be considered a row
eencae 1:df68f34cd32d 154 */
eencae 1:df68f34cd32d 155 void setXYAddress(int x, int y);
eencae 1:df68f34cd32d 156
eencae 2:e93021cfb0a9 157 /** Print String
eencae 2:e93021cfb0a9 158 *
eencae 2:e93021cfb0a9 159 * Prints a string of characters to the display.
eencae 2:e93021cfb0a9 160 * @param x - the column number (0 to 83)
eencae 2:e93021cfb0a9 161 * @param y - the row number (0 to 5) - the display is split into 6 banks - each bank can be considered a row
eencae 2:e93021cfb0a9 162 */
eencae 1:df68f34cd32d 163 void printString(const char * str,int x,int y);
eencae 1:df68f34cd32d 164
eencae 1:df68f34cd32d 165 /** Print Character
eencae 1:df68f34cd32d 166 *
eencae 1:df68f34cd32d 167 * Sends a character to the display. Will be printed at the current address.
eencae 6:adb79338d40f 168 * X address is autoincremented by 1 to leave a pixel between successive characters.
eencae 1:df68f34cd32d 169 * @param c - the character to print. Can print ASCII as so printChar('C').
eencae 1:df68f34cd32d 170 */
eencae 1:df68f34cd32d 171 void printChar(char c);
eencae 1:df68f34cd32d 172
eencae 6:adb79338d40f 173 /** Set a Pixel
eencae 6:adb79338d40f 174 *
eencae 6:adb79338d40f 175 * This function sets a pixel in the display. A call to refresh() must be made
eencae 6:adb79338d40f 176 * to update the display to reflect the change in pixels.
eencae 6:adb79338d40f 177 * @param x - the x co-ordinate of the pixel (0 to 83)
eencae 6:adb79338d40f 178 * @param y - the y co-ordinate of the pixel (0 to 47)
eencae 6:adb79338d40f 179 */
eencae 1:df68f34cd32d 180 void setPixel(int x, int y);
eencae 6:adb79338d40f 181
eencae 6:adb79338d40f 182 /** Clear a Pixel
eencae 6:adb79338d40f 183 *
eencae 6:adb79338d40f 184 * This function clears pixel in the display. A call to refresh() must be made
eencae 6:adb79338d40f 185 * to update the display to reflect the change in pixels.
eencae 6:adb79338d40f 186 * @param x - the x co-ordinate of the pixel (0 to 83)
eencae 6:adb79338d40f 187 * @param y - the y co-ordinate of the pixel (0 to 47)
eencae 6:adb79338d40f 188 */
eencae 1:df68f34cd32d 189 void clearPixel(int x, int y);
eencae 6:adb79338d40f 190
eencae 6:adb79338d40f 191 /** Get a Pixel
eencae 6:adb79338d40f 192 *
eencae 6:adb79338d40f 193 * This function gets the status of a pixel in the display.
eencae 6:adb79338d40f 194 * @param x - the x co-ordinate of the pixel (0 to 83)
eencae 6:adb79338d40f 195 * @param y - the y co-ordinate of the pixel (0 to 47)
eencae 6:adb79338d40f 196 * @returns
eencae 6:adb79338d40f 197 * 0 - pixel is clear
eencae 6:adb79338d40f 198 * non-zero - pixel is set
eencae 6:adb79338d40f 199 */
eencae 7:3010f24e0a81 200 int getPixel(int x, int y);
eencae 2:e93021cfb0a9 201
eencae 6:adb79338d40f 202 /** Refresh display
eencae 6:adb79338d40f 203 *
eencae 6:adb79338d40f 204 * This functions refreshes the display to reflect the current data in the buffer.
eencae 6:adb79338d40f 205 */
eencae 6:adb79338d40f 206 void refresh();
eencae 2:e93021cfb0a9 207
eencae 6:adb79338d40f 208 /** Randomise buffer
eencae 6:adb79338d40f 209 *
eencae 6:adb79338d40f 210 * This function fills the buffer with random data. Can be used to test the display.
eencae 6:adb79338d40f 211 * A call to refresh() must be made to update the display to reflect the change in pixels.
eencae 6:adb79338d40f 212 * The seed is not set and so the generated pattern will probably be the same each time.
eencae 6:adb79338d40f 213 * TODO: Randomise the seed - maybe using the noise on the AnalogIn pins.
eencae 6:adb79338d40f 214 */
eencae 1:df68f34cd32d 215 void randomiseBuffer();
eencae 8:40abe5736eca 216
eencae 8:40abe5736eca 217 /** Plot Array
eencae 8:40abe5736eca 218 *
eencae 8:40abe5736eca 219 * This function plots a one-dimensional array on the display. The values in the array
eencae 8:40abe5736eca 220 * correspond to the y values of the plot and these are plotted along the x-axis (one
eencae 8:40abe5736eca 221 * value per pixel along the x-axis of the display. This means only the first 84 values are
eencae 8:40abe5736eca 222 * plotted. y values in the array should be normalised in the range 0.0 to 1.0.
eencae 8:40abe5736eca 223 */
eencae 8:40abe5736eca 224 void plotArray(float array[]);
eencae 1:df68f34cd32d 225
eencae 1:df68f34cd32d 226 private:
eencae 1:df68f34cd32d 227 void initSPI();
eencae 1:df68f34cd32d 228 void turnOn();
eencae 1:df68f34cd32d 229 void reset();
eencae 1:df68f34cd32d 230 void clearRAM();
eencae 6:adb79338d40f 231 void clearBuffer();
eencae 1:df68f34cd32d 232 void sendCommand(unsigned char command);
eencae 1:df68f34cd32d 233 void sendData(unsigned char data);
eencae 1:df68f34cd32d 234
eencae 1:df68f34cd32d 235 public:
eencae 1:df68f34cd32d 236 unsigned char buffer[84][6]; // screen buffer - the 6 is for the banks - each one is 8 bits;
eencae 1:df68f34cd32d 237
eencae 1:df68f34cd32d 238 private: // private variables
eencae 1:df68f34cd32d 239 SPI* spi;
eencae 1:df68f34cd32d 240 PwmOut* led;
eencae 1:df68f34cd32d 241 DigitalOut* pwr;
eencae 1:df68f34cd32d 242 DigitalOut* sce;
eencae 1:df68f34cd32d 243 DigitalOut* rst;
eencae 1:df68f34cd32d 244 DigitalOut* dc;
eencae 0:d563e74f0ae9 245
eencae 0:d563e74f0ae9 246 };
eencae 0:d563e74f0ae9 247
eencae 0:d563e74f0ae9 248 const unsigned char font5x7[480] = {
eencae 0:d563e74f0ae9 249 0x00, 0x00, 0x00, 0x00, 0x00,// (space)
eencae 0:d563e74f0ae9 250 0x00, 0x00, 0x5F, 0x00, 0x00,// !
eencae 0:d563e74f0ae9 251 0x00, 0x07, 0x00, 0x07, 0x00,// "
eencae 0:d563e74f0ae9 252 0x14, 0x7F, 0x14, 0x7F, 0x14,// #
eencae 0:d563e74f0ae9 253 0x24, 0x2A, 0x7F, 0x2A, 0x12,// $
eencae 0:d563e74f0ae9 254 0x23, 0x13, 0x08, 0x64, 0x62,// %
eencae 0:d563e74f0ae9 255 0x36, 0x49, 0x55, 0x22, 0x50,// &
eencae 0:d563e74f0ae9 256 0x00, 0x05, 0x03, 0x00, 0x00,// '
eencae 0:d563e74f0ae9 257 0x00, 0x1C, 0x22, 0x41, 0x00,// (
eencae 0:d563e74f0ae9 258 0x00, 0x41, 0x22, 0x1C, 0x00,// )
eencae 0:d563e74f0ae9 259 0x08, 0x2A, 0x1C, 0x2A, 0x08,// *
eencae 0:d563e74f0ae9 260 0x08, 0x08, 0x3E, 0x08, 0x08,// +
eencae 0:d563e74f0ae9 261 0x00, 0x50, 0x30, 0x00, 0x00,// ,
eencae 0:d563e74f0ae9 262 0x08, 0x08, 0x08, 0x08, 0x08,// -
eencae 0:d563e74f0ae9 263 0x00, 0x60, 0x60, 0x00, 0x00,// .
eencae 0:d563e74f0ae9 264 0x20, 0x10, 0x08, 0x04, 0x02,// /
eencae 0:d563e74f0ae9 265 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
eencae 0:d563e74f0ae9 266 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
eencae 0:d563e74f0ae9 267 0x42, 0x61, 0x51, 0x49, 0x46,// 2
eencae 0:d563e74f0ae9 268 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
eencae 0:d563e74f0ae9 269 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
eencae 0:d563e74f0ae9 270 0x27, 0x45, 0x45, 0x45, 0x39,// 5
eencae 0:d563e74f0ae9 271 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
eencae 0:d563e74f0ae9 272 0x01, 0x71, 0x09, 0x05, 0x03,// 7
eencae 0:d563e74f0ae9 273 0x36, 0x49, 0x49, 0x49, 0x36,// 8
eencae 0:d563e74f0ae9 274 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
eencae 0:d563e74f0ae9 275 0x00, 0x36, 0x36, 0x00, 0x00,// :
eencae 0:d563e74f0ae9 276 0x00, 0x56, 0x36, 0x00, 0x00,// ;
eencae 0:d563e74f0ae9 277 0x00, 0x08, 0x14, 0x22, 0x41,// <
eencae 0:d563e74f0ae9 278 0x14, 0x14, 0x14, 0x14, 0x14,// =
eencae 0:d563e74f0ae9 279 0x41, 0x22, 0x14, 0x08, 0x00,// >
eencae 0:d563e74f0ae9 280 0x02, 0x01, 0x51, 0x09, 0x06,// ?
eencae 0:d563e74f0ae9 281 0x32, 0x49, 0x79, 0x41, 0x3E,// @
eencae 0:d563e74f0ae9 282 0x7E, 0x11, 0x11, 0x11, 0x7E,// A
eencae 0:d563e74f0ae9 283 0x7F, 0x49, 0x49, 0x49, 0x36,// B
eencae 0:d563e74f0ae9 284 0x3E, 0x41, 0x41, 0x41, 0x22,// C
eencae 0:d563e74f0ae9 285 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
eencae 0:d563e74f0ae9 286 0x7F, 0x49, 0x49, 0x49, 0x41,// E
eencae 0:d563e74f0ae9 287 0x7F, 0x09, 0x09, 0x01, 0x01,// F
eencae 0:d563e74f0ae9 288 0x3E, 0x41, 0x41, 0x51, 0x32,// G
eencae 0:d563e74f0ae9 289 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
eencae 0:d563e74f0ae9 290 0x00, 0x41, 0x7F, 0x41, 0x00,// I
eencae 0:d563e74f0ae9 291 0x20, 0x40, 0x41, 0x3F, 0x01,// J
eencae 0:d563e74f0ae9 292 0x7F, 0x08, 0x14, 0x22, 0x41,// K
eencae 0:d563e74f0ae9 293 0x7F, 0x40, 0x40, 0x40, 0x40,// L
eencae 0:d563e74f0ae9 294 0x7F, 0x02, 0x04, 0x02, 0x7F,// M
eencae 0:d563e74f0ae9 295 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
eencae 0:d563e74f0ae9 296 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
eencae 0:d563e74f0ae9 297 0x7F, 0x09, 0x09, 0x09, 0x06,// P
eencae 0:d563e74f0ae9 298 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
eencae 0:d563e74f0ae9 299 0x7F, 0x09, 0x19, 0x29, 0x46,// R
eencae 0:d563e74f0ae9 300 0x46, 0x49, 0x49, 0x49, 0x31,// S
eencae 0:d563e74f0ae9 301 0x01, 0x01, 0x7F, 0x01, 0x01,// T
eencae 0:d563e74f0ae9 302 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
eencae 0:d563e74f0ae9 303 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
eencae 0:d563e74f0ae9 304 0x7F, 0x20, 0x18, 0x20, 0x7F,// W
eencae 0:d563e74f0ae9 305 0x63, 0x14, 0x08, 0x14, 0x63,// X
eencae 0:d563e74f0ae9 306 0x03, 0x04, 0x78, 0x04, 0x03,// Y
eencae 0:d563e74f0ae9 307 0x61, 0x51, 0x49, 0x45, 0x43,// Z
eencae 0:d563e74f0ae9 308 0x00, 0x00, 0x7F, 0x41, 0x41,// [
eencae 0:d563e74f0ae9 309 0x02, 0x04, 0x08, 0x10, 0x20,// "\"
eencae 0:d563e74f0ae9 310 0x41, 0x41, 0x7F, 0x00, 0x00,// ]
eencae 0:d563e74f0ae9 311 0x04, 0x02, 0x01, 0x02, 0x04,// ^
eencae 0:d563e74f0ae9 312 0x40, 0x40, 0x40, 0x40, 0x40,// _
eencae 0:d563e74f0ae9 313 0x00, 0x01, 0x02, 0x04, 0x00,// `
eencae 0:d563e74f0ae9 314 0x20, 0x54, 0x54, 0x54, 0x78,// a
eencae 0:d563e74f0ae9 315 0x7F, 0x48, 0x44, 0x44, 0x38,// b
eencae 0:d563e74f0ae9 316 0x38, 0x44, 0x44, 0x44, 0x20,// c
eencae 0:d563e74f0ae9 317 0x38, 0x44, 0x44, 0x48, 0x7F,// d
eencae 0:d563e74f0ae9 318 0x38, 0x54, 0x54, 0x54, 0x18,// e
eencae 0:d563e74f0ae9 319 0x08, 0x7E, 0x09, 0x01, 0x02,// f
eencae 0:d563e74f0ae9 320 0x08, 0x14, 0x54, 0x54, 0x3C,// g
eencae 0:d563e74f0ae9 321 0x7F, 0x08, 0x04, 0x04, 0x78,// h
eencae 0:d563e74f0ae9 322 0x00, 0x44, 0x7D, 0x40, 0x00,// i
eencae 0:d563e74f0ae9 323 0x20, 0x40, 0x44, 0x3D, 0x00,// j
eencae 0:d563e74f0ae9 324 0x00, 0x7F, 0x10, 0x28, 0x44,// k
eencae 0:d563e74f0ae9 325 0x00, 0x41, 0x7F, 0x40, 0x00,// l
eencae 0:d563e74f0ae9 326 0x7C, 0x04, 0x18, 0x04, 0x78,// m
eencae 0:d563e74f0ae9 327 0x7C, 0x08, 0x04, 0x04, 0x78,// n
eencae 0:d563e74f0ae9 328 0x38, 0x44, 0x44, 0x44, 0x38,// o
eencae 0:d563e74f0ae9 329 0x7C, 0x14, 0x14, 0x14, 0x08,// p
eencae 0:d563e74f0ae9 330 0x08, 0x14, 0x14, 0x18, 0x7C,// q
eencae 0:d563e74f0ae9 331 0x7C, 0x08, 0x04, 0x04, 0x08,// r
eencae 0:d563e74f0ae9 332 0x48, 0x54, 0x54, 0x54, 0x20,// s
eencae 0:d563e74f0ae9 333 0x04, 0x3F, 0x44, 0x40, 0x20,// t
eencae 0:d563e74f0ae9 334 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
eencae 0:d563e74f0ae9 335 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
eencae 0:d563e74f0ae9 336 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
eencae 0:d563e74f0ae9 337 0x44, 0x28, 0x10, 0x28, 0x44,// x
eencae 0:d563e74f0ae9 338 0x0C, 0x50, 0x50, 0x50, 0x3C,// y
eencae 0:d563e74f0ae9 339 0x44, 0x64, 0x54, 0x4C, 0x44,// z
eencae 0:d563e74f0ae9 340 0x00, 0x08, 0x36, 0x41, 0x00,// {
eencae 0:d563e74f0ae9 341 0x00, 0x00, 0x7F, 0x00, 0x00,// |
eencae 0:d563e74f0ae9 342 0x00, 0x41, 0x36, 0x08, 0x00,// }
eencae 0:d563e74f0ae9 343 0x08, 0x08, 0x2A, 0x1C, 0x08,// ->
eencae 0:d563e74f0ae9 344 0x08, 0x1C, 0x2A, 0x08, 0x08 // <-
eencae 0:d563e74f0ae9 345 };
eencae 0:d563e74f0ae9 346
eencae 0:d563e74f0ae9 347 #endif