V1.0: A simple lib to driver the nokia 5110 lcd. You can select the soft/hardware spi ports by define the HW_SPI word from the "sx5110.h ".

Revision:
0:ab1ca9a3e847
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SX5110.h	Thu Jan 08 08:04:43 2015 +0000
@@ -0,0 +1,168 @@
+#ifndef _SX5110_H
+#define _SX5110_H
+#include "mbed.h"
+
+#define HW_SPI
+
+// LCD define
+#define LCD_FREQ 2000000
+#define LCD_SPI_MODE 0x03
+#define LCD_SPI_BITS 0x08
+#define LCD_X_MAX 84
+#define LCD_Y_MAX 6
+
+#define PIN_RST  0x00
+#define PIN_SCE  0x01
+#define PIN_DC   0x02
+
+#ifndef HW_SPI
+#define PIN_MOSI 0x00
+#define PIN_SCLK 0x01
+#endif
+struct LcdPins
+{
+    PinName mosi;
+    PinName sclk;
+    PinName dc;
+    PinName sce;
+    PinName rst;
+};
+
+class Lcd5110
+{
+    public:
+        Lcd5110(LcdPins lcd_pinout);
+        ~Lcd5110();
+        
+    public:
+        void InitLcd();
+        void clear();
+        void ShutdownLcd();
+        void SendCmd(char cmd);
+        void SendData(char data);
+        void TestLcd(char test_pattern);
+        
+    public:
+        void SetXY(char x, char y);
+        void write_char(char c);
+        void set_xy(unsigned char x,unsigned char y);
+        void write_stringxy(unsigned char x,unsigned char y,char *p);
+        void write_string(char *p);
+        char* NumToStr(int num);
+        
+    private:
+        void ResetLcd();
+        
+    private:
+#ifndef HW_SPI  
+        DigitalOut**    SPins;
+#else
+        SPI*            LcdSpi; 
+#endif  
+        DigitalOut**    Pins;
+
+        
+};
+
+/*-----------------------------------------------
+6 x 8 font
+1 pixel space at left and bottom
+index = ASCII - 32             按ASCII-32排列的
+-----------------------------------------------*/
+const unsigned char ASCII[][6] =
+{
+{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },// sp
+{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 },// !
+{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 },// "
+{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 },// #
+{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 },// $
+{ 0x23, 0x13, 0x08, 0x64, 0x62, 0x00 },// %
+{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 },// &
+{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 },// '
+{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 },// (
+{ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 },// )
+{ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 },// *
+{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 },// +
+{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 },// ,
+{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 },// -
+{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 },// .
+{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 },// /
+{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E },// 0
+{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 },// 1
+{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 },// 2
+{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 },// 3
+{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 },// 4
+{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 },// 5
+{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 },// 6
+{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 },// 7
+{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 },// 8
+{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E },// 9
+{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 },// :
+{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 },// ;
+{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 },// <
+{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 },// =
+{ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 },// >
+{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 },// ?
+{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E },// @
+{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },// A
+{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 },// B
+{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 },// C
+{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C },// D
+{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 },// E
+{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 },// F
+{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A },// G
+{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F },// H
+{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 },// I
+{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 },// J
+{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 },// K
+{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 },// L
+{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F },// M
+{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F },// N
+{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E },// O
+{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 },// P
+{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E },// Q
+{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 },// R
+{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 },// S
+{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 },// T
+{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F },// U
+{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F },// V
+{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F },// W
+{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 },// X
+{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 },// Y
+{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 },// Z
+{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 },// [
+{ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 },// 55
+{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 },// ]
+{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 },// ^
+{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 },// _
+{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 },// '
+{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 },// a
+{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 },// b
+{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 },// c
+{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F },// d
+{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 },// e
+{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 },// f
+{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C },// g
+{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 },// h
+{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 },// i
+{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 },// j
+{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 },// k
+{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 },// l
+{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 },// m
+{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 },// n
+{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 },// o
+{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 },// p
+{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC },// q
+{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 },// r
+{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 },// s
+{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 },// t
+{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C },// u
+{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C },// v
+{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C },// w
+{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 },// x
+{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C },// y
+{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 },// z
+{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }// horiz lines
+};
+
+#endif