Liu Zhixian / Mbed 2 deprecated Nucleo_spi_5110

Dependencies:   mbed

Committer:
zhimagod
Date:
Sat Oct 04 04:00:38 2014 +0000
Revision:
0:ded1a1350d0d
First Try

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zhimagod 0:ded1a1350d0d 1 #include "mbed.h"
zhimagod 0:ded1a1350d0d 2 #include "LCD.h"
zhimagod 0:ded1a1350d0d 3
zhimagod 0:ded1a1350d0d 4 typedef unsigned char byte;
zhimagod 0:ded1a1350d0d 5
zhimagod 0:ded1a1350d0d 6 DigitalOut LCD_DC(D10);
zhimagod 0:ded1a1350d0d 7 DigitalOut LCD_CS(D9);
zhimagod 0:ded1a1350d0d 8 DigitalOut LCD_RES(D8);
zhimagod 0:ded1a1350d0d 9
zhimagod 0:ded1a1350d0d 10 SPI Lcd_5110(SPI_MOSI, SPI_MISO, SPI_SCK);
zhimagod 0:ded1a1350d0d 11
zhimagod 0:ded1a1350d0d 12 const byte CharTable[][14]=
zhimagod 0:ded1a1350d0d 13 {
zhimagod 0:ded1a1350d0d 14 {0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x30,0x33,0x00,0x00,0x00},/*"!",0*/
zhimagod 0:ded1a1350d0d 15 {0x00,0x10,0x0C,0x16,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",1*/
zhimagod 0:ded1a1350d0d 16 {0x40,0x40,0xF8,0x40,0xF8,0x40,0x00,0x04,0x3E,0x05,0x3F,0x05,0x04,0x00},/*"#",2*/
zhimagod 0:ded1a1350d0d 17 {0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00},/*"$",3*/
zhimagod 0:ded1a1350d0d 18 {0xF0,0x08,0xF0,0x80,0x70,0x08,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E},/*"%",4*/
zhimagod 0:ded1a1350d0d 19 {0x00,0xF0,0x88,0x70,0x00,0x00,0x00,0x1F,0x20,0x27,0x28,0x1F,0x21,0x10},/*"&",5*/
zhimagod 0:ded1a1350d0d 20 {0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",6*/
zhimagod 0:ded1a1350d0d 21 {0x00,0x00,0x00,0xF0,0x0C,0x02,0x00,0x00,0x00,0x00,0x0F,0x30,0x40,0x00},/*"(",7*/
zhimagod 0:ded1a1350d0d 22 {0x00,0x06,0x18,0xE0,0x00,0x00,0x00,0x00,0x60,0x18,0x07,0x00,0x00,0x00},/*")",8*/
zhimagod 0:ded1a1350d0d 23 {0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x02,0x02,0x01,0x0F,0x01,0x02,0x02},/*"*",9*/
zhimagod 0:ded1a1350d0d 24 {0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01},/*"+",10*/
zhimagod 0:ded1a1350d0d 25 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00},/*",",11*/
zhimagod 0:ded1a1350d0d 26 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00},/*"-",12*/
zhimagod 0:ded1a1350d0d 27 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00},/*".",13*/
zhimagod 0:ded1a1350d0d 28 {0x00,0x00,0x00,0x00,0xC0,0x38,0x0C,0x00,0x60,0x38,0x07,0x01,0x00,0x00},/*"/",14*/
zhimagod 0:ded1a1350d0d 29 {0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"0",15*/
zhimagod 0:ded1a1350d0d 30 {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00},/*"1",16*/
zhimagod 0:ded1a1350d0d 31 {0x00,0x70,0x08,0x08,0x08,0xF0,0x00,0x00,0x30,0x2C,0x22,0x21,0x30,0x00},/*"2",17*/
zhimagod 0:ded1a1350d0d 32 {0x00,0x30,0x08,0x88,0x88,0x70,0x00,0x00,0x18,0x20,0x20,0x31,0x1E,0x00},/*"3",18*/
zhimagod 0:ded1a1350d0d 33 {0x00,0x80,0x40,0x20,0xF8,0x00,0x00,0x06,0x05,0x04,0x24,0x3F,0x24,0x04},/*"4",19*/
zhimagod 0:ded1a1350d0d 34 {0x00,0xF8,0x08,0x88,0x88,0x08,0x00,0x00,0x19,0x21,0x20,0x31,0x1F,0x00},/*"5",20*/
zhimagod 0:ded1a1350d0d 35 {0xE0,0x10,0x88,0x88,0x88,0x18,0x00,0x0F,0x11,0x20,0x20,0x31,0x1F,0x00},/*"6",21*/
zhimagod 0:ded1a1350d0d 36 {0x00,0x38,0x08,0x08,0xE8,0x18,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00},/*"7",22*/
zhimagod 0:ded1a1350d0d 37 {0x70,0x98,0x88,0x08,0x98,0x70,0x00,0x1E,0x21,0x21,0x21,0x31,0x1E,0x00},/*"8",23*/
zhimagod 0:ded1a1350d0d 38 {0xF0,0x08,0x08,0x08,0x18,0xE0,0x00,0x31,0x22,0x22,0x32,0x19,0x07,0x00},/*"9",24*/
zhimagod 0:ded1a1350d0d 39 {0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},/*":",25*/
zhimagod 0:ded1a1350d0d 40 {0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00},/*";",26*/
zhimagod 0:ded1a1350d0d 41 {0x00,0x00,0x80,0x60,0x10,0x08,0x00,0x00,0x01,0x02,0x0C,0x10,0x20,0x00},/*"<",27*/
zhimagod 0:ded1a1350d0d 42 {0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x00},/*"=",28*/
zhimagod 0:ded1a1350d0d 43 {0x00,0x08,0x30,0x40,0x80,0x00,0x00,0x00,0x20,0x18,0x04,0x02,0x01,0x00},/*">",29*/
zhimagod 0:ded1a1350d0d 44 {0x70,0x08,0x08,0x08,0x18,0xF0,0x00,0x00,0x00,0x30,0x37,0x01,0x00,0x00},/*"?",30*/
zhimagod 0:ded1a1350d0d 45 {0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x07,0x18,0x27,0x24,0x23,0x14,0x0B},/*"@",31*/
zhimagod 0:ded1a1350d0d 46 {0x00,0x00,0xE0,0x18,0xE0,0x00,0x00,0x20,0x3C,0x23,0x02,0x23,0x3C,0x20},/*"A",32*/
zhimagod 0:ded1a1350d0d 47 {0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x20,0x31,0x1E,0x00},/*"B",33*/
zhimagod 0:ded1a1350d0d 48 {0xE0,0x30,0x08,0x08,0x08,0x38,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x00},/*"C",34*/
zhimagod 0:ded1a1350d0d 49 {0x08,0xF8,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x10,0x0F,0x00},/*"D",35*/
zhimagod 0:ded1a1350d0d 50 {0x08,0xF8,0x88,0x88,0xE8,0x18,0x00,0x20,0x3F,0x20,0x20,0x23,0x30,0x00},/*"E",36*/
zhimagod 0:ded1a1350d0d 51 {0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x20,0x3F,0x20,0x00,0x03,0x00,0x00},/*"F",37*/
zhimagod 0:ded1a1350d0d 52 {0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02},/*"G",38*/
zhimagod 0:ded1a1350d0d 53 {0x08,0xF8,0x08,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x21,0x3F,0x20},/*"H",39*/
zhimagod 0:ded1a1350d0d 54 {0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00},/*"I",40*/
zhimagod 0:ded1a1350d0d 55 {0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x7F,0x00,0x00,0x00},/*"J",41*/
zhimagod 0:ded1a1350d0d 56 {0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x20,0x3F,0x20,0x01,0x26,0x38,0x20},/*"K",42*/
zhimagod 0:ded1a1350d0d 57 {0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x30,0x00},/*"L",43*/
zhimagod 0:ded1a1350d0d 58 {0x08,0xF8,0xF8,0x80,0xF8,0xF8,0x08,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20},/*"M",44*/
zhimagod 0:ded1a1350d0d 59 {0x08,0xF8,0x38,0xC0,0x08,0xF8,0x08,0x20,0x3F,0x20,0x03,0x1C,0x3F,0x00},/*"N",45*/
zhimagod 0:ded1a1350d0d 60 {0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},/*"O",46*/
zhimagod 0:ded1a1350d0d 61 {0x08,0xF8,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x00,0x00},/*"P",47*/
zhimagod 0:ded1a1350d0d 62 {0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x78,0x4F,0x00},/*"Q",48*/
zhimagod 0:ded1a1350d0d 63 {0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x01,0x06,0x38,0x20},/*"R",49*/
zhimagod 0:ded1a1350d0d 64 {0x00,0x70,0x88,0x08,0x08,0x18,0x00,0x00,0x30,0x20,0x21,0x23,0x1E,0x00},/*"S",50*/
zhimagod 0:ded1a1350d0d 65 {0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x20,0x3F,0x20,0x00,0x00},/*"T",51*/
zhimagod 0:ded1a1350d0d 66 {0x08,0xF8,0x08,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x1F,0x00},/*"U",52*/
zhimagod 0:ded1a1350d0d 67 {0x08,0x78,0x88,0x00,0x88,0x78,0x08,0x00,0x00,0x0F,0x38,0x0F,0x00,0x00},/*"V",53*/
zhimagod 0:ded1a1350d0d 68 {0x08,0xF8,0xC4,0xF8,0x00,0xF8,0x08,0x00,0x07,0x3F,0x01,0x3E,0x07,0x00},/*"W",54*/
zhimagod 0:ded1a1350d0d 69 {0x08,0x38,0xE8,0x80,0xE8,0x18,0x08,0x20,0x30,0x2C,0x03,0x2E,0x38,0x20},/*"X",55*/
zhimagod 0:ded1a1350d0d 70 {0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x20,0x3F,0x20,0x00,0x00},/*"Y",56*/
zhimagod 0:ded1a1350d0d 71 {0x10,0x08,0x08,0xC8,0x38,0x08,0x00,0x30,0x2C,0x23,0x20,0x20,0x10,0x00},/*"Z",57*/
zhimagod 0:ded1a1350d0d 72 {0x00,0x00,0x00,0xFE,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x00},/*"[",58*/
zhimagod 0:ded1a1350d0d 73 {0x00,0x1C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x1C,0x60,0x00},/*"\",59*/
zhimagod 0:ded1a1350d0d 74 {0x00,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x00,0x00,0x00},/*"]",60*/
zhimagod 0:ded1a1350d0d 75 {0x00,0x00,0x04,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",61*/
zhimagod 0:ded1a1350d0d 76 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80},/*"_",62*/
zhimagod 0:ded1a1350d0d 77 {0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",63*/
zhimagod 0:ded1a1350d0d 78 {0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x1D,0x24,0x22,0x22,0x3F,0x20},/*"a",64*/
zhimagod 0:ded1a1350d0d 79 {0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x3F,0x21,0x20,0x20,0x1F,0x00},/*"b",65*/
zhimagod 0:ded1a1350d0d 80 {0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x1F,0x31,0x20,0x20,0x11,0x00},/*"c",66*/
zhimagod 0:ded1a1350d0d 81 {0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x1F,0x21,0x20,0x20,0x3F,0x20},/*"d",67*/
zhimagod 0:ded1a1350d0d 82 {0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x13,0x00},/*"e",68*/
zhimagod 0:ded1a1350d0d 83 {0x80,0x80,0xF0,0x88,0x88,0x18,0x00,0x00,0x20,0x3F,0x20,0x20,0x00,0x00},/*"f",69*/
zhimagod 0:ded1a1350d0d 84 {0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x93,0x60,0x00},/*"g",70*/
zhimagod 0:ded1a1350d0d 85 {0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x21,0x00,0x20,0x3F,0x20},/*"h",71*/
zhimagod 0:ded1a1350d0d 86 {0x00,0x80,0x80,0x98,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00},/*"i",72*/
zhimagod 0:ded1a1350d0d 87 {0x00,0x00,0x80,0x80,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x7F,0x00,0x00},/*"j",73*/
zhimagod 0:ded1a1350d0d 88 {0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x06,0x39,0x20,0x00},/*"k",74*/
zhimagod 0:ded1a1350d0d 89 {0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00},/*"l",75*/
zhimagod 0:ded1a1350d0d 90 {0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20},/*"m",76*/
zhimagod 0:ded1a1350d0d 91 {0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x21,0x00,0x20,0x3F,0x20},/*"n",77*/
zhimagod 0:ded1a1350d0d 92 {0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x31,0x20,0x21,0x1F,0x00},/*"o",78*/
zhimagod 0:ded1a1350d0d 93 {0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x80,0xFF,0xA1,0x20,0x30,0x1F,0x00},/*"p",79*/
zhimagod 0:ded1a1350d0d 94 {0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x1F,0x21,0x20,0xA0,0xFF,0x80},/*"q",80*/
zhimagod 0:ded1a1350d0d 95 {0x80,0x80,0x80,0x00,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x01,0x00},/*"r",81*/
zhimagod 0:ded1a1350d0d 96 {0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x19,0x00},/*"s",82*/
zhimagod 0:ded1a1350d0d 97 {0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00},/*"t",83*/
zhimagod 0:ded1a1350d0d 98 {0x80,0x80,0x00,0x00,0x80,0x80,0x00,0x00,0x3F,0x20,0x20,0x20,0x3F,0x20},/*"u",84*/
zhimagod 0:ded1a1350d0d 99 {0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x03,0x1C,0x30,0x1C,0x03,0x00},/*"v",85*/
zhimagod 0:ded1a1350d0d 100 {0x80,0x80,0xC0,0x80,0x00,0x80,0x80,0x00,0x0F,0x3F,0x07,0x38,0x0F,0x00},/*"w",86*/
zhimagod 0:ded1a1350d0d 101 {0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00},/*"x",87*/
zhimagod 0:ded1a1350d0d 102 {0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x80,0x83,0x4E,0x30,0x0E,0x01,0x00},/*"y",88*/
zhimagod 0:ded1a1350d0d 103 {0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x38,0x24,0x23,0x30,0x00},/*"z",89*/
zhimagod 0:ded1a1350d0d 104 {0x00,0x00,0x00,0x80,0x7E,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x00},/*"{",90*/
zhimagod 0:ded1a1350d0d 105 {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00},/*"|",91*/
zhimagod 0:ded1a1350d0d 106 {0x00,0x02,0x7E,0x80,0x00,0x00,0x00,0x00,0x40,0x3F,0x00,0x00,0x00,0x00},/*"}",92*/
zhimagod 0:ded1a1350d0d 107 {0x00,0x06,0x01,0x01,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",93*/
zhimagod 0:ded1a1350d0d 108 };
zhimagod 0:ded1a1350d0d 109
zhimagod 0:ded1a1350d0d 110 byte StringTable[12];
zhimagod 0:ded1a1350d0d 111 byte const String_1[]={"bbs.eeworld"};
zhimagod 0:ded1a1350d0d 112 byte const String_2[]={"ID:zhimagod"};
zhimagod 0:ded1a1350d0d 113
zhimagod 0:ded1a1350d0d 114 const byte S1_Long = sizeof(String_1)/sizeof(String_1[0])-1;
zhimagod 0:ded1a1350d0d 115 const byte S2_Long = sizeof(String_2)/sizeof(String_2[0])-1;
zhimagod 0:ded1a1350d0d 116
zhimagod 0:ded1a1350d0d 117
zhimagod 0:ded1a1350d0d 118 //LCD Initials Values Array
zhimagod 0:ded1a1350d0d 119 const byte LCD_Init_Array[8]=
zhimagod 0:ded1a1350d0d 120 {
zhimagod 0:ded1a1350d0d 121 Function|PowerUp|EntryVer|InstrucExtern,
zhimagod 0:ded1a1350d0d 122 Vop|55,
zhimagod 0:ded1a1350d0d 123 Temper|0,
zhimagod 0:ded1a1350d0d 124 Bias|3,
zhimagod 0:ded1a1350d0d 125 Function|PowerUp|EntryHor|InstrucBasic,
zhimagod 0:ded1a1350d0d 126 DispCtrl|Normal,
zhimagod 0:ded1a1350d0d 127 AddressX(0),
zhimagod 0:ded1a1350d0d 128 AddressY(0),
zhimagod 0:ded1a1350d0d 129 };
zhimagod 0:ded1a1350d0d 130 //LCD write function
zhimagod 0:ded1a1350d0d 131 //just add the cs signal for SPI operation
zhimagod 0:ded1a1350d0d 132 void LCD_Write(unsigned char data)
zhimagod 0:ded1a1350d0d 133 {
zhimagod 0:ded1a1350d0d 134 LCD_CS=0;
zhimagod 0:ded1a1350d0d 135 Lcd_5110.write(data);
zhimagod 0:ded1a1350d0d 136 LCD_CS=1;
zhimagod 0:ded1a1350d0d 137 return;
zhimagod 0:ded1a1350d0d 138 }
zhimagod 0:ded1a1350d0d 139 //LCD Initials Function
zhimagod 0:ded1a1350d0d 140 //Initials the LCD use the Initials values
zhimagod 0:ded1a1350d0d 141 void LCD_Init(void)
zhimagod 0:ded1a1350d0d 142 {
zhimagod 0:ded1a1350d0d 143 unsigned int i;
zhimagod 0:ded1a1350d0d 144 Lcd_5110.frequency(10000000);
zhimagod 0:ded1a1350d0d 145 LCD_RES=0;
zhimagod 0:ded1a1350d0d 146 wait_us(10);
zhimagod 0:ded1a1350d0d 147 LCD_DC=0; //command
zhimagod 0:ded1a1350d0d 148 LCD_RES=1;
zhimagod 0:ded1a1350d0d 149 for(i=0;i<8;i++)
zhimagod 0:ded1a1350d0d 150 {
zhimagod 0:ded1a1350d0d 151 LCD_Write(LCD_Init_Array[i]);
zhimagod 0:ded1a1350d0d 152 }
zhimagod 0:ded1a1350d0d 153 LCD_DC=1; //Data
zhimagod 0:ded1a1350d0d 154 for(i=0;i<504;i++)
zhimagod 0:ded1a1350d0d 155 {
zhimagod 0:ded1a1350d0d 156 LCD_Write(0x00);//clear DDR
zhimagod 0:ded1a1350d0d 157 }
zhimagod 0:ded1a1350d0d 158 }
zhimagod 0:ded1a1350d0d 159
zhimagod 0:ded1a1350d0d 160 //Locate the pointer to x,y on the screen
zhimagod 0:ded1a1350d0d 161 void LCD_XY(unsigned char x,unsigned char y)
zhimagod 0:ded1a1350d0d 162 {
zhimagod 0:ded1a1350d0d 163 LCD_DC=0;
zhimagod 0:ded1a1350d0d 164 LCD_Write(Hor_Basic); //basic activ
zhimagod 0:ded1a1350d0d 165 LCD_Write(AddressX(x)); //set x
zhimagod 0:ded1a1350d0d 166 LCD_Write(AddressY(y)); //set y
zhimagod 0:ded1a1350d0d 167 LCD_DC=1;
zhimagod 0:ded1a1350d0d 168 }
zhimagod 0:ded1a1350d0d 169
zhimagod 0:ded1a1350d0d 170 //Display one char at position x,y with 16*7 or 16*14 pix
zhimagod 0:ded1a1350d0d 171 //x :x address
zhimagod 0:ded1a1350d0d 172 //y :y address
zhimagod 0:ded1a1350d0d 173 //Invert:Invert Display this char
zhimagod 0:ded1a1350d0d 174 //Index :the Char Index in the CharTable
zhimagod 0:ded1a1350d0d 175 void LCD_Disp_Char(byte x,byte y,byte Invert,byte Index)
zhimagod 0:ded1a1350d0d 176 {
zhimagod 0:ded1a1350d0d 177 byte i,mask;
zhimagod 0:ded1a1350d0d 178 const byte *p;
zhimagod 0:ded1a1350d0d 179 //adjust the Index's vvalue
zhimagod 0:ded1a1350d0d 180 if(Index<33)
zhimagod 0:ded1a1350d0d 181 Index=33;
zhimagod 0:ded1a1350d0d 182 else if(Index>126)
zhimagod 0:ded1a1350d0d 183 Index=125;
zhimagod 0:ded1a1350d0d 184
zhimagod 0:ded1a1350d0d 185 p=&CharTable[Index-33][0];
zhimagod 0:ded1a1350d0d 186 LCD_DC=1;
zhimagod 0:ded1a1350d0d 187 //adjust if Invert
zhimagod 0:ded1a1350d0d 188 if(Invert!=0)
zhimagod 0:ded1a1350d0d 189 mask=0xFF;
zhimagod 0:ded1a1350d0d 190 else
zhimagod 0:ded1a1350d0d 191 mask=0x00;
zhimagod 0:ded1a1350d0d 192 //upper half of a letter
zhimagod 0:ded1a1350d0d 193 LCD_XY(x,y);
zhimagod 0:ded1a1350d0d 194 for(i=0;i<7;i++)
zhimagod 0:ded1a1350d0d 195 {
zhimagod 0:ded1a1350d0d 196 LCD_Write((*p)^mask);
zhimagod 0:ded1a1350d0d 197 p++;
zhimagod 0:ded1a1350d0d 198 }
zhimagod 0:ded1a1350d0d 199 y++;
zhimagod 0:ded1a1350d0d 200 //down half of a letter
zhimagod 0:ded1a1350d0d 201 LCD_XY(x,y);
zhimagod 0:ded1a1350d0d 202 for(i=0;i<7;i++)
zhimagod 0:ded1a1350d0d 203 {
zhimagod 0:ded1a1350d0d 204 LCD_Write((*p)^mask);
zhimagod 0:ded1a1350d0d 205 p++;
zhimagod 0:ded1a1350d0d 206 }
zhimagod 0:ded1a1350d0d 207 }
zhimagod 0:ded1a1350d0d 208 //display string
zhimagod 0:ded1a1350d0d 209 //ROM source
zhimagod 0:ded1a1350d0d 210 void LCD_Disp_String_Rom(byte Line,byte row,byte Number,const byte *String)
zhimagod 0:ded1a1350d0d 211 {
zhimagod 0:ded1a1350d0d 212 byte x,y;
zhimagod 0:ded1a1350d0d 213 byte i;
zhimagod 0:ded1a1350d0d 214 if(Line>2){
zhimagod 0:ded1a1350d0d 215 return;
zhimagod 0:ded1a1350d0d 216 }
zhimagod 0:ded1a1350d0d 217 y=Line*2;
zhimagod 0:ded1a1350d0d 218 x=row;
zhimagod 0:ded1a1350d0d 219 for(i=0;i<Number;i++)
zhimagod 0:ded1a1350d0d 220 {
zhimagod 0:ded1a1350d0d 221 LCD_Disp_Char(x,y,0,*String);
zhimagod 0:ded1a1350d0d 222 x+=7;
zhimagod 0:ded1a1350d0d 223 if(x>84){
zhimagod 0:ded1a1350d0d 224 return;
zhimagod 0:ded1a1350d0d 225 }
zhimagod 0:ded1a1350d0d 226 String++;
zhimagod 0:ded1a1350d0d 227 }
zhimagod 0:ded1a1350d0d 228 }
zhimagod 0:ded1a1350d0d 229 //display string
zhimagod 0:ded1a1350d0d 230 //RAM source
zhimagod 0:ded1a1350d0d 231 void LCD_Disp_String_Ram(byte Line,byte row,byte Number,byte *String)
zhimagod 0:ded1a1350d0d 232 {
zhimagod 0:ded1a1350d0d 233 byte x,y;
zhimagod 0:ded1a1350d0d 234 byte i;
zhimagod 0:ded1a1350d0d 235 if(Line>2){
zhimagod 0:ded1a1350d0d 236 return;
zhimagod 0:ded1a1350d0d 237 }
zhimagod 0:ded1a1350d0d 238 y=Line*2;
zhimagod 0:ded1a1350d0d 239 x=row;
zhimagod 0:ded1a1350d0d 240 for(i=0;i<Number;i++)
zhimagod 0:ded1a1350d0d 241 {
zhimagod 0:ded1a1350d0d 242 LCD_Disp_Char(x,y,1,*String);
zhimagod 0:ded1a1350d0d 243 x+=7;
zhimagod 0:ded1a1350d0d 244 if(x>84){
zhimagod 0:ded1a1350d0d 245 return;
zhimagod 0:ded1a1350d0d 246 }
zhimagod 0:ded1a1350d0d 247 String++;
zhimagod 0:ded1a1350d0d 248 }
zhimagod 0:ded1a1350d0d 249 }
zhimagod 0:ded1a1350d0d 250
zhimagod 0:ded1a1350d0d 251 int main() {
zhimagod 0:ded1a1350d0d 252 int i = 0;
zhimagod 0:ded1a1350d0d 253 LCD_CS=1;
zhimagod 0:ded1a1350d0d 254 LCD_RES=1;
zhimagod 0:ded1a1350d0d 255 LCD_Init();
zhimagod 0:ded1a1350d0d 256 for(i=0;i<12;i++){
zhimagod 0:ded1a1350d0d 257 StringTable[i]=(i+48);
zhimagod 0:ded1a1350d0d 258 }
zhimagod 0:ded1a1350d0d 259 while(1)
zhimagod 0:ded1a1350d0d 260 {
zhimagod 0:ded1a1350d0d 261 LCD_Init();
zhimagod 0:ded1a1350d0d 262 wait(0.2);
zhimagod 0:ded1a1350d0d 263 LCD_Disp_String_Ram(0,0,12,&StringTable[0]);
zhimagod 0:ded1a1350d0d 264 wait(0.2);
zhimagod 0:ded1a1350d0d 265 LCD_Disp_String_Rom(1,0,S1_Long,&String_1[0]);
zhimagod 0:ded1a1350d0d 266 wait(0.2);
zhimagod 0:ded1a1350d0d 267 LCD_Disp_String_Rom(2,0,S2_Long,&String_2[0]);
zhimagod 0:ded1a1350d0d 268 wait(1);
zhimagod 0:ded1a1350d0d 269
zhimagod 0:ded1a1350d0d 270 }
zhimagod 0:ded1a1350d0d 271 }
zhimagod 0:ded1a1350d0d 272