Details | Last modification | View Log | SVN | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 357 | johboh | 1 | /********************************************************************* |
| 2 | * |
||
| 3 | * Graphical LCD routines (LM6038D (ST7565)) |
||
| 4 | * |
||
| 5 | ********************************************************************* |
||
| 6 | * FileName: $HeadURL: http://svn.arune.se/svn/HomeAutomation/trunk/EmbeddedSoftware/PIC/canLCD/Source/lcd.c $ |
||
| 7 | * Last changed: $LastChangedDate: 2006-11-21 10:28:39 +0100 (ti, 21 nov 2006) $ |
||
| 8 | * By: $LastChangedBy: johboh $ |
||
| 9 | * Revision: $Revision: 140 $ |
||
| 10 | ********************************************************************/ |
||
| 11 | |||
| 12 | #include <glcd.h> |
||
| 13 | |||
| 14 | #ifdef USE_GLCD |
||
| 15 | |||
| 16 | #define FONT_WIDTH 6 |
||
| 17 | |||
| 18 | const rom BYTE Font8x6[][6] = { |
||
| 19 | {0x00,0x00,0x00,0x00,0x00,0x00}, // 0x 0 0 |
||
| 20 | {0x00,0x64,0x18,0x04,0x64,0x18}, // 0x 1 1 |
||
| 21 | {0x00,0x3c,0x40,0x40,0x20,0x7c}, // 0x 2 2 |
||
| 22 | {0x00,0x0c,0x30,0x40,0x30,0x0c}, // 0x 3 3 |
||
| 23 | {0x00,0x3c,0x40,0x30,0x40,0x3c}, // 0x 4 4 |
||
| 24 | {0x00,0x00,0x3e,0x1c,0x08,0x00}, // 0x 5 5 |
||
| 25 | {0x00,0x04,0x1e,0x1f,0x1e,0x04}, // 0x 6 6 |
||
| 26 | {0x00,0x10,0x3c,0x7c,0x3c,0x10}, // 0x 7 7 |
||
| 27 | {0x00,0x20,0x40,0x3e,0x01,0x02}, // 0x 8 8 |
||
| 28 | {0x00,0x22,0x14,0x08,0x14,0x22}, // 0x 9 9 |
||
| 29 | {0x00,0x00,0x38,0x28,0x38,0x00}, // 0x a 10 |
||
| 30 | {0x00,0x00,0x10,0x38,0x10,0x00}, // 0x b 11 |
||
| 31 | {0x00,0x00,0x00,0x10,0x00,0x00}, // 0x c 12 |
||
| 32 | {0x00,0x08,0x78,0x08,0x00,0x00}, // 0x d 13 |
||
| 33 | {0x00,0x00,0x15,0x15,0x0a,0x00}, // 0x e 14 |
||
| 34 | {0x00,0x7f,0x7f,0x09,0x09,0x01}, // 0x f 15 |
||
| 35 | {0x00,0x10,0x20,0x7f,0x01,0x01}, // 0x10 16 |
||
| 36 | {0x00,0x04,0x04,0x00,0x01,0x1f}, // 0x11 17 |
||
| 37 | {0x00,0x00,0x19,0x15,0x12,0x00}, // 0x12 18 |
||
| 38 | {0x00,0x40,0x60,0x50,0x48,0x44}, // 0x13 19 |
||
| 39 | {0x00,0x06,0x09,0x09,0x06,0x00}, // 0x14 20 |
||
| 40 | {0x00,0x0f,0x02,0x01,0x01,0x00}, // 0x15 21 |
||
| 41 | {0x00,0x00,0x01,0x1f,0x01,0x00}, // 0x16 22 |
||
| 42 | {0x00,0x44,0x44,0x4a,0x4a,0x51}, // 0x17 23 |
||
| 43 | {0x00,0x14,0x74,0x1c,0x17,0x14}, // 0x18 24 |
||
| 44 | {0x00,0x51,0x4a,0x4a,0x44,0x44}, // 0x19 25 |
||
| 45 | {0x00,0x00,0x00,0x04,0x04,0x04}, // 0x1a 26 |
||
| 46 | {0x00,0x00,0x7c,0x54,0x54,0x44}, // 0x1b 27 |
||
| 47 | {0x00,0x08,0x08,0x2a,0x1c,0x08}, // 0x1c 28 |
||
| 48 | {0x00,0x7c,0x00,0x7c,0x44,0x7c}, // 0x1d 29 |
||
| 49 | {0x00,0x04,0x02,0x7f,0x02,0x04}, // 0x1e 30 |
||
| 50 | {0x00,0x10,0x20,0x7f,0x20,0x10}, // 0x1f 31 |
||
| 51 | {0x00,0x00,0x00,0x00,0x00,0x00}, // 0x20 32 |
||
| 52 | {0x00,0x00,0x00,0x6f,0x00,0x00}, // ! 0x21 33 |
||
| 53 | {0x00,0x00,0x07,0x00,0x07,0x00}, // " 0x22 34 |
||
| 54 | {0x00,0x14,0x7f,0x14,0x7f,0x14}, // # 0x23 35 |
||
| 55 | {0x00,0x00,0x07,0x04,0x1e,0x00}, // $ 0x24 36 |
||
| 56 | {0x00,0x23,0x13,0x08,0x64,0x62}, // % 0x25 37 |
||
| 57 | {0x00,0x36,0x49,0x56,0x20,0x50}, // & 0x26 38 |
||
| 58 | {0x00,0x00,0x00,0x07,0x00,0x00}, // ' 0x27 39 |
||
| 59 | {0x00,0x00,0x1c,0x22,0x41,0x00}, // ( 0x28 40 |
||
| 60 | {0x00,0x00,0x41,0x22,0x1c,0x00}, // ) 0x29 41 |
||
| 61 | {0x00,0x14,0x08,0x3e,0x08,0x14}, // * 0x2a 42 |
||
| 62 | {0x00,0x08,0x08,0x3e,0x08,0x08}, // + 0x2b 43 |
||
| 63 | {0x00,0x00,0x50,0x30,0x00,0x00}, // , 0x2c 44 |
||
| 64 | {0x00,0x08,0x08,0x08,0x08,0x08}, // - 0x2d 45 |
||
| 65 | {0x00,0x00,0x60,0x60,0x00,0x00}, // . 0x2e 46 |
||
| 66 | {0x00,0x20,0x10,0x08,0x04,0x02}, // / 0x2f 47 |
||
| 67 | {0x00,0x3e,0x51,0x49,0x45,0x3e}, // 0 0x30 48 |
||
| 68 | {0x00,0x00,0x42,0x7f,0x40,0x00}, // 1 0x31 49 |
||
| 69 | {0x00,0x42,0x61,0x51,0x49,0x46}, // 2 0x32 50 |
||
| 70 | {0x00,0x21,0x41,0x45,0x4b,0x31}, // 3 0x33 51 |
||
| 71 | {0x00,0x18,0x14,0x12,0x7f,0x10}, // 4 0x34 52 |
||
| 72 | {0x00,0x27,0x45,0x45,0x45,0x39}, // 5 0x35 53 |
||
| 73 | {0x00,0x3c,0x4a,0x49,0x49,0x30}, // 6 0x36 54 |
||
| 74 | {0x00,0x01,0x71,0x09,0x05,0x03}, // 7 0x37 55 |
||
| 75 | {0x00,0x36,0x49,0x49,0x49,0x36}, // 8 0x38 56 |
||
| 76 | {0x00,0x06,0x49,0x49,0x29,0x1e}, // 9 0x39 57 |
||
| 77 | {0x00,0x00,0x36,0x36,0x00,0x00}, // : 0x3a 58 |
||
| 78 | {0x00,0x00,0x56,0x36,0x00,0x00}, // ; 0x3b 59 |
||
| 79 | {0x00,0x08,0x14,0x22,0x41,0x00}, // < 0x3c 60 |
||
| 80 | {0x00,0x14,0x14,0x14,0x14,0x14}, // = 0x3d 61 |
||
| 81 | {0x00,0x00,0x41,0x22,0x14,0x08}, // > 0x3e 62 |
||
| 82 | {0x00,0x02,0x01,0x51,0x09,0x06}, // ? 0x3f 63 |
||
| 83 | {0x00,0x3e,0x41,0x5d,0x49,0x4e}, // @ 0x40 64 |
||
| 84 | {0x00,0x7e,0x09,0x09,0x09,0x7e}, // A 0x41 65 |
||
| 85 | {0x00,0x7f,0x49,0x49,0x49,0x36}, // B 0x42 66 |
||
| 86 | {0x00,0x3e,0x41,0x41,0x41,0x22}, // C 0x43 67 |
||
| 87 | {0x00,0x7f,0x41,0x41,0x41,0x3e}, // D 0x44 68 |
||
| 88 | {0x00,0x7f,0x49,0x49,0x49,0x41}, // E 0x45 69 |
||
| 89 | {0x00,0x7f,0x09,0x09,0x09,0x01}, // F 0x46 70 |
||
| 90 | {0x00,0x3e,0x41,0x49,0x49,0x7a}, // G 0x47 71 |
||
| 91 | {0x00,0x7f,0x08,0x08,0x08,0x7f}, // H 0x48 72 |
||
| 92 | {0x00,0x00,0x41,0x7f,0x41,0x00}, // I 0x49 73 |
||
| 93 | {0x00,0x20,0x40,0x41,0x3f,0x01}, // J 0x4a 74 |
||
| 94 | {0x00,0x7f,0x08,0x14,0x22,0x41}, // K 0x4b 75 |
||
| 95 | {0x00,0x7f,0x40,0x40,0x40,0x40}, // L 0x4c 76 |
||
| 96 | {0x00,0x7f,0x02,0x0c,0x02,0x7f}, // M 0x4d 77 |
||
| 97 | {0x00,0x7f,0x04,0x08,0x10,0x7f}, // N 0x4e 78 |
||
| 98 | {0x00,0x3e,0x41,0x41,0x41,0x3e}, // O 0x4f 79 |
||
| 99 | {0x00,0x7f,0x09,0x09,0x09,0x06}, // P 0x50 80 |
||
| 100 | {0x00,0x3e,0x41,0x51,0x21,0x5e}, // Q 0x51 81 |
||
| 101 | {0x00,0x7f,0x09,0x19,0x29,0x46}, // R 0x52 82 |
||
| 102 | {0x00,0x46,0x49,0x49,0x49,0x31}, // S 0x53 83 |
||
| 103 | {0x00,0x01,0x01,0x7f,0x01,0x01}, // T 0x54 84 |
||
| 104 | {0x00,0x3f,0x40,0x40,0x40,0x3f}, // U 0x55 85 |
||
| 105 | {0x00,0x0f,0x30,0x40,0x30,0x0f}, // V 0x56 86 |
||
| 106 | {0x00,0x3f,0x40,0x30,0x40,0x3f}, // W 0x57 87 |
||
| 107 | {0x00,0x63,0x14,0x08,0x14,0x63}, // X 0x58 88 |
||
| 108 | {0x00,0x07,0x08,0x70,0x08,0x07}, // Y 0x59 89 |
||
| 109 | {0x00,0x61,0x51,0x49,0x45,0x43}, // Z 0x5a 90 |
||
| 110 | {0x00,0x3c,0x4a,0x49,0x29,0x1e}, // [ 0x5b 91 |
||
| 111 | {0x00,0x02,0x04,0x08,0x10,0x20}, // \ 0x5c 92 |
||
| 112 | {0x00,0x00,0x41,0x7f,0x00,0x00}, // ] 0x5d 93 |
||
| 113 | {0x00,0x04,0x02,0x01,0x02,0x04}, // ^ 0x5e 94 |
||
| 114 | {0x00,0x40,0x40,0x40,0x40,0x40}, // _ 0x5f 95 |
||
| 115 | {0x00,0x00,0x00,0x03,0x04,0x00}, // ` 0x60 96 |
||
| 116 | {0x00,0x20,0x54,0x54,0x54,0x78}, // a 0x61 97 |
||
| 117 | {0x00,0x7f,0x48,0x44,0x44,0x38}, // b 0x62 98 |
||
| 118 | {0x00,0x38,0x44,0x44,0x44,0x20}, // c 0x63 99 |
||
| 119 | {0x00,0x38,0x44,0x44,0x48,0x7f}, // d 0x64 100 |
||
| 120 | {0x00,0x38,0x54,0x54,0x54,0x18}, // e 0x65 101 |
||
| 121 | {0x00,0x08,0x7e,0x09,0x01,0x02}, // f 0x66 102 |
||
| 122 | {0x00,0x0c,0x52,0x52,0x52,0x3e}, // g 0x67 103 |
||
| 123 | {0x00,0x7f,0x08,0x04,0x04,0x78}, // h 0x68 104 |
||
| 124 | {0x00,0x00,0x44,0x7d,0x40,0x00}, // i 0x69 105 |
||
| 125 | {0x00,0x20,0x40,0x44,0x3d,0x00}, // j 0x6a 106 |
||
| 126 | {0x00,0x00,0x7f,0x10,0x28,0x44}, // k 0x6b 107 |
||
| 127 | {0x00,0x00,0x41,0x7f,0x40,0x00}, // l 0x6c 108 |
||
| 128 | {0x00,0x7c,0x04,0x18,0x04,0x78}, // m 0x6d 109 |
||
| 129 | {0x00,0x7c,0x08,0x04,0x04,0x78}, // n 0x6e 110 |
||
| 130 | {0x00,0x38,0x44,0x44,0x44,0x38}, // o 0x6f 111 |
||
| 131 | {0x00,0x7c,0x14,0x14,0x14,0x08}, // p 0x70 112 |
||
| 132 | {0x00,0x08,0x14,0x14,0x18,0x7c}, // q 0x71 113 |
||
| 133 | {0x00,0x7c,0x08,0x04,0x04,0x08}, // r 0x72 114 |
||
| 134 | {0x00,0x48,0x54,0x54,0x54,0x20}, // s 0x73 115 |
||
| 135 | {0x00,0x04,0x3f,0x44,0x40,0x20}, // t 0x74 116 |
||
| 136 | {0x00,0x3c,0x40,0x40,0x20,0x7c}, // u 0x75 117 |
||
| 137 | {0x00,0x1c,0x20,0x40,0x20,0x1c}, // v 0x76 118 |
||
| 138 | {0x00,0x3c,0x40,0x30,0x40,0x3c}, // w 0x77 119 |
||
| 139 | {0x00,0x44,0x28,0x10,0x28,0x44}, // x 0x78 120 |
||
| 140 | {0x00,0x0c,0x50,0x50,0x50,0x3c}, // y 0x79 121 |
||
| 141 | {0x00,0x44,0x64,0x54,0x4c,0x44}, // z 0x7a 122 |
||
| 142 | {0x00,0x00,0x08,0x36,0x41,0x41}, // { 0x7b 123 |
||
| 143 | {0x00,0x00,0x00,0x7f,0x00,0x00}, // | 0x7c 124 |
||
| 144 | {0x00,0x41,0x41,0x36,0x08,0x00}, // } 0x7d 125 |
||
| 145 | {0x00,0x04,0x02,0x04,0x08,0x04}, // ~ 0x7e 126 |
||
| 146 | {0x00,0x7f,0x6b,0x6b,0x6b,0x7f}, // 0x7f 127 |
||
| 147 | {0x00,0x00,0x7c,0x44,0x7c,0x00}, // ¬ 0x80 128 |
||
| 148 | {0x00,0x00,0x08,0x7c,0x00,0x00}, // 0x81 129 |
||
| 149 | {0x00,0x00,0x64,0x54,0x48,0x00}, // ‚ 0x82 130 |
||
| 150 | {0x00,0x00,0x44,0x54,0x28,0x00}, // ƒ 0x83 131 |
||
| 151 | {0x00,0x00,0x1c,0x10,0x78,0x00}, // „ 0x84 132 |
||
| 152 | {0x00,0x00,0x5c,0x54,0x24,0x00}, // … 0x85 133 |
||
| 153 | {0x00,0x00,0x78,0x54,0x74,0x00}, // † 0x86 134 |
||
| 154 | {0x00,0x00,0x64,0x14,0x0c,0x00}, // ‡ 0x87 135 |
||
| 155 | {0x00,0x00,0x7c,0x54,0x7c,0x00}, // ˆ 0x88 136 |
||
| 156 | {0x00,0x00,0x5c,0x54,0x3c,0x00}, // ‰ 0x89 137 |
||
| 157 | {0x00,0x78,0x24,0x26,0x25,0x78}, // Š 0x8a 138 |
||
| 158 | {0x00,0x78,0x25,0x26,0x24,0x78}, // ‹ 0x8b 139 |
||
| 159 | {0x00,0x70,0x2a,0x29,0x2a,0x70}, // Œ 0x8c 140 |
||
| 160 | {0x00,0x78,0x25,0x24,0x25,0x78}, // 0x8d 141 |
||
| 161 | {0x00,0x20,0x54,0x56,0x55,0x78}, // } 0x8e 142 |
||
| 162 | {0x00,0x20,0x55,0x56,0x54,0x78}, // 0x8f 143 |
||
| 163 | {0x00,0x20,0x56,0x55,0x56,0x78}, // 0x90 144 |
||
| 164 | {0x00,0x20,0x55,0x54,0x55,0x78}, // ‘ 0x91 145 |
||
| 165 | {0x00,0x7c,0x54,0x56,0x55,0x44}, // ’ 0x92 146 |
||
| 166 | {0x00,0x7c,0x55,0x56,0x54,0x44}, // “ 0x93 147 |
||
| 167 | {0x00,0x7c,0x56,0x55,0x56,0x44}, // ” 0x94 148 |
||
| 168 | {0x00,0x7c,0x55,0x54,0x55,0x44}, // • 0x95 149 |
||
| 169 | {0x00,0x38,0x54,0x56,0x55,0x18}, // – 0x96 150 |
||
| 170 | {0x00,0x38,0x55,0x56,0x54,0x18}, // — 0x97 151 |
||
| 171 | {0x00,0x38,0x56,0x55,0x56,0x18}, // ˜ 0x98 152 |
||
| 172 | {0x00,0x38,0x55,0x54,0x55,0x18}, // ™ 0x99 153 |
||
| 173 | {0x00,0x00,0x44,0x7e,0x45,0x00}, // š 0x9a 154 |
||
| 174 | {0x00,0x00,0x45,0x7e,0x44,0x00}, // › 0x9b 155 |
||
| 175 | {0x00,0x00,0x46,0x7d,0x46,0x00}, // œ 0x9c 156 |
||
| 176 | {0x00,0x00,0x45,0x7c,0x45,0x00}, // 0x9d 157 |
||
| 177 | {0x00,0x00,0x48,0x7a,0x41,0x00}, // ~ 0x9e 158 |
||
| 178 | {0x00,0x00,0x49,0x7a,0x40,0x00}, // Ÿ 0x9f 159 |
||
| 179 | {0x00,0x00,0x4a,0x79,0x42,0x00}, // 0xa0 160 |
||
| 180 | {0x00,0x00,0x49,0x78,0x41,0x00}, // ¡ 0xa1 161 |
||
| 181 | {0x00,0x38,0x44,0x46,0x45,0x38}, // ¢ 0xa2 162 |
||
| 182 | {0x00,0x38,0x45,0x46,0x44,0x38}, // £ 0xa3 163 |
||
| 183 | {0x00,0x38,0x46,0x45,0x46,0x38}, // ¤ 0xa4 164 |
||
| 184 | {0x00,0x38,0x45,0x44,0x45,0x38}, // ¥ 0xa5 165 |
||
| 185 | {0x00,0x30,0x48,0x4a,0x49,0x30}, // ¦ 0xa6 166 |
||
| 186 | {0x00,0x30,0x49,0x4a,0x48,0x30}, // § 0xa7 167 |
||
| 187 | {0x00,0x30,0x4a,0x49,0x4a,0x30}, // ¨ 0xa8 168 |
||
| 188 | {0x00,0x30,0x49,0x48,0x49,0x30}, // © 0xa9 169 |
||
| 189 | {0x00,0x3c,0x40,0x42,0x41,0x3c}, // ª 0xaa 170 |
||
| 190 | {0x00,0x3c,0x41,0x42,0x40,0x3c}, // « 0xab 171 |
||
| 191 | {0x00,0x3c,0x42,0x41,0x42,0x3c}, // ¬ 0xac 172 |
||
| 192 | {0x00,0x3c,0x41,0x40,0x41,0x3c}, // 0xad 173 |
||
| 193 | {0x00,0x3c,0x40,0x42,0x21,0x7c}, // ® 0xae 174 |
||
| 194 | {0x00,0x3c,0x41,0x42,0x20,0x7c}, // ¯ 0xaf 175 |
||
| 195 | {0x00,0x38,0x42,0x41,0x22,0x78}, // ° 0xb0 176 |
||
| 196 | {0x00,0x3c,0x41,0x40,0x21,0x7c}, // ± 0xb1 177 |
||
| 197 | {0x00,0x4e,0x51,0x71,0x11,0x0a}, // ² 0xb2 178 |
||
| 198 | {0x00,0x58,0x64,0x64,0x24,0x10}, // ³ 0xb3 179 |
||
| 199 | {0x00,0x7c,0x0a,0x11,0x22,0x7d}, // ´ 0xb4 180 |
||
| 200 | {0x00,0x78,0x12,0x09,0x0a,0x71}, // µ 0xb5 181 |
||
| 201 | {0x00,0x00,0x00,0x04,0x02,0x01}, // ¶ 0xb6 182 |
||
| 202 | {0x00,0x01,0x02,0x04,0x00,0x00}, // · 0xb7 183 |
||
| 203 | {0x00,0x00,0x02,0x00,0x02,0x00}, // ¸ 0xb8 184 |
||
| 204 | {0x00,0x30,0x48,0x45,0x40,0x20}, // ¹ 0xb9 185 |
||
| 205 | {0x00,0x00,0x00,0x7b,0x00,0x00}, // º 0xba 186 |
||
| 206 | {0x00,0x38,0x44,0x44,0x38,0x44}, // » 0xbb 187 |
||
| 207 | {0x00,0x40,0x3e,0x49,0x49,0x36}, // ¼ 0xbc 188 |
||
| 208 | {0x00,0x08,0x04,0x08,0x70,0x0c}, // ½ 0xbd 189 |
||
| 209 | {0x00,0x60,0x50,0x48,0x50,0x60}, // ¾ 0xbe 190 |
||
| 210 | {0x00,0x20,0x52,0x55,0x59,0x30}, // ¿ 0xbf 191 |
||
| 211 | {0x00,0x38,0x54,0x54,0x54,0x00}, // À 0xc0 192 |
||
| 212 | {0x00,0x00,0x00,0x7f,0x41,0x00}, // Á 0xc1 193 |
||
| 213 | {0x00,0x40,0x22,0x14,0x18,0x60}, // Â 0xc2 194 |
||
| 214 | {0x00,0x7c,0x20,0x20,0x1c,0x20}, // Ã 0xc3 195 |
||
| 215 | {0x00,0x44,0x3c,0x04,0x7c,0x44}, // Ä 0xc4 196 |
||
| 216 | {0x00,0x40,0x3c,0x12,0x12,0x0c}, // Å 0xc5 197 |
||
| 217 | {0x00,0x41,0x63,0x55,0x49,0x41}, // Æ 0xc6 198 |
||
| 218 | {0x00,0x38,0x44,0x44,0x3c,0x04}, // Ç 0xc7 199 |
||
| 219 | {0x00,0x08,0x04,0x3c,0x44,0x24}, // È 0xc8 200 |
||
| 220 | {0x00,0x08,0x14,0x7f,0x14,0x08}, // É 0xc9 201 |
||
| 221 | {0x00,0x4e,0x71,0x01,0x71,0x4e}, // Ê 0xca 202 |
||
| 222 | {0x00,0x45,0x29,0x11,0x29,0x45}, // Ë 0xcb 203 |
||
| 223 | {0x00,0x0d,0x51,0x51,0x51,0x3d}, // Ì 0xcc 204 |
||
| 224 | {0x00,0x00,0x00,0x05,0x02,0x05}, // Í 0xcd 205 |
||
| 225 | {0x00,0x40,0x00,0x40,0x00,0x40}, // Î 0xce 206 |
||
| 226 | {0x00,0x00,0x08,0x1c,0x3e,0x00}, // Ï 0xcf 207 |
||
| 227 | {0x00,0x1c,0x1c,0x1c,0x00,0x00}, // Ð 0xd0 208 |
||
| 228 | {0x00,0x00,0x70,0x08,0x07,0x00}, // Ñ 0xd1 209 |
||
| 229 | {0x00,0x00,0x08,0x08,0x08,0x00}, // Ò 0xd2 210 |
||
| 230 | {0x00,0x00,0x1d,0x15,0x17,0x00}, // Ó 0xd3 211 |
||
| 231 | {0x00,0x00,0x07,0x05,0x07,0x00}, // Ô 0xd4 212 |
||
| 232 | {0x00,0x00,0x11,0x15,0x0a,0x00}, // Õ 0xd5 213 |
||
| 233 | {0x00,0x00,0x00,0x00,0x00,0x00}, // Ö 0xd6 214 |
||
| 234 | {0x00,0x04,0x3c,0x41,0x20,0x00}, // × 0xd7 215 |
||
| 235 | {0x00,0x7c,0x16,0x15,0x16,0x08}, // Ø 0xd8 216 |
||
| 236 | {0x00,0x21,0x16,0x08,0x34,0x42}, // Ù 0xd9 217 |
||
| 237 | {0x00,0x7f,0x09,0x1d,0x01,0x03}, // Ú 0xda 218 |
||
| 238 | {0x00,0x38,0x54,0x54,0x14,0x08}, // Û 0xdb 219 |
||
| 239 | {0x00,0x00,0x00,0x7c,0x40,0x40}, // Ü 0xdc 220 |
||
| 240 | {0x00,0x7f,0x0e,0x1c,0x38,0x7f}, // Ý 0xdd 221 |
||
| 241 | {0x00,0x41,0x22,0x5d,0x22,0x1c}, // Þ 0xde 222 |
||
| 242 | {0x00,0x1c,0x3e,0x1c,0x08,0x00}, // ß 0xdf 223 |
||
| 243 | {0x00,0x7f,0x7f,0x7f,0x7f,0x7f}, // à 0xe0 224 |
||
| 244 | {0x00,0x77,0x7b,0x01,0x7b,0x77}, // á 0xe1 225 |
||
| 245 | {0x00,0x7f,0x43,0x75,0x43,0x7f}, // â 0xe2 226 |
||
| 246 | {0x00,0x7f,0x6f,0x55,0x43,0x7f}, // ã 0xe3 227 |
||
| 247 | {0x00,0x40,0x40,0x40,0x40,0x40}, // ä 0xe4 228 |
||
| 248 | {0x00,0x44,0x42,0x5f,0x42,0x44}, // å 0xe5 229 |
||
| 249 | {0x00,0x40,0x5e,0x45,0x5e,0x40}, // æ 0xe6 230 |
||
| 250 | {0x00,0x40,0x48,0x55,0x5e,0x40}, // ç 0xe7 231 |
||
| 251 | {0x00,0x00,0x04,0x08,0x10,0x20}, // è 0xe8 232 |
||
| 252 | {0x00,0x03,0x07,0x0e,0x1c,0x38}, // é 0xe9 233 |
||
| 253 | {0x00,0x01,0x03,0x07,0x0f,0x1f}, // ê 0xea 234 |
||
| 254 | {0x00,0x7c,0x78,0x70,0x60,0x40}, // ë 0xeb 235 |
||
| 255 | {0x00,0x08,0x08,0x1c,0x22,0x1c}, // ì 0xec 236 |
||
| 256 | {0x00,0x00,0x1c,0x22,0x1c,0x00}, // í 0xed 237 |
||
| 257 | {0x00,0x02,0x00,0x08,0x00,0x20}, // î 0xee 238 |
||
| 258 | {0x00,0x04,0x3e,0x3f,0x3e,0x04}, // ï 0xef 239 |
||
| 259 | {0x00,0x10,0x3e,0x7e,0x3e,0x10}, // ð 0xf0 240 |
||
| 260 | {0x00,0x55,0x2a,0x55,0x2a,0x55}, // ñ 0xf1 241 |
||
| 261 | {0x00,0x24,0x2a,0x7f,0x2a,0x12}, // ò 0xf2 242 |
||
| 262 | {0x00,0x04,0x1e,0x1f,0x1e,0x04}, // ó 0xf3 243 |
||
| 263 | {0x00,0x00,0x00,0x00,0x00,0x00}, // ô 0xf4 244 |
||
| 264 | {0x00,0x00,0x00,0x00,0x00,0x00}, // õ 0xf5 245 |
||
| 265 | {0x00,0x00,0x00,0x00,0x00,0x00}, // ö 0xf6 246 |
||
| 266 | {0x00,0x00,0x00,0x00,0x00,0x00}, // ÷ 0xf7 247 |
||
| 267 | {0x00,0x00,0x00,0x00,0x00,0x00}, // ø 0xf8 248 |
||
| 268 | {0x00,0x00,0x00,0x00,0x00,0x00}, // ù 0xf9 249 |
||
| 269 | {0x00,0x00,0x00,0x00,0x00,0x00}, // ú 0xfa 250 |
||
| 270 | {0x00,0x00,0x00,0x00,0x00,0x00}, // û 0xfb 251 |
||
| 271 | {0x00,0x00,0x00,0x00,0x00,0x00}, // ü 0xfc 252 |
||
| 272 | {0x00,0x00,0x00,0x00,0x00,0x00}, // ý 0xfd 253 |
||
| 273 | {0x00,0x00,0x00,0x00,0x00,0x00}, // þ 0xfe 254 |
||
| 274 | {0x00,0x00,0x00,0x00,0x00,0x00} // ÿ 0xff 255 |
||
| 275 | }; |
||
| 276 | |||
| 277 | |||
| 278 | |||
| 279 | |||
| 280 | |||
| 281 | |||
| 282 | |||
| 283 | |||
| 284 | |||
| 285 | |||
| 286 | |||
| 287 | static void glcdCommand(BYTE); |
||
| 288 | static void glcdDataWrite(BYTE); |
||
| 289 | static void glcdSetPage(BYTE); |
||
| 290 | static void glcdSetColumn(BYTE); |
||
| 291 | |||
| 292 | /* |
||
| 293 | * Function: glcdInit |
||
| 294 | * |
||
| 295 | * Input: none. |
||
| 296 | * Output: none |
||
| 297 | * Pre-conditions: none |
||
| 298 | * Affects: none. |
||
| 299 | * Depends: none. |
||
| 300 | */ |
||
| 301 | void glcdInit(void) |
||
| 302 | { |
||
| 303 | GLCD_RES_TRIS = 0; |
||
| 304 | GLCD_CS_TRIS = 0; |
||
| 305 | GLCD_A0_TRIS = 0; |
||
| 306 | GLCD_SCL_TRIS = 0; |
||
| 307 | GLCD_SI_TRIS = 0; |
||
| 308 | |||
| 309 | // SPI (one way) |
||
| 310 | // /SMP, /CKE, na, na, na, na, na, na |
||
| 311 | SSPSTAT = 0b00000000; |
||
| 312 | // na, na, SSPEN, CKP, SSPM3:0(FOSC/4) |
||
| 313 | SSPCON1 = 0b00110001; |
||
| 314 | |||
| 315 | GLCD_RES_IO = 0; |
||
| 316 | Delay100TCYx(1); // 10 us (2.5uS needed) |
||
| 317 | GLCD_RES_IO = 1; |
||
| 318 | |||
| 319 | glcdCommand(0xA2); // LCD bias = 1/9 |
||
| 320 | glcdCommand(0xA0); // ADC = normal |
||
| 321 | glcdCommand(0xC8); // SHL = reverse |
||
| 322 | glcdCommand(0x40); // Init display line = 0 |
||
| 323 | glcdCommand(0x2C); // PWR VF=0,VR=0,VC=1 |
||
| 324 | Delay10KTCYx(50); // delay 50ms |
||
| 325 | glcdCommand(0x2E); // PWR VF=0,VR=1,VC=1 |
||
| 326 | Delay10KTCYx(50); // delay 50ms |
||
| 327 | glcdCommand(0x2F); // PWR VF=1,VR=1,VC=1 |
||
| 328 | Delay10KTCYx(50); // delay 50ms |
||
| 329 | glcdCommand(0x25); // Regulator resistor select |
||
| 330 | glcdCommand(0x81); // Set reference voltage mode |
||
| 331 | glcdCommand(0x20); // set reference voltage resistor |
||
| 332 | glcdCommand(0xAF); // Display ON |
||
| 333 | |||
| 334 | |||
| 335 | /* |
||
| 336 | glcdCommand(0xA2); // LCD bias set |
||
| 337 | glcdCommand(0xA1); // ADC select |
||
| 338 | glcdCommand(0xC0); // Common select |
||
| 339 | glcdCommand(0xA6); // Display set |
||
| 340 | glcdCommand(0xA4); // point ON/OFF |
||
| 341 | glcdCommand(0x81); // ??? |
||
| 342 | glcdCommand(0x1C); // ??? |
||
| 343 | glcdCommand(0x2F); // Power set |
||
| 344 | glcdCommand(0xF8); // Booster set |
||
| 345 | glcdCommand(0x01); // ?? |
||
| 346 | glcdCommand(0xAF); // Display ON |
||
| 347 | */ |
||
| 348 | |||
| 349 | Delay100TCYx(5); // delay 50us |
||
| 350 | } |
||
| 351 | |||
| 352 | |||
| 353 | void glcdCommand(BYTE command) |
||
| 354 | { |
||
| 355 | GLCD_A0_IO = 0; |
||
| 356 | PIR1bits.SSPIF=0; |
||
| 357 | SSPBUF = command; |
||
| 358 | while(!PIR1bits.SSPIF==0); |
||
| 359 | } |
||
| 360 | |||
| 361 | void glcdDataWrite(BYTE data) |
||
| 362 | { |
||
| 363 | GLCD_A0_IO = 1; |
||
| 364 | PIR1bits.SSPIF=0; |
||
| 365 | SSPBUF = data; |
||
| 366 | while(!PIR1bits.SSPIF==0); |
||
| 367 | } |
||
| 368 | |||
| 369 | |||
| 370 | void glcdSetStartLine(BYTE startline) |
||
| 371 | { |
||
| 372 | glcdCommand((startline & 0x3F) | 0x40); |
||
| 373 | } |
||
| 374 | |||
| 375 | void glcdSetPage(BYTE page) |
||
| 376 | { |
||
| 377 | glcdCommand((page & 0x0F) | 0xB0); |
||
| 378 | } |
||
| 379 | |||
| 380 | void glcdSetColumn(BYTE column) |
||
| 381 | { |
||
| 382 | glcdCommand((column & 0x0F)); |
||
| 383 | glcdCommand(((column >> 4) & 0x0F) | 0x10); |
||
| 384 | } |
||
| 385 | |||
| 386 | void glcdClearScr() |
||
| 387 | { |
||
| 388 | BYTE i,j; |
||
| 389 | for(i=0;i<8;i++) |
||
| 390 | { |
||
| 391 | glcdSetColumn(0); |
||
| 392 | glcdSetPage(i); |
||
| 393 | for(j=0;j<128;j++) |
||
| 394 | { |
||
| 395 | glcdDataWrite(0x00); |
||
| 396 | } |
||
| 397 | } |
||
| 398 | } |
||
| 399 | |||
| 400 | void glcdDisplayPic(BYTE page, BYTE column, const rom BYTE * pic) |
||
| 401 | { |
||
| 402 | BYTE i,j; |
||
| 403 | for(i=0;i<8;i++) |
||
| 404 | { |
||
| 405 | glcdSetPage(page+i); |
||
| 406 | glcdSetColumn(column); |
||
| 407 | for(j=0;j<128;j++) |
||
| 408 | { |
||
| 409 | glcdDataWrite(pic[i*128+j]); |
||
| 410 | } |
||
| 411 | } |
||
| 412 | } |
||
| 413 | |||
| 414 | void glcdPutc(BYTE c) |
||
| 415 | { |
||
| 416 | BYTE i; |
||
| 417 | for(i=0;i<FONT_WIDTH;i++) |
||
| 418 | { |
||
| 419 | glcdDataWrite(Font8x6[c][i]); |
||
| 420 | } |
||
| 421 | } |
||
| 422 | |||
| 423 | void glcdPutrs(BYTE page, BYTE column, const rom BYTE * s) |
||
| 424 | { |
||
| 425 | glcdSetPage(page); |
||
| 426 | glcdSetColumn(column); |
||
| 427 | while(*s) glcdPutc(*s++); |
||
| 428 | } |
||
| 429 | |||
| 430 | void glcdPuts(BYTE page, BYTE column, BYTE * s) |
||
| 431 | { |
||
| 432 | glcdSetPage(page); |
||
| 433 | glcdSetColumn(column); |
||
| 434 | while(*s) glcdPutc(*s++); |
||
| 435 | } |
||
| 436 | |||
| 437 | |||
| 438 | #endif |
||
| 439 |